diff options
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) |
