summaryrefslogtreecommitdiff
path: root/fluid/print_panel.fl
diff options
context:
space:
mode:
authorMichael R Sweet <michael.r.sweet@gmail.com>2005-03-21 04:51:16 +0000
committerMichael R Sweet <michael.r.sweet@gmail.com>2005-03-21 04:51:16 +0000
commitbcadb07bb287ce5d8a946e0d839d7edce8ba1cc5 (patch)
treec90ea0601a0503c44db7ad1f599f59200cff26e6 /fluid/print_panel.fl
parente12e37c5f9ed24fd27beb432ff8c31f40126ac28 (diff)
Printing support for FLUID...
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@4150 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'fluid/print_panel.fl')
-rw-r--r--fluid/print_panel.fl359
1 files changed, 359 insertions, 0 deletions
diff --git a/fluid/print_panel.fl b/fluid/print_panel.fl
new file mode 100644
index 000000000..bd931f4c1
--- /dev/null
+++ b/fluid/print_panel.fl
@@ -0,0 +1,359 @@
+# data file for the Fltk User Interface Designer (fluid)
+version 1.0107
+header_name {.h}
+code_name {.cxx}
+comment {//
+// "$Id$"
+//
+// FLUID print panel for the Fast Light Tool Kit (FLTK).
+//
+// Copyright 1998-2005 by Bill Spitzak and others.
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Library General Public
+// License as published by the Free Software Foundation; either
+// version 2 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Library General Public License for more details.
+//
+// You should have received a copy of the GNU Library General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+// USA.
+//
+// Please report all bugs and problems on the following page:
+//
+// http://www.fltk.org/str.php
+//
+} {in_source in_header
+}
+
+decl {\#include <stdio.h>} {}
+
+decl {\#include <stdlib.h>} {}
+
+decl {\#include "../src/flstring.h"} {}
+
+decl {\#include <FL/Fl_Preferences.H>} {}
+
+decl {extern Fl_Preferences fluid_prefs;} {}
+
+Function {make_print_panel()} {open
+} {
+ Fl_Window print_panel {
+ label Print open
+ xywh {342 21 465 235} type Double modal visible
+ } {
+ Fl_Group print_panel_controls {open
+ xywh {10 10 447 216}
+ } {
+ Fl_Choice print_choice {
+ label {Printer:}
+ callback {print_update_status();} open selected
+ xywh {113 10 181 25} down_box BORDER_BOX labelfont 1 when 1
+ } {}
+ Fl_Button print_properties {
+ label {Properties...}
+ callback {print_properties_panel->show();}
+ xywh {294 10 105 25}
+ }
+ Fl_Box print_status {
+ label {printer/job status}
+ xywh {111 41 288 17} align 84
+ }
+ Fl_Group {} {
+ label {Print Range} open
+ xywh {10 86 227 105} box THIN_DOWN_BOX labelfont 1 align 5
+ } {
+ Fl_Round_Button print_all {
+ label All
+ callback {print_from->deactivate();
+print_to->deactivate();}
+ xywh {20 96 38 25} type Radio down_box ROUND_DOWN_BOX value 1
+ }
+ Fl_Round_Button print_pages {
+ label Pages
+ callback {print_from->activate();
+print_to->activate();}
+ xywh {20 126 64 25} type Radio down_box ROUND_DOWN_BOX
+ }
+ Fl_Round_Button print_selection {
+ label Selection
+ callback {print_from->deactivate();
+print_to->deactivate();}
+ xywh {20 156 82 25} type Radio down_box ROUND_DOWN_BOX
+ }
+ Fl_Input print_from {
+ label {From:}
+ xywh {136 126 28 25} type Int textfont 4 deactivate
+ }
+ Fl_Input print_to {
+ label {To:}
+ xywh {199 126 28 25} type Int textfont 4 deactivate
+ }
+ }
+ Fl_Group {} {
+ label Copies open
+ xywh {247 86 210 105} box THIN_DOWN_BOX labelfont 1 align 5
+ } {
+ Fl_Spinner print_copies {
+ label {\# Copies:}
+ callback {if (print_copies->value() == 1) {
+ print_collate_button->deactivate();
+ print_collate_group[0]->deactivate();
+ print_collate_group[1]->deactivate();
+} else {
+ print_collate_button->activate();
+ print_collate_group[0]->activate();
+ print_collate_group[1]->activate();
+}}
+ xywh {326 96 40 25} when 1
+ }
+ Fl_Check_Button print_collate_button {
+ label Collate
+ callback {int i = print_collate_button->value() != 0;
+print_collate_group[i]->show();
+print_collate_group[1 - i]->hide();}
+ xywh {376 96 64 25} down_box DOWN_BOX when 1 deactivate
+ }
+ Fl_Group {print_collate_group[0]} {
+ xywh {257 131 191 50} deactivate
+ } {
+ Fl_Box {} {
+ label 1
+ xywh {287 141 30 40} box BORDER_BOX color 7 labelsize 11 align 26 deactivate
+ }
+ Fl_Box {} {
+ label 1
+ xywh {272 136 30 40} box BORDER_BOX color 7 labelsize 11 align 26 deactivate
+ }
+ Fl_Box {} {
+ label 1
+ xywh {257 131 30 40} box BORDER_BOX color 7 labelsize 11 align 26 deactivate
+ }
+ Fl_Box {} {
+ label 2
+ xywh {352 141 30 40} box BORDER_BOX color 7 labelsize 11 align 26 deactivate
+ }
+ Fl_Box {} {
+ label 2
+ xywh {337 136 30 40} box BORDER_BOX color 7 labelsize 11 align 26 deactivate
+ }
+ Fl_Box {} {
+ label 2
+ xywh {322 131 30 40} box BORDER_BOX color 7 labelsize 11 align 26 deactivate
+ }
+ Fl_Box {} {
+ label 3
+ xywh {417 141 30 40} box BORDER_BOX color 7 labelsize 11 align 26 deactivate
+ }
+ Fl_Box {} {
+ label 3
+ xywh {402 136 30 40} box BORDER_BOX color 7 labelsize 11 align 26 deactivate
+ }
+ Fl_Box {} {
+ label 3
+ xywh {387 131 30 40} box BORDER_BOX color 7 labelsize 11 align 26 deactivate
+ }
+ }
+ Fl_Group {print_collate_group[1]} {
+ xywh {257 131 191 50} hide deactivate
+ } {
+ Fl_Box {} {
+ label 3
+ xywh {287 141 30 40} box BORDER_BOX color 7 labelsize 11 align 26
+ }
+ Fl_Box {} {
+ label 2
+ xywh {272 136 30 40} box BORDER_BOX color 7 labelsize 11 align 26
+ }
+ Fl_Box {} {
+ label 1
+ xywh {257 131 30 40} box BORDER_BOX color 7 labelsize 11 align 26
+ }
+ Fl_Box {} {
+ label 3
+ xywh {352 141 30 40} box BORDER_BOX color 7 labelsize 11 align 26
+ }
+ Fl_Box {} {
+ label 2
+ xywh {337 136 30 40} box BORDER_BOX color 7 labelsize 11 align 26
+ }
+ Fl_Box {} {
+ label 1
+ xywh {322 131 30 40} box BORDER_BOX color 7 labelsize 11 align 26
+ }
+ Fl_Box {} {
+ label 3
+ xywh {417 141 30 40} box BORDER_BOX color 7 labelsize 11 align 26
+ }
+ Fl_Box {} {
+ label 2
+ xywh {402 136 30 40} box BORDER_BOX color 7 labelsize 11 align 26
+ }
+ Fl_Box {} {
+ label 1
+ xywh {387 131 30 40} box BORDER_BOX color 7 labelsize 11 align 26
+ }
+ }
+ }
+ Fl_Return_Button {} {
+ label Print
+ callback print_cb
+ xywh {309 201 70 25}
+ }
+ Fl_Button {} {
+ label Cancel
+ callback {print_panel->hide();}
+ xywh {389 201 68 25}
+ }
+ }
+ Fl_Progress print_progress {
+ xywh {10 203 289 21} selection_color 4 hide
+ }
+ }
+ Fl_Window print_properties_panel {
+ label {Printer Properties}
+ callback {print_properties_panel->hide();
+print_update_status();} open
+ xywh {340 213 290 130} type Double modal visible
+ } {
+ Fl_Choice print_page_size {
+ label {Page Size:}
+ xywh {110 10 80 25} down_box BORDER_BOX labelfont 1
+ } {
+ MenuItem {} {
+ label Letter
+ xywh {0 0 35 25}
+ }
+ MenuItem {} {
+ label A4
+ xywh {0 0 35 25}
+ }
+ }
+ Fl_Group {} {
+ label {Output Mode:} open
+ xywh {110 45 170 40} labelfont 1 align 4
+ } {
+ Fl_Button {print_output_mode[0]} {
+ image {pixmaps/print_color.xpm} xywh {110 45 30 40} type Radio box BORDER_BOX down_box BORDER_BOX value 1 color 7 selection_color 0
+ }
+ Fl_Button {print_output_mode[1]} {
+ image {pixmaps/print_gray.xpm} xywh {200 45 30 40} type Radio box BORDER_BOX down_box BORDER_BOX color 7 selection_color 0
+ }
+ Fl_Button {print_output_mode[2]} {
+ image {pixmaps/print_color.xpm} xywh {150 50 40 30} type Radio box BORDER_BOX down_box BORDER_BOX color 7 selection_color 0
+ }
+ Fl_Button {print_output_mode[3]} {
+ image {pixmaps/print_gray.xpm} xywh {240 50 40 30} type Radio box BORDER_BOX down_box BORDER_BOX color 7 selection_color 0
+ }
+ }
+ Fl_Return_Button {} {
+ label Save
+ callback {print_properties_panel->hide();
+
+char name[1024];
+int val;
+
+snprintf(name, sizeof(name), "%s/page_size", print_choice->text(print_choice->value()));
+fluid_prefs.set(name, print_page_size->value());
+
+snprintf(name, sizeof(name), "%s/output_mode", print_choice->text(print_choice->value()));
+for (val = 0; val < 4; val ++) {
+ if (print_output_mode[val]->value()) break;
+}
+fluid_prefs.set(name, val);}
+ xywh {123 95 79 25}
+ }
+ Fl_Button {} {
+ label Cancel
+ callback {print_properties_panel->hide();
+print_update_status();}
+ xywh {212 95 68 25}
+ }
+ }
+}
+
+decl {void print_cb(Fl_Return_Button *, void *);} {public
+}
+
+Function {print_load()} {return_type void
+} {
+ code {FILE *lpstat;
+char line[1024], name[1024], defname[1024];
+int i;
+
+print_choice->clear();
+print_choice->add("Print To File", 0, 0, 0, FL_MENU_DIVIDER);
+print_choice->value(0);
+
+print_properties->deactivate();
+
+defname[0] = '\\0';
+
+if ((lpstat = popen("lpstat -p -d", "r")) != NULL) {
+ while (fgets(line, sizeof(line), lpstat)) {
+ if (!strncmp(line, "printer ", 8) &&
+ sscanf(line + 8, "%s", name) == 1) {
+ print_choice->add(name, 0, 0, (void *)name, 0);
+ } else if (!strncmp(line, "system default destination: ", 28)) {
+ if (sscanf(line + 28, "%s", defname) != 1) defname[0] = '\\0';
+ }
+ }
+ pclose(lpstat);
+}
+
+if (defname[0]) {
+ for (i = 1; print_choice->text(i); i ++) {
+ if (!strcmp(print_choice->text(i), defname)) {
+ print_choice->value(i);
+ print_properties->activate();
+ break;
+ }
+ }
+} else if (print_choice->size() > 2) {
+ print_choice->value(1);
+ print_properties->activate();
+}
+
+
+print_update_status();} {}
+}
+
+Function {print_update_status()} {open return_type void
+} {
+ code {FILE *lpstat;
+char command[1024];
+static char status[1024];
+
+if (print_choice->value()) {
+ snprintf(command, sizeof(command), "lpstat -p '%s'",
+ print_choice->text(print_choice->value()));
+ if ((lpstat = popen(command, "r")) != NULL) {
+ fgets(status, sizeof(status), lpstat);
+ pclose(lpstat);
+ } else strcpy(status, "printer status unavailable");
+} else status[0] = '\\0';
+
+print_status->label(status);
+
+char name[1024];
+int val;
+
+snprintf(name, sizeof(name), "%s/page_size", print_choice->text(print_choice->value()));
+fluid_prefs.get(name, val, 0);
+print_page_size->value(val);
+
+snprintf(name, sizeof(name), "%s/output_mode", print_choice->text(print_choice->value()));
+fluid_prefs.get(name, val, 0);
+print_output_mode[val]->setonly();} {}
+}
+
+comment {
+//
+// End of "$Id$".
+//} {in_source in_header
+}