LibGUI: Improve widget registration mechanism a bit
Allow registering widgets from namespaces other than GUI. :^) Also add a few widgets.
This commit is contained in:
parent
3ab706cac3
commit
3c580233d1
Notes:
sideshowbarker
2024-07-19 02:25:50 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/3c580233d1b
2 changed files with 22 additions and 13 deletions
|
@ -40,7 +40,11 @@
|
|||
#include <LibGUI/ScrollBar.h>
|
||||
#include <LibGUI/Slider.h>
|
||||
#include <LibGUI/SpinBox.h>
|
||||
#include <LibGUI/Splitter.h>
|
||||
#include <LibGUI/StatusBar.h>
|
||||
#include <LibGUI/TextBox.h>
|
||||
#include <LibGUI/ToolBar.h>
|
||||
#include <LibGUI/ToolBarContainer.h>
|
||||
#include <LibGUI/Widget.h>
|
||||
#include <LibGUI/Window.h>
|
||||
#include <LibGUI/WindowServerConnection.h>
|
||||
|
@ -51,16 +55,21 @@
|
|||
|
||||
namespace GUI {
|
||||
|
||||
REGISTER_WIDGET(Button)
|
||||
REGISTER_WIDGET(CheckBox)
|
||||
REGISTER_WIDGET(GroupBox)
|
||||
REGISTER_WIDGET(Label)
|
||||
REGISTER_WIDGET(RadioButton)
|
||||
REGISTER_WIDGET(ScrollBar)
|
||||
REGISTER_WIDGET(Slider)
|
||||
REGISTER_WIDGET(SpinBox)
|
||||
REGISTER_WIDGET(TextBox)
|
||||
REGISTER_WIDGET(Widget)
|
||||
REGISTER_WIDGET(GUI, Button)
|
||||
REGISTER_WIDGET(GUI, CheckBox)
|
||||
REGISTER_WIDGET(GUI, GroupBox)
|
||||
REGISTER_WIDGET(GUI, HorizontalSplitter)
|
||||
REGISTER_WIDGET(GUI, Label)
|
||||
REGISTER_WIDGET(GUI, RadioButton)
|
||||
REGISTER_WIDGET(GUI, ScrollBar)
|
||||
REGISTER_WIDGET(GUI, Slider)
|
||||
REGISTER_WIDGET(GUI, SpinBox)
|
||||
REGISTER_WIDGET(GUI, StatusBar)
|
||||
REGISTER_WIDGET(GUI, TextBox)
|
||||
REGISTER_WIDGET(GUI, TextEditor)
|
||||
REGISTER_WIDGET(GUI, ToolBar)
|
||||
REGISTER_WIDGET(GUI, ToolBarContainer)
|
||||
REGISTER_WIDGET(GUI, Widget)
|
||||
|
||||
static HashMap<String, WidgetClassRegistration*>& widget_classes()
|
||||
{
|
||||
|
|
|
@ -38,9 +38,9 @@
|
|||
#include <LibGfx/Rect.h>
|
||||
#include <LibGfx/StandardCursor.h>
|
||||
|
||||
#define REGISTER_WIDGET(class_name) \
|
||||
extern WidgetClassRegistration registration_##class_name; \
|
||||
WidgetClassRegistration registration_##class_name(#class_name, []() { return class_name::construct(); });
|
||||
#define REGISTER_WIDGET(namespace_, class_name) \
|
||||
extern GUI::WidgetClassRegistration registration_##class_name; \
|
||||
GUI::WidgetClassRegistration registration_##class_name(#namespace_ "::" #class_name, []() { return namespace_::class_name::construct(); });
|
||||
|
||||
namespace GUI {
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue