Beispiel #1
0
    def build_menu(self, node, label, option):
        """Build an OptionMenu widget, only one item of which may be selected.
		<menu name='...' label='...'>
		  <item value='...' label='...'/>
		  <item value='...' label='...'/>
		</menu>"""

        values = []

        has_combo = hasattr(g, 'combo_box_new_text')
        if has_combo:
            option_menu = g.combo_box_new_text()
            option_menu.get_history = option_menu.get_active
            option_menu.set_history = option_menu.set_active
        else:
            option_menu = g.OptionMenu()
            menu = g.Menu()

        if label:
            box = g.HBox(False, 4)
            label_wid = self.make_sized_label(label)
            label_wid.set_alignment(1.0, 0.5)
            box.pack_start(label_wid, False, True, 0)
            box.pack_start(option_menu, True, True, 0)
        else:
            box = None

        #self.may_add_tip(option_menu, node)

        for item in node.getElementsByTagName('item'):
            assert item.hasAttribute('value')
            value = item.getAttribute('value')
            label_item = self.trans(item.getAttribute('label')) or value

            if has_combo:
                option_menu.append_text(label_item)
            else:
                menu.append(g.MenuItem(label_item))

            values.append(value)

        if not has_combo:
            menu.show_all()
            option_menu.set_menu(menu)
        option_menu.connect('changed', lambda e: self.check_widget(option))

        def get():
            return values[option_menu.get_history()]

        def set():
            try:
                option_menu.set_history(values.index(option.value))
            except ValueError:
                print "Value '%s' not in combo list" % option.value

        self.handlers[option] = (get, set)

        return [box or option_menu]
Beispiel #2
0
	def build_menu(self, node, label, option):
		"""Build an OptionMenu widget, only one item of which may be selected.
		<menu name='...' label='...'>
		  <item value='...' label='...'/>
		  <item value='...' label='...'/>
		</menu>"""

		values = []

		has_combo = hasattr(g, 'combo_box_new_text')
		if has_combo:
			option_menu = g.combo_box_new_text()
			option_menu.get_history = option_menu.get_active
			option_menu.set_history = option_menu.set_active
		else:
			option_menu = g.OptionMenu()
			menu = g.Menu()

		if label:
			box = g.HBox(False, 4)
			label_wid = self.make_sized_label(label)
			label_wid.set_alignment(1.0, 0.5)
			box.pack_start(label_wid, False, True, 0)
			box.pack_start(option_menu, True, True, 0)
		else:
			box = None

		#self.may_add_tip(option_menu, node)

		for item in node.getElementsByTagName('item'):
			assert item.hasAttribute('value')
			value = item.getAttribute('value')
			label_item = self.trans(item.getAttribute('label')) or value

			if has_combo:
				option_menu.append_text(label_item)
			else:
				menu.append(g.MenuItem(label_item))

			values.append(value)

		if not has_combo:
			menu.show_all()
			option_menu.set_menu(menu)
		option_menu.connect('changed', lambda e: self.check_widget(option))

		def get():
			return values[option_menu.get_history()]

		def set():
			try:
				option_menu.set_history(values.index(option.value))
			except ValueError:
				print "Value '%s' not in combo list" % option.value

		self.handlers[option] = (get, set)

		return [box or option_menu]
Beispiel #3
0
	def build_main_area(self):
		self.vbox.add(self.save_area)

		frame = g.Frame(None)
		frame.set_shadow_type(g.SHADOW_NONE)
		if use_combo_box:
			self.operation = g.combo_box_new_text()
		else:
			self.operation = g.OptionMenu()
		frame.add(self.operation)
		self.vbox.pack_start(frame, False, True, 0)
		frame.set_border_width(3)
		frame.show_all()
		self.updating = 0

		self.delete_choice = g.CheckButton(_('_Delete file afterwards?'))
		self.vbox.pack_start(self.delete_choice, True, True, 0)

		if not use_combo_box:
			self.ops_menu = g.Menu()
			self.operation.set_menu(self.ops_menu)
		else:
			self.ops_menu = None
Beispiel #4
0
    def make_advanced_box(self):
        # The advanced settings
        expander = g.Expander(_('Advanced Options'))
        expandvbox = g.VBox(FALSE, 4)
        expander.add(expandvbox)

        sound_frame = g.Frame(_('Sound'))
        #sound_frame.set_shadow_type(g.SHADOW_NONE)
        label_widget = sound_frame.get_label_widget()
        label_widget.set_markup('<b>' + _('Sound') + '</b>')

        expandvbox.pack_start(sound_frame, FALSE, TRUE, 0)

        sound_box = g.HBox(FALSE, 4)
        sound_box.set_border_width(8)
        sound_frame.add(sound_box)

        sound_choice = g.combo_box_new_text()
        self.sound_choice = sound_choice
        sound_choice.append_text(_('Use default sound'))
        sound_choice.append_text(_('Use custom sound'))
        sound_choice.append_text(_('Disabled'))
        sound_choice.set_active(0)
        sound_box.pack_start(sound_choice, FALSE, FALSE, 0)

        #sound_entry = g.Entry()
        sound_entry = g.FileChooserButton('Sound File')
        self.sound_entry = sound_entry
        sound_entry.set_sensitive(False)
        sound_box.pack_start(sound_entry, TRUE, TRUE, 0)

        sound_choice.connect('changed', self.sound_choice_changed)

        # TODO: More advanced options can be added to the 'expandbox' vbox, each
        # in its own frame.

        return expander