245 lines
6.3 KiB
Plaintext
245 lines
6.3 KiB
Plaintext
using Gtk 4.0;
|
|
using Adw 1;
|
|
using WebKit 6.0;
|
|
|
|
template $BavarderWindow : Adw.ApplicationWindow {
|
|
|
|
title: _("Bavarder");
|
|
default-width: 350;
|
|
default-height: 500;
|
|
|
|
ShortcutController {
|
|
Shortcut {
|
|
trigger: "<primary>q";
|
|
action: "action(window.close)";
|
|
}
|
|
}
|
|
|
|
Adw.ToastOverlay toast_overlay {
|
|
Box {
|
|
orientation: vertical;
|
|
vexpand: true;
|
|
hexpand: true;
|
|
Adw.HeaderBar {
|
|
MenuButton menu {
|
|
primary: true;
|
|
menu-model: main-menu;
|
|
icon-name: "open-menu-symbolic";
|
|
tooltip-text: _("Main Menu");
|
|
}
|
|
styles ["flat"]
|
|
}
|
|
|
|
Adw.Banner banner {
|
|
title: _("No network connection");
|
|
revealed: false;
|
|
}
|
|
|
|
Box main {
|
|
orientation: vertical;
|
|
vexpand: true;
|
|
hexpand: true;
|
|
margin-start: 24;
|
|
margin-end: 24;
|
|
spacing: 12;
|
|
|
|
Adw.Bin {
|
|
vexpand: true;
|
|
hexpand: true;
|
|
|
|
Box {
|
|
orientation: vertical;
|
|
|
|
Stack stack {
|
|
transition-type: crossfade;
|
|
|
|
Gtk.StackPage {
|
|
name: "page_content";
|
|
child: Overlay overlay {
|
|
|
|
Adw.PreferencesGroup bot_group {
|
|
title: _("Response");
|
|
|
|
|
|
Box {
|
|
orientation: vertical;
|
|
hexpand: true;
|
|
vexpand: true;
|
|
|
|
styles [ "text-box"]
|
|
|
|
ScrolledWindow scrolled_response_window {
|
|
margin-top: 12;
|
|
margin-bottom: 0;
|
|
margin-start: 12;
|
|
margin-end: 12;
|
|
|
|
TextView bot_text_view {
|
|
wrap-mode: word_char;
|
|
hexpand: true;
|
|
vexpand: true;
|
|
editable: false;
|
|
}
|
|
|
|
}
|
|
|
|
Box {
|
|
hexpand: true;
|
|
halign: end;
|
|
|
|
styles ["toolbar"]
|
|
|
|
// Button speak {
|
|
// action-name: "app.speak";
|
|
// tooltip-text: _("Speak");
|
|
// icon-name: "audio-speakers-symbolic";
|
|
// }
|
|
|
|
// Button speak_wait {
|
|
// visible: false;
|
|
// sensitive: false;
|
|
// tooltip-text: _("Speaking");
|
|
// Spinner speak_spinner {
|
|
// margin-top: 8;
|
|
// margin-bottom: 8;
|
|
// margin-start: 8;
|
|
// margin-end: 8;
|
|
// }
|
|
// }
|
|
|
|
Button copy_bot {
|
|
sensitive: false;
|
|
icon-name: "edit-copy-symbolic";
|
|
tooltip-text: _("Copy to Clipboard");
|
|
hexpand: true;
|
|
halign: end;
|
|
action-name: "app.copy_bot";
|
|
}
|
|
|
|
Button stop_button {
|
|
visible: false;
|
|
sensitive: false;
|
|
icon-name: "x-circular-symbolic";
|
|
tooltip-text: _("Stop");
|
|
hexpand: true;
|
|
halign: end;
|
|
action-name: "app.stop";
|
|
styles ["suggested-action", "circular"]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
};
|
|
}
|
|
|
|
|
|
Gtk.StackPage {
|
|
name: "page_loading";
|
|
child: Spinner {
|
|
valign: center;
|
|
halign: center;
|
|
vexpand: true;
|
|
};
|
|
}
|
|
|
|
Gtk.StackPage {
|
|
name: "page_error";
|
|
child: Adw.StatusPage error {
|
|
visible: true;
|
|
vexpand: true;
|
|
icon-name: "dialog-error-symbolic";
|
|
title: _("ERROR");
|
|
description: _("DESCRIPTION");
|
|
|
|
Button {
|
|
label: _("Try Again");
|
|
halign: center;
|
|
styles ["pill"]
|
|
}
|
|
|
|
};
|
|
}
|
|
}
|
|
|
|
Separator {}
|
|
|
|
Adw.Clamp {
|
|
vexpand: false;
|
|
hexpand: true;
|
|
maximum-size: 750;
|
|
tightening-threshold: 550;
|
|
|
|
Box {
|
|
|
|
styles [ "toolbar" ]
|
|
|
|
Button {
|
|
valign: end;
|
|
icon-name: "mail-attachment-symbolic";
|
|
}
|
|
|
|
ScrolledWindow {
|
|
vexpand: true;
|
|
hexpand: true;
|
|
vscrollbar-policy: external;
|
|
max-content-height: 200;
|
|
propagate-natural-height: true;
|
|
|
|
styles ["scrolled-window"]
|
|
|
|
TextView prompt_text_view {
|
|
hexpand: true;
|
|
accepts-tab: false;
|
|
top-margin: 7;
|
|
bottom-margin: 7;
|
|
wrap-mode: word;
|
|
buffer: TextBuffer { };
|
|
}
|
|
}
|
|
|
|
Button ask_button {
|
|
valign: end;
|
|
|
|
icon-name: "paper-plane-symbolic";
|
|
tooltip-text: _("Ask");
|
|
halign: end;
|
|
action-name: "app.ask";
|
|
styles ["suggested-action", "circular"]
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
menu main-menu {
|
|
section {
|
|
item {
|
|
label: _("New window");
|
|
action: "app.new";
|
|
}
|
|
}
|
|
section {
|
|
item {
|
|
label: _("Preferences");
|
|
action: "app.preferences";
|
|
}
|
|
|
|
item {
|
|
label: _("Keyboard Shortcuts");
|
|
action: "win.show-help-overlay";
|
|
}
|
|
|
|
item {
|
|
label: _("About Bavarder");
|
|
action: "app.about";
|
|
}
|
|
}
|
|
}
|