GuiLite do 2 things only: widgets management and rendering.
Widgets management include:
Rendering include:
👉Note: Rendering do not depend on Widgets management, In some case, you would render line/text/bitmap directly without any widgets in your GUI system. For example: Limted resource MCU platform.
In order to make GuiLite simple and clear, GuiLite only provide basic widgets(e.g, button, label, keyboard, spinx etc) implementation. If you want do more things on widgets, you can do it like this:
If you would extend drawing method(e.g, draw circle/eclipse etc.), you can add your method in surface.cpp directly.
How to render? See function draw_xxx() in surface.cpp word.cpp bitmap.cpp.
core folder:
widgets folder:
Widgets include button, spinbox, label, keyboard, dialog, view; GuiLite will link all widgets by function: connect, then GuiLite will easy to find/add/remove any widget quickly. All the connections looks like a tree.
For example: When you click a button, device get your finger location(x, y) will be send the root of the tree, GuiLite would find the button you click by comparing location information, then call the response function(e.g, repaint the button/change button status)
All widgets derived from class c_wnd. The widget will be created when the class has been instanced, at this time, the widget still alone, has nothing to do with UI system, could not response any user operation.
By using "connect()" function, we can link this widget into widgets tree, then the widgets could response user touch/keyboard action.
By using "disconnect()" function to unlink this widget from UI system. then the widget still live in memory, but could not response user touch/keyboard action any more.
Rendering include rendering method and graphic management.
core Importance/File name | Introduction | Time cost |
---|---|---|
★★★ wnd.h | Basic class for widgets; connect/disconnect widgets; response user on_touch, on_key action | 1.5 hour |
★★ display.h | Initialize display device, create surface, | 0.5 hour |
word.h | Draw text | < 1 hour |
image.h | Draw bitmap | < 0.5 hour |
rect.h | Rect for basic use(e.g, widgets location) | < 0.5 hour |
api_linux.cpp | Adapter for Linux | < 0.5 hour |
api_win.cpp | Adapter for Windows | < 0.5 hour |
api_unknow.cpp | Adapter for other OS or none OS | < 0.5 hour |
widgets Difficulty/File name | Introduction | Time cost |
---|---|---|
label.h | Draw label | < 0.5 hour |
button.h | Draw/Click button | < 0.5 hour |
table.h | Draw table | < 0.5 hour |
dialog.h | Draw/Open/Close dialog | < 0.5 hour |
★ keyboard.h | Draw/Click keyboard | 0.5 hour |
★★ list_box.h | Draw/Click list box | 1.5 hour |
★★ spinbox.h | Draw/Click spin box | 1.5 hour |
★★ edit.h | Draw/Click edit widget | 1.5 hour |
★ slide_group.cpp | Draw multiple screens & Swip screen | 1.5 hour |
★★★ wave_buffer.h | Manage wave buffer data | 1.5 hour |
★★★ wave_ctrl.h | Draw wave widget with wave buffer data | 1.5 hour |
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )