zoha_vte_sys/
lib.rs

1// Generated by gir (https://github.com/gtk-rs/gir @ bd704e8f22c9)
2// from .. (@ 32b461bf5f55+)
3// from ../gir-files (@ 20031a537e40)
4// DO NOT EDIT
5
6#![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)]
7#![allow(clippy::approx_constant, clippy::type_complexity, clippy::unreadable_literal, clippy::upper_case_acronyms)]
8#![cfg_attr(docsrs, feature(doc_cfg))]
9
10use cairo::ffi::cairo_font_options_t;
11use glib_sys as glib;
12use gio_sys as gio;
13use gtk_sys as gtk;
14use gdk_sys as gdk;
15use pango_sys as pango;
16
17#[allow(unused_imports)]
18use libc::{c_int, c_char, c_uchar, c_float, c_uint, c_double,
19    c_short, c_ushort, c_long, c_ulong,
20    c_void, size_t, ssize_t, intptr_t, uintptr_t, FILE};
21
22#[allow(unused_imports)]
23use glib::{gboolean, gconstpointer, gpointer, GType};
24
25// Enums
26pub type VteAlign = c_int;
27pub const VTE_ALIGN_START: VteAlign = 0;
28pub const VTE_ALIGN_CENTER: VteAlign = 1;
29pub const VTE_ALIGN_END: VteAlign = 3;
30
31pub type VteCursorBlinkMode = c_int;
32pub const VTE_CURSOR_BLINK_SYSTEM: VteCursorBlinkMode = 0;
33pub const VTE_CURSOR_BLINK_ON: VteCursorBlinkMode = 1;
34pub const VTE_CURSOR_BLINK_OFF: VteCursorBlinkMode = 2;
35
36pub type VteCursorShape = c_int;
37pub const VTE_CURSOR_SHAPE_BLOCK: VteCursorShape = 0;
38pub const VTE_CURSOR_SHAPE_IBEAM: VteCursorShape = 1;
39pub const VTE_CURSOR_SHAPE_UNDERLINE: VteCursorShape = 2;
40
41pub type VteEraseBinding = c_int;
42pub const VTE_ERASE_AUTO: VteEraseBinding = 0;
43pub const VTE_ERASE_ASCII_BACKSPACE: VteEraseBinding = 1;
44pub const VTE_ERASE_ASCII_DELETE: VteEraseBinding = 2;
45pub const VTE_ERASE_DELETE_SEQUENCE: VteEraseBinding = 3;
46pub const VTE_ERASE_TTY: VteEraseBinding = 4;
47
48pub type VteFormat = c_int;
49pub const VTE_FORMAT_TEXT: VteFormat = 1;
50pub const VTE_FORMAT_HTML: VteFormat = 2;
51
52pub type VtePtyError = c_int;
53pub const VTE_PTY_ERROR_PTY_HELPER_FAILED: VtePtyError = 0;
54pub const VTE_PTY_ERROR_PTY98_FAILED: VtePtyError = 1;
55
56pub type VteRegexError = c_int;
57pub const VTE_REGEX_ERROR_INCOMPATIBLE: VteRegexError = 2147483646;
58pub const VTE_REGEX_ERROR_NOT_SUPPORTED: VteRegexError = 2147483647;
59
60pub type VteTextBlinkMode = c_int;
61pub const VTE_TEXT_BLINK_NEVER: VteTextBlinkMode = 0;
62pub const VTE_TEXT_BLINK_FOCUSED: VteTextBlinkMode = 1;
63pub const VTE_TEXT_BLINK_UNFOCUSED: VteTextBlinkMode = 2;
64pub const VTE_TEXT_BLINK_ALWAYS: VteTextBlinkMode = 3;
65
66pub type VteWriteFlags = c_int;
67pub const VTE_WRITE_DEFAULT: VteWriteFlags = 0;
68
69// Constants
70pub const VTE_MAJOR_VERSION: c_int = 0;
71pub const VTE_MICRO_VERSION: c_int = 0;
72pub const VTE_MINOR_VERSION: c_int = 75;
73pub const VTE_REGEX_FLAGS_DEFAULT: c_int = 1075314688;
74pub const VTE_SPAWN_NO_PARENT_ENVV: c_int = 33554432;
75pub const VTE_SPAWN_NO_SYSTEMD_SCOPE: c_int = 67108864;
76pub const VTE_SPAWN_REQUIRE_SYSTEMD_SCOPE: c_int = 134217728;
77pub const VTE_TEST_FLAGS_ALL: u64 = 18446744073709551615;
78pub const VTE_TEST_FLAGS_NONE: u64 = 0;
79
80// Flags
81pub type VteFeatureFlags = c_uint;
82pub const VTE_FEATURE_FLAG_BIDI: VteFeatureFlags = 1;
83pub const VTE_FEATURE_FLAG_ICU: VteFeatureFlags = 2;
84pub const VTE_FEATURE_FLAG_SYSTEMD: VteFeatureFlags = 4;
85pub const VTE_FEATURE_FLAG_SIXEL: VteFeatureFlags = 8;
86pub const VTE_FEATURE_FLAGS_MASK: VteFeatureFlags = 4294967295;
87
88pub type VtePtyFlags = c_uint;
89pub const VTE_PTY_NO_LASTLOG: VtePtyFlags = 1;
90pub const VTE_PTY_NO_UTMP: VtePtyFlags = 2;
91pub const VTE_PTY_NO_WTMP: VtePtyFlags = 4;
92pub const VTE_PTY_NO_HELPER: VtePtyFlags = 8;
93pub const VTE_PTY_NO_FALLBACK: VtePtyFlags = 16;
94pub const VTE_PTY_NO_SESSION: VtePtyFlags = 32;
95pub const VTE_PTY_NO_CTTY: VtePtyFlags = 64;
96pub const VTE_PTY_DEFAULT: VtePtyFlags = 0;
97
98// Callbacks
99pub type VteSelectionFunc = Option<unsafe extern "C" fn(*mut VteTerminal, c_long, c_long, gpointer) -> gboolean>;
100pub type VteTerminalSpawnAsyncCallback = Option<unsafe extern "C" fn(*mut VteTerminal, glib::GPid, *mut glib::GError, gpointer)>;
101
102// Records
103#[repr(C)]
104pub struct VteCharAttributes {
105    pub row: c_long,
106    pub column: c_long,
107    pub fore: pango::PangoColor,
108    pub back: pango::PangoColor,
109    pub underline: c_uint,
110    _truncated_record_marker: c_void,
111    // field strikethrough has incomplete type
112}
113
114impl ::std::fmt::Debug for VteCharAttributes {
115    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
116        f.debug_struct(&format!("VteCharAttributes @ {self:p}"))
117         .finish()
118    }
119}
120
121#[repr(C)]
122pub struct _VtePtyClass {
123    _data: [u8; 0],
124    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
125}
126
127pub type VtePtyClass = *mut _VtePtyClass;
128
129#[repr(C)]
130pub struct VteRegex {
131    _data: [u8; 0],
132    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
133}
134
135impl ::std::fmt::Debug for VteRegex {
136    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
137        f.debug_struct(&format!("VteRegex @ {self:p}"))
138         .finish()
139    }
140}
141
142#[derive(Copy, Clone)]
143#[repr(C)]
144pub struct VteTerminalClass {
145    pub parent_class: gtk::GtkWidgetClass,
146    pub eof: Option<unsafe extern "C" fn(*mut VteTerminal)>,
147    pub child_exited: Option<unsafe extern "C" fn(*mut VteTerminal, c_int)>,
148    pub encoding_changed: Option<unsafe extern "C" fn(*mut VteTerminal)>,
149    pub char_size_changed: Option<unsafe extern "C" fn(*mut VteTerminal, c_uint, c_uint)>,
150    pub window_title_changed: Option<unsafe extern "C" fn(*mut VteTerminal)>,
151    pub icon_title_changed: Option<unsafe extern "C" fn(*mut VteTerminal)>,
152    pub selection_changed: Option<unsafe extern "C" fn(*mut VteTerminal)>,
153    pub contents_changed: Option<unsafe extern "C" fn(*mut VteTerminal)>,
154    pub cursor_moved: Option<unsafe extern "C" fn(*mut VteTerminal)>,
155    pub commit: Option<unsafe extern "C" fn(*mut VteTerminal, *const c_char, c_uint)>,
156    pub deiconify_window: Option<unsafe extern "C" fn(*mut VteTerminal)>,
157    pub iconify_window: Option<unsafe extern "C" fn(*mut VteTerminal)>,
158    pub raise_window: Option<unsafe extern "C" fn(*mut VteTerminal)>,
159    pub lower_window: Option<unsafe extern "C" fn(*mut VteTerminal)>,
160    pub refresh_window: Option<unsafe extern "C" fn(*mut VteTerminal)>,
161    pub restore_window: Option<unsafe extern "C" fn(*mut VteTerminal)>,
162    pub maximize_window: Option<unsafe extern "C" fn(*mut VteTerminal)>,
163    pub resize_window: Option<unsafe extern "C" fn(*mut VteTerminal, c_uint, c_uint)>,
164    pub move_window: Option<unsafe extern "C" fn(*mut VteTerminal, c_uint, c_uint)>,
165    pub increase_font_size: Option<unsafe extern "C" fn(*mut VteTerminal)>,
166    pub decrease_font_size: Option<unsafe extern "C" fn(*mut VteTerminal)>,
167    pub text_modified: Option<unsafe extern "C" fn(*mut VteTerminal)>,
168    pub text_inserted: Option<unsafe extern "C" fn(*mut VteTerminal)>,
169    pub text_deleted: Option<unsafe extern "C" fn(*mut VteTerminal)>,
170    pub text_scrolled: Option<unsafe extern "C" fn(*mut VteTerminal, c_int)>,
171    pub copy_clipboard: Option<unsafe extern "C" fn(*mut VteTerminal)>,
172    pub paste_clipboard: Option<unsafe extern "C" fn(*mut VteTerminal)>,
173    pub bell: Option<unsafe extern "C" fn(*mut VteTerminal)>,
174    pub _extra_padding: [gpointer; 3],
175    pub _padding: [gpointer; 13],
176    pub priv_: *mut VteTerminalClassPrivate,
177}
178
179impl ::std::fmt::Debug for VteTerminalClass {
180    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
181        f.debug_struct(&format!("VteTerminalClass @ {self:p}"))
182         .field("parent_class", &self.parent_class)
183         .field("eof", &self.eof)
184         .field("child_exited", &self.child_exited)
185         .field("encoding_changed", &self.encoding_changed)
186         .field("char_size_changed", &self.char_size_changed)
187         .field("window_title_changed", &self.window_title_changed)
188         .field("icon_title_changed", &self.icon_title_changed)
189         .field("selection_changed", &self.selection_changed)
190         .field("contents_changed", &self.contents_changed)
191         .field("cursor_moved", &self.cursor_moved)
192         .field("commit", &self.commit)
193         .field("deiconify_window", &self.deiconify_window)
194         .field("iconify_window", &self.iconify_window)
195         .field("raise_window", &self.raise_window)
196         .field("lower_window", &self.lower_window)
197         .field("refresh_window", &self.refresh_window)
198         .field("restore_window", &self.restore_window)
199         .field("maximize_window", &self.maximize_window)
200         .field("resize_window", &self.resize_window)
201         .field("move_window", &self.move_window)
202         .field("increase_font_size", &self.increase_font_size)
203         .field("decrease_font_size", &self.decrease_font_size)
204         .field("text_modified", &self.text_modified)
205         .field("text_inserted", &self.text_inserted)
206         .field("text_deleted", &self.text_deleted)
207         .field("text_scrolled", &self.text_scrolled)
208         .field("copy_clipboard", &self.copy_clipboard)
209         .field("paste_clipboard", &self.paste_clipboard)
210         .field("bell", &self.bell)
211         .finish()
212    }
213}
214
215#[repr(C)]
216pub struct _VteTerminalClassPrivate {
217    _data: [u8; 0],
218    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
219}
220
221pub type VteTerminalClassPrivate = *mut _VteTerminalClassPrivate;
222
223// Classes
224#[repr(C)]
225pub struct VtePty {
226    _data: [u8; 0],
227    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
228}
229
230impl ::std::fmt::Debug for VtePty {
231    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
232        f.debug_struct(&format!("VtePty @ {self:p}"))
233         .finish()
234    }
235}
236
237#[derive(Copy, Clone)]
238#[repr(C)]
239pub struct VteTerminal {
240    pub widget: gtk::GtkWidget,
241    pub _unused_padding: [*mut gpointer; 1],
242}
243
244impl ::std::fmt::Debug for VteTerminal {
245    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
246        f.debug_struct(&format!("VteTerminal @ {self:p}"))
247         .field("widget", &self.widget)
248         .finish()
249    }
250}
251
252#[link(name = "vte-2.91")]
253extern "C" {
254
255    //=========================================================================
256    // VteAlign
257    //=========================================================================
258    #[cfg(feature = "v0_76")]
259    #[cfg_attr(docsrs, doc(cfg(feature = "v0_76")))]
260    pub fn vte_align_get_type() -> GType;
261
262    //=========================================================================
263    // VteCursorBlinkMode
264    //=========================================================================
265    pub fn vte_cursor_blink_mode_get_type() -> GType;
266
267    //=========================================================================
268    // VteCursorShape
269    //=========================================================================
270    pub fn vte_cursor_shape_get_type() -> GType;
271
272    //=========================================================================
273    // VteEraseBinding
274    //=========================================================================
275    pub fn vte_erase_binding_get_type() -> GType;
276
277    //=========================================================================
278    // VteFormat
279    //=========================================================================
280    #[cfg(feature = "v0_50")]
281    #[cfg_attr(docsrs, doc(cfg(feature = "v0_50")))]
282    pub fn vte_format_get_type() -> GType;
283
284    //=========================================================================
285    // VtePtyError
286    //=========================================================================
287    pub fn vte_pty_error_get_type() -> GType;
288    pub fn vte_pty_error_quark() -> glib::GQuark;
289
290    //=========================================================================
291    // VteRegexError
292    //=========================================================================
293    #[cfg(feature = "v0_46")]
294    #[cfg_attr(docsrs, doc(cfg(feature = "v0_46")))]
295    pub fn vte_regex_error_get_type() -> GType;
296    #[cfg(feature = "v0_46")]
297    #[cfg_attr(docsrs, doc(cfg(feature = "v0_46")))]
298    pub fn vte_regex_error_quark() -> glib::GQuark;
299
300    //=========================================================================
301    // VteTextBlinkMode
302    //=========================================================================
303    #[cfg(feature = "v0_52")]
304    #[cfg_attr(docsrs, doc(cfg(feature = "v0_52")))]
305    pub fn vte_text_blink_mode_get_type() -> GType;
306
307    //=========================================================================
308    // VteWriteFlags
309    //=========================================================================
310    pub fn vte_write_flags_get_type() -> GType;
311
312    //=========================================================================
313    // VtePtyFlags
314    //=========================================================================
315    pub fn vte_pty_flags_get_type() -> GType;
316
317    //=========================================================================
318    // VteRegex
319    //=========================================================================
320    pub fn vte_regex_get_type() -> GType;
321    pub fn vte_regex_new_for_match(pattern: *const c_char, pattern_length: ssize_t, flags: u32, error: *mut *mut glib::GError) -> *mut VteRegex;
322    pub fn vte_regex_new_for_search(pattern: *const c_char, pattern_length: ssize_t, flags: u32, error: *mut *mut glib::GError) -> *mut VteRegex;
323    pub fn vte_regex_jit(regex: *mut VteRegex, flags: u32, error: *mut *mut glib::GError) -> gboolean;
324    pub fn vte_regex_ref(regex: *mut VteRegex) -> *mut VteRegex;
325    #[cfg(feature = "v0_56")]
326    #[cfg_attr(docsrs, doc(cfg(feature = "v0_56")))]
327    pub fn vte_regex_substitute(regex: *mut VteRegex, subject: *const c_char, replacement: *const c_char, flags: u32, error: *mut *mut glib::GError) -> *mut c_char;
328    pub fn vte_regex_unref(regex: *mut VteRegex) -> *mut VteRegex;
329
330    //=========================================================================
331    // VtePty
332    //=========================================================================
333    pub fn vte_pty_get_type() -> GType;
334    pub fn vte_pty_new_foreign_sync(fd: c_int, cancellable: *mut gio::GCancellable, error: *mut *mut glib::GError) -> *mut VtePty;
335    pub fn vte_pty_new_sync(flags: VtePtyFlags, cancellable: *mut gio::GCancellable, error: *mut *mut glib::GError) -> *mut VtePty;
336    pub fn vte_pty_child_setup(pty: *mut VtePty);
337    pub fn vte_pty_close(pty: *mut VtePty);
338    pub fn vte_pty_get_fd(pty: *mut VtePty) -> c_int;
339    pub fn vte_pty_get_size(pty: *mut VtePty, rows: *mut c_int, columns: *mut c_int, error: *mut *mut glib::GError) -> gboolean;
340    pub fn vte_pty_set_size(pty: *mut VtePty, rows: c_int, columns: c_int, error: *mut *mut glib::GError) -> gboolean;
341    pub fn vte_pty_set_utf8(pty: *mut VtePty, utf8: gboolean, error: *mut *mut glib::GError) -> gboolean;
342    #[cfg(feature = "v0_48")]
343    #[cfg_attr(docsrs, doc(cfg(feature = "v0_48")))]
344    pub fn vte_pty_spawn_async(pty: *mut VtePty, working_directory: *const c_char, argv: *mut *mut c_char, envv: *mut *mut c_char, spawn_flags: glib::GSpawnFlags, child_setup: glib::GSpawnChildSetupFunc, child_setup_data: gpointer, child_setup_data_destroy: glib::GDestroyNotify, timeout: c_int, cancellable: *mut gio::GCancellable, callback: gio::GAsyncReadyCallback, user_data: gpointer);
345    #[cfg(feature = "v0_48")]
346    #[cfg_attr(docsrs, doc(cfg(feature = "v0_48")))]
347    pub fn vte_pty_spawn_finish(pty: *mut VtePty, result: *mut gio::GAsyncResult, child_pid: *mut glib::GPid, error: *mut *mut glib::GError) -> gboolean;
348    #[cfg(feature = "v0_62")]
349    #[cfg_attr(docsrs, doc(cfg(feature = "v0_62")))]
350    pub fn vte_pty_spawn_with_fds_async(pty: *mut VtePty, working_directory: *const c_char, argv: *const *const c_char, envv: *const *const c_char, fds: *const c_int, n_fds: c_int, map_fds: *const c_int, n_map_fds: c_int, spawn_flags: glib::GSpawnFlags, child_setup: glib::GSpawnChildSetupFunc, child_setup_data: gpointer, child_setup_data_destroy: glib::GDestroyNotify, timeout: c_int, cancellable: *mut gio::GCancellable, callback: gio::GAsyncReadyCallback, user_data: gpointer);
351
352    //=========================================================================
353    // VteTerminal
354    //=========================================================================
355    pub fn vte_terminal_get_type() -> GType;
356    pub fn vte_terminal_new() -> *mut VteTerminal;
357    pub fn vte_terminal_copy_clipboard(terminal: *mut VteTerminal);
358    #[cfg(feature = "v0_50")]
359    #[cfg_attr(docsrs, doc(cfg(feature = "v0_50")))]
360    pub fn vte_terminal_copy_clipboard_format(terminal: *mut VteTerminal, format: VteFormat);
361    pub fn vte_terminal_copy_primary(terminal: *mut VteTerminal);
362    #[cfg(feature = "v0_44")]
363    #[cfg_attr(docsrs, doc(cfg(feature = "v0_44")))]
364    pub fn vte_terminal_event_check_gregex_simple(terminal: *mut VteTerminal, event: *mut gdk::GdkEvent, regexes: *mut *mut glib::GRegex, n_regexes: size_t, match_flags: glib::GRegexMatchFlags, matches: *mut *mut c_char) -> gboolean;
365    #[cfg(feature = "v0_62")]
366    #[cfg_attr(docsrs, doc(cfg(feature = "v0_62")))]
367    pub fn vte_terminal_event_check_regex_array(terminal: *mut VteTerminal, event: *mut gdk::GdkEvent, regexes: *mut *mut VteRegex, n_regexes: size_t, match_flags: u32, n_matches: *mut size_t) -> *mut *mut c_char;
368    #[cfg(feature = "v0_46")]
369    #[cfg_attr(docsrs, doc(cfg(feature = "v0_46")))]
370    pub fn vte_terminal_event_check_regex_simple(terminal: *mut VteTerminal, event: *mut gdk::GdkEvent, regexes: *mut *mut VteRegex, n_regexes: size_t, match_flags: u32, matches: *mut *mut c_char) -> gboolean;
371    pub fn vte_terminal_feed(terminal: *mut VteTerminal, data: *const u8, length: ssize_t);
372    pub fn vte_terminal_feed_child(terminal: *mut VteTerminal, text: *const u8, length: ssize_t);
373    pub fn vte_terminal_feed_child_binary(terminal: *mut VteTerminal, data: *const u8, length: size_t);
374    pub fn vte_terminal_get_allow_bold(terminal: *mut VteTerminal) -> gboolean;
375    #[cfg(feature = "v0_50")]
376    #[cfg_attr(docsrs, doc(cfg(feature = "v0_50")))]
377    pub fn vte_terminal_get_allow_hyperlink(terminal: *mut VteTerminal) -> gboolean;
378    pub fn vte_terminal_get_audible_bell(terminal: *mut VteTerminal) -> gboolean;
379    #[cfg(feature = "v0_52")]
380    #[cfg_attr(docsrs, doc(cfg(feature = "v0_52")))]
381    pub fn vte_terminal_get_bold_is_bright(terminal: *mut VteTerminal) -> gboolean;
382    #[cfg(feature = "v0_52")]
383    #[cfg_attr(docsrs, doc(cfg(feature = "v0_52")))]
384    pub fn vte_terminal_get_cell_height_scale(terminal: *mut VteTerminal) -> c_double;
385    #[cfg(feature = "v0_52")]
386    #[cfg_attr(docsrs, doc(cfg(feature = "v0_52")))]
387    pub fn vte_terminal_get_cell_width_scale(terminal: *mut VteTerminal) -> c_double;
388    pub fn vte_terminal_get_char_height(terminal: *mut VteTerminal) -> c_long;
389    pub fn vte_terminal_get_char_width(terminal: *mut VteTerminal) -> c_long;
390    pub fn vte_terminal_get_cjk_ambiguous_width(terminal: *mut VteTerminal) -> c_int;
391    #[cfg(feature = "v0_54")]
392    #[cfg_attr(docsrs, doc(cfg(feature = "v0_54")))]
393    pub fn vte_terminal_get_color_background_for_draw(terminal: *mut VteTerminal, color: *mut gdk::GdkRGBA);
394    pub fn vte_terminal_get_column_count(terminal: *mut VteTerminal) -> c_long;
395    pub fn vte_terminal_get_current_directory_uri(terminal: *mut VteTerminal) -> *const c_char;
396    pub fn vte_terminal_get_current_file_uri(terminal: *mut VteTerminal) -> *const c_char;
397    pub fn vte_terminal_get_cursor_blink_mode(terminal: *mut VteTerminal) -> VteCursorBlinkMode;
398    pub fn vte_terminal_get_cursor_position(terminal: *mut VteTerminal, column: *mut c_long, row: *mut c_long);
399    pub fn vte_terminal_get_cursor_shape(terminal: *mut VteTerminal) -> VteCursorShape;
400    #[cfg(feature = "v0_58")]
401    #[cfg_attr(docsrs, doc(cfg(feature = "v0_58")))]
402    pub fn vte_terminal_get_enable_bidi(terminal: *mut VteTerminal) -> gboolean;
403    #[cfg(feature = "v0_64")]
404    #[cfg_attr(docsrs, doc(cfg(feature = "v0_64")))]
405    pub fn vte_terminal_get_enable_fallback_scrolling(terminal: *mut VteTerminal) -> gboolean;
406    #[cfg(feature = "v0_58")]
407    #[cfg_attr(docsrs, doc(cfg(feature = "v0_58")))]
408    pub fn vte_terminal_get_enable_shaping(terminal: *mut VteTerminal) -> gboolean;
409    #[cfg(feature = "v0_62")]
410    #[cfg_attr(docsrs, doc(cfg(feature = "v0_62")))]
411    pub fn vte_terminal_get_enable_sixel(terminal: *mut VteTerminal) -> gboolean;
412    pub fn vte_terminal_get_encoding(terminal: *mut VteTerminal) -> *const c_char;
413    pub fn vte_terminal_get_font(terminal: *mut VteTerminal) -> *const pango::PangoFontDescription;
414    #[cfg(feature = "v0_74")]
415    #[cfg_attr(docsrs, doc(cfg(feature = "v0_74")))]
416    pub fn vte_terminal_get_font_options(terminal: *mut VteTerminal) -> *const cairo::cairo_font_options_t;
417    pub fn vte_terminal_get_font_scale(terminal: *mut VteTerminal) -> c_double;
418    pub fn vte_terminal_get_geometry_hints(terminal: *mut VteTerminal, hints: *mut gdk::GdkGeometry, min_rows: c_int, min_columns: c_int);
419    pub fn vte_terminal_get_has_selection(terminal: *mut VteTerminal) -> gboolean;
420    pub fn vte_terminal_get_icon_title(terminal: *mut VteTerminal) -> *const c_char;
421    pub fn vte_terminal_get_input_enabled(terminal: *mut VteTerminal) -> gboolean;
422    pub fn vte_terminal_get_mouse_autohide(terminal: *mut VteTerminal) -> gboolean;
423    pub fn vte_terminal_get_pty(terminal: *mut VteTerminal) -> *mut VtePty;
424    pub fn vte_terminal_get_rewrap_on_resize(terminal: *mut VteTerminal) -> gboolean;
425    pub fn vte_terminal_get_row_count(terminal: *mut VteTerminal) -> c_long;
426    #[cfg(feature = "v0_52")]
427    #[cfg_attr(docsrs, doc(cfg(feature = "v0_52")))]
428    pub fn vte_terminal_get_scroll_on_keystroke(terminal: *mut VteTerminal) -> gboolean;
429    #[cfg(feature = "v0_52")]
430    #[cfg_attr(docsrs, doc(cfg(feature = "v0_52")))]
431    pub fn vte_terminal_get_scroll_on_output(terminal: *mut VteTerminal) -> gboolean;
432    #[cfg(feature = "v0_66")]
433    #[cfg_attr(docsrs, doc(cfg(feature = "v0_66")))]
434    pub fn vte_terminal_get_scroll_unit_is_pixels(terminal: *mut VteTerminal) -> gboolean;
435    #[cfg(feature = "v0_52")]
436    #[cfg_attr(docsrs, doc(cfg(feature = "v0_52")))]
437    pub fn vte_terminal_get_scrollback_lines(terminal: *mut VteTerminal) -> c_long;
438    pub fn vte_terminal_get_text(terminal: *mut VteTerminal, is_selected: VteSelectionFunc, user_data: gpointer, attributes: *mut glib::GArray) -> *mut c_char;
439    #[cfg(feature = "v0_52")]
440    #[cfg_attr(docsrs, doc(cfg(feature = "v0_52")))]
441    pub fn vte_terminal_get_text_blink_mode(terminal: *mut VteTerminal) -> VteTextBlinkMode;
442    pub fn vte_terminal_get_text_include_trailing_spaces(terminal: *mut VteTerminal, is_selected: VteSelectionFunc, user_data: gpointer, attributes: *mut glib::GArray) -> *mut c_char;
443    pub fn vte_terminal_get_text_range(terminal: *mut VteTerminal, start_row: c_long, start_col: c_long, end_row: c_long, end_col: c_long, is_selected: VteSelectionFunc, user_data: gpointer, attributes: *mut glib::GArray) -> *mut c_char;
444    #[cfg(feature = "v0_72")]
445    #[cfg_attr(docsrs, doc(cfg(feature = "v0_72")))]
446    pub fn vte_terminal_get_text_range_format(terminal: *mut VteTerminal, format: VteFormat, start_row: c_long, start_col: c_long, end_row: c_long, end_col: c_long, length: *mut size_t) -> *mut c_char;
447    #[cfg(feature = "v0_70")]
448    #[cfg_attr(docsrs, doc(cfg(feature = "v0_70")))]
449    pub fn vte_terminal_get_text_selected(terminal: *mut VteTerminal, format: VteFormat) -> *mut c_char;
450    #[cfg(feature = "v0_72")]
451    #[cfg_attr(docsrs, doc(cfg(feature = "v0_72")))]
452    pub fn vte_terminal_get_text_selected_full(terminal: *mut VteTerminal, format: VteFormat, length: *mut size_t) -> *mut c_char;
453    pub fn vte_terminal_get_window_title(terminal: *mut VteTerminal) -> *const c_char;
454    #[cfg(feature = "v0_40")]
455    #[cfg_attr(docsrs, doc(cfg(feature = "v0_40")))]
456    pub fn vte_terminal_get_word_char_exceptions(terminal: *mut VteTerminal) -> *const c_char;
457    #[cfg(feature = "v0_76")]
458    #[cfg_attr(docsrs, doc(cfg(feature = "v0_76")))]
459    pub fn vte_terminal_get_xalign(terminal: *mut VteTerminal) -> VteAlign;
460    #[cfg(feature = "v0_76")]
461    #[cfg_attr(docsrs, doc(cfg(feature = "v0_76")))]
462    pub fn vte_terminal_get_xfill(terminal: *mut VteTerminal) -> gboolean;
463    #[cfg(feature = "v0_76")]
464    #[cfg_attr(docsrs, doc(cfg(feature = "v0_76")))]
465    pub fn vte_terminal_get_yalign(terminal: *mut VteTerminal) -> VteAlign;
466    #[cfg(feature = "v0_76")]
467    #[cfg_attr(docsrs, doc(cfg(feature = "v0_76")))]
468    pub fn vte_terminal_get_yfill(terminal: *mut VteTerminal) -> gboolean;
469    #[cfg(feature = "v0_50")]
470    #[cfg_attr(docsrs, doc(cfg(feature = "v0_50")))]
471    pub fn vte_terminal_hyperlink_check_event(terminal: *mut VteTerminal, event: *mut gdk::GdkEvent) -> *mut c_char;
472    pub fn vte_terminal_match_add_gregex(terminal: *mut VteTerminal, gregex: *mut glib::GRegex, gflags: glib::GRegexMatchFlags) -> c_int;
473    #[cfg(feature = "v0_46")]
474    #[cfg_attr(docsrs, doc(cfg(feature = "v0_46")))]
475    pub fn vte_terminal_match_add_regex(terminal: *mut VteTerminal, regex: *mut VteRegex, flags: u32) -> c_int;
476    pub fn vte_terminal_match_check(terminal: *mut VteTerminal, column: c_long, row: c_long, tag: *mut c_int) -> *mut c_char;
477    pub fn vte_terminal_match_check_event(terminal: *mut VteTerminal, event: *mut gdk::GdkEvent, tag: *mut c_int) -> *mut c_char;
478    pub fn vte_terminal_match_remove(terminal: *mut VteTerminal, tag: c_int);
479    pub fn vte_terminal_match_remove_all(terminal: *mut VteTerminal);
480    pub fn vte_terminal_match_set_cursor(terminal: *mut VteTerminal, tag: c_int, cursor: *mut gdk::GdkCursor);
481    pub fn vte_terminal_match_set_cursor_name(terminal: *mut VteTerminal, tag: c_int, cursor_name: *const c_char);
482    pub fn vte_terminal_match_set_cursor_type(terminal: *mut VteTerminal, tag: c_int, cursor_type: gdk::GdkCursorType);
483    pub fn vte_terminal_paste_clipboard(terminal: *mut VteTerminal);
484    pub fn vte_terminal_paste_primary(terminal: *mut VteTerminal);
485    #[cfg(feature = "v0_68")]
486    #[cfg_attr(docsrs, doc(cfg(feature = "v0_68")))]
487    pub fn vte_terminal_paste_text(terminal: *mut VteTerminal, text: *const c_char);
488    pub fn vte_terminal_pty_new_sync(terminal: *mut VteTerminal, flags: VtePtyFlags, cancellable: *mut gio::GCancellable, error: *mut *mut glib::GError) -> *mut VtePty;
489    pub fn vte_terminal_reset(terminal: *mut VteTerminal, clear_tabstops: gboolean, clear_history: gboolean);
490    pub fn vte_terminal_search_find_next(terminal: *mut VteTerminal) -> gboolean;
491    pub fn vte_terminal_search_find_previous(terminal: *mut VteTerminal) -> gboolean;
492    pub fn vte_terminal_search_get_gregex(terminal: *mut VteTerminal) -> *mut glib::GRegex;
493    #[cfg(feature = "v0_46")]
494    #[cfg_attr(docsrs, doc(cfg(feature = "v0_46")))]
495    pub fn vte_terminal_search_get_regex(terminal: *mut VteTerminal) -> *mut VteRegex;
496    pub fn vte_terminal_search_get_wrap_around(terminal: *mut VteTerminal) -> gboolean;
497    pub fn vte_terminal_search_set_gregex(terminal: *mut VteTerminal, gregex: *mut glib::GRegex, gflags: glib::GRegexMatchFlags);
498    #[cfg(feature = "v0_46")]
499    #[cfg_attr(docsrs, doc(cfg(feature = "v0_46")))]
500    pub fn vte_terminal_search_set_regex(terminal: *mut VteTerminal, regex: *mut VteRegex, flags: u32);
501    pub fn vte_terminal_search_set_wrap_around(terminal: *mut VteTerminal, wrap_around: gboolean);
502    pub fn vte_terminal_select_all(terminal: *mut VteTerminal);
503    pub fn vte_terminal_set_allow_bold(terminal: *mut VteTerminal, allow_bold: gboolean);
504    #[cfg(feature = "v0_50")]
505    #[cfg_attr(docsrs, doc(cfg(feature = "v0_50")))]
506    pub fn vte_terminal_set_allow_hyperlink(terminal: *mut VteTerminal, allow_hyperlink: gboolean);
507    pub fn vte_terminal_set_audible_bell(terminal: *mut VteTerminal, is_audible: gboolean);
508    pub fn vte_terminal_set_backspace_binding(terminal: *mut VteTerminal, binding: VteEraseBinding);
509    #[cfg(feature = "v0_52")]
510    #[cfg_attr(docsrs, doc(cfg(feature = "v0_52")))]
511    pub fn vte_terminal_set_bold_is_bright(terminal: *mut VteTerminal, bold_is_bright: gboolean);
512    #[cfg(feature = "v0_52")]
513    #[cfg_attr(docsrs, doc(cfg(feature = "v0_52")))]
514    pub fn vte_terminal_set_cell_height_scale(terminal: *mut VteTerminal, scale: c_double);
515    #[cfg(feature = "v0_52")]
516    #[cfg_attr(docsrs, doc(cfg(feature = "v0_52")))]
517    pub fn vte_terminal_set_cell_width_scale(terminal: *mut VteTerminal, scale: c_double);
518    pub fn vte_terminal_set_cjk_ambiguous_width(terminal: *mut VteTerminal, width: c_int);
519    #[cfg(feature = "v0_52")]
520    #[cfg_attr(docsrs, doc(cfg(feature = "v0_52")))]
521    pub fn vte_terminal_set_clear_background(terminal: *mut VteTerminal, setting: gboolean);
522    pub fn vte_terminal_set_color_background(terminal: *mut VteTerminal, background: *const gdk::GdkRGBA);
523    pub fn vte_terminal_set_color_bold(terminal: *mut VteTerminal, bold: *const gdk::GdkRGBA);
524    pub fn vte_terminal_set_color_cursor(terminal: *mut VteTerminal, cursor_background: *const gdk::GdkRGBA);
525    #[cfg(feature = "v0_44")]
526    #[cfg_attr(docsrs, doc(cfg(feature = "v0_44")))]
527    pub fn vte_terminal_set_color_cursor_foreground(terminal: *mut VteTerminal, cursor_foreground: *const gdk::GdkRGBA);
528    pub fn vte_terminal_set_color_foreground(terminal: *mut VteTerminal, foreground: *const gdk::GdkRGBA);
529    pub fn vte_terminal_set_color_highlight(terminal: *mut VteTerminal, highlight_background: *const gdk::GdkRGBA);
530    pub fn vte_terminal_set_color_highlight_foreground(terminal: *mut VteTerminal, highlight_foreground: *const gdk::GdkRGBA);
531    pub fn vte_terminal_set_colors(terminal: *mut VteTerminal, foreground: *const gdk::GdkRGBA, background: *const gdk::GdkRGBA, palette: *const gdk::GdkRGBA, palette_size: size_t);
532    pub fn vte_terminal_set_cursor_blink_mode(terminal: *mut VteTerminal, mode: VteCursorBlinkMode);
533    pub fn vte_terminal_set_cursor_shape(terminal: *mut VteTerminal, shape: VteCursorShape);
534    pub fn vte_terminal_set_default_colors(terminal: *mut VteTerminal);
535    pub fn vte_terminal_set_delete_binding(terminal: *mut VteTerminal, binding: VteEraseBinding);
536    #[cfg(feature = "v0_58")]
537    #[cfg_attr(docsrs, doc(cfg(feature = "v0_58")))]
538    pub fn vte_terminal_set_enable_bidi(terminal: *mut VteTerminal, enable_bidi: gboolean);
539    #[cfg(feature = "v0_64")]
540    #[cfg_attr(docsrs, doc(cfg(feature = "v0_64")))]
541    pub fn vte_terminal_set_enable_fallback_scrolling(terminal: *mut VteTerminal, enable: gboolean);
542    #[cfg(feature = "v0_58")]
543    #[cfg_attr(docsrs, doc(cfg(feature = "v0_58")))]
544    pub fn vte_terminal_set_enable_shaping(terminal: *mut VteTerminal, enable_shaping: gboolean);
545    #[cfg(feature = "v0_62")]
546    #[cfg_attr(docsrs, doc(cfg(feature = "v0_62")))]
547    pub fn vte_terminal_set_enable_sixel(terminal: *mut VteTerminal, enabled: gboolean);
548    pub fn vte_terminal_set_encoding(terminal: *mut VteTerminal, codeset: *const c_char, error: *mut *mut glib::GError) -> gboolean;
549    pub fn vte_terminal_set_font(terminal: *mut VteTerminal, font_desc: *const pango::PangoFontDescription);
550    #[cfg(feature = "v0_74")]
551    #[cfg_attr(docsrs, doc(cfg(feature = "v0_74")))]
552    pub fn vte_terminal_set_font_options(terminal: *mut VteTerminal, font_options: *const cairo::cairo_font_options_t);
553    pub fn vte_terminal_set_font_scale(terminal: *mut VteTerminal, scale: c_double);
554    pub fn vte_terminal_set_geometry_hints_for_window(terminal: *mut VteTerminal, window: *mut gtk::GtkWindow);
555    pub fn vte_terminal_set_input_enabled(terminal: *mut VteTerminal, enabled: gboolean);
556    pub fn vte_terminal_set_mouse_autohide(terminal: *mut VteTerminal, setting: gboolean);
557    pub fn vte_terminal_set_pty(terminal: *mut VteTerminal, pty: *mut VtePty);
558    pub fn vte_terminal_set_rewrap_on_resize(terminal: *mut VteTerminal, rewrap: gboolean);
559    pub fn vte_terminal_set_scroll_on_keystroke(terminal: *mut VteTerminal, scroll: gboolean);
560    pub fn vte_terminal_set_scroll_on_output(terminal: *mut VteTerminal, scroll: gboolean);
561    #[cfg(feature = "v0_66")]
562    #[cfg_attr(docsrs, doc(cfg(feature = "v0_66")))]
563    pub fn vte_terminal_set_scroll_unit_is_pixels(terminal: *mut VteTerminal, enable: gboolean);
564    pub fn vte_terminal_set_scrollback_lines(terminal: *mut VteTerminal, lines: c_long);
565    pub fn vte_terminal_set_size(terminal: *mut VteTerminal, columns: c_long, rows: c_long);
566    #[cfg(feature = "v0_52")]
567    #[cfg_attr(docsrs, doc(cfg(feature = "v0_52")))]
568    pub fn vte_terminal_set_text_blink_mode(terminal: *mut VteTerminal, text_blink_mode: VteTextBlinkMode);
569    #[cfg(feature = "v0_40")]
570    #[cfg_attr(docsrs, doc(cfg(feature = "v0_40")))]
571    pub fn vte_terminal_set_word_char_exceptions(terminal: *mut VteTerminal, exceptions: *const c_char);
572    #[cfg(feature = "v0_76")]
573    #[cfg_attr(docsrs, doc(cfg(feature = "v0_76")))]
574    pub fn vte_terminal_set_xalign(terminal: *mut VteTerminal, align: VteAlign);
575    #[cfg(feature = "v0_76")]
576    #[cfg_attr(docsrs, doc(cfg(feature = "v0_76")))]
577    pub fn vte_terminal_set_xfill(terminal: *mut VteTerminal, fill: gboolean);
578    #[cfg(feature = "v0_76")]
579    #[cfg_attr(docsrs, doc(cfg(feature = "v0_76")))]
580    pub fn vte_terminal_set_yalign(terminal: *mut VteTerminal, align: VteAlign);
581    #[cfg(feature = "v0_76")]
582    #[cfg_attr(docsrs, doc(cfg(feature = "v0_76")))]
583    pub fn vte_terminal_set_yfill(terminal: *mut VteTerminal, fill: gboolean);
584    #[cfg(feature = "v0_48")]
585    #[cfg_attr(docsrs, doc(cfg(feature = "v0_48")))]
586    pub fn vte_terminal_spawn_async(terminal: *mut VteTerminal, pty_flags: VtePtyFlags, working_directory: *const c_char, argv: *mut *mut c_char, envv: *mut *mut c_char, spawn_flags: glib::GSpawnFlags, child_setup: glib::GSpawnChildSetupFunc, child_setup_data: gpointer, child_setup_data_destroy: glib::GDestroyNotify, timeout: c_int, cancellable: *mut gio::GCancellable, callback: VteTerminalSpawnAsyncCallback, user_data: gpointer);
587    pub fn vte_terminal_spawn_sync(terminal: *mut VteTerminal, pty_flags: VtePtyFlags, working_directory: *const c_char, argv: *mut *mut c_char, envv: *mut *mut c_char, spawn_flags: glib::GSpawnFlags, child_setup: glib::GSpawnChildSetupFunc, child_setup_data: gpointer, child_pid: *mut glib::GPid, cancellable: *mut gio::GCancellable, error: *mut *mut glib::GError) -> gboolean;
588    #[cfg(feature = "v0_62")]
589    #[cfg_attr(docsrs, doc(cfg(feature = "v0_62")))]
590    pub fn vte_terminal_spawn_with_fds_async(terminal: *mut VteTerminal, pty_flags: VtePtyFlags, working_directory: *const c_char, argv: *const *const c_char, envv: *const *const c_char, fds: *const c_int, n_fds: c_int, map_fds: *const c_int, n_map_fds: c_int, spawn_flags: glib::GSpawnFlags, child_setup: glib::GSpawnChildSetupFunc, child_setup_data: gpointer, child_setup_data_destroy: glib::GDestroyNotify, timeout: c_int, cancellable: *mut gio::GCancellable, callback: VteTerminalSpawnAsyncCallback, user_data: gpointer);
591    pub fn vte_terminal_unselect_all(terminal: *mut VteTerminal);
592    pub fn vte_terminal_watch_child(terminal: *mut VteTerminal, child_pid: glib::GPid);
593    pub fn vte_terminal_write_contents_sync(terminal: *mut VteTerminal, stream: *mut gio::GOutputStream, flags: VteWriteFlags, cancellable: *mut gio::GCancellable, error: *mut *mut glib::GError) -> gboolean;
594
595    //=========================================================================
596    // Other functions
597    //=========================================================================
598    #[cfg(feature = "v0_60")]
599    #[cfg_attr(docsrs, doc(cfg(feature = "v0_60")))]
600    pub fn vte_get_encoding_supported(encoding: *const c_char) -> gboolean;
601    #[cfg(feature = "v0_60")]
602    #[cfg_attr(docsrs, doc(cfg(feature = "v0_60")))]
603    pub fn vte_get_encodings(include_aliases: gboolean) -> *mut *mut c_char;
604    #[cfg(feature = "v0_62")]
605    #[cfg_attr(docsrs, doc(cfg(feature = "v0_62")))]
606    pub fn vte_get_feature_flags() -> VteFeatureFlags;
607    #[cfg(feature = "v0_40")]
608    #[cfg_attr(docsrs, doc(cfg(feature = "v0_40")))]
609    pub fn vte_get_features() -> *const c_char;
610    #[cfg(feature = "v0_40")]
611    #[cfg_attr(docsrs, doc(cfg(feature = "v0_40")))]
612    pub fn vte_get_major_version() -> c_uint;
613    #[cfg(feature = "v0_40")]
614    #[cfg_attr(docsrs, doc(cfg(feature = "v0_40")))]
615    pub fn vte_get_micro_version() -> c_uint;
616    #[cfg(feature = "v0_40")]
617    #[cfg_attr(docsrs, doc(cfg(feature = "v0_40")))]
618    pub fn vte_get_minor_version() -> c_uint;
619    pub fn vte_get_user_shell() -> *mut c_char;
620    #[cfg(feature = "v0_54")]
621    #[cfg_attr(docsrs, doc(cfg(feature = "v0_54")))]
622    pub fn vte_set_test_flags(flags: u64);
623
624}