~ubuntu-branches/ubuntu/raring/notecase/raring

« back to all changes in this revision

Viewing changes to src/PixPropertiesDlg.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Nathan Handler
  • Date: 2008-12-21 13:09:58 UTC
  • mfrom: (1.1.6 upstream)
  • Revision ID: james.westby@ubuntu.com-20081221130958-0ri77h0x7j1dclkq
Tags: 1.9.8-0ubuntu1
New upstream release (LP: #307752)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
////////////////////////////////////////////////////////////////////////////
2
 
// NoteCase notes manager project <http://notecase.sf.net>
3
 
//
4
 
// This code is licensed under BSD license.See "license.txt" for more details.
5
 
//
6
 
// File: Dialog to prepare image for insertion into the document (resize + select format)
7
 
////////////////////////////////////////////////////////////////////////////
8
 
 
9
 
#include "PixPropertiesDlg.h"
10
 
#include "support.h"
11
 
#include "callbacks.h"
12
 
#include "lib/debug.h"
13
 
#include "config.h"
14
 
 
15
 
#ifdef _WIN32
16
 
 #ifndef __MINGW32__
17
 
   #ifndef snprintf
18
 
    #define snprintf _snprintf
19
 
   #endif
20
 
 #endif
21
 
#endif
22
 
 
23
 
extern GtkWidget *window1;
24
 
int gtkMessageBox(const char *szText, int nButtons = GTK_BUTTONS_OK, int nIcon = GTK_MESSAGE_INFO);
25
 
 
26
 
static void on_resize_combo_selected (GtkComboBox *widget, gpointer user_data);
27
 
static void on_use_png_checked (GtkMenuItem *menuitem, gpointer user_data);
28
 
 
29
 
PixPropertiesDlg::PixPropertiesDlg()
30
 
{
31
 
}
32
 
 
33
 
PixPropertiesDlg::~PixPropertiesDlg()
34
 
{
35
 
        Destroy();
36
 
        gtk_window_present(GTK_WINDOW(window1)); //activate main window
37
 
}
38
 
 
39
 
void PixPropertiesDlg::Create()
40
 
{
41
 
        m_pDialog = create_node_properties_dialog ();
42
 
 
43
 
        GtkWidget *label25 = lookup_widget(m_pDialog, "label25");
44
 
        char szBuffer[100];
45
 
        sprintf(szBuffer, "%d x %d", m_nOrigWidth, m_nOrigHeight);
46
 
        gtk_label_set_text(GTK_LABEL(label25), szBuffer);
47
 
 
48
 
        //fill internal icons combo
49
 
        GtkWidget *cbo2 = lookup_widget(m_pDialog, "comboboxentry2");
50
 
        gtk_combo_box_append_text(GTK_COMBO_BOX(cbo2), "100%");
51
 
        gtk_combo_box_append_text(GTK_COMBO_BOX(cbo2), "90%");
52
 
        gtk_combo_box_append_text(GTK_COMBO_BOX(cbo2), "80%");
53
 
        gtk_combo_box_append_text(GTK_COMBO_BOX(cbo2), "75%");
54
 
        gtk_combo_box_append_text(GTK_COMBO_BOX(cbo2), "70%");
55
 
        gtk_combo_box_append_text(GTK_COMBO_BOX(cbo2), "60%");
56
 
        gtk_combo_box_append_text(GTK_COMBO_BOX(cbo2), "50%");
57
 
        gtk_combo_box_append_text(GTK_COMBO_BOX(cbo2), "40%");
58
 
        gtk_combo_box_append_text(GTK_COMBO_BOX(cbo2), "30%");
59
 
        gtk_combo_box_append_text(GTK_COMBO_BOX(cbo2), "25%");
60
 
        gtk_combo_box_append_text(GTK_COMBO_BOX(cbo2), "20%");
61
 
        gtk_combo_box_append_text(GTK_COMBO_BOX(cbo2), "10%");
62
 
 
63
 
        //select first entry in combo (must not be empty selection)
64
 
        gtk_combo_box_set_active(GTK_COMBO_BOX(cbo2), 0);
65
 
 
66
 
        RecalcNewSize();
67
 
}
68
 
 
69
 
GtkWidget* PixPropertiesDlg::create_node_properties_dialog ()
70
 
{
71
 
        GtkWidget *node_properties_dialog;
72
 
        GtkWidget *dialog_vbox5;
73
 
        GtkWidget *table4;
74
 
        GtkWidget *label21;
75
 
        GtkWidget *label25;
76
 
        GtkWidget *label26;
77
 
        GtkWidget *label27;
78
 
        GtkWidget *label28;
79
 
        GtkWidget *chk1;
80
 
        GtkWidget *comboboxentry2;
81
 
        GtkWidget *dialog_action_area5;
82
 
        GtkWidget *cancelbutton5;
83
 
        GtkWidget *okbutton5;
84
 
 
85
 
        node_properties_dialog = gtk_dialog_new ();
86
 
        gtk_window_set_title (GTK_WINDOW (node_properties_dialog), _("Image Properties"));
87
 
        gtk_window_set_type_hint (GTK_WINDOW (node_properties_dialog), GDK_WINDOW_TYPE_HINT_DIALOG);
88
 
        gtk_window_set_modal (GTK_WINDOW (node_properties_dialog), TRUE);
89
 
        gtk_window_set_skip_pager_hint (GTK_WINDOW (node_properties_dialog), TRUE);
90
 
#ifndef _WIN32  //TOFIX API is buggy on Win32 (kills modal dialog state)
91
 
        gtk_window_set_skip_taskbar_hint (GTK_WINDOW (node_properties_dialog), TRUE);
92
 
#endif
93
 
        gtk_window_set_position(GTK_WINDOW (node_properties_dialog), GTK_WIN_POS_CENTER_ON_PARENT);
94
 
        gtk_window_set_transient_for(GTK_WINDOW (node_properties_dialog), GTK_WINDOW(window1));   //set parent
95
 
 
96
 
        dialog_vbox5 = GTK_DIALOG (node_properties_dialog)->vbox;
97
 
        gtk_widget_show (dialog_vbox5);
98
 
 
99
 
        table4 = gtk_table_new (2, 2, FALSE);
100
 
        gtk_widget_show (table4);
101
 
        gtk_box_pack_start (GTK_BOX (dialog_vbox5), table4, TRUE, TRUE, 0);
102
 
 
103
 
        label21 = gtk_label_new (_("Original size:"));
104
 
        gtk_widget_show (label21);
105
 
        gtk_table_attach (GTK_TABLE (table4), label21, 0, 1, 0, 1,
106
 
                (GtkAttachOptions) (GTK_FILL),
107
 
                (GtkAttachOptions) (0), 2, 2);
108
 
        gtk_misc_set_alignment (GTK_MISC (label21), 0, 0.5);
109
 
 
110
 
        label25 = gtk_label_new (_("unknown"));
111
 
        gtk_widget_show (label25);
112
 
        gtk_table_attach (GTK_TABLE (table4), label25, 1, 2, 0, 1,
113
 
                (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
114
 
                (GtkAttachOptions) (0), 2, 2);
115
 
 
116
 
        label27 = gtk_label_new (_("Selected size:"));
117
 
        gtk_widget_show (label27);
118
 
        gtk_table_attach (GTK_TABLE (table4), label27, 0, 1, 1, 2,
119
 
                (GtkAttachOptions) (GTK_FILL),
120
 
                (GtkAttachOptions) (0), 2, 2);
121
 
        gtk_misc_set_alignment (GTK_MISC (label27), 0, 0.5);
122
 
 
123
 
        label28 = gtk_label_new (_("unknown"));
124
 
        gtk_widget_show (label28);
125
 
        gtk_table_attach (GTK_TABLE (table4), label28, 1, 2, 1, 2,
126
 
                (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
127
 
                (GtkAttachOptions) (0), 2, 2);
128
 
 
129
 
        label26 = gtk_label_new (_("Resize to:"));
130
 
        gtk_widget_show (label26);
131
 
        gtk_table_attach (GTK_TABLE (table4), label26, 0, 1, 2, 3,
132
 
                (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
133
 
                (GtkAttachOptions) (0), 2, 2);
134
 
        gtk_misc_set_alignment (GTK_MISC (label26), 0, 0.5);
135
 
 
136
 
        comboboxentry2 = gtk_combo_box_new_text ();
137
 
        gtk_widget_show (comboboxentry2);
138
 
        gtk_table_attach (GTK_TABLE (table4), comboboxentry2, 1, 2, 2, 3,
139
 
                (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
140
 
                (GtkAttachOptions) (GTK_FILL), 2, 2);
141
 
 
142
 
        chk1 = gtk_check_button_new_with_mnemonic (_("Store as PNG"));
143
 
        gtk_widget_show (chk1);
144
 
        gtk_table_attach (GTK_TABLE (table4), chk1, 0, 2, 3, 4,
145
 
                (GtkAttachOptions) (GTK_FILL),
146
 
                (GtkAttachOptions) (0), 2, 2);
147
 
 
148
 
        dialog_action_area5 = GTK_DIALOG (node_properties_dialog)->action_area;
149
 
        gtk_widget_show (dialog_action_area5);
150
 
        gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area5), GTK_BUTTONBOX_END);
151
 
 
152
 
        cancelbutton5 = gtk_button_new_from_stock ("gtk-cancel");
153
 
        gtk_widget_show (cancelbutton5);
154
 
        gtk_dialog_add_action_widget (GTK_DIALOG (node_properties_dialog), cancelbutton5, GTK_RESPONSE_CANCEL);
155
 
        GTK_WIDGET_SET_FLAGS (cancelbutton5, GTK_CAN_DEFAULT);
156
 
 
157
 
        okbutton5 = gtk_button_new_from_stock ("gtk-ok");
158
 
        gtk_widget_show (okbutton5);
159
 
        gtk_dialog_add_action_widget (GTK_DIALOG (node_properties_dialog), okbutton5, GTK_RESPONSE_OK);
160
 
        GTK_WIDGET_SET_FLAGS (okbutton5, GTK_CAN_DEFAULT);
161
 
 
162
 
        g_signal_connect (comboboxentry2,       "changed", G_CALLBACK (on_resize_combo_selected), this);
163
 
        g_signal_connect (chk1, "clicked",  G_CALLBACK (on_use_png_checked), this);
164
 
 
165
 
        /* Store pointers to all widgets, for use by lookup_widget(). */
166
 
        GLADE_HOOKUP_OBJECT_NO_REF (node_properties_dialog, node_properties_dialog, "node_properties_dialog");
167
 
        GLADE_HOOKUP_OBJECT_NO_REF (node_properties_dialog, dialog_vbox5, "dialog_vbox5");
168
 
        GLADE_HOOKUP_OBJECT (node_properties_dialog, table4, "table4");
169
 
        GLADE_HOOKUP_OBJECT (node_properties_dialog, label21, "label21");
170
 
        GLADE_HOOKUP_OBJECT (node_properties_dialog, label25, "label25");
171
 
        GLADE_HOOKUP_OBJECT (node_properties_dialog, label26, "label26");
172
 
        GLADE_HOOKUP_OBJECT (node_properties_dialog, label27, "label27");
173
 
        GLADE_HOOKUP_OBJECT (node_properties_dialog, label28, "label28");
174
 
        GLADE_HOOKUP_OBJECT (node_properties_dialog, comboboxentry2, "comboboxentry2");
175
 
        GLADE_HOOKUP_OBJECT_NO_REF (node_properties_dialog, dialog_action_area5, "dialog_action_area5");
176
 
        GLADE_HOOKUP_OBJECT (node_properties_dialog, cancelbutton5, "cancelbutton5");
177
 
        GLADE_HOOKUP_OBJECT (node_properties_dialog, okbutton5, "okbutton5");
178
 
 
179
 
        return node_properties_dialog;
180
 
}
181
 
 
182
 
void PixPropertiesDlg::RecalcNewSize()
183
 
{
184
 
        GtkWidget *cbo2 = lookup_widget(m_pDialog, "comboboxentry2");
185
 
        int nIdx = gtk_combo_box_get_active(GTK_COMBO_BOX(cbo2));
186
 
        ASSERT(nIdx >= 0);
187
 
 
188
 
        const int arPercent[] = {100, 90, 80, 75, 70, 60, 50, 40, 30, 25, 20, 10 };
189
 
        int nPercent = arPercent[nIdx];
190
 
 
191
 
        m_nNewWidth  = m_nOrigWidth  * nPercent / 100;
192
 
        m_nNewHeight = m_nOrigHeight * nPercent / 100;
193
 
 
194
 
        GtkWidget *label28 = lookup_widget(m_pDialog, "label28");
195
 
        char szBuffer[100];
196
 
        sprintf(szBuffer, "%d x %d", m_nNewWidth, m_nNewHeight);
197
 
        gtk_label_set_text(GTK_LABEL(label28), szBuffer);
198
 
}
199
 
 
200
 
void on_resize_combo_selected (GtkComboBox *widget, gpointer user_data)
201
 
{
202
 
        PixPropertiesDlg *pDlg = (PixPropertiesDlg *)user_data;
203
 
        pDlg->RecalcNewSize();
204
 
}
205
 
 
206
 
void on_use_png_checked (GtkMenuItem *menuitem, gpointer user_data)
207
 
{
208
 
        PixPropertiesDlg *pDlg = (PixPropertiesDlg *)user_data;
209
 
        pDlg->m_bUsePNG = (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(menuitem)) != FALSE);
210
 
}
 
1
////////////////////////////////////////////////////////////////////////////
 
2
// NoteCase notes manager project <http://notecase.sf.net>
 
3
//
 
4
// This code is licensed under BSD license.See "license.txt" for more details.
 
5
//
 
6
// File: Dialog to prepare image for insertion into the document (resize + select format)
 
7
////////////////////////////////////////////////////////////////////////////
 
8
 
 
9
#include "PixPropertiesDlg.h"
 
10
#include "support.h"
 
11
#include "callbacks.h"
 
12
#include "lib/debug.h"
 
13
#include "config.h"
 
14
 
 
15
#ifdef _WIN32
 
16
 #ifndef __MINGW32__
 
17
   #ifndef snprintf
 
18
    #define snprintf _snprintf
 
19
   #endif
 
20
 #endif
 
21
#endif
 
22
 
 
23
extern GtkWidget *window1;
 
24
int gtkMessageBox(const char *szText, int nButtons = GTK_BUTTONS_OK, int nIcon = GTK_MESSAGE_INFO);
 
25
 
 
26
static void on_resize_combo_selected (GtkComboBox *widget, gpointer user_data);
 
27
static void on_use_png_checked (GtkMenuItem *menuitem, gpointer user_data);
 
28
 
 
29
PixPropertiesDlg::PixPropertiesDlg()
 
30
{
 
31
}
 
32
 
 
33
PixPropertiesDlg::~PixPropertiesDlg()
 
34
{
 
35
        Destroy();
 
36
        gtk_window_present(GTK_WINDOW(window1)); //activate main window
 
37
}
 
38
 
 
39
void PixPropertiesDlg::Create()
 
40
{
 
41
        m_pDialog = create_node_properties_dialog ();
 
42
 
 
43
        GtkWidget *label25 = lookup_widget(m_pDialog, "label25");
 
44
        char szBuffer[100];
 
45
        sprintf(szBuffer, "%d x %d", m_nOrigWidth, m_nOrigHeight);
 
46
        gtk_label_set_text(GTK_LABEL(label25), szBuffer);
 
47
 
 
48
        //fill internal icons combo
 
49
        GtkWidget *cbo2 = lookup_widget(m_pDialog, "comboboxentry2");
 
50
        gtk_combo_box_append_text(GTK_COMBO_BOX(cbo2), "100%");
 
51
        gtk_combo_box_append_text(GTK_COMBO_BOX(cbo2), "90%");
 
52
        gtk_combo_box_append_text(GTK_COMBO_BOX(cbo2), "80%");
 
53
        gtk_combo_box_append_text(GTK_COMBO_BOX(cbo2), "75%");
 
54
        gtk_combo_box_append_text(GTK_COMBO_BOX(cbo2), "70%");
 
55
        gtk_combo_box_append_text(GTK_COMBO_BOX(cbo2), "60%");
 
56
        gtk_combo_box_append_text(GTK_COMBO_BOX(cbo2), "50%");
 
57
        gtk_combo_box_append_text(GTK_COMBO_BOX(cbo2), "40%");
 
58
        gtk_combo_box_append_text(GTK_COMBO_BOX(cbo2), "30%");
 
59
        gtk_combo_box_append_text(GTK_COMBO_BOX(cbo2), "25%");
 
60
        gtk_combo_box_append_text(GTK_COMBO_BOX(cbo2), "20%");
 
61
        gtk_combo_box_append_text(GTK_COMBO_BOX(cbo2), "10%");
 
62
 
 
63
        //select first entry in combo (must not be empty selection)
 
64
        gtk_combo_box_set_active(GTK_COMBO_BOX(cbo2), 0);
 
65
 
 
66
        RecalcNewSize();
 
67
}
 
68
 
 
69
GtkWidget* PixPropertiesDlg::create_node_properties_dialog ()
 
70
{
 
71
        GtkWidget *node_properties_dialog;
 
72
        GtkWidget *dialog_vbox5;
 
73
        GtkWidget *table4;
 
74
        GtkWidget *label21;
 
75
        GtkWidget *label25;
 
76
        GtkWidget *label26;
 
77
        GtkWidget *label27;
 
78
        GtkWidget *label28;
 
79
        GtkWidget *chk1;
 
80
        GtkWidget *comboboxentry2;
 
81
        GtkWidget *dialog_action_area5;
 
82
        GtkWidget *cancelbutton5;
 
83
        GtkWidget *okbutton5;
 
84
 
 
85
        node_properties_dialog = gtk_dialog_new ();
 
86
        gtk_window_set_title (GTK_WINDOW (node_properties_dialog), _("Image Properties"));
 
87
        gtk_window_set_type_hint (GTK_WINDOW (node_properties_dialog), GDK_WINDOW_TYPE_HINT_DIALOG);
 
88
        gtk_window_set_modal (GTK_WINDOW (node_properties_dialog), TRUE);
 
89
        gtk_window_set_skip_pager_hint (GTK_WINDOW (node_properties_dialog), TRUE);
 
90
#ifndef _WIN32  //TOFIX API is buggy on Win32 (kills modal dialog state)
 
91
        gtk_window_set_skip_taskbar_hint (GTK_WINDOW (node_properties_dialog), TRUE);
 
92
#endif
 
93
        gtk_window_set_position(GTK_WINDOW (node_properties_dialog), GTK_WIN_POS_CENTER_ON_PARENT);
 
94
        gtk_window_set_transient_for(GTK_WINDOW (node_properties_dialog), GTK_WINDOW(window1));   //set parent
 
95
 
 
96
        dialog_vbox5 = GTK_DIALOG (node_properties_dialog)->vbox;
 
97
        gtk_widget_show (dialog_vbox5);
 
98
 
 
99
        table4 = gtk_table_new (2, 2, FALSE);
 
100
        gtk_widget_show (table4);
 
101
        gtk_box_pack_start (GTK_BOX (dialog_vbox5), table4, TRUE, TRUE, 0);
 
102
 
 
103
        label21 = gtk_label_new (_("Original size:"));
 
104
        gtk_widget_show (label21);
 
105
        gtk_table_attach (GTK_TABLE (table4), label21, 0, 1, 0, 1,
 
106
                (GtkAttachOptions) (GTK_FILL),
 
107
                (GtkAttachOptions) (0), 2, 2);
 
108
        gtk_misc_set_alignment (GTK_MISC (label21), 0, 0.5);
 
109
 
 
110
        label25 = gtk_label_new (_("unknown"));
 
111
        gtk_widget_show (label25);
 
112
        gtk_table_attach (GTK_TABLE (table4), label25, 1, 2, 0, 1,
 
113
                (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
 
114
                (GtkAttachOptions) (0), 2, 2);
 
115
 
 
116
        label27 = gtk_label_new (_("Selected size:"));
 
117
        gtk_widget_show (label27);
 
118
        gtk_table_attach (GTK_TABLE (table4), label27, 0, 1, 1, 2,
 
119
                (GtkAttachOptions) (GTK_FILL),
 
120
                (GtkAttachOptions) (0), 2, 2);
 
121
        gtk_misc_set_alignment (GTK_MISC (label27), 0, 0.5);
 
122
 
 
123
        label28 = gtk_label_new (_("unknown"));
 
124
        gtk_widget_show (label28);
 
125
        gtk_table_attach (GTK_TABLE (table4), label28, 1, 2, 1, 2,
 
126
                (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
 
127
                (GtkAttachOptions) (0), 2, 2);
 
128
 
 
129
        label26 = gtk_label_new (_("Resize to:"));
 
130
        gtk_widget_show (label26);
 
131
        gtk_table_attach (GTK_TABLE (table4), label26, 0, 1, 2, 3,
 
132
                (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
 
133
                (GtkAttachOptions) (0), 2, 2);
 
134
        gtk_misc_set_alignment (GTK_MISC (label26), 0, 0.5);
 
135
 
 
136
        comboboxentry2 = gtk_combo_box_new_text ();
 
137
        gtk_widget_show (comboboxentry2);
 
138
        gtk_table_attach (GTK_TABLE (table4), comboboxentry2, 1, 2, 2, 3,
 
139
                (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
 
140
                (GtkAttachOptions) (GTK_FILL), 2, 2);
 
141
 
 
142
        chk1 = gtk_check_button_new_with_mnemonic (_("Store as PNG"));
 
143
        gtk_widget_show (chk1);
 
144
        gtk_table_attach (GTK_TABLE (table4), chk1, 0, 2, 3, 4,
 
145
                (GtkAttachOptions) (GTK_FILL),
 
146
                (GtkAttachOptions) (0), 2, 2);
 
147
 
 
148
        dialog_action_area5 = GTK_DIALOG (node_properties_dialog)->action_area;
 
149
        gtk_widget_show (dialog_action_area5);
 
150
        gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area5), GTK_BUTTONBOX_END);
 
151
 
 
152
        cancelbutton5 = gtk_button_new_from_stock ("gtk-cancel");
 
153
        gtk_widget_show (cancelbutton5);
 
154
        gtk_dialog_add_action_widget (GTK_DIALOG (node_properties_dialog), cancelbutton5, GTK_RESPONSE_CANCEL);
 
155
        GTK_WIDGET_SET_FLAGS (cancelbutton5, GTK_CAN_DEFAULT);
 
156
 
 
157
        okbutton5 = gtk_button_new_from_stock ("gtk-ok");
 
158
        gtk_widget_show (okbutton5);
 
159
        gtk_dialog_add_action_widget (GTK_DIALOG (node_properties_dialog), okbutton5, GTK_RESPONSE_OK);
 
160
        GTK_WIDGET_SET_FLAGS (okbutton5, GTK_CAN_DEFAULT);
 
161
 
 
162
        g_signal_connect (comboboxentry2,       "changed", G_CALLBACK (on_resize_combo_selected), this);
 
163
        g_signal_connect (chk1, "clicked",  G_CALLBACK (on_use_png_checked), this);
 
164
 
 
165
        /* Store pointers to all widgets, for use by lookup_widget(). */
 
166
        GLADE_HOOKUP_OBJECT_NO_REF (node_properties_dialog, node_properties_dialog, "node_properties_dialog");
 
167
        GLADE_HOOKUP_OBJECT_NO_REF (node_properties_dialog, dialog_vbox5, "dialog_vbox5");
 
168
        GLADE_HOOKUP_OBJECT (node_properties_dialog, table4, "table4");
 
169
        GLADE_HOOKUP_OBJECT (node_properties_dialog, label21, "label21");
 
170
        GLADE_HOOKUP_OBJECT (node_properties_dialog, label25, "label25");
 
171
        GLADE_HOOKUP_OBJECT (node_properties_dialog, label26, "label26");
 
172
        GLADE_HOOKUP_OBJECT (node_properties_dialog, label27, "label27");
 
173
        GLADE_HOOKUP_OBJECT (node_properties_dialog, label28, "label28");
 
174
        GLADE_HOOKUP_OBJECT (node_properties_dialog, comboboxentry2, "comboboxentry2");
 
175
        GLADE_HOOKUP_OBJECT_NO_REF (node_properties_dialog, dialog_action_area5, "dialog_action_area5");
 
176
        GLADE_HOOKUP_OBJECT (node_properties_dialog, cancelbutton5, "cancelbutton5");
 
177
        GLADE_HOOKUP_OBJECT (node_properties_dialog, okbutton5, "okbutton5");
 
178
 
 
179
        return node_properties_dialog;
 
180
}
 
181
 
 
182
void PixPropertiesDlg::RecalcNewSize()
 
183
{
 
184
        GtkWidget *cbo2 = lookup_widget(m_pDialog, "comboboxentry2");
 
185
        int nIdx = gtk_combo_box_get_active(GTK_COMBO_BOX(cbo2));
 
186
        ASSERT(nIdx >= 0);
 
187
 
 
188
        const int arPercent[] = {100, 90, 80, 75, 70, 60, 50, 40, 30, 25, 20, 10 };
 
189
        int nPercent = arPercent[nIdx];
 
190
 
 
191
        m_nNewWidth  = m_nOrigWidth  * nPercent / 100;
 
192
        m_nNewHeight = m_nOrigHeight * nPercent / 100;
 
193
 
 
194
        GtkWidget *label28 = lookup_widget(m_pDialog, "label28");
 
195
        char szBuffer[100];
 
196
        sprintf(szBuffer, "%d x %d", m_nNewWidth, m_nNewHeight);
 
197
        gtk_label_set_text(GTK_LABEL(label28), szBuffer);
 
198
}
 
199
 
 
200
void on_resize_combo_selected (GtkComboBox *widget, gpointer user_data)
 
201
{
 
202
        PixPropertiesDlg *pDlg = (PixPropertiesDlg *)user_data;
 
203
        pDlg->RecalcNewSize();
 
204
}
 
205
 
 
206
void on_use_png_checked (GtkMenuItem *menuitem, gpointer user_data)
 
207
{
 
208
        PixPropertiesDlg *pDlg = (PixPropertiesDlg *)user_data;
 
209
        pDlg->m_bUsePNG = (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(menuitem)) != FALSE);
 
210
}