rename overlapped_zone to layer

This commit is contained in:
idea4good 2020-06-26 17:25:00 +08:00
parent 7a6e5d071f
commit 24db5c6c7e
6 changed files with 76 additions and 76 deletions

View File

@ -391,7 +391,7 @@ class c_display {
public:
inline c_display(void* phy_fb, int display_width, int display_height, int surface_width, int surface_height, unsigned int color_bytes, int surface_cnt, EXTERNAL_GFX_OP* gfx_op = 0);//multiple surface or surface_no_fb
inline c_display(void* phy_fb, int display_width, int display_height, c_surface* surface);//single custom surface
inline c_surface* alloc_surface(Z_ORDER_LEVEL max_zorder, c_rect overlap_rect = c_rect(0, 0, -1, -1));//for multiple surfaces
inline c_surface* alloc_surface(Z_ORDER_LEVEL max_zorder, c_rect layer_rect = c_rect(0, 0, -1, -1));//for multiple surfaces
inline int swipe_surface(c_surface* s0, c_surface* s1, int x0, int x1, int y0, int y1, int offset);
int get_width() { return m_width; }
int get_height() { return m_height; }
@ -449,10 +449,10 @@ private:
int m_surface_cnt;
int m_surface_index;
};
class c_overlap_zone
class c_layer
{
public:
c_overlap_zone() { fb = 0; }
c_layer() { fb = 0; }
void* fb;
c_rect rect;
};
@ -472,9 +472,9 @@ public:
ASSERT(false);
return 0;
}
if (m_overlap_zones[z_order].fb)
if (m_layers[z_order].fb)
{
return (m_color_bytes == 4) ? ((unsigned int*)(m_overlap_zones[z_order].fb))[y * m_width + x] : GL_RGB_16_to_32(((unsigned short*)(m_overlap_zones[z_order].fb))[y * m_width + x]);
return (m_color_bytes == 4) ? ((unsigned int*)(m_layers[z_order].fb))[y * m_width + x] : GL_RGB_16_to_32(((unsigned short*)(m_layers[z_order].fb))[y * m_width + x]);
}
else if (m_fb)
{
@ -506,16 +506,16 @@ public:
{
m_top_zorder = (Z_ORDER_LEVEL)z_order;
}
if (m_overlap_zones[z_order].rect.PtInRect(x, y))
if (m_layers[z_order].rect.PtInRect(x, y))
{
c_rect overlap_rect = m_overlap_zones[z_order].rect;
c_rect layer_rect = m_layers[z_order].rect;
if (m_color_bytes == 4)
{
((unsigned int*)(m_overlap_zones[z_order].fb))[(x - overlap_rect.m_left) + (y - overlap_rect.m_top) * overlap_rect.Width()] = rgb;
((unsigned int*)(m_layers[z_order].fb))[(x - layer_rect.m_left) + (y - layer_rect.m_top) * layer_rect.Width()] = rgb;
}
else
{
((unsigned short*)(m_overlap_zones[z_order].fb))[(x - overlap_rect.m_left) + (y - overlap_rect.m_top) * overlap_rect.Width()] = GL_RGB_32_to_16(rgb);
((unsigned short*)(m_layers[z_order].fb))[(x - layer_rect.m_left) + (y - layer_rect.m_top) * layer_rect.Width()] = GL_RGB_32_to_16(rgb);
}
}
@ -526,7 +526,7 @@ public:
bool be_overlapped = false;
for (unsigned int tmp_z_order = Z_ORDER_LEVEL_MAX - 1; tmp_z_order > z_order; tmp_z_order--)
{
if (m_overlap_zones[tmp_z_order].rect.PtInRect(x, y))
if (m_layers[tmp_z_order].rect.PtInRect(x, y))
{
be_overlapped = true;
break;
@ -550,21 +550,21 @@ public:
if (z_order == m_top_zorder)
{
int x, y;
c_rect overlap_rect = m_overlap_zones[z_order].rect;
c_rect layer_rect = m_layers[z_order].rect;
unsigned int rgb_16 = GL_RGB_32_to_16(rgb);
for (y = y0; y <= y1; y++)
{
for (x = x0; x <= x1; x++)
{
if (overlap_rect.PtInRect(x, y))
if (layer_rect.PtInRect(x, y))
{
if (m_color_bytes == 4)
{
((unsigned int*)m_overlap_zones[z_order].fb)[(y - overlap_rect.m_top) * overlap_rect.Width() + (x - overlap_rect.m_left)] = rgb;
((unsigned int*)m_layers[z_order].fb)[(y - layer_rect.m_top) * layer_rect.Width() + (x - layer_rect.m_left)] = rgb;
}
else
{
((unsigned short*)m_overlap_zones[z_order].fb)[(y - overlap_rect.m_top) * overlap_rect.Width() + (x - overlap_rect.m_left)] = rgb_16;
((unsigned short*)m_layers[z_order].fb)[(y - layer_rect.m_top) * layer_rect.Width() + (x - layer_rect.m_left)] = rgb_16;
}
}
}
@ -667,19 +667,19 @@ public:
}
bool is_active() { return m_is_active; }
c_display* get_display() { return m_display; }
int show_overlapped_rect(c_rect& rect, unsigned int z_order)
int show_layer(c_rect& rect, unsigned int z_order)
{
ASSERT(z_order >= Z_ORDER_LEVEL_0 && z_order < Z_ORDER_LEVEL_MAX);
c_rect overlap_rect = m_overlap_zones[z_order].rect;
ASSERT(rect.m_left >= overlap_rect.m_left && rect.m_right <= overlap_rect.m_right &&
rect.m_top >= overlap_rect.m_top && rect.m_bottom <= overlap_rect.m_bottom);
void* fb = m_overlap_zones[z_order].fb;
int width = overlap_rect.Width();
c_rect layer_rect = m_layers[z_order].rect;
ASSERT(rect.m_left >= layer_rect.m_left && rect.m_right <= layer_rect.m_right &&
rect.m_top >= layer_rect.m_top && rect.m_bottom <= layer_rect.m_bottom);
void* fb = m_layers[z_order].fb;
int width = layer_rect.Width();
for (int y = rect.m_top; y <= rect.m_bottom; y++)
{
for (int x = rect.m_left; x <= rect.m_right; x++)
{
unsigned int rgb = (m_color_bytes == 4) ? ((unsigned int*)fb)[(x - overlap_rect.m_left) + (y - overlap_rect.m_top) * width] : GL_RGB_16_to_32(((unsigned short*)fb)[(x - overlap_rect.m_left) + (y - overlap_rect.m_top) * width]);
unsigned int rgb = (m_color_bytes == 4) ? ((unsigned int*)fb)[(x - layer_rect.m_left) + (y - layer_rect.m_top) * width] : GL_RGB_16_to_32(((unsigned short*)fb)[(x - layer_rect.m_left) + (y - layer_rect.m_top) * width]);
draw_pixel_on_fb(x, y, rgb);
}
}
@ -765,7 +765,7 @@ protected:
m_phy_fb = display->m_phy_fb;
m_phy_write_index = &display->m_phy_write_index;
}
void set_surface(Z_ORDER_LEVEL max_z_order, c_rect overlap_rect)
void set_surface(Z_ORDER_LEVEL max_z_order, c_rect layer_rect)
{
m_max_zorder = max_z_order;
if (m_display && (m_display->m_surface_cnt > 1))
@ -774,15 +774,15 @@ protected:
}
for (int i = Z_ORDER_LEVEL_0; i < m_max_zorder; i++)
{//Top layber fb always be 0
ASSERT(m_overlap_zones[i].fb = calloc(overlap_rect.Width() * overlap_rect.Height(), m_color_bytes));
m_overlap_zones[i].rect = overlap_rect;
ASSERT(m_layers[i].fb = calloc(layer_rect.Width() * layer_rect.Height(), m_color_bytes));
m_layers[i].rect = layer_rect;
}
}
int m_width; //in pixels
int m_height; //in pixels
int m_color_bytes; //16 bits, 32 bits only
void* m_fb; //frame buffer you could see
c_overlap_zone m_overlap_zones[Z_ORDER_LEVEL_MAX];//Top layber fb always be 0
c_layer m_layers[Z_ORDER_LEVEL_MAX];//Top layber fb always be 0
bool m_is_active;
Z_ORDER_LEVEL m_max_zorder;
Z_ORDER_LEVEL m_top_zorder;
@ -878,10 +878,10 @@ inline c_display::c_display(void* phy_fb, int display_width, int display_height,
surface->m_is_active = true;
(m_surface_group[0] = surface)->attach_display(this);
}
inline c_surface* c_display::alloc_surface(Z_ORDER_LEVEL max_zorder, c_rect overlap_rect)
inline c_surface* c_display::alloc_surface(Z_ORDER_LEVEL max_zorder, c_rect layer_rect)
{
ASSERT(max_zorder < Z_ORDER_LEVEL_MAX && m_surface_index < m_surface_cnt);
(overlap_rect == c_rect(0, 0, -1, -1)) ? m_surface_group[m_surface_index]->set_surface(max_zorder, c_rect(0, 0, m_width - 1, m_height - 1)) : m_surface_group[m_surface_index]->set_surface(max_zorder, overlap_rect);
(layer_rect == c_rect(0, 0, -1, -1)) ? m_surface_group[m_surface_index]->set_surface(max_zorder, c_rect(0, 0, m_width - 1, m_height - 1)) : m_surface_group[m_surface_index]->set_surface(max_zorder, layer_rect);
return m_surface_group[m_surface_index++];
}
inline int c_display::swipe_surface(c_surface* s0, c_surface* s1, int x0, int x1, int y0, int y1, int offset)
@ -1249,9 +1249,9 @@ public:
c_rect lower_fb_rect;
if (z_order >= Z_ORDER_LEVEL_1)
{
lower_fb_16 = (unsigned short*)surface->m_overlap_zones[z_order - 1].fb;
lower_fb_32 = (unsigned int*)surface->m_overlap_zones[z_order - 1].fb;
lower_fb_rect = surface->m_overlap_zones[z_order - 1].rect;
lower_fb_16 = (unsigned short*)surface->m_layers[z_order - 1].fb;
lower_fb_32 = (unsigned int*)surface->m_layers[z_order - 1].fb;
lower_fb_rect = surface->m_layers[z_order - 1].rect;
lower_fb_width = lower_fb_rect.Width();
}
unsigned int mask_rgb_16 = GL_RGB_32_to_16(mask_rgb);
@ -1290,9 +1290,9 @@ public:
c_rect lower_fb_rect;
if (z_order >= Z_ORDER_LEVEL_1)
{
lower_fb_16 = (unsigned short*)surface->m_overlap_zones[z_order - 1].fb;
lower_fb_32 = (unsigned int*)surface->m_overlap_zones[z_order - 1].fb;
lower_fb_rect = surface->m_overlap_zones[z_order - 1].rect;
lower_fb_16 = (unsigned short*)surface->m_layers[z_order - 1].fb;
lower_fb_32 = (unsigned int*)surface->m_layers[z_order - 1].fb;
lower_fb_rect = surface->m_layers[z_order - 1].rect;
lower_fb_width = lower_fb_rect.Width();
}
unsigned int mask_rgb_16 = GL_RGB_32_to_16(mask_rgb);
@ -1940,7 +1940,7 @@ public:
c_rect rc;
dlg->get_screen_rect(rc);
dlg->set_attr(WND_ATTRIBUTION(0));
surface->show_overlapped_rect(rc, dlg->m_z_order - 1);
surface->show_layer(rc, dlg->m_z_order - 1);
//clear the dialog
for (int i = 0; i < SURFACE_CNT_MAX; i++)
{
@ -2267,7 +2267,7 @@ protected:
{
s_keyboard.disconnect();
m_z_order = m_parent->get_z_order();
m_surface->show_overlapped_rect(kb_rect, m_z_order);
m_surface->show_layer(kb_rect, m_z_order);
m_attr = (WND_ATTRIBUTION)(ATTR_VISIBLE | ATTR_FOCUS);
}
m_surface->fill_rect(rect, c_theme::get_color(COLOR_WND_NORMAL), m_z_order);
@ -2278,7 +2278,7 @@ protected:
{
s_keyboard.disconnect();
m_z_order = m_parent->get_z_order();
m_surface->show_overlapped_rect(kb_rect, m_z_order);
m_surface->show_layer(kb_rect, m_z_order);
m_attr = (WND_ATTRIBUTION)(ATTR_VISIBLE | ATTR_FOCUS);
}
m_surface->fill_rect(rect, c_theme::get_color(COLOR_WND_FOCUS), m_z_order);
@ -2495,7 +2495,7 @@ protected:
if (m_z_order > m_parent->get_z_order())
{
m_z_order = m_parent->get_z_order();
m_surface->show_overlapped_rect(m_list_screen_rect, m_z_order);
m_surface->show_layer(m_list_screen_rect, m_z_order);
m_attr = (WND_ATTRIBUTION)(ATTR_VISIBLE | ATTR_FOCUS);
}
m_surface->fill_rect(rect, c_theme::get_color(COLOR_WND_NORMAL), m_z_order);
@ -2505,7 +2505,7 @@ protected:
if (m_z_order > m_parent->get_z_order())
{
m_z_order = m_parent->get_z_order();
m_surface->show_overlapped_rect(m_list_screen_rect, m_z_order);
m_surface->show_layer(m_list_screen_rect, m_z_order);
m_attr = (WND_ATTRIBUTION)(ATTR_VISIBLE | ATTR_FOCUS);
}
m_surface->fill_rect(rect, c_theme::get_color(COLOR_WND_FOCUS), m_z_order);

View File

@ -20,9 +20,9 @@ public:
c_rect lower_fb_rect;
if (z_order >= Z_ORDER_LEVEL_1)
{
lower_fb_16 = (unsigned short*)surface->m_overlap_zones[z_order - 1].fb;
lower_fb_32 = (unsigned int*)surface->m_overlap_zones[z_order - 1].fb;
lower_fb_rect = surface->m_overlap_zones[z_order - 1].rect;
lower_fb_16 = (unsigned short*)surface->m_layers[z_order - 1].fb;
lower_fb_32 = (unsigned int*)surface->m_layers[z_order - 1].fb;
lower_fb_rect = surface->m_layers[z_order - 1].rect;
lower_fb_width = lower_fb_rect.Width();
}
unsigned int mask_rgb_16 = GL_RGB_32_to_16(mask_rgb);
@ -63,9 +63,9 @@ public:
c_rect lower_fb_rect;
if (z_order >= Z_ORDER_LEVEL_1)
{
lower_fb_16 = (unsigned short*)surface->m_overlap_zones[z_order - 1].fb;
lower_fb_32 = (unsigned int*)surface->m_overlap_zones[z_order - 1].fb;
lower_fb_rect = surface->m_overlap_zones[z_order - 1].rect;
lower_fb_16 = (unsigned short*)surface->m_layers[z_order - 1].fb;
lower_fb_32 = (unsigned int*)surface->m_layers[z_order - 1].fb;
lower_fb_rect = surface->m_layers[z_order - 1].rect;
lower_fb_width = lower_fb_rect.Width();
}
unsigned int mask_rgb_16 = GL_RGB_32_to_16(mask_rgb);

View File

@ -30,7 +30,7 @@ class c_display {
public:
inline c_display(void* phy_fb, int display_width, int display_height, int surface_width, int surface_height, unsigned int color_bytes, int surface_cnt, EXTERNAL_GFX_OP* gfx_op = 0);//multiple surface or surface_no_fb
inline c_display(void* phy_fb, int display_width, int display_height, c_surface* surface);//single custom surface
inline c_surface* alloc_surface(Z_ORDER_LEVEL max_zorder, c_rect overlap_rect = c_rect(0, 0, -1, -1));//for multiple surfaces
inline c_surface* alloc_surface(Z_ORDER_LEVEL max_zorder, c_rect layer_rect = c_rect(0, 0, -1, -1));//for multiple surfaces
inline int swipe_surface(c_surface* s0, c_surface* s1, int x0, int x1, int y0, int y1, int offset);
int get_width() { return m_width; }
int get_height() { return m_height; }
@ -97,10 +97,10 @@ private:
int m_surface_index;
};
class c_overlap_zone
class c_layer
{
public:
c_overlap_zone() { fb = 0; }
c_layer() { fb = 0; }
void* fb;
c_rect rect;
};
@ -123,9 +123,9 @@ public:
ASSERT(false);
return 0;
}
if (m_overlap_zones[z_order].fb)
if (m_layers[z_order].fb)
{
return (m_color_bytes == 4) ? ((unsigned int*)(m_overlap_zones[z_order].fb))[y * m_width + x] : GL_RGB_16_to_32(((unsigned short*)(m_overlap_zones[z_order].fb))[y * m_width + x]);
return (m_color_bytes == 4) ? ((unsigned int*)(m_layers[z_order].fb))[y * m_width + x] : GL_RGB_16_to_32(((unsigned short*)(m_layers[z_order].fb))[y * m_width + x]);
}
else if (m_fb)
{
@ -160,16 +160,16 @@ public:
m_top_zorder = (Z_ORDER_LEVEL)z_order;
}
if (m_overlap_zones[z_order].rect.PtInRect(x, y))
if (m_layers[z_order].rect.PtInRect(x, y))
{
c_rect overlap_rect = m_overlap_zones[z_order].rect;
c_rect layer_rect = m_layers[z_order].rect;
if (m_color_bytes == 4)
{
((unsigned int*)(m_overlap_zones[z_order].fb))[(x - overlap_rect.m_left) + (y - overlap_rect.m_top) * overlap_rect.Width()] = rgb;
((unsigned int*)(m_layers[z_order].fb))[(x - layer_rect.m_left) + (y - layer_rect.m_top) * layer_rect.Width()] = rgb;
}
else
{
((unsigned short*)(m_overlap_zones[z_order].fb))[(x - overlap_rect.m_left) + (y - overlap_rect.m_top) * overlap_rect.Width()] = GL_RGB_32_to_16(rgb);
((unsigned short*)(m_layers[z_order].fb))[(x - layer_rect.m_left) + (y - layer_rect.m_top) * layer_rect.Width()] = GL_RGB_32_to_16(rgb);
}
}
@ -181,7 +181,7 @@ public:
bool be_overlapped = false;
for (unsigned int tmp_z_order = Z_ORDER_LEVEL_MAX - 1; tmp_z_order > z_order; tmp_z_order--)
{
if (m_overlap_zones[tmp_z_order].rect.PtInRect(x, y))
if (m_layers[tmp_z_order].rect.PtInRect(x, y))
{
be_overlapped = true;
break;
@ -209,21 +209,21 @@ public:
if (z_order == m_top_zorder)
{
int x, y;
c_rect overlap_rect = m_overlap_zones[z_order].rect;
c_rect layer_rect = m_layers[z_order].rect;
unsigned int rgb_16 = GL_RGB_32_to_16(rgb);
for (y = y0; y <= y1; y++)
{
for (x = x0; x <= x1; x++)
{
if (overlap_rect.PtInRect(x, y))
if (layer_rect.PtInRect(x, y))
{
if (m_color_bytes == 4)
{
((unsigned int*)m_overlap_zones[z_order].fb)[(y - overlap_rect.m_top) * overlap_rect.Width() + (x - overlap_rect.m_left)] = rgb;
((unsigned int*)m_layers[z_order].fb)[(y - layer_rect.m_top) * layer_rect.Width() + (x - layer_rect.m_left)] = rgb;
}
else
{
((unsigned short*)m_overlap_zones[z_order].fb)[(y - overlap_rect.m_top) * overlap_rect.Width() + (x - overlap_rect.m_left)] = rgb_16;
((unsigned short*)m_layers[z_order].fb)[(y - layer_rect.m_top) * layer_rect.Width() + (x - layer_rect.m_left)] = rgb_16;
}
}
}
@ -343,21 +343,21 @@ public:
bool is_active() { return m_is_active; }
c_display* get_display() { return m_display; }
int show_overlapped_rect(c_rect& rect, unsigned int z_order)
int show_layer(c_rect& rect, unsigned int z_order)
{
ASSERT(z_order >= Z_ORDER_LEVEL_0 && z_order < Z_ORDER_LEVEL_MAX);
c_rect overlap_rect = m_overlap_zones[z_order].rect;
ASSERT(rect.m_left >= overlap_rect.m_left && rect.m_right <= overlap_rect.m_right &&
rect.m_top >= overlap_rect.m_top && rect.m_bottom <= overlap_rect.m_bottom);
c_rect layer_rect = m_layers[z_order].rect;
ASSERT(rect.m_left >= layer_rect.m_left && rect.m_right <= layer_rect.m_right &&
rect.m_top >= layer_rect.m_top && rect.m_bottom <= layer_rect.m_bottom);
void* fb = m_overlap_zones[z_order].fb;
int width = overlap_rect.Width();
void* fb = m_layers[z_order].fb;
int width = layer_rect.Width();
for (int y = rect.m_top; y <= rect.m_bottom; y++)
{
for (int x = rect.m_left; x <= rect.m_right; x++)
{
unsigned int rgb = (m_color_bytes == 4) ? ((unsigned int*)fb)[(x - overlap_rect.m_left) + (y - overlap_rect.m_top) * width] : GL_RGB_16_to_32(((unsigned short*)fb)[(x - overlap_rect.m_left) + (y - overlap_rect.m_top) * width]);
unsigned int rgb = (m_color_bytes == 4) ? ((unsigned int*)fb)[(x - layer_rect.m_left) + (y - layer_rect.m_top) * width] : GL_RGB_16_to_32(((unsigned short*)fb)[(x - layer_rect.m_left) + (y - layer_rect.m_top) * width]);
draw_pixel_on_fb(x, y, rgb);
}
}
@ -448,7 +448,7 @@ protected:
m_phy_write_index = &display->m_phy_write_index;
}
void set_surface(Z_ORDER_LEVEL max_z_order, c_rect overlap_rect)
void set_surface(Z_ORDER_LEVEL max_z_order, c_rect layer_rect)
{
m_max_zorder = max_z_order;
if (m_display && (m_display->m_surface_cnt > 1))
@ -458,8 +458,8 @@ protected:
for (int i = Z_ORDER_LEVEL_0; i < m_max_zorder; i++)
{//Top layber fb always be 0
ASSERT(m_overlap_zones[i].fb = calloc(overlap_rect.Width() * overlap_rect.Height(), m_color_bytes));
m_overlap_zones[i].rect = overlap_rect;
ASSERT(m_layers[i].fb = calloc(layer_rect.Width() * layer_rect.Height(), m_color_bytes));
m_layers[i].rect = layer_rect;
}
}
@ -467,7 +467,7 @@ protected:
int m_height; //in pixels
int m_color_bytes; //16 bits, 32 bits only
void* m_fb; //frame buffer you could see
c_overlap_zone m_overlap_zones[Z_ORDER_LEVEL_MAX];//Top layber fb always be 0
c_layer m_layers[Z_ORDER_LEVEL_MAX];//Top layber fb always be 0
bool m_is_active;
Z_ORDER_LEVEL m_max_zorder;
Z_ORDER_LEVEL m_top_zorder;
@ -571,10 +571,10 @@ inline c_display::c_display(void* phy_fb, int display_width, int display_height,
(m_surface_group[0] = surface)->attach_display(this);
}
inline c_surface* c_display::alloc_surface(Z_ORDER_LEVEL max_zorder, c_rect overlap_rect)
inline c_surface* c_display::alloc_surface(Z_ORDER_LEVEL max_zorder, c_rect layer_rect)
{
ASSERT(max_zorder < Z_ORDER_LEVEL_MAX && m_surface_index < m_surface_cnt);
(overlap_rect == c_rect(0, 0, -1, -1)) ? m_surface_group[m_surface_index]->set_surface(max_zorder, c_rect(0, 0, m_width - 1, m_height - 1)) : m_surface_group[m_surface_index]->set_surface(max_zorder, overlap_rect);
(layer_rect == c_rect(0, 0, -1, -1)) ? m_surface_group[m_surface_index]->set_surface(max_zorder, c_rect(0, 0, m_width - 1, m_height - 1)) : m_surface_group[m_surface_index]->set_surface(max_zorder, layer_rect);
return m_surface_group[m_surface_index++];
}

View File

@ -57,7 +57,7 @@ public:
c_rect rc;
dlg->get_screen_rect(rc);
dlg->set_attr(WND_ATTRIBUTION(0));
surface->show_overlapped_rect(rc, dlg->m_z_order - 1);
surface->show_layer(rc, dlg->m_z_order - 1);
//clear the dialog
for (int i = 0; i < SURFACE_CNT_MAX; i++)

View File

@ -54,7 +54,7 @@ protected:
{
s_keyboard.disconnect();
m_z_order = m_parent->get_z_order();
m_surface->show_overlapped_rect(kb_rect, m_z_order);
m_surface->show_layer(kb_rect, m_z_order);
m_attr = (WND_ATTRIBUTION)(ATTR_VISIBLE | ATTR_FOCUS);
}
m_surface->fill_rect(rect, c_theme::get_color(COLOR_WND_NORMAL), m_z_order);
@ -65,7 +65,7 @@ protected:
{
s_keyboard.disconnect();
m_z_order = m_parent->get_z_order();
m_surface->show_overlapped_rect(kb_rect, m_z_order);
m_surface->show_layer(kb_rect, m_z_order);
m_attr = (WND_ATTRIBUTION)(ATTR_VISIBLE | ATTR_FOCUS);
}
m_surface->fill_rect(rect, c_theme::get_color(COLOR_WND_FOCUS), m_z_order);

View File

@ -71,7 +71,7 @@ protected:
if (m_z_order > m_parent->get_z_order())
{
m_z_order = m_parent->get_z_order();
m_surface->show_overlapped_rect(m_list_screen_rect, m_z_order);
m_surface->show_layer(m_list_screen_rect, m_z_order);
m_attr = (WND_ATTRIBUTION)(ATTR_VISIBLE | ATTR_FOCUS);
}
m_surface->fill_rect(rect, c_theme::get_color(COLOR_WND_NORMAL), m_z_order);
@ -81,7 +81,7 @@ protected:
if (m_z_order > m_parent->get_z_order())
{
m_z_order = m_parent->get_z_order();
m_surface->show_overlapped_rect(m_list_screen_rect, m_z_order);
m_surface->show_layer(m_list_screen_rect, m_z_order);
m_attr = (WND_ATTRIBUTION)(ATTR_VISIBLE | ATTR_FOCUS);
}
m_surface->fill_rect(rect, c_theme::get_color(COLOR_WND_FOCUS), m_z_order);