예제 #1
0
rt_bool_t rtgui_label_event_handler(struct rtgui_widget* widget, struct rtgui_event* event)
{
    struct rtgui_label* label;

    RT_ASSERT(widget != RT_NULL);

    label = (struct rtgui_label*) widget;
    switch (event->type)
    {
    case RTGUI_EVENT_PAINT:
        rtgui_theme_draw_label(label);
        break;
    }

    return RT_FALSE;
}
예제 #2
0
void rtgui_label_set_text(rtgui_label_t* label, const char* text)
{
    RT_ASSERT(label != RT_NULL);

    if (label->text != RT_NULL)
    {
        /* release old text memory */
        rt_free(label->text);
    }

    if (text != RT_NULL) label->text = (char*)rt_strdup((const char*)text);
    else label->text = RT_NULL;

    /* update widget */
    rtgui_theme_draw_label(label);
}
예제 #3
0
rt_bool_t rtgui_label_event_handler(struct rtgui_object *object, struct rtgui_event* event)
{
	struct rtgui_label *label;
	RTGUI_WIDGET_EVENT_HANDLER_PREPARE

	label = RTGUI_LABEL(object);
	switch (event->type)
	{
	case RTGUI_EVENT_PAINT:
		rtgui_theme_draw_label(label);
		break;
	default:
		return rtgui_widget_event_handler(object, event);
	}

	return RT_FALSE;
}
예제 #4
0
void rtgui_label_set_text(rtgui_label_t* label, const char* text)
{
	RT_ASSERT(label != RT_NULL);

	if (label->text != RT_NULL)
	{
		/* it's a same text string */
		if (rt_strncmp(text, label->text, rt_strlen(text)) == 0) return;
		
		/* release old text memory */
		rtgui_free(label->text);
	}

	if (text != RT_NULL) label->text = (char*)rt_strdup((const char*)text);
	else label->text = RT_NULL;

	/* update widget */
	rtgui_theme_draw_label(label);
}