Changeset 221 for trunk/src/gtk/PrintView.cxx
- Timestamp:
- 06/11/06 11:05:39 (2 years ago)
- Files:
-
- 1 modified
-
trunk/src/gtk/PrintView.cxx (modified) (14 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/gtk/PrintView.cxx
r220 r221 34 34 } printerListColumns; 35 35 36 static enum 37 { 38 printOrientationLabelColumn, 39 printOrientationValueColumn, 40 printOrientationNumColumn 41 } printOritentationColumns; 42 43 static enum 44 { 45 printLayoutLabelColumn, 46 printLayoutValueColumn, 47 printLayoutNumColumn 48 } printLayoutColumns; 49 50 static enum 51 { 52 pageSizeNameColumn, 53 pageSizeValueColumn, 54 pageSizeNumColumn 55 } pageSizeColumns; 56 36 57 // Callbacks. 37 58 static void print_view_number_of_copies_changed (GtkSpinButton *, gpointer); 38 59 static void print_view_page_range_option_changed (GtkToggleButton *, gpointer); 60 static void print_view_printer_selection_changed (GtkTreeSelection *, gpointer); 39 61 40 62 PrintView::PrintView (GtkWindow *parent): … … 96 118 G_CALLBACK (print_view_page_range_option_changed), 97 119 pter); 120 GtkTreeSelection *selection = 121 gtk_tree_view_get_selection (GTK_TREE_VIEW (m_PrinterListView)); 122 g_signal_connect (G_OBJECT (selection), "changed", 123 G_CALLBACK (print_view_printer_selection_changed), 124 pter); 98 125 99 126 // Run the dialog. … … 109 136 110 137 void 138 PrintView::addPageSize (const gchar *name, const gchar *value) 139 { 140 GtkTreeIter pageSizeIter; 141 gtk_list_store_append (m_PageSize, &pageSizeIter); 142 gtk_list_store_set (m_PageSize, &pageSizeIter, 143 pageSizeNameColumn, name, 144 pageSizeValueColumn, value, 145 -1); 146 } 147 148 void 111 149 PrintView::addPrinter (const gchar *name, int jobs, const gchar *state, 112 150 const gchar *location) 113 151 { 114 152 GtkTreeIter printerIter; 115 gtk_list_store_append ( GTK_LIST_STORE (m_PrinterList), &printerIter);116 gtk_list_store_set ( GTK_LIST_STORE (m_PrinterList), &printerIter,153 gtk_list_store_append (m_PrinterList, &printerIter); 154 gtk_list_store_set (m_PrinterList, &printerIter, 117 155 printerListNameColumn, name, 118 156 printerListJobsColumn, jobs, … … 122 160 } 123 161 162 void 163 PrintView::clearPageSizeList () 164 { 165 gtk_list_store_clear (m_PageSize); 166 } 167 124 168 unsigned int 125 169 PrintView::getNumberOfCopies () … … 128 172 } 129 173 174 gchar * 175 PrintView::getSelectedPrinterName () 176 { 177 gchar *printerName = NULL; 178 GtkTreeSelection *selectedPrinter = 179 gtk_tree_view_get_selection (GTK_TREE_VIEW (m_PrinterListView)); 180 GtkTreeIter selectedPrinterIter; 181 if ( gtk_tree_selection_get_selected (selectedPrinter, NULL, 182 &selectedPrinterIter) ) 183 { 184 gtk_tree_model_get (GTK_TREE_MODEL (m_PrinterList), 185 &selectedPrinterIter, 186 printerListNameColumn, &printerName, 187 -1); 188 } 189 190 return printerName; 191 } 192 130 193 gboolean 131 194 PrintView::isSelectedAllPagesRangeOption () 132 195 { 133 196 return gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (m_AllPagesRangeOption)); 197 } 198 199 void 200 PrintView::selectPageSize (unsigned int pageSizeIndex) 201 { 202 gtk_combo_box_set_active (GTK_COMBO_BOX (m_PageSizeView), pageSizeIndex); 134 203 } 135 204 … … 169 238 170 239 //////////////////////////////////////////////////////////////// 171 // Tab Creators240 // Tab Creators 172 241 //////////////////////////////////////////////////////////////// 173 242 … … 305 374 gtk_misc_set_alignment (GTK_MISC (paperSizeLabel), 1.0, 0.5); 306 375 gtk_label_set_use_underline (GTK_LABEL (paperSizeLabel), TRUE); 307 GtkWidget *paperSizeCombo = gtk_combo_box_new (); 308 gtk_label_set_mnemonic_widget (GTK_LABEL (paperSizeLabel), paperSizeCombo); 376 createPageSizeListModel (); 377 m_PageSizeView = gtk_combo_box_new_with_model (GTK_TREE_MODEL (m_PageSize)); 378 gtk_label_set_mnemonic_widget (GTK_LABEL (paperSizeLabel), m_PageSizeView); 379 { 380 GtkCellRenderer *renderer = gtk_cell_renderer_text_new (); 381 gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (m_PageSizeView), 382 renderer, TRUE); 383 gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (m_PageSizeView), 384 renderer, 385 "text", 386 printOrientationLabelColumn, NULL); 387 } 309 388 gtk_table_attach (GTK_TABLE (paperTable), paperSizeLabel, 310 389 0, 1, 0, 1, … … 312 391 (GtkAttachOptions)(GTK_SHRINK), 313 392 0, 0); 314 gtk_table_attach (GTK_TABLE (paperTable), paperSizeCombo,393 gtk_table_attach (GTK_TABLE (paperTable), m_PageSizeView, 315 394 1, 2, 0, 1, 316 395 (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), 317 396 (GtkAttachOptions)(GTK_SHRINK), 318 397 0, 0); 319 // Page orientation and combobox398 // Page orientation label and combobox 320 399 GtkWidget *pageOrientationLabel = gtk_label_new (_("Page _orientation:")); 321 400 gtk_misc_set_alignment (GTK_MISC (pageOrientationLabel), 1.0, 0.5); 322 401 gtk_label_set_use_underline (GTK_LABEL (pageOrientationLabel), TRUE); 323 GtkWidget *pageOrientationCombo = gtk_combo_box_new (); 402 403 createOrientationListModel (); 404 m_OrientationView = 405 gtk_combo_box_new_with_model (GTK_TREE_MODEL (m_Orientation)); 324 406 gtk_label_set_mnemonic_widget (GTK_LABEL (pageOrientationLabel), 325 pageOrientationCombo); 407 m_OrientationView); 408 { 409 GtkCellRenderer *renderer = gtk_cell_renderer_text_new (); 410 gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (m_OrientationView), 411 renderer, TRUE); 412 gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (m_OrientationView), 413 renderer, 414 "text", 415 printOrientationLabelColumn, NULL); 416 } 417 gtk_combo_box_set_active (GTK_COMBO_BOX (m_OrientationView), 0); 418 326 419 gtk_table_attach (GTK_TABLE (paperTable), pageOrientationLabel, 327 420 0, 1, 1, 2, … … 329 422 (GtkAttachOptions)(GTK_SHRINK), 330 423 0, 0); 331 gtk_table_attach (GTK_TABLE (paperTable), pageOrientationCombo,424 gtk_table_attach (GTK_TABLE (paperTable), m_OrientationView, 332 425 1, 2, 1, 2, 333 426 (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), … … 338 431 gtk_misc_set_alignment (GTK_MISC (layoutLabel), 1.0, 0.5); 339 432 gtk_label_set_use_underline (GTK_LABEL (layoutLabel), TRUE); 340 GtkWidget *layoutCombo = gtk_combo_box_new (); 341 gtk_label_set_mnemonic_widget (GTK_LABEL (layoutLabel), layoutCombo); 433 434 createLayoutListModel (); 435 m_LayoutView = gtk_combo_box_new_with_model (GTK_TREE_MODEL (m_Layout)); 436 gtk_label_set_mnemonic_widget (GTK_LABEL (layoutLabel), m_LayoutView); 437 { 438 GtkCellRenderer *renderer = gtk_cell_renderer_text_new (); 439 gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (m_LayoutView), 440 renderer, TRUE); 441 gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (m_LayoutView), 442 renderer, 443 "text", printLayoutLabelColumn, NULL); 444 } 445 gtk_combo_box_set_active (GTK_COMBO_BOX (m_LayoutView), 0); 446 342 447 gtk_table_attach (GTK_TABLE (paperTable), layoutLabel, 343 448 0, 1, 2, 3, … … 345 450 (GtkAttachOptions)(GTK_SHRINK), 346 451 0, 0); 347 gtk_table_attach (GTK_TABLE (paperTable), layoutCombo,452 gtk_table_attach (GTK_TABLE (paperTable), m_LayoutView, 348 453 1, 2, 2, 3, 349 454 (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), … … 360 465 gtk_container_set_border_width (GTK_CONTAINER (mainBox), 3); 361 466 362 m_PrinterList = gtk_list_store_new (printerListNumColumn, 363 G_TYPE_STRING, 364 G_TYPE_STRING, 365 G_TYPE_INT, 366 G_TYPE_STRING); 467 createPrinterListModel (); 367 468 m_PrinterListView = 368 469 gtk_tree_view_new_with_model (GTK_TREE_MODEL (m_PrinterList)); … … 409 510 410 511 //////////////////////////////////////////////////////////////// 512 // Model Creators 513 //////////////////////////////////////////////////////////////// 514 515 void 516 PrintView::createLayoutListModel () 517 { 518 m_Layout = gtk_list_store_new (printLayoutNumColumn, 519 G_TYPE_STRING, // Label 520 G_TYPE_INT); // Value 521 522 GtkTreeIter iter; 523 gtk_list_store_append (m_Layout, &iter); 524 gtk_list_store_set (m_Layout, &iter, 525 printLayoutLabelColumn, _("Plain"), 526 printLayoutValueColumn, PRINT_PAGE_LAYOUT_PLAIN, 527 -1); 528 529 gtk_list_store_append (m_Layout, &iter); 530 gtk_list_store_set (m_Layout, &iter, 531 printLayoutLabelColumn, _("2 pages in 1"), 532 printLayoutValueColumn, PRINT_PAGE_LAYOUT_2IN1, 533 -1); 534 535 gtk_list_store_append (m_Layout, &iter); 536 gtk_list_store_set (m_Layout, &iter, 537 printLayoutLabelColumn, _("4 pages in 1"), 538 printLayoutValueColumn, PRINT_PAGE_LAYOUT_4IN1, 539 -1); 540 } 541 542 void 543 PrintView::createOrientationListModel () 544 { 545 m_Orientation = gtk_list_store_new (printOrientationNumColumn, 546 G_TYPE_STRING, // Label 547 G_TYPE_INT); // Value 548 549 GtkTreeIter iter; 550 gtk_list_store_append (m_Orientation, &iter); 551 gtk_list_store_set (m_Orientation, &iter, 552 printOrientationLabelColumn, _("Portrait"), 553 printOrientationValueColumn, PRINT_PAGE_ORIENTATION_PORTRAIT, 554 -1); 555 556 gtk_list_store_append (m_Orientation, &iter); 557 gtk_list_store_set (m_Orientation, &iter, 558 printLayoutLabelColumn, _("Landscape"), 559 printOrientationValueColumn, PRINT_PAGE_ORIENTATION_LANDSCAPE, 560 -1); 561 } 562 563 void 564 PrintView::createPageSizeListModel () 565 { 566 m_PageSize = gtk_list_store_new (pageSizeNumColumn, 567 G_TYPE_STRING, // Label 568 G_TYPE_STRING); // Value 569 } 570 571 void 572 PrintView::createPrinterListModel () 573 { 574 m_PrinterList = 575 gtk_list_store_new (printerListNumColumn, 576 G_TYPE_STRING, // Name 577 G_TYPE_STRING, // State 578 G_TYPE_INT, // Jobs 579 G_TYPE_STRING); // Location 580 581 } 582 583 //////////////////////////////////////////////////////////////// 411 584 // Callbacks 412 585 //////////////////////////////////////////////////////////////// … … 429 602 pter->pageRangeOptionChanged (); 430 603 } 604 605 void 606 print_view_printer_selection_changed (GtkTreeSelection *sel, gpointer data) 607 { 608 g_assert (NULL != data && "The data parameter is NULL."); 609 610 PrintPter *pter = (PrintPter *)data; 611 pter->printerSelectionChanged (); 612 }
