summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Persch <chpe@src.gnome.org>2022-04-08 21:50:18 +0200
committerChristian Persch <chpe@src.gnome.org>2022-04-08 21:50:18 +0200
commit9a3769b22da64a040f8ab306f25cecc3e25e2305 (patch)
treeef7339b8e3a563e0737aa98ce04d29d89c50b3b9
parent16e65aa7bea7b5781248be6fa904e3ee1077efdc (diff)
downloadvte-9a3769b22da64a040f8ab306f25cecc3e25e2305.tar.gz
bindings: vala: Remove the test app
It only existed anymore to test that comping a vala programme with the vte vapi works, but it's been broken by vala changes a couple of times, and also is too much work to port to gtk4. So just remove it.
-rw-r--r--bindings/vala/app.gresource.xml23
-rw-r--r--bindings/vala/app.ui152
-rw-r--r--bindings/vala/app.vala1099
-rw-r--r--bindings/vala/config.vapi5
-rw-r--r--bindings/vala/search-popover.ui249
5 files changed, 0 insertions, 1528 deletions
diff --git a/bindings/vala/app.gresource.xml b/bindings/vala/app.gresource.xml
deleted file mode 100644
index 65ee4e92..00000000
--- a/bindings/vala/app.gresource.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright © 2014 Christian Persch
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <https://www.gnu.org/licenses/>.
--->
-<gresources>
- <gresource prefix="/org/gnome/vte/test/app">
- <file alias="ui/window.ui" compressed="true" preprocess="xml-stripblanks">app.ui</file>
- <file alias="ui/search-popover.ui" compressed="true" preprocess="xml-stripblanks">search-popover.ui</file>
- </gresource>
-</gresources>
diff --git a/bindings/vala/app.ui b/bindings/vala/app.ui
deleted file mode 100644
index bfcedd5f..00000000
--- a/bindings/vala/app.ui
+++ /dev/null
@@ -1,152 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.19.0 -->
-<interface>
- <requires lib="gtk+" version="3.10"/>
- <template class="TestWindow" parent="GtkApplicationWindow">
- <property name="can_focus">False</property>
- <property name="role">vte-terminal</property>
- <property name="icon_name">utilities-terminal</property>
- <child>
- <object class="GtkBox" id="terminal_box">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <placeholder/>
- </child>
- <child>
- <object class="GtkScrollbar" id="scrollbar">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <property name="restrict_to_fill_level">False</property>
- <property name="fill_level">0</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">end</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- </child>
- <child type="titlebar">
- <object class="GtkHeaderBar" id="headerbar1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="show_close_button">True</property>
- <property name="decoration_layout">:close</property>
- <child>
- <object class="GtkButton" id="copy_button">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_text" translatable="yes">Copy</property>
- <property name="action_name">win.copy</property>
- <property name="action_target">"text"</property>
- <property name="focus_on_click">False</property>
- <child>
- <object class="GtkImage" id="image2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="icon_name">edit-copy-symbolic</property>
- <property name="use_fallback">True</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="paste_button">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_text" translatable="yes">Paste</property>
- <property name="action_name">win.paste</property>
- <property name="focus_on_click">False</property>
- <child>
- <object class="GtkImage" id="image3">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="icon_name">edit-paste-symbolic</property>
- <property name="use_fallback">True</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="position">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkToggleButton" id="find_button">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="focus_on_click">False</property>
- <child>
- <object class="GtkImage" id="image5">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="icon_name">edit-find-symbolic</property>
- <property name="use_fallback">True</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="position">4</property>
- </packing>
- </child>
- <child type="title">
- <placeholder/>
- </child>
- <child>
- <object class="GtkMenuButton" id="gear_button">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="focus_on_click">False</property>
- <child>
- <object class="GtkImage" id="image1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="icon_name">open-menu-symbolic</property>
- <property name="use_fallback">True</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="pack_type">end</property>
- <property name="position">3</property>
- </packing>
- </child>
- <child>
- <object class="GtkBox" id="notifications_box">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkImage" id="readonly_emblem">
- <property name="can_focus">False</property>
- <property name="tooltip_text" translatable="yes">Read-only</property>
- <property name="icon_name">emblem-readonly</property>
- <property name="use_fallback">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="pack_type">end</property>
- <property name="position">4</property>
- </packing>
- </child>
- </object>
- </child>
- </template>
-</interface>
diff --git a/bindings/vala/app.vala b/bindings/vala/app.vala
deleted file mode 100644
index 4bcb5804..00000000
--- a/bindings/vala/app.vala
+++ /dev/null
@@ -1,1099 +0,0 @@
-/*
- * Copyright © 2001,2002 Red Hat, Inc.
- * Copyright © 2014 Christian Persch
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <https://www.gnu.org/licenses/>.
- */
-
-namespace Test
-{
-
-[GtkTemplate (ui = "/org/gnome/vte/test/app/ui/search-popover.ui")]
-class SearchPopover : Gtk.Popover
-{
- public Vte.Terminal terminal { get; construct set; }
-
- [GtkChild] private unowned Gtk.SearchEntry search_entry;
- [GtkChild] private unowned Gtk.Button search_prev_button;
- [GtkChild] private unowned Gtk.Button search_next_button;
- [GtkChild] private unowned Gtk.Button close_button;
- [GtkChild] private unowned Gtk.ToggleButton match_case_checkbutton;
- [GtkChild] private unowned Gtk.ToggleButton entire_word_checkbutton;
- [GtkChild] private unowned Gtk.ToggleButton regex_checkbutton;
- [GtkChild] private unowned Gtk.ToggleButton wrap_around_checkbutton;
- [GtkChild] private unowned Gtk.Button reveal_button;
- [GtkChild] private unowned Gtk.Revealer revealer;
-
- private bool regex_caseless = false;
- private string? regex_pattern = null;
- private bool has_regex = false;
-
- public SearchPopover(Vte.Terminal term,
- Gtk.Widget relative_to)
- {
- Object(relative_to: relative_to, terminal: term);
-
- close_button.clicked.connect(() => { hide(); });
- reveal_button.bind_property("active", revealer, "reveal-child");
-
-#if GTK_3_16
- search_entry.next_match.connect(() => { search(false); });
- search_entry.previous_match.connect(() => { search(true); });
-#endif
- search_entry.search_changed.connect(() => { update_regex(); });
-
- search_next_button.clicked.connect(() => { search(false); });
- search_prev_button.clicked.connect(() => { search(true); });
-
- match_case_checkbutton.toggled.connect(() => { update_regex(); });
- entire_word_checkbutton.toggled.connect(() => { update_regex(); });
- regex_checkbutton.toggled.connect(() => { update_regex(); });
-
- wrap_around_checkbutton.toggled.connect(() => {
- terminal.search_set_wrap_around(wrap_around_checkbutton.active);
- });
-
- update_sensitivity();
- }
-
- private bool have_regex()
- {
- return has_regex;
- }
-
- private void update_sensitivity()
- {
- bool can_search = have_regex();
-
- search_prev_button.set_sensitive(can_search);
- search_next_button.set_sensitive(can_search);
- }
-
- private void update_regex()
- {
- string search_text;
- string pattern = null;
- bool caseless = false;
- GLib.Regex? gregex = null;
- Vte.Regex? regex = null;
-
- search_text = search_entry.get_text();
- caseless = !match_case_checkbutton.active;
-
- if (regex_checkbutton.active) {
- pattern = search_text;
- } else {
- pattern = GLib.Regex.escape_string(search_text);
- }
-
- if (entire_word_checkbutton.active)
- pattern = "\\b" + pattern + "\\b";
-
- if (caseless == regex_caseless &&
- pattern == regex_pattern)
- return;
-
- regex_pattern = null;
- regex_caseless = caseless;
-
- if (search_text.length != 0) {
- try {
- if (!Options.no_pcre) {
- uint32 flags;
-
- flags = 0x40080400u /* PCRE2_UTF | PCRE2_NO_UTF_CHECK | PCRE2_MULTILINE */;
- if (caseless)
- flags |= 0x00000008u; /* PCRE2_CASELESS */
- regex = new Vte.Regex.for_search(pattern, pattern.length, flags);
-
- try {
- regex.jit(0x00000001u /* PCRE2_JIT_COMPLETE */);
- regex.jit(0x00000002u /* PCRE2_JIT_PARTIAL_SOFT */);
- } catch (Error e) {
- if (e.code != -45 /* PCRE2_ERROR_JIT_BADOPTION */) /* JIT not supported */
- printerr("JITing regex \"%s\" failed: %s\n", pattern, e.message);
- }
- } else {
- GLib.RegexCompileFlags flags;
-
- flags = GLib.RegexCompileFlags.OPTIMIZE |
- GLib.RegexCompileFlags.MULTILINE;
- if (caseless)
- flags |= GLib.RegexCompileFlags.CASELESS;
-
- gregex = new GLib.Regex(pattern, flags, 0);
- }
-
- regex_pattern = pattern;
- search_entry.set_tooltip_text(null);
- } catch (Error e) {
- regex = null;
- gregex = null;
- search_entry.set_tooltip_text(e.message);
- }
- } else {
- regex = null;
- gregex = null;
- search_entry.set_tooltip_text(null);
- }
-
- if (!Options.no_pcre) {
- has_regex = regex != null;
- terminal.search_set_regex(regex, 0);
- } else {
- has_regex = gregex != null;
- terminal.search_set_gregex(gregex, 0);
- }
-
- update_sensitivity();
- }
-
- private void search(bool backward)
- {
- if (!have_regex())
- return;
-
- if (backward)
- terminal.search_find_previous();
- else
- terminal.search_find_next();
- }
-
-} /* class SearchPopover */
-
-[GtkTemplate (ui = "/org/gnome/vte/test/app/ui/window.ui")]
-class Window : Gtk.ApplicationWindow
-{
- [GtkChild] private unowned Gtk.Scrollbar scrollbar;
- [GtkChild] private unowned Gtk.Box terminal_box;
- /* [GtkChild] private unowned Gtk.Box notifications_box; */
- [GtkChild] private unowned Gtk.Widget readonly_emblem;
- /* [GtkChild] private unowned Gtk.Button copy_button; */
- /* [GtkChild] private unowned Gtk.Button paste_button; */
- [GtkChild] private unowned Gtk.ToggleButton find_button;
- [GtkChild] private unowned Gtk.MenuButton gear_button;
-
- private Vte.Terminal terminal;
- private Gtk.Clipboard clipboard;
- private GLib.Pid child_pid;
- private SearchPopover search_popover;
- private uint launch_idle_id;
-
- private string[] builtin_dingus = {
- "(((gopher|news|telnet|nntp|file|http|ftp|https)://)|(www|ftp)[-A-Za-z0-9]*\\.)[-A-Za-z0-9\\.]+(:[0-9]*)?",
- "(((gopher|news|telnet|nntp|file|http|ftp|https)://)|(www|ftp)[-A-Za-z0-9]*\\.)[-A-Za-z0-9\\.]+(:[0-9]*)?/[-A-Za-z0-9_\\$\\.\\+\\!\\*\\(\\),;:@&=\\?/~\\#\\%]*[^]'\\.}>\\) ,\\\"]"
- };
-
- private const GLib.ActionEntry[] action_entries = {
- { "copy", action_copy_cb, "s" },
- { "copy-match", action_copy_match_cb, "s" },
- { "paste", action_paste_cb },
- { "reset", action_reset_cb, "b" },
- { "find", action_find_cb },
- { "quit", action_quit_cb }
- };
-
- public Window(App app)
- {
- Object(application: app);
-
- /* Create terminal and connect scrollbar */
- terminal = new Vte.Terminal();
- var margin = Options.extra_margin;
- if (margin > 0) {
- terminal.margin_start =
- terminal.margin_end =
- terminal.margin_top =
- terminal.margin_bottom = margin;
- }
-
- scrollbar.set_adjustment(terminal.get_vadjustment());
-
- /* Create actions */
- add_action_entries (action_entries, this);
-
- /* Property actions */
- var action = new GLib.PropertyAction ("input-enabled", terminal, "input-enabled");
- add_action(action);
- action.notify["state"].connect((obj, pspec) => {
- GLib.Action a = (GLib.Action)obj;
- readonly_emblem.set_visible(!a.state.get_boolean());
- });
-
- /* Find */
- search_popover = new SearchPopover(terminal, find_button);
- search_popover.closed.connect(() => {
- if (find_button.active)
- find_button.set_active(false);
- });
-
- find_button.toggled.connect(() => {
- var active = find_button.active;
- if (search_popover.visible != active)
- search_popover.set_visible(active);
- });
-
- /* Gear menu */
- /* FIXME: figure out how to put this into the .ui file */
- var menu = new GLib.Menu();
-
- var section = new GLib.Menu();
- section.append("_Copy", "win.copy");
- section.append("_Paste", "win.paste");
- section.append("_Find…", "win.find");
- menu.append_section(null, section);
-
- section = new GLib.Menu();
- section.append("_Reset", "win.reset(false)");
- section.append("Reset and C_lear", "win.reset(true)");
- section.append("_Input enabled", "win.input-enabled");
- menu.append_section(null, section);
-
- section = new GLib.Menu();
- section.append("_Quit", "win.quit");
- menu.append_section(null, section);
-
- gear_button.set_menu_model(menu);
-
- /* set_resize_mode(Gtk.ResizeMode.IMMEDIATE); */
-
- clipboard = get_clipboard(Gdk.SELECTION_CLIPBOARD);
- clipboard.owner_change.connect(clipboard_owner_change_cb);
-
- title = "Terminal";
-
- /* Set ARGB visual */
- if (Options.transparency_percent != 0) {
- if (!Options.no_argb_visual) {
- var screen = get_screen();
- Gdk.Visual? visual = screen.get_rgba_visual();
- if (visual != null)
- set_visual(visual);
- }
-
- /* Without this transparency doesn't work; see bug #729884. */
- app_paintable = true;
- }
-
- /* Signals */
- terminal.popup_menu.connect(popup_menu_cb);
- terminal.button_press_event.connect(button_press_event_cb);
- terminal.char_size_changed.connect(char_size_changed_cb);
- terminal.child_exited.connect(child_exited_cb);
- terminal.decrease_font_size.connect(decrease_font_size_cb);
- terminal.deiconify_window.connect(deiconify_window_cb);
- terminal.icon_title_changed.connect(icon_title_changed_cb);
- terminal.iconify_window.connect(iconify_window_cb);
- terminal.increase_font_size.connect(increase_font_size_cb);
- terminal.lower_window.connect(lower_window_cb);
- terminal.maximize_window.connect(maximize_window_cb);
- terminal.move_window.connect(move_window_cb);
- terminal.raise_window.connect(raise_window_cb);
- terminal.realize.connect(realize_cb);
- terminal.refresh_window.connect(refresh_window_cb);
- terminal.resize_window.connect(resize_window_cb);
- terminal.restore_window.connect(restore_window_cb);
- terminal.selection_changed.connect(selection_changed_cb);
- terminal.window_title_changed.connect(window_title_changed_cb);
- if (Options.object_notifications)
- terminal.notify.connect(notify_cb);
-
- /* Settings */
- if (Options.no_double_buffer)
- terminal.set_double_buffered(false);
-
- if (Options.encoding != null) {
- try {
- terminal.set_encoding(Options.encoding);
- } catch (Error e) {
- printerr("Failed to set encoding: %s\n", e.message);
- }
- }
-
- if (Options.word_char_exceptions != null)
- terminal.set_word_char_exceptions(Options.word_char_exceptions);
-
- terminal.set_allow_hyperlink(!Options.no_hyperlink);
- terminal.set_audible_bell(Options.audible);
- terminal.set_cjk_ambiguous_width(Options.get_cjk_ambiguous_width());
- terminal.set_cursor_blink_mode(Options.get_cursor_blink_mode());
- terminal.set_cursor_shape(Options.get_cursor_shape());
- terminal.set_mouse_autohide(true);
- terminal.set_rewrap_on_resize(!Options.no_rewrap);
- terminal.set_scroll_on_output(false);
- terminal.set_scroll_on_keystroke(true);
- terminal.set_scrollback_lines(Options.scrollback_lines);
-
- /* Style */
- if (Options.font_string != null) {
- var desc = Pango.FontDescription.from_string(Options.font_string);
- terminal.set_font(desc);
- }
-
- terminal.set_colors(Options.get_color_fg(),
- Options.get_color_bg(),
- null);
- terminal.set_color_cursor(Options.get_color_cursor_background());
- terminal.set_color_cursor_foreground(Options.get_color_cursor_foreground());
- terminal.set_color_highlight(Options.get_color_hl_bg());
- terminal.set_color_highlight_foreground(Options.get_color_hl_fg());
-
- /* Dingus */
- if (!Options.no_builtin_dingus)
- add_dingus(builtin_dingus);
- if (Options.dingus != null)
- add_dingus(Options.dingus);
-
- /* Done! */
- terminal_box.pack_start(terminal);
- terminal.show();
-
- update_paste_sensitivity();
- update_copy_sensitivity();
-
- terminal.grab_focus();
-
- assert(!get_realized());
- }
-
- private void add_dingus(string[] dingus)
- {
- const Gdk.CursorType cursors[] = { Gdk.CursorType.GUMBY, Gdk.CursorType.HAND1 };
-
- for (int i = 0; i < dingus.length; ++i) {
- try {
- int tag;
-
- if (!Options.no_pcre) {
- Vte.Regex regex;
-
- regex = new Vte.Regex.for_match(dingus[i], dingus[i].length,
- 0x40080408u /* PCRE2_UTF | PCRE2_NO_UTF_CHECK | PCRE2_CASELESS | PCRE2_MULTILINE */);
- try {
- regex.jit(0x00000001u /* PCRE2_JIT_COMPLETE */);
- regex.jit(0x00000002u /* PCRE2_JIT_PARTIAL_SOFT */);
- } catch (Error e) {
- if (e.code != -45 /* PCRE2_ERROR_JIT_BADOPTION */) /* JIT not supported */
- printerr("JITing regex \"%s\" failed: %s\n", dingus[i], e.message);
- }
-
- tag = terminal.match_add_regex(regex, 0);
- } else {
- GLib.Regex regex;
-
- regex = new GLib.Regex(dingus[i],
- GLib.RegexCompileFlags.OPTIMIZE |
- GLib.RegexCompileFlags.MULTILINE,
- 0);
- tag = terminal.match_add_gregex(regex, 0);
- }
-
- terminal.match_set_cursor_type(tag, cursors[i % cursors.length]);
- } catch (Error e) {
- printerr("Failed to compile regex \"%s\": %s\n", dingus[i], e.message);
- }
- }
- }
-
- private void adjust_font_size(double factor)
- {
- var columns = terminal.get_column_count();
- var rows = terminal.get_row_count();
-
- terminal.set_font_scale(terminal.get_font_scale() * factor);
-
- update_geometry();
- resize_to_geometry((int)columns, (int)rows);
- }
-
- public void apply_geometry()
- {
- /* The terminal needs to be realized first, so that when parsing the
- * geometry, the right geometry hints are already in place.
- */
- terminal.realize();
-
- if (Options.geometry != null) {
- if (parse_geometry(Options.geometry)) {
- /* After parse_geometry(), we can get the default size in
- * width/height increments, i.e. in grid size.
- */
- int columns, rows;
- get_default_size(out columns, out rows);
- terminal.set_size(columns, rows);
- resize_to_geometry(columns, rows);
- } else
- printerr("Failed to parse geometry spec \"%s\"\n", Options.geometry);
- } else {
- /* In GTK+ 3.0, the default size of a window comes from its minimum
- * size not its natural size, so we need to set the right default size
- * explicitly */
- set_default_geometry((int)terminal.get_column_count(),
- (int)terminal.get_row_count());
- }
- }
-
- private void launch_command(string command) throws Error
- {
- string[] argv;
-
- Shell.parse_argv(command, out argv);
- launch_idle_id = GLib.Idle.add(() => {
- try {
- terminal.spawn_sync(Vte.PtyFlags.DEFAULT,
- Options.working_directory,
- argv,
- Options.environment,
- GLib.SpawnFlags.SEARCH_PATH,
- null, /* child setup */
- out child_pid,
- null /* cancellable */);
- print("Fork succeeded, PID %d\n", child_pid);
- } catch (Error e) {
- printerr("Failed to fork: %s\n", e.message);
- }
- launch_idle_id = 0;
- return false;
- });
- }
-
- private void launch_shell() throws Error
- {
- string? shell;
-
- shell = Vte.get_user_shell();
- if (shell == null || shell[0] == '\0')
- shell = Environment.get_variable("SHELL");
- if (shell == null || shell[0] == '\0')
- shell = "/bin/sh";
-
- launch_command(shell);
- }
-
- private void fork() throws Error
- {
- Vte.Pty pty;
- Posix.pid_t pid;
-
- pty = new Vte.Pty.sync(Vte.PtyFlags.DEFAULT, null);
-
- pid = Posix.fork();
-
- switch (pid) {
- case -1: /* error */
- printerr("Error forking: %m");
- break;
- case 0: /* child */ {
- pty.child_setup();
-
- for (int i = 0; ; i++) {
- switch (i % 3) {
- case 0:
- case 1:
- print("%d\n", i);
- break;
- case 2:
- printerr("%d\n", i);
- break;
- }
- Posix.sleep(1);
- }
- }
- default: /* parent */
- terminal.set_pty(pty);
- terminal.watch_child(pid);
- print("Child PID is %d (mine is %d).\n", (int)pid, (int)Posix.getpid());
- break;
- }
- }
-
- public void launch()
- {
- try {
- if (Options.command != null)
- launch_command(Options.command);
- else if (!Options.no_shell)
- launch_shell();
- else
- fork();
- } catch (Error e) {
- printerr("Error: %s\n", e.message);
- }
- }
-
- private void update_copy_sensitivity()
- {
- var action = lookup_action("copy") as GLib.SimpleAction;
- action.set_enabled(terminal.get_has_selection());
- }
-
- private void update_paste_sensitivity()
- {
- Gdk.Atom[] targets;
- bool can_paste;
-
- if (clipboard.wait_for_targets(out targets))
- can_paste = Gtk.targets_include_text(targets);
- else
- can_paste = false;
-
- var action = lookup_action("paste") as GLib.SimpleAction;
- action.set_enabled(can_paste);
- }
-
- private void update_geometry()
- {
- if (Options.no_geometry_hints)
- return;
- if (!terminal.get_realized())
- return;
-
- terminal.set_geometry_hints_for_window(this);
- }
-
- /* Callbacks */
-
- private void action_copy_cb(GLib.SimpleAction action, GLib.Variant? parameter)
- {
- size_t len;
- unowned string str = parameter.get_string(out len);
-
- terminal.copy_clipboard_format(str == "html" ? Vte.Format.HTML : Vte.Format.TEXT);
- }
-
- private void action_copy_match_cb(GLib.SimpleAction action, GLib.Variant? parameter)
- {
- size_t len;
- unowned string str = parameter.get_string(out len);
- clipboard.set_text(str, (int)len);
- }
-
- private void action_paste_cb()
- {
- terminal.paste_clipboard();
- }
-
- private void action_reset_cb(GLib.SimpleAction action, GLib.Variant? parameter)
- {
- bool clear;
- Gdk.ModifierType modifiers;
-
- if (parameter != null) {
- clear = parameter.get_boolean();
- } else if (Gtk.get_current_event_state(out modifiers))
- clear = (modifiers & Gdk.ModifierType.CONTROL_MASK) != 0;
- else
- clear = false;
-
- terminal.reset(true, clear);
- }
-
- private void action_find_cb()
- {
- find_button.set_active(true);
- }
-
- private void action_quit_cb()
- {
- destroy();
- }
-
- private bool popup_menu_cb()
- {
- return show_context_menu(0, Gtk.get_current_event_time(), null);
- }
-
- private bool button_press_event_cb(Gtk.Widget widget, Gdk.EventButton event)
- {
- if (event.button != 3)
- return false;
-
- return show_context_menu(event.button, event.time, event);
- }
-
- private bool show_context_menu(uint button, uint32 timestamp, Gdk.Event? event)
- {
- if (Options.no_context_menu)
- return false;
-
- var menu = new GLib.Menu();
- menu.append("_Copy", "win.copy::text");
- menu.append("Copy As _HTML", "win.copy::html");
-
-#if VALA_0_24
- if (event != null) {
- var hyperlink = terminal.hyperlink_check_event(event);
- if (hyperlink != null)
- menu.append("Copy _Hyperlink", "win.copy-match::" + hyperlink);
- var match = terminal.match_check_event(event, null);
- if (match != null)
- menu.append("Copy _Match", "win.copy-match::" + match);
- }
-#endif
-
- menu.append("_Paste", "win.paste");
-
- var popup = new Gtk.Menu.from_model(menu);
- popup.attach_to_widget(this, null);
- popup.popup(null, null, null, button, timestamp);
- if (button == 0)
- popup.select_first(true);
-
- return true;
- }
-
- private void char_size_changed_cb(Vte.Terminal terminal, uint width, uint height)
- {
- update_geometry();
- }
-
- private void child_exited_cb(Vte.Terminal terminal, int status)
- {
- printerr("Child exited with status %x\n", status);
-
- if (Options.output_filename != null) {
- try {
- var file = GLib.File.new_for_commandline_arg(Options.output_filename);
- var stream = file.replace(null, false, GLib.FileCreateFlags.NONE, null);
- terminal.write_contents_sync(stream, Vte.WriteFlags.DEFAULT, null);
- } catch (Error e) {
- printerr("Failed to write output to \"%s\": %s\n",
- Options.output_filename, e.message);
- }
- }
-
- if (Options.keep)
- return;
-
- destroy();
- }
-
- private void clipboard_owner_change_cb(Gtk.Clipboard clipboard, Gdk.Event event)
- {
- update_paste_sensitivity();
- }
-
- private void decrease_font_size_cb(Vte.Terminal terminal)
- {
- adjust_font_size(1.0 / 1.2);
- }
-
- public void deiconify_window_cb(Vte.Terminal terminal)
- {
- deiconify();
- }
-
- private void icon_title_changed_cb(Vte.Terminal terminal)
- {
- get_window().set_icon_name(terminal.get_icon_title());
- }
-
- private void iconify_window_cb(Vte.Terminal terminal)
- {
- iconify();
- }
-
- private void increase_font_size_cb(Vte.Terminal terminal)
- {
- adjust_font_size(1.2);
- }
-
- private void lower_window_cb(Vte.Terminal terminal)
- {
- if (!get_realized())
- return;
-
- get_window().lower();
- }
-
- private void maximize_window_cb(Vte.Terminal terminal)
- {
- maximize();
- }
-
- private void move_window_cb(Vte.Terminal terminal, uint x, uint y)
- {
- move((int)x, (int)y);
- }
-
- private void notify_cb(Object object, ParamSpec pspec)
- {
- if (pspec.owner_type != typeof(Vte.Terminal))
- return;
-
- var value = GLib.Value(pspec.value_type);
- object.get_property(pspec.name, ref value);
- var str = value.strdup_contents();
- print("NOTIFY property \"%s\" value %s\n", pspec.name, str);
- }
-
- private void raise_window_cb(Vte.Terminal terminal)
- {
- if (!get_realized())
- return;
-
- get_window().raise();
- }
-
- private void realize_cb(Gtk.Widget widget)
- {
- update_geometry();
- }
-
- private void refresh_window_cb(Vte.Terminal terminal)
- {
- queue_draw();
- }
-
- private void resize_window_cb(Vte.Terminal terminal, uint columns, uint rows)
- {
- if (columns < 2 || rows < 2)
- return;
-
- terminal.set_size((int)columns, (int)rows);
- resize_to_geometry((int)columns, (int)rows);
- }
-
- private void restore_window_cb(Vte.Terminal terminal)
- {
- unmaximize();
- }
-
- private void selection_changed_cb(Vte.Terminal terminal)
- {
- update_copy_sensitivity();
- }
-
- private void window_title_changed_cb(Vte.Terminal terminal)
- {
- set_title(terminal.get_window_title());
- }
-
-} /* class Window */
-
-class App : Gtk.Application
-{
- public App()
- {
- Object(application_id: "org.gnome.Vte.Test.App",
- flags: ApplicationFlags.NON_UNIQUE);
-
- var settings = Gtk.Settings.get_default();
- settings.gtk_enable_mnemonics = false;
- settings.gtk_enable_accels = false;
- /* Make gtk+ CSD not steal F10 from the terminal */
- settings.gtk_menu_bar_accel = null;
- }
-
- protected override void startup()
- {
- base.startup();
-
- for (uint i = 0; i < Options.n_windows.clamp(0, 16); i++)
- new Window(this);
- }
-
- protected override void activate()
- {
- foreach (Gtk.Window win in this.get_windows()) {
- if (!(win is Window))
- continue;
-
- var window = win as Window;
- window.apply_geometry();
- window.present();
- window.launch();
- }
- }
-} /* class App */
-
- namespace Options
- {
- public static bool audible = false;
- public static string? command = null;
- public static string? cjk_ambiguous_width_string = null;
- public static string? cursor_blink_mode_string = null;
- public static string? cursor_background_color_string = null;
- public static string? cursor_foreground_color_string = null;
- public static string? cursor_shape_string = null;
- public static string[]? dingus = null;
- public static bool debug = false;
- public static string? encoding = null;
- public static string[]? environment = null;
- public static int extra_margin = 0;
- public static string? font_string = null;
- public static string? geometry = null;
- public static string? hl_bg_color_string = null;
- public static string? hl_fg_color_string = null;
- public static string? icon_title = null;
- public static bool keep = false;
- public static bool no_argb_visual = false;
- public static bool no_builtin_dingus = false;
- public static bool no_context_menu = false;
- public static bool no_double_buffer = false;
- public static bool no_geometry_hints = false;
- public static bool no_hyperlink = false;
- public static bool no_pcre = false;
- public static bool no_rewrap = false;
- public static bool no_shell = false;
- public static bool object_notifications = false;
- public static string? output_filename = null;
- public static bool reverse = false;
- public static int scrollback_lines = 512;
- public static int transparency_percent = 0;
- public static bool version = false;
- public static int n_windows = 1;
- public static string? word_char_exceptions = null;
- public static string? working_directory = null;
-
- private static int parse_enum(Type type, string str)
- {
- int value = 0;
- EnumClass enum_klass = (EnumClass)type.class_ref();
- unowned EnumValue? enum_value = enum_klass.get_value_by_nick(str);
- if (enum_value != null)
- value = enum_value.value;
- else
- printerr("Failed to parse enum value \"%s\" as type \"%s\"\n",
- str, type.qname().to_string());
- return value;
- }
-
- /*
- private static uint parse_flags(Type type, string str)
- {
- uint value = 0;
- var flags_klass = (FlagsClass)type.class_ref();
- string[]? flags = str.split(",|", -1);
-
- if (flags == null)
- return value;
-
- for (int i = 0; i < flags.length; i++) {
- unowned FlagsValue? flags_value = flags_klass.get_value_by_nick(flags[i]);
- if (flags_value != null)
- value |= flags_value.value;
- else
- printerr("Failed to parse flags value \"%s\" as type \"%s\"\n",
- str, type.qname().to_string());
- }
- return value;
- }
- */
-
- public static int get_cjk_ambiguous_width()
- {
- if (cjk_ambiguous_width_string == null)
- return 1;
- if (cjk_ambiguous_width_string == "narrow")
- return 1;
- if (cjk_ambiguous_width_string == "wide")
- return 2;
- printerr("Failed to parse \"%s\" argument to --cjk-width. Allowed values are \"narrow\" or \"wide\".\n", cjk_ambiguous_width_string);
- return 1;
- }
-
- public static Gdk.RGBA get_color_bg()
- {
- var color = Gdk.RGBA();
- color.alpha = (double)(100 - transparency_percent.clamp(0, 100)) / 100.0;
- if (Options.reverse) {
- color.red = color.green = color.blue = 1.0;
- } else {
- color.red = color.green = color.blue = 0.0;
- }
- return color;
- }
-
- public static Gdk.RGBA get_color_fg()
- {
- var color = Gdk.RGBA();
- color.alpha = 1.0;
- if (Options.reverse) {
- color.red = color.green = color.blue = 0.0;
- } else {
- color.red = color.green = color.blue = 1.0;
- }
- return color;
- }
-
- private static Gdk.RGBA? get_color(string? str)
- {
- if (str == null)
- return null;
- var color = Gdk.RGBA();
- if (!color.parse(str)) {
- printerr("Failed to parse \"%s\" as color.\n", str);
- return null;
- }
- return color;
- }
-
- public static Gdk.RGBA? get_color_cursor_background()
- {
- return get_color(cursor_background_color_string);
- }
-
- public static Gdk.RGBA? get_color_cursor_foreground()
- {
- return get_color(cursor_foreground_color_string);
- }
-
- public static Gdk.RGBA? get_color_hl_bg()
- {
- return get_color(hl_bg_color_string);
- }
-
- public static Gdk.RGBA? get_color_hl_fg()
- {
- return get_color(hl_fg_color_string);
- }
-
- public static Vte.CursorBlinkMode get_cursor_blink_mode()
- {
- Vte.CursorBlinkMode value;
- if (cursor_blink_mode_string != null)
- value = (Vte.CursorBlinkMode)parse_enum(typeof(Vte.CursorBlinkMode),
- cursor_blink_mode_string);
- else
- value = Vte.CursorBlinkMode.SYSTEM;
- return value;
- }
-
- public static Vte.CursorShape get_cursor_shape()
- {
- Vte.CursorShape value;
- if (cursor_shape_string != null)
- value = (Vte.CursorShape)parse_enum(typeof(Vte.CursorShape),
- cursor_shape_string);
- else
- value = Vte.CursorShape.BLOCK;
- return value;
- }
-
- public const OptionEntry[] entries = {
- { "audible-bell", 'a', 0, OptionArg.NONE, ref audible,
- "Use audible terminal bell", null },
- { "command", 'c', 0, OptionArg.STRING, ref command,
- "Execute a command in the terminal", null },
- { "cjk-width", 0, 0, OptionArg.STRING, ref cjk_ambiguous_width_string,
- "Specify the cjk ambiguous width to use for UTF-8 encoding", "NARROW|WIDE" },
- { "cursor-blink", 0, 0, OptionArg.STRING, ref cursor_blink_mode_string,
- "Cursor blink mode (system|on|off)", "MODE" },
- { "cursor-background-color", 0, 0, OptionArg.STRING, ref cursor_background_color_string,
- "Enable a colored cursor background", null },
- { "cursor-foreground-color", 0, 0, OptionArg.STRING, ref cursor_foreground_color_string,
- "Enable a colored cursor foreground", null },
- { "cursor-shape", 0, 0, OptionArg.STRING, ref cursor_shape_string,
- "Set cursor shape (block|underline|ibeam)", null },
- { "dingu", 'D', 0, OptionArg.STRING_ARRAY, ref dingus,
- "Add regex highlight", null },
- { "debug", 'd', 0,OptionArg.NONE, ref debug,
- "Enable various debugging checks", null },
- { "encoding", 0, 0, OptionArg.STRING, ref encoding,
- "Specify the terminal encoding to use", null },
- { "env", 0, 0, OptionArg.STRING_ARRAY, ref environment,
- "Add environment variable to the child\'s environment", "VAR=VALUE" },
- { "extra-margin", 0, 0, OptionArg.INT, ref extra_margin,
- "Add extra margin around the terminal widget", "MARGIN" },
- { "font", 'f', 0, OptionArg.STRING, ref font_string,
- "Specify a font to use", null },
- { "gregex", 0, 0, OptionArg.NONE, ref no_pcre,
- "Use GRegex instead of PCRE2", null },
- { "geometry", 'g', 0, OptionArg.STRING, ref geometry,
- "Set the size (in characters) and position", "GEOMETRY" },
- { "highlight-background-color", 0, 0, OptionArg.STRING, ref hl_bg_color_string,
- "Enable distinct highlight background color for selection", null },
- { "highlight-foreground-color", 0, 0, OptionArg.STRING, ref hl_fg_color_string,
- "Enable distinct highlight foreground color for selection", null },
- { "icon-title", 'i', 0, OptionArg.NONE, ref icon_title,
- "Enable the setting of the icon title", null },
- { "keep", 'k', 0, OptionArg.NONE, ref keep,
- "Live on after the command exits", null },
- { "no-argb-visual", 0, 0, OptionArg.NONE, ref no_argb_visual,
- "Don't use an ARGB visual", null },
- { "no-builtin-dingus", 0, 0, OptionArg.NONE, ref no_builtin_dingus,
- "Highlight URLs inside the terminal", null },
- { "no-context-menu", 0, 0, OptionArg.NONE, ref no_context_menu,
- "Disable context menu", null },
- { "no-double-buffer", '2', 0, OptionArg.NONE, ref no_double_buffer,
- "Disable double-buffering", null },
- { "no-geometry-hints", 'G', 0, OptionArg.NONE, ref no_geometry_hints,
- "Allow the terminal to be resized to any dimension, not constrained to fit to an integer multiple of characters", null },
- { "no-hyperlink", 'H', 0, OptionArg.NONE, ref no_hyperlink,
- "Disable hyperlinks", null },
- { "no-rewrap", 'R', 0, OptionArg.NONE, ref no_rewrap,
- "Disable rewrapping on resize", null },
- { "no-shell", 'S', 0, OptionArg.NONE, ref no_shell,
- "Disable spawning a shell inside the terminal", null },
- { "object-notifications", 'N', 0, OptionArg.NONE, ref object_notifications,
- "Print VteTerminal object notifications", null },
- { "output-file", 0, 0, OptionArg.FILENAME, ref output_filename,
- "Save terminal contents to file at exit", null },
- { "reverse", 0, 0, OptionArg.NONE, ref reverse,
- "Reverse foreground/background colors", null },
- { "scrollback-lines", 'n', 0, OptionArg.INT, ref scrollback_lines,
- "Specify the number of scrollback-lines", null },
- { "transparent", 'T', 0, OptionArg.INT, ref transparency_percent,
- "Enable the use of a transparent background", "0..100" },
- { "version", 0, 0, OptionArg.NONE, ref version,
- "Show version", null },
- { "windows", 0, 0, OptionArg.INT, ref n_windows,
- "Open multiple windows (default: 1)", "NUMBER" },
- { "word-char-exceptions", 0, 0, OptionArg.STRING, ref word_char_exceptions,
- "Specify the word char exceptions", "CHARS" },
- { "working-directory", 'w', 0, OptionArg.FILENAME, ref working_directory,
- "Specify the initial working directory of the terminal", null },
- { null }
- };
- }
-
- public static int main(string[] argv)
- {
- Intl.setlocale (LocaleCategory.ALL, "");
-
- if (Environment.get_variable("VTE_CJK_WIDTH") != null) {
- printerr("VTE_CJK_WIDTH is not supported anymore, use --cjk-width instead\n");
- }
- /* Not interested in silly debug spew, bug #749195 */
- if (Environment.get_variable("G_ENABLE_DIAGNOSTIC") == null) {
- Environment.set_variable("G_ENABLE_DIAGNOSTIC", "0", true);
- }
- Environment.set_prgname("vte-app");
- Environment.set_application_name("Terminal");
-
- try {
- var context = new OptionContext("— simple VTE test application");
- context.set_help_enabled(true);
- context.add_main_entries(Options.entries, null);
- context.add_group(Gtk.get_option_group(true));
- context.parse(ref argv);
- } catch (OptionError e) {
- printerr("Error parsing arguments: %s\n", e.message);
- return 1;
- }
-
- if (Options.version) {
- print("Simple VTE Test Application %s\n", Config.VERSION);
- return 0;
- }
-
- if (Options.debug)
- Gdk.Window.set_debug_updates(Options.debug);
-
- var app = new App();
- return app.run(null);
- }
-
-} /* namespace */
diff --git a/bindings/vala/config.vapi b/bindings/vala/config.vapi
deleted file mode 100644
index a164a43d..00000000
--- a/bindings/vala/config.vapi
+++ /dev/null
@@ -1,5 +0,0 @@
-[CCode (cprefix = "", lower_case_cprefix = "", cheader_filename = "config.h")]
-namespace Config
-{
- public const string VERSION;
-}
diff --git a/bindings/vala/search-popover.ui b/bindings/vala/search-popover.ui
deleted file mode 100644
index 24aab5f6..00000000
--- a/bindings/vala/search-popover.ui
+++ /dev/null
@@ -1,249 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.19.0 -->
-<interface>
- <requires lib="gtk+" version="3.16"/>
- <template class="TestSearchPopover" parent="GtkPopover">
- <property name="can_focus">False</property>
- <property name="transitions_enabled">False</property>
- <child>
- <object class="GtkBox" id="box1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_left">12</property>
- <property name="margin_right">12</property>
- <property name="margin_top">12</property>
- <property name="margin_bottom">12</property>
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkBox" id="box2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">18</property>
- <child>
- <object class="GtkBox" id="box4">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <object class="GtkSearchEntry" id="search_entry">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
- <property name="width_chars">30</property>
- <property name="primary_icon_name">edit-find-symbolic</property>
- <property name="primary_icon_activatable">False</property>
- <property name="primary_icon_sensitive">False</property>
- <property name="placeholder_text" translatable="yes">Search</property>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="search_prev_button">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_text" translatable="yes">Search for previous occurrence</property>
- <property name="focus_on_click">False</property>
- <child>
- <object class="GtkImage" id="image2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="icon_name">go-up-symbolic</property>
- <property name="use_fallback">True</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="search_next_button">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_text" translatable="yes">Search for next occurrence</property>
- <property name="focus_on_click">False</property>
- <child>
- <object class="GtkImage" id="image3">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="icon_name">go-down-symbolic</property>
- <property name="use_fallback">True</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
- <style>
- <class name="linked"/>
- </style>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkToggleButton" id="reveal_button">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_text" translatable="yes">Toggle search options</property>
- <property name="focus_on_click">False</property>
- <child>
- <object class="GtkImage" id="image1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="icon_name">open-menu-symbolic</property>
- <property name="use_fallback">True</property>
- </object>
- </child>
- <accessibility>
- <relation type="controller-for" target="revealer"/>
- </accessibility>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="close_button">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="focus_on_click">False</property>
- <child>
- <object class="GtkImage" id="image4">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="icon_name">window-close-symbolic</property>
- <property name="use_fallback">True</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkRevealer" id="revealer">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="transition_type">none</property>
- <child>
- <object class="GtkBox" id="box3">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_top">18</property>
- <property name="orientation">vertical</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkCheckButton" id="match_case_checkbutton">
- <property name="label" translatable="yes">_Match case</property>
- <property name="use_action_appearance">False</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="focus_on_click">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.49000000953674316</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="entire_word_checkbutton">
- <property name="label" translatable="yes">Match _entire word only</property>
- <property name="use_action_appearance">False</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="focus_on_click">False</property>
- <property name="xalign">0</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="regex_checkbutton">
- <property name="label" translatable="yes">Match as _regular expression</property>
- <property name="use_action_appearance">False</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="focus_on_click">False</property>
- <property name="xalign">0</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="wrap_around_checkbutton">
- <property name="label" translatable="yes">_Wrap around</property>
- <property name="use_action_appearance">False</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="focus_on_click">False</property>
- <property name="xalign">0</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">3</property>
- </packing>
- </child>
- </object>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- </child>
- </template>
-</interface>