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