| | 93 | |
|---|
| | 94 | //////////////////////////////////////////////////////////////// |
|---|
| | 95 | // TabCreators |
|---|
| | 96 | //////////////////////////////////////////////////////////////// |
|---|
| | 97 | |
|---|
| | 98 | GtkWidget * |
|---|
| | 99 | PrintView::createJobTab () |
|---|
| | 100 | { |
|---|
| | 101 | GtkWidget *mainBox = gtk_vbox_new (FALSE, 12); |
|---|
| | 102 | gtk_container_set_border_width (GTK_CONTAINER (mainBox), 3); |
|---|
| | 103 | |
|---|
| | 104 | // Print range frame. |
|---|
| | 105 | GtkWidget *printRangeLabel = gtk_label_new (_("<b>Print Range</b>")); |
|---|
| | 106 | GtkWidget *printRangeFrame = gtk_frame_new (NULL); |
|---|
| | 107 | gtk_box_pack_start_defaults (GTK_BOX (mainBox), printRangeFrame); |
|---|
| | 108 | // Set a bold label and no border. |
|---|
| | 109 | gtk_label_set_use_markup (GTK_LABEL (printRangeLabel), TRUE); |
|---|
| | 110 | gtk_frame_set_label_widget (GTK_FRAME (printRangeFrame), printRangeLabel); |
|---|
| | 111 | gtk_frame_set_shadow_type (GTK_FRAME (printRangeFrame), GTK_SHADOW_NONE); |
|---|
| | 112 | // The alignment. |
|---|
| | 113 | GtkWidget *printRangeAlign = gtk_alignment_new (0, 0, 1, 1); |
|---|
| | 114 | gtk_alignment_set_padding (GTK_ALIGNMENT (printRangeAlign), 6, 0, 12, 6); |
|---|
| | 115 | gtk_container_add (GTK_CONTAINER (printRangeFrame), printRangeAlign); |
|---|
| | 116 | // The table to add all controls. |
|---|
| | 117 | GtkWidget *printRangeTable = gtk_table_new (2, 2, FALSE); |
|---|
| | 118 | gtk_container_add (GTK_CONTAINER (printRangeAlign), printRangeTable); |
|---|
| | 119 | gtk_table_set_row_spacings (GTK_TABLE (printRangeTable), 3); |
|---|
| | 120 | gtk_table_set_col_spacings (GTK_TABLE (printRangeTable), 12); |
|---|
| | 121 | // Create the two radio buttons. |
|---|
| | 122 | GtkWidget *allPagesRadio = |
|---|
| | 123 | gtk_radio_button_new_with_mnemonic (NULL, _("_All pages")); |
|---|
| | 124 | GtkWidget *pageRangeRadio = |
|---|
| | 125 | gtk_radio_button_new_with_mnemonic_from_widget ( |
|---|
| | 126 | GTK_RADIO_BUTTON (allPagesRadio), _("_Range:")); |
|---|
| | 127 | GtkWidget *pageRangeEntry = gtk_entry_new (); |
|---|
| | 128 | gtk_table_attach_defaults (GTK_TABLE (printRangeTable), allPagesRadio, |
|---|
| | 129 | 0, 2, 0, 1); |
|---|
| | 130 | gtk_table_attach_defaults (GTK_TABLE (printRangeTable), pageRangeRadio, |
|---|
| | 131 | 0, 1, 1, 2); |
|---|
| | 132 | gtk_table_attach_defaults (GTK_TABLE (printRangeTable), pageRangeEntry, |
|---|
| | 133 | 1, 2, 1, 2); |
|---|
| | 134 | |
|---|
| | 135 | // Page set frame |
|---|
| | 136 | GtkWidget *pageSetLabel = gtk_label_new (_("<b>Page Set</b>")); |
|---|
| | 137 | GtkWidget *pageSetFrame = gtk_frame_new (NULL); |
|---|
| | 138 | gtk_box_pack_start_defaults (GTK_BOX (mainBox), pageSetFrame); |
|---|
| | 139 | // Set a bold label and no border. |
|---|
| | 140 | gtk_label_set_use_markup (GTK_LABEL (pageSetLabel), TRUE); |
|---|
| | 141 | gtk_frame_set_label_widget (GTK_FRAME (pageSetFrame), pageSetLabel); |
|---|
| | 142 | gtk_frame_set_shadow_type (GTK_FRAME (pageSetFrame), GTK_SHADOW_NONE); |
|---|
| | 143 | // The alignment. |
|---|
| | 144 | GtkWidget *pageSetAlign = gtk_alignment_new (0, 0, 1, 1); |
|---|
| | 145 | gtk_alignment_set_padding (GTK_ALIGNMENT (pageSetAlign), 6, 0, 12, 6); |
|---|
| | 146 | gtk_container_add (GTK_CONTAINER (pageSetFrame), pageSetAlign); |
|---|
| | 147 | // The vbox to add all controls. |
|---|
| | 148 | GtkWidget *pageSetBox = gtk_vbox_new (TRUE, 3); |
|---|
| | 149 | gtk_container_add (GTK_CONTAINER (pageSetAlign), pageSetBox); |
|---|
| | 150 | // Add the three radio buttons |
|---|
| | 151 | GtkWidget *allPageSetRadio = |
|---|
| | 152 | gtk_radio_button_new_with_mnemonic (NULL, _("A_ll pages")); |
|---|
| | 153 | gtk_box_pack_start_defaults (GTK_BOX (pageSetBox), allPageSetRadio); |
|---|
| | 154 | GtkWidget *oddPageSetRadio = |
|---|
| | 155 | gtk_radio_button_new_with_mnemonic_from_widget ( |
|---|
| | 156 | GTK_RADIO_BUTTON (allPageSetRadio), _("O_dd pages")); |
|---|
| | 157 | gtk_box_pack_start_defaults (GTK_BOX (pageSetBox), oddPageSetRadio); |
|---|
| | 158 | GtkWidget *evenPageSetRadio = |
|---|
| | 159 | gtk_radio_button_new_with_mnemonic_from_widget ( |
|---|
| | 160 | GTK_RADIO_BUTTON (allPageSetRadio), _("_Even pages")); |
|---|
| | 161 | gtk_box_pack_start_defaults (GTK_BOX (pageSetBox), evenPageSetRadio); |
|---|
| | 162 | |
|---|
| | 163 | |
|---|
| | 164 | // Copies frame |
|---|
| | 165 | GtkWidget *copiesLabel = gtk_label_new (_("<b>Copies</b>")); |
|---|
| | 166 | GtkWidget *copiesFrame = gtk_frame_new (NULL); |
|---|
| | 167 | gtk_box_pack_start_defaults (GTK_BOX (mainBox), copiesFrame); |
|---|
| | 168 | // Set a bold label and no border. |
|---|
| | 169 | gtk_label_set_use_markup (GTK_LABEL (copiesLabel), TRUE); |
|---|
| | 170 | gtk_frame_set_label_widget (GTK_FRAME (copiesFrame), copiesLabel); |
|---|
| | 171 | gtk_frame_set_shadow_type (GTK_FRAME (copiesFrame), GTK_SHADOW_NONE); |
|---|
| | 172 | // The alignment. |
|---|
| | 173 | GtkWidget *copiesAlign = gtk_alignment_new (0, 0, 1, 1); |
|---|
| | 174 | gtk_alignment_set_padding (GTK_ALIGNMENT (copiesAlign), 6, 0, 12, 6); |
|---|
| | 175 | gtk_container_add (GTK_CONTAINER (copiesFrame), copiesAlign); |
|---|
| | 176 | // The table to add all controls. |
|---|
| | 177 | GtkWidget *copiesTable = gtk_table_new (2, 2, FALSE); |
|---|
| | 178 | gtk_container_add (GTK_CONTAINER (copiesAlign), copiesTable); |
|---|
| | 179 | gtk_table_set_row_spacings (GTK_TABLE (copiesTable), 3); |
|---|
| | 180 | gtk_table_set_col_spacings (GTK_TABLE (copiesTable), 12); |
|---|
| | 181 | // Create the Num. of Copies label and spin. |
|---|
| | 182 | GtkWidget *numCopiesLabel = gtk_label_new (_("N_umber of copies:")); |
|---|
| | 183 | gtk_misc_set_alignment (GTK_MISC (numCopiesLabel), 1.0, 0.5); |
|---|
| | 184 | gtk_label_set_use_underline (GTK_LABEL (numCopiesLabel), TRUE); |
|---|
| | 185 | GtkWidget *numCopiesSpin = gtk_spin_button_new_with_range (1, 999, 1); |
|---|
| | 186 | gtk_label_set_mnemonic_widget (GTK_LABEL (numCopiesLabel), numCopiesSpin); |
|---|
| | 187 | // Create the collate check box. |
|---|
| | 188 | GtkWidget *collateCheck = |
|---|
| | 189 | gtk_check_button_new_with_mnemonic (_("C_ollate")); |
|---|
| | 190 | gtk_table_attach (GTK_TABLE (copiesTable), numCopiesLabel, |
|---|
| | 191 | 0, 1, 0, 1, |
|---|
| | 192 | (GtkAttachOptions)(GTK_SHRINK | GTK_FILL), |
|---|
| | 193 | (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), |
|---|
| | 194 | 0, 0); |
|---|
| | 195 | gtk_table_attach_defaults (GTK_TABLE (copiesTable), numCopiesSpin, |
|---|
| | 196 | 1, 2, 0, 1); |
|---|
| | 197 | gtk_table_attach_defaults (GTK_TABLE (copiesTable), collateCheck, |
|---|
| | 198 | 1, 2, 1, 2); |
|---|
| | 199 | |
|---|
| | 200 | return mainBox; |
|---|
| | 201 | } |
|---|
| | 202 | |
|---|
| | 203 | GtkWidget * |
|---|
| | 204 | PrintView::createPaperTab () |
|---|
| | 205 | { |
|---|
| | 206 | GtkWidget *mainBox = gtk_vbox_new (FALSE, 12); |
|---|
| | 207 | gtk_container_set_border_width (GTK_CONTAINER (mainBox), 3); |
|---|
| | 208 | |
|---|
| | 209 | // Paper frame |
|---|
| | 210 | GtkWidget *paperLabel = gtk_label_new (_("<b>Paper and Layout</b>")); |
|---|
| | 211 | GtkWidget *paperFrame = gtk_frame_new (NULL); |
|---|
| | 212 | gtk_box_pack_start_defaults (GTK_BOX (mainBox), paperFrame); |
|---|
| | 213 | // Set a bold label and no border. |
|---|
| | 214 | gtk_label_set_use_markup (GTK_LABEL (paperLabel), TRUE); |
|---|
| | 215 | gtk_frame_set_label_widget (GTK_FRAME (paperFrame), paperLabel); |
|---|
| | 216 | gtk_frame_set_shadow_type (GTK_FRAME (paperFrame), GTK_SHADOW_NONE); |
|---|
| | 217 | // The alignment. |
|---|
| | 218 | GtkWidget *paperAlign = gtk_alignment_new (0, 0, 1, 1); |
|---|
| | 219 | gtk_alignment_set_padding (GTK_ALIGNMENT (paperAlign), 6, 0, 12, 6); |
|---|
| | 220 | gtk_container_add (GTK_CONTAINER (paperFrame), paperAlign); |
|---|
| | 221 | // The table to add all controls. |
|---|
| | 222 | GtkWidget *paperTable = gtk_table_new (3, 2, FALSE); |
|---|
| | 223 | gtk_container_add (GTK_CONTAINER (paperAlign), paperTable); |
|---|
| | 224 | gtk_table_set_row_spacings (GTK_TABLE (paperTable), 3); |
|---|
| | 225 | gtk_table_set_col_spacings (GTK_TABLE (paperTable), 12); |
|---|
| | 226 | // Paper size and combobox |
|---|
| | 227 | GtkWidget *paperSizeLabel = gtk_label_new (_("Paper _Size:")); |
|---|
| | 228 | gtk_misc_set_alignment (GTK_MISC (paperSizeLabel), 1.0, 0.5); |
|---|
| | 229 | gtk_label_set_use_underline (GTK_LABEL (paperSizeLabel), TRUE); |
|---|
| | 230 | GtkWidget *paperSizeCombo = gtk_combo_box_new (); |
|---|
| | 231 | gtk_label_set_mnemonic_widget (GTK_LABEL (paperSizeLabel), paperSizeCombo); |
|---|
| | 232 | gtk_table_attach (GTK_TABLE (paperTable), paperSizeLabel, |
|---|
| | 233 | 0, 1, 0, 1, |
|---|
| | 234 | (GtkAttachOptions)(GTK_SHRINK | GTK_FILL), |
|---|
| | 235 | (GtkAttachOptions)(GTK_SHRINK), |
|---|
| | 236 | 0, 0); |
|---|
| | 237 | gtk_table_attach (GTK_TABLE (paperTable), paperSizeCombo, |
|---|
| | 238 | 1, 2, 0, 1, |
|---|
| | 239 | (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), |
|---|
| | 240 | (GtkAttachOptions)(GTK_SHRINK), |
|---|
| | 241 | 0, 0); |
|---|
| | 242 | // Page orientation and combobox |
|---|
| | 243 | GtkWidget *pageOrientationLabel = gtk_label_new (_("Page _orientation:")); |
|---|
| | 244 | gtk_misc_set_alignment (GTK_MISC (pageOrientationLabel), 1.0, 0.5); |
|---|
| | 245 | gtk_label_set_use_underline (GTK_LABEL (pageOrientationLabel), TRUE); |
|---|
| | 246 | GtkWidget *pageOrientationCombo = gtk_combo_box_new (); |
|---|
| | 247 | gtk_label_set_mnemonic_widget (GTK_LABEL (pageOrientationLabel), |
|---|
| | 248 | pageOrientationCombo); |
|---|
| | 249 | gtk_table_attach (GTK_TABLE (paperTable), pageOrientationLabel, |
|---|
| | 250 | 0, 1, 1, 2, |
|---|
| | 251 | (GtkAttachOptions)(GTK_SHRINK | GTK_FILL), |
|---|
| | 252 | (GtkAttachOptions)(GTK_SHRINK), |
|---|
| | 253 | 0, 0); |
|---|
| | 254 | gtk_table_attach (GTK_TABLE (paperTable), pageOrientationCombo, |
|---|
| | 255 | 1, 2, 1, 2, |
|---|
| | 256 | (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), |
|---|
| | 257 | (GtkAttachOptions)(GTK_SHRINK), |
|---|
| | 258 | 0, 0); |
|---|
| | 259 | // Layout label and combobox |
|---|
| | 260 | GtkWidget *layoutLabel = gtk_label_new (_("_Layout:")); |
|---|
| | 261 | gtk_misc_set_alignment (GTK_MISC (layoutLabel), 1.0, 0.5); |
|---|
| | 262 | gtk_label_set_use_underline (GTK_LABEL (layoutLabel), TRUE); |
|---|
| | 263 | GtkWidget *layoutCombo = gtk_combo_box_new (); |
|---|
| | 264 | gtk_label_set_mnemonic_widget (GTK_LABEL (layoutLabel), layoutCombo); |
|---|
| | 265 | gtk_table_attach (GTK_TABLE (paperTable), layoutLabel, |
|---|
| | 266 | 0, 1, 2, 3, |
|---|
| | 267 | (GtkAttachOptions)(GTK_SHRINK | GTK_FILL), |
|---|
| | 268 | (GtkAttachOptions)(GTK_SHRINK), |
|---|
| | 269 | 0, 0); |
|---|
| | 270 | gtk_table_attach (GTK_TABLE (paperTable), layoutCombo, |
|---|
| | 271 | 1, 2, 2, 3, |
|---|
| | 272 | (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), |
|---|
| | 273 | (GtkAttachOptions)(GTK_SHRINK), |
|---|
| | 274 | 0, 0); |
|---|
| | 275 | |
|---|
| | 276 | return mainBox; |
|---|
| | 277 | } |
|---|
| | 278 | |
|---|
| | 279 | GtkWidget * |
|---|
| | 280 | PrintView::createPrinterTab () |
|---|
| | 281 | { |
|---|
| | 282 | GtkWidget *mainBox = gtk_vbox_new (FALSE, 12); |
|---|
| | 283 | gtk_container_set_border_width (GTK_CONTAINER (mainBox), 3); |
|---|
| | 284 | |
|---|
| | 285 | m_PrinterList = gtk_tree_store_new (printerListNumColumn, |
|---|
| | 286 | G_TYPE_STRING, |
|---|
| | 287 | G_TYPE_STRING, |
|---|
| | 288 | G_TYPE_INT, |
|---|
| | 289 | G_TYPE_STRING); |
|---|
| | 290 | m_PrinterListView = |
|---|
| | 291 | gtk_tree_view_new_with_model (GTK_TREE_MODEL (m_PrinterList)); |
|---|
| | 292 | gtk_box_pack_start_defaults (GTK_BOX (mainBox), m_PrinterListView); |
|---|
| | 293 | |
|---|
| | 294 | { |
|---|
| | 295 | GtkCellRenderer *renderer = gtk_cell_renderer_text_new (); |
|---|
| | 296 | GtkTreeViewColumn *column = |
|---|
| | 297 | gtk_tree_view_column_new_with_attributes (_("Printer"), renderer, |
|---|
| | 298 | "text", printerListNameColumn, NULL); |
|---|
| | 299 | gtk_tree_view_append_column (GTK_TREE_VIEW (m_PrinterListView), |
|---|
| | 300 | column); |
|---|
| | 301 | } |
|---|
| | 302 | |
|---|
| | 303 | { |
|---|
| | 304 | GtkCellRenderer *renderer = gtk_cell_renderer_text_new (); |
|---|
| | 305 | GtkTreeViewColumn *column = |
|---|
| | 306 | gtk_tree_view_column_new_with_attributes (_("State"), renderer, |
|---|
| | 307 | "text", printerListStateColumn, NULL); |
|---|
| | 308 | gtk_tree_view_append_column (GTK_TREE_VIEW (m_PrinterListView), |
|---|
| | 309 | column); |
|---|
| | 310 | } |
|---|
| | 311 | |
|---|
| | 312 | { |
|---|
| | 313 | GtkCellRenderer *renderer = gtk_cell_renderer_text_new (); |
|---|
| | 314 | GtkTreeViewColumn *column = |
|---|
| | 315 | gtk_tree_view_column_new_with_attributes (_("Jobs"), renderer, |
|---|
| | 316 | "text", printerListJobsColumn, NULL); |
|---|
| | 317 | gtk_tree_view_append_column (GTK_TREE_VIEW (m_PrinterListView), |
|---|
| | 318 | column); |
|---|
| | 319 | } |
|---|
| | 320 | |
|---|
| | 321 | { |
|---|
| | 322 | GtkCellRenderer *renderer = gtk_cell_renderer_text_new (); |
|---|
| | 323 | GtkTreeViewColumn *column = |
|---|
| | 324 | gtk_tree_view_column_new_with_attributes (_("Location"), renderer, |
|---|
| | 325 | "text", printerListLocationColumn, NULL); |
|---|
| | 326 | gtk_tree_view_append_column (GTK_TREE_VIEW (m_PrinterListView), |
|---|
| | 327 | column); |
|---|
| | 328 | } |
|---|
| | 329 | |
|---|
| | 330 | return mainBox; |
|---|
| | 331 | } |
|---|