System/Libraries/Widget: Add RectWidget, BorderedRectWidget
This commit is contained in:
parent
f3acdca538
commit
cfb8950f8a
1 changed files with 31 additions and 0 deletions
|
@ -17,6 +17,8 @@
|
||||||
#define WIDGET_TYPE_VERT_SCROLLBAR 13
|
#define WIDGET_TYPE_VERT_SCROLLBAR 13
|
||||||
#define WIDGET_TYPE_MENU_ITEM 14
|
#define WIDGET_TYPE_MENU_ITEM 14
|
||||||
#define WIDGET_TYPE_LISTVIEW 15
|
#define WIDGET_TYPE_LISTVIEW 15
|
||||||
|
#define WIDGET_TYPE_RECT 20
|
||||||
|
#define WIDGET_TYPE_BORDERED_RECT 21
|
||||||
|
|
||||||
#define TERMINAL_MAX_COLS 1920 / 8
|
#define TERMINAL_MAX_COLS 1920 / 8
|
||||||
|
|
||||||
|
@ -67,6 +69,23 @@ class RadioButtonWidget : Widget {
|
||||||
Bool selected;
|
Bool selected;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class RectWidget : Widget {
|
||||||
|
U32 color;
|
||||||
|
};
|
||||||
|
|
||||||
|
class BorderedRectBorder {
|
||||||
|
I64 size;
|
||||||
|
I64 style;
|
||||||
|
U32 color;
|
||||||
|
};
|
||||||
|
|
||||||
|
class BorderedRectWidget : RectWidget {
|
||||||
|
BorderedRectBorder top;
|
||||||
|
BorderedRectBorder bottom;
|
||||||
|
BorderedRectBorder left;
|
||||||
|
BorderedRectBorder right;
|
||||||
|
};
|
||||||
|
|
||||||
class @terminal_widget_attr
|
class @terminal_widget_attr
|
||||||
{
|
{
|
||||||
Bool bold;
|
Bool bold;
|
||||||
|
@ -621,6 +640,12 @@ Widget* @widget_create_widget(Window* win, I64 type, I64 x, I64 y, I64 width,
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case WIDGET_TYPE_NULL:
|
case WIDGET_TYPE_NULL:
|
||||||
return NULL;
|
return NULL;
|
||||||
|
case WIDGET_TYPE_RECT:
|
||||||
|
size_of_widget = sizeof(RectWidget) * 2;
|
||||||
|
goto @widget_create_set_values;
|
||||||
|
case WIDGET_TYPE_BORDERED_RECT:
|
||||||
|
size_of_widget = sizeof(BorderedRectWidget) * 2;
|
||||||
|
goto @widget_create_set_values;
|
||||||
case WIDGET_TYPE_BUTTON:
|
case WIDGET_TYPE_BUTTON:
|
||||||
size_of_widget = sizeof(ButtonWidget) * 2;
|
size_of_widget = sizeof(ButtonWidget) * 2;
|
||||||
goto @widget_create_set_values;
|
goto @widget_create_set_values;
|
||||||
|
@ -720,6 +745,12 @@ U0 @widget_init_widget(Widget* widget, Window* win, I64 type, I64 x, I64 y,
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case WIDGET_TYPE_NULL:
|
case WIDGET_TYPE_NULL:
|
||||||
return;
|
return;
|
||||||
|
case WIDGET_TYPE_RECT:
|
||||||
|
size_of_widget = sizeof(RectWidget);
|
||||||
|
break;
|
||||||
|
case WIDGET_TYPE_BORDERED_RECT:
|
||||||
|
size_of_widget = sizeof(BorderedRectWidget);
|
||||||
|
break;
|
||||||
case WIDGET_TYPE_BUTTON:
|
case WIDGET_TYPE_BUTTON:
|
||||||
size_of_widget = sizeof(ButtonWidget);
|
size_of_widget = sizeof(ButtonWidget);
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue