~ubuntu-branches/ubuntu/karmic/photoprint/karmic

« back to all changes in this revision

Viewing changes to pp_cms.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Milan Zamazal
  • Date: 2007-05-01 16:32:13 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20070501163213-ni1933khtg9fdvn5
Tags: 0.3.5-2
Move to unstable.

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
#include <gtk/gtkmenuitem.h>
22
22
 
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"
26
27
 
 
28
#include "config.h"
 
29
#include "gettext.h"
 
30
#define _(x) gettext(x)
 
31
#define N_(x) gettext_noop(x)
 
32
 
27
33
enum {
28
34
        CHANGED_SIGNAL,
29
35
        LAST_SIGNAL
39
45
{
40
46
        pp_CMS *lo=(pp_CMS *)ob;
41
47
 
42
 
//      if(lo->intent)
43
 
//              lo->db->SetInt("Intent",gtk_option_menu_get_history(GTK_OPTION_MENU(lo->intent)));
44
 
 
45
48
        pp_cms_refresh(lo);
46
49
 
47
50
        g_signal_emit(G_OBJECT (ob),pp_cms_signals[CHANGED_SIGNAL], 0);
51
54
void pp_cms_refresh(pp_CMS *ob)
52
55
{
53
56
        int pa=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ob->printeractive));
54
 
        
55
 
//      if(!pa)
56
 
//      {
57
 
//              gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ob->rgbactive),FALSE);
58
 
//              gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ob->cmykactive),FALSE);
59
 
//      }
60
 
 
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));
64
60
 
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);
68
65
 
69
 
//      gtk_widget_set_sensitive(ob->rgbactive,pa);
70
 
//      gtk_widget_set_sensitive(ob->cmykactive,pa);
71
 
 
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);
75
 
 
76
 
//      if(ob->intent)
77
 
//              gtk_option_menu_set_history(GTK_OPTION_MENU(ob->intent),ob->db->FindInt("Intent"));
78
69
}
79
70
 
80
71
 
92
83
 
93
84
        // Printer frame
94
85
        
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);
109
100
 
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);
125
116
 
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);         
130
121
 
131
 
        ob->intent = gtk_option_menu_new ();
132
 
        GtkWidget *menu, *menu_item;
133
 
        menu = gtk_menu_new ();
134
 
 
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);
147
 
        
148
 
        gtk_option_menu_set_menu (GTK_OPTION_MENU (ob->intent), menu);
149
 
        
 
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);
152
125
 
156
129
        gtk_box_pack_start(GTK_BOX(vbox),hbox,TRUE,TRUE,5);
157
130
        gtk_widget_show(hbox);
158
131
 
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);         
163
136
 
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 ();
166
139
 
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");
179
152
 
180
153
        // Monitor frame
181
154
        
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);
194
167
 
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);
204
177
 
 
178
        hbox=gtk_hbox_new(FALSE,0);
 
179
        gtk_box_pack_start(GTK_BOX(vbox),hbox,TRUE,TRUE,5);
 
180
        gtk_widget_show(hbox);
 
181
 
 
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);
 
186
 
 
187
        ob->displaymode = gtk_option_menu_new ();
 
188
        menu = gtk_menu_new ();
 
189
 
 
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);
 
199
 
 
200
        gtk_option_menu_set_menu (GTK_OPTION_MENU (ob->displaymode), menu);
 
201
        
 
202
        gtk_box_pack_start(GTK_BOX(hbox),ob->displaymode,TRUE,TRUE,5);
 
203
        gtk_widget_show(ob->displaymode);
 
204
 
205
205
 
206
206
        // Default Profiles frame
207
207
        
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);
222
222
 
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);
238
238
 
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);
248
248
 
249
 
        // Print Preview
250
 
 
251
 
 
252
 
#if 0
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);
257
 
 
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);
261
 
#endif
262
249
 
263
250
        g_object_unref(G_OBJECT(sizegroup));
264
251
 
316
303
{
317
304
        char *pf,*pf2;
318
305
 
 
306
        cerr << "Populating PP_CMS..." << endl;
 
307
 
319
308
        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ob->printeractive),db->profilemanager.FindInt("PrinterProfileActive"));
320
309
        pf=db->profilemanager.FindString("PrinterProfile");
321
310
        if(pf && strlen(pf))
332
321
 
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))
336
326
        {
337
327
                if((pf2=db->profilemanager.Search(pf)))
346
336
 
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))
350
341
        {
351
342
                if((pf2=db->profilemanager.Search(pf)))
372
363
                        profileselector_set_filename(PROFILESELECTOR(ob->monitorprof),pf);
373
364
        }
374
365
 
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")));
 
367
 
 
368
        gtk_option_menu_set_history(GTK_OPTION_MENU(ob->displaymode),db->profilemanager.FindInt("ProofMode"));
376
369
 
377
370
        char *cs=db->FindString("PrintColourSpace");
378
371
        if(strcmp(cs,"RGB")==0)
416
409
        db->profilemanager.SetString("MonitorProfile",pf);
417
410
        free(pf);
418
411
 
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)));
 
413
 
 
414
        db->profilemanager.SetInt("ProofMode",gtk_option_menu_get_history(GTK_OPTION_MENU(ob->displaymode)));
420
415
 
421
416
        int cs=gtk_option_menu_get_history(GTK_OPTION_MENU(ob->colourspace));
422
417
        switch(cs)
433
428
 
434
429
void pp_cms_run_dialog(PhotoPrint_State *db,GtkWindow *parent)
435
430
{
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,