Пример #1
0
LCUI_API void
Window_SetTitleIcon(LCUI_Widget *window, LCUI_Graph *icon)
/* 功能:自定义指定窗口的标题栏图标 */
{
	LCUI_Graph *image;
	LCUI_Widget *title_widget;
	LCUI_TitleBar *title_data;
	
	if( window == NULL ) {
		return;
	}
	title_widget = Window_GetTitleBar(window);
	title_data = (LCUI_TitleBar *)Widget_GetPrivData(title_widget);
	
	image = PictureBox_GetImage(title_data->icon_box);
	Graph_Free(image);/* 释放PictureBox部件内的图像占用的资源 */
	if(icon == NULL) {
		return;
	}
	/* 设置新图标 */
	PictureBox_SetImage(title_data->icon_box, icon);
	Widget_SetAlign(title_data->icon_box, ALIGN_MIDDLE_LEFT, Pos(3,0));
	Widget_SetAlign(title_data->label, ALIGN_MIDDLE_LEFT, Pos(23,0));
 
}
Пример #2
0
/* 更新复选框的图形数据 */
static void 
CheckBox_ExecDraw(LCUI_Widget *widget)
{
	LCUI_Graph *p;
	LCUI_CheckBox *check_box;
	
	check_box = Widget_GetPrivData(widget); 
								
	if(_LCUIString_Cmp(&widget->style_name, "custom") == 0) {
		/* 如果为自定义风格,那就使用用户指定的图形,具体可参考按钮部件的处理方法 */ 
		if( !widget->enabled ) {
			widget->state = WIDGET_STATE_DISABLE;
		}
		switch(widget->state){
		case WIDGET_STATE_NORMAL:
			if( check_box->on ) {
				p = &check_box->img_on_normal;
			} else {
				p = &check_box->img_off_normal;
			}
			PictureBox_SetImage(check_box->imgbox, p);
			break;
		case WIDGET_STATE_OVERLAY :
			if( check_box->on ) {
				p = &check_box->img_on_over;
			} else {
				p = &check_box->img_off_over;
			}
			PictureBox_SetImage(check_box->imgbox, p);
			break;
		case WIDGET_STATE_ACTIVE : 
			if( check_box->on ) {
				p = &check_box->img_on_down;
			} else {
				p = &check_box->img_off_down;
			}
			PictureBox_SetImage(check_box->imgbox, p);
			break;
		case WIDGET_STATE_DISABLE :
			if( check_box->on ) {
				p = &check_box->img_on_disable;
			} else {
				p = &check_box->img_off_disable;
			}
			PictureBox_SetImage(check_box->imgbox, p); 
			break;
			default :
			break;
		} 
	} else {/* 如果按钮的风格为缺省 */
		_LCUIString_Copy(&widget->style_name, "default");
		if( !widget->enabled ) {
			widget->state = WIDGET_STATE_DISABLE;
		}
		/* 先释放PictureBox部件中保存的图形数据的指针 */
		p = PictureBox_GetImage(check_box->imgbox);
		Graph_Free(p);
		
		/* 由于本函数在退出后,使用局部变量保存的图形数据会无效,因此,申请内存空间来储存 */
		p = (LCUI_Graph*)calloc(1,sizeof(LCUI_Graph));
		
		switch(widget->state) { 
		case WIDGET_STATE_NORMAL:
			if( check_box->on ) {
				Load_Graph_Default_CheckBox_On_Normal(p);
			} else {
				Load_Graph_Default_CheckBox_Off_Normal(p);
			}
			PictureBox_SetImage(check_box->imgbox, p);
			break;
		case WIDGET_STATE_OVERLAY :
			if( check_box->on ) {
				Load_Graph_Default_CheckBox_On_Selected(p);
			} else {
				Load_Graph_Default_CheckBox_Off_Selected(p);
			}
			PictureBox_SetImage(check_box->imgbox, p);
			break;
		case WIDGET_STATE_ACTIVE : 
			if( check_box->on ) {
				Load_Graph_Default_CheckBox_On_Selected(p);
			} else {
				Load_Graph_Default_CheckBox_Off_Selected(p);
			}
			PictureBox_SetImage(check_box->imgbox, p);
			break;
		case WIDGET_STATE_DISABLE :
			if( check_box->on ) {
				Load_Graph_Default_CheckBox_On_Disabled(p);
			} else {
				Load_Graph_Default_CheckBox_Off_Disabled(p);
			}
			PictureBox_SetImage(check_box->imgbox, p);
			break;
			default : break;
		}
	}
}
Пример #3
0
/* 更新单选框的图形数据 */
static void RadioButton_ExecUpdate( LCUI_Widget widget )
{
	int img_id;
	LCUI_Graph *img_ptr;
	LCUI_RadioButton *radio_button;
	
	radio_button = (LCUI_RadioButton*)Widget_GetPrivData(widget);
	/* 如果为自定义风格,那就使用用户指定的图形 */ 	
	if( _LCUIString_Cmp(&widget->style_name, "custom") == 0 ) {
		if(widget->enabled == FALSE)  {
			widget->state = WIDGET_STATE_DISABLE;
		}
		switch(widget->state) {
		case WIDGET_STATE_NORMAL:
			if(radio_button->on) {
				img_ptr = &radio_button->img_on_normal;
			} else {
				img_ptr = &radio_button->img_off_normal;
			}
			break;
		case WIDGET_STATE_OVERLAY :
			if(radio_button->on) {
				img_ptr = &radio_button->img_on_over;
			} else {
				img_ptr = &radio_button->img_off_over;
			}
			break;
		case WIDGET_STATE_ACTIVE : 
			if(radio_button->on) {
				img_ptr = &radio_button->img_on_down;
			} else {
				img_ptr = &radio_button->img_off_down;
			}
			break;
		case WIDGET_STATE_DISABLE :
			if(radio_button->on) {
				img_ptr = &radio_button->img_on_disable;
			} else {
				img_ptr = &radio_button->img_off_disable;
			}
			break;
		default:return;
		} 
		PictureBox_SetImage(radio_button->imgbox, img_ptr);
	}

	_LCUIString_Copy( &widget->style_name, "default" );
	if( !widget->enabled ) {
		widget->state = WIDGET_STATE_DISABLE;
	}
	switch(widget->state) {
	case WIDGET_STATE_NORMAL:
		if(radio_button->on) {
			img_id = IMG_ON_NORMAL;
		} else {
			img_id = IMG_OFF_NORMAL;
		}
		break;
	case WIDGET_STATE_OVERLAY :
		if(radio_button->on) {
			img_id = IMG_ON_SELECTED;
		} else {
			img_id = IMG_OFF_SELECTED;
		}
		break;
	case WIDGET_STATE_ACTIVE :
	case WIDGET_STATE_DISABLE :
	default: return;
	}
	img_ptr = PictureBox_GetImage( radio_button->imgbox );
	Graph_Free( img_ptr );
	img_ptr = (LCUI_Graph*)calloc( 1, sizeof(LCUI_Graph) );
	RadioButton_LoadDefaultGraph( img_ptr, img_id );
	PictureBox_SetImage( radio_button->imgbox, img_ptr );
}