August'24: Kamaelia is in maintenance mode and will recieve periodic updates, about twice a year, primarily targeted around Python 3 and ecosystem compatibility. PRs are always welcome. Latest Release: 1.14.32 (2024/3/24)
TextDisplayer displays any data it receives on a Pygame surface. Every new piece of data is displayed on its own line, and lines wrap automatically.
Textbox displays user input while the user types, and sends its string buffer to its 'outbox' when it receives a ' '.
To take user input in Textbox and display it in TextDisplayer:
Pipeline(Textbox(size = (800, 300),
position = (0,0)),
TextDisplayer(size = (800, 300),
position = (0,340))
).run()
TextDisplayer requests a display from the Pygame Display service and requests that Pygame Display send all keypresses to it. Every time TextDisplayer receives a keypress, it updates its string buffer and the display.
If it receives a newline, or if text must wrap, it moves the existing text upwards and blits the new line onto the bottom.
The line wrapping length is specified by the width of the display divided by the width of the letter 'a' in the displayed font, so lines may wrap too far off the edge of the screen if the user types very narrow text (i.e. just spaces with no other charachters), or too far inside the edge of the screen (usually).
TextDisplayer(...) -> new TextDisplayer Pygame component.
Keyword arguments:
Default (500, 300).
text_height -- font size. Default 18.
Default is a pale yellow.
Default is black.
upper left corner in relation to the Pygame window. Default (0,0)
Warning!
You should be using the inbox/outbox interface, not these methods (except construction). This documentation is designed as a roadmap as to their functionalilty for maintainers and new component developers.
Initialises
requests a display surface from the PygameDisplay service, fills the color in, and copies it
Main loop
Checks for control messages
Updates text to the bottom of the screen while scrolling old text upwards. Delegates most of the work to updateLine
Updates one line of text to bottom of screen, scrolling old text upwards.
Textbox(...) -> New Pygame Textbox component
Keyword Arguments:
Reads keyboard input and updates it on the screen. Flushes string buffer and sends it to outbox when a newline is encountered.
Warning!
You should be using the inbox/outbox interface, not these methods (except construction). This documentation is designed as a roadmap as to their functionalilty for maintainers and new component developers.
Requests a surface from PygameDisplay and registers to listen for events Then enters the main loop, which checks for Pygame events and updates them to the screen.
erases the screen and updates it with text
Got a problem with the documentation? Something unclear that could be clearer? Want to help improve it? Constructive criticism is very welcome - especially if you can suggest a better rewording!
Please leave you feedback here in reply to the documentation thread in the Kamaelia blog.
-- Automatic documentation generator, 05 Jun 2009 at 03:01:38 UTC/GMT