コード例 #1
0
 def __init__(self, entry: Gtk.Widget, history):
     self.entry = entry
     if isinstance(entry, Gtk.ComboBoxText):
         self.get_text = entry.get_active_text()
     elif isinstance(entry, Gtk.Entry):
         self.get_text = entry.get_text()
     UndoableTextContainer.__init__(self, self.entry, history)
コード例 #2
0
    def register_widget(
        self,
        widget: Gtk.Widget,
        param_name: str,
        exportable: bool = True,
        desensitized: bool = False,
    ):

        if param_name in self._params:
            raise ValueError(
                "register_widget cannot overwrite existing parameters!"
            )

        if isinstance(widget, Gtk.Switch):
            self._params[param_name] = widget.get_active()
            self._signal_ids[param_name] = widget.connect(
                "notify::active", self._switch_value_changed_cb, param_name
            )
        elif isinstance(widget, Gtk.SpinButton):
            self._params[param_name] = widget.get_value()
            self._signal_ids[param_name] = widget.connect(
                "value-changed", self._spinbutton_value_changed_cb, param_name
            )
        elif isinstance(widget, Gtk.CheckButton):
            self._params[param_name] = widget.get_active()
            self._signal_ids[param_name] = widget.connect(
                "toggled", self._checkbutton_toggled_cb, param_name
            )
        elif isinstance(widget, Gtk.FileChooserButton):
            self._params[param_name] = widget.get_filename()
            self._signal_ids[param_name] = widget.connect(
                "selection-changed",
                self._filechooserbutton_selection_changed_cb,
                param_name,
            )
        elif isinstance(widget, Gtk.Entry):
            self._params[param_name] = widget.get_text().strip()
            self._signal_ids[param_name] = widget.connect(
                "changed", self._entry_changed_cb, param_name
            )
        elif isinstance(widget, Gtk.ComboBoxText):
            self._params[param_name] = widget.get_active_text()
            self._signal_ids[param_name] = widget.connect(
                "changed", self._combobox_changed_cb, param_name
            )
        else:
            raise NotImplementedError(
                f"register_widget: no support for {type(widget).__name__}"
            )

        self._widgets[param_name] = widget

        if exportable:
            self._exportable_params.append(param_name)

        if desensitized:
            self._desensitized_widgets.append(widget)

        return widget