def GconfComboBox(key=None, texts=None, values=None): def value_changed_cb(widget, setting): text = widget.get_active_text() setting.get_client().set_value(setting.get_key(), setting.values[setting.texts.index(text)]) combobox = gtk.combo_box_new_text() setting = GconfSetting(key=key) setting.texts = texts setting.values = values for text in texts: combobox.append_text(text) if setting.get_value() in values: combobox.set_active(values.index(setting.get_value())) combobox.connect("changed", value_changed_cb, setting) return combobox