peng3d.gui.text - Textual Widgets

class peng3d.gui.text.Label(name: Optional[str], submenu: SubMenu, window: Any = None, peng: Any = None, *, pos: Union[List[float], Callable[[float, float, float, float], Tuple[float, float]], layout.LayoutCell], size: Union[List[float], Callable[[float, float], Tuple[float, float]], None] = None, bg=None, label='Label', font_size=None, font=None, font_color=None, multiline=False, label_cls=<Mock name='mock.Label' id='140340375806032'>, anchor_x='center', anchor_y='center', label_layer=1)[source]

Simple widget that can display any single-line non-formatted string.

This widget does not use any background by default.

The default font color is chosen to work on the default background color and may need to be changed if the background color is changed.

label

Property for accessing the text of the label.

on_redraw(dt=None)[source]

Draws the background and the widget itself.

Subclasses should use super() to call this method, or rendering may glitch out.

redraw_label()[source]

Re-draws the text by calculating its position.

Currently, the text will always be centered on the position of the label.

class peng3d.gui.text.TextInput(name: Optional[str], submenu: SubMenu, window: Any = None, peng: Any = None, *args, pos: Union[List[float], Callable[[float, float, float, float], Tuple[float, float]], layout.LayoutCell], size: Union[List[float], Callable[[float, float], Tuple[float, float]], None] = None, bg=None, text='', default='', border=[4, 4], borderstyle=None, font_size=None, font=None, font_color=None, font_color_default=[62, 67, 73, 200], allow_overflow=False, allow_copypaste=True, min_size=None, parent_bgcls=None, allow_returnkey=False, **kwargs)[source]

Basic Textual Input widget.

By default, this widget uses TextInputBackground as its Background class.

The optional default text will only be displayed if the text is empty.

The allow_overflow flag determines if the text entered can be longer than the size of the TextInput.

The allow_copypaste flag controls whether or not the user can copy and paste the contents of the text box. By default, copying and pasting is allowed. This flag can also be set to "force" to force a crash with an appropriate error message if the pyperclip module is not available. Currently, only copying, pasting and cutting the whole text box is supported, as there is no mechanism for text selection yet.

The key combinations used by this widget can be configured in the config via the controls.keybinds.common.* config values.

parent_bgcls may be used to override the background used. Note that the cursor will still be rendered. Additional parameters required by the custom background should be passed as keyword arguments. Note that arguments already used by TextInput are not passed down. This may cause issues with ButtonBackground and some other classes.

allow_returnkey determines whether pressing the return key inserts a \r character or not. Note that the send_form action of the submenu may still be sent, even if this is set to true.

default

Property for accessing the default text.

draw()[source]

Draws all vertex lists associated with this widget.

on_redraw()[source]

Draws the background and the widget itself.

Subclasses should use super() to call this method, or rendering may glitch out.

redraw_label()[source]

Re-draws the label by calculating its position.

Currently, the label will always be centered on the position of the label.

text

Property for accessing the text.

class peng3d.gui.text.TextInputBackground(*args, **kwargs)[source]

Background for the TextInput Widget.

This background uses the button drawing routines and adds a cursor.

init_bg()[source]

Called just before the background will be drawn the first time.

Commonly used to initialize vertex lists.

It is recommended to add all vertex lists to the submenu.batch2d Batch to speed up rendering and preventing glitches with grouping.

pressed

Read-only helper property to be used by borderstyles for determining if the widget should be rendered as pressed or not.

Note that this property may not represent the actual pressed state, it will always be False if change_on_press is disabled.

redraw_bg()[source]

Method called by the parent widget every time its Widget.redraw() method is called.

class peng3d.gui.text.CustomTextInputBackground(widget, cls=<class 'peng3d.gui.button.ButtonBackground'>, *args, **kwargs)[source]

Background for the TextInput Widget.

This background adds a cursor on top of another background.

init_bg()[source]

Called just before the background will be drawn the first time.

Commonly used to initialize vertex lists.

It is recommended to add all vertex lists to the submenu.batch2d Batch to speed up rendering and preventing glitches with grouping.

redraw_bg()[source]

Method called by the parent widget every time its Widget.redraw() method is called.

class peng3d.gui.text.PasswordInput(*args, replacement_char='*', **kwargs)[source]
password

Proxy for text.

Returns:Current password
text

Property for accessing the text.