Выезд Gtk.Plug
и Gtk.Socket
. Вам нужно будет поставить Gtk.Socket
на каждую открытую вкладку. Затем создайте процесс, используя одну из функций GLib.Process
, и в этом процессе создайте Gtk.Plug
, содержащий ваш WebView
. Тогда вам понадобится какой-то способ межпроцессного взаимодействия, с одной стороны, чтобы подключить ваш штекер к вашей розетке и передать команды из вашего пользовательского интерфейса в веб-представление (например, «сделать шрифт больше»).
Похоже, что документация Vala не содержит подробных объяснений, вы можете проверить документацию C для получения дополнительной информации о том, как работают вилки и розетки.
EDIT:
Вы запросили дополнительную информацию о межпроцессном взаимодействии. Есть несколько способов, и я не уверен, какой из них наиболее подходит для вас. Возможно, вы можете попробовать GLib.Process.spawn_async_with_pipes()
запустить дочерний процесс и получить файловые дескрипторы для стандартного ввода и вывода дочернего процесса. Затем вы можете передать эти файловые дескрипторы на GLib.IOChannel.unix_new()
для передачи сообщений между вашими процессами.
Другой способ - использовать DBus, но он более сложный и менее документированный.