def do_page_setup(self, win): if PuzzlePrinter.settings is None: PuzzlePrinter.settings = gtk.PrintSettings() r = gtk.print_run_page_setup_dialog(win, PuzzlePrinter.page_setup, PuzzlePrinter.settings) PuzzlePrinter.page_setup = r
def get_print_operation(self): """Return a Print Operation""" print_operation = gtk.PrintOperation() print_operation.set_show_progress(True) if self.page_setup is None: self.page_setup = gtk.PageSetup() if self.settings is None: self.settings = gtk.PrintSettings() print_operation.set_default_page_setup(self.page_setup) print_operation.set_print_settings(self.settings) return print_operation
def present_page_setup_dialog(page_setup): old_setup = page_setup._gtk_page_setup ps = gtk.PrintSettings() new_setup = gtk.print_run_page_setup_dialog(None, old_setup, ps) if get_gtk_state(old_setup) <> get_gtk_state(new_setup): page_setup._gtk_page_setup = new_setup return True else: return False
def _print(self, frame): print_op = gtk.PrintOperation() print_settings = print_op.get_print_settings() or gtk.PrintSettings() print_settings.set_paper_size(self._paper_size) print_op.set_print_settings(print_settings) print_op.set_export_filename(os.path.abspath(self.outfile)) logging.info('Exporting PDF...') print_op.connect('end-print', self._end_print_cb) try: frame.print_full(print_op, gtk.PRINT_OPERATION_ACTION_EXPORT) while gtk.events_pending(): gtk.main_iteration() except gobject.GError, e: logging.error(e.message)
def _load_settings(self): self.config_dir = get_application_dir('stoq') settings = gtk.PrintSettings() filename = os.path.join(self.config_dir, self.print_settings_name) if os.path.exists(filename): settings.load_file(filename) self.set_print_settings(settings) default_page_setup = gtk.PageSetup() default_page_setup.set_orientation(gtk.PAGE_ORIENTATION_PORTRAIT) filename = os.path.join(self.config_dir, self.page_setup_name) if os.path.exists(filename): default_page_setup.load_file(filename) self.set_default_page_setup(default_page_setup)
def _load_finished_cb(self, view, frame, outfile): self._print_status('Loading done') print_op = gtk.PrintOperation() print_settings = print_op.get_print_settings() or gtk.PrintSettings() print_settings.set_paper_size(self._paper_size) print_op.set_print_settings(print_settings) print_op.set_export_filename(os.path.abspath(outfile)) self._print_status('Exporting PDF...') print_op.connect('end-print', self._end_print_cb) try: frame.print_full(print_op, gtk.PRINT_OPERATION_ACTION_EXPORT) while gtk.events_pending(): gtk.main_iteration() except gobject.GError, e: self._print_error(e.message)
def __init__(self, content, cols_width, heading=None): # self.lines_per_page = 24 self.cell_margin = 4 self.line = 2 #the thinest possible width of lines. self.row_height = 2 * (config.contentfont + self.cell_margin) self.header_height = 0 self.heading_height = 35 self.operation = gtk.PrintOperation() settings = gtk.PrintSettings() paper_size = gtk.paper_size_new_from_ppd(config.paper_ppd, config.paper_name, config.paper_width, config.paper_height) self.page_setup = gtk.PageSetup() self.page_setup.set_paper_size(paper_size) self.page_setup.set_orientation(config.paper_orientation) # self.page_setup = gtk.print_run_page_setup_dialog(None, self.page_setup, settings) self.page_setup.set_top_margin(config.topmargin, gtk.UNIT_POINTS) self.page_setup.set_bottom_margin(config.botmargin, gtk.UNIT_POINTS) self.page_setup.set_right_margin(config.rightmargin, gtk.UNIT_POINTS) self.page_setup.set_left_margin(config.leftmargin, gtk.UNIT_POINTS) self.operation.set_default_page_setup(self.page_setup) self.operation.set_unit(gtk.UNIT_POINTS) self.content = content tablewidth = self.page_setup.get_page_width(gtk.UNIT_POINTS) tablewidth -= (len(cols_width) * (self.line + self.cell_margin)) + self.line + ( config.rightmargin + config.leftmargin) self.cols_width = [] for percent in cols_width: self.cols_width.append(math.floor((percent * tablewidth) / 100)) # self.cols_width = cols_width self.heading = heading self.operation.connect("begin_print", self.beginPrint) self.operation.connect("draw-page", self.printPage) self.type = 0 self.title = "" self.fields = {}
def __init__(self, configpath=None, etype='rms'): """Meet constructor.""" # logger and log handler self.log = logging.getLogger('scbdo') self.log.setLevel(logging.DEBUG) self.loghandler = None # set in loadconfig to meet dir if etype not in ROADRACE_TYPES: etype = 'rms' # Default is 'road mass start' self.etype = etype # meet configuration path and options if configpath is None: configpath = '.' # None assumes 'current dir' self.configpath = configpath self.line1 = '' self.line2 = '' self.line3 = '' self.bibs_in_results = True self.cats_in_results = False self.distance = 20 # Race distance in km (integer!) self.logos = '' # string list of logo filenames self.docindex = 0 # printer preferences self.printprefs = gtk.PrintSettings() # filled in with loadconfig # hardware connections self.timer = timy.timy() self.timer_port = '' self.rfu = wheeltime.wheeltime() self.rfu_addr = '' self.scb = uscbsrv.uscbsrv() b = gtk.Builder() b.add_from_file(os.path.join(scbdo.UI_PATH, 'roadmeet.ui')) self.window = b.get_object('meet') self.window.connect('key-press-event', self.key_event) self.clock = b.get_object('menu_clock') self.clock_label = b.get_object('menu_clock_label') self.clock_label.modify_font(pango.FontDescription("monospace")) self.menu_rfustat_img = b.get_object('menu_rfustat_img') self.status = b.get_object('status') self.log_buffer = b.get_object('log_buffer') self.log_view = b.get_object('log_view') self.log_view.modify_font(pango.FontDescription("monospace 12")) self.log_scroll = b.get_object('log_box').get_vadjustment() self.context = self.status.get_context_id('SCBdo Meet') self.menu_race_close = b.get_object('menu_race_close') self.menu_race_abort = b.get_object('menu_race_abort') self.race_box = b.get_object('race_box') self.stat_but = b.get_object('race_stat_but') self.action_model = b.get_object('race_action_model') self.action_combo = b.get_object('race_action_combo') self.action_entry = b.get_object('race_action_entry') b.get_object('race_tab_img').set_from_file(scbdo.SCB_LOGOFILE) b.connect_signals(self) # run state self.running = True self.started = False self.curevent = None self.rfustat = False self.rfid_cb = None # format and connect status and log handlers f = logging.Formatter('%(levelname)s:%(name)s: %(message)s') self.sh = loghandler.statusHandler(self.status, self.context) self.sh.setLevel(logging.INFO) # show info upon status bar self.sh.setFormatter(f) self.log.addHandler(self.sh) self.lh = loghandler.textViewHandler(self.log_buffer, self.log_view, self.log_scroll) self.lh.setLevel(logging.INFO) # show info up in log view self.lh.setFormatter(f) self.log.addHandler(self.lh) # scrachpad buffer self.scratch_buf = b.get_object('scratch_buffer') self.scratch_idx = 0 b.get_object('scratch_view').modify_font( pango.FontDescription("monospace 18")) # get rider db and pack into a dialog self.rdb = riderdb.riderdb() b.get_object('riders_box').add( self.rdb.mkview(cat=True, series=False, refid=True)) # select event page in notebook. b.get_object('meet_nb').set_current_page(1) # get event db -> loadconfig makes event if not already made self.edb = eventdb.eventdb([]) # start timer glib.timeout_add_seconds(1, self.timeout)
from GUI.GPrinting import PageSetup as GPageSetup, Printable as GPrintable, \ Paginator gtk_paper_names = [ gtk.PAPER_NAME_A3, gtk.PAPER_NAME_A4, gtk.PAPER_NAME_A5, gtk.PAPER_NAME_B5, gtk.PAPER_NAME_LETTER, gtk.PAPER_NAME_EXECUTIVE, gtk.PAPER_NAME_LEGAL, ] gtk_paper_formats = {} gtk_print_settings = gtk.PrintSettings() def init_gtk_paper_formats(): for gtk_name in gtk_paper_names: display_name = gtk.PaperSize(gtk_name).get_display_name() gtk_paper_formats[display_name] = gtk_name init_gtk_paper_formats() def gtk_default_page_setup(): pset = gtk.PageSetup() pset.set_paper_size(gtk.PaperSize()) return pset def get_gtk_state(gtk_page_setup): state = {}
def reportPaperSetup(self, sender): settings = gtk.PrintSettings() self.page_setup = gtk.print_run_page_setup_dialog(None, self.page_setup, settings) self.builder.get_object("papersize").set_text(self.page_setup.get_paper_size().get_display_name())
def do_page_setup(action): global settings, page_setup if settings is None: settings = gtk.PrintSettings() page_setup = gtk.print_run_page_setup_dialog(main_window, page_setup, settings)
def get_print_settings(self): if self.__print_settings is None: self.__print_settings = gtk.PrintSettings() return self.__print_settings
def __init__(self): """initialise a new puzzle""" #Set the environment variables and default display settings self.local_path = os.path.realpath(os.path.dirname(sys.argv[0])) self.gladefile = os.path.join(self.local_path, 'assets', "findthatword.glade") self.show_title = True self.show_grid = True self.show_words = True self.show_solution = True #Initialise the Glade GUI environment self.widget_tree = gtk.glade.XML(self.gladefile, "MainWindow") self.widget_tree.signal_autoconnect(self) self.main_window = self.widget_tree.get_widget("MainWindow") #Draw the icon. Unofortunately, not all operating systems can accept SVGs if os.name == 'posix': icon_file = os.path.join(self.local_path, 'assets', "ftw_small.svg") self.main_window.set_icon_from_file(icon_file) else: icon_file = os.path.join(self.local_path, 'assets' "ftw_small.ico") self.main_window.set_icon_from_file(icon_file) #Disable printing support on Windows - the GTK page setup dialogue doesn't #work so the printed puzzle is incorrectly scaled to the page if os.name == 'nt' or os.name == 'ce': self.widget_tree.get_widget("PrintIcon").hide() self.widget_tree.get_widget("FilePageSetupMenuItem").hide() self.widget_tree.get_widget("FilePrintMenuItem").hide() self.widget_tree.get_widget("separatormenuitem2").hide() #Setup the Recent Files menu if the modules are available recent_widget = self.widget_tree.get_widget("FileRecentMenuItem") if RECENT_CHOOSER: recent_manager = gtk.recent_manager_get_default() recent_chooser = gtk.RecentChooserMenu(recent_manager) recent_filter = gtk.RecentFilter() recent_filter.add_pattern("*.ftw") recent_chooser.add_filter(recent_filter) recent_chooser.set_show_not_found(False) recent_chooser.connect("item-activated", self.on_RecentChooser_activate) recent_widget.set_submenu(recent_chooser) else: recent_widget.hide() #Create a permanent reference to frequently used widgets self.new_word_entry_widget = self.widget_tree.get_widget( "NewWordEntry") self.new_description_entry_widget = self.widget_tree.get_widget( "NewDescriptionEntry") self.words_view_widget = self.widget_tree.get_widget("WordsView") #Initialise the WordsView widget for i in range(0, 2): column = gtk.TreeViewColumn("Word", gtk.CellRendererText(), text=i) column.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED) self.words_view_widget.append_column(column) column.set_sizing(gtk.TREE_VIEW_COLUMN_AUTOSIZE) self.words_list = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING) self.words_view_widget.set_model(self.words_list) self.words_view_widget_selection = self.words_view_widget.get_selection( ) #Manually connect signals where Glade provides no options self.widget_tree.get_widget("NarrativeEntry").get_buffer().connect( "changed", self.on_NarrativeWidget_changed) self.words_view_widget_selection.connect( 'changed', self.on_WordsListWidgetSelection_changed) #Initialise print settings self.print_settings = None self.print_settings = gtk.PrintSettings() self.page_setup = gtk.PageSetup() #Create and display a new puzzle self.dirty = False #Let's celelebrate being Welsh if datetime.date.today().month == 3 and datetime.date.today().day == 1: self.st_davids_day = True else: self.st_davids_day = False self.new_puzzle() #Find the name of a file passed on the command line if len(sys.argv) >= 2: self.load_file(sys.argv[len(sys.argv) - 1], "Filename")
def __init__(self): gtk.Window.__init__(self) self.set_size_request(640, 480) self.set_default_size(1366, 768) #self.set_default_size(800, 600) self.winstate = 0 self.maximize() self.connect("delete-event", self.quit) self.bindings = gtk.AccelGroup() self.add_accel_group(self.bindings) self.setup = gtk.PageSetup() self.settings = gtk.PrintSettings() self.filename = None self.update_title() icon = gtk.gdk.pixbuf_new_from_file( os.path.join(os.path.dirname(__file__), "..", "images", "canvas-logo.png")) self.set_icon(icon) vbox = gtk.VBox() self.add(vbox) self.menu = MenuBar(self) vbox.pack_start(self.menu, False, False) self.menu.append_menu("_" + _("File")) self.menu.append_item(gtk.STOCK_NEW, "new", "<Control>N") self.menu.append_item(gtk.STOCK_OPEN, "open", "<Control>O") self.menu.append_item(gtk.STOCK_SAVE, "save", "<Control>S") self.menu.append_item(gtk.STOCK_SAVE_AS, "save-as", "<Control><Shift>S") self.menu.append_separator() self.menu.append_item(gtk.STOCK_PAGE_SETUP, "page-setup") self.menu.append_item(gtk.STOCK_PRINT_PREVIEW, "print-preview", "<Control><Shift>P") self.menu.append_item(gtk.STOCK_PRINT, "print", "<Control>P") self.menu.append_separator() self.menu.append_menu("_" + _("Document"), True) self.menu.append_item(SET_BACKGROUND, "set-background") self.menu.ascend() self.menu.append_separator() self.menu.append_menu("_" + _("Export"), True) self.menu.append_item(EXPORT_TO_PDF, "export-to-pdf") self.menu.ascend() self.menu.append_separator() self.menu.append_item(gtk.STOCK_QUIT, "quit", "<Control>Q") self.menu.append_menu("_" + _("Edit")) self.menu.append_item(gtk.STOCK_UNDO, "undo", "<Control>Z") self.menu.append_item(gtk.STOCK_REDO, "redo", "<Control>Y") self.menu.append_separator() self.menu.append_item(gtk.STOCK_COPY, "copy", "<Control>C") self.menu.append_item(gtk.STOCK_CUT, "cut", "<Control>X") self.menu.append_item(gtk.STOCK_PASTE, "paste", "<Control>V") self.menu.append_separator() self.menu.append_item(gtk.STOCK_DELETE, "delete", "Delete") self.menu.append_separator() self.menu.append_item(gtk.STOCK_SELECT_ALL, "select-all", "<Control>A") self.menu.append_menu("_" + _("View")) self.menu.append_toggle(MARGINS_ENABLED, "margins") self.menu.append_toggle(GRID, "grid") self.menu.append_toggle(GUIDES, "guides") self.menu.append_toggle(SNAP_ENABLED, "snap") self.menu.append_toggle(_("Z-Order hint"), "hints", toggled=False) self.menu.append_separator() self.menu.append_toggle(gtk.STOCK_PROPERTIES, "properties") self.menu.append_toggle(_("Menubar"), "menubar") self.menu.append_toggle(_("Statusbar"), "statusbar") self.menu.append_menu("_" + _("Insert")) self.menu.append_item(LINE, "line") self.menu.append_item(ARC, "arc") self.menu.append_item(CURVE, "curve") self.menu.append_item(CONNECTOR, "connector") self.menu.append_menu(BOX, "box", True) self.menu.append_item(BOX, "box") self.menu.append_item(SPLIT_HORIZONTALLY, "split-horizontally") self.menu.append_item(SPLIT_VERTICALLY, "split-vertically") self.menu.append_item(REMOVE_SPLIT, "remove-split") self.menu.ascend() self.menu.append_item(ROUNDED_BOX, "rounded-box") self.menu.append_item(TEXT, "text") self.menu.append_item(TABLE, "table") self.menu.append_item(CHART, "chart") self.menu.append_item(BARCODE, "barcode") self.menu.append_item(IMAGE, "image") self.menu.append_menu("_" + _("Format")) self.menu.append_item(gtk.STOCK_SELECT_FONT, "select-font") self.menu.append_separator() self.menu.append_item(gtk.STOCK_SELECT_COLOR, "select-color") self.menu.append_menu("_" + _("Tools")) self.menu.append_item(GROUP, "group", "<Control>G") self.menu.append_item(UNGROUP, "ungroup", "<Control><Shift>G") self.menu.append_separator() self.menu.append_item(BRING_TO_FRONT, "bring-to-front", "<Control>plus") self.menu.append_item(BRING_TO_BACK, "bring-to-back", "<Control>minus") self.menu.append_separator() self.menu.append_menu("_" + _("Zoom"), True) self.menu.append_item(gtk.STOCK_ZOOM_FIT, "zoom-fit", "<Control>0") self.menu.append_item(gtk.STOCK_ZOOM_100, "zoom-100", "<Control>1") self.menu.append_item(gtk.STOCK_ZOOM_IN, "zoom-in", "<Control><Shift>plus") self.menu.append_item(gtk.STOCK_ZOOM_OUT, "zoom-out", "<Control><Shift>minus") self.menu.ascend() self.menu.append_separator() self.menu.append_menu("_" + _("Objects alignment"), True) self.menu.append_item(ALIGN_OBJECTS_NORTHWEST, "align-objects-northwest") self.menu.append_item(ALIGN_OBJECTS_NORTH, "align-objects-north") self.menu.append_item(ALIGN_OBJECTS_NORTHEAST, "align-objects-northeast") self.menu.append_item(ALIGN_OBJECTS_SOUTHWEST, "align-objects-southwest") self.menu.append_item(ALIGN_OBJECTS_SOUTH, "align-objects-south") self.menu.append_item(ALIGN_OBJECTS_SOUTHEAST, "align-objects-southeast") self.menu.append_item(ALIGN_OBJECTS_WEST, "align-objects-west") self.menu.append_item(ALIGN_OBJECTS_CENTER_BOTH, "align-objects-center-both") self.menu.append_item(ALIGN_OBJECTS_EAST, "align-objects-east") self.menu.append_item(ALIGN_OBJECTS_CENTER_HORIZONTAL, "align-objects-center-horizontal") self.menu.append_item(ALIGN_OBJECTS_CENTER_VERTICAL, "align-objects-center-vertical") self.menu.ascend() self.menu.append_menu("_" + _("Paper alignment"), True) self.menu.append_item(ALIGN_PAPER_NORTHWEST, "align-paper-northwest") self.menu.append_item(ALIGN_PAPER_NORTH, "align-paper-north") self.menu.append_item(ALIGN_PAPER_NORTHEAST, "align-paper-northeast") self.menu.append_item(ALIGN_PAPER_SOUTHWEST, "align-paper-southwest") self.menu.append_item(ALIGN_PAPER_SOUTH, "align-paper-south") self.menu.append_item(ALIGN_PAPER_SOUTHEAST, "align-paper-southeast") self.menu.append_item(ALIGN_PAPER_WEST, "align-paper-west") self.menu.append_item(ALIGN_PAPER_CENTER_BOTH, "align-paper-center-both") self.menu.append_item(ALIGN_PAPER_EAST, "align-paper-east") self.menu.append_item(ALIGN_PAPER_CENTER_HORIZONTAL, "align-paper-center-horizontal") self.menu.append_item(ALIGN_PAPER_CENTER_VERTICAL, "align-paper-center-vertical") self.menu.ascend() self.menu.append_menu("_" + _("Window")) self.menu.append_item(gtk.STOCK_FULLSCREEN, "fullscreen", "<Control>F") self.menu.append_menu("_" + _("Help"), right=True) self.menu.append_item(gtk.STOCK_HELP, "help", "F1") self.menu.append_separator() self.menu.append_item(gtk.STOCK_ABOUT, "about") self.menu.show_all() htoolbar = Toolbar(HORIZONTAL) vbox.pack_start(htoolbar, False, False) htoolbar.append(gtk.STOCK_NEW, "new") htoolbar.append(gtk.STOCK_OPEN, "open") htoolbar.append(gtk.STOCK_SAVE, "save") htoolbar.append_separator() htoolbar.append(gtk.STOCK_PRINT, "print") htoolbar.append_separator() htoolbar.append(gtk.STOCK_UNDO, "undo") htoolbar.append(gtk.STOCK_REDO, "redo") htoolbar.append_separator() htoolbar.append(gtk.STOCK_CUT, "cut") htoolbar.append(gtk.STOCK_COPY, "copy") htoolbar.append(gtk.STOCK_PASTE, "paste") htoolbar.append_separator() htoolbar.append(gtk.STOCK_DELETE, "delete") htoolbar.append_separator() htoolbar.append_with_submenu(LINE_STYLE_CONTINUOUS, "line-style-continuous") htoolbar.append_to_submenu(LINE_STYLE_POINT_DASH, "line-style-point-dash") htoolbar.append_to_submenu(LINE_STYLE_POINT, "line-style-point") htoolbar.append_to_submenu(LINE_STYLE_DASH, "line-style-dash") htoolbar.append_separator() htoolbar.append_with_submenu(gtk.STOCK_ZOOM_FIT, "zoom-fit") htoolbar.append_to_submenu(gtk.STOCK_ZOOM_100, "zoom-100") htoolbar.append_to_submenu(gtk.STOCK_ZOOM_IN, "zoom-in") htoolbar.append_to_submenu(gtk.STOCK_ZOOM_OUT, "zoom-out") htoolbar.append_separator() htoolbar.append_toggle(MARGINS_ENABLED, "margins") htoolbar.append_toggle(GRID, "grid") htoolbar.append_toggle(GUIDES, "guides") htoolbar.append_toggle(SNAP_ENABLED, "snap") htoolbar.append_separator() htoolbar.append(EXPORT_TO_PDF, "export-to-pdf") htoolbar.append_separator() htoolbar.append_toggle(GROUP, "group") htoolbar.append_separator() htoolbar.append(BRING_TO_FRONT, "bring-to-front") htoolbar.append(BRING_TO_BACK, "bring-to-back") htoolbar.append_separator() htoolbar.append_with_submenu(ALIGN_OBJECTS_CENTER_BOTH, "align-object-center-both") htoolbar.append_to_submenu(ALIGN_OBJECTS_NORTHWEST, "align-object-northwest") htoolbar.append_to_submenu(ALIGN_OBJECTS_NORTH, "align-object-north") htoolbar.append_to_submenu(ALIGN_OBJECTS_SOUTHWEST, "align-object-southwest") htoolbar.append_to_submenu(ALIGN_OBJECTS_NORTHEAST, "align-object-northeast") htoolbar.append_to_submenu(ALIGN_OBJECTS_SOUTH, "align-object-south") htoolbar.append_to_submenu(ALIGN_OBJECTS_SOUTHEAST, "align-object-southeast") htoolbar.append_to_submenu(ALIGN_OBJECTS_WEST, "align-object-west") htoolbar.append_to_submenu(ALIGN_OBJECTS_EAST, "align-object-east") htoolbar.append_to_submenu(ALIGN_OBJECTS_CENTER_HORIZONTAL, "align-object-center-horizontal") htoolbar.append_to_submenu(ALIGN_OBJECTS_CENTER_VERTICAL, "align-object-center-vertical") htoolbar.append_with_submenu(ALIGN_PAPER_CENTER_BOTH, "align-paper-center-both") htoolbar.append_to_submenu(ALIGN_PAPER_NORTHWEST, "align-paper-northwest") htoolbar.append_to_submenu(ALIGN_PAPER_NORTH, "align-paper-north") htoolbar.append_to_submenu(ALIGN_PAPER_SOUTHWEST, "align-paper-southwest") htoolbar.append_to_submenu(ALIGN_PAPER_NORTHEAST, "align-paper-northeast") htoolbar.append_to_submenu(ALIGN_PAPER_SOUTH, "align-paper-south") htoolbar.append_to_submenu(ALIGN_PAPER_SOUTHEAST, "align-paper-southeast") htoolbar.append_to_submenu(ALIGN_PAPER_WEST, "align-paper-west") htoolbar.append_to_submenu(ALIGN_PAPER_EAST, "align-paper-east") htoolbar.append_to_submenu(ALIGN_PAPER_CENTER_HORIZONTAL, "align-paper-center-horizontal") htoolbar.append_to_submenu(ALIGN_PAPER_CENTER_VERTICAL, "align-paper-center-vertical") htoolbar.append_separator() htoolbar.append(gtk.STOCK_HELP, "help") hbox = gtk.HBox() vbox.add(hbox) vtoolbar = Toolbar() vtoolbar.set_style(gtk.TOOLBAR_ICONS) hbox.pack_start(vtoolbar, False, False) vtoolbar.append(LINE, "line") vtoolbar.append(ARC, "arc") vtoolbar.append(CURVE, "curve") vtoolbar.append(CONNECTOR, "connector") vtoolbar.append_with_submenu(BOX, "box") vtoolbar.append_to_submenu(SPLIT_HORIZONTALLY, "split-horizontally") vtoolbar.append_to_submenu(SPLIT_VERTICALLY, "split-vertically") vtoolbar.append_to_submenu(REMOVE_SPLIT, "remove-split") vtoolbar.append(ROUNDED_BOX, "rounded-box") vtoolbar.append(TEXT, "text") vtoolbar.append(BARCODE, "barcode") vtoolbar.append(TABLE, "table") vtoolbar.append(CHART, "chart") vtoolbar.append(IMAGE, "image") notebook = gtk.Notebook() notebook.set_show_tabs(True) notebook.set_show_border(False) #notebook.set_tab_pos(gtk.POS_LEFT) notebook.set_tab_pos(gtk.POS_RIGHT) hbox.add(notebook) self.status = Statusbar() self.id = self.status.get_context_id(_("Edit mode")) vbox.pack_start(self.status, False, False) label = gtk.Label(_("Design view")) label.set_angle(90) self.editor = Editor(self) self.editor.set_paper() notebook.append_page(self.editor, label) label = gtk.Label(_("XML view")) label.set_angle(90) def get_source_view(): source = gtk.ScrolledWindow() source.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) view = gtk.TextView() self.code = gtk.TextBuffer() view.set_buffer(self.code) source.add(view) return source if '--source-editor-test' in sys.argv: while True: try: from ui.code_editor import SourcePad except: source = get_source_view() break source = SourcePad(self) self.code = source.buffer source.set_language("xml") break else: source = get_source_view() notebook.append_page(source, label) self.menu.connect("new", self.new) self.menu.connect("open", self.open) self.menu.connect("save", self.save) self.menu.connect("save-as", self.save_as) self.menu.connect("page-setup", self.page_setup) self.menu.connect("export-to-pdf", self.export_to_pdf) self.menu.connect("set-background", self.set_background) self.menu.connect("quit", self.quit) self.menu.connect("cut", self.editor.canvas.cut) self.menu.connect("copy", self.editor.canvas.copy) self.menu.connect("paste", self.editor.canvas.paste) self.menu.connect("delete", self.editor.canvas.delete) self.menu.connect("select-all", self.editor.canvas.select_all) self.menu.connect("margins", self.editor.canvas.toggle_margins) self.menu.connect("grid", self.editor.canvas.toggle_grid) self.menu.connect("guides", self.editor.canvas.toggle_guides) self.menu.connect("snap", self.editor.canvas.toggle_snap) self.menu.connect("hints", self.editor.canvas.toggle_hints) self.menu.connect("properties", self.editor.toggle_properties) self.menu.connect("menubar", self.toggle_menubar) self.menu.connect("statusbar", self.toggle_statusbar) self.menu.connect("bring-to-front", self.editor.canvas.bring_to_front) self.menu.connect("bring-to-back", self.editor.canvas.bring_to_back) self.menu.connect("align-paper-center-horizontal", self.editor.canvas.paper_center_horizontal) self.menu.connect("line", self.create, "Line") self.menu.connect("curve", self.create, "Curve") self.menu.connect("connector", self.create, "Connector") self.menu.connect("box", self.create, "Box") self.menu.connect("rounded-box", self.create, "Rounded") self.menu.connect("text", self.create, "Text") self.menu.connect("barcode", self.create, "BarCode") self.menu.connect("table", self.create, "Table") self.menu.connect("image", self.create, "Image") self.menu.connect("chart", self.create, "Chart") self.menu.connect("fullscreen", self.fullscreen) self.menu.connect("about", self.about) self.menu.connect("help", self.help) self.menu.connect("split-horizontally", self.editor.canvas.split_horizontally) self.menu.connect("split-vertically", self.editor.canvas.split_vertically) self.menu.connect("remove-split", self.editor.canvas.remove_split) htoolbar.connect("new", self.new) htoolbar.connect("open", self.open) htoolbar.connect("save", self.save) htoolbar.connect("snap", self.editor.canvas.toggle_snap) htoolbar.connect("grid", self.editor.canvas.toggle_grid) htoolbar.connect("guides", self.editor.canvas.toggle_guides) htoolbar.connect("margins", self.editor.canvas.toggle_margins) htoolbar.connect("cut", self.editor.canvas.cut) htoolbar.connect("copy", self.editor.canvas.copy) htoolbar.connect("paste", self.editor.canvas.paste) htoolbar.connect("delete", self.editor.canvas.delete) htoolbar.connect("bring-to-front", self.editor.canvas.bring_to_front) htoolbar.connect("bring-to-back", self.editor.canvas.bring_to_back) htoolbar.connect("export-to-pdf", self.export_to_pdf) htoolbar.connect("help", self.help) vtoolbar.connect("line", self.create, "Line") vtoolbar.connect("arc", self.create, "Arc") vtoolbar.connect("curve", self.create, "Curve") vtoolbar.connect("connector", self.create, "Connector") vtoolbar.connect("box", self.create, "Box") vtoolbar.connect("rounded-box", self.create, "Rounded") vtoolbar.connect("text", self.create, "Text") vtoolbar.connect("barcode", self.create, "BarCode") vtoolbar.connect("table", self.create, "Table") vtoolbar.connect("image", self.create, "Image") vtoolbar.connect("chart", self.create, "Chart") vtoolbar.connect("split-horizontally", self.editor.canvas.split_horizontally) vtoolbar.connect("split-vertically", self.editor.canvas.split_vertically) vtoolbar.connect("remove-split", self.editor.canvas.remove_split) notebook.connect("switch-page", self.switch) self.connect("key-press-event", self.key_press)