summaryrefslogtreecommitdiff
path: root/rtgui/widgets
diff options
context:
space:
mode:
authorbernard.xiong <[email protected]>2010-01-25 00:01:18 +0000
committerbernard.xiong <[email protected]>2010-01-25 00:01:18 +0000
commit143d95a9980a308ad1540e72068d9bfbb35ee0aa (patch)
treee4ce87a51cdf80d39d7a9e02e88900209df7fac6 /rtgui/widgets
parente1f252541640ead93211b87ef858fb02c5d40766 (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.c5
-rw-r--r--rtgui/widgets/staticline.c3
-rw-r--r--rtgui/widgets/textbox.c10
-rw-r--r--rtgui/widgets/title.c1
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)