diff --git a/arcade/gui/__init__.py b/arcade/gui/__init__.py index 84419670a0..05a3fe896c 100644 --- a/arcade/gui/__init__.py +++ b/arcade/gui/__init__.py @@ -30,6 +30,8 @@ from arcade.gui.widgets import UIInteractiveWidget from arcade.gui.widgets import UILayout from arcade.gui.widgets import UISpace +from arcade.gui.view import UIView +from arcade.gui.widgets.dropdown import UIDropdown from arcade.gui.widgets import UISpriteWidget from arcade.gui.widgets import UIWidget from arcade.gui.widgets.buttons import ( @@ -37,7 +39,6 @@ UITextureButtonStyle, UIFlatButton, ) -from arcade.gui.widgets.dropdown import UIDropdown from arcade.gui.widgets.image import UIImage from arcade.gui.widgets.layout import UIBoxLayout, UIAnchorLayout, UIGridLayout from arcade.gui.widgets.slider import UIBaseSlider, UISlider, UITextureSlider, UISliderStyle @@ -66,6 +67,7 @@ "UIInputText", "UILayout", "UILabel", + "UIView", "UIMouseEvent", "UIMouseDragEvent", "UIMouseMovementEvent", diff --git a/arcade/gui/view.py b/arcade/gui/view.py new file mode 100644 index 0000000000..75ad78bea8 --- /dev/null +++ b/arcade/gui/view.py @@ -0,0 +1,24 @@ +from arcade import View +from arcade.gui import UIManager + + +class UIView(View): + """This view provides basic GUI setup. + + This is a convenience class, which adds the UIManager to the view under `self.ui`. + The UIManager is enabled when the view is shown and disabled when the view is hidden. + + If you override ``on_show_view`` or ``on_show_view``, + don't forget to call super().on_show_view() or super().on_hide_view(). + + """ + + def __init__(self): + super().__init__() + self.ui = UIManager() + + def on_show_view(self): + self.ui.enable() + + def on_hide_view(self): + self.ui.disable() diff --git a/util/update_quick_index.py b/util/update_quick_index.py index 807cd4b908..9b03b5c549 100644 --- a/util/update_quick_index.py +++ b/util/update_quick_index.py @@ -76,6 +76,7 @@ 'gui/surface.py': ['GUI', 'gui.rst'], 'gui/ui_manager.py': ['GUI', 'gui.rst'], 'gui/nine_patch.py': ['GUI', 'gui.rst'], + 'gui/view.py': ['GUI', 'gui.rst'], 'widgets/__init__.py': ['GUI Widgets', 'gui_widgets.rst'], 'widgets/buttons.py': ['GUI Widgets', 'gui_widgets.rst'], 'widgets/dropdown.py': ['GUI Widgets', 'gui_widgets.rst'],