21
21
#include <gtk/gtkmenuitem.h>
23
23
#include "pp_cms.h"
24
#include "profileselector.h"
24
#include "profilemanager/profileselector.h"
25
#include "profilemanager/intentselector.h"
25
26
#include "dialogs.h"
30
#define _(x) gettext(x)
31
#define N_(x) gettext_noop(x)
51
54
void pp_cms_refresh(pp_CMS *ob)
53
56
int pa=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ob->printeractive));
57
// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ob->rgbactive),FALSE);
58
// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ob->cmykactive),FALSE);
61
57
int ra=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ob->rgbactive));
62
58
int ca=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ob->cmykactive));
63
59
int ma=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ob->monitoractive));
65
61
gtk_widget_set_sensitive(ob->printerprof,pa);
66
62
gtk_widget_set_sensitive(ob->intent,pa);
63
gtk_widget_set_sensitive(ob->displaymode,ma);
67
64
gtk_widget_set_sensitive(ob->colourspace,!pa);
69
// gtk_widget_set_sensitive(ob->rgbactive,pa);
70
// gtk_widget_set_sensitive(ob->cmykactive,pa);
72
66
gtk_widget_set_sensitive(ob->rgbprof,ra);
73
67
gtk_widget_set_sensitive(ob->cmykprof,ca);
74
68
gtk_widget_set_sensitive(ob->monitorprof,ma);
77
// gtk_option_menu_set_history(GTK_OPTION_MENU(ob->intent),ob->db->FindInt("Intent"));
95
frame=gtk_frame_new("Printer");
86
frame=gtk_frame_new(_("Printer"));
96
87
gtk_container_set_border_width(GTK_CONTAINER(frame),5);
97
88
gtk_box_pack_start(GTK_BOX(ob),frame,FALSE,FALSE,0);
98
89
gtk_widget_show(frame);
107
98
gtk_box_pack_start(GTK_BOX(vbox),hbox,TRUE,TRUE,0);
108
99
gtk_widget_show(hbox);
110
ob->printeractive=gtk_check_button_new_with_label("Printer Profile:");
101
ob->printeractive=gtk_check_button_new_with_label(_("Printer Profile:"));
111
102
g_signal_connect(G_OBJECT(ob->printeractive),"toggled",G_CALLBACK(cms_changed),ob);
112
103
gtk_size_group_add_widget(GTK_SIZE_GROUP(sizegroup),ob->printeractive);
113
104
gtk_box_pack_start(GTK_BOX(hbox),ob->printeractive,FALSE,FALSE,5);
123
114
gtk_box_pack_start(GTK_BOX(vbox),hbox,TRUE,TRUE,5);
124
115
gtk_widget_show(hbox);
126
label=gtk_label_new("Rendering intent:");
117
label=gtk_label_new(_("Rendering intent:"));
127
118
gtk_size_group_add_widget(GTK_SIZE_GROUP(sizegroup),label);
128
119
gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,5);
129
120
gtk_widget_show(label);
131
ob->intent = gtk_option_menu_new ();
132
GtkWidget *menu, *menu_item;
133
menu = gtk_menu_new ();
135
menu_item = gtk_menu_item_new_with_label ("Perceptual");
136
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
137
gtk_widget_show (menu_item);
138
menu_item = gtk_menu_item_new_with_label ("Relative Colorimetric");
139
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
140
gtk_widget_show (menu_item);
141
menu_item = gtk_menu_item_new_with_label ("Saturation");
142
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
143
gtk_widget_show (menu_item);
144
menu_item = gtk_menu_item_new_with_label ("Absolute Colorimetric");
145
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
146
gtk_widget_show (menu_item);
148
gtk_option_menu_set_menu (GTK_OPTION_MENU (ob->intent), menu);
122
ob->intent = intentselector_new(pm);
150
123
gtk_box_pack_start(GTK_BOX(hbox),ob->intent,TRUE,TRUE,5);
151
124
gtk_widget_show(ob->intent);
156
129
gtk_box_pack_start(GTK_BOX(vbox),hbox,TRUE,TRUE,5);
157
130
gtk_widget_show(hbox);
159
label=gtk_label_new("Colour space:");
132
label=gtk_label_new(_("Colour space:"));
160
133
gtk_size_group_add_widget(GTK_SIZE_GROUP(sizegroup),label);
161
134
gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,5);
162
135
gtk_widget_show(label);
164
ob->colourspace = gtk_option_menu_new ();
165
menu = gtk_menu_new ();
137
ob->colourspace = gtk_option_menu_new ();
138
GtkWidget *menu = gtk_menu_new ();
167
menu_item = gtk_menu_item_new_with_label ("RGB");
140
GtkWidget *menu_item = gtk_menu_item_new_with_label ("RGB");
168
141
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
169
142
gtk_widget_show (menu_item);
170
143
menu_item = gtk_menu_item_new_with_label ("CMYK");
182
frame=gtk_frame_new("Monitor");
155
frame=gtk_frame_new(_("Monitor"));
183
156
gtk_container_set_border_width(GTK_CONTAINER(frame),5);
184
157
gtk_box_pack_start(GTK_BOX(ob),frame,FALSE,FALSE,0);
185
158
gtk_widget_show(frame);
192
165
gtk_box_pack_start(GTK_BOX(vbox),hbox,TRUE,TRUE,5);
193
166
gtk_widget_show(hbox);
195
ob->monitoractive=gtk_check_button_new_with_label("Monitor Profile:");
168
ob->monitoractive=gtk_check_button_new_with_label(_("Monitor Profile:"));
196
169
g_signal_connect(G_OBJECT(ob->monitoractive),"toggled",G_CALLBACK(cms_changed),ob);
197
170
gtk_size_group_add_widget(GTK_SIZE_GROUP(sizegroup),ob->monitoractive);
198
171
gtk_box_pack_start(GTK_BOX(hbox),ob->monitoractive,FALSE,FALSE,5);
202
175
gtk_box_pack_start(GTK_BOX(hbox),ob->monitorprof,TRUE,TRUE,5);
203
176
gtk_widget_show(ob->monitorprof);
178
hbox=gtk_hbox_new(FALSE,0);
179
gtk_box_pack_start(GTK_BOX(vbox),hbox,TRUE,TRUE,5);
180
gtk_widget_show(hbox);
182
label=gtk_label_new(_("Display mode:"));
183
gtk_size_group_add_widget(GTK_SIZE_GROUP(sizegroup),label);
184
gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,5);
185
gtk_widget_show(label);
187
ob->displaymode = gtk_option_menu_new ();
188
menu = gtk_menu_new ();
190
menu_item = gtk_menu_item_new_with_label (_("Normal"));
191
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
192
gtk_widget_show (menu_item);
193
menu_item = gtk_menu_item_new_with_label (_("Simulate Print"));
194
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
195
gtk_widget_show (menu_item);
196
menu_item = gtk_menu_item_new_with_label (_("Simulate Print, Adapt White"));
197
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
198
gtk_widget_show (menu_item);
200
gtk_option_menu_set_menu (GTK_OPTION_MENU (ob->displaymode), menu);
202
gtk_box_pack_start(GTK_BOX(hbox),ob->displaymode,TRUE,TRUE,5);
203
gtk_widget_show(ob->displaymode);
206
206
// Default Profiles frame
208
frame=gtk_frame_new("Default Image Profiles");
208
frame=gtk_frame_new(_("Default Image Profiles"));
209
209
gtk_container_set_border_width(GTK_CONTAINER(frame),5);
210
210
gtk_box_pack_start(GTK_BOX(ob),frame,FALSE,FALSE,0);
211
211
gtk_widget_show(frame);
220
220
gtk_box_pack_start(GTK_BOX(vbox),hbox,TRUE,TRUE,0);
221
221
gtk_widget_show(hbox);
223
ob->rgbactive=gtk_check_button_new_with_label("RGB Profile:");
223
ob->rgbactive=gtk_check_button_new_with_label(_("RGB Profile:"));
224
224
g_signal_connect(G_OBJECT(ob->rgbactive),"toggled",G_CALLBACK(cms_changed),ob);
225
225
gtk_size_group_add_widget(GTK_SIZE_GROUP(sizegroup),ob->rgbactive);
226
226
gtk_box_pack_start(GTK_BOX(hbox),ob->rgbactive,FALSE,FALSE,5);
236
236
gtk_box_pack_start(GTK_BOX(vbox),hbox,TRUE,TRUE,5);
237
237
gtk_widget_show(hbox);
239
ob->cmykactive=gtk_check_button_new_with_label("CMYK Profile:");
239
ob->cmykactive=gtk_check_button_new_with_label(_("CMYK Profile:"));
240
240
g_signal_connect(G_OBJECT(ob->cmykactive),"toggled",G_CALLBACK(cms_changed),ob);
241
241
gtk_size_group_add_widget(GTK_SIZE_GROUP(sizegroup),ob->cmykactive);
242
242
gtk_box_pack_start(GTK_BOX(hbox),ob->cmykactive,FALSE,FALSE,5);
246
246
gtk_box_pack_start(GTK_BOX(hbox),ob->cmykprof,TRUE,TRUE,5);
247
247
gtk_widget_show(ob->cmykprof);
253
ob->monitoractive=gtk_check_button_new_with_label("Monitor Profile");
254
g_signal_connect(G_OBJECT(ob->monitoractive),"toggled",G_CALLBACK(cms_changed),ob);
255
gtk_table_attach(GTK_TABLE(table),ob->monitoractive,0,1,3,4,enum GtkAttachOptions(GTK_SHRINK|GTK_FILL),GTK_SHRINK,0,0);
256
gtk_widget_show(ob->monitoractive);
258
ob->monitorprof=gtk_entry_new();
259
gtk_table_attach_defaults(GTK_TABLE(table),ob->monitorprof,1,2,3,4);
260
gtk_widget_show(ob->monitorprof);
263
250
g_object_unref(G_OBJECT(sizegroup));
333
322
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ob->rgbactive),db->profilemanager.FindInt("DefaultRGBProfileActive"));
334
323
pf=db->profilemanager.FindString("DefaultRGBProfile");
324
cerr << "Default RGB Profile" << pf;
335
325
if(pf && strlen(pf))
337
327
if((pf2=db->profilemanager.Search(pf)))
347
337
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ob->cmykactive),db->profilemanager.FindInt("DefaultCMYKProfileActive"));
348
338
pf=db->profilemanager.FindString("DefaultCMYKProfile");
339
cerr << "Default CMYK Profile" << pf;
349
340
if(pf && strlen(pf))
351
342
if((pf2=db->profilemanager.Search(pf)))
372
363
profileselector_set_filename(PROFILESELECTOR(ob->monitorprof),pf);
375
gtk_option_menu_set_history(GTK_OPTION_MENU(ob->intent),db->profilemanager.FindInt("RenderingIntent"));
366
intentselector_setintent(INTENTSELECTOR(ob->intent),LCMSWrapper_Intent(db->profilemanager.FindInt("RenderingIntent")));
368
gtk_option_menu_set_history(GTK_OPTION_MENU(ob->displaymode),db->profilemanager.FindInt("ProofMode"));
377
370
char *cs=db->FindString("PrintColourSpace");
378
371
if(strcmp(cs,"RGB")==0)
416
409
db->profilemanager.SetString("MonitorProfile",pf);
419
db->profilemanager.SetInt("RenderingIntent",gtk_option_menu_get_history(GTK_OPTION_MENU(ob->intent)));
412
db->profilemanager.SetInt("RenderingIntent",intentselector_getintent(INTENTSELECTOR(ob->intent)));
414
db->profilemanager.SetInt("ProofMode",gtk_option_menu_get_history(GTK_OPTION_MENU(ob->displaymode)));
421
416
int cs=gtk_option_menu_get_history(GTK_OPTION_MENU(ob->colourspace));
434
429
void pp_cms_run_dialog(PhotoPrint_State *db,GtkWindow *parent)
436
GtkWidget *dialog=gtk_dialog_new_with_buttons("Colour Management",
431
GtkWidget *dialog=gtk_dialog_new_with_buttons(_("Colour Management"),
437
432
parent,GtkDialogFlags(0),
438
433
GTK_STOCK_CANCEL,GTK_RESPONSE_CANCEL,
439
434
GTK_STOCK_OK,GTK_RESPONSE_OK,