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

« back to all changes in this revision

Viewing changes to pp_printoutput.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Milan Zamazal
  • Date: 2007-05-01 16:32:13 UTC
  • mto: This revision was merged to the branch mainline in revision 3.
  • Revision ID: james.westby@ubuntu.com-20070501163213-k0gaendx7grjlmk5
Tags: upstream-0.3.5
ImportĀ upstreamĀ versionĀ 0.3.5

Show diffs side-by-side

added added

removed removed

Lines of Context:
9
9
#include <gtk/gtklabel.h>
10
10
#include <gtk/gtkcontainer.h>
11
11
 
 
12
#include "stpui_widgets/stpui_queue.h"
 
13
#include "stpui_widgets/stpui_printerselector.h"
 
14
 
12
15
#include "pp_printoutput.h"
13
16
 
 
17
#include "config.h"
 
18
#include "gettext.h"
 
19
#define _(x) gettext(x)
 
20
 
14
21
using namespace std;
15
22
 
16
23
enum {
30
37
        pp_PrintOutput *lo=(pp_PrintOutput *)ob;
31
38
 
32
39
        const char *driver=stpui_printerselector_get_driver(STPUI_PRINTERSELECTOR(wid));
33
 
        lo->po->SetString("Driver",driver);
34
 
 
35
 
        g_signal_emit(G_OBJECT (ob),pp_printoutput_signals[CHANGED_SIGNAL], 0);
36
 
}
37
 
 
38
 
 
39
 
static void command_changed(GtkWidget *wid,gpointer *ob)
40
 
{
41
 
        cerr << "In command_changed()" << endl;
42
 
        pp_PrintOutput *lo=(pp_PrintOutput *)ob;
43
 
 
44
 
        const char *command=gtk_entry_get_text(GTK_ENTRY(wid));
45
 
        lo->po->SetString("Command",command);
 
40
        if(driver)
 
41
        {
 
42
                lo->po->SetString("Driver",driver);
 
43
 
 
44
                g_signal_emit(G_OBJECT (ob),pp_printoutput_signals[CHANGED_SIGNAL], 0);
 
45
        }
46
46
}
47
47
 
48
48
 
53
53
        pp_PrintOutput *ob=PP_PRINTOUTPUT(ud);
54
54
        PrintOutput *po=ob->po;
55
55
 
56
 
        const char *val=gtk_entry_get_text(entry);
 
56
        cerr << "Getting printer queue..." << endl;
 
57
 
 
58
        const char *val=po->GetPrinterQueue();
57
59
        if(val && strlen(val))
58
60
        {
59
 
                po->SetString("Queue",val);
60
 
                char *driver=po->GetPrinterDriver(val);
 
61
                cerr << "Got printer queue: " << val << endl;
 
62
                char *driver=po->GetPrinterDriver();
61
63
                if(driver)
62
64
                {
63
65
                        cerr << "Got driver: " << driver << " from Queue" << endl;
65
67
                        stpui_printerselector_set_driver(STPUI_PRINTERSELECTOR(ob->printersel),driver);
66
68
                        free(driver);
67
69
                }
68
 
//              char *command=po->GetPrintCommand(val);
69
 
//              if(command)
70
 
//              {
71
 
//                      po->SetString("Command",command);
72
 
//                      gtk_entry_set_text(GTK_ENTRY(ob->string),command);
73
 
//                      free(command);
74
 
//              }
75
70
                g_signal_emit(G_OBJECT (ob),pp_printoutput_signals[CHANGED_SIGNAL], 0);
76
71
        }
77
72
}
112
107
        gtk_box_pack_start(GTK_BOX(ob),table,FALSE,FALSE,0);
113
108
        gtk_widget_show(table);
114
109
 
115
 
        label=gtk_label_new("Print Queue:");
 
110
        label=gtk_label_new(_("Print Queue:"));
116
111
        gtk_table_attach_defaults(GTK_TABLE(table),label,0,1,0,1);
117
112
        gtk_widget_show(label);
118
113
 
119
 
        ob->combo=gtk_combo_new();
120
 
        gtk_combo_set_value_in_list(GTK_COMBO(ob->combo),TRUE,FALSE);
 
114
        cerr << "Calling DBToQueues()" << endl;
 
115
 
 
116
        po->DBToQueues();
 
117
 
 
118
        cerr << "Getting PQInfo" << endl;
 
119
        struct pqinfo *pq=po->GetPQInfo();
 
120
        cerr << "Building stpui_queue" << endl;
 
121
        ob->combo=stpui_queue_new(pq);
 
122
        cerr << "Done" << endl;
121
123
        gtk_table_attach_defaults(GTK_TABLE(table),ob->combo,1,2,0,1);
122
124
        gtk_widget_show(ob->combo);
123
125
 
124
 
        int count,j;
125
 
 
126
 
        ob->queues=NULL;
127
 
        count=po->GetPrinterCount();
128
 
        
129
 
        for(j=0;j<count;++j)
130
 
        {
131
 
                char *queue=po->GetPrinterName(j);
132
 
                ob->queues=g_list_append(ob->queues,(void *)queue);
133
 
        }
134
 
        
135
 
        if(ob->queues)
136
 
        {
137
 
                gtk_combo_set_popdown_strings(GTK_COMBO(ob->combo),ob->queues);
138
 
                gtk_widget_set_sensitive(GTK_WIDGET(ob->combo),TRUE);
139
 
        }
140
 
        else
141
 
                gtk_widget_set_sensitive(GTK_WIDGET(ob->combo),FALSE);
142
 
 
143
 
        char *queue=po->FindString("Queue");
144
 
        if(queue && g_list_find_custom(ob->queues,queue,(GCompareFunc)strcmp))
145
 
                gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(ob->combo)->entry),queue);
146
 
 
147
 
        g_signal_connect(GTK_COMBO(ob->combo)->entry,"changed",G_CALLBACK(pp_printoutput_queue_changed),ob);
148
 
 
149
 
 
150
 
        label=gtk_label_new("Printer Model:");
 
126
        g_signal_connect(GTK_WIDGET(ob->combo),"changed",G_CALLBACK(pp_printoutput_queue_changed),ob);
 
127
 
 
128
 
 
129
        label=gtk_label_new(_("Printer Model:"));
151
130
        gtk_table_attach_defaults(GTK_TABLE(table),label,0,1,1,2);
152
131
        gtk_widget_show(label);
153
132
 
157
136
 
158
137
        stpui_printerselector_set_driver(STPUI_PRINTERSELECTOR(ob->printersel),po->FindString("Driver"));
159
138
        gtk_widget_show(ob->printersel);
160
 
 
161
 
 
162
 
        label=gtk_label_new("Print command:");
163
 
        gtk_table_attach_defaults(GTK_TABLE(table),label,0,1,2,3);
164
 
        gtk_widget_show(label);
165
 
 
166
 
        ob->string=gtk_entry_new();
167
 
        gtk_table_attach_defaults(GTK_TABLE(table),ob->string,1,2,2,3);
168
 
        gtk_widget_show(ob->string);
169
 
        gtk_entry_set_text(GTK_ENTRY(ob->string),po->FindString("Command"));
170
 
        g_signal_connect(G_OBJECT(ob->string),"changed",G_CALLBACK(command_changed),ob);
171
139
        
172
140
        return(GTK_WIDGET(ob));
173
141
}