HI, guys,
I am using wxpython to develop a GUI for software configuration, launching and interaction. I want something like a CLI shell window (like pycrust) embedded inside the GUI to interact with a long-term running background process. I could give the input via this shell window and print the output on this window. My current code works very well. But there is problem of editing style, because wx.TextCtrl is simply an editable text window. e.g., I could overwrite or remove any previous text characters or type new input at any location. This is not desirable. 
How can I make the wx.TextCtrl like a shell window, i.e. make the output readonly, while keep input editable? e.g.,
1) when input new command, the position only starts after prompt. 
2) The user cannot change or replace any previous output text.
I want to force certain restriction, for interaction purpose. 
Is there a way to fix the curse prompt? If so, then my problem will be solved, because the user will have no chance to move the curse. 
Or is there a way to set certain part of the text (the output and the prompt) readonly?
Or another solution, thanks to 9000's answer, is that I make a grid of windows (a StaticTextCtrl or readonly TextCtrl for output in the upper window; prompt ">>>" on the bottom left area; invisible-border editable window or entry dialog on the bottom right area for input). 
any suggestions? Is there any better choice?
Thanks a lot!
In our product we have a console made up of two edit windows, separated by a thin line. The upper window is the output window, it is read-only. The lower window is editable. Once you have written a command in it and submitted it, the command is removed from the lower window and goes to the upper window, along with command's output.
You can click the upper window, select something from it, scroll it up, etc, all without removing the command you're currently editing from sight. Then you click on the lower window or press any key, and the control returns to the lower window, where you continue to craft your next command.
output readonly, input editable with wx.textctrl?