From 4dbaacf091136fd0976a72eed3412f8a9e23b09a Mon Sep 17 00:00:00 2001 From: Maic Siemering Date: Sat, 28 Sep 2024 21:40:34 +0200 Subject: [PATCH] Gui/more docs (#2373) * Improve own_widget docs * Add own_layout doc and list own_X examples * Add UIWidget.visible flag to gui docs * Clarify usage of Properties --- arcade/examples/gui/own_layout.py | 116 ++++++++++++++++++ .../gui/{own_progressbar.py => own_widget.py} | 4 +- doc/example_code/images/gui_own_layout.png | Bin 0 -> 106480 bytes doc/example_code/images/gui_own_widgets.png | Bin 0 -> 83022 bytes doc/example_code/index.rst | 12 ++ doc/programming_guide/gui/concepts.rst | 25 ++-- doc/programming_guide/gui/index.rst | 1 + doc/programming_guide/gui/own_layout.rst | 40 ++++++ doc/programming_guide/gui/own_widgets.rst | 18 +-- 9 files changed, 197 insertions(+), 19 deletions(-) create mode 100644 arcade/examples/gui/own_layout.py rename arcade/examples/gui/{own_progressbar.py => own_widget.py} (97%) create mode 100644 doc/example_code/images/gui_own_layout.png create mode 100644 doc/example_code/images/gui_own_widgets.png create mode 100644 doc/programming_guide/gui/own_layout.rst diff --git a/arcade/examples/gui/own_layout.py b/arcade/examples/gui/own_layout.py new file mode 100644 index 000000000..4c42bc2f8 --- /dev/null +++ b/arcade/examples/gui/own_layout.py @@ -0,0 +1,116 @@ +"""Example of creating a custom progress bar. + +This example shows how to create a custom layout. + +The layout will place the widgets in a rotating circle around the center of the screen. + +If arcade and Python are properly installed, you can run this example with: +python -m arcade.examples.gui.own_layout +""" + +from __future__ import annotations + +from math import cos, sin + +import arcade +from arcade.gui import UIAnchorLayout, UIFlatButton, UILayout, UIView, UIWidget + + +class CircleLayout(UILayout): + """A custom progress bar widget. + + A UIAnchorLayout is a layout that arranges its children in a specific way. + The actual bar is a UISpace that fills the parent widget from left to right. + """ + + def __init__(self, size_hint=(1, 1), **kwargs): + super().__init__(size_hint=size_hint, **kwargs) + self._time = 0 # used for rotation + + def add(self, child: UIWidget, **kwargs) -> UIWidget: + """Add a widget to the layout. + + The widget is placed in a circle around the center of the screen. + """ + return super().add(child, **kwargs) + + def do_layout(self): + """Layout the children in a circle around the center of the screen.""" + if not self._children: + return + + # handle the size hints of the children + for child in self.children: + self._resize_child(child) + + # calculate the radius, so that the children are placed inside the parent widget + max_child_width = max(child.content_width for child in self.children) + max_child_height = max(child.content_height for child in self.children) + radius = ( + min(self.content_width - max_child_width, self.content_height - max_child_height) / 2 + ) + + for i, child in enumerate(self.children): + angle = i / len(self.children) * 2 * 3.1415 + # add rotation based on time + angle += self._time * 0.08 + center_x = self.center_x + radius * cos(angle) + center_y = self.center_y + radius * sin(angle) + + new_rect = child.rect.align_center((center_x, center_y)) + child.rect = new_rect + + def _resize_child(self, child: UIWidget): + """Resizes the child based on the size_hint, size_hint_min, and size_hint_max.""" + new_child_rect = child.rect + + sh_w, sh_h = child.size_hint or (None, None) + shmn_w, shmn_h = child.size_hint_min or (None, None) + shmx_w, shmx_h = child.size_hint_max or (None, None) + + if sh_w is not None: + new_child_rect = new_child_rect.resize(width=self.content_width * sh_w) + + if shmn_w: + new_child_rect = new_child_rect.min_size(width=shmn_w) + if shmx_w: + new_child_rect = new_child_rect.max_size(width=shmx_w) + + if sh_h is not None: + new_child_rect = new_child_rect.resize(height=self.content_height * sh_h) + + if shmn_h: + new_child_rect = new_child_rect.min_size(height=shmn_h) + if shmx_h: + new_child_rect = new_child_rect.max_size(height=shmx_h) + + child.rect = new_child_rect + + def on_update(self, dt): + self._time += dt + + +class MyView(UIView): + def __init__(self): + super().__init__() + self.background_color = arcade.uicolor.BLUE_BELIZE_HOLE + + root = self.ui.add(UIAnchorLayout()) + + # Create a custom layout + self.circle_layout = root.add(CircleLayout(size_hint=(0.8, 0.8))) + + # Add buttons to the layout + for i in range(8): + self.circle_layout.add( + UIFlatButton( + text=f"Button {i}", + size_hint=(0.1, 0.1), + ) + ) + + +if __name__ == "__main__": + window = arcade.Window(title="GUI Example: CircleLayout") + window.show_view(MyView()) + arcade.run() diff --git a/arcade/examples/gui/own_progressbar.py b/arcade/examples/gui/own_widget.py similarity index 97% rename from arcade/examples/gui/own_progressbar.py rename to arcade/examples/gui/own_widget.py index 5ed87993f..a6e468b11 100644 --- a/arcade/examples/gui/own_progressbar.py +++ b/arcade/examples/gui/own_widget.py @@ -19,7 +19,7 @@ Read more about properties in the `arcade.gui` documentation. If arcade and Python are properly installed, you can run this example with: -python -m arcade.examples.gui.own_progressbar +python -m arcade.examples.gui.own_widgets """ from __future__ import annotations @@ -127,7 +127,7 @@ def _update_bar(self): class MyView(UIView): def __init__(self): super().__init__() - self.ui = arcade.gui.UIManager() + self.background_color = arcade.uicolor.BLUE_BELIZE_HOLE root = self.ui.add(UIAnchorLayout()) bars = root.add(UIBoxLayout(space_between=10)) diff --git a/doc/example_code/images/gui_own_layout.png b/doc/example_code/images/gui_own_layout.png new file mode 100644 index 0000000000000000000000000000000000000000..e88d8a30c16dc7f6c808c597af39d27b9d8eb04d GIT binary patch literal 106480 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 V{EypBP4=|U?x2wO>H-d(`WG%H^}YZA literal 0 HcmV?d00001 diff --git a/doc/example_code/images/gui_own_widgets.png b/doc/example_code/images/gui_own_widgets.png new file mode 100644 index 0000000000000000000000000000000000000000..cc9ccd83991e7e4609a05adba3b4ed729e30e49c GIT binary patch literal 83022 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%0DRl&n(%^!E93a`)AP7(otUFu1 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 literal 0 HcmV?d00001 diff --git a/doc/example_code/index.rst b/doc/example_code/index.rst index f78a2fd42..0ff999fa9 100644 --- a/doc/example_code/index.rst +++ b/doc/example_code/index.rst @@ -628,6 +628,18 @@ Graphical User Interface :ref:`gui_6_size_hints` +.. figure:: images/thumbs/gui_own_widgets.png + :figwidth: 170px + :target: gui_own_widgets.html + + :ref:`gui_own_widgets` + +.. figure:: images/thumbs/gui_own_layout.png + :figwidth: 170px + :target: gui_own_layout.html + + :ref:`gui_own_layout` + .. note:: Not all existing examples made it into this section. You can find more under `Arcade GUI Examples `_ diff --git a/doc/programming_guide/gui/concepts.rst b/doc/programming_guide/gui/concepts.rst index af309251b..043b11a97 100644 --- a/doc/programming_guide/gui/concepts.rst +++ b/doc/programming_guide/gui/concepts.rst @@ -63,6 +63,11 @@ A :class:`UIWidget` has following properties. move or resize its children; use a :py:class:`~arcade.gui.UILayout` instead. +``visible`` + A boolean indicating if the widget is visible or not. If a widget is not + visible, itself and any child widget will not be rendered. + Especially useful for hiding parts of the GUI like dialogs or popups. + ``size_hint`` A tuple of two normalized floats (``0.0``-``1.0``) describing the portion of the parent's width and height this widget prefers to occupy. @@ -237,9 +242,9 @@ behaviour. Currently the available Mixins are still under heavy development. Available: -- :py:class:`UIDraggableMixin` -- :py:class:`UIMouseFilterMixin` -- :py:class:`UIWindowLikeMixin` +- :py:class:`UIDraggableMixin` - Makes a widget draggable with the mouse. +- :py:class:`UIMouseFilterMixin` - Captures all mouse events. +- :py:class:`UIWindowLikeMixin` - Makes a widget behave like a window, combining draggable and mouse filter behaviour. UIConstructs ============ @@ -248,8 +253,8 @@ Constructs are predefined structures of widgets and layouts like a message box. Available: -- :py:class:`UIMessageBox` -- :py:class:`UIButtonRow` +- :py:class:`UIMessageBox` - A simple message box with a title, message and buttons. +- :py:class:`UIButtonRow` - A row of buttons. Available Elements ================== @@ -511,8 +516,8 @@ game developer should mostly interact with user-interface events, which are dispatched from specific :py:class:`~arcade.gui.UIWidget`s like an ``on_click`` of a button. -In rare cases a developer might implement some widgets themselves or want to -modify the existing GUI behavior. In those cases a developer might register own +In cases where a developer implement own widgets themselves or want to +modify the existing GUI behavior, the developer might register own pyglet event types on widgets or overwrite the :py:class:`~arcade.gui.UIWidget.on_event` method. In that case, refer to existing widgets as an example. @@ -552,6 +557,8 @@ events. Property ```````` -:py:class:`~arcade.gui.Property` is an pure-Python implementation of Kivy -like Properties. They are used to detect attribute changes of widgets and trigger +:py:class:`~arcade.gui.Property` is an pure-Python implementation of Kivy-like Properties. +They are used to detect attribute changes of widgets and especially to trigger rendering. They are mostly used within GUI widgets, but are globally available since 3.0.0. + +Properties are a less verbose way to implement the observer pattern compared to the property decorator. diff --git a/doc/programming_guide/gui/index.rst b/doc/programming_guide/gui/index.rst index 02f95321c..44129d87b 100644 --- a/doc/programming_guide/gui/index.rst +++ b/doc/programming_guide/gui/index.rst @@ -34,6 +34,7 @@ Find the required information in the following sections: layouts style own_widgets + own_layout diff --git a/doc/programming_guide/gui/own_layout.rst b/doc/programming_guide/gui/own_layout.rst new file mode 100644 index 000000000..e63ca7495 --- /dev/null +++ b/doc/programming_guide/gui/own_layout.rst @@ -0,0 +1,40 @@ +.. _gui_own_layout: + +Own Layout +---------- + +Creating own layouts is the master class of creating own widgets. +It allows you to create custom layouts that can be used in your application to position widgets. + +General use cases for own layouts are: + +- Create a layout that positions widgets in a specific way, like in a circle. +- Animate widgets in a specific way, like a carousel. + +Where to start +~~~~~~~~~~~~~~ + +To create own layout, you need to create a new class that inherits from :class:`arcade.gui.UILayout`. + +The main method you need to implement is: + +- :meth:`arcade.gui.UILayout.do_layout` - This method is called to layout the child widgets. + +Widgets added to the layout are accessible via the :attr:`arcade.gui.UILayout._children` attribute, +which is a list of all added widgets with the parameter provided when added. + +Children should be placed within the bounds of the layout. +And should respect size_hint, size_hint_min and size_hint_max of the children. + + +It also provides a great user experience when you provide custom docs for the :meth:`arcade.gui.UIWidget.add` method. +So the user knows how to add widgets to your layout and which parameter are supported. + +In the following example, we will create a layout that positions widgets in a circle and slowly rotating them. + +Example `CircleLayout` +~~~~~~~~~~~~~~~~~~~~~~ + +.. literalinclude:: ../../../arcade/examples/gui/own_layout.py + + diff --git a/doc/programming_guide/gui/own_widgets.rst b/doc/programming_guide/gui/own_widgets.rst index ce9a5ae6d..b12974f12 100644 --- a/doc/programming_guide/gui/own_widgets.rst +++ b/doc/programming_guide/gui/own_widgets.rst @@ -17,20 +17,22 @@ Where to start To create own widgets, you need to create a new class that inherits from :class:`arcade.gui.UIWidget`. -While inheriting from :class:`arcade.gui.UIWidget`, provides the highest flexibility, -you can also make use of other base classes, which provide a more specialized interface. +While inheriting from :class:`arcade.gui.UIWidget`, provides the highest flexibility. +The main methods you need to implement are: +- :meth:`arcade.gui.UIWidget.do_render` - This method is called to render the widget. +- :meth:`arcade.gui.UIWidget.on_event` - This method is called to handle events like mouse or keyboard input. +- :meth:`arcade.gui.UIWidget.on_update` - This method is called to update the widget (same frequency like window). +You can also make use of other base classes, which provide a more specialized interface. Further baseclasses are: - :class:`arcade.gui.UIInteractiveWidget` `UIInteractiveWidget` is a baseclass for widgets that can be interacted with. - It provides a way to handle mouse events and properties like `hovered` or `pressed`. - In addition it already implements the `on_click` method, - which can be used to react to a click event. + It handles mouse events and provides properties like `hovered` or `pressed` and an :meth:`on_click` method. - :class:`arcade.gui.UIAnchorLayout` - `UIAnchorLayout` is basically a frame, which can be used to position widgets - to a place within the widget. This makes it a great baseclass for a widget containing + `UIAnchorLayout` is basically a frame, which can be used to place widgets + to a position within itself. This makes it a great baseclass for a widget containing multiple other widgets. (Examples: `MessageBox`, `Card`, etc.) If your widget should act more as a general layout, position various widgets and handle their size, @@ -43,6 +45,6 @@ to show the differences between two of the base classes. Example `ProgressBar` ~~~~~~~~~~~~~~~~~~~~~ -.. literalinclude:: ../../../arcade/examples/gui/own_progressbar.py +.. literalinclude:: ../../../arcade/examples/gui/own_widget.py