Exemple #1
0
def ask_for_name(widget, title, default):
    window = widget.get_toplevel()
    d = Gtk.Dialog(title, window, Gtk.DialogFlags.MODAL,
                   (Gtk.STOCK_CANCEL, Gtk.ResponseType.REJECT, Gtk.STOCK_OK,
                    Gtk.ResponseType.ACCEPT))
    d.set_position(Gtk.WindowPosition.CENTER_ON_PARENT)

    hbox = Gtk.HBox()
    hbox.set_property("spacing", widgets.SPACING)
    hbox.set_border_width(widgets.SPACING)

    d.vbox.pack_start(hbox, True, True, 0)
    hbox.pack_start(Gtk.Label(label=_('Name')), False, False, 0)

    if default is None:
        default = ""

    d.e = e = Gtk.Entry()
    e.set_size_request(250, -1)
    e.set_text(default)
    e.select_region(0, len(default))
    e.set_input_hints(Gtk.InputHints.UPPERCASE_WORDS)
    e.set_input_purpose(Gtk.InputPurpose.FREE_FORM)

    e.connect("activate", _entry_activate_dialog_response_cb, d)

    hbox.pack_start(e, True, True, 0)
    d.vbox.show_all()
    if d.run() == Gtk.ResponseType.ACCEPT:
        result = d.e.get_text()
        if isinstance(result, bytes):
            result = result.decode('utf-8')
    else:
        result = None
    d.destroy()
    return result
    def _get_gui_item(self):
        entry = Gtk.Entry()
        entry.set_buffer(self._buf)

        def _plus_cb(b):
            nn = str(self.get_value() + 1)
            self._buf.set_text(nn, len(nn))

        plus = Gtk.Button.new_with_label("+")
        plus.connect("clicked", _plus_cb)

        def _minus_cb(b):
            nn = str(self.get_value() - 1)
            self._buf.set_text(nn, len(nn))

        minus = Gtk.Button.new_with_label("-")
        minus.connect("clicked", _minus_cb)

        grid = Gtk.Grid()
        grid.attach(entry, 0, 0, 1, 1)
        grid.attach(minus, 1, 0, 1, 1)
        grid.attach(plus, 2, 0, 1, 1)

        return grid
    def __init__(self):
        super(AccelMapEditor, self).__init__()
        self.ui_manager = None
        self.connect("show", self._show_cb)

        self.set_row_spacing(5)

        store = Gtk.ListStore(*self._COLUMN_TYPES)
        self._store = store
        self._action_labels = {}
        self._accel_labels = {}

        self._filter_entry = Gtk.Entry()
        self._filter_entry.set_placeholder_text(
            C_('placeholder for keymap filtering', 'Filter'))
        self._filter_entry.connect('changed', self._entry_changed)
        self.attach(self._filter_entry, 0, 0, 1, 1)
        self._filter_txt = None

        # Filter
        self._filter = store.filter_new()
        self._filter.set_visible_func(self._filter_check)

        scrolls = Gtk.ScrolledWindow()
        scrolls.set_shadow_type(Gtk.ShadowType.IN)
        view = Gtk.TreeView()
        view.set_model(self._filter)
        view.set_size_request(480, 320)
        view.set_hexpand(True)
        view.set_vexpand(True)
        scrolls.add(view)
        self.attach(scrolls, 0, 1, 1, 1)
        view.set_headers_clickable(True)
        view.set_enable_search(True)
        view.set_search_column(self._SEARCH_TEXT_COLUMN)
        view.set_search_equal_func(self._view_search_equal_cb)
        self._view = view

        cell = Gtk.CellRendererText()
        cell.set_property("ellipsize", Pango.EllipsizeMode.END)
        cell.set_property("editable", False)
        cell.set_property("ypad", 8)
        cell.set_property("xpad", 8)
        col = Gtk.TreeViewColumn(_("Action"), cell)
        col.add_attribute(cell, "markup", self._ACTION_LABEL_COLUMN)
        col.set_expand(True)
        col.set_resizable(True)
        col.set_min_width(200)
        col.set_sort_column_id(self._ACTION_LABEL_SORT_COLUMN)
        view.append_column(col)

        cell = Gtk.CellRendererText()
        cell.set_property("ellipsize", Pango.EllipsizeMode.END)
        cell.set_property("editable", True)
        cell.set_property("ypad", 8)
        cell.set_property("xpad", 8)
        cell.connect("edited", self._accel_edited_cb)
        cell.connect("editing-started", self._accel_editing_started_cb)
        # TRANSLATORS: Refers to a keyboard key combination, such as "Ctrl+G".
        # TRANSLATORS: Second column label in the keybinding preferences tab.
        col = Gtk.TreeViewColumn(_("Key combination"), cell)
        col.add_attribute(cell, "markup", self._ACCEL_LABEL_COLUMN)
        col.set_expand(False)
        col.set_resizable(True)
        col.set_min_width(75)
        col.set_sort_column_id(self._ACCEL_LABEL_SORT_COLUMN)
        view.append_column(col)

        store.set_sort_column_id(
            self._ACTION_LABEL_SORT_COLUMN,
            Gtk.SortType.ASCENDING,
        )