128 lines
2.0 KiB
Plaintext

using Gtk 4.0;
template $TotpWindow : Window {
modal: true;
title: "TOTP Entry";
Overlay overlay {
halign: center;
hexpand: true;
valign: center;
vexpand: true;
child: Grid form_wrapper {
column-spacing: 5;
halign: center;
hexpand: true;
margin-bottom: 10;
margin-end: 10;
margin-start: 10;
margin-top: 10;
row-spacing: 5;
valign: center;
vexpand: true;
Box {
halign: center;
hexpand: true;
Image {
halign: center;
icon-name: "dialog-password-symbolic";
}
Label {
label: "TOTP";
styles [
"login-title-label",
]
}
layout {
column: "0";
column-span: "2";
row: "0";
}
}
Button accept_button {
label: "Accept";
clicked => $accepted() swapped;
layout {
column: "1";
row: "3";
}
}
Button cancel_button {
label: "Cancel";
clicked => $canceled() swapped;
layout {
column: "0";
row: "3";
}
}
Entry code_entry {
placeholder-text: "TOTP Code";
changed => $totp_changed() swapped;
layout {
column: "0";
column-span: "2";
row: "1";
}
}
Label error_label {
label: "ERROR";
visible: false;
styles [
"error-message-label",
]
layout {
column: "0";
column-span: "2";
row: "2";
}
}
};
[overlay]
Box loading_overlay {
orientation: vertical;
visible: false;
Spinner {
spinning: true;
valign: end;
vexpand: true;
styles [
"loading-label",
]
}
Label {
label: "Loading...";
valign: start;
vexpand: true;
styles [
"loading-label",
]
}
styles [
"loading-label",
]
}
}
}