def __init__(self, block): """ Properties dialog constructor. Args: block: a block instance """ self._hash = 0 gtk.Dialog.__init__( self, title='Properties: %s' % block.get_name(), buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT, gtk.STOCK_OK, gtk.RESPONSE_ACCEPT), ) self._block = block self.set_size_request(MIN_DIALOG_WIDTH, MIN_DIALOG_HEIGHT) vpaned = gtk.VPaned() self.vbox.pack_start(vpaned) # Notebook to hold param boxes notebook = gtk.Notebook() notebook.set_show_border(False) notebook.set_scrollable(True) # scroll arrows for page tabs notebook.set_tab_pos(gtk.POS_TOP) vpaned.pack1(notebook, True) # Params boxes for block parameters self._params_boxes = list() for tab in block.get_param_tab_labels(): label = gtk.Label() vbox = gtk.VBox() scroll_box = gtk.ScrolledWindow() scroll_box.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) scroll_box.add_with_viewport(vbox) notebook.append_page(scroll_box, label) self._params_boxes.append((tab, label, vbox)) # Docs for the block self._docs_text_display = TextDisplay() self._docs_box = gtk.ScrolledWindow() self._docs_box.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) self._docs_box.add_with_viewport(self._docs_text_display) notebook.append_page(self._docs_box, gtk.Label("Documentation")) # Error Messages for the block self._error_messages_text_display = TextDisplay() self._error_box = gtk.ScrolledWindow() self._error_box.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) self._error_box.add_with_viewport(self._error_messages_text_display) vpaned.pack2(self._error_box) vpaned.set_position(int(0.65 * MIN_DIALOG_HEIGHT)) # Connect events self.connect('key-press-event', self._handle_key_press) self.connect('show', self._update_gui) self.show_all() # show all (performs initial gui update)
def __init__(self, block): """ Properties dialog contructor. Args: block: a block instance """ self._hash = 0 LABEL_SPACING = 7 gtk.Dialog.__init__(self, title='Properties: %s'%block.get_name(), buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT, gtk.STOCK_OK, gtk.RESPONSE_ACCEPT), ) self._block = block self.set_size_request(MIN_DIALOG_WIDTH, MIN_DIALOG_HEIGHT) vbox = gtk.VBox() #Create the scrolled window to hold all the parameters scrolled_window = gtk.ScrolledWindow() scrolled_window.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) scrolled_window.add_with_viewport(vbox) self.vbox.pack_start(scrolled_window, True) #Params box for block parameters self._params_box = gtk.VBox() self._params_box.pack_start(get_title_label('Parameters'), False) self._input_object_params = list() #Error Messages for the block self._error_box = gtk.VBox() self._error_messages_text_display = TextDisplay() self._error_box.pack_start(gtk.Label(), False, False, LABEL_SPACING) self._error_box.pack_start(get_title_label('Error Messages'), False) self._error_box.pack_start(self._error_messages_text_display, False) #Docs for the block self._docs_box = err_box = gtk.VBox() self._docs_text_display = TextDisplay() self._docs_box.pack_start(gtk.Label(), False, False, LABEL_SPACING) self._docs_box.pack_start(get_title_label('Documentation'), False) self._docs_box.pack_start(self._docs_text_display, False) #Add the boxes vbox.pack_start(self._params_box, False) vbox.pack_start(self._error_box, False) vbox.pack_start(self._docs_box, False) #connect events self.connect('key-press-event', self._handle_key_press) self.connect('show', self._update_gui) #show all (performs initial gui update) self.show_all()
def __init__(self, block): """ SignalBlockParamsDialog contructor. @param block the signal block """ gtk.Dialog.__init__( self, title='Properties: %s' % block.get_name(), buttons=(gtk.STOCK_CLOSE, gtk.RESPONSE_CLOSE), ) self.block = block self.set_size_request(MIN_DIALOG_WIDTH, MIN_DIALOG_HEIGHT) vbox = gtk.VBox() #Add the title label vbox.pack_start(get_title_label('Parameters'), False) #Create the scrolled window to hold all the parameters scrolled_window = gtk.ScrolledWindow() scrolled_window.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) scrolled_window.add_with_viewport(vbox) self.vbox.pack_start(scrolled_window, True) #Error Messages for the block self._error_box = gtk.VBox() self._error_messages_text_display = TextDisplay() self._error_box.pack_start(gtk.Label(), False, False, 7) #spacing self._error_box.pack_start(get_title_label('Error Messages'), False) self._error_box.pack_start(self._error_messages_text_display, False) #Docs for the block self._docs_box = err_box = gtk.VBox() self._docs_text_display = TextDisplay() self._docs_box.pack_start(gtk.Label(), False, False, 7) #spacing self._docs_box.pack_start(get_title_label('Documentation'), False) self._docs_box.pack_start(self._docs_text_display, False) #Add all the parameters for param in self.block.get_params(): vbox.pack_start(param.get_input_object(self._handle_changed), False) #Add the error and docs box vbox.pack_start(self._error_box, False) vbox.pack_start(self._docs_box, False) #connect and show self.connect('key_press_event', self._handle_key_press) self.show_all() #initial update for param in self.block.get_params(): param.update() self._update()
def __init__(self, platform, action_handler_callback): """ MainWindow contructor Setup the menu, toolbar, flowgraph editor notebook, block selection window... """ self._platform = platform gen_opts = platform.get_block('options').get_param('generate_options') generate_mode_default = gen_opts.get_value() generate_modes = [(o.get_key(), o.get_name(), o.get_key() == generate_mode_default) for o in gen_opts.get_options()] # load preferences Preferences.load(platform) #setup window gtk.Window.__init__(self, gtk.WINDOW_TOPLEVEL) vbox = gtk.VBox() self.hpaned = gtk.HPaned() self.add(vbox) #create the menu bar and toolbar self.add_accel_group(Actions.get_accel_group()) self.menu_bar = Bars.MenuBar(generate_modes, action_handler_callback) vbox.pack_start(self.menu_bar, False) self.tool_bar = Bars.Toolbar(generate_modes, action_handler_callback) vbox.pack_start(self.tool_bar, False) vbox.pack_start(self.hpaned) #create the notebook self.notebook = gtk.Notebook() self.page_to_be_closed = None self.current_page = None self.notebook.set_show_border(False) self.notebook.set_scrollable(True) #scroll arrows for page tabs self.notebook.connect('switch-page', self._handle_page_change) #setup containers self.flow_graph_vpaned = gtk.VPaned() #flow_graph_box.pack_start(self.scrolled_window) self.flow_graph_vpaned.pack1(self.notebook) self.hpaned.pack1(self.flow_graph_vpaned) self.btwin = BlockTreeWindow(platform, self.get_flow_graph) self.hpaned.pack2(self.btwin, False) #dont allow resize #create the reports window self.text_display = TextDisplay() #house the reports in a scrolled window self.reports_scrolled_window = gtk.ScrolledWindow() self.reports_scrolled_window.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) self.reports_scrolled_window.add(self.text_display) self.reports_scrolled_window.set_size_request( -1, DEFAULT_REPORTS_WINDOW_WIDTH) self.flow_graph_vpaned.pack2(self.reports_scrolled_window, False) #dont allow resize #load preferences and show the main window self.resize(*Preferences.main_window_size()) self.flow_graph_vpaned.set_position( Preferences.reports_window_position()) self.hpaned.set_position(Preferences.blocks_window_position()) self.show_all() self.reports_scrolled_window.hide() self.btwin.hide()
def __init__(self, platform): """ MainWindow contructor Setup the menu, toolbar, flowgraph editor notebook, block selection window... """ self._platform = platform #setup window gtk.Window.__init__(self, gtk.WINDOW_TOPLEVEL) vbox = gtk.VBox() self.hpaned = gtk.HPaned() self.add(vbox) #create the menu bar and toolbar self.add_accel_group(Actions.get_accel_group()) vbox.pack_start(Bars.MenuBar(), False) vbox.pack_start(Bars.Toolbar(), False) vbox.pack_start(self.hpaned) #create the notebook self.notebook = gtk.Notebook() self.page_to_be_closed = None self.current_page = None self.notebook.set_show_border(False) self.notebook.set_scrollable(True) #scroll arrows for page tabs self.notebook.connect('switch-page', self._handle_page_change) #setup containers self.flow_graph_vpaned = gtk.VPaned() #flow_graph_box.pack_start(self.scrolled_window) self.flow_graph_vpaned.pack1(self.notebook) self.hpaned.pack1(self.flow_graph_vpaned) self.hpaned.pack2(BlockTreeWindow(platform, self.get_flow_graph), False) #dont allow resize #create the reports window self.text_display = TextDisplay() #house the reports in a scrolled window self.reports_scrolled_window = gtk.ScrolledWindow() self.reports_scrolled_window.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) self.reports_scrolled_window.add_with_viewport(self.text_display) self.reports_scrolled_window.set_size_request( -1, DEFAULT_REPORTS_WINDOW_WIDTH) self.flow_graph_vpaned.pack2(self.reports_scrolled_window, False) #dont allow resize #load preferences and show the main window Preferences.load(platform) self.resize(*Preferences.main_window_size()) self.flow_graph_vpaned.set_position( Preferences.reports_window_position()) self.hpaned.set_position(Preferences.blocks_window_position()) self.show_all()