From 60a6e6d3469f35343b3e9f304bf2cd0a7df22529 Mon Sep 17 00:00:00 2001 From: John Levon Date: Wed, 11 Sep 2002 18:48:20 +0000 Subject: [PATCH] Rob's printer patch git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@5274 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/ChangeLog | 8 + src/PrinterParams.h | 80 ++-- src/frontends/ChangeLog | 4 + src/frontends/Liason.C | 46 +-- src/frontends/xforms/ChangeLog | 5 + src/frontends/xforms/FormPrint.C | 195 +++++---- src/frontends/xforms/FormPrint.h | 4 +- src/frontends/xforms/forms/form_print.fd | 486 ++++++++++------------- 8 files changed, 404 insertions(+), 424 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 07577f2765..7be6f5ad42 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,11 @@ +2002-09-11 John Levon + + * PrinterParams.h: odd/even default to true + +2002-09-12 Rob Lahaye + + * PrinterParams.h: update printer parameters for new xforms dialog + 2002-09-11 Angus Leeming * lyxserver.C (read_ready): re-write to make it more transparent diff --git a/src/PrinterParams.h b/src/PrinterParams.h index 8b6150552f..ff4c9dfc79 100644 --- a/src/PrinterParams.h +++ b/src/PrinterParams.h @@ -45,17 +45,8 @@ struct PrinterParams { string printer_name; /// string file_name; - /// We allow printing of even pages in a range and so on. - enum WhichPages{ - /// - ALL, - /// - ODD, - /// - EVEN - }; /// - WhichPages which_pages; + bool all_pages; /** Print a page range. Both from_page and to_page used to be strings because they're actually easier to work with that way. I've switched to_page to be an int. However, from_page will remain a @@ -63,15 +54,19 @@ struct PrinterParams { a page range "1,3-5" and so on. I've modified the invariant test to match. ARRae 20000518 */ - string from_page; + unsigned int from_page; /// - int to_page; + unsigned int to_page; /// - bool reverse_order; + bool odd_pages; + /// + bool even_pages; /// - bool unsorted_copies; + unsigned int count_copies; /// - int count_copies; + bool sorted_copies; + /// + bool reverse_order; // The settings below should allow us to print any read-only doc in // whatever size/orientation we want it -- overriding the documents // settings. @@ -90,19 +85,9 @@ struct PrinterParams { void testInvariant() const { #ifdef ENABLE_ASSERTIONS - if (!from_page.empty()) { - // Assert(from_page == number or empty) - lyx::Assert(containsOnly(from_page, - "1234567890")); - } - if (to_page) { - // Assert(to_page == empty - // or number iff from_page set) - lyx::Assert(!from_page.empty()); - } switch (target) { case PRINTER: -// Assert(!printer_name.empty()); + //Assert(!printer_name.empty()); break; case FILE: lyx::Assert(!file_name.empty()); @@ -111,15 +96,6 @@ struct PrinterParams { lyx::Assert(false); break; } - switch (which_pages) { - case ALL: - case ODD: - case EVEN: - break; - default: - lyx::Assert(false); - break; - } #endif } @@ -127,21 +103,25 @@ struct PrinterParams { PrinterParams(Target const & t = PRINTER, string const & pname = lyxrc.printer, string const & fname = string(), - WhichPages const wp = ALL, - string const & from = string(), - int const & to = 0, - bool const reversed = false, - bool const unsorted = false, - int const & num_copies = 1) + bool const all = true, + unsigned int const & from = 1, + unsigned int const & to = 1, + bool const odd = true, + bool const even = true, + unsigned int const & copies = 1, + bool const sorted = false, + bool const reverse = false) : target(t), printer_name(pname), file_name(fname), - which_pages(wp), + all_pages(all), from_page(from), to_page(to), - reverse_order(reversed), - unsorted_copies(unsorted), - count_copies(num_copies) + odd_pages(odd), + even_pages(even), + count_copies(copies), + sorted_copies(sorted), + reverse_order(reverse) { testInvariant(); } @@ -150,12 +130,14 @@ struct PrinterParams { : target(pp.target), printer_name(pp.printer_name), file_name(pp.file_name), - which_pages(pp.which_pages), + all_pages(pp.all_pages), from_page(pp.from_page), to_page(pp.to_page), - reverse_order(pp.reverse_order), - unsorted_copies(pp.unsorted_copies), - count_copies(pp.count_copies) + odd_pages(pp.odd_pages), + even_pages(pp.even_pages), + count_copies(pp.count_copies), + sorted_copies(pp.sorted_copies), + reverse_order(pp.reverse_order) { testInvariant(); } diff --git a/src/frontends/ChangeLog b/src/frontends/ChangeLog index 54246fd76f..26084eaffd 100644 --- a/src/frontends/ChangeLog +++ b/src/frontends/ChangeLog @@ -1,3 +1,7 @@ +2002-09-12 Rob Lahaye + + * Liason.C: implement new printer parameters with new xforms dialog + 2002-09-11 Rob Lahaye * LyXView.C (LyXView::updateWindowTitle): change the minimised icon diff --git a/src/frontends/Liason.C b/src/frontends/Liason.C index 0c05c3554d..1c962dec52 100644 --- a/src/frontends/Liason.C +++ b/src/frontends/Liason.C @@ -30,6 +30,8 @@ #include "support/path.h" #include "support/systemcall.h" +#include "debug.h" // for lyxerr + using std::endl; namespace Liason { @@ -55,45 +57,40 @@ bool printBuffer(Buffer * buffer, PrinterParams const & pp) + ' '; } - switch (pp.which_pages) { - case PrinterParams::EVEN: - command += lyxrc.print_evenpage_flag + ' '; - break; - - case PrinterParams::ODD: - command += lyxrc.print_oddpage_flag + ' '; - break; - - default: - // only option left is print all of them - break; - } - - if (!pp.from_page.empty()) { + if (!pp.all_pages && pp.from_page) { command += lyxrc.print_pagerange_flag + ' '; - command += pp.from_page; + command += tostr(pp.from_page); if (pp.to_page) { - // we have a range "from-to" + // we have a range "from-to" command += '-'; command += tostr(pp.to_page); } command += ' '; } - if (pp.reverse_order) { - command += lyxrc.print_reverse_flag + ' '; + // If both are, or both are not selected, then skip the odd/even printing + if (pp.odd_pages != pp.even_pages) { + if (pp.odd_pages) { + command += lyxrc.print_oddpage_flag + ' '; + } else if (pp.even_pages) { + command += lyxrc.print_evenpage_flag + ' '; + } } - if (1 < pp.count_copies) { - if (pp.unsorted_copies) { - command += lyxrc.print_copies_flag; - } else { + if (pp.count_copies > 1) { + if (pp.sorted_copies) { command += lyxrc.print_collcopies_flag; + } else { + command += lyxrc.print_copies_flag; } command += ' '; command += tostr(pp.count_copies); command += ' '; } + + if (pp.reverse_order) { + command += lyxrc.print_reverse_flag + ' '; + } if (!lyxrc.print_extra_options.empty()) { command += lyxrc.print_extra_options + ' '; @@ -151,6 +148,9 @@ bool printBuffer(Buffer * buffer, PrinterParams const & pp) res = one.startscript(Systemcall::DontWait, command); break; } + + lyxerr[Debug::LATEX] << "printBuffer: \"" << command << "\"\n"; + return res == 0; } diff --git a/src/frontends/xforms/ChangeLog b/src/frontends/xforms/ChangeLog index b09b1cb4bf..28d3ba845b 100644 --- a/src/frontends/xforms/ChangeLog +++ b/src/frontends/xforms/ChangeLog @@ -1,3 +1,8 @@ +2002-09-12 Rob Lahaye + + * FormPrint.[Ch]: + * forms/form_print.fd: new xforms print dialog layout + 2002-09-10 Rob Lahaye * FormGraphics.C: use "Default" as first item in Origin of rotation diff --git a/src/frontends/xforms/FormPrint.C b/src/frontends/xforms/FormPrint.C index f4486fd9a8..8d09539009 100644 --- a/src/frontends/xforms/FormPrint.C +++ b/src/frontends/xforms/FormPrint.C @@ -19,6 +19,7 @@ #include "ControlPrint.h" #include "FormPrint.h" #include "forms/form_print.h" +#include "Tooltips.h" #include "PrinterParams.h" @@ -34,7 +35,7 @@ typedef FormCB > base_class; FormPrint::FormPrint() : base_class(_("Print")), - target_(2), order_(2), which_(3) + target_(2), which_pages_(2) {} @@ -48,77 +49,98 @@ void FormPrint::build() bc().setCancel(dialog_->button_close); // allow controlling of input and ok/apply (de)activation - fl_set_input_return(dialog_->input_printer, - FL_RETURN_CHANGED); - fl_set_input_return(dialog_->input_file, - FL_RETURN_CHANGED); - fl_set_input_return(dialog_->input_from_page, - FL_RETURN_CHANGED); - fl_set_input_return(dialog_->input_to_page, - FL_RETURN_CHANGED); - fl_set_input_return(dialog_->input_count, - FL_RETURN_CHANGED); + fl_set_input_return(dialog_->input_printer, FL_RETURN_CHANGED); + fl_set_input_return(dialog_->input_file, FL_RETURN_CHANGED); + fl_set_input_return(dialog_->input_from_page, FL_RETURN_CHANGED); + fl_set_input_return(dialog_->input_to_page, FL_RETURN_CHANGED); // limit these inputs to unsigned integers - fl_set_input_filter(dialog_->input_from_page, - fl_unsigned_int_filter); - fl_set_input_filter(dialog_->input_to_page, - fl_unsigned_int_filter); - fl_set_input_filter(dialog_->input_count, - fl_unsigned_int_filter); - - setPrehandler(dialog_->input_printer); - setPrehandler(dialog_->input_file); - setPrehandler(dialog_->input_from_page); - setPrehandler(dialog_->input_to_page); - setPrehandler(dialog_->input_count); + fl_set_input_filter(dialog_->input_from_page, fl_unsigned_int_filter); + fl_set_input_filter(dialog_->input_to_page, fl_unsigned_int_filter); // what limits (if any) make sense for these? fl_set_input_maxchars(dialog_->input_printer, 255); fl_set_input_maxchars(dialog_->input_file, 255); fl_set_input_maxchars(dialog_->input_from_page, 4); // 9999 fl_set_input_maxchars(dialog_->input_to_page, 4); // 9999 - fl_set_input_maxchars(dialog_->input_count, 4); // 9999 + + bc().addReadOnly(dialog_->button_browse); + bc().addReadOnly(dialog_->check_odd_pages); + bc().addReadOnly(dialog_->check_even_pages); + bc().addReadOnly(dialog_->check_sorted_copies); + bc().addReadOnly(dialog_->check_reverse_order); target_.reset(); target_.init(dialog_->radio_printer, PrinterParams::PRINTER); target_.init(dialog_->radio_file, PrinterParams::FILE); - order_.reset(); - order_.init(dialog_->radio_order_reverse, true); - order_.init(dialog_->radio_order_normal, false); - which_.reset(); - which_.init(dialog_->radio_odd_pages, PrinterParams::ODD); - which_.init(dialog_->radio_even_pages, PrinterParams::EVEN); - which_.init(dialog_->radio_all_pages, PrinterParams::ALL); + which_pages_.reset(); + which_pages_.init(dialog_->radio_all_pages, true); + which_pages_.init(dialog_->radio_from_to, false); + + // set up the tooltips for Destination + string str = _("Select for printer output."); + tooltips().init(dialog_->radio_printer, str); + str = _("Enter printer command."); + tooltips().init(dialog_->input_printer, str); + str = _("Select for file output."); + tooltips().init(dialog_->radio_file, str); + str = _("Enter file name as print destination."); + tooltips().init(dialog_->input_file, str); + str = _("Browse directories for file name."); + tooltips().init(dialog_->button_browse, str); + + // set up the tooltips for Range + str = _("Select for printing all pages."); + tooltips().init(dialog_->radio_all_pages, str); + str = _("Select for printing a specific page range."); + tooltips().init(dialog_->radio_from_to, str); + str = _("First page."); + tooltips().init(dialog_->input_from_page, str); + str = _("Last page."); + tooltips().init(dialog_->input_to_page, str); + str = _("Print the odd numbered pages."); + tooltips().init(dialog_->check_odd_pages, str); + str = _("Print the even numbered pages."); + tooltips().init(dialog_->check_even_pages, str); + + // set up the tooltips for Copies + str = _("Number of copies to be printed."); + tooltips().init(dialog_->counter_copies, str); + str = _("Sort the copies."); + tooltips().init(dialog_->check_sorted_copies, str); + + str = _("Reverse the order of the printed pages."); + tooltips().init(dialog_->check_reverse_order, str); } void FormPrint::apply() { - PrinterParams::WhichPages - wp(static_cast(which_.get())); + PrinterParams pp; + + pp.target = static_cast(target_.get()); + pp.printer_name = fl_get_input(dialog_->input_printer); + pp.file_name = fl_get_input(dialog_->input_file); - string from; - int to(0); + pp.all_pages = which_pages_.get(); + pp.from_page = 0; + pp.to_page = 0; if (strlen(fl_get_input(dialog_->input_from_page)) > 0) { // we have at least one page requested - from = fl_get_input(dialog_->input_from_page); + pp.from_page = strToInt(fl_get_input(dialog_->input_from_page)); if (strlen(fl_get_input(dialog_->input_to_page)) > 0) { // okay we have a range - to = strToInt(fl_get_input(dialog_->input_to_page)); + pp.to_page = strToInt(fl_get_input(dialog_->input_to_page)); } // else we only print one page. } - PrinterParams::Target - t(static_cast(target_.get())); + pp.odd_pages = static_cast(fl_get_button(dialog_->check_odd_pages)); + pp.even_pages = static_cast(fl_get_button(dialog_->check_even_pages)); + + pp.count_copies = static_cast(fl_get_counter_value(dialog_->counter_copies)); + pp.sorted_copies = static_cast(fl_get_button(dialog_->check_sorted_copies)); - PrinterParams const pp(t, - string(fl_get_input(dialog_->input_printer)), - string(fl_get_input(dialog_->input_file)), - wp, from, to, - static_cast(order_.get()), - !static_cast(fl_get_button(dialog_->check_collated)), - strToInt(fl_get_input(dialog_->input_count))); + pp.reverse_order = static_cast(fl_get_button(dialog_->check_reverse_order)); controller().params() = pp; } @@ -128,36 +150,32 @@ void FormPrint::update() { PrinterParams & pp = controller().params(); + target_.set(pp.target); fl_set_input(dialog_->input_printer, pp.printer_name.c_str()); fl_set_input(dialog_->input_file, pp.file_name.c_str()); - target_.set(pp.target); - order_.set(pp.reverse_order); - which_.set(pp.which_pages); - // hmmm... maybe a bit weird but maybe not - // we might just be remembering the last - // time this was printed. - if (!pp.from_page.empty()) { - fl_set_input(dialog_->input_from_page, pp.from_page.c_str()); - - // we only set the "to" page of a range - // if there's a corresponding "from" - fl_activate_object(dialog_->input_to_page); - if (pp.to_page) { - fl_set_input(dialog_->input_to_page, - tostr(pp.to_page).c_str()); - } else { - fl_set_input(dialog_->input_to_page,""); - } - - } else { - fl_deactivate_object(dialog_->input_to_page); - fl_set_input(dialog_->input_to_page,""); - fl_set_input(dialog_->input_from_page,""); - } - - fl_set_input(dialog_->input_count, tostr(pp.count_copies).c_str()); + // we might just be remembering the last time this was printed. + which_pages_.set(pp.all_pages); + + string const from = ( pp.from_page ? tostr(pp.from_page) : ""); + string const to = ( pp.to_page ? tostr(pp.to_page) : ""); + fl_set_input(dialog_->input_from_page, from.c_str()); + fl_set_input(dialog_->input_to_page, to.c_str()); + + fl_set_button(dialog_->check_odd_pages, pp.odd_pages); + fl_set_button(dialog_->check_even_pages, pp.even_pages); + fl_set_button(dialog_->check_reverse_order, pp.reverse_order); + fl_set_button(dialog_->check_sorted_copies, pp.sorted_copies); + + fl_set_counter_value(dialog_->counter_copies, pp.count_copies); + + // number of copies only used when output goes to printer + bool const enable_counter = pp.target == PrinterParams::PRINTER; + setEnabled(dialog_->counter_copies, enable_counter); + + // sorting only used when printing more than one copy + setEnabled(dialog_->check_sorted_copies, enable_counter && pp.count_copies > 1); } @@ -185,7 +203,7 @@ ButtonPolicy::SMInput FormPrint::input(FL_OBJECT * ob, long) // set both backgrounds to red? } } else if (strlen(fl_get_input(dialog_->input_to_page))) { - // from is empty but to exists so probably editting from + // from is empty but to exists, so probably editting from // therefore deactivate ok and apply until form is valid again activate = ButtonPolicy::SMI_INVALID; } else { @@ -194,9 +212,18 @@ ButtonPolicy::SMInput FormPrint::input(FL_OBJECT * ob, long) fl_deactivate_object(dialog_->input_to_page); } - if (fl_get_button(dialog_->radio_file) - && !strlen(fl_get_input(dialog_->input_file))) { - activate = ButtonPolicy::SMI_INVALID; + // number of copies only used when output goes to printer + bool const enable_counter = static_cast(fl_get_button(dialog_->radio_printer)); + setEnabled(dialog_->counter_copies, enable_counter); + + // sorting only used when printing more than one copy + bool const enable_sorted = enable_counter + && static_cast(fl_get_counter_value(dialog_->counter_copies)) > 1; + setEnabled(dialog_->check_sorted_copies, enable_sorted); + + // disable OK/Apply buttons when file output is selected, but no file name entered. + if (fl_get_button(dialog_->radio_file) && !strlen(fl_get_input(dialog_->input_file))) { + activate = ButtonPolicy::SMI_INVALID; } if (ob == dialog_->button_browse) { @@ -217,14 +244,18 @@ ButtonPolicy::SMInput FormPrint::input(FL_OBJECT * ob, long) } } - // if we type into file, select that as a target - if (ob == dialog_->input_file && fl_get_button(dialog_->radio_printer) - && strlen(fl_get_input(dialog_->input_file))) { - fl_set_button(dialog_->radio_file, 1); + // if we type input string for file or printer, select that as a target + if (ob == dialog_->input_file && !fl_get_button(dialog_->radio_file)) { fl_set_button(dialog_->radio_printer, 0); - } else if (ob == dialog_->input_printer) { - fl_set_button(dialog_->radio_file, 0); + fl_set_button(dialog_->radio_file, 1); + } else if (ob == dialog_->input_printer && !fl_get_button(dialog_->radio_printer)) { fl_set_button(dialog_->radio_printer, 1); + fl_set_button(dialog_->radio_file, 0); + // if we type intput string for from/to, select from/to radio button + } else if ( (ob == dialog_->input_from_page || ob == dialog_->input_to_page) && + !fl_get_button(dialog_->radio_from_to)) { + fl_set_button(dialog_->radio_from_to, 1); + fl_set_button(dialog_->radio_all_pages, 0); } return activate; diff --git a/src/frontends/xforms/FormPrint.h b/src/frontends/xforms/FormPrint.h index c50d757d70..9016a91f47 100644 --- a/src/frontends/xforms/FormPrint.h +++ b/src/frontends/xforms/FormPrint.h @@ -44,10 +44,8 @@ private: /// print target RadioButtonGroup target_; - /// page order - RadioButtonGroup order_; /// which pages - RadioButtonGroup which_; + RadioButtonGroup which_pages_; }; #endif // FORMPRINT_H diff --git a/src/frontends/xforms/forms/form_print.fd b/src/frontends/xforms/forms/form_print.fd index a705b7d1f8..024f39a8b5 100644 --- a/src/frontends/xforms/forms/form_print.fd +++ b/src/frontends/xforms/forms/form_print.fd @@ -5,18 +5,19 @@ Internal Form Definition File Number of forms: 1 Unit of measure: FL_COORD_PIXEL +SnapGrid: 5 =============== FORM =============== Name: form_print -Width: 340 -Height: 390 -Number of Objects: 28 +Width: 290 +Height: 370 +Number of Objects: 25 -------------------- class: FL_BOX -type: UP_BOX -box: 0 0 340 390 -boxtype: FL_UP_BOX +type: FLAT_BOX +box: 0 0 290 370 +boxtype: FL_FLAT_BOX colors: FL_COL1 FL_COL1 alignment: FL_ALIGN_CENTER style: FL_NORMAL_STYLE @@ -30,10 +31,64 @@ name: callback: argument: +-------------------- +class: FL_LABELFRAME +type: ENGRAVED_FRAME +box: 5 125 280 115 +boxtype: FL_NO_BOX +colors: FL_BLACK FL_COL1 +alignment: FL_ALIGN_TOP_LEFT +style: FL_NORMAL_STYLE +size: FL_NORMAL_SIZE +lcol: FL_BLACK +label: Range +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_West FL_East +name: +callback: +argument: + +-------------------- +class: FL_LABELFRAME +type: ENGRAVED_FRAME +box: 5 10 280 105 +boxtype: FL_NO_BOX +colors: FL_BLACK FL_COL1 +alignment: FL_ALIGN_TOP_LEFT +style: FL_NORMAL_STYLE +size: FL_NORMAL_SIZE +lcol: FL_BLACK +label: Destination +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_West FL_East +name: +callback: +argument: + +-------------------- +class: FL_LABELFRAME +type: ENGRAVED_FRAME +box: 5 250 280 50 +boxtype: FL_NO_BOX +colors: FL_BLACK FL_COL1 +alignment: FL_ALIGN_TOP_LEFT +style: FL_NORMAL_STYLE +size: FL_NORMAL_SIZE +lcol: FL_BLACK +label: Copies +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_NoGravity FL_NoGravity +name: +callback: +argument: + -------------------- class: FL_INPUT type: NORMAL_INPUT -box: 90 225 230 30 +box: 100 25 180 25 boxtype: FL_DOWN_BOX colors: FL_COL1 FL_MCOL alignment: FL_ALIGN_LEFT @@ -42,8 +97,8 @@ size: FL_NORMAL_SIZE lcol: FL_BLACK label: shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity +resize: FL_RESIZE_X +gravity: FL_West FL_East name: input_printer callback: C_FormBaseInputCB argument: 0 @@ -51,241 +106,228 @@ argument: 0 -------------------- class: FL_INPUT type: NORMAL_INPUT -box: 90 265 230 30 +box: 100 55 180 25 boxtype: FL_DOWN_BOX colors: FL_COL1 FL_MCOL -alignment: FL_ALIGN_LEFT +alignment: FL_ALIGN_RIGHT style: FL_NORMAL_STYLE size: FL_NORMAL_SIZE lcol: FL_BLACK label: shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity +resize: FL_RESIZE_X +gravity: FL_West FL_East name: input_file callback: C_FormBaseInputCB argument: 0 -------------------- -class: FL_BEGIN_GROUP -type: 0 -box: 0 0 0 0 -boxtype: FL_NO_BOX -colors: FL_COL1 FL_MCOL +class: FL_BUTTON +type: NORMAL_BUTTON +box: 195 340 90 25 +boxtype: FL_UP_BOX +colors: FL_COL1 FL_COL1 alignment: FL_ALIGN_CENTER style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE +size: FL_NORMAL_SIZE lcol: FL_BLACK -label: +label: Cancel|^[ shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: +resize: FL_RESIZE_NONE +gravity: FL_SouthEast FL_SouthEast +name: button_close +callback: C_FormBaseCancelCB +argument: 0 -------------------- -class: FL_ROUND3DBUTTON -type: RADIO_BUTTON -box: 10 225 80 30 -boxtype: FL_NO_BOX -colors: FL_COL1 FL_YELLOW -alignment: FL_ALIGN_CENTER +class: FL_INPUT +type: INT_INPUT +box: 95 170 45 25 +boxtype: FL_DOWN_BOX +colors: FL_COL1 FL_MCOL +alignment: FL_ALIGN_LEFT style: FL_NORMAL_STYLE size: FL_NORMAL_SIZE lcol: FL_BLACK -label: Printer|#P +label: shortcut: -resize: FL_RESIZE_ALL +resize: FL_RESIZE_X gravity: FL_NoGravity FL_NoGravity -name: radio_printer +name: input_from_page callback: C_FormBaseInputCB argument: 0 -------------------- -class: FL_ROUND3DBUTTON -type: RADIO_BUTTON -box: 10 265 80 30 +class: FL_CHECKBUTTON +type: PUSH_BUTTON +box: 175 265 25 25 boxtype: FL_NO_BOX colors: FL_COL1 FL_YELLOW alignment: FL_ALIGN_CENTER style: FL_NORMAL_STYLE size: FL_NORMAL_SIZE lcol: FL_BLACK -label: File|#F +label: Sorted|#S shortcut: -resize: FL_RESIZE_ALL +resize: FL_RESIZE_NONE gravity: FL_NoGravity FL_NoGravity -name: radio_file +name: check_sorted_copies callback: C_FormBaseInputCB argument: 0 -------------------- -class: FL_END_GROUP -type: 0 -box: 0 0 0 0 -boxtype: FL_NO_BOX +class: FL_INPUT +type: INT_INPUT +box: 185 170 45 25 +boxtype: FL_DOWN_BOX colors: FL_COL1 FL_MCOL -alignment: FL_ALIGN_CENTER +alignment: FL_ALIGN_LEFT style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE +size: FL_NORMAL_SIZE lcol: FL_BLACK -label: +label: to|#t shortcut: -resize: FL_RESIZE_ALL +resize: FL_RESIZE_X gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: +name: input_to_page +callback: C_FormBaseInputCB +argument: 0 -------------------- class: FL_BUTTON -type: RETURN_BUTTON -box: 10 350 100 30 +type: NORMAL_BUTTON +box: 100 85 90 25 boxtype: FL_UP_BOX colors: FL_COL1 FL_COL1 alignment: FL_ALIGN_CENTER style: FL_NORMAL_STYLE size: FL_NORMAL_SIZE lcol: FL_BLACK -label: OK -shortcut: ^M -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: button_ok -callback: C_FormBaseOKCB +label: Browse...|#B +shortcut: +resize: FL_RESIZE_NONE +gravity: FL_West FL_West +name: button_browse +callback: C_FormBaseInputCB argument: 0 -------------------- -class: FL_BUTTON -type: NORMAL_BUTTON -box: 120 350 100 30 -boxtype: FL_UP_BOX -colors: FL_COL1 FL_COL1 +class: FL_CHECKBUTTON +type: PUSH_BUTTON +box: 5 305 25 25 +boxtype: FL_NO_BOX +colors: FL_COL1 FL_YELLOW alignment: FL_ALIGN_CENTER style: FL_NORMAL_STYLE size: FL_NORMAL_SIZE lcol: FL_BLACK -label: Apply|#A +label: Reverse page order|#R shortcut: -resize: FL_RESIZE_ALL +resize: FL_RESIZE_NONE gravity: FL_NoGravity FL_NoGravity -name: button_apply -callback: C_FormBaseApplyCB +name: check_reverse_order +callback: C_FormBaseInputCB argument: 0 -------------------- -class: FL_BUTTON -type: NORMAL_BUTTON -box: 230 350 100 30 +class: FL_COUNTER +type: NORMAL_COUNTER +box: 80 265 90 25 boxtype: FL_UP_BOX -colors: FL_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER +colors: FL_COL1 FL_BLUE +alignment: FL_ALIGN_LEFT style: FL_NORMAL_STYLE size: FL_NORMAL_SIZE lcol: FL_BLACK -label: Cancel|^[ +label: Number:|#N shortcut: -resize: FL_RESIZE_ALL +resize: FL_RESIZE_X gravity: FL_NoGravity FL_NoGravity -name: button_close -callback: C_FormBaseCancelCB +name: counter_copies +callback: C_FormBaseInputCB argument: 0 + bounds: 1 1000000 + precision: 0 + value: 1 + sstep: 1 + lstep: 5 -------------------- -class: FL_BEGIN_GROUP -type: 0 -box: 0 0 0 0 -boxtype: FL_NO_BOX -colors: FL_COL1 FL_MCOL +class: FL_BUTTON +type: RETURN_BUTTON +box: 5 340 90 25 +boxtype: FL_UP_BOX +colors: FL_COL1 FL_COL1 alignment: FL_ALIGN_CENTER style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE +size: FL_NORMAL_SIZE lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: +label: OK +shortcut: ^M +resize: FL_RESIZE_NONE +gravity: FL_SouthEast FL_SouthEast +name: button_ok +callback: C_FormBaseOKCB +argument: 0 -------------------- -class: FL_ROUND3DBUTTON -type: RADIO_BUTTON -box: 10 30 160 30 -boxtype: FL_NO_BOX -colors: FL_COL1 FL_YELLOW +class: FL_BUTTON +type: NORMAL_BUTTON +box: 100 340 90 25 +boxtype: FL_UP_BOX +colors: FL_COL1 FL_COL1 alignment: FL_ALIGN_CENTER style: FL_NORMAL_STYLE size: FL_NORMAL_SIZE lcol: FL_BLACK -label: All Pages|#G +label: Apply|#A shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: radio_all_pages -callback: C_FormBaseInputCB +resize: FL_RESIZE_NONE +gravity: FL_SouthEast FL_SouthEast +name: button_apply +callback: C_FormBaseApplyCB argument: 0 -------------------- -class: FL_ROUND3DBUTTON -type: RADIO_BUTTON -box: 10 60 160 30 +class: FL_CHECKBUTTON +type: PUSH_BUTTON +box: 10 210 25 25 boxtype: FL_NO_BOX colors: FL_COL1 FL_YELLOW alignment: FL_ALIGN_CENTER style: FL_NORMAL_STYLE size: FL_NORMAL_SIZE lcol: FL_BLACK -label: Only Odd Pages|#O +label: Odd|#O shortcut: -resize: FL_RESIZE_ALL +resize: FL_RESIZE_NONE gravity: FL_NoGravity FL_NoGravity -name: radio_odd_pages +name: check_odd_pages callback: C_FormBaseInputCB argument: 0 -------------------- -class: FL_ROUND3DBUTTON -type: RADIO_BUTTON -box: 10 90 160 30 +class: FL_CHECKBUTTON +type: PUSH_BUTTON +box: 110 210 25 25 boxtype: FL_NO_BOX colors: FL_COL1 FL_YELLOW alignment: FL_ALIGN_CENTER style: FL_NORMAL_STYLE size: FL_NORMAL_SIZE lcol: FL_BLACK -label: Only Even Pages|#E +label: Even|#E shortcut: -resize: FL_RESIZE_ALL +resize: FL_RESIZE_NONE gravity: FL_NoGravity FL_NoGravity -name: radio_even_pages +name: check_even_pages callback: C_FormBaseInputCB argument: 0 --------------------- -class: FL_END_GROUP -type: 0 -box: 0 0 0 0 -boxtype: FL_NO_BOX -colors: FL_COL1 FL_MCOL -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - -------------------- class: FL_BEGIN_GROUP type: 0 -box: 0 0 0 0 +box: 0 10 10 0 boxtype: FL_NO_BOX colors: FL_COL1 FL_MCOL alignment: FL_ALIGN_CENTER @@ -296,43 +338,43 @@ label: shortcut: resize: FL_RESIZE_ALL gravity: FL_NoGravity FL_NoGravity -name: +name: callback: argument: -------------------- class: FL_ROUND3DBUTTON type: RADIO_BUTTON -box: 180 30 150 30 +box: 75 25 25 25 boxtype: FL_NO_BOX colors: FL_COL1 FL_YELLOW -alignment: FL_ALIGN_CENTER +alignment: FL_ALIGN_LEFT style: FL_NORMAL_STYLE size: FL_NORMAL_SIZE lcol: FL_BLACK -label: Normal Order|#N +label: Printer|#P shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: radio_order_normal +resize: FL_RESIZE_NONE +gravity: FL_West FL_West +name: radio_printer callback: C_FormBaseInputCB argument: 0 -------------------- class: FL_ROUND3DBUTTON type: RADIO_BUTTON -box: 180 60 150 30 +box: 75 55 25 25 boxtype: FL_NO_BOX colors: FL_COL1 FL_YELLOW -alignment: FL_ALIGN_CENTER +alignment: FL_ALIGN_LEFT style: FL_NORMAL_STYLE size: FL_NORMAL_SIZE lcol: FL_BLACK -label: Reverse Order|#R +label: File|#F shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: radio_order_reverse +resize: FL_RESIZE_NONE +gravity: FL_West FL_West +name: radio_file callback: C_FormBaseInputCB argument: 0 @@ -355,142 +397,70 @@ callback: argument: -------------------- -class: FL_INPUT -type: INT_INPUT -box: 20 160 50 30 -boxtype: FL_DOWN_BOX +class: FL_BEGIN_GROUP +type: 0 +box: 0 10 10 0 +boxtype: FL_NO_BOX colors: FL_COL1 FL_MCOL -alignment: FL_ALIGN_TOP_LEFT +alignment: FL_ALIGN_CENTER style: FL_NORMAL_STYLE -size: FL_NORMAL_SIZE +size: FL_DEFAULT_SIZE lcol: FL_BLACK -label: Pages: +label: shortcut: resize: FL_RESIZE_ALL gravity: FL_NoGravity FL_NoGravity -name: input_from_page -callback: C_FormBaseInputCB -argument: 0 +name: +callback: +argument: -------------------- -class: FL_INPUT -type: INT_INPUT -box: 190 160 130 30 -boxtype: FL_DOWN_BOX -colors: FL_COL1 FL_MCOL -alignment: FL_ALIGN_TOP_LEFT +class: FL_ROUND3DBUTTON +type: RADIO_BUTTON +box: 10 140 25 25 +boxtype: FL_NO_BOX +colors: FL_COL1 FL_YELLOW +alignment: FL_ALIGN_CENTER style: FL_NORMAL_STYLE size: FL_NORMAL_SIZE lcol: FL_BLACK -label: Count: +label: All pages|#g shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: input_count +resize: FL_RESIZE_NONE +gravity: FL_West FL_West +name: radio_all_pages callback: C_FormBaseInputCB argument: 0 -------------------- -class: FL_CHECKBUTTON -type: PUSH_BUTTON -box: 180 115 140 30 +class: FL_ROUND3DBUTTON +type: RADIO_BUTTON +box: 10 170 25 25 boxtype: FL_NO_BOX colors: FL_COL1 FL_YELLOW alignment: FL_ALIGN_CENTER style: FL_NORMAL_STYLE size: FL_NORMAL_SIZE lcol: FL_BLACK -label: Collated|#C +label: From|#m shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: check_collated +resize: FL_RESIZE_NONE +gravity: FL_West FL_West +name: radio_from_to callback: C_FormBaseInputCB argument: 0 -------------------- -class: FL_INPUT -type: INT_INPUT -box: 110 160 50 30 -boxtype: FL_DOWN_BOX +class: FL_END_GROUP +type: 0 +box: 0 0 0 0 +boxtype: FL_NO_BOX colors: FL_COL1 FL_MCOL -alignment: FL_ALIGN_LEFT +alignment: FL_ALIGN_CENTER style: FL_NORMAL_STYLE size: FL_DEFAULT_SIZE lcol: FL_BLACK -label: to -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: input_to_page -callback: C_FormBaseInputCB -argument: 0 - --------------------- -class: FL_LABELFRAME -type: ENGRAVED_FRAME -box: 10 20 160 180 -boxtype: FL_NO_BOX -colors: FL_BLACK FL_COL1 -alignment: FL_ALIGN_TOP_LEFT -style: FL_BOLD_STYLE -size: FL_NORMAL_SIZE -lcol: FL_BLACK -label: Print -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_LABELFRAME -type: ENGRAVED_FRAME -box: 180 20 150 70 -boxtype: FL_NO_BOX -colors: FL_BLACK FL_COL1 -alignment: FL_ALIGN_TOP_LEFT -style: FL_BOLD_STYLE -size: FL_NORMAL_SIZE -lcol: FL_BLACK -label: Order -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_LABELFRAME -type: ENGRAVED_FRAME -box: 180 110 150 90 -boxtype: FL_NO_BOX -colors: FL_BLACK FL_COL1 -alignment: FL_ALIGN_TOP_LEFT -style: FL_BOLD_STYLE -size: FL_NORMAL_SIZE -lcol: FL_BLACK -label: Copies -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_LABELFRAME -type: ENGRAVED_FRAME -box: 10 210 320 130 -boxtype: FL_NO_BOX -colors: FL_BLACK FL_COL1 -alignment: FL_ALIGN_TOP_LEFT -style: FL_BOLD_STYLE -size: FL_NORMAL_SIZE -lcol: FL_BLACK -label: Print to +label: shortcut: resize: FL_RESIZE_ALL gravity: FL_NoGravity FL_NoGravity @@ -498,23 +468,5 @@ name: callback: argument: --------------------- -class: FL_BUTTON -type: NORMAL_BUTTON -box: 220 300 100 30 -boxtype: FL_UP_BOX -colors: FL_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_NORMAL_SIZE -lcol: FL_BLACK -label: Browse...|#B -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: button_browse -callback: C_FormBaseInputCB -argument: 0 - ============================== create_the_forms -- 2.39.5