vte_sys/
lib.rs

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