Skip to main content

vte_sys/
lib.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from
3// from gir-files (https://github.com/gtk-rs/gir-files.git)
4// DO NOT EDIT
5
6#![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)]
7#![allow(
8    clippy::approx_constant,
9    clippy::type_complexity,
10    clippy::unreadable_literal,
11    clippy::upper_case_acronyms
12)]
13#![cfg_attr(docsrs, feature(doc_cfg))]
14
15use cairo_sys as cairo;
16use gdk4_sys as gdk;
17use gio_sys as gio;
18use glib_sys as glib;
19use gobject_sys as gobject;
20use gtk4_sys as gtk;
21use pango_sys as pango;
22
23#[cfg(unix)]
24#[allow(unused_imports)]
25use libc::{dev_t, gid_t, pid_t, socklen_t, uid_t};
26#[allow(unused_imports)]
27use libc::{intptr_t, off_t, size_t, ssize_t, time_t, uintptr_t, FILE};
28#[allow(unused_imports)]
29use std::ffi::{
30    c_char, c_double, c_float, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void,
31};
32
33#[allow(unused_imports)]
34use glib::{gboolean, gconstpointer, gpointer, GType};
35
36// Enums
37pub type VteAlign = c_int;
38pub const VTE_ALIGN_START: VteAlign = 0;
39pub const VTE_ALIGN_CENTER: VteAlign = 1;
40pub const VTE_ALIGN_END: VteAlign = 2;
41
42pub type VteCursorBlinkMode = c_int;
43pub const VTE_CURSOR_BLINK_SYSTEM: VteCursorBlinkMode = 0;
44pub const VTE_CURSOR_BLINK_ON: VteCursorBlinkMode = 1;
45pub const VTE_CURSOR_BLINK_OFF: VteCursorBlinkMode = 2;
46
47pub type VteCursorShape = c_int;
48pub const VTE_CURSOR_SHAPE_BLOCK: VteCursorShape = 0;
49pub const VTE_CURSOR_SHAPE_IBEAM: VteCursorShape = 1;
50pub const VTE_CURSOR_SHAPE_UNDERLINE: VteCursorShape = 2;
51
52pub type VteEraseBinding = c_int;
53pub const VTE_ERASE_AUTO: VteEraseBinding = 0;
54pub const VTE_ERASE_ASCII_BACKSPACE: VteEraseBinding = 1;
55pub const VTE_ERASE_ASCII_DELETE: VteEraseBinding = 2;
56pub const VTE_ERASE_DELETE_SEQUENCE: VteEraseBinding = 3;
57pub const VTE_ERASE_TTY: VteEraseBinding = 4;
58
59pub type VteFormat = c_int;
60pub const VTE_FORMAT_TEXT: VteFormat = 1;
61pub const VTE_FORMAT_HTML: VteFormat = 2;
62
63pub type VteProgressHint = c_int;
64pub const VTE_PROGRESS_HINT_INACTIVE: VteProgressHint = 0;
65pub const VTE_PROGRESS_HINT_ACTIVE: VteProgressHint = 1;
66pub const VTE_PROGRESS_HINT_ERROR: VteProgressHint = 2;
67pub const VTE_PROGRESS_HINT_INDETERMINATE: VteProgressHint = 3;
68pub const VTE_PROGRESS_HINT_PAUSED: VteProgressHint = 4;
69
70pub type VtePropertyId = c_int;
71pub const VTE_PROPERTY_ID_CURRENT_DIRECTORY_URI: VtePropertyId = 0;
72pub const VTE_PROPERTY_ID_CURRENT_FILE_URI: VtePropertyId = 1;
73pub const VTE_PROPERTY_ID_XTERM_TITLE: VtePropertyId = 2;
74pub const VTE_PROPERTY_ID_CONTAINER_NAME: VtePropertyId = 3;
75pub const VTE_PROPERTY_ID_CONTAINER_RUNTIME: VtePropertyId = 4;
76pub const VTE_PROPERTY_ID_CONTAINER_UID: VtePropertyId = 5;
77pub const VTE_PROPERTY_ID_SHELL_PRECMD: VtePropertyId = 6;
78pub const VTE_PROPERTY_ID_SHELL_PREEXEC: VtePropertyId = 7;
79pub const VTE_PROPERTY_ID_SHELL_POSTEXEC: VtePropertyId = 8;
80pub const VTE_PROPERTY_ID_PROGRESS_HINT: VtePropertyId = 9;
81pub const VTE_PROPERTY_ID_PROGRESS_VALUE: VtePropertyId = 10;
82pub const VTE_PROPERTY_ID_ICON_COLOR: VtePropertyId = 11;
83pub const VTE_PROPERTY_ID_ICON_IMAGE: VtePropertyId = 12;
84
85pub type VtePropertyType = c_int;
86pub const VTE_PROPERTY_VALUELESS: VtePropertyType = 0;
87pub const VTE_PROPERTY_BOOL: VtePropertyType = 1;
88pub const VTE_PROPERTY_INT: VtePropertyType = 2;
89pub const VTE_PROPERTY_UINT: VtePropertyType = 3;
90pub const VTE_PROPERTY_DOUBLE: VtePropertyType = 4;
91pub const VTE_PROPERTY_RGB: VtePropertyType = 5;
92pub const VTE_PROPERTY_RGBA: VtePropertyType = 6;
93pub const VTE_PROPERTY_STRING: VtePropertyType = 7;
94pub const VTE_PROPERTY_DATA: VtePropertyType = 8;
95pub const VTE_PROPERTY_UUID: VtePropertyType = 9;
96pub const VTE_PROPERTY_URI: VtePropertyType = 10;
97pub const VTE_PROPERTY_IMAGE: VtePropertyType = 11;
98
99pub type VtePtyError = c_int;
100pub const VTE_PTY_ERROR_PTY_HELPER_FAILED: VtePtyError = 0;
101pub const VTE_PTY_ERROR_PTY98_FAILED: VtePtyError = 1;
102
103pub type VteRegexError = c_int;
104pub const VTE_REGEX_ERROR_INCOMPATIBLE: VteRegexError = 2147483646;
105pub const VTE_REGEX_ERROR_NOT_SUPPORTED: VteRegexError = 2147483647;
106
107pub type VteSystemdContextExitCondition = c_int;
108pub const VTE_SYSTEMD_CONTEXT_EXIT_CONDITION_SUCCESS: VteSystemdContextExitCondition = 0;
109pub const VTE_SYSTEMD_CONTEXT_EXIT_CONDITION_CRASH: VteSystemdContextExitCondition = 1;
110pub const VTE_SYSTEMD_CONTEXT_EXIT_CONDITION_FAILURE: VteSystemdContextExitCondition = 2;
111pub const VTE_SYSTEMD_CONTEXT_EXIT_CONDITION_INTERRUPT: VteSystemdContextExitCondition = 3;
112
113pub type VteSystemdContextOperation = c_int;
114pub const VTE_SYSTEMD_CONTEXT_OPERATION_START: VteSystemdContextOperation = 1;
115pub const VTE_SYSTEMD_CONTEXT_OPERATION_END: VteSystemdContextOperation = 2;
116
117pub type VteSystemdContextType = c_int;
118pub const VTE_SYSTEMD_CONTEXT_TYPE_BUILTIN: VteSystemdContextType = 0;
119pub const VTE_SYSTEMD_CONTEXT_TYPE_APP: VteSystemdContextType = 1;
120pub const VTE_SYSTEMD_CONTEXT_TYPE_BOOT: VteSystemdContextType = 2;
121pub const VTE_SYSTEMD_CONTEXT_TYPE_CHPRIV: VteSystemdContextType = 3;
122pub const VTE_SYSTEMD_CONTEXT_TYPE_COMMAND: VteSystemdContextType = 4;
123pub const VTE_SYSTEMD_CONTEXT_TYPE_CONTAINER: VteSystemdContextType = 5;
124pub const VTE_SYSTEMD_CONTEXT_TYPE_ELEVATE: VteSystemdContextType = 6;
125pub const VTE_SYSTEMD_CONTEXT_TYPE_REMOTE: VteSystemdContextType = 7;
126pub const VTE_SYSTEMD_CONTEXT_TYPE_SERVICE: VteSystemdContextType = 8;
127pub const VTE_SYSTEMD_CONTEXT_TYPE_SESSION: VteSystemdContextType = 9;
128pub const VTE_SYSTEMD_CONTEXT_TYPE_SHELL: VteSystemdContextType = 10;
129pub const VTE_SYSTEMD_CONTEXT_TYPE_SUBCONTEXT: VteSystemdContextType = 11;
130pub const VTE_SYSTEMD_CONTEXT_TYPE_VM: VteSystemdContextType = 12;
131
132pub type VteSystemdPropertyId = c_int;
133pub const VTE_SYSTEMD_PROPERTY_ID_CONTEXT_ID: VteSystemdPropertyId = 0;
134pub const VTE_SYSTEMD_PROPERTY_ID_BOOT_ID: VteSystemdPropertyId = 1;
135pub const VTE_SYSTEMD_PROPERTY_ID_COMM: VteSystemdPropertyId = 2;
136pub const VTE_SYSTEMD_PROPERTY_ID_COMMAND_LINE: VteSystemdPropertyId = 3;
137pub const VTE_SYSTEMD_PROPERTY_ID_CONTAINER: VteSystemdPropertyId = 4;
138pub const VTE_SYSTEMD_PROPERTY_ID_CONTEXT_TYPE: VteSystemdPropertyId = 5;
139pub const VTE_SYSTEMD_PROPERTY_ID_CURRENT_DIRECTORY: VteSystemdPropertyId = 6;
140pub const VTE_SYSTEMD_PROPERTY_ID_EXIT_CONDITION: VteSystemdPropertyId = 7;
141pub const VTE_SYSTEMD_PROPERTY_ID_EXIT_SIGNAL: VteSystemdPropertyId = 8;
142pub const VTE_SYSTEMD_PROPERTY_ID_EXIT_STATUS: VteSystemdPropertyId = 9;
143pub const VTE_SYSTEMD_PROPERTY_ID_HOSTNAME: VteSystemdPropertyId = 10;
144pub const VTE_SYSTEMD_PROPERTY_ID_MACHINE_ID: VteSystemdPropertyId = 11;
145pub const VTE_SYSTEMD_PROPERTY_ID_PID: VteSystemdPropertyId = 12;
146pub const VTE_SYSTEMD_PROPERTY_ID_PIDFD_INODE: VteSystemdPropertyId = 13;
147pub const VTE_SYSTEMD_PROPERTY_ID_TARGET_HOST: VteSystemdPropertyId = 14;
148pub const VTE_SYSTEMD_PROPERTY_ID_TARGET_USER: VteSystemdPropertyId = 15;
149pub const VTE_SYSTEMD_PROPERTY_ID_USER: VteSystemdPropertyId = 16;
150pub const VTE_SYSTEMD_PROPERTY_ID_VM: VteSystemdPropertyId = 17;
151
152pub type VteTextBlinkMode = c_int;
153pub const VTE_TEXT_BLINK_NEVER: VteTextBlinkMode = 0;
154pub const VTE_TEXT_BLINK_FOCUSED: VteTextBlinkMode = 1;
155pub const VTE_TEXT_BLINK_UNFOCUSED: VteTextBlinkMode = 2;
156pub const VTE_TEXT_BLINK_ALWAYS: VteTextBlinkMode = 3;
157
158pub type VteWriteFlags = c_int;
159pub const VTE_WRITE_DEFAULT: VteWriteFlags = 0;
160
161// Constants
162pub const VTE_REGEX_FLAGS_DEFAULT: c_int = 1075314688;
163pub const VTE_SPAWN_NO_PARENT_ENVV: c_int = 33554432;
164pub const VTE_SPAWN_NO_SYSTEMD_SCOPE: c_int = 67108864;
165pub const VTE_SPAWN_REQUIRE_SYSTEMD_SCOPE: c_int = 134217728;
166pub const VTE_SYSTEMD_PROPERTY_BOOT_ID: &[u8] = b"bootid\0";
167pub const VTE_SYSTEMD_PROPERTY_COMM: &[u8] = b"comm\0";
168pub const VTE_SYSTEMD_PROPERTY_COMMAND_LINE: &[u8] = b"cmdline\0";
169pub const VTE_SYSTEMD_PROPERTY_CONTAINER: &[u8] = b"container\0";
170pub const VTE_SYSTEMD_PROPERTY_CONTEXT_ID: &[u8] = b"context-id\0";
171pub const VTE_SYSTEMD_PROPERTY_CONTEXT_TYPE: &[u8] = b"type\0";
172pub const VTE_SYSTEMD_PROPERTY_CURRENT_DIRECTORY: &[u8] = b"cwd\0";
173pub const VTE_SYSTEMD_PROPERTY_EXIT_CONDITION: &[u8] = b"exit\0";
174pub const VTE_SYSTEMD_PROPERTY_EXIT_SIGNAL: &[u8] = b"signal\0";
175pub const VTE_SYSTEMD_PROPERTY_EXIT_STATUS: &[u8] = b"status\0";
176pub const VTE_SYSTEMD_PROPERTY_HOSTNAME: &[u8] = b"hostname\0";
177pub const VTE_SYSTEMD_PROPERTY_MACHINE_ID: &[u8] = b"machineid\0";
178pub const VTE_SYSTEMD_PROPERTY_PID: &[u8] = b"pid\0";
179pub const VTE_SYSTEMD_PROPERTY_PIDFD_INODE: &[u8] = b"pidfdid\0";
180pub const VTE_SYSTEMD_PROPERTY_TARGET_HOST: &[u8] = b"targethost\0";
181pub const VTE_SYSTEMD_PROPERTY_TARGET_USER: &[u8] = b"targetuser\0";
182pub const VTE_SYSTEMD_PROPERTY_USER: &[u8] = b"user\0";
183pub const VTE_SYSTEMD_PROPERTY_VM: &[u8] = b"vm\0";
184pub const VTE_TERMPROP_CONTAINER_NAME: &[u8] = b"vte.container.name\0";
185pub const VTE_TERMPROP_CONTAINER_RUNTIME: &[u8] = b"vte.container.runtime\0";
186pub const VTE_TERMPROP_CONTAINER_UID: &[u8] = b"vte.container.uid\0";
187pub const VTE_TERMPROP_CURRENT_DIRECTORY_URI: &[u8] = b"vte.cwd\0";
188pub const VTE_TERMPROP_CURRENT_FILE_URI: &[u8] = b"vte.cwf\0";
189pub const VTE_TERMPROP_ICON_COLOR: &[u8] = b"vte.icon.color\0";
190pub const VTE_TERMPROP_ICON_IMAGE: &[u8] = b"vte.icon.image\0";
191pub const VTE_TERMPROP_NAME_PREFIX: &[u8] = b"vte.ext.\0";
192pub const VTE_TERMPROP_PROGRESS_HINT: &[u8] = b"vte.progress.hint\0";
193pub const VTE_TERMPROP_PROGRESS_VALUE: &[u8] = b"vte.progress.value\0";
194pub const VTE_TERMPROP_SHELL_POSTEXEC: &[u8] = b"vte.shell.postexec\0";
195pub const VTE_TERMPROP_SHELL_PRECMD: &[u8] = b"vte.shell.precmd\0";
196pub const VTE_TERMPROP_SHELL_PREEXEC: &[u8] = b"vte.shell.preexec\0";
197pub const VTE_TERMPROP_XTERM_TITLE: &[u8] = b"xterm.title\0";
198pub const VTE_TEST_FLAGS_ALL: u64 = 18446744073709551615;
199pub const VTE_TEST_FLAGS_NONE: u64 = 0;
200
201// Flags
202pub type VteFeatureFlags = c_uint;
203pub const VTE_FEATURE_FLAG_BIDI: VteFeatureFlags = 1;
204pub const VTE_FEATURE_FLAG_ICU: VteFeatureFlags = 2;
205pub const VTE_FEATURE_FLAG_SYSTEMD: VteFeatureFlags = 4;
206pub const VTE_FEATURE_FLAG_SIXEL: VteFeatureFlags = 8;
207
208pub type VtePropertyFlags = c_uint;
209pub const VTE_PROPERTY_FLAG_NONE: VtePropertyFlags = 0;
210pub const VTE_PROPERTY_FLAG_EPHEMERAL: VtePropertyFlags = 1;
211
212pub type VtePtyFlags = c_uint;
213pub const VTE_PTY_NO_LASTLOG: VtePtyFlags = 1;
214pub const VTE_PTY_NO_UTMP: VtePtyFlags = 2;
215pub const VTE_PTY_NO_WTMP: VtePtyFlags = 4;
216pub const VTE_PTY_NO_HELPER: VtePtyFlags = 8;
217pub const VTE_PTY_NO_FALLBACK: VtePtyFlags = 16;
218pub const VTE_PTY_NO_SESSION: VtePtyFlags = 32;
219pub const VTE_PTY_NO_CTTY: VtePtyFlags = 64;
220pub const VTE_PTY_DEFAULT: VtePtyFlags = 0;
221
222pub type VteUuidFormat = c_uint;
223pub const VTE_UUID_FORMAT_SIMPLE: VteUuidFormat = 1;
224pub const VTE_UUID_FORMAT_BRACED: VteUuidFormat = 2;
225pub const VTE_UUID_FORMAT_URN: VteUuidFormat = 4;
226pub const VTE_UUID_FORMAT_ANY: VteUuidFormat = 7;
227pub const VTE_UUID_FORMAT_ID128: VteUuidFormat = 8;
228pub const VTE_UUID_FORMAT_ANY_ID128: VteUuidFormat = 15;
229
230// Callbacks
231pub type VteSelectionFunc =
232    Option<unsafe extern "C" fn(*mut VteTerminal, c_long, c_long, gpointer) -> gboolean>;
233pub type VteTerminalSpawnAsyncCallback =
234    Option<unsafe extern "C" fn(*mut VteTerminal, glib::GPid, *mut glib::GError, gpointer)>;
235
236// Records
237#[repr(C)]
238#[allow(dead_code)]
239pub struct VteCharAttributes {
240    pub row: c_long,
241    pub column: c_long,
242    pub fore: pango::PangoColor,
243    pub back: pango::PangoColor,
244    pub underline: c_uint,
245    _truncated_record_marker: c_void,
246    // field strikethrough has incomplete type
247}
248
249impl ::std::fmt::Debug for VteCharAttributes {
250    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
251        f.debug_struct(&format!("VteCharAttributes @ {self:p}"))
252            .finish()
253    }
254}
255
256#[repr(C)]
257#[allow(dead_code)]
258pub struct _VteEventContext {
259    _data: [u8; 0],
260    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
261}
262
263pub type VteEventContext = _VteEventContext;
264
265#[repr(C)]
266#[allow(dead_code)]
267pub struct _VteProperties {
268    _data: [u8; 0],
269    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
270}
271
272pub type VteProperties = _VteProperties;
273
274#[repr(C)]
275#[allow(dead_code)]
276pub struct _VtePropertiesRegistry {
277    _data: [u8; 0],
278    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
279}
280
281pub type VtePropertiesRegistry = _VtePropertiesRegistry;
282
283#[repr(C)]
284#[allow(dead_code)]
285pub struct _VtePtyClass {
286    _data: [u8; 0],
287    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
288}
289
290pub type VtePtyClass = _VtePtyClass;
291
292#[repr(C)]
293#[allow(dead_code)]
294pub struct VteRegex {
295    _data: [u8; 0],
296    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
297}
298
299impl ::std::fmt::Debug for VteRegex {
300    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
301        f.debug_struct(&format!("VteRegex @ {self:p}")).finish()
302    }
303}
304
305#[derive(Copy, Clone)]
306#[repr(C)]
307pub struct VteTerminalClass {
308    pub parent_class: gtk::GtkWidgetClass,
309    pub eof: Option<unsafe extern "C" fn(*mut VteTerminal)>,
310    pub child_exited: Option<unsafe extern "C" fn(*mut VteTerminal, c_int)>,
311    pub encoding_changed: Option<unsafe extern "C" fn(*mut VteTerminal)>,
312    pub char_size_changed: Option<unsafe extern "C" fn(*mut VteTerminal, c_uint, c_uint)>,
313    pub window_title_changed: Option<unsafe extern "C" fn(*mut VteTerminal)>,
314    pub icon_title_changed: Option<unsafe extern "C" fn(*mut VteTerminal)>,
315    pub selection_changed: Option<unsafe extern "C" fn(*mut VteTerminal)>,
316    pub contents_changed: Option<unsafe extern "C" fn(*mut VteTerminal)>,
317    pub cursor_moved: Option<unsafe extern "C" fn(*mut VteTerminal)>,
318    pub commit: Option<unsafe extern "C" fn(*mut VteTerminal, *const c_char, c_uint)>,
319    pub deiconify_window: Option<unsafe extern "C" fn(*mut VteTerminal)>,
320    pub iconify_window: Option<unsafe extern "C" fn(*mut VteTerminal)>,
321    pub raise_window: Option<unsafe extern "C" fn(*mut VteTerminal)>,
322    pub lower_window: Option<unsafe extern "C" fn(*mut VteTerminal)>,
323    pub refresh_window: Option<unsafe extern "C" fn(*mut VteTerminal)>,
324    pub restore_window: Option<unsafe extern "C" fn(*mut VteTerminal)>,
325    pub maximize_window: Option<unsafe extern "C" fn(*mut VteTerminal)>,
326    pub resize_window: Option<unsafe extern "C" fn(*mut VteTerminal, c_uint, c_uint)>,
327    pub move_window: Option<unsafe extern "C" fn(*mut VteTerminal, c_uint, c_uint)>,
328    pub increase_font_size: Option<unsafe extern "C" fn(*mut VteTerminal)>,
329    pub decrease_font_size: Option<unsafe extern "C" fn(*mut VteTerminal)>,
330    pub copy_clipboard: Option<unsafe extern "C" fn(*mut VteTerminal)>,
331    pub paste_clipboard: Option<unsafe extern "C" fn(*mut VteTerminal)>,
332    pub bell: Option<unsafe extern "C" fn(*mut VteTerminal)>,
333    pub setup_context_menu: Option<unsafe extern "C" fn(*mut VteTerminal, *const VteEventContext)>,
334    pub termprops_changed:
335        Option<unsafe extern "C" fn(*mut VteTerminal, *const c_int, c_int) -> gboolean>,
336    pub termprop_changed: Option<unsafe extern "C" fn(*mut VteTerminal, *const c_char)>,
337    pub systemd_context: Option<
338        unsafe extern "C" fn(*mut VteTerminal, VteSystemdContextOperation, *const VteProperties),
339    >,
340    pub _padding: [gpointer; 12],
341    pub priv_: *mut VteTerminalClassPrivate,
342}
343
344impl ::std::fmt::Debug for VteTerminalClass {
345    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
346        f.debug_struct(&format!("VteTerminalClass @ {self:p}"))
347            .field("parent_class", &self.parent_class)
348            .field("eof", &self.eof)
349            .field("child_exited", &self.child_exited)
350            .field("encoding_changed", &self.encoding_changed)
351            .field("char_size_changed", &self.char_size_changed)
352            .field("window_title_changed", &self.window_title_changed)
353            .field("icon_title_changed", &self.icon_title_changed)
354            .field("selection_changed", &self.selection_changed)
355            .field("contents_changed", &self.contents_changed)
356            .field("cursor_moved", &self.cursor_moved)
357            .field("commit", &self.commit)
358            .field("deiconify_window", &self.deiconify_window)
359            .field("iconify_window", &self.iconify_window)
360            .field("raise_window", &self.raise_window)
361            .field("lower_window", &self.lower_window)
362            .field("refresh_window", &self.refresh_window)
363            .field("restore_window", &self.restore_window)
364            .field("maximize_window", &self.maximize_window)
365            .field("resize_window", &self.resize_window)
366            .field("move_window", &self.move_window)
367            .field("increase_font_size", &self.increase_font_size)
368            .field("decrease_font_size", &self.decrease_font_size)
369            .field("copy_clipboard", &self.copy_clipboard)
370            .field("paste_clipboard", &self.paste_clipboard)
371            .field("bell", &self.bell)
372            .field("setup_context_menu", &self.setup_context_menu)
373            .field("termprops_changed", &self.termprops_changed)
374            .field("termprop_changed", &self.termprop_changed)
375            .field("systemd_context", &self.systemd_context)
376            .field("_padding", &self._padding)
377            .field("priv_", &self.priv_)
378            .finish()
379    }
380}
381
382#[repr(C)]
383#[allow(dead_code)]
384pub struct _VteTerminalClassPrivate {
385    _data: [u8; 0],
386    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
387}
388
389pub type VteTerminalClassPrivate = _VteTerminalClassPrivate;
390
391#[repr(C)]
392#[allow(dead_code)]
393pub struct VteUuid {
394    _data: [u8; 0],
395    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
396}
397
398impl ::std::fmt::Debug for VteUuid {
399    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
400        f.debug_struct(&format!("VteUuid @ {self:p}")).finish()
401    }
402}
403
404// Classes
405#[repr(C)]
406#[allow(dead_code)]
407pub struct VtePty {
408    _data: [u8; 0],
409    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
410}
411
412impl ::std::fmt::Debug for VtePty {
413    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
414        f.debug_struct(&format!("VtePty @ {self:p}")).finish()
415    }
416}
417
418#[derive(Copy, Clone)]
419#[repr(C)]
420pub struct VteTerminal {
421    pub widget: gtk::GtkWidget,
422}
423
424impl ::std::fmt::Debug for VteTerminal {
425    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
426        f.debug_struct(&format!("VteTerminal @ {self:p}"))
427            .field("widget", &self.widget)
428            .finish()
429    }
430}
431
432unsafe extern "C" {
433
434    //=========================================================================
435    // VteAlign
436    //=========================================================================
437    #[cfg(feature = "v0_76")]
438    #[cfg_attr(docsrs, doc(cfg(feature = "v0_76")))]
439    pub fn vte_align_get_type() -> GType;
440
441    //=========================================================================
442    // VteCursorBlinkMode
443    //=========================================================================
444    pub fn vte_cursor_blink_mode_get_type() -> GType;
445
446    //=========================================================================
447    // VteCursorShape
448    //=========================================================================
449    pub fn vte_cursor_shape_get_type() -> GType;
450
451    //=========================================================================
452    // VteEraseBinding
453    //=========================================================================
454    pub fn vte_erase_binding_get_type() -> GType;
455
456    //=========================================================================
457    // VteFormat
458    //=========================================================================
459    pub fn vte_format_get_type() -> GType;
460
461    //=========================================================================
462    // VteProgressHint
463    //=========================================================================
464    #[cfg(feature = "v0_80")]
465    #[cfg_attr(docsrs, doc(cfg(feature = "v0_80")))]
466    pub fn vte_progress_hint_get_type() -> GType;
467
468    //=========================================================================
469    // VtePropertyId
470    //=========================================================================
471    #[cfg(feature = "v0_78")]
472    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
473    pub fn vte_property_id_get_type() -> GType;
474
475    //=========================================================================
476    // VtePropertyType
477    //=========================================================================
478    #[cfg(feature = "v0_78")]
479    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
480    pub fn vte_property_type_get_type() -> GType;
481
482    //=========================================================================
483    // VtePtyError
484    //=========================================================================
485    pub fn vte_pty_error_get_type() -> GType;
486    pub fn vte_pty_error_quark() -> glib::GQuark;
487
488    //=========================================================================
489    // VteRegexError
490    //=========================================================================
491    pub fn vte_regex_error_get_type() -> GType;
492    pub fn vte_regex_error_quark() -> glib::GQuark;
493
494    //=========================================================================
495    // VteSystemdContextExitCondition
496    //=========================================================================
497    #[cfg(feature = "v0_86")]
498    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
499    pub fn vte_systemd_context_exit_condition_get_type() -> GType;
500
501    //=========================================================================
502    // VteSystemdContextOperation
503    //=========================================================================
504    pub fn vte_systemd_context_operation_get_type() -> GType;
505
506    //=========================================================================
507    // VteSystemdContextType
508    //=========================================================================
509    #[cfg(feature = "v0_86")]
510    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
511    pub fn vte_systemd_context_type_get_type() -> GType;
512
513    //=========================================================================
514    // VteSystemdPropertyId
515    //=========================================================================
516    #[cfg(feature = "v0_86")]
517    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
518    pub fn vte_systemd_property_id_get_type() -> GType;
519
520    //=========================================================================
521    // VteTextBlinkMode
522    //=========================================================================
523    pub fn vte_text_blink_mode_get_type() -> GType;
524
525    //=========================================================================
526    // VteWriteFlags
527    //=========================================================================
528    pub fn vte_write_flags_get_type() -> GType;
529
530    //=========================================================================
531    // VtePropertyFlags
532    //=========================================================================
533    #[cfg(feature = "v0_78")]
534    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
535    pub fn vte_property_flags_get_type() -> GType;
536
537    //=========================================================================
538    // VtePtyFlags
539    //=========================================================================
540    pub fn vte_pty_flags_get_type() -> GType;
541
542    //=========================================================================
543    // VteUuidFormat
544    //=========================================================================
545    pub fn vte_uuid_format_get_type() -> GType;
546
547    //=========================================================================
548    // VteEventContext
549    //=========================================================================
550    #[cfg(feature = "v0_76")]
551    #[cfg_attr(docsrs, doc(cfg(feature = "v0_76")))]
552    pub fn vte_event_context_get_type() -> GType;
553    #[cfg(feature = "v0_76")]
554    #[cfg_attr(docsrs, doc(cfg(feature = "v0_76")))]
555    pub fn vte_event_context_get_coordinates(
556        context: *const VteEventContext,
557        x: *mut c_double,
558        y: *mut c_double,
559    ) -> gboolean;
560
561    //=========================================================================
562    // VteProperties
563    //=========================================================================
564    #[cfg(feature = "v0_86")]
565    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
566    pub fn vte_properties_dup_property_string(
567        properties: *const VteProperties,
568        prop: *const c_char,
569        size: *mut size_t,
570    ) -> *mut c_char;
571    #[cfg(feature = "v0_86")]
572    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
573    pub fn vte_properties_dup_property_string_by_id(
574        properties: *const VteProperties,
575        prop: c_int,
576        size: *mut size_t,
577    ) -> *mut c_char;
578    #[cfg(feature = "v0_86")]
579    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
580    pub fn vte_properties_dup_property_uuid(
581        properties: *const VteProperties,
582        prop: *const c_char,
583    ) -> *mut VteUuid;
584    #[cfg(feature = "v0_86")]
585    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
586    pub fn vte_properties_dup_property_uuid_by_id(
587        properties: *const VteProperties,
588        prop: c_int,
589    ) -> *mut VteUuid;
590    #[cfg(feature = "v0_86")]
591    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
592    pub fn vte_properties_get_property_bool(
593        properties: *const VteProperties,
594        prop: *const c_char,
595        valuep: *mut gboolean,
596    ) -> gboolean;
597    #[cfg(feature = "v0_86")]
598    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
599    pub fn vte_properties_get_property_bool_by_id(
600        properties: *const VteProperties,
601        prop: c_int,
602        valuep: *mut gboolean,
603    ) -> gboolean;
604    #[cfg(feature = "v0_86")]
605    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
606    pub fn vte_properties_get_property_data(
607        properties: *const VteProperties,
608        prop: *const c_char,
609        size: *mut size_t,
610    ) -> *const u8;
611    #[cfg(feature = "v0_86")]
612    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
613    pub fn vte_properties_get_property_data_by_id(
614        properties: *const VteProperties,
615        prop: c_int,
616        size: *mut size_t,
617    ) -> *const u8;
618    #[cfg(feature = "v0_86")]
619    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
620    pub fn vte_properties_get_property_double(
621        properties: *const VteProperties,
622        prop: *const c_char,
623        valuep: *mut c_double,
624    ) -> gboolean;
625    #[cfg(feature = "v0_86")]
626    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
627    pub fn vte_properties_get_property_double_by_id(
628        properties: *const VteProperties,
629        prop: c_int,
630        valuep: *mut c_double,
631    ) -> gboolean;
632    #[cfg(feature = "v0_86")]
633    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
634    pub fn vte_properties_get_property_enum(
635        properties: *const VteProperties,
636        prop: *const c_char,
637        gtype: GType,
638        valuep: *mut i64,
639    ) -> gboolean;
640    #[cfg(feature = "v0_86")]
641    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
642    pub fn vte_properties_get_property_enum_by_id(
643        properties: *const VteProperties,
644        prop: c_int,
645        gtype: GType,
646        valuep: *mut i64,
647    ) -> gboolean;
648    #[cfg(feature = "v0_86")]
649    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
650    pub fn vte_properties_get_property_flags(
651        properties: *const VteProperties,
652        prop: *const c_char,
653        gtype: GType,
654        ignore_unknown_flags: gboolean,
655        valuep: *mut u64,
656    ) -> gboolean;
657    #[cfg(feature = "v0_86")]
658    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
659    pub fn vte_properties_get_property_flags_by_id(
660        properties: *const VteProperties,
661        prop: c_int,
662        gtype: GType,
663        ignore_unknown_flags: gboolean,
664        valuep: *mut u64,
665    ) -> gboolean;
666    #[cfg(feature = "v0_86")]
667    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
668    pub fn vte_properties_get_property_int(
669        properties: *const VteProperties,
670        prop: *const c_char,
671        valuep: *mut i64,
672    ) -> gboolean;
673    #[cfg(feature = "v0_86")]
674    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
675    pub fn vte_properties_get_property_int_by_id(
676        properties: *const VteProperties,
677        prop: c_int,
678        valuep: *mut i64,
679    ) -> gboolean;
680    #[cfg(feature = "v0_86")]
681    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
682    pub fn vte_properties_get_property_rgba(
683        properties: *const VteProperties,
684        prop: *const c_char,
685        color: *mut gdk::GdkRGBA,
686    ) -> gboolean;
687    #[cfg(feature = "v0_86")]
688    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
689    pub fn vte_properties_get_property_rgba_by_id(
690        properties: *const VteProperties,
691        prop: c_int,
692        color: *mut gdk::GdkRGBA,
693    ) -> gboolean;
694    #[cfg(feature = "v0_86")]
695    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
696    pub fn vte_properties_get_property_string(
697        properties: *const VteProperties,
698        prop: *const c_char,
699        size: *mut size_t,
700    ) -> *const c_char;
701    #[cfg(feature = "v0_86")]
702    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
703    pub fn vte_properties_get_property_string_by_id(
704        properties: *const VteProperties,
705        prop: c_int,
706        size: *mut size_t,
707    ) -> *const c_char;
708    #[cfg(feature = "v0_86")]
709    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
710    pub fn vte_properties_get_property_uint(
711        properties: *const VteProperties,
712        prop: *const c_char,
713        valuep: *mut u64,
714    ) -> gboolean;
715    #[cfg(feature = "v0_86")]
716    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
717    pub fn vte_properties_get_property_uint_by_id(
718        properties: *const VteProperties,
719        prop: c_int,
720        valuep: *mut u64,
721    ) -> gboolean;
722    #[cfg(feature = "v0_86")]
723    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
724    pub fn vte_properties_get_property_value(
725        properties: *const VteProperties,
726        prop: *const c_char,
727        gvalue: *mut gobject::GValue,
728    ) -> gboolean;
729    #[cfg(feature = "v0_86")]
730    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
731    pub fn vte_properties_get_property_value_by_id(
732        properties: *const VteProperties,
733        prop: c_int,
734        gvalue: *mut gobject::GValue,
735    ) -> gboolean;
736    #[cfg(feature = "v0_86")]
737    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
738    pub fn vte_properties_get_registry(
739        properties: *const VteProperties,
740    ) -> *const VtePropertiesRegistry;
741    #[cfg(feature = "v0_86")]
742    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
743    pub fn vte_properties_ref_property_data_bytes(
744        properties: *const VteProperties,
745        prop: *const c_char,
746    ) -> *mut glib::GBytes;
747    #[cfg(feature = "v0_86")]
748    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
749    pub fn vte_properties_ref_property_data_bytes_by_id(
750        properties: *const VteProperties,
751        prop: c_int,
752    ) -> *mut glib::GBytes;
753    #[cfg(feature = "v0_86")]
754    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
755    pub fn vte_properties_ref_property_image_surface(
756        properties: *const VteProperties,
757        prop: *const c_char,
758    ) -> *mut cairo::cairo_surface_t;
759    #[cfg(feature = "v0_86")]
760    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
761    pub fn vte_properties_ref_property_image_surface_by_id(
762        properties: *const VteProperties,
763        prop: c_int,
764    ) -> *mut cairo::cairo_surface_t;
765    #[cfg(feature = "v0_86")]
766    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
767    pub fn vte_properties_ref_property_image_texture(
768        properties: *const VteProperties,
769        prop: *const c_char,
770    ) -> *mut gdk::GdkTexture;
771    #[cfg(feature = "v0_86")]
772    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
773    pub fn vte_properties_ref_property_image_texture_by_id(
774        properties: *const VteProperties,
775        prop: c_int,
776    ) -> *mut gdk::GdkTexture;
777    #[cfg(feature = "v0_86")]
778    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
779    pub fn vte_properties_ref_property_uri(
780        properties: *const VteProperties,
781        prop: *const c_char,
782    ) -> *mut glib::GUri;
783    #[cfg(feature = "v0_86")]
784    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
785    pub fn vte_properties_ref_property_uri_by_id(
786        properties: *const VteProperties,
787        prop: c_int,
788    ) -> *mut glib::GUri;
789    #[cfg(feature = "v0_86")]
790    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
791    pub fn vte_properties_ref_property_variant(
792        properties: *const VteProperties,
793        prop: *const c_char,
794    ) -> *mut glib::GVariant;
795    #[cfg(feature = "v0_86")]
796    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
797    pub fn vte_properties_ref_property_variant_by_id(
798        properties: *const VteProperties,
799        prop: c_int,
800    ) -> *mut glib::GVariant;
801
802    //=========================================================================
803    // VtePropertiesRegistry
804    //=========================================================================
805    #[cfg(feature = "v0_86")]
806    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
807    pub fn vte_properties_registry_get_type() -> GType;
808    #[cfg(feature = "v0_86")]
809    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
810    pub fn vte_properties_registry_get_properties(
811        registry: *const VtePropertiesRegistry,
812        length: *mut size_t,
813    ) -> *mut *const c_char;
814    #[cfg(feature = "v0_86")]
815    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
816    pub fn vte_properties_registry_query(
817        registry: *const VtePropertiesRegistry,
818        name: *const c_char,
819        resolved_name: *mut *const c_char,
820        prop: *mut c_int,
821        type_: *mut VtePropertyType,
822        flags: *mut VtePropertyFlags,
823    ) -> gboolean;
824    #[cfg(feature = "v0_86")]
825    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
826    pub fn vte_properties_registry_query_by_id(
827        registry: *const VtePropertiesRegistry,
828        prop: c_int,
829        name: *mut *const c_char,
830        type_: *mut VtePropertyType,
831        flags: *mut VtePropertyFlags,
832    ) -> gboolean;
833
834    //=========================================================================
835    // VteRegex
836    //=========================================================================
837    pub fn vte_regex_get_type() -> GType;
838    pub fn vte_regex_new_for_match(
839        pattern: *const c_char,
840        pattern_length: ssize_t,
841        flags: u32,
842        error: *mut *mut glib::GError,
843    ) -> *mut VteRegex;
844    #[cfg(feature = "v0_76")]
845    #[cfg_attr(docsrs, doc(cfg(feature = "v0_76")))]
846    pub fn vte_regex_new_for_match_full(
847        pattern: *const c_char,
848        pattern_length: ssize_t,
849        flags: u32,
850        extra_flags: u32,
851        error_offset: *mut size_t,
852        error: *mut *mut glib::GError,
853    ) -> *mut VteRegex;
854    pub fn vte_regex_new_for_search(
855        pattern: *const c_char,
856        pattern_length: ssize_t,
857        flags: u32,
858        error: *mut *mut glib::GError,
859    ) -> *mut VteRegex;
860    #[cfg(feature = "v0_76")]
861    #[cfg_attr(docsrs, doc(cfg(feature = "v0_76")))]
862    pub fn vte_regex_new_for_search_full(
863        pattern: *const c_char,
864        pattern_length: ssize_t,
865        flags: u32,
866        extra_flags: u32,
867        error_offset: *mut size_t,
868        error: *mut *mut glib::GError,
869    ) -> *mut VteRegex;
870    pub fn vte_regex_jit(
871        regex: *mut VteRegex,
872        flags: u32,
873        error: *mut *mut glib::GError,
874    ) -> gboolean;
875    pub fn vte_regex_ref(regex: *mut VteRegex) -> *mut VteRegex;
876    pub fn vte_regex_substitute(
877        regex: *mut VteRegex,
878        subject: *const c_char,
879        replacement: *const c_char,
880        flags: u32,
881        error: *mut *mut glib::GError,
882    ) -> *mut c_char;
883    pub fn vte_regex_unref(regex: *mut VteRegex) -> *mut VteRegex;
884
885    //=========================================================================
886    // VteUuid
887    //=========================================================================
888    #[cfg(feature = "v0_78")]
889    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
890    pub fn vte_uuid_get_type() -> GType;
891    #[cfg(feature = "v0_78")]
892    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
893    pub fn vte_uuid_new_from_string(
894        str: *const c_char,
895        len: ssize_t,
896        fmt: VteUuidFormat,
897    ) -> *mut VteUuid;
898    #[cfg(feature = "v0_78")]
899    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
900    pub fn vte_uuid_new_v4() -> *mut VteUuid;
901    #[cfg(feature = "v0_78")]
902    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
903    pub fn vte_uuid_dup(uuid: *const VteUuid) -> *mut VteUuid;
904    #[cfg(feature = "v0_78")]
905    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
906    pub fn vte_uuid_equal(uuid: *const VteUuid, other: *const VteUuid) -> gboolean;
907    #[cfg(feature = "v0_78")]
908    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
909    pub fn vte_uuid_free(uuid: *mut VteUuid);
910    #[cfg(feature = "v0_78")]
911    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
912    pub fn vte_uuid_free_to_string(
913        uuid: *mut VteUuid,
914        fmt: VteUuidFormat,
915        len: *mut size_t,
916    ) -> *mut c_char;
917    #[cfg(feature = "v0_78")]
918    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
919    pub fn vte_uuid_new_v5(ns: *const VteUuid, data: *const c_char, len: ssize_t) -> *mut VteUuid;
920    #[cfg(feature = "v0_78")]
921    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
922    pub fn vte_uuid_to_string(
923        uuid: *const VteUuid,
924        fmt: VteUuidFormat,
925        len: *mut size_t,
926    ) -> *mut c_char;
927    #[cfg(feature = "v0_78")]
928    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
929    pub fn vte_uuid_validate_string(
930        str: *const c_char,
931        len: ssize_t,
932        fmt: VteUuidFormat,
933    ) -> gboolean;
934
935    //=========================================================================
936    // VtePty
937    //=========================================================================
938    pub fn vte_pty_get_type() -> GType;
939    pub fn vte_pty_new_foreign_sync(
940        fd: c_int,
941        cancellable: *mut gio::GCancellable,
942        error: *mut *mut glib::GError,
943    ) -> *mut VtePty;
944    pub fn vte_pty_new_sync(
945        flags: VtePtyFlags,
946        cancellable: *mut gio::GCancellable,
947        error: *mut *mut glib::GError,
948    ) -> *mut VtePty;
949    pub fn vte_pty_child_setup(pty: *mut VtePty);
950    pub fn vte_pty_close(pty: *mut VtePty);
951    pub fn vte_pty_get_fd(pty: *mut VtePty) -> c_int;
952    pub fn vte_pty_get_size(
953        pty: *mut VtePty,
954        rows: *mut c_int,
955        columns: *mut c_int,
956        error: *mut *mut glib::GError,
957    ) -> gboolean;
958    pub fn vte_pty_set_size(
959        pty: *mut VtePty,
960        rows: c_int,
961        columns: c_int,
962        error: *mut *mut glib::GError,
963    ) -> gboolean;
964    pub fn vte_pty_set_utf8(
965        pty: *mut VtePty,
966        utf8: gboolean,
967        error: *mut *mut glib::GError,
968    ) -> gboolean;
969    pub fn vte_pty_spawn_async(
970        pty: *mut VtePty,
971        working_directory: *const c_char,
972        argv: *mut *mut c_char,
973        envv: *mut *mut c_char,
974        spawn_flags: glib::GSpawnFlags,
975        child_setup: glib::GSpawnChildSetupFunc,
976        child_setup_data: gpointer,
977        child_setup_data_destroy: glib::GDestroyNotify,
978        timeout: c_int,
979        cancellable: *mut gio::GCancellable,
980        callback: gio::GAsyncReadyCallback,
981        user_data: gpointer,
982    );
983    pub fn vte_pty_spawn_finish(
984        pty: *mut VtePty,
985        result: *mut gio::GAsyncResult,
986        child_pid: *mut glib::GPid,
987        error: *mut *mut glib::GError,
988    ) -> gboolean;
989    pub fn vte_pty_spawn_with_fds_async(
990        pty: *mut VtePty,
991        working_directory: *const c_char,
992        argv: *const *const c_char,
993        envv: *const *const c_char,
994        fds: *const c_int,
995        n_fds: c_int,
996        map_fds: *const c_int,
997        n_map_fds: c_int,
998        spawn_flags: glib::GSpawnFlags,
999        child_setup: glib::GSpawnChildSetupFunc,
1000        child_setup_data: gpointer,
1001        child_setup_data_destroy: glib::GDestroyNotify,
1002        timeout: c_int,
1003        cancellable: *mut gio::GCancellable,
1004        callback: gio::GAsyncReadyCallback,
1005        user_data: gpointer,
1006    );
1007
1008    //=========================================================================
1009    // VteTerminal
1010    //=========================================================================
1011    pub fn vte_terminal_get_type() -> GType;
1012    pub fn vte_terminal_new() -> *mut VteTerminal;
1013    #[cfg(feature = "v0_70")]
1014    #[cfg_attr(docsrs, doc(cfg(feature = "v0_70")))]
1015    pub fn vte_terminal_check_hyperlink_at(
1016        terminal: *mut VteTerminal,
1017        x: c_double,
1018        y: c_double,
1019    ) -> *mut c_char;
1020    #[cfg(feature = "v0_70")]
1021    #[cfg_attr(docsrs, doc(cfg(feature = "v0_70")))]
1022    pub fn vte_terminal_check_match_at(
1023        terminal: *mut VteTerminal,
1024        x: c_double,
1025        y: c_double,
1026        tag: *mut c_int,
1027    ) -> *mut c_char;
1028    #[cfg(feature = "v0_70")]
1029    #[cfg_attr(docsrs, doc(cfg(feature = "v0_70")))]
1030    pub fn vte_terminal_check_regex_array_at(
1031        terminal: *mut VteTerminal,
1032        x: c_double,
1033        y: c_double,
1034        regexes: *mut *mut VteRegex,
1035        n_regexes: size_t,
1036        match_flags: u32,
1037        n_matches: *mut size_t,
1038    ) -> *mut *mut c_char;
1039    #[cfg(feature = "v0_70")]
1040    #[cfg_attr(docsrs, doc(cfg(feature = "v0_70")))]
1041    pub fn vte_terminal_check_regex_simple_at(
1042        terminal: *mut VteTerminal,
1043        x: c_double,
1044        y: c_double,
1045        regexes: *mut *mut VteRegex,
1046        n_regexes: size_t,
1047        match_flags: u32,
1048        matches: *mut *mut c_char,
1049    ) -> gboolean;
1050    pub fn vte_terminal_copy_clipboard(terminal: *mut VteTerminal);
1051    pub fn vte_terminal_copy_clipboard_format(terminal: *mut VteTerminal, format: VteFormat);
1052    pub fn vte_terminal_copy_primary(terminal: *mut VteTerminal);
1053    #[cfg(feature = "v0_78")]
1054    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
1055    pub fn vte_terminal_dup_termprop_string(
1056        terminal: *mut VteTerminal,
1057        prop: *const c_char,
1058        size: *mut size_t,
1059    ) -> *mut c_char;
1060    #[cfg(feature = "v0_78")]
1061    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
1062    pub fn vte_terminal_dup_termprop_string_by_id(
1063        terminal: *mut VteTerminal,
1064        prop: c_int,
1065        size: *mut size_t,
1066    ) -> *mut c_char;
1067    #[cfg(feature = "v0_78")]
1068    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
1069    pub fn vte_terminal_dup_termprop_uuid(
1070        terminal: *mut VteTerminal,
1071        prop: *const c_char,
1072    ) -> *mut VteUuid;
1073    #[cfg(feature = "v0_78")]
1074    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
1075    pub fn vte_terminal_dup_termprop_uuid_by_id(
1076        terminal: *mut VteTerminal,
1077        prop: c_int,
1078    ) -> *mut VteUuid;
1079    pub fn vte_terminal_feed(terminal: *mut VteTerminal, data: *const u8, length: ssize_t);
1080    pub fn vte_terminal_feed_child(terminal: *mut VteTerminal, text: *const u8, length: ssize_t);
1081    pub fn vte_terminal_feed_child_binary(
1082        terminal: *mut VteTerminal,
1083        data: *const u8,
1084        length: size_t,
1085    );
1086    pub fn vte_terminal_get_allow_bold(terminal: *mut VteTerminal) -> gboolean;
1087    pub fn vte_terminal_get_allow_hyperlink(terminal: *mut VteTerminal) -> gboolean;
1088    pub fn vte_terminal_get_audible_bell(terminal: *mut VteTerminal) -> gboolean;
1089    pub fn vte_terminal_get_bold_is_bright(terminal: *mut VteTerminal) -> gboolean;
1090    pub fn vte_terminal_get_cell_height_scale(terminal: *mut VteTerminal) -> c_double;
1091    pub fn vte_terminal_get_cell_width_scale(terminal: *mut VteTerminal) -> c_double;
1092    pub fn vte_terminal_get_char_height(terminal: *mut VteTerminal) -> c_long;
1093    pub fn vte_terminal_get_char_width(terminal: *mut VteTerminal) -> c_long;
1094    pub fn vte_terminal_get_cjk_ambiguous_width(terminal: *mut VteTerminal) -> c_int;
1095    pub fn vte_terminal_get_color_background_for_draw(
1096        terminal: *mut VteTerminal,
1097        color: *mut gdk::GdkRGBA,
1098    );
1099    pub fn vte_terminal_get_column_count(terminal: *mut VteTerminal) -> c_long;
1100    #[cfg(feature = "v0_76")]
1101    #[cfg_attr(docsrs, doc(cfg(feature = "v0_76")))]
1102    pub fn vte_terminal_get_context_menu(terminal: *mut VteTerminal) -> *mut gtk::GtkWidget;
1103    #[cfg(feature = "v0_76")]
1104    #[cfg_attr(docsrs, doc(cfg(feature = "v0_76")))]
1105    pub fn vte_terminal_get_context_menu_model(terminal: *mut VteTerminal) -> *mut gio::GMenuModel;
1106    pub fn vte_terminal_get_current_directory_uri(terminal: *mut VteTerminal) -> *const c_char;
1107    pub fn vte_terminal_get_current_file_uri(terminal: *mut VteTerminal) -> *const c_char;
1108    pub fn vte_terminal_get_cursor_blink_mode(terminal: *mut VteTerminal) -> VteCursorBlinkMode;
1109    pub fn vte_terminal_get_cursor_position(
1110        terminal: *mut VteTerminal,
1111        column: *mut c_long,
1112        row: *mut c_long,
1113    );
1114    pub fn vte_terminal_get_cursor_shape(terminal: *mut VteTerminal) -> VteCursorShape;
1115    #[cfg(feature = "v0_78")]
1116    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
1117    pub fn vte_terminal_get_enable_a11y(terminal: *mut VteTerminal) -> gboolean;
1118    pub fn vte_terminal_get_enable_bidi(terminal: *mut VteTerminal) -> gboolean;
1119    pub fn vte_terminal_get_enable_fallback_scrolling(terminal: *mut VteTerminal) -> gboolean;
1120    #[cfg(feature = "v0_78")]
1121    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
1122    pub fn vte_terminal_get_enable_legacy_osc777(terminal: *mut VteTerminal) -> gboolean;
1123    pub fn vte_terminal_get_enable_shaping(terminal: *mut VteTerminal) -> gboolean;
1124    pub fn vte_terminal_get_enable_sixel(terminal: *mut VteTerminal) -> gboolean;
1125    pub fn vte_terminal_get_encoding(terminal: *mut VteTerminal) -> *const c_char;
1126    pub fn vte_terminal_get_font(terminal: *mut VteTerminal) -> *const pango::PangoFontDescription;
1127    #[cfg(feature = "v0_74")]
1128    #[cfg_attr(docsrs, doc(cfg(feature = "v0_74")))]
1129    pub fn vte_terminal_get_font_options(
1130        terminal: *mut VteTerminal,
1131    ) -> *const cairo::cairo_font_options_t;
1132    pub fn vte_terminal_get_font_scale(terminal: *mut VteTerminal) -> c_double;
1133    pub fn vte_terminal_get_has_selection(terminal: *mut VteTerminal) -> gboolean;
1134    pub fn vte_terminal_get_icon_title(terminal: *mut VteTerminal) -> *const c_char;
1135    pub fn vte_terminal_get_input_enabled(terminal: *mut VteTerminal) -> gboolean;
1136    pub fn vte_terminal_get_mouse_autohide(terminal: *mut VteTerminal) -> gboolean;
1137    pub fn vte_terminal_get_pty(terminal: *mut VteTerminal) -> *mut VtePty;
1138    pub fn vte_terminal_get_rewrap_on_resize(terminal: *mut VteTerminal) -> gboolean;
1139    pub fn vte_terminal_get_row_count(terminal: *mut VteTerminal) -> c_long;
1140    #[cfg(feature = "v0_76")]
1141    #[cfg_attr(docsrs, doc(cfg(feature = "v0_76")))]
1142    pub fn vte_terminal_get_scroll_on_insert(terminal: *mut VteTerminal) -> gboolean;
1143    pub fn vte_terminal_get_scroll_on_keystroke(terminal: *mut VteTerminal) -> gboolean;
1144    pub fn vte_terminal_get_scroll_on_output(terminal: *mut VteTerminal) -> gboolean;
1145    pub fn vte_terminal_get_scroll_unit_is_pixels(terminal: *mut VteTerminal) -> gboolean;
1146    pub fn vte_terminal_get_scrollback_lines(terminal: *mut VteTerminal) -> c_long;
1147    #[cfg(feature = "v0_78")]
1148    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
1149    pub fn vte_terminal_get_termprop_bool(
1150        terminal: *mut VteTerminal,
1151        prop: *const c_char,
1152        valuep: *mut gboolean,
1153    ) -> gboolean;
1154    #[cfg(feature = "v0_78")]
1155    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
1156    pub fn vte_terminal_get_termprop_bool_by_id(
1157        terminal: *mut VteTerminal,
1158        prop: c_int,
1159        valuep: *mut gboolean,
1160    ) -> gboolean;
1161    #[cfg(feature = "v0_78")]
1162    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
1163    pub fn vte_terminal_get_termprop_data(
1164        terminal: *mut VteTerminal,
1165        prop: *const c_char,
1166        size: *mut size_t,
1167    ) -> *const u8;
1168    #[cfg(feature = "v0_78")]
1169    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
1170    pub fn vte_terminal_get_termprop_data_by_id(
1171        terminal: *mut VteTerminal,
1172        prop: c_int,
1173        size: *mut size_t,
1174    ) -> *const u8;
1175    #[cfg(feature = "v0_78")]
1176    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
1177    pub fn vte_terminal_get_termprop_double(
1178        terminal: *mut VteTerminal,
1179        prop: *const c_char,
1180        valuep: *mut c_double,
1181    ) -> gboolean;
1182    #[cfg(feature = "v0_78")]
1183    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
1184    pub fn vte_terminal_get_termprop_double_by_id(
1185        terminal: *mut VteTerminal,
1186        prop: c_int,
1187        valuep: *mut c_double,
1188    ) -> gboolean;
1189    #[cfg(feature = "v0_82")]
1190    #[cfg_attr(docsrs, doc(cfg(feature = "v0_82")))]
1191    pub fn vte_terminal_get_termprop_enum(
1192        terminal: *mut VteTerminal,
1193        prop: *const c_char,
1194        gtype: GType,
1195        valuep: *mut i64,
1196    ) -> gboolean;
1197    #[cfg(feature = "v0_82")]
1198    #[cfg_attr(docsrs, doc(cfg(feature = "v0_82")))]
1199    pub fn vte_terminal_get_termprop_enum_by_id(
1200        terminal: *mut VteTerminal,
1201        prop: c_int,
1202        gtype: GType,
1203        valuep: *mut i64,
1204    ) -> gboolean;
1205    #[cfg(feature = "v0_82")]
1206    #[cfg_attr(docsrs, doc(cfg(feature = "v0_82")))]
1207    pub fn vte_terminal_get_termprop_flags(
1208        terminal: *mut VteTerminal,
1209        prop: *const c_char,
1210        gtype: GType,
1211        ignore_unknown_flags: gboolean,
1212        valuep: *mut u64,
1213    ) -> gboolean;
1214    #[cfg(feature = "v0_82")]
1215    #[cfg_attr(docsrs, doc(cfg(feature = "v0_82")))]
1216    pub fn vte_terminal_get_termprop_flags_by_id(
1217        terminal: *mut VteTerminal,
1218        prop: c_int,
1219        gtype: GType,
1220        ignore_unknown_flags: gboolean,
1221        valuep: *mut u64,
1222    ) -> gboolean;
1223    #[cfg(feature = "v0_78")]
1224    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
1225    pub fn vte_terminal_get_termprop_int(
1226        terminal: *mut VteTerminal,
1227        prop: *const c_char,
1228        valuep: *mut i64,
1229    ) -> gboolean;
1230    #[cfg(feature = "v0_78")]
1231    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
1232    pub fn vte_terminal_get_termprop_int_by_id(
1233        terminal: *mut VteTerminal,
1234        prop: c_int,
1235        valuep: *mut i64,
1236    ) -> gboolean;
1237    #[cfg(feature = "v0_78")]
1238    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
1239    pub fn vte_terminal_get_termprop_rgba(
1240        terminal: *mut VteTerminal,
1241        prop: *const c_char,
1242        color: *mut gdk::GdkRGBA,
1243    ) -> gboolean;
1244    #[cfg(feature = "v0_78")]
1245    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
1246    pub fn vte_terminal_get_termprop_rgba_by_id(
1247        terminal: *mut VteTerminal,
1248        prop: c_int,
1249        color: *mut gdk::GdkRGBA,
1250    ) -> gboolean;
1251    #[cfg(feature = "v0_78")]
1252    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
1253    pub fn vte_terminal_get_termprop_string(
1254        terminal: *mut VteTerminal,
1255        prop: *const c_char,
1256        size: *mut size_t,
1257    ) -> *const c_char;
1258    #[cfg(feature = "v0_78")]
1259    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
1260    pub fn vte_terminal_get_termprop_string_by_id(
1261        terminal: *mut VteTerminal,
1262        prop: c_int,
1263        size: *mut size_t,
1264    ) -> *const c_char;
1265    #[cfg(feature = "v0_78")]
1266    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
1267    pub fn vte_terminal_get_termprop_uint(
1268        terminal: *mut VteTerminal,
1269        prop: *const c_char,
1270        valuep: *mut u64,
1271    ) -> gboolean;
1272    #[cfg(feature = "v0_78")]
1273    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
1274    pub fn vte_terminal_get_termprop_uint_by_id(
1275        terminal: *mut VteTerminal,
1276        prop: c_int,
1277        valuep: *mut u64,
1278    ) -> gboolean;
1279    #[cfg(feature = "v0_78")]
1280    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
1281    pub fn vte_terminal_get_termprop_value(
1282        terminal: *mut VteTerminal,
1283        prop: *const c_char,
1284        gvalue: *mut gobject::GValue,
1285    ) -> gboolean;
1286    #[cfg(feature = "v0_78")]
1287    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
1288    pub fn vte_terminal_get_termprop_value_by_id(
1289        terminal: *mut VteTerminal,
1290        prop: c_int,
1291        gvalue: *mut gobject::GValue,
1292    ) -> gboolean;
1293    #[cfg(feature = "v0_86")]
1294    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
1295    pub fn vte_terminal_get_termprops(terminal: *mut VteTerminal) -> *const VteProperties;
1296    pub fn vte_terminal_get_text(
1297        terminal: *mut VteTerminal,
1298        is_selected: VteSelectionFunc,
1299        user_data: gpointer,
1300        attributes: *mut glib::GArray,
1301    ) -> *mut c_char;
1302    pub fn vte_terminal_get_text_blink_mode(terminal: *mut VteTerminal) -> VteTextBlinkMode;
1303    #[cfg(feature = "v0_76")]
1304    #[cfg_attr(docsrs, doc(cfg(feature = "v0_76")))]
1305    pub fn vte_terminal_get_text_format(
1306        terminal: *mut VteTerminal,
1307        format: VteFormat,
1308    ) -> *mut c_char;
1309    pub fn vte_terminal_get_text_include_trailing_spaces(
1310        terminal: *mut VteTerminal,
1311        is_selected: VteSelectionFunc,
1312        user_data: gpointer,
1313        attributes: *mut glib::GArray,
1314    ) -> *mut c_char;
1315    pub fn vte_terminal_get_text_range(
1316        terminal: *mut VteTerminal,
1317        start_row: c_long,
1318        start_col: c_long,
1319        end_row: c_long,
1320        end_col: c_long,
1321        is_selected: VteSelectionFunc,
1322        user_data: gpointer,
1323        attributes: *mut glib::GArray,
1324    ) -> *mut c_char;
1325    #[cfg(feature = "v0_72")]
1326    #[cfg_attr(docsrs, doc(cfg(feature = "v0_72")))]
1327    pub fn vte_terminal_get_text_range_format(
1328        terminal: *mut VteTerminal,
1329        format: VteFormat,
1330        start_row: c_long,
1331        start_col: c_long,
1332        end_row: c_long,
1333        end_col: c_long,
1334        length: *mut size_t,
1335    ) -> *mut c_char;
1336    #[cfg(feature = "v0_70")]
1337    #[cfg_attr(docsrs, doc(cfg(feature = "v0_70")))]
1338    pub fn vte_terminal_get_text_selected(
1339        terminal: *mut VteTerminal,
1340        format: VteFormat,
1341    ) -> *mut c_char;
1342    #[cfg(feature = "v0_72")]
1343    #[cfg_attr(docsrs, doc(cfg(feature = "v0_72")))]
1344    pub fn vte_terminal_get_text_selected_full(
1345        terminal: *mut VteTerminal,
1346        format: VteFormat,
1347        length: *mut size_t,
1348    ) -> *mut c_char;
1349    pub fn vte_terminal_get_window_title(terminal: *mut VteTerminal) -> *const c_char;
1350    pub fn vte_terminal_get_word_char_exceptions(terminal: *mut VteTerminal) -> *const c_char;
1351    #[cfg(feature = "v0_76")]
1352    #[cfg_attr(docsrs, doc(cfg(feature = "v0_76")))]
1353    pub fn vte_terminal_get_xalign(terminal: *mut VteTerminal) -> VteAlign;
1354    #[cfg(feature = "v0_76")]
1355    #[cfg_attr(docsrs, doc(cfg(feature = "v0_76")))]
1356    pub fn vte_terminal_get_xfill(terminal: *mut VteTerminal) -> gboolean;
1357    #[cfg(feature = "v0_76")]
1358    #[cfg_attr(docsrs, doc(cfg(feature = "v0_76")))]
1359    pub fn vte_terminal_get_yalign(terminal: *mut VteTerminal) -> VteAlign;
1360    #[cfg(feature = "v0_76")]
1361    #[cfg_attr(docsrs, doc(cfg(feature = "v0_76")))]
1362    pub fn vte_terminal_get_yfill(terminal: *mut VteTerminal) -> gboolean;
1363    pub fn vte_terminal_match_add_regex(
1364        terminal: *mut VteTerminal,
1365        regex: *mut VteRegex,
1366        flags: u32,
1367    ) -> c_int;
1368    pub fn vte_terminal_match_check(
1369        terminal: *mut VteTerminal,
1370        column: c_long,
1371        row: c_long,
1372        tag: *mut c_int,
1373    ) -> *mut c_char;
1374    pub fn vte_terminal_match_remove(terminal: *mut VteTerminal, tag: c_int);
1375    pub fn vte_terminal_match_remove_all(terminal: *mut VteTerminal);
1376    pub fn vte_terminal_match_set_cursor(
1377        terminal: *mut VteTerminal,
1378        tag: c_int,
1379        cursor: *mut gdk::GdkCursor,
1380    );
1381    pub fn vte_terminal_match_set_cursor_name(
1382        terminal: *mut VteTerminal,
1383        tag: c_int,
1384        cursor_name: *const c_char,
1385    );
1386    pub fn vte_terminal_paste_clipboard(terminal: *mut VteTerminal);
1387    pub fn vte_terminal_paste_primary(terminal: *mut VteTerminal);
1388    pub fn vte_terminal_paste_text(terminal: *mut VteTerminal, text: *const c_char);
1389    pub fn vte_terminal_pty_new_sync(
1390        terminal: *mut VteTerminal,
1391        flags: VtePtyFlags,
1392        cancellable: *mut gio::GCancellable,
1393        error: *mut *mut glib::GError,
1394    ) -> *mut VtePty;
1395    #[cfg(feature = "v0_78")]
1396    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
1397    pub fn vte_terminal_ref_termprop_data_bytes(
1398        terminal: *mut VteTerminal,
1399        prop: *const c_char,
1400    ) -> *mut glib::GBytes;
1401    #[cfg(feature = "v0_78")]
1402    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
1403    pub fn vte_terminal_ref_termprop_data_bytes_by_id(
1404        terminal: *mut VteTerminal,
1405        prop: c_int,
1406    ) -> *mut glib::GBytes;
1407    #[cfg(feature = "v0_80")]
1408    #[cfg_attr(docsrs, doc(cfg(feature = "v0_80")))]
1409    pub fn vte_terminal_ref_termprop_image_surface(
1410        terminal: *mut VteTerminal,
1411        prop: *const c_char,
1412    ) -> *mut cairo::cairo_surface_t;
1413    #[cfg(feature = "v0_80")]
1414    #[cfg_attr(docsrs, doc(cfg(feature = "v0_80")))]
1415    pub fn vte_terminal_ref_termprop_image_surface_by_id(
1416        terminal: *mut VteTerminal,
1417        prop: c_int,
1418    ) -> *mut cairo::cairo_surface_t;
1419    #[cfg(feature = "v0_80")]
1420    #[cfg_attr(docsrs, doc(cfg(feature = "v0_80")))]
1421    pub fn vte_terminal_ref_termprop_image_texture(
1422        terminal: *mut VteTerminal,
1423        prop: *const c_char,
1424    ) -> *mut gdk::GdkTexture;
1425    #[cfg(feature = "v0_80")]
1426    #[cfg_attr(docsrs, doc(cfg(feature = "v0_80")))]
1427    pub fn vte_terminal_ref_termprop_image_texture_by_id(
1428        terminal: *mut VteTerminal,
1429        prop: c_int,
1430    ) -> *mut gdk::GdkTexture;
1431    #[cfg(feature = "v0_78")]
1432    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
1433    pub fn vte_terminal_ref_termprop_uri(
1434        terminal: *mut VteTerminal,
1435        prop: *const c_char,
1436    ) -> *mut glib::GUri;
1437    #[cfg(feature = "v0_78")]
1438    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
1439    pub fn vte_terminal_ref_termprop_uri_by_id(
1440        terminal: *mut VteTerminal,
1441        prop: c_int,
1442    ) -> *mut glib::GUri;
1443    #[cfg(feature = "v0_78")]
1444    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
1445    pub fn vte_terminal_ref_termprop_variant(
1446        terminal: *mut VteTerminal,
1447        prop: *const c_char,
1448    ) -> *mut glib::GVariant;
1449    #[cfg(feature = "v0_78")]
1450    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
1451    pub fn vte_terminal_ref_termprop_variant_by_id(
1452        terminal: *mut VteTerminal,
1453        prop: c_int,
1454    ) -> *mut glib::GVariant;
1455    pub fn vte_terminal_reset(
1456        terminal: *mut VteTerminal,
1457        clear_tabstops: gboolean,
1458        clear_history: gboolean,
1459    );
1460    #[cfg(feature = "v0_84")]
1461    #[cfg_attr(docsrs, doc(cfg(feature = "v0_84")))]
1462    pub fn vte_terminal_reset_termprop(terminal: *mut VteTerminal, prop: *const c_char);
1463    #[cfg(feature = "v0_84")]
1464    #[cfg_attr(docsrs, doc(cfg(feature = "v0_84")))]
1465    pub fn vte_terminal_reset_termprop_by_id(terminal: *mut VteTerminal, prop: c_int);
1466    pub fn vte_terminal_search_find_next(terminal: *mut VteTerminal) -> gboolean;
1467    pub fn vte_terminal_search_find_previous(terminal: *mut VteTerminal) -> gboolean;
1468    pub fn vte_terminal_search_get_regex(terminal: *mut VteTerminal) -> *mut VteRegex;
1469    pub fn vte_terminal_search_get_wrap_around(terminal: *mut VteTerminal) -> gboolean;
1470    pub fn vte_terminal_search_set_regex(
1471        terminal: *mut VteTerminal,
1472        regex: *mut VteRegex,
1473        flags: u32,
1474    );
1475    pub fn vte_terminal_search_set_wrap_around(terminal: *mut VteTerminal, wrap_around: gboolean);
1476    pub fn vte_terminal_select_all(terminal: *mut VteTerminal);
1477    pub fn vte_terminal_set_allow_bold(terminal: *mut VteTerminal, allow_bold: gboolean);
1478    pub fn vte_terminal_set_allow_hyperlink(terminal: *mut VteTerminal, allow_hyperlink: gboolean);
1479    pub fn vte_terminal_set_audible_bell(terminal: *mut VteTerminal, is_audible: gboolean);
1480    pub fn vte_terminal_set_backspace_binding(terminal: *mut VteTerminal, binding: VteEraseBinding);
1481    pub fn vte_terminal_set_bold_is_bright(terminal: *mut VteTerminal, bold_is_bright: gboolean);
1482    pub fn vte_terminal_set_cell_height_scale(terminal: *mut VteTerminal, scale: c_double);
1483    pub fn vte_terminal_set_cell_width_scale(terminal: *mut VteTerminal, scale: c_double);
1484    pub fn vte_terminal_set_cjk_ambiguous_width(terminal: *mut VteTerminal, width: c_int);
1485    pub fn vte_terminal_set_clear_background(terminal: *mut VteTerminal, setting: gboolean);
1486    pub fn vte_terminal_set_color_background(
1487        terminal: *mut VteTerminal,
1488        background: *const gdk::GdkRGBA,
1489    );
1490    pub fn vte_terminal_set_color_bold(terminal: *mut VteTerminal, bold: *const gdk::GdkRGBA);
1491    pub fn vte_terminal_set_color_cursor(
1492        terminal: *mut VteTerminal,
1493        cursor_background: *const gdk::GdkRGBA,
1494    );
1495    pub fn vte_terminal_set_color_cursor_foreground(
1496        terminal: *mut VteTerminal,
1497        cursor_foreground: *const gdk::GdkRGBA,
1498    );
1499    pub fn vte_terminal_set_color_foreground(
1500        terminal: *mut VteTerminal,
1501        foreground: *const gdk::GdkRGBA,
1502    );
1503    pub fn vte_terminal_set_color_highlight(
1504        terminal: *mut VteTerminal,
1505        highlight_background: *const gdk::GdkRGBA,
1506    );
1507    pub fn vte_terminal_set_color_highlight_foreground(
1508        terminal: *mut VteTerminal,
1509        highlight_foreground: *const gdk::GdkRGBA,
1510    );
1511    pub fn vte_terminal_set_colors(
1512        terminal: *mut VteTerminal,
1513        foreground: *const gdk::GdkRGBA,
1514        background: *const gdk::GdkRGBA,
1515        palette: *const gdk::GdkRGBA,
1516        palette_size: size_t,
1517    );
1518    #[cfg(feature = "v0_76")]
1519    #[cfg_attr(docsrs, doc(cfg(feature = "v0_76")))]
1520    pub fn vte_terminal_set_context_menu(terminal: *mut VteTerminal, menu: *mut gtk::GtkWidget);
1521    #[cfg(feature = "v0_76")]
1522    #[cfg_attr(docsrs, doc(cfg(feature = "v0_76")))]
1523    pub fn vte_terminal_set_context_menu_model(
1524        terminal: *mut VteTerminal,
1525        model: *mut gio::GMenuModel,
1526    );
1527    pub fn vte_terminal_set_cursor_blink_mode(terminal: *mut VteTerminal, mode: VteCursorBlinkMode);
1528    pub fn vte_terminal_set_cursor_shape(terminal: *mut VteTerminal, shape: VteCursorShape);
1529    pub fn vte_terminal_set_default_colors(terminal: *mut VteTerminal);
1530    pub fn vte_terminal_set_delete_binding(terminal: *mut VteTerminal, binding: VteEraseBinding);
1531    #[cfg(feature = "v0_78")]
1532    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
1533    pub fn vte_terminal_set_enable_a11y(terminal: *mut VteTerminal, enable_a11y: gboolean);
1534    pub fn vte_terminal_set_enable_bidi(terminal: *mut VteTerminal, enable_bidi: gboolean);
1535    pub fn vte_terminal_set_enable_fallback_scrolling(terminal: *mut VteTerminal, enable: gboolean);
1536    #[cfg(feature = "v0_78")]
1537    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
1538    pub fn vte_terminal_set_enable_legacy_osc777(terminal: *mut VteTerminal, enable: gboolean);
1539    pub fn vte_terminal_set_enable_shaping(terminal: *mut VteTerminal, enable_shaping: gboolean);
1540    pub fn vte_terminal_set_enable_sixel(terminal: *mut VteTerminal, enabled: gboolean);
1541    pub fn vte_terminal_set_encoding(
1542        terminal: *mut VteTerminal,
1543        codeset: *const c_char,
1544        error: *mut *mut glib::GError,
1545    ) -> gboolean;
1546    pub fn vte_terminal_set_font(
1547        terminal: *mut VteTerminal,
1548        font_desc: *const pango::PangoFontDescription,
1549    );
1550    #[cfg(feature = "v0_74")]
1551    #[cfg_attr(docsrs, doc(cfg(feature = "v0_74")))]
1552    pub fn vte_terminal_set_font_options(
1553        terminal: *mut VteTerminal,
1554        font_options: *const cairo::cairo_font_options_t,
1555    );
1556    pub fn vte_terminal_set_font_scale(terminal: *mut VteTerminal, scale: c_double);
1557    pub fn vte_terminal_set_input_enabled(terminal: *mut VteTerminal, enabled: gboolean);
1558    pub fn vte_terminal_set_mouse_autohide(terminal: *mut VteTerminal, setting: gboolean);
1559    pub fn vte_terminal_set_pty(terminal: *mut VteTerminal, pty: *mut VtePty);
1560    pub fn vte_terminal_set_rewrap_on_resize(terminal: *mut VteTerminal, rewrap: gboolean);
1561    #[cfg(feature = "v0_76")]
1562    #[cfg_attr(docsrs, doc(cfg(feature = "v0_76")))]
1563    pub fn vte_terminal_set_scroll_on_insert(terminal: *mut VteTerminal, scroll: gboolean);
1564    pub fn vte_terminal_set_scroll_on_keystroke(terminal: *mut VteTerminal, scroll: gboolean);
1565    pub fn vte_terminal_set_scroll_on_output(terminal: *mut VteTerminal, scroll: gboolean);
1566    pub fn vte_terminal_set_scroll_unit_is_pixels(terminal: *mut VteTerminal, enable: gboolean);
1567    pub fn vte_terminal_set_scrollback_lines(terminal: *mut VteTerminal, lines: c_long);
1568    pub fn vte_terminal_set_size(terminal: *mut VteTerminal, columns: c_long, rows: c_long);
1569    #[cfg(feature = "v0_78")]
1570    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
1571    pub fn vte_terminal_set_suppress_legacy_signals(terminal: *mut VteTerminal);
1572    pub fn vte_terminal_set_text_blink_mode(
1573        terminal: *mut VteTerminal,
1574        text_blink_mode: VteTextBlinkMode,
1575    );
1576    pub fn vte_terminal_set_word_char_exceptions(
1577        terminal: *mut VteTerminal,
1578        exceptions: *const c_char,
1579    );
1580    #[cfg(feature = "v0_76")]
1581    #[cfg_attr(docsrs, doc(cfg(feature = "v0_76")))]
1582    pub fn vte_terminal_set_xalign(terminal: *mut VteTerminal, align: VteAlign);
1583    #[cfg(feature = "v0_76")]
1584    #[cfg_attr(docsrs, doc(cfg(feature = "v0_76")))]
1585    pub fn vte_terminal_set_xfill(terminal: *mut VteTerminal, fill: gboolean);
1586    #[cfg(feature = "v0_76")]
1587    #[cfg_attr(docsrs, doc(cfg(feature = "v0_76")))]
1588    pub fn vte_terminal_set_yalign(terminal: *mut VteTerminal, align: VteAlign);
1589    #[cfg(feature = "v0_76")]
1590    #[cfg_attr(docsrs, doc(cfg(feature = "v0_76")))]
1591    pub fn vte_terminal_set_yfill(terminal: *mut VteTerminal, fill: gboolean);
1592    pub fn vte_terminal_spawn_async(
1593        terminal: *mut VteTerminal,
1594        pty_flags: VtePtyFlags,
1595        working_directory: *const c_char,
1596        argv: *mut *mut c_char,
1597        envv: *mut *mut c_char,
1598        spawn_flags: glib::GSpawnFlags,
1599        child_setup: glib::GSpawnChildSetupFunc,
1600        child_setup_data: gpointer,
1601        child_setup_data_destroy: glib::GDestroyNotify,
1602        timeout: c_int,
1603        cancellable: *mut gio::GCancellable,
1604        callback: VteTerminalSpawnAsyncCallback,
1605        user_data: gpointer,
1606    );
1607    pub fn vte_terminal_spawn_sync(
1608        terminal: *mut VteTerminal,
1609        pty_flags: VtePtyFlags,
1610        working_directory: *const c_char,
1611        argv: *mut *mut c_char,
1612        envv: *mut *mut c_char,
1613        spawn_flags: glib::GSpawnFlags,
1614        child_setup: glib::GSpawnChildSetupFunc,
1615        child_setup_data: gpointer,
1616        child_pid: *mut glib::GPid,
1617        cancellable: *mut gio::GCancellable,
1618        error: *mut *mut glib::GError,
1619    ) -> gboolean;
1620    pub fn vte_terminal_spawn_with_fds_async(
1621        terminal: *mut VteTerminal,
1622        pty_flags: VtePtyFlags,
1623        working_directory: *const c_char,
1624        argv: *const *const c_char,
1625        envv: *const *const c_char,
1626        fds: *const c_int,
1627        n_fds: c_int,
1628        map_fds: *const c_int,
1629        n_map_fds: c_int,
1630        spawn_flags: glib::GSpawnFlags,
1631        child_setup: glib::GSpawnChildSetupFunc,
1632        child_setup_data: gpointer,
1633        child_setup_data_destroy: glib::GDestroyNotify,
1634        timeout: c_int,
1635        cancellable: *mut gio::GCancellable,
1636        callback: VteTerminalSpawnAsyncCallback,
1637        user_data: gpointer,
1638    );
1639    pub fn vte_terminal_unselect_all(terminal: *mut VteTerminal);
1640    pub fn vte_terminal_watch_child(terminal: *mut VteTerminal, child_pid: glib::GPid);
1641    pub fn vte_terminal_write_contents_sync(
1642        terminal: *mut VteTerminal,
1643        stream: *mut gio::GOutputStream,
1644        flags: VteWriteFlags,
1645        cancellable: *mut gio::GCancellable,
1646        error: *mut *mut glib::GError,
1647    ) -> gboolean;
1648
1649    //=========================================================================
1650    // Other functions
1651    //=========================================================================
1652    pub fn vte_get_encoding_supported(encoding: *const c_char) -> gboolean;
1653    pub fn vte_get_encodings(include_aliases: gboolean) -> *mut *mut c_char;
1654    pub fn vte_get_feature_flags() -> VteFeatureFlags;
1655    pub fn vte_get_features() -> *const c_char;
1656    pub fn vte_get_major_version() -> c_uint;
1657    pub fn vte_get_micro_version() -> c_uint;
1658    pub fn vte_get_minor_version() -> c_uint;
1659    #[cfg(feature = "v0_78")]
1660    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
1661    pub fn vte_get_termprops(length: *mut size_t) -> *mut *const c_char;
1662    #[cfg(feature = "v0_86")]
1663    #[cfg_attr(docsrs, doc(cfg(feature = "v0_86")))]
1664    pub fn vte_get_termprops_registry() -> *const VtePropertiesRegistry;
1665    #[cfg(feature = "v0_78")]
1666    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
1667    pub fn vte_get_test_flags() -> u64;
1668    pub fn vte_get_user_shell() -> *mut c_char;
1669    #[cfg(feature = "v0_78")]
1670    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
1671    pub fn vte_install_termprop(
1672        name: *const c_char,
1673        type_: VtePropertyType,
1674        flags: VtePropertyFlags,
1675    ) -> c_int;
1676    #[cfg(feature = "v0_78")]
1677    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
1678    pub fn vte_install_termprop_alias(name: *const c_char, target_name: *const c_char) -> c_int;
1679    pub fn vte_properties_get_type() -> GType;
1680    #[cfg(feature = "v0_78")]
1681    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
1682    pub fn vte_query_termprop(
1683        name: *const c_char,
1684        resolved_name: *mut *const c_char,
1685        prop: *mut c_int,
1686        type_: *mut VtePropertyType,
1687        flags: *mut VtePropertyFlags,
1688    ) -> gboolean;
1689    #[cfg(feature = "v0_78")]
1690    #[cfg_attr(docsrs, doc(cfg(feature = "v0_78")))]
1691    pub fn vte_query_termprop_by_id(
1692        prop: c_int,
1693        name: *mut *const c_char,
1694        type_: *mut VtePropertyType,
1695        flags: *mut VtePropertyFlags,
1696    ) -> gboolean;
1697    pub fn vte_set_test_flags(flags: u64);
1698
1699}