mirror of
https://gitee.com/idea4good/GuiLite.git
synced 2026-01-02 20:42:29 +08:00
!21 add guilite cube
* add GuiLite cube * rename fb.rect to fb.visible_rect
This commit is contained in:
@@ -1,3 +1,7 @@
|
|||||||
|
<p align="center">
|
||||||
|
<img src="doc/GuiLiteCube.gif" alt="Image" width="600" height="300"/>
|
||||||
|
</p>
|
||||||
|
|
||||||
# GuiLite - The smallest GUI library
|
# GuiLite - The smallest GUI library
|
||||||
    
|
    
|
||||||
- [中文](README_zh.md)
|
- [中文](README_zh.md)
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
<p align="center">
|
||||||
|
<img src="doc/GuiLiteCube.gif" alt="Image" width="600" height="300"/>
|
||||||
|
</p>
|
||||||
|
|
||||||
# GuiLite(超轻量UI框架) - 最小的GUI库
|
# GuiLite(超轻量UI框架) - 最小的GUI库
|
||||||
    
|
    
|
||||||
- [功能介绍](#功能介绍)
|
- [功能介绍](#功能介绍)
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ c_surface::c_surface(c_display* display, unsigned int width, unsigned int heigh
|
|||||||
m_fb = m_usr = 0;
|
m_fb = m_usr = 0;
|
||||||
m_top_zorder = m_max_zorder = Z_ORDER_LEVEL_0;
|
m_top_zorder = m_max_zorder = Z_ORDER_LEVEL_0;
|
||||||
m_is_active = false;
|
m_is_active = false;
|
||||||
m_frame_layers[Z_ORDER_LEVEL_0].rect = c_rect(0, 0, m_width, m_height);
|
m_frame_layers[Z_ORDER_LEVEL_0].visible_rect = c_rect(0, 0, m_width, m_height);
|
||||||
}
|
}
|
||||||
|
|
||||||
void c_surface::set_surface(void* wnd_root, Z_ORDER_LEVEL max_z_order)
|
void c_surface::set_surface(void* wnd_root, Z_ORDER_LEVEL max_z_order)
|
||||||
@@ -63,7 +63,7 @@ void c_surface::draw_pixel(int x, int y, unsigned int rgb, unsigned int z_order)
|
|||||||
m_top_zorder = (Z_ORDER_LEVEL)z_order;
|
m_top_zorder = (Z_ORDER_LEVEL)z_order;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (0 == m_frame_layers[z_order].rect.PtInRect(x, y))
|
if (0 == m_frame_layers[z_order].visible_rect.PtInRect(x, y))
|
||||||
{
|
{
|
||||||
ASSERT(false);
|
ASSERT(false);
|
||||||
return;
|
return;
|
||||||
@@ -78,7 +78,7 @@ void c_surface::draw_pixel(int x, int y, unsigned int rgb, unsigned int z_order)
|
|||||||
bool is_covered = false;
|
bool is_covered = false;
|
||||||
for (int tmp_z_order = Z_ORDER_LEVEL_MAX - 1; tmp_z_order > z_order; tmp_z_order--)
|
for (int tmp_z_order = Z_ORDER_LEVEL_MAX - 1; tmp_z_order > z_order; tmp_z_order--)
|
||||||
{
|
{
|
||||||
if (true == m_frame_layers[tmp_z_order].rect.PtInRect(x, y))
|
if (true == m_frame_layers[tmp_z_order].visible_rect.PtInRect(x, y))
|
||||||
{
|
{
|
||||||
is_covered = true;
|
is_covered = true;
|
||||||
break;
|
break;
|
||||||
@@ -354,9 +354,9 @@ void c_surface::draw_rect(int x0, int y0, int x1, int y1, unsigned int rgb, unsi
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int c_surface::set_frame_layer(c_rect& rect, unsigned int z_order)
|
int c_surface::set_frame_layer_visible_rect(c_rect& rect, unsigned int z_order)
|
||||||
{
|
{
|
||||||
if (rect == m_frame_layers[z_order].rect)
|
if (rect == m_frame_layers[z_order].visible_rect)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -380,7 +380,7 @@ int c_surface::set_frame_layer(c_rect& rect, unsigned int z_order)
|
|||||||
}
|
}
|
||||||
m_top_zorder = (Z_ORDER_LEVEL)z_order;
|
m_top_zorder = (Z_ORDER_LEVEL)z_order;
|
||||||
|
|
||||||
c_rect old_rect = m_frame_layers[z_order].rect;
|
c_rect old_rect = m_frame_layers[z_order].visible_rect;
|
||||||
//Recover the lower layer
|
//Recover the lower layer
|
||||||
int src_zorder = (Z_ORDER_LEVEL)(z_order - 1);
|
int src_zorder = (Z_ORDER_LEVEL)(z_order - 1);
|
||||||
int display_width = m_display->get_width();
|
int display_width = m_display->get_width();
|
||||||
@@ -398,7 +398,7 @@ int c_surface::set_frame_layer(c_rect& rect, unsigned int z_order)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
m_frame_layers[z_order].rect = rect;
|
m_frame_layers[z_order].visible_rect = rect;
|
||||||
if (rect.IsEmpty())
|
if (rect.IsEmpty())
|
||||||
{
|
{
|
||||||
m_top_zorder = (Z_ORDER_LEVEL)(z_order - 1);
|
m_top_zorder = (Z_ORDER_LEVEL)(z_order - 1);
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
#ifndef GAL_H
|
#ifndef SURFACE_H
|
||||||
#define GAL_H
|
#define SURFACE_H
|
||||||
|
|
||||||
class c_frame_layer
|
class c_frame_layer
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
c_frame_layer() { fb = 0;}
|
c_frame_layer() { fb = 0;}
|
||||||
unsigned short* fb;
|
unsigned short* fb;
|
||||||
c_rect rect;
|
c_rect visible_rect;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
@@ -52,7 +52,7 @@ public:
|
|||||||
bool is_active() { return m_is_active; }
|
bool is_active() { return m_is_active; }
|
||||||
c_display* get_display() { return m_display; }
|
c_display* get_display() { return m_display; }
|
||||||
|
|
||||||
int set_frame_layer(c_rect& rect, unsigned int z_order);
|
int set_frame_layer_visible_rect(c_rect& rect, unsigned int z_order);
|
||||||
void set_active(bool flag){m_is_active = flag;}
|
void set_active(bool flag){m_is_active = flag;}
|
||||||
protected:
|
protected:
|
||||||
virtual void fill_rect_on_fb(int x0, int y0, int x1, int y1, unsigned int rgb);
|
virtual void fill_rect_on_fb(int x0, int y0, int x1, int y1, unsigned int rgb);
|
||||||
|
|||||||
BIN
doc/GuiLiteCube.gif
Normal file
BIN
doc/GuiLiteCube.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 991 KiB |
@@ -61,7 +61,7 @@ int c_dialog::open_dialog(c_dialog* p_dlg, bool modal_mode)
|
|||||||
|
|
||||||
c_rect rc;
|
c_rect rc;
|
||||||
p_dlg->get_screen_rect(rc);
|
p_dlg->get_screen_rect(rc);
|
||||||
p_dlg->get_surface()->set_frame_layer(rc, Z_ORDER_LEVEL_1);
|
p_dlg->get_surface()->set_frame_layer_visible_rect(rc, Z_ORDER_LEVEL_1);
|
||||||
|
|
||||||
p_dlg->set_attr(modal_mode ? (WND_ATTRIBUTION)(ATTR_VISIBLE | ATTR_FOCUS | ATTR_MODAL) : (WND_ATTRIBUTION)(ATTR_VISIBLE | ATTR_FOCUS));
|
p_dlg->set_attr(modal_mode ? (WND_ATTRIBUTION)(ATTR_VISIBLE | ATTR_FOCUS | ATTR_MODAL) : (WND_ATTRIBUTION)(ATTR_VISIBLE | ATTR_FOCUS));
|
||||||
p_dlg->show_window();
|
p_dlg->show_window();
|
||||||
@@ -80,7 +80,7 @@ int c_dialog::close_dialog(c_surface* surface)
|
|||||||
c_rect rc;
|
c_rect rc;
|
||||||
|
|
||||||
dlg->set_attr(WND_ATTRIBUTION(0));
|
dlg->set_attr(WND_ATTRIBUTION(0));
|
||||||
surface->set_frame_layer(rc, dlg->m_z_order);
|
surface->set_frame_layer_visible_rect(rc, dlg->m_z_order);
|
||||||
|
|
||||||
//clear the dialog
|
//clear the dialog
|
||||||
for(int i = 0; i < SURFACE_CNT_MAX; i++)
|
for(int i = 0; i < SURFACE_CNT_MAX; i++)
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ void c_edit::on_paint()
|
|||||||
if (m_z_order > m_parent->get_z_order())
|
if (m_z_order > m_parent->get_z_order())
|
||||||
{
|
{
|
||||||
s_keyboard.disconnect();
|
s_keyboard.disconnect();
|
||||||
m_surface->set_frame_layer(empty_rect, s_keyboard.get_z_order());
|
m_surface->set_frame_layer_visible_rect(empty_rect, s_keyboard.get_z_order());
|
||||||
m_z_order = m_parent->get_z_order();
|
m_z_order = m_parent->get_z_order();
|
||||||
m_attr = (WND_ATTRIBUTION)(ATTR_VISIBLE | ATTR_FOCUS);
|
m_attr = (WND_ATTRIBUTION)(ATTR_VISIBLE | ATTR_FOCUS);
|
||||||
}
|
}
|
||||||
@@ -133,7 +133,7 @@ void c_edit::on_paint()
|
|||||||
if (m_z_order > m_parent->get_z_order())
|
if (m_z_order > m_parent->get_z_order())
|
||||||
{
|
{
|
||||||
s_keyboard.disconnect();
|
s_keyboard.disconnect();
|
||||||
m_surface->set_frame_layer(empty_rect, s_keyboard.get_z_order());
|
m_surface->set_frame_layer_visible_rect(empty_rect, s_keyboard.get_z_order());
|
||||||
m_z_order = m_parent->get_z_order();
|
m_z_order = m_parent->get_z_order();
|
||||||
m_attr = (WND_ATTRIBUTION)(ATTR_VISIBLE | ATTR_FOCUS);
|
m_attr = (WND_ATTRIBUTION)(ATTR_VISIBLE | ATTR_FOCUS);
|
||||||
}
|
}
|
||||||
@@ -163,7 +163,7 @@ void c_edit::show_keyboard()
|
|||||||
|
|
||||||
c_rect kb_rect;
|
c_rect kb_rect;
|
||||||
s_keyboard.get_screen_rect(kb_rect);
|
s_keyboard.get_screen_rect(kb_rect);
|
||||||
m_surface->set_frame_layer(kb_rect, s_keyboard.get_z_order());
|
m_surface->set_frame_layer_visible_rect(kb_rect, s_keyboard.get_z_order());
|
||||||
s_keyboard.show_window();
|
s_keyboard.show_window();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ void c_list_box::on_paint()
|
|||||||
case STATUS_NORMAL:
|
case STATUS_NORMAL:
|
||||||
if (m_z_order > m_parent->get_z_order())
|
if (m_z_order > m_parent->get_z_order())
|
||||||
{
|
{
|
||||||
m_surface->set_frame_layer(empty_rect, m_z_order);
|
m_surface->set_frame_layer_visible_rect(empty_rect, m_z_order);
|
||||||
m_z_order = m_parent->get_z_order();
|
m_z_order = m_parent->get_z_order();
|
||||||
m_attr = (WND_ATTRIBUTION)(ATTR_VISIBLE | ATTR_FOCUS);
|
m_attr = (WND_ATTRIBUTION)(ATTR_VISIBLE | ATTR_FOCUS);
|
||||||
}
|
}
|
||||||
@@ -56,7 +56,7 @@ void c_list_box::on_paint()
|
|||||||
case STATUS_FOCUSED:
|
case STATUS_FOCUSED:
|
||||||
if (m_z_order > m_parent->get_z_order())
|
if (m_z_order > m_parent->get_z_order())
|
||||||
{
|
{
|
||||||
m_surface->set_frame_layer(empty_rect, m_z_order);
|
m_surface->set_frame_layer_visible_rect(empty_rect, m_z_order);
|
||||||
m_z_order = m_parent->get_z_order();
|
m_z_order = m_parent->get_z_order();
|
||||||
m_attr = (WND_ATTRIBUTION)(ATTR_VISIBLE | ATTR_FOCUS);
|
m_attr = (WND_ATTRIBUTION)(ATTR_VISIBLE | ATTR_FOCUS);
|
||||||
}
|
}
|
||||||
@@ -74,7 +74,7 @@ void c_list_box::on_paint()
|
|||||||
{
|
{
|
||||||
m_z_order++;
|
m_z_order++;
|
||||||
}
|
}
|
||||||
m_surface->set_frame_layer(m_list_screen_rect, m_z_order);
|
m_surface->set_frame_layer_visible_rect(m_list_screen_rect, m_z_order);
|
||||||
m_attr = (WND_ATTRIBUTION)(ATTR_VISIBLE | ATTR_FOCUS | ATTR_MODAL);
|
m_attr = (WND_ATTRIBUTION)(ATTR_VISIBLE | ATTR_FOCUS | ATTR_MODAL);
|
||||||
show_list();
|
show_list();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -126,7 +126,7 @@ void c_spin_box::on_paint()
|
|||||||
if (m_z_order > m_parent->get_z_order())
|
if (m_z_order > m_parent->get_z_order())
|
||||||
{
|
{
|
||||||
hide_arrow_button();
|
hide_arrow_button();
|
||||||
m_surface->set_frame_layer(empty_rect, m_z_order);
|
m_surface->set_frame_layer_visible_rect(empty_rect, m_z_order);
|
||||||
m_z_order = m_parent->get_z_order();
|
m_z_order = m_parent->get_z_order();
|
||||||
}
|
}
|
||||||
m_surface->fill_rect(rect, c_theme::get_color(COLOR_WND_NORMAL), m_z_order);
|
m_surface->fill_rect(rect, c_theme::get_color(COLOR_WND_NORMAL), m_z_order);
|
||||||
@@ -136,7 +136,7 @@ void c_spin_box::on_paint()
|
|||||||
if (m_z_order > m_parent->get_z_order())
|
if (m_z_order > m_parent->get_z_order())
|
||||||
{
|
{
|
||||||
hide_arrow_button();
|
hide_arrow_button();
|
||||||
m_surface->set_frame_layer(empty_rect, m_z_order);
|
m_surface->set_frame_layer_visible_rect(empty_rect, m_z_order);
|
||||||
m_z_order = m_parent->get_z_order();
|
m_z_order = m_parent->get_z_order();
|
||||||
}
|
}
|
||||||
m_surface->fill_rect(rect, c_theme::get_color(COLOR_WND_FOCUS), m_z_order);
|
m_surface->fill_rect(rect, c_theme::get_color(COLOR_WND_FOCUS), m_z_order);
|
||||||
@@ -149,7 +149,7 @@ void c_spin_box::on_paint()
|
|||||||
}
|
}
|
||||||
tmp_rect.m_top = m_bt_down_rect.m_top;
|
tmp_rect.m_top = m_bt_down_rect.m_top;
|
||||||
tmp_rect.m_bottom = m_bt_down_rect.m_bottom;
|
tmp_rect.m_bottom = m_bt_down_rect.m_bottom;
|
||||||
m_surface->set_frame_layer(tmp_rect, m_z_order);
|
m_surface->set_frame_layer_visible_rect(tmp_rect, m_z_order);
|
||||||
show_arrow_button();
|
show_arrow_button();
|
||||||
|
|
||||||
m_surface->fill_rect(rect.m_left, rect.m_top, rect.m_right, rect.m_bottom, c_theme::get_color(COLOR_WND_PUSHED), m_parent->get_z_order());
|
m_surface->fill_rect(rect.m_left, rect.m_top, rect.m_right, rect.m_bottom, c_theme::get_color(COLOR_WND_PUSHED), m_parent->get_z_order());
|
||||||
|
|||||||
Reference in New Issue
Block a user