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)
示例#2
0
 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()
示例#3
0
    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()
示例#4
0
 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()
示例#5
0
    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()