static void ShowLeverPositionAlert()
{
	gchar* position_alert_msg;
	gchar* msg_buf;
const static gchar* _alert_str = "_alert";

	gchar* alert_msg = LookupText(g_keytext_list, "move_lever_position_alert");
	gchar* position_key
			 = ValueToKey(CNCL_MESS_THICK, GetCurrentnValue(CNCL_MESS_THICK));

	// Make the key for the position string on the alert.
	gchar* position_alert_key
		 = g_malloc(strlen(position_key) + strlen(_alert_str) + 1);

	strcpy(position_alert_key, position_key);
	strcat(position_alert_key, _alert_str);

	// Get the position string on the alert.
	position_alert_msg = LookupText(g_keytext_list, position_alert_key);

	// If not exist, use the current position string instead.
	if( position_alert_msg == NULL )
		position_alert_msg = GetCurrentString(CNCL_MESS_THICK);

	msg_buf = (gchar*)g_malloc(strlen(alert_msg) + strlen(position_alert_msg));

	sprintf(msg_buf, alert_msg, position_alert_msg);

	UtilMessageBox(msg_buf, g_window_title, MB_OK | MB_ICON_INFORMATION);

	g_free(position_alert_key);
	g_free(msg_buf);
}
/* defaults button */
void
on_setconfig_type003_button3_clicked   (GtkButton       *button,
                                        gpointer         user_data)
{
	LPSETCONFIGCOMPTYPE003WORK lpWk = (LPSETCONFIGCOMPTYPE003WORK)gLPSetConfigWork;
	GtkWidget*	combo;
	GtkWidget*	label;
	gchar* 		msg;
	int index_num = lpWk->lpInkCartridgeMsgInfo->index_num;
	int defIndex;

	defIndex = lpWk->lpInkCartridgeMsgInfo->index_default;
	combo = LookupWidget(GTK_WIDGET(button), "setconfig_type003_combobox1");

	/* Ver.2.80 */
	if( DisableSignal() )
	{
		SetComboBoxItems(combo, (const char **)lpWk->lpInkCartridgeMsgInfo->type, index_num, defIndex );
	}
	EnableSignal();

	msg = LookupText(g_keytext_list, lpWk->lpInkCartridgeMsgInfo->info[defIndex]);
	label = LookupWidget(GTK_WIDGET(button), "setconfig_type003_label3");
	gtk_label_set_text(GTK_LABEL(label), msg);
}
/* Set items in the key_array and value_array to GtkComboBox */
void SetTextArrayToComboBox(GtkWidget* window, gchar *combo_name,
		const gchar* key_array[], const short value_array[], short value)
{
	int index = 0;
	int i;

	GtkWidget* combo = LookupWidget(window, combo_name);

	/* Remove all items in current list */
	if(gtk_combo_box_get_active_text( GTK_COMBO_BOX( combo )) ){
		while( 1 ){
			gtk_combo_box_set_active( GTK_COMBO_BOX( combo ), 0 );
			if( ! gtk_combo_box_get_active_text( GTK_COMBO_BOX( combo )) ) break;
			gtk_combo_box_remove_text( GTK_COMBO_BOX( combo ), 0 );
		}
	}

	/* Add items in "key_array" */
	for( i = 0 ; key_array[i] != NULL ; i++ )
	{
		gtk_combo_box_append_text( GTK_COMBO_BOX( combo ), LookupText(g_keytext_list, key_array[i]) );
		if( value_array[i] == value ) index = i;
	}

	/* Set active item */
	gtk_combo_box_set_active( GTK_COMBO_BOX( combo ), index );
}
char *ValueToName(short id, short value)
{
	char *name = ValueToKey(id, value);

	if( name != '\0' )
		name = LookupText(g_keytext_list, name);

	return name;
}
static int GetAutoPowerIndex(const char **Keytbl, int n, char *mode)
{
	int			i;
	
	for (i=0; i < n; i++) {
		if (!strcmp(LookupText(g_keytext_list, Keytbl[i]), mode))	
			return i;		
	}
	return 0;		
}
int KeyToIndex(char **Keytbl, int n, char *type)
{
	int			i;
	
	for (i=0; i < n; i++) {
		if (!strcmp(LookupText(g_keytext_list, Keytbl[i]), type))
			return i;		
	}
	return 0;		
}
short SetLabelUtilDialog( GtkWidget *dialog, char *dialogName )
{
	LPDIALOGSTRCOMP lpDialogStrComp = NULL;
	char resName[NAME_BUF_MAX_SIZE];
	short result = -1;

	snprintf( resName, NAME_BUF_MAX_SIZE, "%s/%s", MAINTENANCE_RESPATH, MAINTENANCE_RESFILE );
	if ( ParseDialogStringListTag( resName, dialogName, &lpDialogStrComp ) != 0 ){
		goto Err;
	}

	while( lpDialogStrComp != NULL ){

		if ( lpDialogStrComp->type == MSGTYPE_CAPTION ){
			gtk_window_set_title( GTK_WINDOW(dialog), LookupText(g_keytext_list, lpDialogStrComp->strid) );
		}
		else if ( (lpDialogStrComp->type == MSGTYPE_BUTTON) || (lpDialogStrComp->type == MSGTYPE_RADIOBUTTON) ||
			(lpDialogStrComp->type == MSGTYPE_CHECKBUTTON) ){
			gtk_button_set_label( GTK_BUTTON(LookupWidget(dialog, lpDialogStrComp->label )),
				LookupText(g_keytext_list, lpDialogStrComp->strid));
			gtk_widget_show( LookupWidget(dialog, lpDialogStrComp->label ) );
		}
		else if ( lpDialogStrComp->type == MSGTYPE_LABEL ){
			gtk_label_set_text( GTK_LABEL(LookupWidget(dialog, lpDialogStrComp->label )),
				LookupText(g_keytext_list, lpDialogStrComp->strid));
			gtk_widget_show( LookupWidget(dialog, lpDialogStrComp->label ) );
		}
		else if ( lpDialogStrComp->type == MSGTYPE_SEPARATOR ) {
			gtk_widget_show( LookupWidget(dialog, lpDialogStrComp->label ) );
		}

		lpDialogStrComp = lpDialogStrComp->next;
	}


	FreeDialogStrCompList( lpDialogStrComp );
	result = 0;
Err:
	return result;
}
void
on_setconfig_type001_checkbutton_toggled
                                        (GtkToggleButton *togglebutton,
                                        gpointer         user_data)
{
	GtkWidget* window = GetTopWidget(GTK_WIDGET(togglebutton));	

	if ( GTK_WIDGET_VISIBLE( window ) == TRUE ){	
		if( GTK_TOGGLE_BUTTON(togglebutton)->active ) {
			UtilMessageBox(LookupText(g_keytext_list, "LUM_LID_WARNING_PAPER_ABRASION"), g_window_title, MB_ICON_NO | MB_OK);
		}
	}
}
char* GetDispModelName()
{
	int i = 0;

	while( g_model_key[i] != NULL )
	{
		if( g_model_value[i] == g_model_id )
			return LookupText(g_keytext_list, g_model_key[i]);

		i++;
	}
	return NULL;
}
void
on_borderless_button_clicked           (GtkButton       *button,
                                        gpointer         user_data)
{
	if( DisableSignal() )
	{
		GtkWidget* window = GetTopWidget(GTK_WIDGET(button));

		if( GTK_TOGGLE_BUTTON(button)->active )
		{
			short media_type_value = GetCurrentnValue(CNCL_MEDIATYPE);

			if( IsAvailableMediaBorder(g_mediaborder_dialog, media_type_value) )
			{
				gchar* alert_msg
					= LookupText(g_keytext_list, "mediaborder_alert");
				UtilMessageBox(alert_msg, g_window_title,
					MB_OK | MB_ICON_INFORMATION);

				UpdateMenuLink(CNCL_MARGINTYPE, CND_MARGIN_MINUS);
			}
			else
			{
				short new_media_type_value;
				if( (new_media_type_value
						= ShowMediaBorderDialog(g_mediaborder_dialog,
												media_type_value)) != -1 )
				{
					UpdateMenuLink(CNCL_MEDIATYPE, new_media_type_value);
					UpdateMenuLink(CNCL_MARGINTYPE, CND_MARGIN_MINUS);
				}
				else
				{
					gtk_toggle_button_set_active(
						GTK_TOGGLE_BUTTON(button), FALSE);
				}
			}
		}
		else
		{
			UpdateMenuLink(CNCL_MARGINTYPE, CND_MARGIN_NORMAL);
		}

		UpdateWidgets(window, "borderless_button");

#ifdef	GUI_WITH_PIXMAPS
		UpdateDrawingArea(window, "basic_draw_area");
#endif
	}
	EnableSignal();
}
Exemple #11
0
short NameToValue(short id, char* name)
{
	short *value_array;
	char **key_array;
	int count;
	int i;

	/* Ver.2.80 (Model-specific res_name) */
	count = GetValueAndNameArrayTwo(id, &value_array, &key_array);

	for( i = 0 ; i < count ; i++ )
	{
		if( strcmp(LookupText(g_keytext_list, key_array[i]), name) == 0 )
			break;
	}
	return (i < count)? value_array[i] : -1;
}
/* Ver.3.50 */
void
on_setconfig_type001_checkbutton3_toggled
                                        (GtkToggleButton *togglebutton,
                                        gpointer         user_data)
{
	GtkWidget* window = GetTopWidget(GTK_WIDGET(togglebutton));
	int status;

	if ( GTK_WIDGET_VISIBLE( window ) == TRUE ){	
		if( GTK_TOGGLE_BUTTON(togglebutton)->active ) {
			status = UtilMessageBox(LookupText(g_keytext_list, "LUM_IDS_MNTMSG_PREVENTPAPERGAP_MSG"), g_window_title, MB_ICON_EXCLAMATION | MB_OK | MB_CANCEL);
			if ( (status == US_CANCEL) || (status == US_X) ){
				gtk_toggle_button_set_active( togglebutton, FALSE );
			}
		}
	}
}
static void
confirm_media_supply_change(short old_supply_value)
{
	int ret;
	gchar* alert_msg = LookupText(g_keytext_list, "paper_supply_change_alert");
	gchar* supply_str = GetCurrentString(CNCL_MEDIASUPPLY);
	gchar* message = (gchar*)g_malloc(strlen(alert_msg) + strlen(supply_str));

	sprintf(message, alert_msg, supply_str);

	ret = UtilMessageBox(message, g_window_title,
			 MB_OK | MB_CANCEL | MB_ICON_INFORMATION);

	g_free(message);

	if( ret == ID_CANCEL )
	{
		UpdateMenuLink(CNCL_MEDIASUPPLY, old_supply_value);
	}
}
int GetTextArrayValueFromCombo(GtkWidget* window, gchar *combo_name,
		const gchar* key_array[], const short value_array[])
{
	GtkWidget* combo = LookupWidget(window, combo_name);

	/* Ver.2.80 */
	gchar *current = NULL;
	current = (gchar*)gtk_combo_box_get_active_text(GTK_COMBO_BOX(combo));

	int i;

	for( i = 0 ; key_array[i] != NULL ; i++ )
	{
		if( !strcmp(current, LookupText(g_keytext_list, key_array[i])) )
		{
			return value_array[i];
		}
	}
	return 0;
}
static void SetDefaultSetConfigType003( LPSETCONFIGCOMPTYPE003RES lpRes, void *lpGWork )
{
	LPSETCONFIGCOMPTYPE003WORK lpWork = (LPSETCONFIGCOMPTYPE003WORK)lpGWork;
	GtkWidget*	combo;
	GtkWidget*	label;
	gchar* 		msg;
	int index_num = lpWork->lpInkCartridgeMsgInfo->index_num;
	int currentIndex;

	currentIndex= nValueToIndex(lpWork->lpInkCartridgeMsgInfo->nValue, index_num, GetCurrentnValue(CNCL_INKCARTRIDGESETTINGS) );
	combo = LookupWidget( lpWork->dialog, "setconfig_type003_combobox1" );

	if( DisableSignal() )
	{
		SetComboBoxItems(combo, (const char **)lpWork->lpInkCartridgeMsgInfo->type, index_num, currentIndex);
	}
	EnableSignal();

	msg = LookupText(g_keytext_list, lpWork->lpInkCartridgeMsgInfo->info[currentIndex]);
	label = LookupWidget(GTK_WIDGET(lpWork->dialog), "setconfig_type003_label3");
	gtk_label_set_text(GTK_LABEL(label), msg);
}
Exemple #16
0
short SetLabelCommonUtilDialogForSetConfig( char *dialogName, unsigned int flag, short *retVal ) 
{
	LPDIALOGSTRCOMP lpDialogStrComp = NULL;
	char resName[NAME_BUF_MAX_SIZE];
	short result = -1;

	*retVal = 0;

	snprintf( resName, NAME_BUF_MAX_SIZE, "%s/%s", MAINTENANCE_RESPATH, MAINTENANCE_RESFILE );
	if ( ParseDialogStringListTag( resName, dialogName, &lpDialogStrComp ) != 0 ) goto Err;

	while ( lpDialogStrComp != NULL ){
		if ( lpDialogStrComp->type == MSGTYPE_LABEL ){
			*retVal = UtilMessageBoxWithStatusSetConfig(LookupText(g_keytext_list, lpDialogStrComp->strid), g_window_title, flag );
		}
		lpDialogStrComp = lpDialogStrComp->next;
	}
		
	FreeDialogStrCompList( lpDialogStrComp );
	result = 0;
Err:
	return result;
}
Exemple #17
0
void SetComboBoxItems(GtkWidget *combo, char **Keytbl, int n, int index)
{
	int		i;

	/* Remove all items in current list */
	if(gtk_combo_box_get_active_text( GTK_COMBO_BOX( combo )) ){
		while( 1 ){
			gtk_combo_box_set_active( GTK_COMBO_BOX( combo ), 0 );
			if( ! gtk_combo_box_get_active_text( GTK_COMBO_BOX( combo )) ) break;
			gtk_combo_box_remove_text( GTK_COMBO_BOX( combo ), 0 );
		}
	}


	/* Add items in "Keytbl" */
	for (i=0; i < n; i++)
	{
		gtk_combo_box_append_text( GTK_COMBO_BOX( combo ), LookupText(g_keytext_list, Keytbl[i]) );
	}

	if( index >= n ) index = 0;
	gtk_combo_box_set_active( GTK_COMBO_BOX( combo ), index );

}
void
on_setconfig_type003_dialog_combo_changed
                                        (GtkComboBox     *combobox,
                                        gpointer         user_data)
{
	LPSETCONFIGCOMPTYPE003WORK lpWk = (LPSETCONFIGCOMPTYPE003WORK)gLPSetConfigWork;
	GtkWidget*	label;
	char*		type;
	gchar* 		msg;
	int index_num = lpWk->lpInkCartridgeMsgInfo->index_num;
	int currentIndex;

	if( DisableSignal() )
	{
		type = (char*)gtk_combo_box_get_active_text( combobox );
	
		currentIndex = KeyToIndex(lpWk->lpInkCartridgeMsgInfo->type, index_num, type );
	
		msg = LookupText(g_keytext_list, lpWk->lpInkCartridgeMsgInfo->info[currentIndex]);
		label = LookupWidget(GTK_WIDGET(combobox), "setconfig_type003_label3");
		gtk_label_set_text(GTK_LABEL(label), msg);
	}
	EnableSignal();
}
Exemple #19
0
void LogUnPacking( char *name )
//=============================
{
    Log( LookupText( NULL, TXT_UNPACK ), "\'", name, "\'", NULL );
}
Exemple #20
0
static int UtilMessageBoxSetDefault(
	char *message,				
	char *title,                
	unsigned int flag,
	unsigned int default_flag, 
	short isWithStatus )          
{
	GtkWidget	*dialog;				
	GtkWidget	*dialog_action_area1;   
	GtkWidget	*dialog_vbox1;          
	GtkWidget	*hbox1;                 
	GtkWidget	*pixmap;                
	GtkWidget	*label;                 
	GtkWidget	*hbuttonbox1;           
	GtkWidget	*button;                
	GdkPixmap	*icon = NULL;
	GdkPixmap	*iconMask = NULL;
	GtkStyle	*style;
	int		i;
	short		icon_exist = 1;	//Ver.3.00

	gUtilCommonStatus = US_MAINTENANCE_EXIT;
	
	dialog = gtk_dialog_new();				
	gtk_widget_realize(dialog);				
	gtk_window_set_title(GTK_WINDOW(dialog), title);	
	gtk_window_set_policy(GTK_WINDOW(dialog), FALSE, FALSE, TRUE);	
	gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER);	
	
	gtk_signal_connect(GTK_OBJECT(dialog), "destroy",	
			      GTK_SIGNAL_FUNC(message_box_destroy), dialog);
	// If dialog has YSE and  NO button, disable close button.
	if ( (flag & MB_YES) && (flag & MB_NO) ){
		gtk_signal_connect (GTK_OBJECT (dialog), "delete_event",
				GTK_SIGNAL_FUNC (message_box_delete_event_no_destroy), dialog);
	}
	else {
		if ( isWithStatus == 1 ){
			gtk_signal_connect (GTK_OBJECT (dialog), "delete_event",
				GTK_SIGNAL_FUNC (message_box_delete_event_with_status_common), dialog);
		}
		else if ( isWithStatus == 2 ){
			gtk_signal_connect (GTK_OBJECT (dialog), "delete_event",
				GTK_SIGNAL_FUNC (message_box_delete_event_with_status_setconfig), dialog);
		}
		else {
			gtk_signal_connect (GTK_OBJECT (dialog), "delete_event",
				GTK_SIGNAL_FUNC (message_box_delete_event), dialog);
		}
	}
						
		
	dialog_action_area1 = GTK_DIALOG(dialog)->action_area;	
	dialog_vbox1 = GTK_DIALOG(dialog)->vbox;	

	
	hbox1 = gtk_hbox_new(FALSE, 0);	
	gtk_widget_show(hbox1);			
	gtk_box_pack_start(GTK_BOX(dialog_vbox1), hbox1, TRUE, TRUE, 5);	
  
	
	style = gtk_widget_get_style(dialog);
	switch (flag & 0x0000000f) {	
		case MB_ICON_INFORMATION:	
 			icon = gdk_pixmap_create_from_xpm_d(dialog->window,
  										  &iconMask,
  										  &style->bg[GTK_STATE_NORMAL],
  										  info_xpm);
  			break;
		
		case MB_ICON_EXCLAMATION:	
 			icon = gdk_pixmap_create_from_xpm_d(dialog->window,
  										  &iconMask,
  										  &style->bg[GTK_STATE_NORMAL],
  										  exclam_xpm);
			break;

		case MB_ICON_SYSERR:	
 			icon = gdk_pixmap_create_from_xpm_d(dialog->window,
  										  &iconMask,
  										  &style->bg[GTK_STATE_NORMAL],
  										  syserr_xpm);
			break;

		case MB_ICON_QUESTION:	/* Ver.2.90 */
 			icon = gdk_pixmap_create_from_xpm_d(dialog->window,
  										  &iconMask,
  										  &style->bg[GTK_STATE_NORMAL],
  										  question_xpm);
			break;

		default:	/* Ver.3.00 */
			icon_exist = 0;
			break;
			
	}

	if( icon_exist ){
		pixmap = gtk_pixmap_new(icon, iconMask);			
		gtk_box_pack_start(GTK_BOX(hbox1), pixmap, FALSE, FALSE, 10);	
		if( icon_exist ) gtk_widget_show(pixmap);			
	}
	//else gtk_widget_hide(pixmap);

	label = gtk_label_new(message);	
	gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT);		
	gtk_widget_show(label);			
	gtk_box_pack_start(GTK_BOX(hbox1), label, TRUE, TRUE, 10);	


	hbuttonbox1 = gtk_hbutton_box_new();		
	gtk_box_pack_start(
		GTK_BOX(dialog_action_area1), hbuttonbox1, TRUE, FALSE, 0);	
	gtk_widget_show(hbuttonbox1);		
	
	/* Ver.2.80 */
	gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area1), GTK_BUTTONBOX_SPREAD);
	gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox1), GTK_BUTTONBOX_SPREAD);
	gtk_box_set_spacing (GTK_BOX (hbuttonbox1), 7);
	
	
	i = 0;			
	
	if (flag & MB_OK) {		
		button = gtk_button_new_with_label(
					LookupText(g_keytext_list, "message_button_ok"));	
		gtk_widget_show(button);					
		gtk_container_add(GTK_CONTAINER(hbuttonbox1), button);	
		GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
		
  		gtk_signal_connect(GTK_OBJECT(button), "clicked",	
					     GTK_SIGNAL_FUNC(message_box_ok),
					     dialog);
		if( default_flag & MB_OK ){
			gtk_widget_grab_focus(button);
			gtk_widget_grab_default(button);
		}
		i++;
	}
	
	if (flag & MB_CANCEL) {		
		button = gtk_button_new_with_label(
					LookupText(g_keytext_list, "message_button_cancel"));	
		gtk_widget_show(button);					
		gtk_container_add(GTK_CONTAINER(hbuttonbox1), button);	
		GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
  		gtk_signal_connect(GTK_OBJECT(button), "clicked",	
					     GTK_SIGNAL_FUNC(message_box_cancel),
					     dialog);
		if( default_flag & MB_CANCEL ){
			gtk_widget_grab_focus(button);
			gtk_widget_grab_default(button);
		}
		
		i++;
	}
	
	if (flag & MB_YES) {		
		button = gtk_button_new_with_label(
					LookupText(g_keytext_list, "message_button_yes"));	
		gtk_widget_show(button);					
		gtk_container_add(GTK_CONTAINER(hbuttonbox1), button);
		GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
  		gtk_signal_connect(GTK_OBJECT(button), "clicked",	
					     GTK_SIGNAL_FUNC(message_box_yes),
					     dialog);
		if( default_flag & MB_YES ){
			gtk_widget_grab_focus(button);
			gtk_widget_grab_default(button);
		}
		i++;
	}
	
	if (flag & MB_NO) {		
		button = gtk_button_new_with_label(
					LookupText(g_keytext_list, "message_button_no"));	
		gtk_widget_show(button);					
		gtk_container_add(GTK_CONTAINER(hbuttonbox1), button);
		GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
  		gtk_signal_connect(GTK_OBJECT(button), "clicked",	
					     GTK_SIGNAL_FUNC(message_box_no),
					     dialog);
		if( default_flag & MB_NO ){
			gtk_widget_grab_focus(button);
			gtk_widget_grab_default(button);
		}

		i++;
	}

	if (flag & MB_ABORT) {		
		button = gtk_button_new_with_label(
					LookupText(g_keytext_list, "message_button_abort"));	
		gtk_widget_show(button);					
		gtk_container_add(GTK_CONTAINER(hbuttonbox1), button);	
		GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
  		gtk_signal_connect(GTK_OBJECT(button), "clicked",	
					     GTK_SIGNAL_FUNC(message_box_abort),
					     dialog);
		if( default_flag & MB_ABORT ){
			gtk_widget_grab_focus(button);
			gtk_widget_grab_default(button);
		}
		i++;
	}

	if (flag & MB_IGNORE) {		
		button = gtk_button_new_with_label(
					LookupText(g_keytext_list, "message_button_ignore"));	
		gtk_widget_show(button);					
		gtk_container_add(GTK_CONTAINER(hbuttonbox1), button);	
		GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
  		gtk_signal_connect(GTK_OBJECT(button), "clicked",	
					     GTK_SIGNAL_FUNC(message_box_ignore),
					     dialog);
		if( default_flag & MB_IGNORE ){
			gtk_widget_grab_focus(button);
			gtk_widget_grab_default(button);
		}
		i++;
	}

	
	gtk_window_set_transient_for(GTK_WINDOW(dialog),
		 GTK_WINDOW(UI_DIALOG(g_main_window)->window));
	gtk_widget_show(dialog);				
	gtk_window_set_modal(GTK_WINDOW(dialog), TRUE);	

	
	gtk_main();

	if( icon_exist ){
		gdk_pixmap_unref(icon);
	}		
	return gUtilCommonStatus;				
}
void DrawPrinterDrawingArea(GtkWidget* window, GtkWidget* area)
{
	GdkWindow* area_window = area->window;
	GdkPixmap* pixmap;
	GdkBitmap* mask;
	gchar* xpm_name;
	gchar* key_str;
	gchar* message_str;
	GdkGC* gc = gdk_gc_new(window->window);

	// Background pattern.
	pixmap = LoadPixmap(window, NULL, "bg.xpm");
	DrawPixmap(area_window, gc, 0, 0, pixmap, NULL);
	FreePixmap(pixmap, NULL);

	// Printer body.
	pixmap = LoadPixmap(window, &mask, "printer.xpm");
	DrawPixmap(area_window, gc,
				 BODY_PIXMAP_X, BODY_PIXMAP_Y, pixmap, mask);
	FreePixmap(pixmap, mask);

	// Paper set and out.
	// Right guide(Paper set).
	{
		gchar* in_xpm_name;
		gchar* out_xpm_name;
		gchar* guide_xpm_name;
		short supply = GetCurrentnValue(CNCL_MEDIASUPPLY);
#ifdef	SUPPORT_BANNER
		short media = GetCurrentnValue(CNCL_MEDIATYPE);
#endif
		short size = GetCurrentnValue(CNCL_PAPERSIZE);

		if( supply == CND_SUPPLY_MANUAL )
			in_xpm_name = "in_m.xpm";
		else
			in_xpm_name = NULL;

#ifdef	SUPPORT_BANNER
		if( media == CND_MEDIA_BANNER )
			guide_xpm_name = "guide_a3.xpm";
		else
#endif
			guide_xpm_name = NULL;

		if( GetPaperWidth(size) > GetPaperHeight(size) )
		{
			if( in_xpm_name == NULL )
				in_xpm_name = "in_l.xpm";
			if( guide_xpm_name == NULL )
				guide_xpm_name = "guide_a2.xpm";
			out_xpm_name = "out_ph.xpm";
		}
		else
		{
			if( in_xpm_name == NULL )
				in_xpm_name = "in_p.xpm";
			if( guide_xpm_name == NULL )
				guide_xpm_name = "guide_a1.xpm";
			out_xpm_name = "out_pv.xpm";
		}

		pixmap = LoadPixmap(window, &mask, in_xpm_name);
		DrawPixmap(area_window, gc,
				 BODY_PIXMAP_X, BODY_PIXMAP_Y, pixmap, mask);
		FreePixmap(pixmap, mask);

		pixmap = LoadPixmap(window, &mask, out_xpm_name);
		DrawPixmap(area_window, gc,
				 BODY_PIXMAP_X, BODY_PIXMAP_Y, pixmap, mask);
		FreePixmap(pixmap, mask);

		pixmap = LoadPixmap(window, &mask, guide_xpm_name);
		DrawPixmap(area_window, gc,
				 R_GUIDE_PIXMAP_X, R_GUIDE_PIXMAP_Y, pixmap, mask);
		FreePixmap(pixmap, mask);
	}


	// Left guide(Thickness).
	{
		short thick = GetCurrentnValue(CNCL_MESS_THICK);

		switch( thick )
		{
		case CND_TMESSAGE_UPPER2:
			xpm_name = "guide_b1.xpm";
			break;
		default:
			xpm_name = "guide_b3.xpm";
			break;
		}

		pixmap = LoadPixmap(window, &mask, xpm_name);
		DrawPixmap(area_window, gc,
			 L_GUIDE_PIXMAP_X, L_GUIDE_PIXMAP_Y, pixmap, mask);
		FreePixmap(pixmap, mask);
	}

	// Media type message.
	message_str = GetCurrentString(CNCL_MEDIATYPE);

	DrawString(area_window, g_main_font, gc,
			 MEDIA_TEXT_X, MEDIA_TEXT_Y, message_str);

	{
		if( IsGrayPrint(g_main_window) )
		{
			xpm_name = "print_mono.xpm";
			key_str = "print_mono_message";
		}
		else
		{
			xpm_name = "print_color.xpm";
			key_str = "print_color_message";
		}

#ifndef	NO_PRINT_COLOR_ICON
		// Print color icon.
		pixmap = LoadPixmap(window, &mask, xpm_name);
		DrawPixmap(area_window, gc,
				 COLOR_PIXMAP_X, COLOR_PIXMAP_Y, pixmap, mask);
		FreePixmap(pixmap, mask);
#endif	
		// Color type message.
		message_str = LookupText(g_keytext_list, key_str);
		DrawString(area_window, g_main_font, gc,
				 COLOR_TEXT_X, COLOR_TEXT_Y, message_str);
	}

	gdk_gc_unref(gc);
}
void UpdateUserSizeWidgets(UIUserSizeDialog* dialog, gboolean init_flag)
{
	GtkSpinButton* width_spin
		= (GtkSpinButton*)LookupWidget(
			UI_DIALOG(dialog)->window, "user_size_width_spin");
	GtkSpinButton* height_spin
	 	= (GtkSpinButton*)LookupWidget(
			UI_DIALOG(dialog)->window, "user_size_height_spin");

	GtkAdjustment* adjust_w = width_spin->adjustment;
	GtkAdjustment* adjust_h = height_spin->adjustment;

	double min_w, max_w;
	double min_h, max_h;
	double new_w, new_h;
	GtkWidget* label;
	gchar scale_label[64];
	gchar* scale_string;
	gchar width_min_string[12];
	gchar width_max_string[12];
	gchar height_min_string[12];
	gchar height_max_string[12];
	/* Ver.3.00 */
	double min_w_adjust, max_w_adjust;
	double min_h_adjust, max_h_adjust;
	gchar width_min_string_adjust[12];
	gchar width_max_string_adjust[12];
	gchar height_min_string_adjust[12];
	gchar height_max_string_adjust[12];

	// The scale of dialog->width and dialog->height is "mm", 
	// so old_scale must be 0 when showing this dialog.
	int old_scale = (init_flag)? 0 : dialog->old_scale;
	int new_scale
		= GetActiveButtonIndex(
			UI_DIALOG(dialog)->window, user_size_scale_button_name, 0);

	if( init_flag )
	{
		adjust_w->value = dialog->width;
		adjust_h->value = dialog->height;
	}

	if( new_scale )
	{	// inch
		width_spin->climb_rate = height_spin->climb_rate = 0.01;
		width_spin->digits = height_spin->digits = 2;

		if( new_scale != old_scale )
		{	//  mm -> inch
			new_w = Milli2Inch(dialog->min_mm_w, dialog->max_mm_w,
					dialog->min_in_w, dialog->max_in_w, adjust_w->value);
			new_h = Milli2Inch(dialog->min_mm_h, dialog->max_mm_h,
					dialog->min_in_h, dialog->max_in_h, adjust_h->value);
		}
		else
		{
			new_w = adjust_w->value;
			new_h = adjust_h->value;
		}
		min_w = dialog->min_in_w;
		max_w = dialog->max_in_w;
		min_h = dialog->min_in_h;
		max_h = dialog->max_in_h;
	}
	else
	{	// mm
		width_spin->climb_rate = height_spin->climb_rate = 0.1;
		width_spin->digits = height_spin->digits = 1;

		if( new_scale != old_scale )
		{	//  inch -> mm
			new_w = Inch2Milli(dialog->min_in_w, dialog->max_in_w,
					dialog->min_mm_w, dialog->max_mm_w, adjust_w->value);
			new_h = Inch2Milli(dialog->min_in_h, dialog->max_in_h,
					dialog->min_mm_h, dialog->max_mm_h, adjust_h->value);
		}
		else
		{
			new_w = adjust_w->value;
			new_h = adjust_h->value;
		}
		min_w = dialog->min_mm_w;
		max_w = dialog->max_mm_w;
		min_h = dialog->min_mm_h;
		max_h = dialog->max_mm_h;
	}

	// Set adjustment fields.
	adjust_w->step_increment = width_spin->climb_rate;
	adjust_h->step_increment = height_spin->climb_rate;
	adjust_w->page_increment = width_spin->climb_rate * 10;
	adjust_h->page_increment = height_spin->climb_rate * 10;

#if 0
	adjust_w->lower = min_w;
	adjust_w->upper = max_w;
	adjust_h->lower = min_h;
	adjust_h->upper = max_h;
#endif

	/* Ver.3.00 */
	if( new_scale )	//inch
	{
		snprintf( width_min_string_adjust, 12, "%6.0f", (float)min_w * (float)100 );
		snprintf( width_max_string_adjust, 12, "%6.0f", (float)max_w * (float)100 );
		snprintf( height_min_string_adjust, 12,  "%6.0f", (float)min_h * (float)100 );
		snprintf( height_max_string_adjust, 12,  "%6.0f", (float)max_h * (float)100 );

		min_w_adjust = (double)atoi( width_min_string_adjust ) / (double)100;
		max_w_adjust = (double)atoi( width_max_string_adjust ) / (double)100;
		min_h_adjust = (double)atoi( height_min_string_adjust ) / (double)100;
		max_h_adjust = (double)atoi( height_max_string_adjust ) / (double)100;

	}
	else		//mm
	{
		snprintf( width_min_string_adjust, 12, "%6.0f", (float)min_w * (float)10 );
		snprintf( width_max_string_adjust, 12, "%6.0f", (float)max_w * (float)10 );
		snprintf( height_min_string_adjust,12,  "%6.0f", (float)min_h * (float)10 );
		snprintf( height_max_string_adjust, 12, "%6.0f", (float)max_h * (float)10 );
	
		min_w_adjust = (double)atoi( width_min_string_adjust ) / (double)10;
		max_w_adjust = (double)atoi( width_max_string_adjust ) / (double)10;
		min_h_adjust = (double)atoi( height_min_string_adjust ) / (double)10;
		max_h_adjust = (double)atoi( height_max_string_adjust ) / (double)10;
	}

	adjust_w->lower = min_w_adjust;
	adjust_w->upper = max_w_adjust;
	adjust_h->lower = min_h_adjust;
	adjust_h->upper = max_h_adjust;


#ifdef _PRINTUI_DEBUG_
	fprintf(stderr,"adjust_w->lower = %f\n",adjust_w->lower);
	fprintf(stderr,"min_w = %f\n",min_w);
	fprintf(stderr,"adjust_w->upper = %f\n",adjust_w->upper);
	fprintf(stderr,"max_w = %f\n",max_w);
	fprintf(stderr,"adjust_h->lower = %f\n",adjust_h->lower);
	fprintf(stderr,"min_h = %f\n",min_h);
	fprintf(stderr,"adjust_h->upper = %f\n",adjust_h->upper);
	fprintf(stderr,"max_h = %f\n",max_h);
#endif

	gtk_spin_button_set_value(width_spin, new_w);
	gtk_spin_button_set_value(height_spin, new_h);


	/* Ver.2.80 */
	snprintf( width_min_string, 12, user_size_range_format[new_scale], (float)min_w );
	snprintf( width_max_string, 12, user_size_range_format[new_scale], (float)max_w );
	snprintf( height_min_string, 12, user_size_range_format[new_scale], (float)min_h );
	snprintf( height_max_string, 12, user_size_range_format[new_scale], (float)max_h );

	scale_string = LookupText(g_keytext_list, user_size_scale_format_res[new_scale]);

	// Width scale label.
	label = LookupWidget(UI_DIALOG(dialog)->window, "user_size_width_label");
	snprintf(scale_label, sizeof(scale_label), scale_string, width_min_string, width_max_string );/*Ver.2.90(s)*/
	gtk_label_set_text(GTK_LABEL(label), scale_label);

	// Height scale label.
	label = LookupWidget(UI_DIALOG(dialog)->window, "user_size_height_label");
	snprintf(scale_label,sizeof(scale_label), scale_string, height_min_string, height_max_string );/*Ver.2.90(s)*/
	gtk_label_set_text(GTK_LABEL(label), scale_label);


	dialog->old_scale = new_scale;
}
/* ver.3.20:Use combo (item list) */
int ShowMediaSizeIllegalSelectDialog(UIMediaSizeDialog* dialog, gchar* applied)
{
	GtkWidget* current_label;
	GtkWidget* message_label;
	char *data;
	short change_id;
	char* change_msg;
	int i;
	gchar* alert_msg2_1;
	gchar* alert_msg2_2;
	gchar* message;
	gchar* tmp_message;
	gint message_len, tmp_message_len;

	if( dialog->change == UI_MEDIASIZE_CHANGE_SIZE ){
		/* show  media -> size */
		/* show media */
		current_label = LookupWidget(UI_DIALOG(dialog)->window, "mediasize_illegal_select_label001");
		gtk_label_set_text( GTK_LABEL(current_label), LookupText(g_keytext_list, "LUM_IDD_PAG_MAIN_IDC_STT_MEDIATYPE") );

		current_label = LookupWidget(UI_DIALOG(dialog)->window, "mediasize_illegal_select_label002");
		data = ValueToName(CNCL_MEDIATYPE, KeyToValue(CNCL_MEDIATYPE, dialog->media));
		gtk_label_set_text( GTK_LABEL(current_label), data );

		/* show size */
		current_label = LookupWidget(UI_DIALOG(dialog)->window, "mediasize_illegal_select_label003");
		gtk_label_set_text( GTK_LABEL(current_label), LookupText(g_keytext_list, "LUM_IDD_PAG_PAGESET_XP_IDC_STT_PAGESIZE") );

		current_label = LookupWidget(UI_DIALOG(dialog)->window, "mediasize_illegal_select_label004");
		data = ValueToName(CNCL_PAPERSIZE, KeyToValue(CNCL_PAPERSIZE, dialog->size));
		gtk_label_set_text( GTK_LABEL(current_label), data );
	}
	else {
		/* show  size -> media */
		/* show size */
		current_label = LookupWidget(UI_DIALOG(dialog)->window, "mediasize_illegal_select_label001");
		gtk_label_set_text( GTK_LABEL(current_label), LookupText(g_keytext_list, "LUM_IDD_PAG_PAGESET_XP_IDC_STT_PAGESIZE") );

		current_label = LookupWidget(UI_DIALOG(dialog)->window, "mediasize_illegal_select_label002");
		data = ValueToName(CNCL_PAPERSIZE, KeyToValue(CNCL_PAPERSIZE, dialog->size));
		gtk_label_set_text( GTK_LABEL(current_label), data );

		/* show media */
		current_label = LookupWidget(UI_DIALOG(dialog)->window, "mediasize_illegal_select_label003");
		gtk_label_set_text( GTK_LABEL(current_label), LookupText(g_keytext_list, "LUM_IDD_PAG_MAIN_IDC_STT_MEDIATYPE") );

		current_label = LookupWidget(UI_DIALOG(dialog)->window, "mediasize_illegal_select_label004");
		data = ValueToName(CNCL_MEDIATYPE, KeyToValue(CNCL_MEDIATYPE, dialog->media));
		gtk_label_set_text( GTK_LABEL(current_label), data );
	}
	dialog->item_count = CountWords(applied);

	message_label = LookupWidget(UI_DIALOG(dialog)->window,
									"mediasize_illegal_select_message_label");
	if( dialog->change == UI_MEDIASIZE_CHANGE_SIZE )
	{
		change_id = CNCL_PAPERSIZE;
		change_msg = LookupText(g_keytext_list, "mediasize_change_size");
	}
	else
	{
		change_id = CNCL_MEDIATYPE;
		change_msg = LookupText(g_keytext_list, "mediasize_change_media");
	}

	// In case of changing more than 1 recommended items.
	alert_msg2_1
		= LookupText(g_keytext_list, "mediasize_illegal_select_message2_1");
	alert_msg2_2
		= LookupText(g_keytext_list, "mediasize_illegal_select_message2_2");
	message_len = strlen(change_msg) + strlen(alert_msg2_1) + strlen(alert_msg2_2) + 2;	/* Ver.2.80 "2":\n+\0 */
	message = (gchar*)g_malloc( message_len );
	tmp_message_len = strlen(change_msg) + strlen(alert_msg2_1) + 1;	/* Ver.2.80 "1":\0 */
	tmp_message = (gchar*)g_malloc( tmp_message_len );

	snprintf(tmp_message, tmp_message_len, alert_msg2_1, change_msg ); /* Ver.3.60 */
	snprintf(message, message_len, "%s\n%s", tmp_message, alert_msg2_2);
	gtk_label_set_text(GTK_LABEL(message_label), message);

	g_free(tmp_message);
	g_free(message);

	{
		gchar* words = applied;
		gchar* word = (gchar*)g_malloc(strlen(words));
		gchar* next;
		gchar* change_to;
		int len;

		/* Ver.3.20: make combo */
		GtkWidget* combo = LookupWidget(UI_DIALOG(dialog)->window, "mediasize_illegal_combo" );
	
		/* Remove all items in current list */
		if(gtk_combo_box_get_active_text( GTK_COMBO_BOX( combo )) ){
			while( 1 ){
				gtk_combo_box_set_active( GTK_COMBO_BOX( combo ), 0 );
				if( ! gtk_combo_box_get_active_text( GTK_COMBO_BOX( combo )) ) break;
				gtk_combo_box_remove_text( GTK_COMBO_BOX( combo ), 0 );
			}
		}
		/* Add available list (not disable items from UIDB ) */
		for( i = 0 ; i < dialog->item_count ; i++ )
		{
			next = GetWord(words, &len);
			strncpy(word, words, len);
			word[len] = '\0';
			change_to = LookupText(g_keytext_list, word);
			
			if( change_to != NULL )
			{
				if( *change_to != '\0' ){
					/* append one item */
					gtk_combo_box_append_text( GTK_COMBO_BOX( combo ), change_to );
				}
			}
			
			if( i == 0) dialog->current_change_to_id = KeyToValue(change_id, word);		/* default current...set top item */
			
			words = next;
			
		}
		/* Set active item to top */
		gtk_combo_box_set_active( GTK_COMBO_BOX( combo ), 0 );
		gtk_widget_show( combo );

		g_free(word);
	}

	gtk_window_set_title(
		GTK_WINDOW(UI_DIALOG(dialog)->window), g_window_title);	
	gtk_window_set_position(
		GTK_WINDOW(UI_DIALOG(dialog)->window), GTK_WIN_POS_CENTER);	

	ShowDialog((UIDialog*)dialog, "mediasize_illegal_select_apply_button");
	return dialog->exec;
}