From 8763efbfc5c1a357e17b5950cd14360260846d2e Mon Sep 17 00:00:00 2001 From: Maic Siemering Date: Sat, 31 Aug 2024 21:22:18 +0200 Subject: [PATCH] Add hidden password example --- arcade/examples/gui/exp_hidden_password.py | 105 +++++++++++++----- arcade/gui/experimental/password_input.py | 7 +- arcade/gui/widgets/__init__.py | 4 +- doc/example_code/gui_exp_hidden_password.rst | 17 +++ .../images/gui_exp_hidden_password.png | Bin 0 -> 102670 bytes doc/example_code/index.rst | 17 +++ 6 files changed, 119 insertions(+), 31 deletions(-) create mode 100644 doc/example_code/gui_exp_hidden_password.rst create mode 100644 doc/example_code/images/gui_exp_hidden_password.png diff --git a/arcade/examples/gui/exp_hidden_password.py b/arcade/examples/gui/exp_hidden_password.py index 144560469..1d0b9bba8 100644 --- a/arcade/examples/gui/exp_hidden_password.py +++ b/arcade/examples/gui/exp_hidden_password.py @@ -2,7 +2,11 @@ This example demonstrates how to create a custom text input which hides the contents behind a custom character, as often -required for login screens +required for login screens. + +Due to a bug in the current version of pyglet, the example uses ENTER to switch +fields instead of TAB. This will be fixed in future versions. +(https://github.com/pyglet/pyglet/issues/1197) If arcade and Python are properly installed, you can run this example with: python -m arcade.examples.gui.exp_hidden_password @@ -11,55 +15,100 @@ from __future__ import annotations import arcade -from arcade.gui import UIManager, UIInputText, UIOnClickEvent +from arcade.gui import UIInputText, UIOnClickEvent, UIView from arcade.gui.experimental.password_input import UIPasswordInput from arcade.gui.widgets.buttons import UIFlatButton from arcade.gui.widgets.layout import UIGridLayout, UIAnchorLayout from arcade.gui.widgets.text import UILabel +from arcade import resources + +# Load kenny fonts shipped with arcade +resources.load_system_fonts() -class MyView(arcade.View): +class MyView(UIView): def __init__(self): super().__init__() - self.ui = UIManager() + self.background_color = arcade.uicolor.BLUE_BELIZE_HOLE grid = UIGridLayout( size_hint=(0, 0), # wrap children - row_count=3, # user, pw and login button + row_count=5, # title | user, pw | login button column_count=2, # label and input field vertical_spacing=10, horizontal_spacing=5, ) + grid.with_padding(all=50) + grid.with_background(color=arcade.uicolor.GREEN_GREEN_SEA) + + title = grid.add( + UILabel(text="Login", width=150, font_size=20, font_name="Kenney Future"), + column=0, + row=0, + column_span=2, + ) + title.with_padding(bottom=20) - grid.add(UILabel(text="Username:", width=80), column=0, row=0) - self.username_input = grid.add(UIInputText(), column=1, row=0) - - grid.add(UILabel(text="Password:", width=80), column=0, row=1) - self.password_input = grid.add(UIPasswordInput(), column=1, row=1) + grid.add(UILabel(text="Username:", width=80, font_name="Kenney Future"), column=0, row=1) + self.username_input = grid.add( + UIInputText(width=150, font_name="Kenney Future"), column=1, row=1 + ) - self.login_button = grid.add(UIFlatButton(text="Login"), column=0, row=2, column_span=2) + grid.add(UILabel(text="Password:", width=80, font_name="Kenney Future"), column=0, row=2) + self.password_input = grid.add( + UIPasswordInput(width=150, font_name="Kenney Future"), column=1, row=2 + ) + self.password_input.with_background(color=arcade.uicolor.GREEN_GREEN_SEA) + # set background to prevent full render on blinking caret + + self.login_button = grid.add( + UIFlatButton(text="Login", height=30, width=150, size_hint=(1, None)), + column=0, + row=3, + column_span=2, + ) self.login_button.on_click = self.on_login + # add warning label + self.warning_label = grid.add( + UILabel( + text="Use [enter] to switch fields, then enter to login", + width=150, + font_size=10, + font_name="Kenney Future", + ), + column=0, + row=4, + column_span=2, + ) + anchor = UIAnchorLayout() # to center grid on screen anchor.add(grid) - self.ui.add(anchor) - - def on_login(self, event: UIOnClickEvent): - print(f"User logged in with: {self.username_input.text} {self.password_input.text}") - - def on_show_view(self): - self.window.background_color = arcade.color.DARK_BLUE_GRAY - # Enable UIManager when view is shown to catch window events - self.ui.enable() - - def on_hide_view(self): - # Disable UIManager when view gets inactive - self.ui.disable() - - def on_draw(self): - self.clear() - self.ui.draw() + self.add_widget(anchor) + + # activate username input field + self.username_input.activate() + + def on_key_press(self, symbol: int, modifiers: int) -> bool | None: + # if username field active, switch fields with enter + if self.username_input.active: + if symbol == arcade.key.ENTER: + self.username_input.deactivate() + self.password_input.activate() + return True + # if password field active, login with enter + elif self.password_input.active: + if symbol == arcade.key.ENTER: + self.password_input.deactivate() + self.on_login(None) + return True + return False + + def on_login(self, event: UIOnClickEvent | None): + username = self.username_input.text.strip() + password = self.password_input.text.strip() + print(f"User logged in with: {username} {password}") if __name__ == "__main__": diff --git a/arcade/gui/experimental/password_input.py b/arcade/gui/experimental/password_input.py index d417488a1..c0cbd3ece 100644 --- a/arcade/gui/experimental/password_input.py +++ b/arcade/gui/experimental/password_input.py @@ -6,7 +6,12 @@ class UIPasswordInput(UIInputText): - """A password input field. The text is hidden with asterisks.""" + """A password input field. The text is hidden with asterisks. + + Hint: It is recommended to set a background color to prevent full render cycles + when the caret blinks. + + """ def on_event(self, event: UIEvent) -> Optional[bool]: """Remove new lines from the input, which are not allowed in passwords.""" diff --git a/arcade/gui/widgets/__init__.py b/arcade/gui/widgets/__init__.py index 2caaeb0c5..c0f6f3ed5 100644 --- a/arcade/gui/widgets/__init__.py +++ b/arcade/gui/widgets/__init__.py @@ -60,7 +60,7 @@ class UIWidget(EventDispatcher, ABC): rect: Rect = Property(LBWH(0, 0, 1, 1)) # type: ignore visible: bool = Property(True) # type: ignore - size_hint: Optional[Tuple[float, float]] = Property(None) # type: ignore + size_hint: Optional[Tuple[float | None, float | None]] = Property(None) # type: ignore size_hint_min: Optional[Tuple[float, float]] = Property(None) # type: ignore size_hint_max: Optional[Tuple[float, float]] = Property(None) # type: ignore @@ -83,7 +83,7 @@ def __init__( height: float = 100, children: Iterable["UIWidget"] = tuple(), # Properties which might be used by layouts - size_hint: Optional[Tuple[float, float]] = None, # in percentage + size_hint: Optional[Tuple[float | None, float | None]] = None, # in percentage size_hint_min: Optional[Tuple[float, float]] = None, # in pixel size_hint_max: Optional[Tuple[float, float]] = None, # in pixel **kwargs, diff --git a/doc/example_code/gui_exp_hidden_password.rst b/doc/example_code/gui_exp_hidden_password.rst new file mode 100644 index 000000000..1851ff290 --- /dev/null +++ b/doc/example_code/gui_exp_hidden_password.rst @@ -0,0 +1,17 @@ +:orphan: + +.. _gui_exp_hidden_password: + +GUI Hidden Password +=================== + +The following example demonstrates how to make use of the experimental widget. + +.. image:: images/gui_exp_hidden_password.png + :width: 600px + :align: center + :alt: Screen shot + +.. literalinclude:: ../../arcade/examples/gui/exp_hidden_password.py + :caption: exp_hidden_password.py + :linenos: diff --git a/doc/example_code/images/gui_exp_hidden_password.png b/doc/example_code/images/gui_exp_hidden_password.png new file mode 100644 index 0000000000000000000000000000000000000000..f35ea463fa65ed90cb38e977d8aa79509725dd20 GIT binary patch literal 102670 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 Xp602oq#ctWa+L#CHv1?Rr+)lD?1c=D literal 0 HcmV?d00001 diff --git a/doc/example_code/index.rst b/doc/example_code/index.rst index 7696efb19..f5f8753cc 100644 --- a/doc/example_code/index.rst +++ b/doc/example_code/index.rst @@ -626,6 +626,23 @@ Graphical User Interface Not all existing examples made it into this section. You can find more under `Arcade GUI Examples `_ +Graphical User Interface (Experimentals) +---------------------------------------- + +.. figure:: images/thumbs/gui_exp_hidden_password.png + :figwidth: 170px + :target: gui_exp_hidden_password.html + + :ref:`gui_exp_hidden_password` + + +.. note:: + + Experimental widgets are not yet part of the official release. + They are subject to change and may not be fully functional. + + Feedback is very welcome, please let us know what you think about them. + Grid-Based Games