def __init__(self, parent, printer, app): self.app = app self.printer = printer wal.LabeledPanel.__init__(self, parent, _('Paper')) grid = wal.GridPanel(self, 2, 2, 5, 5) grid.add_growable_col(1) grid.pack(wal.Label(grid, _('Page size:'))) self.size_combo = wal.Combolist(grid, onchange=self.on_change) grid.pack(self.size_combo, fill=True) grid.pack(wal.Label(grid, _('Width:'))) hpanel = wal.HPanel(grid) self.wspin = StaticUnitSpin(self.app, hpanel) hpanel.pack(self.wspin) hpanel.pack(StaticUnitLabel(self.app, hpanel), padding=5) hpanel.pack((5, 5)) hpanel.pack(wal.Label(grid, _('Height:')), padding=5) self.hspin = StaticUnitSpin(self.app, hpanel) hpanel.pack(self.hspin) hpanel.pack(StaticUnitLabel(self.app, hpanel), padding=5) grid.pack(hpanel) self.pack(grid, fill=True, expand=True, padding_all=10) self.set_data()
def __init__(self, parent, printer, app): self.app = app self.printer = printer units = app.current_doc.model.doc_units text = uc2const.unit_short_names[units] wal.LabeledPanel.__init__(self, parent, _('Margins') + ' (%s)' % text) self.pack((1, 1), expand=True, padding=2) mrgs = self.printer.margins self.top_spin = StaticUnitSpin(self.app, self, mrgs[0]) self.pack(self.top_spin) self.pack((5, 5)) hpanel = wal.HPanel(self) self.left_spin = StaticUnitSpin(self.app, self, mrgs[3]) hpanel.pack(self.left_spin) hpanel.pack((5, 5)) self.right_spin = StaticUnitSpin(self.app, self, mrgs[1]) hpanel.pack(self.right_spin) self.pack(hpanel) self.pack((5, 5)) self.bottom_spin = StaticUnitSpin(self.app, self, mrgs[2]) self.pack(self.bottom_spin) self.pack((1, 1), expand=True, padding=2)
def __init__(self, parent, printer, app): self.app = app self.printer = printer wal.LabeledPanel.__init__(self, parent, _('Document page')) grid = wal.GridPanel(self, 3, 2, 3, 3) grid.add_growable_col(1) grid.pack(wal.Label(grid, _('Page size:'))) self.size_combo = wal.Combolist(grid, onchange=self.on_change) grid.pack(self.size_combo, fill=True) grid.pack(wal.Label(grid, _('Width:'))) hpanel = wal.HPanel(grid) self.wspin = StaticUnitSpin(self.app, hpanel) hpanel.pack(self.wspin) hpanel.pack((5, 5)) hpanel.pack(wal.Label(grid, _('Height:')), padding=5) self.hspin = StaticUnitSpin(self.app, hpanel) hpanel.pack(self.hspin) hpanel.pack(StaticUnitLabel(self.app, hpanel), padding=5) grid.pack(hpanel) grid.pack(wal.Label(grid, _('Orientation:'))) hpanel = wal.HPanel(grid) self.port_opt = wal.Radiobutton(hpanel, uc2const.ORIENTS_NAMES[0], group=True) self.land_opt = wal.Radiobutton(hpanel, uc2const.ORIENTS_NAMES[1]) hpanel.pack(self.port_opt) hpanel.pack((15, 5)) hpanel.pack(self.land_opt) grid.pack(hpanel) self.pack(grid, fill=True, expand=True, padding_all=7) self.set_data()
def __init__(self, parent, printer, app): self.app = app self.printer = printer wal.LabeledPanel.__init__(self, parent, _('Document page')) grid = wal.GridPanel(self, 3, 2, 3, 3) grid.add_growable_col(1) grid.pack(wal.Label(grid, _('Page size:'))) self.size_combo = wal.Combolist(grid, onchange=self.on_change) grid.pack(self.size_combo, fill=True) grid.pack(wal.Label(grid, _('Width:'))) hpanel = wal.HPanel(grid) self.wspin = StaticUnitSpin(self.app, hpanel) hpanel.pack(self.wspin) hpanel.pack((5, 5)) hpanel.pack(wal.Label(grid, _('Height:')), padding=5) self.hspin = StaticUnitSpin(self.app, hpanel) hpanel.pack(self.hspin) hpanel.pack(StaticUnitLabel(self.app, hpanel), padding=5) grid.pack(hpanel) grid.pack(wal.Label(grid, _('Orientation:'))) hpanel = wal.HPanel(grid) self.port_opt = wal.Radiobutton(hpanel, _('Portrait'), group=True) self.land_opt = wal.Radiobutton(hpanel, _('Landscape')) hpanel.pack(self.port_opt) hpanel.pack((15, 5)) hpanel.pack(self.land_opt) grid.pack(hpanel) self.pack(grid, fill=True, expand=True, padding_all=7) self.set_data()
class MarginsPanel(wal.LabeledPanel): app = None printer = None def __init__(self, parent, printer, app): self.app = app self.printer = printer units = app.current_doc.model.doc_units text = uc2const.unit_short_names[units] wal.LabeledPanel.__init__(self, parent, _('Margins') + ' (%s)' % text) self.pack((1, 1), expand=True, padding=2) mrgs = self.printer.margins self.top_spin = StaticUnitSpin(self.app, self, mrgs[0]) self.pack(self.top_spin) self.pack((5, 5)) hpanel = wal.HPanel(self) self.left_spin = StaticUnitSpin(self.app, self, mrgs[3]) hpanel.pack(self.left_spin) hpanel.pack((5, 5)) self.right_spin = StaticUnitSpin(self.app, self, mrgs[1]) hpanel.pack(self.right_spin) self.pack(hpanel) self.pack((5, 5)) self.bottom_spin = StaticUnitSpin(self.app, self, mrgs[2]) self.pack(self.bottom_spin) self.pack((1, 1), expand=True, padding=2) def save(self): val0 = self.top_spin.get_point_value() val1 = self.right_spin.get_point_value() val2 = self.bottom_spin.get_point_value() val3 = self.left_spin.get_point_value() self.printer.margins = (val0, val1, val2, val3)
class PaperPanel(wal.LabeledPanel): app = None printer = None items = [] def __init__(self, parent, printer, app): self.app = app self.printer = printer wal.LabeledPanel.__init__(self, parent, _('Paper')) grid = wal.GridPanel(self, 2, 2, 5, 5) grid.add_growable_col(1) grid.pack(wal.Label(grid, _('Page size:'))) self.size_combo = wal.Combolist(grid, onchange=self.on_change) grid.pack(self.size_combo, fill=True) grid.pack(wal.Label(grid, _('Width:'))) hpanel = wal.HPanel(grid) self.wspin = StaticUnitSpin(self.app, hpanel) hpanel.pack(self.wspin) hpanel.pack(StaticUnitLabel(self.app, hpanel), padding=5) hpanel.pack((5, 5)) hpanel.pack(wal.Label(grid, _('Height:')), padding=5) self.hspin = StaticUnitSpin(self.app, hpanel) hpanel.pack(self.hspin) hpanel.pack(StaticUnitLabel(self.app, hpanel), padding=5) grid.pack(hpanel) self.pack(grid, fill=True, expand=True, padding_all=10) self.set_data() def set_data(self): self.items = self.printer.get_format_items() self.size_combo.set_items(self.items) index = 0 if not self.printer.def_media[:6] == 'Custom': index = self.printer.pf_list.index(self.printer.def_media) else: index = len(self.items) - 1 self.size_combo.set_active(index) if self.printer.is_custom_supported(): minw, minh = self.printer.customs[0] maxw, maxh = self.printer.customs[1] self.wspin.set_point_range((minw, maxw)) self.hspin.set_point_range((minh, maxh)) self.on_change() def on_change(self): index = self.size_combo.get_active() status = False if self.printer.is_custom_supported() and index == len(self.items) - 1: if not self.hspin.get_point_value() and \ self.printer.def_media[:6] == 'Custom': w, h = self.printer.def_media[7:].split('x') w = float(w) h = float(h) self.wspin.set_point_value(w) self.hspin.set_point_value(h) status = True else: w, h = self.printer.pf_dict[self.printer.pf_list[index]][1] self.wspin.set_point_value(w) self.hspin.set_point_value(h) self.wspin.set_enable(status) self.hspin.set_enable(status) def save(self): index = self.size_combo.get_active() prn = self.printer if prn.is_custom_supported() and index == len(self.items) - 1: w = self.wspin.get_point_value() h = self.hspin.get_point_value() prn.def_media = 'Custom.%gx%g' % (w, h) prn.page_format = ('Custom', (w, h)) else: prn.def_media = prn.pf_list[index] prn.page_format = prn.pf_dict[prn.def_media]
def build(self): self.printsys = self.get_printsys() self.prn_list = self.printsys.get_printer_names() if self.prn_list: self.active_printer = self.printsys.get_default_printer() hpanel = wal.HPanel(self) hpanel.pack(wal.Label(hpanel, _('Printer:'))) hpanel.pack((5, 5)) self.prn_combo = wal.Combolist(hpanel, items=self.prn_list, onchange=self.set_data) hpanel.pack(self.prn_combo, fill=True, expand=True) index = self.prn_list.index(self.active_printer.get_name()) self.prn_combo.set_active(index) self.pack(hpanel, fill=True, padding_all=5) self.pack((10, 10)) #---Panels self.insp = self.app.insp units = uc2const.UNIT_MM if self.insp.is_doc(): units = self.app.current_doc.model.doc_units units_text = uc2const.unit_short_names[units] #---Shift panel shifts = self.active_printer.shifts hpanel = wal.HPanel(self) txt = _('Printing shift') + ' (%s)' % units_text spanel = wal.LabeledPanel(hpanel, text=txt) spanel.pack((1, 1), expand=True) grid = wal.GridPanel(spanel, 2, 2, 5, 5) grid.pack(wal.Label(grid, _('Horizontal shift:'))) self.hshift = StaticUnitSpin(self.app, grid, shifts[0], can_be_negative=True, onchange=self.save_data, onenter=self.save_data) grid.pack(self.hshift) grid.pack(wal.Label(grid, _('Vertical shift:'))) self.vshift = StaticUnitSpin(self.app, grid, shifts[1], can_be_negative=True, onchange=self.save_data, onenter=self.save_data) grid.pack(self.vshift) spanel.pack(grid, padding_all=5) spanel.pack((1, 1), expand=True) hpanel.pack(spanel, fill=True, expand=True) hpanel.pack((5, 5)) #---Margin panel txt = _('Printing margins') + ' (%s)' % units_text mpanel = wal.LabeledPanel(hpanel, text=txt) mpanel.pack((5, 5)) mrgs = self.active_printer.margins self.top_spin = StaticUnitSpin(self.app, mpanel, mrgs[0], onchange=self.save_data, onenter=self.save_data) mpanel.pack(self.top_spin) mpanel.pack((5, 5)) hp = wal.HPanel(self) self.left_spin = StaticUnitSpin(self.app, hp, mrgs[3], onchange=self.save_data, onenter=self.save_data) hp.pack(self.left_spin) hp.pack((5, 5)) self.right_spin = StaticUnitSpin(self.app, hp, mrgs[1], onchange=self.save_data, onenter=self.save_data) hp.pack(self.right_spin) mpanel.pack(hp) mpanel.pack((5, 5)) self.bottom_spin = StaticUnitSpin(self.app, mpanel, mrgs[2], onchange=self.save_data, onenter=self.save_data) mpanel.pack(self.bottom_spin) mpanel.pack((10, 10)) #--- hpanel.pack(mpanel, fill=True, expand=True) self.pack(hpanel, fill=True) self.pack((10, 10)) #---Calibration page text = _("To measure real print area and vertical/horirizontal " "printing shift just print calibration page on the A4/Letter sheet.") label = wal.Label(self, text) label.wrap(470) self.pack(label, fill=True, padding_all=5, align_center=False) self.a4_calibrate_btn = wal.Button(self, _('Print A4 calibration page'), onclick=self.print_calibration_a4) self.pack(self.a4_calibrate_btn) self.pack((5, 5)) self.letter_calibrate_btn = wal.Button(self, _('Print Letter calibration page'), onclick=self.print_calibration_letter) self.pack(self.letter_calibrate_btn) self.pack((5, 5)) else: self.pack((5, 5), expand=True) self.pack(get_bmp(self, icons.PD_NO_PRINTERS), padding=10) self.pack(wal.Label(self, _('Cannot found installed printers!'))) self.pack((10, 10)) self.pack((5, 5), expand=True) self.built = True
class PrinterPrefs(PrefPanel): pid = 'Printers' name = _('Printers') title = _('Printer preferences') icon_id = icons.PD_PREFS_PRINTERS printsys = None active_printer = None prn_list = [] def __init__(self, app, dlg, fmt_config=None): PrefPanel.__init__(self, app, dlg) def get_printsys(self): if wal.is_msw(): from sk1.printing.msw_print import MSW_PS return MSW_PS(self.app, physical_only=True) else: from sk1.printing.cups_print import CUPS_PS return CUPS_PS(physical_only=True) def build(self): self.printsys = self.get_printsys() self.prn_list = self.printsys.get_printer_names() if self.prn_list: self.active_printer = self.printsys.get_default_printer() hpanel = wal.HPanel(self) hpanel.pack(wal.Label(hpanel, _('Printer:'))) hpanel.pack((5, 5)) self.prn_combo = wal.Combolist(hpanel, items=self.prn_list, onchange=self.set_data) hpanel.pack(self.prn_combo, fill=True, expand=True) index = self.prn_list.index(self.active_printer.get_name()) self.prn_combo.set_active(index) self.pack(hpanel, fill=True, padding_all=5) self.pack((10, 10)) #---Panels self.insp = self.app.insp units = uc2const.UNIT_MM if self.insp.is_doc(): units = self.app.current_doc.model.doc_units units_text = uc2const.unit_short_names[units] #---Shift panel shifts = self.active_printer.shifts hpanel = wal.HPanel(self) txt = _('Printing shift') + ' (%s)' % units_text spanel = wal.LabeledPanel(hpanel, text=txt) spanel.pack((1, 1), expand=True) grid = wal.GridPanel(spanel, 2, 2, 5, 5) grid.pack(wal.Label(grid, _('Horizontal shift:'))) self.hshift = StaticUnitSpin(self.app, grid, shifts[0], can_be_negative=True, onchange=self.save_data, onenter=self.save_data) grid.pack(self.hshift) grid.pack(wal.Label(grid, _('Vertical shift:'))) self.vshift = StaticUnitSpin(self.app, grid, shifts[1], can_be_negative=True, onchange=self.save_data, onenter=self.save_data) grid.pack(self.vshift) spanel.pack(grid, padding_all=5) spanel.pack((1, 1), expand=True) hpanel.pack(spanel, fill=True, expand=True) hpanel.pack((5, 5)) #---Margin panel txt = _('Printing margins') + ' (%s)' % units_text mpanel = wal.LabeledPanel(hpanel, text=txt) mpanel.pack((5, 5)) mrgs = self.active_printer.margins self.top_spin = StaticUnitSpin(self.app, mpanel, mrgs[0], onchange=self.save_data, onenter=self.save_data) mpanel.pack(self.top_spin) mpanel.pack((5, 5)) hp = wal.HPanel(self) self.left_spin = StaticUnitSpin(self.app, hp, mrgs[3], onchange=self.save_data, onenter=self.save_data) hp.pack(self.left_spin) hp.pack((5, 5)) self.right_spin = StaticUnitSpin(self.app, hp, mrgs[1], onchange=self.save_data, onenter=self.save_data) hp.pack(self.right_spin) mpanel.pack(hp) mpanel.pack((5, 5)) self.bottom_spin = StaticUnitSpin(self.app, mpanel, mrgs[2], onchange=self.save_data, onenter=self.save_data) mpanel.pack(self.bottom_spin) mpanel.pack((10, 10)) #--- hpanel.pack(mpanel, fill=True, expand=True) self.pack(hpanel, fill=True) self.pack((10, 10)) #---Calibration page text = _("To measure real print area and vertical/horirizontal " "printing shift just print calibration page on the A4/Letter sheet.") label = wal.Label(self, text) label.wrap(470) self.pack(label, fill=True, padding_all=5, align_center=False) self.a4_calibrate_btn = wal.Button(self, _('Print A4 calibration page'), onclick=self.print_calibration_a4) self.pack(self.a4_calibrate_btn) self.pack((5, 5)) self.letter_calibrate_btn = wal.Button(self, _('Print Letter calibration page'), onclick=self.print_calibration_letter) self.pack(self.letter_calibrate_btn) self.pack((5, 5)) else: self.pack((5, 5), expand=True) self.pack(get_bmp(self, icons.PD_NO_PRINTERS), padding=10) self.pack(wal.Label(self, _('Cannot found installed printers!'))) self.pack((10, 10)) self.pack((5, 5), expand=True) self.built = True def set_data(self): name = self.prn_combo.get_active_value() self.active_printer = self.printsys.get_printer_by_name(name) shifts = self.active_printer.shifts mrgs = self.active_printer.margins self.hshift.set_point_value(shifts[0]) self.vshift.set_point_value(shifts[1]) self.top_spin.set_point_value(mrgs[0]) self.right_spin.set_point_value(mrgs[1]) self.bottom_spin.set_point_value(mrgs[2]) self.left_spin.set_point_value(mrgs[3]) def save_data(self): self.active_printer.shifts = (self.hshift.get_point_value(), self.vshift.get_point_value()) self.active_printer.margins = (self.top_spin.get_point_value(), self.right_spin.get_point_value(), self.bottom_spin.get_point_value(), self.left_spin.get_point_value()) def apply_changes(self): if not self.prn_list: return config.printer_config = {} for name in self.prn_list: printer = self.printsys.get_printer_by_name(name) if printer: printer.save_config() def restore_defaults(self): if not self.prn_list: return self.active_printer.shifts = STD_SHIFTS self.active_printer.margins = STD_MARGINS self.set_data() def print_calibration_a4(self): self.active_printer.print_test_page_a4(self.app, self.dlg) def print_calibration_letter(self): self.active_printer.print_test_page_letter(self.app, self.dlg)
def build(self): self.printsys = self.get_printsys() self.prn_list = self.printsys.get_printer_names() if self.prn_list: self.active_printer = self.printsys.get_default_printer() hpanel = wal.HPanel(self) hpanel.pack(wal.Label(hpanel, _('Printer:'))) hpanel.pack((5, 5)) self.prn_combo = wal.Combolist(hpanel, items=self.prn_list, onchange=self.set_data) hpanel.pack(self.prn_combo, fill=True, expand=True) index = self.prn_list.index(self.active_printer.get_name()) self.prn_combo.set_active(index) self.pack(hpanel, fill=True, padding_all=5) self.pack((10, 10)) # ---Panels self.insp = self.app.insp units = uc2const.UNIT_MM if self.insp.is_doc(): units = self.app.current_doc.model.doc_units units_text = uc2const.unit_short_names[units] # ---Shift panel shifts = self.active_printer.shifts hpanel = wal.HPanel(self) txt = _('Printing shift') + ' (%s)' % units_text spanel = wal.LabeledPanel(hpanel, text=txt) spanel.pack((1, 1), expand=True) grid = wal.GridPanel(spanel, 2, 2, 5, 5) grid.pack(wal.Label(grid, _('Horizontal shift:'))) self.hshift = StaticUnitSpin(self.app, grid, shifts[0], can_be_negative=True, onchange=self.save_data, onenter=self.save_data) grid.pack(self.hshift) grid.pack(wal.Label(grid, _('Vertical shift:'))) self.vshift = StaticUnitSpin(self.app, grid, shifts[1], can_be_negative=True, onchange=self.save_data, onenter=self.save_data) grid.pack(self.vshift) spanel.pack(grid, padding_all=5) spanel.pack((1, 1), expand=True) hpanel.pack(spanel, fill=True, expand=True) hpanel.pack((5, 5)) # ---Margin panel txt = _('Printing margins') + ' (%s)' % units_text mpanel = wal.LabeledPanel(hpanel, text=txt) mpanel.pack((5, 5)) mrgs = self.active_printer.margins self.top_spin = StaticUnitSpin(self.app, mpanel, mrgs[0], onchange=self.save_data, onenter=self.save_data) mpanel.pack(self.top_spin) mpanel.pack((5, 5)) hp = wal.HPanel(self) self.left_spin = StaticUnitSpin(self.app, hp, mrgs[3], onchange=self.save_data, onenter=self.save_data) hp.pack(self.left_spin) hp.pack((5, 5)) self.right_spin = StaticUnitSpin(self.app, hp, mrgs[1], onchange=self.save_data, onenter=self.save_data) hp.pack(self.right_spin) mpanel.pack(hp) mpanel.pack((5, 5)) self.bottom_spin = StaticUnitSpin(self.app, mpanel, mrgs[2], onchange=self.save_data, onenter=self.save_data) mpanel.pack(self.bottom_spin) mpanel.pack((10, 10)) # --- hpanel.pack(mpanel, fill=True, expand=True) self.pack(hpanel, fill=True) self.pack((10, 10)) # ---Calibration page text = _("To measure actual print area and vertical/horizontal " "printing shift, just print the calibration page on " "A4/Letter paper.") label = wal.Label(self, text) label.wrap(470) self.pack(label, fill=True, padding_all=5, align_center=False) self.a4_calibrate_btn = wal.Button( self, _('Print A4 calibration page'), onclick=self.print_calibration_a4) self.pack(self.a4_calibrate_btn) self.pack((5, 5)) self.letter_calibrate_btn = wal.Button( self, _('Print Letter calibration page'), onclick=self.print_calibration_letter) self.pack(self.letter_calibrate_btn) self.pack((5, 5)) else: self.pack((5, 5), expand=True) self.pack(get_bmp(self, icons.PD_NO_PRINTERS), padding=10) self.pack(wal.Label(self, _('No printers found'))) self.pack((10, 10)) self.pack((5, 5), expand=True) self.built = True
class PrinterPrefs(PrefPanel): pid = 'Printers' name = _('Printers') title = _('Printer preferences') icon_id = icons.PD_PREFS_PRINTERS printsys = None active_printer = None prn_list = [] prn_combo = None insp = None hshift = None vshift = None top_spin = None left_spin = None right_spin = None bottom_spin = None a4_calibrate_btn = None letter_calibrate_btn = None def __init__(self, app, dlg, *args): PrefPanel.__init__(self, app, dlg) def get_printsys(self): if wal.IS_MSW: from sk1.printing.msw_print import MSW_PS return MSW_PS(self.app, physical_only=True) else: from sk1.printing.cups_print import CUPS_PS return CUPS_PS(physical_only=True) def build(self): self.printsys = self.get_printsys() self.prn_list = self.printsys.get_printer_names() if self.prn_list: self.active_printer = self.printsys.get_default_printer() hpanel = wal.HPanel(self) hpanel.pack(wal.Label(hpanel, _('Printer:'))) hpanel.pack((5, 5)) self.prn_combo = wal.Combolist(hpanel, items=self.prn_list, onchange=self.set_data) hpanel.pack(self.prn_combo, fill=True, expand=True) index = self.prn_list.index(self.active_printer.get_name()) self.prn_combo.set_active(index) self.pack(hpanel, fill=True, padding_all=5) self.pack((10, 10)) # ---Panels self.insp = self.app.insp units = uc2const.UNIT_MM if self.insp.is_doc(): units = self.app.current_doc.model.doc_units units_text = uc2const.unit_short_names[units] # ---Shift panel shifts = self.active_printer.shifts hpanel = wal.HPanel(self) txt = _('Printing shift') + ' (%s)' % units_text spanel = wal.LabeledPanel(hpanel, text=txt) spanel.pack((1, 1), expand=True) grid = wal.GridPanel(spanel, 2, 2, 5, 5) grid.pack(wal.Label(grid, _('Horizontal shift:'))) self.hshift = StaticUnitSpin(self.app, grid, shifts[0], can_be_negative=True, onchange=self.save_data, onenter=self.save_data) grid.pack(self.hshift) grid.pack(wal.Label(grid, _('Vertical shift:'))) self.vshift = StaticUnitSpin(self.app, grid, shifts[1], can_be_negative=True, onchange=self.save_data, onenter=self.save_data) grid.pack(self.vshift) spanel.pack(grid, padding_all=5) spanel.pack((1, 1), expand=True) hpanel.pack(spanel, fill=True, expand=True) hpanel.pack((5, 5)) # ---Margin panel txt = _('Printing margins') + ' (%s)' % units_text mpanel = wal.LabeledPanel(hpanel, text=txt) mpanel.pack((5, 5)) mrgs = self.active_printer.margins self.top_spin = StaticUnitSpin(self.app, mpanel, mrgs[0], onchange=self.save_data, onenter=self.save_data) mpanel.pack(self.top_spin) mpanel.pack((5, 5)) hp = wal.HPanel(self) self.left_spin = StaticUnitSpin(self.app, hp, mrgs[3], onchange=self.save_data, onenter=self.save_data) hp.pack(self.left_spin) hp.pack((5, 5)) self.right_spin = StaticUnitSpin(self.app, hp, mrgs[1], onchange=self.save_data, onenter=self.save_data) hp.pack(self.right_spin) mpanel.pack(hp) mpanel.pack((5, 5)) self.bottom_spin = StaticUnitSpin(self.app, mpanel, mrgs[2], onchange=self.save_data, onenter=self.save_data) mpanel.pack(self.bottom_spin) mpanel.pack((10, 10)) # --- hpanel.pack(mpanel, fill=True, expand=True) self.pack(hpanel, fill=True) self.pack((10, 10)) # ---Calibration page text = _("To measure actual print area and vertical/horizontal " "printing shift, just print the calibration page on " "A4/Letter paper.") label = wal.Label(self, text) label.wrap(470) self.pack(label, fill=True, padding_all=5, align_center=False) self.a4_calibrate_btn = wal.Button( self, _('Print A4 calibration page'), onclick=self.print_calibration_a4) self.pack(self.a4_calibrate_btn) self.pack((5, 5)) self.letter_calibrate_btn = wal.Button( self, _('Print Letter calibration page'), onclick=self.print_calibration_letter) self.pack(self.letter_calibrate_btn) self.pack((5, 5)) else: self.pack((5, 5), expand=True) self.pack(get_bmp(self, icons.PD_NO_PRINTERS), padding=10) self.pack(wal.Label(self, _('No printers found'))) self.pack((10, 10)) self.pack((5, 5), expand=True) self.built = True def set_data(self): name = self.prn_combo.get_active_value() self.active_printer = self.printsys.get_printer_by_name(name) shifts = self.active_printer.shifts mrgs = self.active_printer.margins self.hshift.set_point_value(shifts[0]) self.vshift.set_point_value(shifts[1]) self.top_spin.set_point_value(mrgs[0]) self.right_spin.set_point_value(mrgs[1]) self.bottom_spin.set_point_value(mrgs[2]) self.left_spin.set_point_value(mrgs[3]) def save_data(self): self.active_printer.shifts = (self.hshift.get_point_value(), self.vshift.get_point_value()) self.active_printer.margins = (self.top_spin.get_point_value(), self.right_spin.get_point_value(), self.bottom_spin.get_point_value(), self.left_spin.get_point_value()) def apply_changes(self): if not self.prn_list: return config.printer_config = {} for name in self.prn_list: printer = self.printsys.get_printer_by_name(name) if printer: printer.save_config() def restore_defaults(self): if not self.prn_list: return self.active_printer.shifts = STD_SHIFTS self.active_printer.margins = STD_MARGINS self.set_data() def print_calibration_a4(self): self.active_printer.print_test_page_a4(self.app, self.dlg) def print_calibration_letter(self): self.active_printer.print_test_page_letter(self.app, self.dlg)
class PagePanel(wal.LabeledPanel): app = None printer = None items = [] def __init__(self, parent, printer, app): self.app = app self.printer = printer wal.LabeledPanel.__init__(self, parent, _('Document page')) grid = wal.GridPanel(self, 3, 2, 3, 3) grid.add_growable_col(1) grid.pack(wal.Label(grid, _('Page size:'))) self.size_combo = wal.Combolist(grid, onchange=self.on_change) grid.pack(self.size_combo, fill=True) grid.pack(wal.Label(grid, _('Width:'))) hpanel = wal.HPanel(grid) self.wspin = StaticUnitSpin(self.app, hpanel) hpanel.pack(self.wspin) hpanel.pack((5, 5)) hpanel.pack(wal.Label(grid, _('Height:')), padding=5) self.hspin = StaticUnitSpin(self.app, hpanel) hpanel.pack(self.hspin) hpanel.pack(StaticUnitLabel(self.app, hpanel), padding=5) grid.pack(hpanel) grid.pack(wal.Label(grid, _('Orientation:'))) hpanel = wal.HPanel(grid) self.port_opt = wal.Radiobutton(hpanel, uc2const.ORIENTS_NAMES[0], group=True) self.land_opt = wal.Radiobutton(hpanel, uc2const.ORIENTS_NAMES[1]) hpanel.pack(self.port_opt) hpanel.pack((15, 5)) hpanel.pack(self.land_opt) grid.pack(hpanel) self.pack(grid, fill=True, expand=True, padding_all=7) self.set_data() def set_data(self): self.land_opt.set_value(True) if self.printer.page_orientation == uc2const.PORTRAIT: self.port_opt.set_value(True) self.items = self.printer.get_format_items() self.size_combo.set_items(self.items) if not self.printer.page_format[0] == 'Custom': index = self.items.index(self.printer.page_format[0]) else: index = len(self.items) - 1 self.size_combo.set_active(index) if self.printer.is_custom_supported(): minw, minh = self.printer.customs[0] maxw, maxh = self.printer.customs[1] self.wspin.set_point_range((minw, maxw)) self.hspin.set_point_range((minh, maxh)) self.on_change() def on_change(self): index = self.size_combo.get_active() status = False if index == len(self.items) - 1: if not self.hspin.get_point_value() and \ self.printer.page_format[0] == 'Custom': w, h = self.printer.page_format[1] self.wspin.set_point_value(w) self.hspin.set_point_value(h) status = True else: w, h = uc2const.PAGE_FORMATS[uc2const.PAGE_FORMAT_NAMES[index]] self.wspin.set_point_value(w) self.hspin.set_point_value(h) self.wspin.set_enable(status) self.hspin.set_enable(status) def save(self): index = self.size_combo.get_active() prn = self.printer if prn.is_custom_supported() and index == len(self.items) - 1: w = self.wspin.get_point_value() h = self.hspin.get_point_value() prn.page_format = ('Custom', (w, h)) else: media = uc2const.PAGE_FORMAT_NAMES[index] w, h = uc2const.PAGE_FORMATS[media] prn.page_format = (media, (w, h)) self.printer.page_orientation = uc2const.LANDSCAPE if self.port_opt.get_value(): self.printer.page_orientation = uc2const.PORTRAIT
class PagePanel(wal.LabeledPanel): app = None printer = None items = [] def __init__(self, parent, printer, app): self.app = app self.printer = printer wal.LabeledPanel.__init__(self, parent, _('Document page')) grid = wal.GridPanel(self, 3, 2, 3, 3) grid.add_growable_col(1) grid.pack(wal.Label(grid, _('Page size:'))) self.size_combo = wal.Combolist(grid, onchange=self.on_change) grid.pack(self.size_combo, fill=True) grid.pack(wal.Label(grid, _('Width:'))) hpanel = wal.HPanel(grid) self.wspin = StaticUnitSpin(self.app, hpanel) hpanel.pack(self.wspin) hpanel.pack((5, 5)) hpanel.pack(wal.Label(grid, _('Height:')), padding=5) self.hspin = StaticUnitSpin(self.app, hpanel) hpanel.pack(self.hspin) hpanel.pack(StaticUnitLabel(self.app, hpanel), padding=5) grid.pack(hpanel) grid.pack(wal.Label(grid, _('Orientation:'))) hpanel = wal.HPanel(grid) self.port_opt = wal.Radiobutton(hpanel, _('Portrait'), group=True) self.land_opt = wal.Radiobutton(hpanel, _('Landscape')) hpanel.pack(self.port_opt) hpanel.pack((15, 5)) hpanel.pack(self.land_opt) grid.pack(hpanel) self.pack(grid, fill=True, expand=True, padding_all=7) self.set_data() def set_data(self): self.land_opt.set_value(True) if self.printer.page_orientation == uc2const.PORTRAIT: self.port_opt.set_value(True) self.items = self.printer.get_format_items() self.size_combo.set_items(self.items) index = 0 if not self.printer.page_format[0] == 'Custom': index = self.items.index(self.printer.page_format[0]) else: index = len(self.items) - 1 self.size_combo.set_active(index) if self.printer.is_custom_supported(): minw, minh = self.printer.customs[0] maxw, maxh = self.printer.customs[1] self.wspin.set_point_range((minw, maxw)) self.hspin.set_point_range((minh, maxh)) self.on_change() def on_change(self): index = self.size_combo.get_active() status = False if index == len(self.items) - 1: if not self.hspin.get_point_value() and \ self.printer.page_format[0] == 'Custom': w, h = self.printer.page_format[1] self.wspin.set_point_value(w) self.hspin.set_point_value(h) status = True else: w, h = uc2const.PAGE_FORMATS[uc2const.PAGE_FORMAT_NAMES[index]] self.wspin.set_point_value(w) self.hspin.set_point_value(h) self.wspin.set_enable(status) self.hspin.set_enable(status) def save(self): index = self.size_combo.get_active() prn = self.printer if prn.is_custom_supported() and index == len(self.items) - 1: w = self.wspin.get_point_value() h = self.hspin.get_point_value() prn.page_format = ('Custom', (w, h)) else: media = uc2const.PAGE_FORMAT_NAMES[index] w, h = uc2const.PAGE_FORMATS[media] prn.page_format = (media, (w, h)) self.printer.page_orientation = uc2const.LANDSCAPE if self.port_opt.get_value(): self.printer.page_orientation = uc2const.PORTRAIT