diff options
| author | bernard.xiong <[email protected]> | 2010-01-25 00:01:18 +0000 |
|---|---|---|
| committer | bernard.xiong <[email protected]> | 2010-01-25 00:01:18 +0000 |
| commit | 143d95a9980a308ad1540e72068d9bfbb35ee0aa (patch) | |
| tree | e4ce87a51cdf80d39d7a9e02e88900209df7fac6 /rtgui/widgets | |
| parent | e1f252541640ead93211b87ef858fb02c5d40766 (diff) | |
fix some widgets drawing routine.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@333 bbd45198-f89e-11dd-88c7-29a3b14d5316
Diffstat (limited to 'rtgui/widgets')
| -rw-r--r-- | rtgui/widgets/radiobox.c | 5 | ||||
| -rw-r--r-- | rtgui/widgets/staticline.c | 3 | ||||
| -rw-r--r-- | rtgui/widgets/textbox.c | 10 | ||||
| -rw-r--r-- | rtgui/widgets/title.c | 1 |
4 files changed, 13 insertions, 6 deletions
diff --git a/rtgui/widgets/radiobox.c b/rtgui/widgets/radiobox.c index 3f333fd1d7..d5bd39f841 100644 --- a/rtgui/widgets/radiobox.c +++ b/rtgui/widgets/radiobox.c @@ -49,8 +49,9 @@ static void rtgui_radiobox_onmouse(struct rtgui_radiobox* radiobox, struct rtgui /* focus widgets */
rtgui_widget_focus(RTGUI_WIDGET(radiobox));
- /* get widget rect */
+ /* get widget physical rect */
rtgui_widget_get_rect(RTGUI_WIDGET(radiobox), &rect);
+ rtgui_widget_rect_to_device(RTGUI_WIDGET(radiobox), &rect);
/* get board size */
if (radiobox->orient == RTGUI_VERTICAL)
@@ -187,7 +188,7 @@ struct rtgui_radiobox* rtgui_radiobox_create(const char* label, int orient, char for (index = 0; index < number; index ++)
{
rtgui_font_get_metrics(font, radio_items[index], &rect);
- if (rtgui_rect_width(rect) > radiobox->item_size)
+ if ( (board_size + 3 + rtgui_rect_width(rect)) > radiobox->item_size)
radiobox->item_size = board_size + 3 + rtgui_rect_width(rect);
}
}
diff --git a/rtgui/widgets/staticline.c b/rtgui/widgets/staticline.c index a8217457b0..055bb353d8 100644 --- a/rtgui/widgets/staticline.c +++ b/rtgui/widgets/staticline.c @@ -10,9 +10,6 @@ static void _rtgui_staticline_constructor(rtgui_staticline_t *staticline) rtgui_widget_set_rect(RTGUI_WIDGET(staticline), &rect);
staticline->orientation= RTGUI_HORIZONTAL;
- /* set background color */
- RTGUI_WIDGET(staticline)->gc.background = RTGUI_RGB(64, 64, 64);
-
rtgui_widget_set_event_handler(RTGUI_WIDGET(staticline), rtgui_staticline_event_handler);
}
diff --git a/rtgui/widgets/textbox.c b/rtgui/widgets/textbox.c index e91b046a71..c28f193b37 100644 --- a/rtgui/widgets/textbox.c +++ b/rtgui/widgets/textbox.c @@ -127,8 +127,13 @@ static void rtgui_textbox_onmouse(struct rtgui_textbox* box, struct rtgui_event_ box->position = x / box->font_width; } + /* set caret to show */ + box->flag |= RTGUI_TEXTBOX_CARET_SHOW; + /* set widget focus */ rtgui_widget_focus(RTGUI_WIDGET(box)); + /* re-draw text box */ + rtgui_theme_draw_textbox(box); } } @@ -236,6 +241,8 @@ static rt_bool_t rtgui_textbox_onfocus(struct rtgui_widget* widget, struct rtgui { struct rtgui_textbox* box = (struct rtgui_textbox*)widget; + /* set caret to show */ + box->flag |= RTGUI_TEXTBOX_CARET_SHOW; /* start caret timer */ rtgui_timer_start(box->caret_timer); @@ -248,7 +255,8 @@ static rt_bool_t rtgui_textbox_onunfocus(struct rtgui_widget* widget, struct rtg /* stop caret timer */ rtgui_timer_stop(box->caret_timer); - /* hide caret */ + /* set caret to hide */ + box->flag &= ~RTGUI_TEXTBOX_CARET_SHOW; return RT_TRUE; } diff --git a/rtgui/widgets/title.c b/rtgui/widgets/title.c index 2a38c703a5..005f125ee2 100644 --- a/rtgui/widgets/title.c +++ b/rtgui/widgets/title.c @@ -19,6 +19,7 @@ static void _rtgui_wintitle_constructor(rtgui_wintitle_t* wintitle) { wintitle->title = RT_NULL; RTGUI_WIDGET(wintitle)->flag = RTGUI_WIDGET_FLAG_DEFAULT; + RTGUI_WIDGET_TEXTALIGN(RTGUI_WIDGET(wintitle)) = RTGUI_ALIGN_CENTER_VERTICAL; } static void _rtgui_wintitle_deconstructor(rtgui_wintitle_t* wintitle) |
