epic: port to blueprint
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -7,4 +7,5 @@ tmp/
|
||||
# temporary files
|
||||
*~
|
||||
# temporary glade files
|
||||
\#*
|
||||
\#*
|
||||
/subprojects/blueprint-compiler
|
||||
|
||||
@@ -1,3 +1,31 @@
|
||||
blueprints = custom_target('blueprints',
|
||||
input: files(
|
||||
'ui/pages/confirm.blp',
|
||||
'ui/pages/disk.blp',
|
||||
'ui/pages/done.blp',
|
||||
'ui/pages/encrypt.blp',
|
||||
'ui/pages/install.blp',
|
||||
'ui/pages/internet.blp',
|
||||
'ui/pages/keyboard_layout.blp',
|
||||
'ui/pages/language.blp',
|
||||
'ui/pages/locale.blp',
|
||||
'ui/pages/restart.blp',
|
||||
'ui/pages/software.blp',
|
||||
'ui/pages/user.blp',
|
||||
'ui/pages/failed.blp',
|
||||
'ui/widgets/device_row.blp',
|
||||
'ui/widgets/horizontally_scrollable_list.blp',
|
||||
'ui/widgets/language_row.blp',
|
||||
'ui/widgets/progress_row.blp',
|
||||
'ui/widgets/selection_row.blp',
|
||||
'ui/widgets/software_row.blp',
|
||||
'ui/widgets/no_partitions_row.blp',
|
||||
'ui/confirm_quit_popup.blp',
|
||||
'ui/main_window.blp',
|
||||
),
|
||||
output: '.',
|
||||
command: [find_program('blueprint-compiler'), 'batch-compile', '@OUTPUT@', '@CURRENT_SOURCE_DIR@', '@INPUT@'],
|
||||
)
|
||||
pkgdatadir = join_paths(get_option('prefix'), get_option('datadir'), meson.project_name())
|
||||
gnome = import('gnome')
|
||||
|
||||
@@ -5,6 +33,7 @@ gnome.compile_resources(
|
||||
meson.project_name(),
|
||||
meson.project_name() + '.gresource.xml',
|
||||
gresource_bundle: true,
|
||||
dependencies: blueprints,
|
||||
install: true,
|
||||
install_dir: pkgdatadir
|
||||
)
|
||||
|
||||
72
data/resources/ui/confirm_quit_popup.blp
Normal file
72
data/resources/ui/confirm_quit_popup.blp
Normal file
@@ -0,0 +1,72 @@
|
||||
using Gtk 4.0;
|
||||
|
||||
template ConfirmQuitPopup : .AdwWindow {
|
||||
destroy-with-parent: "True";
|
||||
content:
|
||||
WindowHandle {
|
||||
Box {
|
||||
margin-start: 12;
|
||||
margin-end: 12;
|
||||
margin-top: 12;
|
||||
margin-bottom: 12;
|
||||
orientation: vertical;
|
||||
spacing: 12;
|
||||
|
||||
Image {
|
||||
pixel-size: 128;
|
||||
icon-name: "dialog-warning-symbolic";
|
||||
}
|
||||
|
||||
Label {
|
||||
halign: center;
|
||||
valign: center;
|
||||
|
||||
/* Translators: Shown if user wants to close window with running installation */
|
||||
|
||||
label: _("Stopping a running installation will leave the disk in an undefined state that might potentially be harmful");
|
||||
justify: center;
|
||||
wrap: true;
|
||||
max-width-chars: 45;
|
||||
|
||||
styles [
|
||||
"title-2",
|
||||
]
|
||||
}
|
||||
|
||||
Box {
|
||||
spacing: 6;
|
||||
homogeneous: true;
|
||||
|
||||
Button continue_button {
|
||||
/* Translators: Underscore can not be the same as for 'Stop Installation'. */
|
||||
|
||||
label: _("_Continue Installation");
|
||||
focusable: true;
|
||||
receives-default: true;
|
||||
use-underline: true;
|
||||
|
||||
styles [
|
||||
"suggested-action",
|
||||
"pill",
|
||||
]
|
||||
}
|
||||
|
||||
Button stop_button {
|
||||
/* Translators: Underscore can not be the same as for 'Continue Installation'. */
|
||||
|
||||
label: _("_Stop Installation");
|
||||
focusable: true;
|
||||
receives-default: true;
|
||||
use-underline: true;
|
||||
|
||||
styles [
|
||||
"destructive-action",
|
||||
"pill",
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
@@ -1,71 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<requires lib="gtk" version="4.0"/>
|
||||
<requires lib="libadwaita" version="1.0"/>
|
||||
<template class="ConfirmQuitPopup" parent="AdwWindow">
|
||||
<property name="destroy-with-parent">True</property>
|
||||
<property name="content">
|
||||
<object class="GtkWindowHandle">
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-end">12</property>
|
||||
<property name="margin-top">12</property>
|
||||
<property name="margin-bottom">12</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="pixel-size">128</property>
|
||||
<property name="icon-name">dialog-warning-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="label" translatable="1" comments="Shown if user wants to close window with running installation">Stopping a running installation will leave the disk in an undefined state that might potentially be harmful</property>
|
||||
<property name="justify">center</property>
|
||||
<property name="wrap">1</property>
|
||||
<property name="max-width-chars">45</property>
|
||||
<style>
|
||||
<class name="title-2"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="spacing">6</property>
|
||||
<property name="homogeneous">1</property>
|
||||
<child>
|
||||
<object class="GtkButton" id="continue_button">
|
||||
<property name="label" translatable="1" comments="Underscore can not be the same as for 'Stop Installation'.">_Continue Installation</property>
|
||||
<property name="focusable">1</property>
|
||||
<property name="receives-default">1</property>
|
||||
<property name="use-underline">1</property>
|
||||
<style>
|
||||
<class name="suggested-action"/>
|
||||
<class name="pill"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="stop_button">
|
||||
<property name="label" translatable="1" comments="Underscore can not be the same as for 'Continue Installation'.">_Stop Installation</property>
|
||||
<property name="focusable">1</property>
|
||||
<property name="receives-default">1</property>
|
||||
<property name="use-underline">1</property>
|
||||
<style>
|
||||
<class name="destructive-action"/>
|
||||
<class name="pill"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</property>
|
||||
</template>
|
||||
</interface>
|
||||
103
data/resources/ui/main_window.blp
Normal file
103
data/resources/ui/main_window.blp
Normal file
@@ -0,0 +1,103 @@
|
||||
using Gtk 4.0;
|
||||
|
||||
template OsInstallerWindow : .AdwApplicationWindow {
|
||||
width-request: "360";
|
||||
height-request: "480";
|
||||
default-width: "420";
|
||||
default-height: "560";
|
||||
destroy => _on_quit();
|
||||
|
||||
Box {
|
||||
orientation: vertical;
|
||||
|
||||
.AdwHeaderBar {
|
||||
show-start-title-buttons: "0";
|
||||
show-end-title-buttons: "0";
|
||||
|
||||
[start]
|
||||
Box {
|
||||
valign: start;
|
||||
|
||||
WindowControls {
|
||||
side: start;
|
||||
}
|
||||
|
||||
Revealer previous_revealer {
|
||||
transition-type: crossfade;
|
||||
margin-end: 6;
|
||||
child:
|
||||
Button {
|
||||
action-name: "app.previous-page";
|
||||
focusable: true;
|
||||
focus-on-click: false;
|
||||
icon-name: "go-previous-symbolic";
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
|
||||
Revealer next_revealer {
|
||||
transition-type: crossfade;
|
||||
child:
|
||||
Button {
|
||||
action-name: "app.next-page";
|
||||
focusable: true;
|
||||
focus-on-click: false;
|
||||
icon-name: "go-next-symbolic";
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
[title]
|
||||
Stack image_stack {
|
||||
margin-bottom: 12;
|
||||
margin-top: 12;
|
||||
transition-type: crossfade;
|
||||
|
||||
StackPage {
|
||||
name: "1";
|
||||
child:
|
||||
Image {
|
||||
pixel-size: 128;
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
|
||||
StackPage {
|
||||
name: "2";
|
||||
child:
|
||||
Image {
|
||||
pixel-size: 128;
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
[end]
|
||||
WindowControls {
|
||||
valign: start;
|
||||
side: end;
|
||||
}
|
||||
|
||||
styles [
|
||||
"flat",
|
||||
]
|
||||
}
|
||||
|
||||
.AdwClamp {
|
||||
vexpand: "1";
|
||||
margin-start: "6";
|
||||
margin-end: "6";
|
||||
maximum-size: "400";
|
||||
tightening-threshold: "320";
|
||||
|
||||
Stack main_stack {
|
||||
transition-type: slide_left_right;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,110 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<requires lib="gtk" version="4.0"/>
|
||||
<requires lib="libadwaita" version="1.0"/>
|
||||
<template class="OsInstallerWindow" parent="AdwApplicationWindow">
|
||||
<property name="width-request">360</property>
|
||||
<property name="height-request">480</property>
|
||||
<property name="default-width">420</property>
|
||||
<property name="default-height">560</property>
|
||||
<signal name="destroy" handler="_on_quit" swapped="no"/>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="AdwHeaderBar">
|
||||
<property name="show-start-title-buttons">0</property>
|
||||
<property name="show-end-title-buttons">0</property>
|
||||
<child type="start">
|
||||
<object class="GtkBox">
|
||||
<property name="valign">start</property>
|
||||
<child>
|
||||
<object class="GtkWindowControls">
|
||||
<property name="side">start</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRevealer" id="previous_revealer">
|
||||
<property name="transition-type">crossfade</property>
|
||||
<property name="margin-end">6</property>
|
||||
<property name="child">
|
||||
<object class="GtkButton">
|
||||
<property name="action-name">app.previous-page</property>
|
||||
<property name="focusable">1</property>
|
||||
<property name="focus-on-click">0</property>
|
||||
<property name="icon-name">go-previous-symbolic</property>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRevealer" id="next_revealer">
|
||||
<property name="transition-type">crossfade</property>
|
||||
<property name="child">
|
||||
<object class="GtkButton">
|
||||
<property name="action-name">app.next-page</property>
|
||||
<property name="focusable">1</property>
|
||||
<property name="focus-on-click">0</property>
|
||||
<property name="icon-name">go-next-symbolic</property>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child type="title">
|
||||
<object class="GtkStack" id="image_stack">
|
||||
<property name="margin-bottom">12</property>
|
||||
<property name="margin-top">12</property>
|
||||
<property name="transition-type">crossfade</property>
|
||||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">1</property>
|
||||
<property name="child">
|
||||
<object class="GtkImage">
|
||||
<property name="pixel-size">128</property>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">2</property>
|
||||
<property name="child">
|
||||
<object class="GtkImage">
|
||||
<property name="pixel-size">128</property>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child type="end">
|
||||
<object class="GtkWindowControls">
|
||||
<property name="valign">start</property>
|
||||
<property name="side">end</property>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="flat"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="AdwClamp">
|
||||
<property name="vexpand">1</property>
|
||||
<property name="margin-start">6</property>
|
||||
<property name="margin-end">6</property>
|
||||
<property name="maximum-size">400</property>
|
||||
<property name="tightening-threshold">320</property>
|
||||
<child>
|
||||
<object class="GtkStack" id="main_stack">
|
||||
<property name="transition-type">slide-left-right</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</template>
|
||||
</interface>
|
||||
49
data/resources/ui/pages/confirm.blp
Normal file
49
data/resources/ui/pages/confirm.blp
Normal file
@@ -0,0 +1,49 @@
|
||||
using Gtk 4.0;
|
||||
|
||||
template ConfirmPage : Box {
|
||||
margin-bottom: 18;
|
||||
orientation: vertical;
|
||||
spacing: 18;
|
||||
|
||||
Box {
|
||||
halign: center;
|
||||
valign: end;
|
||||
orientation: vertical;
|
||||
spacing: 6;
|
||||
|
||||
Label {
|
||||
/* Translators: Followed by a disk or partition name */
|
||||
|
||||
label: _("This will delete all data on");
|
||||
wrap: true;
|
||||
|
||||
styles [
|
||||
"title-2",
|
||||
]
|
||||
}
|
||||
|
||||
Label disk_label {
|
||||
wrap: true;
|
||||
wrap-mode: word_char;
|
||||
|
||||
styles [
|
||||
"title-3",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
Button confirm_button {
|
||||
/* Translators: Button label to confirm disk deletion */
|
||||
|
||||
label: _("_Confirm");
|
||||
focusable: true;
|
||||
receives-default: true;
|
||||
halign: center;
|
||||
use-underline: true;
|
||||
|
||||
styles [
|
||||
"destructive-action",
|
||||
"pill",
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<requires lib="gtk" version="4.0"/>
|
||||
<template class="ConfirmPage" parent="GtkBox">
|
||||
<property name="margin-bottom">18</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">18</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">end</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">6</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="label" translatable="1" comments="Followed by a disk or partition name">This will delete all data on</property>
|
||||
<property name="wrap">1</property>
|
||||
<style>
|
||||
<class name="title-2"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="disk_label">
|
||||
<property name="wrap">1</property>
|
||||
<property name="wrap-mode">word-char</property>
|
||||
<style>
|
||||
<class name="title-3"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="confirm_button">
|
||||
<property name="label" translatable="1" comments="Button label to confirm disk deletion">_Confirm</property>
|
||||
<property name="focusable">1</property>
|
||||
<property name="receives-default">1</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="use-underline">1</property>
|
||||
<style>
|
||||
<class name="destructive-action"/>
|
||||
<class name="pill"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
</template>
|
||||
</interface>
|
||||
220
data/resources/ui/pages/disk.blp
Normal file
220
data/resources/ui/pages/disk.blp
Normal file
@@ -0,0 +1,220 @@
|
||||
using Gtk 4.0;
|
||||
|
||||
template DiskPage : Box {
|
||||
orientation: vertical;
|
||||
|
||||
Stack text_stack {
|
||||
transition-type: slide_left_right;
|
||||
|
||||
StackPage {
|
||||
name: "disks";
|
||||
child:
|
||||
CenterBox {
|
||||
[center]
|
||||
Label {
|
||||
halign: center;
|
||||
|
||||
/* Translators: Explanation for disk selection page. */
|
||||
|
||||
label: _("Select Drive for Installation");
|
||||
justify: center;
|
||||
wrap: true;
|
||||
|
||||
styles [
|
||||
"title-2",
|
||||
]
|
||||
}
|
||||
|
||||
[end]
|
||||
Button refresh_button {
|
||||
halign: end;
|
||||
width-request: 32;
|
||||
focusable: true;
|
||||
halign: end;
|
||||
valign: center;
|
||||
|
||||
Image {
|
||||
icon-name: "view-refresh-symbolic";
|
||||
}
|
||||
|
||||
styles [
|
||||
"circular",
|
||||
"flat",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
|
||||
StackPage {
|
||||
name: "partitions";
|
||||
child:
|
||||
Label disk_label {
|
||||
justify: center;
|
||||
wrap: true;
|
||||
|
||||
styles [
|
||||
"title-2",
|
||||
]
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
Box {
|
||||
vexpand: true;
|
||||
orientation: vertical;
|
||||
|
||||
ScrolledWindow {
|
||||
vexpand: true;
|
||||
focusable: true;
|
||||
margin-start: 6;
|
||||
margin-end: 6;
|
||||
hscrollbar-policy: external;
|
||||
propagate-natural-width: true;
|
||||
propagate-natural-height: true;
|
||||
child:
|
||||
Viewport {
|
||||
vscroll-policy: natural;
|
||||
child:
|
||||
Stack list_stack {
|
||||
margin-start: 18;
|
||||
margin-end: 18;
|
||||
margin-top: 6;
|
||||
margin-bottom: 6;
|
||||
vhomogeneous: false;
|
||||
transition-type: slide_left_right;
|
||||
|
||||
StackPage {
|
||||
name: "disks";
|
||||
child:
|
||||
ListBox disk_list {
|
||||
receives-default: true;
|
||||
valign: start;
|
||||
|
||||
styles [
|
||||
"boxed-list",
|
||||
]
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
|
||||
StackPage {
|
||||
name: "partitions";
|
||||
child:
|
||||
Box {
|
||||
orientation: vertical;
|
||||
spacing: 12;
|
||||
|
||||
ListBox whole_disk_list {
|
||||
selection-mode: none;
|
||||
|
||||
ListBoxRow {
|
||||
name: "back_row";
|
||||
focusable: true;
|
||||
selectable: false;
|
||||
child:
|
||||
Box {
|
||||
margin-start: 12;
|
||||
margin-end: 12;
|
||||
margin-top: 6;
|
||||
margin-bottom: 6;
|
||||
spacing: 12;
|
||||
|
||||
Label disk_size {
|
||||
width-chars: 5;
|
||||
max-width-chars: 7;
|
||||
xalign: 1;
|
||||
|
||||
styles [
|
||||
"dim-label",
|
||||
]
|
||||
}
|
||||
|
||||
Box {
|
||||
hexpand: true;
|
||||
orientation: vertical;
|
||||
spacing: 2;
|
||||
|
||||
Label {
|
||||
valign: end;
|
||||
|
||||
/* Translators: Label to go back to overview of all disks */
|
||||
|
||||
label: _("Use Whole Disk");
|
||||
wrap: true;
|
||||
xalign: 0;
|
||||
}
|
||||
|
||||
Label disk_device_path {
|
||||
valign: start;
|
||||
width-chars: 5;
|
||||
max-width-chars: 7;
|
||||
xalign: 0;
|
||||
|
||||
styles [
|
||||
"dim-label",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
Image {
|
||||
icon-name: "go-next-symbolic";
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
|
||||
styles [
|
||||
"boxed-list",
|
||||
]
|
||||
}
|
||||
|
||||
ListBox partition_list {
|
||||
valign: start;
|
||||
|
||||
styles [
|
||||
"boxed-list",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
styles [
|
||||
"scrollbar",
|
||||
]
|
||||
}
|
||||
|
||||
styles [
|
||||
"scrollable-box",
|
||||
]
|
||||
}
|
||||
|
||||
Button settings_button {
|
||||
/* Translators: Button label to open disk management tool. Underscore can not be for same as for 'Reload' */
|
||||
|
||||
label: _("_Manage Disks");
|
||||
focusable: true;
|
||||
halign: center;
|
||||
valign: end;
|
||||
margin-top: 12;
|
||||
margin-bottom: 18;
|
||||
use-underline: true;
|
||||
|
||||
styles [
|
||||
"pill",
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,214 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<requires lib="gtk" version="4.0"/>
|
||||
<template class="DiskPage" parent="GtkBox">
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkStack" id="text_stack">
|
||||
<property name="transition-type">slide-left-right</property>
|
||||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">disks</property>
|
||||
<property name="child">
|
||||
<object class="GtkCenterBox">
|
||||
<child type="center">
|
||||
<object class="GtkLabel">
|
||||
<property name="halign">center</property>
|
||||
<property name="label" translatable="1" comments="Explanation for disk selection page.">Select Drive for Installation</property>
|
||||
<property name="justify">center</property>
|
||||
<property name="wrap">1</property>
|
||||
<style>
|
||||
<class name="title-2"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<child type="end">
|
||||
<object class="GtkButton" id="refresh_button">
|
||||
<property name="halign">end</property>
|
||||
<property name="width-request">32</property>
|
||||
<property name="focusable">1</property>
|
||||
<property name="halign">end</property>
|
||||
<property name="valign">center</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="icon-name">view-refresh-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="circular"/>
|
||||
<class name="flat"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">partitions</property>
|
||||
<property name="child">
|
||||
<object class="GtkLabel" id="disk_label">
|
||||
<property name="justify">center</property>
|
||||
<property name="wrap">1</property>
|
||||
<style>
|
||||
<class name="title-2"/>
|
||||
</style>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="vexpand">1</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow">
|
||||
<property name="vexpand">1</property>
|
||||
<property name="focusable">1</property>
|
||||
<property name="margin-start">6</property>
|
||||
<property name="margin-end">6</property>
|
||||
<property name="hscrollbar-policy">external</property>
|
||||
<property name="propagate-natural-width">1</property>
|
||||
<property name="propagate-natural-height">1</property>
|
||||
<property name="child">
|
||||
<object class="GtkViewport">
|
||||
<property name="vscroll-policy">natural</property>
|
||||
<property name="child">
|
||||
<object class="GtkStack" id="list_stack">
|
||||
<property name="margin-start">18</property>
|
||||
<property name="margin-end">18</property>
|
||||
<property name="margin-top">6</property>
|
||||
<property name="margin-bottom">6</property>
|
||||
<property name="vhomogeneous">0</property>
|
||||
<property name="transition-type">slide-left-right</property>
|
||||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">disks</property>
|
||||
<property name="child">
|
||||
<object class="GtkListBox" id="disk_list">
|
||||
<property name="receives-default">1</property>
|
||||
<property name="valign">start</property>
|
||||
<style>
|
||||
<class name="boxed-list"/>
|
||||
</style>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">partitions</property>
|
||||
<property name="child">
|
||||
<object class="GtkBox">
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkListBox" id="whole_disk_list">
|
||||
<property name="selection-mode">none</property>
|
||||
<child>
|
||||
<object class="GtkListBoxRow">
|
||||
<property name="name">back_row</property>
|
||||
<property name="focusable">1</property>
|
||||
<property name="selectable">0</property>
|
||||
<property name="child">
|
||||
<object class="GtkBox">
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-end">12</property>
|
||||
<property name="margin-top">6</property>
|
||||
<property name="margin-bottom">6</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="disk_size">
|
||||
<property name="width-chars">5</property>
|
||||
<property name="max-width-chars">7</property>
|
||||
<property name="xalign">1</property>
|
||||
<style>
|
||||
<class name="dim-label"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="hexpand">1</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">2</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="valign">end</property>
|
||||
<property name="label" translatable="1" comments="Label to go back to overview of all disks">Use Whole Disk</property>
|
||||
<property name="wrap">1</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="disk_device_path">
|
||||
<property name="valign">start</property>
|
||||
<property name="width-chars">5</property>
|
||||
<property name="max-width-chars">7</property>
|
||||
<property name="xalign">0</property>
|
||||
<style>
|
||||
<class name="dim-label"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="icon-name">go-next-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="boxed-list"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkListBox" id="partition_list">
|
||||
<property name="valign">start</property>
|
||||
<style>
|
||||
<class name="boxed-list"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</property>
|
||||
<style>
|
||||
<class name="scrollbar"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="scrollable-box"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="settings_button">
|
||||
<property name="label" translatable="1" comments="Button label to open disk management tool. Underscore can not be for same as for 'Reload'">_Manage Disks</property>
|
||||
<property name="focusable">1</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">end</property>
|
||||
<property name="margin-top">12</property>
|
||||
<property name="margin-bottom">18</property>
|
||||
<property name="use-underline">1</property>
|
||||
<style>
|
||||
<class name="pill"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
</template>
|
||||
</interface>
|
||||
50
data/resources/ui/pages/done.blp
Normal file
50
data/resources/ui/pages/done.blp
Normal file
@@ -0,0 +1,50 @@
|
||||
using Gtk 4.0;
|
||||
|
||||
template DonePage : Box {
|
||||
orientation: vertical;
|
||||
|
||||
Box {
|
||||
halign: center;
|
||||
margin-bottom: 18;
|
||||
orientation: vertical;
|
||||
spacing: 12;
|
||||
|
||||
Label {
|
||||
/* Translators: Informative label after successful installation */
|
||||
|
||||
label: _("Installation complete");
|
||||
|
||||
styles [
|
||||
"title-2",
|
||||
]
|
||||
}
|
||||
|
||||
Button restart_button {
|
||||
/* Translators: Button label to restart system directly after successful installation. Underscore can not be for same letter as 'Restart Later'. */
|
||||
|
||||
label: _("_Restart System");
|
||||
focusable: true;
|
||||
receives-default: true;
|
||||
use-underline: true;
|
||||
|
||||
styles [
|
||||
"suggested-action",
|
||||
"pill",
|
||||
]
|
||||
}
|
||||
|
||||
Button {
|
||||
/* Translators: Button label to delay restart after successful installation. Underscore can not be for same letter as 'Restart System'. */
|
||||
|
||||
label: _("Restart _Later");
|
||||
focusable: true;
|
||||
receives-default: true;
|
||||
action-name: "app.quit";
|
||||
use-underline: true;
|
||||
|
||||
styles [
|
||||
"pill",
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,47 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<requires lib="gtk" version="4.0"/>
|
||||
<template class="DonePage" parent="GtkBox">
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="halign">center</property>
|
||||
<property name="margin-bottom">18</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="label" translatable="1" comments="Informative label after successful installation">Installation complete</property>
|
||||
<style>
|
||||
<class name="title-2"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="restart_button">
|
||||
<property name="label" translatable="1" comments="Button label to restart system directly after successful installation. Underscore can not be for same letter as 'Restart Later'.">_Restart System</property>
|
||||
<property name="focusable">1</property>
|
||||
<property name="receives-default">1</property>
|
||||
<property name="use-underline">1</property>
|
||||
<style>
|
||||
<class name="suggested-action"/>
|
||||
<class name="pill"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<property name="label" translatable="1" comments="Button label to delay restart after successful installation. Underscore can not be for same letter as 'Restart System'.">Restart _Later</property>
|
||||
<property name="focusable">1</property>
|
||||
<property name="receives-default">1</property>
|
||||
<property name="action-name">app.quit</property>
|
||||
<property name="use-underline">1</property>
|
||||
<style>
|
||||
<class name="pill"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</template>
|
||||
</interface>
|
||||
142
data/resources/ui/pages/encrypt.blp
Normal file
142
data/resources/ui/pages/encrypt.blp
Normal file
@@ -0,0 +1,142 @@
|
||||
using Gtk 4.0;
|
||||
|
||||
template EncryptPage : Box {
|
||||
margin-bottom: 18;
|
||||
orientation: vertical;
|
||||
spacing: 12;
|
||||
|
||||
Box {
|
||||
orientation: vertical;
|
||||
|
||||
ListBox default_list {
|
||||
selection-mode: none;
|
||||
|
||||
ListBoxRow {
|
||||
name: "encryption";
|
||||
focusable: true;
|
||||
selectable: false;
|
||||
child:
|
||||
Box {
|
||||
margin-start: 12;
|
||||
margin-end: 12;
|
||||
margin-top: 6;
|
||||
margin-bottom: 6;
|
||||
spacing: 12;
|
||||
|
||||
Label {
|
||||
/* Translators: Used with option to enable disk encryption */
|
||||
|
||||
label: _("Encrypt Installation");
|
||||
wrap: true;
|
||||
}
|
||||
|
||||
Switch switch {
|
||||
focusable: true;
|
||||
receives-default: true;
|
||||
valign: center;
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
|
||||
styles [
|
||||
"boxed-list",
|
||||
]
|
||||
}
|
||||
|
||||
Revealer revealer {
|
||||
vexpand: true;
|
||||
valign: start;
|
||||
transition-duration: 200;
|
||||
child:
|
||||
ListBox {
|
||||
margin-top: 12;
|
||||
selection-mode: none;
|
||||
|
||||
ListBoxRow {
|
||||
focusable: true;
|
||||
activatable: false;
|
||||
selectable: false;
|
||||
child:
|
||||
Box {
|
||||
margin-start: 12;
|
||||
margin-end: 12;
|
||||
margin-top: 6;
|
||||
margin-bottom: 6;
|
||||
orientation: vertical;
|
||||
spacing: 12;
|
||||
|
||||
Box {
|
||||
spacing: 12;
|
||||
|
||||
Label {
|
||||
hexpand: true;
|
||||
|
||||
/* Translators: Description of entry field for pin/password used for disk encryption */
|
||||
|
||||
label: _("Encryption PIN");
|
||||
wrap: true;
|
||||
xalign: 0;
|
||||
}
|
||||
|
||||
Entry pin_field {
|
||||
hexpand: true;
|
||||
activates-default: true;
|
||||
width-chars: 10;
|
||||
max-width-chars: 16;
|
||||
truncate-multiline: true;
|
||||
|
||||
/* Translators: Placeholder for disk encryption pin/password field */
|
||||
|
||||
placeholder-text: _("PIN");
|
||||
input-purpose: pin;
|
||||
}
|
||||
}
|
||||
|
||||
Box {
|
||||
spacing: 12;
|
||||
|
||||
Image {
|
||||
icon-name: "dialog-warning-symbolic";
|
||||
}
|
||||
|
||||
Label {
|
||||
hexpand: true;
|
||||
|
||||
/* Translators: Warning label for disk encryption */
|
||||
|
||||
label: _("Memorize this PIN well. Without it you will not be able to access your files.");
|
||||
wrap: true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
|
||||
styles [
|
||||
"boxed-list",
|
||||
]
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
Button continue_button {
|
||||
/* Translators: On button. */
|
||||
|
||||
label: _("_Continue");
|
||||
focusable: true;
|
||||
receives-default: true;
|
||||
halign: center;
|
||||
valign: center;
|
||||
use-underline: true;
|
||||
|
||||
styles [
|
||||
"suggested-action",
|
||||
"pill",
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,139 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<requires lib="gtk" version="4.0"/>
|
||||
<template class="EncryptPage" parent="GtkBox">
|
||||
<property name="margin-bottom">18</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkListBox" id="default_list">
|
||||
<property name="selection-mode">none</property>
|
||||
<child>
|
||||
<object class="GtkListBoxRow">
|
||||
<property name="name">encryption</property>
|
||||
<property name="focusable">1</property>
|
||||
<property name="selectable">0</property>
|
||||
<property name="child">
|
||||
<object class="GtkBox">
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-end">12</property>
|
||||
<property name="margin-top">6</property>
|
||||
<property name="margin-bottom">6</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="label" translatable="1" comments="Used with option to enable disk encryption">Encrypt Installation</property>
|
||||
<property name="wrap">1</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSwitch" id="switch">
|
||||
<property name="focusable">1</property>
|
||||
<property name="receives-default">1</property>
|
||||
<property name="valign">center</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="boxed-list"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRevealer" id="revealer">
|
||||
<property name="vexpand">1</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="transition-duration">200</property>
|
||||
<property name="child">
|
||||
<object class="GtkListBox">
|
||||
<property name="margin-top">12</property>
|
||||
<property name="selection-mode">none</property>
|
||||
<child>
|
||||
<object class="GtkListBoxRow">
|
||||
<property name="focusable">1</property>
|
||||
<property name="activatable">0</property>
|
||||
<property name="selectable">0</property>
|
||||
<property name="child">
|
||||
<object class="GtkBox">
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-end">12</property>
|
||||
<property name="margin-top">6</property>
|
||||
<property name="margin-bottom">6</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="hexpand">1</property>
|
||||
<property name="label" translatable="1" comments="Description of entry field for pin/password used for disk encryption">Encryption PIN</property>
|
||||
<property name="wrap">1</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="pin_field">
|
||||
<property name="hexpand">1</property>
|
||||
<property name="activates-default">1</property>
|
||||
<property name="width-chars">10</property>
|
||||
<property name="max-width-chars">16</property>
|
||||
<property name="truncate-multiline">1</property>
|
||||
<property name="placeholder-text" translatable="1" comments="Placeholder for disk encryption pin/password field">PIN</property>
|
||||
<property name="input-purpose">pin</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="icon-name">dialog-warning-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="hexpand">1</property>
|
||||
<property name="label" translatable="1" comments="Warning label for disk encryption">Memorize this PIN well. Without it you will not be able to access your files.</property>
|
||||
<property name="wrap">1</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="boxed-list"/>
|
||||
</style>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="continue_button">
|
||||
<property name="label" translatable="1" comments="On button.">_Continue</property>
|
||||
<property name="focusable">1</property>
|
||||
<property name="receives-default">1</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="use-underline">1</property>
|
||||
<style>
|
||||
<class name="suggested-action"/>
|
||||
<class name="pill"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
</template>
|
||||
</interface>
|
||||
49
data/resources/ui/pages/failed.blp
Normal file
49
data/resources/ui/pages/failed.blp
Normal file
@@ -0,0 +1,49 @@
|
||||
using Gtk 4.0;
|
||||
|
||||
template FailedPage : Box {
|
||||
margin-bottom: 18;
|
||||
orientation: vertical;
|
||||
spacing: 12;
|
||||
|
||||
Label {
|
||||
halign: center;
|
||||
valign: center;
|
||||
|
||||
/* Translators: Shown as simple informative text */
|
||||
|
||||
label: _("The installation failed");
|
||||
justify: center;
|
||||
wrap: true;
|
||||
max-width-chars: 50;
|
||||
|
||||
styles [
|
||||
"title-2",
|
||||
]
|
||||
}
|
||||
|
||||
Box terminal_box {
|
||||
orientation: vertical;
|
||||
|
||||
styles [
|
||||
"terminal-box",
|
||||
]
|
||||
}
|
||||
|
||||
Button search_button {
|
||||
focusable: true;
|
||||
receives-default: true;
|
||||
halign: center;
|
||||
|
||||
Label {
|
||||
/* Translators: Shown if installation fails. */
|
||||
|
||||
label: _("Search for Help on the Internet");
|
||||
use-markup: true;
|
||||
wrap: true;
|
||||
}
|
||||
|
||||
styles [
|
||||
"pill",
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,50 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<requires lib="gtk" version="4.0"/>
|
||||
<template class="FailedPage" parent="GtkBox">
|
||||
<property name="margin-bottom">18</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="label" translatable="1" comments="Shown as simple informative text">The installation failed</property>
|
||||
<property name="justify">center</property>
|
||||
<property name="wrap">1</property>
|
||||
<property name="max-width-chars">50</property>
|
||||
<style>
|
||||
<class name="title-2"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="terminal_box">
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<style>
|
||||
<class name="terminal-box"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="search_button">
|
||||
<property name="focusable">1</property>
|
||||
<property name="receives-default">1</property>
|
||||
<property name="halign">center</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="label" translatable="1" comments="Shown if installation fails.">Search for Help on the Internet</property>
|
||||
<property name="use-markup">1</property>
|
||||
<property name="wrap">1</property>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="pill"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
</template>
|
||||
</interface>
|
||||
71
data/resources/ui/pages/install.blp
Normal file
71
data/resources/ui/pages/install.blp
Normal file
@@ -0,0 +1,71 @@
|
||||
using Gtk 4.0;
|
||||
|
||||
template InstallPage : Box {
|
||||
margin-bottom: 18;
|
||||
orientation: vertical;
|
||||
spacing: 12;
|
||||
|
||||
Box {
|
||||
vexpand: true;
|
||||
orientation: vertical;
|
||||
spacing: 12;
|
||||
|
||||
Label {
|
||||
/* Translators: Simple label used during Installation */
|
||||
|
||||
label: _("Installing");
|
||||
|
||||
styles [
|
||||
"title-2",
|
||||
]
|
||||
}
|
||||
|
||||
Stack stack {
|
||||
vexpand: true;
|
||||
transition-type: crossfade;
|
||||
|
||||
StackPage {
|
||||
name: "spinner";
|
||||
child:
|
||||
Spinner spinner {
|
||||
halign: center;
|
||||
height-request: 64;
|
||||
width-request: 64;
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
|
||||
StackPage {
|
||||
name: "terminal";
|
||||
child:
|
||||
Box terminal_box {
|
||||
orientation: vertical;
|
||||
|
||||
styles [
|
||||
"terminal-box",
|
||||
]
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ToggleButton terminal_button {
|
||||
focusable: true;
|
||||
|
||||
/* Translators: Hover information on toggle button that shows terminal output during installation. */
|
||||
|
||||
tooltip-text: _("Show Terminal Output");
|
||||
halign: center;
|
||||
|
||||
Image {
|
||||
icon-name: "utilities-terminal-symbolic";
|
||||
}
|
||||
|
||||
styles [
|
||||
"pill",
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,73 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<requires lib="gtk" version="4.0"/>
|
||||
<template class="InstallPage" parent="GtkBox">
|
||||
<property name="margin-bottom">18</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="vexpand">1</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="label" translatable="1" comments="Simple label used during Installation">Installing</property>
|
||||
<style>
|
||||
<class name="title-2"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkStack" id="stack">
|
||||
<property name="vexpand">1</property>
|
||||
<property name="transition-type">crossfade</property>
|
||||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">spinner</property>
|
||||
<property name="child">
|
||||
<object class="GtkSpinner" id="spinner">
|
||||
<property name="halign">center</property>
|
||||
<property name="height-request">64</property>
|
||||
<property name="width-request">64</property>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">terminal</property>
|
||||
<property name="child">
|
||||
<object class="GtkBox" id="terminal_box">
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<style>
|
||||
<class name="terminal-box"/>
|
||||
</style>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkToggleButton" id="terminal_button">
|
||||
<property name="focusable">1</property>
|
||||
<property name="tooltip-text" translatable="1" comments="Hover information on toggle button that shows terminal output during installation.">Show Terminal Output</property>
|
||||
<property name="halign">center</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="icon-name">utilities-terminal-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="pill"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
</template>
|
||||
</interface>
|
||||
29
data/resources/ui/pages/internet.blp
Normal file
29
data/resources/ui/pages/internet.blp
Normal file
@@ -0,0 +1,29 @@
|
||||
using Gtk 4.0;
|
||||
|
||||
template InternetPage : Box {
|
||||
margin-bottom: 18;
|
||||
orientation: vertical;
|
||||
spacing: 18;
|
||||
|
||||
Button settings_button {
|
||||
focusable: true;
|
||||
receives-default: true;
|
||||
halign: center;
|
||||
valign: center;
|
||||
use-underline: true;
|
||||
|
||||
Label {
|
||||
/* Translators: On button for opening wifi settings. */
|
||||
|
||||
label: _("_Setup Internet Connection");
|
||||
use-underline: true;
|
||||
justify: center;
|
||||
wrap: true;
|
||||
}
|
||||
|
||||
styles [
|
||||
"suggested-action",
|
||||
"pill",
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<requires lib="gtk" version="4.0"/>
|
||||
<template class="InternetPage" parent="GtkBox">
|
||||
<property name="margin-bottom">18</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">18</property>
|
||||
<child>
|
||||
<object class="GtkButton" id="settings_button">
|
||||
<property name="focusable">1</property>
|
||||
<property name="receives-default">1</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="use-underline">1</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="label" translatable="1" comments="On button for opening wifi settings.">_Setup Internet Connection</property>
|
||||
<property name="use-underline">1</property>
|
||||
<property name="justify">center</property>
|
||||
<property name="wrap">1</property>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="suggested-action"/>
|
||||
<class name="pill"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
</template>
|
||||
</interface>
|
||||
157
data/resources/ui/pages/keyboard_layout.blp
Normal file
157
data/resources/ui/pages/keyboard_layout.blp
Normal file
@@ -0,0 +1,157 @@
|
||||
using Gtk 4.0;
|
||||
|
||||
template KeyboardLayoutPage : Box {
|
||||
orientation: vertical;
|
||||
spacing: 12;
|
||||
|
||||
Label {
|
||||
/* Translators: Explanation for keyboard layout selection page. */
|
||||
|
||||
label: _("Select Keyboard Layout");
|
||||
justify: center;
|
||||
wrap: true;
|
||||
|
||||
styles [
|
||||
"title-2",
|
||||
]
|
||||
}
|
||||
|
||||
Entry {
|
||||
focusable: true;
|
||||
valign: start;
|
||||
activates-default: true;
|
||||
truncate-multiline: true;
|
||||
primary-icon-activatable: false;
|
||||
primary-icon-sensitive: false;
|
||||
|
||||
/* Translators: Used as placeholder in a entry field to try out a keyboard layout */
|
||||
|
||||
placeholder-text: _("Test the Keyboard Layout Here");
|
||||
}
|
||||
|
||||
Box {
|
||||
hexpand: true;
|
||||
orientation: vertical;
|
||||
|
||||
ScrolledWindow {
|
||||
focusable: true;
|
||||
hexpand: true;
|
||||
vexpand: true;
|
||||
margin-start: 0;
|
||||
margin-end: 0;
|
||||
hscrollbar-policy: external;
|
||||
propagate-natural-width: true;
|
||||
propagate-natural-height: true;
|
||||
child:
|
||||
Stack stack {
|
||||
margin-start: 24;
|
||||
margin-end: 24;
|
||||
margin-top: 12;
|
||||
margin-bottom: 12;
|
||||
vhomogeneous: false;
|
||||
transition-type: crossfade;
|
||||
|
||||
StackPage {
|
||||
name: "layouts";
|
||||
child:
|
||||
Box {
|
||||
valign: start;
|
||||
orientation: vertical;
|
||||
spacing: 12;
|
||||
|
||||
ListBox change_language_list {
|
||||
valign: start;
|
||||
hexpand: true;
|
||||
selection-mode: none;
|
||||
|
||||
ListBoxRow {
|
||||
focusable: true;
|
||||
child:
|
||||
Box {
|
||||
margin-start: 12;
|
||||
margin-end: 12;
|
||||
margin-top: 6;
|
||||
margin-bottom: 6;
|
||||
spacing: 12;
|
||||
|
||||
Label {
|
||||
/* Translators: Followed by a language name. */
|
||||
|
||||
label: _("Keyboard Language");
|
||||
wrap: true;
|
||||
}
|
||||
|
||||
Label language_label {
|
||||
hexpand: true;
|
||||
wrap: true;
|
||||
xalign: 1;
|
||||
}
|
||||
|
||||
Image {
|
||||
icon-name: "emblem-system-symbolic";
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
|
||||
styles [
|
||||
"boxed-list",
|
||||
]
|
||||
}
|
||||
|
||||
ListBox layout_list {
|
||||
styles [
|
||||
"boxed-list",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
|
||||
StackPage {
|
||||
name: "languages";
|
||||
child:
|
||||
ListBox language_list {
|
||||
valign: start;
|
||||
|
||||
styles [
|
||||
"boxed-list",
|
||||
]
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
styles [
|
||||
"scrollbar",
|
||||
]
|
||||
}
|
||||
|
||||
styles [
|
||||
"scrollable-box",
|
||||
]
|
||||
}
|
||||
|
||||
Button continue_button {
|
||||
/* Translators: On button. */
|
||||
|
||||
label: _("_Continue");
|
||||
sensitive: false;
|
||||
focusable: true;
|
||||
receives-default: true;
|
||||
halign: center;
|
||||
valign: end;
|
||||
margin-bottom: 18;
|
||||
use-underline: true;
|
||||
|
||||
styles [
|
||||
"suggested-action",
|
||||
"pill",
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,154 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<requires lib="gtk" version="4.0"/>
|
||||
<requires lib="libadwaita" version="1.0"/>
|
||||
<template class="KeyboardLayoutPage" parent="GtkBox">
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="label" translatable="1" comments="Explanation for keyboard layout selection page.">Select Keyboard Layout</property>
|
||||
<property name="justify">center</property>
|
||||
<property name="wrap">1</property>
|
||||
<style>
|
||||
<class name="title-2"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry">
|
||||
<property name="focusable">1</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="activates-default">1</property>
|
||||
<property name="truncate-multiline">1</property>
|
||||
<property name="primary-icon-activatable">0</property>
|
||||
<property name="primary-icon-sensitive">0</property>
|
||||
<property name="placeholder-text" translatable="1" comments="Used as placeholder in a entry field to try out a keyboard layout">Test the Keyboard Layout Here</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="hexpand">1</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow">
|
||||
<property name="focusable">1</property>
|
||||
<property name="hexpand">1</property>
|
||||
<property name="vexpand">1</property>
|
||||
<property name="margin-start">0</property>
|
||||
<property name="margin-end">0</property>
|
||||
<property name="hscrollbar-policy">external</property>
|
||||
<property name="propagate-natural-width">1</property>
|
||||
<property name="propagate-natural-height">1</property>
|
||||
<property name="child">
|
||||
<object class="GtkStack" id="stack">
|
||||
<property name="margin-start">24</property>
|
||||
<property name="margin-end">24</property>
|
||||
<property name="margin-top">12</property>
|
||||
<property name="margin-bottom">12</property>
|
||||
<property name="vhomogeneous">0</property>
|
||||
<property name="transition-type">crossfade</property>
|
||||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">layouts</property>
|
||||
<property name="child">
|
||||
<object class="GtkBox">
|
||||
<property name="valign">start</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkListBox" id="change_language_list">
|
||||
<property name="valign">start</property>
|
||||
<property name="hexpand">1</property>
|
||||
<property name="selection-mode">none</property>
|
||||
<child>
|
||||
<object class="GtkListBoxRow">
|
||||
<property name="focusable">1</property>
|
||||
<property name="child">
|
||||
<object class="GtkBox">
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-end">12</property>
|
||||
<property name="margin-top">6</property>
|
||||
<property name="margin-bottom">6</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="label" translatable="1" comments="Followed by a language name.">Keyboard Language</property>
|
||||
<property name="wrap">1</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="language_label">
|
||||
<property name="hexpand">1</property>
|
||||
<property name="wrap">1</property>
|
||||
<property name="xalign">1</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="icon-name">emblem-system-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="boxed-list"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkListBox" id="layout_list">
|
||||
<style>
|
||||
<class name="boxed-list"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">languages</property>
|
||||
<property name="child">
|
||||
<object class="GtkListBox" id="language_list">
|
||||
<property name="valign">start</property>
|
||||
<style>
|
||||
<class name="boxed-list"/>
|
||||
</style>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</property>
|
||||
<style>
|
||||
<class name="scrollbar"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="scrollable-box"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="continue_button">
|
||||
<property name="label" translatable="1" comments="On button.">_Continue</property>
|
||||
<property name="sensitive">0</property>
|
||||
<property name="focusable">1</property>
|
||||
<property name="receives-default">1</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">end</property>
|
||||
<property name="margin-bottom">18</property>
|
||||
<property name="use-underline">1</property>
|
||||
<style>
|
||||
<class name="suggested-action"/>
|
||||
<class name="pill"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
</template>
|
||||
</interface>
|
||||
85
data/resources/ui/pages/language.blp
Normal file
85
data/resources/ui/pages/language.blp
Normal file
@@ -0,0 +1,85 @@
|
||||
using Gtk 4.0;
|
||||
|
||||
template LanguagePage : Overlay {
|
||||
child: Box {
|
||||
orientation: vertical;
|
||||
|
||||
ScrolledWindow {
|
||||
focusable: true;
|
||||
hscrollbar-policy: external;
|
||||
vscrollbar-policy: external;
|
||||
propagate-natural-width: true;
|
||||
propagate-natural-height: true;
|
||||
child:
|
||||
Viewport {
|
||||
vscroll-policy: natural;
|
||||
child:
|
||||
Box {
|
||||
margin-top: 12;
|
||||
margin-bottom: 70;
|
||||
orientation: vertical;
|
||||
spacing: 12;
|
||||
|
||||
ListBox language_list {
|
||||
styles [
|
||||
"boxed-list",
|
||||
]
|
||||
}
|
||||
|
||||
Revealer show_all_revealer {
|
||||
transition-type: slide_up;
|
||||
child:
|
||||
Button show_all_button {
|
||||
width-request: 32;
|
||||
focusable: true;
|
||||
receives-default: true;
|
||||
halign: center;
|
||||
valign: center;
|
||||
margin-bottom: 18;
|
||||
|
||||
Image {
|
||||
icon-name: "view-more-symbolic";
|
||||
}
|
||||
|
||||
styles [
|
||||
"pill",
|
||||
]
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
[overlay]
|
||||
Box {
|
||||
can-target: false;
|
||||
height-request: 64;
|
||||
valign: end;
|
||||
orientation: vertical;
|
||||
|
||||
styles [
|
||||
"bottom-gradient",
|
||||
]
|
||||
}
|
||||
|
||||
[overlay]
|
||||
Box {
|
||||
can-target: false;
|
||||
height-request: 16;
|
||||
valign: start;
|
||||
orientation: vertical;
|
||||
|
||||
styles [
|
||||
"top-gradient",
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,88 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<requires lib="gtk" version="4.0"/>
|
||||
<template class="LanguagePage" parent="GtkOverlay">
|
||||
<property name="child">
|
||||
<object class="GtkBox">
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow">
|
||||
<property name="focusable">1</property>
|
||||
<property name="hscrollbar-policy">external</property>
|
||||
<property name="vscrollbar-policy">external</property>
|
||||
<property name="propagate-natural-width">1</property>
|
||||
<property name="propagate-natural-height">1</property>
|
||||
<property name="child">
|
||||
<object class="GtkViewport">
|
||||
<property name="vscroll-policy">natural</property>
|
||||
<property name="child">
|
||||
<object class="GtkBox">
|
||||
<property name="margin-top">12</property>
|
||||
<property name="margin-bottom">70</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkListBox" id="language_list">
|
||||
<style>
|
||||
<class name="boxed-list"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRevealer" id="show_all_revealer">
|
||||
<property name="transition-type">slide-up</property>
|
||||
<property name="child">
|
||||
<object class="GtkButton" id="show_all_button">
|
||||
<property name="width-request">32</property>
|
||||
<property name="focusable">1</property>
|
||||
<property name="receives-default">1</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="margin-bottom">18</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="icon-name">view-more-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="pill"/>
|
||||
</style>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</property>
|
||||
<child type="overlay">
|
||||
<object class="GtkBox">
|
||||
<property name="can-target">0</property>
|
||||
<property name="height-request">64</property>
|
||||
<property name="valign">end</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<style>
|
||||
<class name="bottom-gradient"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<child type="overlay">
|
||||
<object class="GtkBox">
|
||||
<property name="can-target">0</property>
|
||||
<property name="height-request">16</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<style>
|
||||
<class name="top-gradient"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
</template>
|
||||
</interface>
|
||||
289
data/resources/ui/pages/locale.blp
Normal file
289
data/resources/ui/pages/locale.blp
Normal file
@@ -0,0 +1,289 @@
|
||||
using Gtk 4.0;
|
||||
|
||||
template LocalePage : Box {
|
||||
orientation: vertical;
|
||||
|
||||
Stack overview_stack {
|
||||
vhomogeneous: false;
|
||||
|
||||
StackPage {
|
||||
name: "overview";
|
||||
child:
|
||||
Box {
|
||||
margin-bottom: 18;
|
||||
orientation: vertical;
|
||||
spacing: 12;
|
||||
|
||||
Label {
|
||||
valign: start;
|
||||
|
||||
/* Translators: Above list of continents and countries */
|
||||
|
||||
label: _("Adapt to Location");
|
||||
justify: center;
|
||||
wrap: true;
|
||||
|
||||
styles [
|
||||
"title-2",
|
||||
]
|
||||
}
|
||||
|
||||
ListBox overview_list {
|
||||
selection-mode: none;
|
||||
|
||||
ListBoxRow {
|
||||
name: "timezone";
|
||||
focusable: true;
|
||||
selectable: false;
|
||||
child:
|
||||
Box {
|
||||
margin-start: 12;
|
||||
margin-end: 12;
|
||||
margin-top: 12;
|
||||
margin-bottom: 12;
|
||||
spacing: 12;
|
||||
|
||||
Label {
|
||||
/* Translators: Presented next to the current Timezone. */
|
||||
|
||||
label: _("Timezone");
|
||||
wrap: true;
|
||||
}
|
||||
|
||||
Label timezone_label {
|
||||
ellipsize: end;
|
||||
hexpand: true;
|
||||
wrap: true;
|
||||
xalign: 1;
|
||||
}
|
||||
|
||||
Image {
|
||||
icon-name: "emblem-system-symbolic";
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
|
||||
ListBoxRow {
|
||||
name: "formats";
|
||||
focusable: true;
|
||||
selectable: false;
|
||||
child:
|
||||
Box {
|
||||
margin-start: 12;
|
||||
margin-end: 12;
|
||||
margin-top: 12;
|
||||
margin-bottom: 12;
|
||||
orientation: vertical;
|
||||
spacing: 6;
|
||||
|
||||
Box {
|
||||
spacing: 12;
|
||||
|
||||
Label {
|
||||
/* Translators: Presented next to the current Formats. */
|
||||
|
||||
label: _("Formats");
|
||||
wrap: true;
|
||||
}
|
||||
|
||||
Label formats_label {
|
||||
ellipsize: end;
|
||||
hexpand: true;
|
||||
wrap: true;
|
||||
xalign: 1;
|
||||
}
|
||||
|
||||
Image {
|
||||
icon-name: "emblem-system-symbolic";
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
/* Translators: Description of what is covered by formats. */
|
||||
|
||||
label: _("Defines the default format used for dates, times, numbers, etc.");
|
||||
wrap: true;
|
||||
max-width-chars: 60;
|
||||
xalign: 0;
|
||||
|
||||
styles [
|
||||
"dim-label",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
|
||||
styles [
|
||||
"boxed-list",
|
||||
]
|
||||
}
|
||||
|
||||
Button confirm_button {
|
||||
/* Translators: On button. */
|
||||
|
||||
label: _("_Confirm");
|
||||
focusable: true;
|
||||
receives-default: true;
|
||||
halign: center;
|
||||
valign: center;
|
||||
use-underline: true;
|
||||
|
||||
styles [
|
||||
"suggested-action",
|
||||
"pill",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
|
||||
StackPage {
|
||||
name: "list";
|
||||
child:
|
||||
Box {
|
||||
margin-bottom: 18;
|
||||
orientation: vertical;
|
||||
spacing: 12;
|
||||
|
||||
Stack text_stack {
|
||||
valign: start;
|
||||
|
||||
StackPage {
|
||||
name: "timezone";
|
||||
child:
|
||||
Label {
|
||||
valign: start;
|
||||
|
||||
/* Translators: Above list of continents and countries */
|
||||
|
||||
label: _("Select Location");
|
||||
justify: center;
|
||||
wrap: true;
|
||||
|
||||
styles [
|
||||
"title-2",
|
||||
]
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
|
||||
StackPage {
|
||||
name: "formats";
|
||||
child:
|
||||
Label {
|
||||
valign: start;
|
||||
|
||||
/* Translators: Above list of format locales */
|
||||
|
||||
label: _("Select Region");
|
||||
justify: center;
|
||||
wrap: true;
|
||||
|
||||
styles [
|
||||
"title-2",
|
||||
]
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
Box {
|
||||
orientation: vertical;
|
||||
|
||||
ScrolledWindow {
|
||||
vexpand: true;
|
||||
margin-start: 6;
|
||||
margin-end: 6;
|
||||
hscrollbar-policy: external;
|
||||
propagate-natural-width: true;
|
||||
propagate-natural-height: true;
|
||||
child:
|
||||
Stack list_stack {
|
||||
margin-start: 18;
|
||||
margin-end: 18;
|
||||
margin-top: 6;
|
||||
margin-bottom: 6;
|
||||
vhomogeneous: false;
|
||||
transition-type: crossfade;
|
||||
|
||||
StackPage {
|
||||
name: "timezone_continents";
|
||||
child:
|
||||
ListBox continents_list {
|
||||
valign: start;
|
||||
|
||||
styles [
|
||||
"boxed-list",
|
||||
]
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
|
||||
StackPage {
|
||||
name: "timezone_countries";
|
||||
child:
|
||||
ListBox countries_list {
|
||||
valign: start;
|
||||
|
||||
styles [
|
||||
"boxed-list",
|
||||
]
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
|
||||
StackPage {
|
||||
name: "timezone_subzones";
|
||||
child:
|
||||
ListBox subzones_list {
|
||||
valign: start;
|
||||
|
||||
styles [
|
||||
"boxed-list",
|
||||
]
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
|
||||
StackPage {
|
||||
name: "formats";
|
||||
child:
|
||||
ListBox formats_list {
|
||||
valign: start;
|
||||
|
||||
styles [
|
||||
"boxed-list",
|
||||
]
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
styles [
|
||||
"scrollbar",
|
||||
]
|
||||
}
|
||||
|
||||
styles [
|
||||
"scrollable-box",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,279 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<requires lib="gtk" version="4.0"/>
|
||||
<template class="LocalePage" parent="GtkBox">
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkStack" id="overview_stack">
|
||||
<property name="vhomogeneous">0</property>
|
||||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">overview</property>
|
||||
<property name="child">
|
||||
<object class="GtkBox">
|
||||
<property name="margin-bottom">18</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="valign">start</property>
|
||||
<property name="label" translatable="1" comments="Above list of continents and countries">Adapt to Location</property>
|
||||
<property name="justify">center</property>
|
||||
<property name="wrap">1</property>
|
||||
<style>
|
||||
<class name="title-2"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkListBox" id="overview_list">
|
||||
<property name="selection-mode">none</property>
|
||||
<child>
|
||||
<object class="GtkListBoxRow">
|
||||
<property name="name">timezone</property>
|
||||
<property name="focusable">1</property>
|
||||
<property name="selectable">0</property>
|
||||
<property name="child">
|
||||
<object class="GtkBox">
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-end">12</property>
|
||||
<property name="margin-top">12</property>
|
||||
<property name="margin-bottom">12</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="label" translatable="1" comments="Presented next to the current Timezone.">Timezone</property>
|
||||
<property name="wrap">1</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="timezone_label">
|
||||
<property name="ellipsize">end</property>
|
||||
<property name="hexpand">1</property>
|
||||
<property name="wrap">1</property>
|
||||
<property name="xalign">1</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="icon-name">emblem-system-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkListBoxRow">
|
||||
<property name="name">formats</property>
|
||||
<property name="focusable">1</property>
|
||||
<property name="selectable">0</property>
|
||||
<property name="child">
|
||||
<object class="GtkBox">
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-end">12</property>
|
||||
<property name="margin-top">12</property>
|
||||
<property name="margin-bottom">12</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">6</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="label" translatable="1" comments="Presented next to the current Formats.">Formats</property>
|
||||
<property name="wrap">1</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="formats_label">
|
||||
<property name="ellipsize">end</property>
|
||||
<property name="hexpand">1</property>
|
||||
<property name="wrap">1</property>
|
||||
<property name="xalign">1</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="icon-name">emblem-system-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="label" translatable="1" comments="Description of what is covered by formats.">Defines the default format used for dates, times, numbers, etc.</property>
|
||||
<property name="wrap">1</property>
|
||||
<property name="max-width-chars">60</property>
|
||||
<property name="xalign">0</property>
|
||||
<style>
|
||||
<class name="dim-label"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="boxed-list"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="confirm_button">
|
||||
<property name="label" translatable="1" comments="On button.">_Confirm</property>
|
||||
<property name="focusable">1</property>
|
||||
<property name="receives-default">1</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="use-underline">1</property>
|
||||
<style>
|
||||
<class name="suggested-action"/>
|
||||
<class name="pill"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">list</property>
|
||||
<property name="child">
|
||||
<object class="GtkBox">
|
||||
<property name="margin-bottom">18</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkStack" id="text_stack">
|
||||
<property name="valign">start</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">timezone</property>
|
||||
<property name="child">
|
||||
<object class="GtkLabel">
|
||||
<property name="valign">start</property>
|
||||
<property name="label" translatable="1" comments="Above list of continents and countries">Select Location</property>
|
||||
<property name="justify">center</property>
|
||||
<property name="wrap">1</property>
|
||||
<style>
|
||||
<class name="title-2"/>
|
||||
</style>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">formats</property>
|
||||
<property name="child">
|
||||
<object class="GtkLabel">
|
||||
<property name="valign">start</property>
|
||||
<property name="label" translatable="1" comments="Above list of format locales">Select Region</property>
|
||||
<property name="justify">center</property>
|
||||
<property name="wrap">1</property>
|
||||
<style>
|
||||
<class name="title-2"/>
|
||||
</style>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow">
|
||||
<property name="vexpand">1</property>
|
||||
<property name="margin-start">6</property>
|
||||
<property name="margin-end">6</property>
|
||||
<property name="hscrollbar-policy">external</property>
|
||||
<property name="propagate-natural-width">1</property>
|
||||
<property name="propagate-natural-height">1</property>
|
||||
<property name="child">
|
||||
<object class="GtkStack" id="list_stack">
|
||||
<property name="margin-start">18</property>
|
||||
<property name="margin-end">18</property>
|
||||
<property name="margin-top">6</property>
|
||||
<property name="margin-bottom">6</property>
|
||||
<property name="vhomogeneous">0</property>
|
||||
<property name="transition-type">crossfade</property>
|
||||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">timezone_continents</property>
|
||||
<property name="child">
|
||||
<object class="GtkListBox" id="continents_list">
|
||||
<property name="valign">start</property>
|
||||
<style>
|
||||
<class name="boxed-list"/>
|
||||
</style>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">timezone_countries</property>
|
||||
<property name="child">
|
||||
<object class="GtkListBox" id="countries_list">
|
||||
<property name="valign">start</property>
|
||||
<style>
|
||||
<class name="boxed-list"/>
|
||||
</style>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">timezone_subzones</property>
|
||||
<property name="child">
|
||||
<object class="GtkListBox" id="subzones_list">
|
||||
<property name="valign">start</property>
|
||||
<style>
|
||||
<class name="boxed-list"/>
|
||||
</style>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">formats</property>
|
||||
<property name="child">
|
||||
<object class="GtkListBox" id="formats_list">
|
||||
<property name="valign">start</property>
|
||||
<style>
|
||||
<class name="boxed-list"/>
|
||||
</style>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</property>
|
||||
<style>
|
||||
<class name="scrollbar"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="scrollable-box"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</template>
|
||||
</interface>
|
||||
34
data/resources/ui/pages/restart.blp
Normal file
34
data/resources/ui/pages/restart.blp
Normal file
@@ -0,0 +1,34 @@
|
||||
using Gtk 4.0;
|
||||
|
||||
template RestartPage : Box {
|
||||
margin-bottom: 18;
|
||||
orientation: vertical;
|
||||
spacing: 18;
|
||||
|
||||
Box {
|
||||
vexpand: true;
|
||||
halign: center;
|
||||
valign: start;
|
||||
orientation: vertical;
|
||||
|
||||
Label {
|
||||
vexpand: true;
|
||||
|
||||
/* Translators: Shown when restarting system after installation. */
|
||||
|
||||
label: _("Restarting");
|
||||
|
||||
styles [
|
||||
"title-2",
|
||||
]
|
||||
}
|
||||
|
||||
Spinner spinner {
|
||||
vexpand: true;
|
||||
margin-top: 18;
|
||||
width-request: 64;
|
||||
height-request: 64;
|
||||
spinning: false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<requires lib="gtk" version="4.0"/>
|
||||
<template class="RestartPage" parent="GtkBox">
|
||||
<property name="margin-bottom">18</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">18</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="vexpand">1</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="vexpand">1</property>
|
||||
<property name="label" translatable="1" comments="Shown when restarting system after installation.">Restarting</property>
|
||||
<style>
|
||||
<class name="title-2"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSpinner" id="spinner">
|
||||
<property name="vexpand">1</property>
|
||||
<property name="margin-top">18</property>
|
||||
<property name="width-request">64</property>
|
||||
<property name="height-request">64</property>
|
||||
<property name="spinning">0</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</template>
|
||||
</interface>
|
||||
80
data/resources/ui/pages/software.blp
Normal file
80
data/resources/ui/pages/software.blp
Normal file
@@ -0,0 +1,80 @@
|
||||
using Gtk 4.0;
|
||||
|
||||
template SoftwarePage : Box {
|
||||
orientation: vertical;
|
||||
spacing: 12;
|
||||
|
||||
Label {
|
||||
valign: start;
|
||||
|
||||
/* Translators: Informative label above a list of software that can be selected for installation */
|
||||
|
||||
label: _("Select Additional Software to Install");
|
||||
justify: center;
|
||||
wrap: true;
|
||||
|
||||
styles [
|
||||
"title-2",
|
||||
]
|
||||
}
|
||||
|
||||
Button continue_button {
|
||||
/* Translators: On button. */
|
||||
|
||||
label: _("_Continue");
|
||||
focusable: true;
|
||||
receives-default: true;
|
||||
halign: center;
|
||||
valign: end;
|
||||
margin-bottom: 18;
|
||||
use-underline: true;
|
||||
|
||||
styles [
|
||||
"suggested-action",
|
||||
"pill",
|
||||
]
|
||||
}
|
||||
|
||||
Box {
|
||||
vexpand: true;
|
||||
orientation: vertical;
|
||||
|
||||
ScrolledWindow {
|
||||
vexpand: true;
|
||||
focusable: true;
|
||||
margin-start: 6;
|
||||
margin-end: 6;
|
||||
hscrollbar-policy: external;
|
||||
propagate-natural-width: true;
|
||||
propagate-natural-height: true;
|
||||
child:
|
||||
Viewport {
|
||||
vscroll-policy: natural;
|
||||
child:
|
||||
ListBox software_list {
|
||||
margin-start: 18;
|
||||
margin-end: 18;
|
||||
margin-top: 6;
|
||||
margin-bottom: 6;
|
||||
selection-mode: none;
|
||||
|
||||
styles [
|
||||
"boxed-list",
|
||||
]
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
styles [
|
||||
"scrollbar",
|
||||
]
|
||||
}
|
||||
|
||||
styles [
|
||||
"scrollable-box",
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,74 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<requires lib="gtk" version="4.0"/>
|
||||
<template class="SoftwarePage" parent="GtkBox">
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="valign">start</property>
|
||||
<property name="label" translatable="1" comments="Informative label above a list of software that can be selected for installation">Select Additional Software to Install</property>
|
||||
<property name="justify">center</property>
|
||||
<property name="wrap">1</property>
|
||||
<style>
|
||||
<class name="title-2"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="continue_button">
|
||||
<property name="label" translatable="1" comments="On button.">_Continue</property>
|
||||
<property name="focusable">1</property>
|
||||
<property name="receives-default">1</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">end</property>
|
||||
<property name="margin-bottom">18</property>
|
||||
<property name="use-underline">1</property>
|
||||
<style>
|
||||
<class name="suggested-action"/>
|
||||
<class name="pill"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="vexpand">1</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow">
|
||||
<property name="vexpand">1</property>
|
||||
<property name="focusable">1</property>
|
||||
<property name="margin-start">6</property>
|
||||
<property name="margin-end">6</property>
|
||||
<property name="hscrollbar-policy">external</property>
|
||||
<property name="propagate-natural-width">1</property>
|
||||
<property name="propagate-natural-height">1</property>
|
||||
<property name="child">
|
||||
<object class="GtkViewport">
|
||||
<property name="vscroll-policy">natural</property>
|
||||
<property name="child">
|
||||
<object class="GtkListBox" id="software_list">
|
||||
<property name="margin-start">18</property>
|
||||
<property name="margin-end">18</property>
|
||||
<property name="margin-top">6</property>
|
||||
<property name="margin-bottom">6</property>
|
||||
<property name="selection-mode">none</property>
|
||||
<style>
|
||||
<class name="boxed-list"/>
|
||||
</style>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</property>
|
||||
<style>
|
||||
<class name="scrollbar"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="scrollable-box"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
</template>
|
||||
</interface>
|
||||
144
data/resources/ui/pages/user.blp
Normal file
144
data/resources/ui/pages/user.blp
Normal file
@@ -0,0 +1,144 @@
|
||||
using Gtk 4.0;
|
||||
|
||||
template UserPage : Box {
|
||||
margin-bottom: 18;
|
||||
orientation: vertical;
|
||||
spacing: 12;
|
||||
|
||||
Label {
|
||||
/* Translators: Explanation for disk selection page. */
|
||||
|
||||
label: _("Enter Account Information");
|
||||
justify: center;
|
||||
wrap: true;
|
||||
|
||||
styles [
|
||||
"title-2",
|
||||
]
|
||||
}
|
||||
|
||||
ListBox default_list {
|
||||
selection-mode: none;
|
||||
|
||||
ListBoxRow {
|
||||
activatable: false;
|
||||
selectable: false;
|
||||
child:
|
||||
Box {
|
||||
margin-start: 12;
|
||||
margin-end: 12;
|
||||
margin-top: 6;
|
||||
margin-bottom: 6;
|
||||
spacing: 12;
|
||||
|
||||
Label {
|
||||
hexpand: true;
|
||||
|
||||
/* Translators: Used with entry field for User's name */
|
||||
|
||||
label: _("Name");
|
||||
wrap: true;
|
||||
xalign: 0;
|
||||
}
|
||||
|
||||
Entry user_name_field {
|
||||
focusable: true;
|
||||
width-chars: 10;
|
||||
max-width-chars: 24;
|
||||
|
||||
/* Translators: Placeholder in user name entry field */
|
||||
|
||||
placeholder-text: _("Enter a Name");
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
|
||||
ListBoxRow {
|
||||
name: "automatic_login";
|
||||
selectable: false;
|
||||
child:
|
||||
Box {
|
||||
margin-start: 12;
|
||||
margin-end: 12;
|
||||
margin-top: 6;
|
||||
margin-bottom: 6;
|
||||
spacing: 12;
|
||||
|
||||
Label {
|
||||
/* Translators: Used with option to enable automatic login of user upon booting */
|
||||
|
||||
label: _("Automatic Login");
|
||||
wrap: true;
|
||||
xalign: 0;
|
||||
}
|
||||
|
||||
Switch autologin_switch {
|
||||
focusable: true;
|
||||
valign: center;
|
||||
active: true;
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
|
||||
ListBoxRow {
|
||||
activatable: false;
|
||||
selectable: false;
|
||||
child:
|
||||
Box {
|
||||
margin-start: 12;
|
||||
margin-end: 12;
|
||||
margin-top: 6;
|
||||
margin-bottom: 6;
|
||||
spacing: 12;
|
||||
|
||||
Label {
|
||||
hexpand: true;
|
||||
|
||||
/* Translators: Used with entry field for setting a password for new user */
|
||||
|
||||
label: _("Password");
|
||||
wrap: true;
|
||||
xalign: 0;
|
||||
}
|
||||
|
||||
Entry password_field {
|
||||
focusable: true;
|
||||
visibility: false;
|
||||
width-chars: 10;
|
||||
max-width-chars: 24;
|
||||
|
||||
/* Translators: Placeholder in password entry field */
|
||||
|
||||
placeholder-text: _("Enter a Password");
|
||||
input-purpose: password;
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
|
||||
styles [
|
||||
"boxed-list",
|
||||
]
|
||||
}
|
||||
|
||||
Button continue_button {
|
||||
/* Translators: On button. */
|
||||
|
||||
label: _("_Continue");
|
||||
sensitive: false;
|
||||
focusable: true;
|
||||
receives-default: true;
|
||||
halign: center;
|
||||
use-underline: true;
|
||||
|
||||
styles [
|
||||
"suggested-action",
|
||||
"pill",
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,135 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<requires lib="gtk" version="4.0"/>
|
||||
<template class="UserPage" parent="GtkBox">
|
||||
<property name="margin-bottom">18</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="label" translatable="1" comments="Explanation for disk selection page.">Enter Account Information</property>
|
||||
<property name="justify">center</property>
|
||||
<property name="wrap">1</property>
|
||||
<style>
|
||||
<class name="title-2"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkListBox" id="default_list">
|
||||
<property name="selection-mode">none</property>
|
||||
<child>
|
||||
<object class="GtkListBoxRow">
|
||||
<property name="activatable">0</property>
|
||||
<property name="selectable">0</property>
|
||||
<property name="child">
|
||||
<object class="GtkBox">
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-end">12</property>
|
||||
<property name="margin-top">6</property>
|
||||
<property name="margin-bottom">6</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="hexpand">1</property>
|
||||
<property name="label" translatable="1" comments="Used with entry field for User's name">Name</property>
|
||||
<property name="wrap">1</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="user_name_field">
|
||||
<property name="focusable">1</property>
|
||||
<property name="width-chars">10</property>
|
||||
<property name="max-width-chars">24</property>
|
||||
<property name="placeholder-text" translatable="1" comments="Placeholder in user name entry field">Enter a Name</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkListBoxRow">
|
||||
<property name="name">automatic_login</property>
|
||||
<property name="selectable">0</property>
|
||||
<property name="child">
|
||||
<object class="GtkBox">
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-end">12</property>
|
||||
<property name="margin-top">6</property>
|
||||
<property name="margin-bottom">6</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="label" translatable="1" comments="Used with option to enable automatic login of user upon booting">Automatic Login</property>
|
||||
<property name="wrap">1</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSwitch" id="autologin_switch">
|
||||
<property name="focusable">1</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="active">1</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkListBoxRow">
|
||||
<property name="activatable">0</property>
|
||||
<property name="selectable">0</property>
|
||||
<property name="child">
|
||||
<object class="GtkBox">
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-end">12</property>
|
||||
<property name="margin-top">6</property>
|
||||
<property name="margin-bottom">6</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="hexpand">1</property>
|
||||
<property name="label" translatable="1" comments="Used with entry field for setting a password for new user">Password</property>
|
||||
<property name="wrap">1</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="password_field">
|
||||
<property name="focusable">1</property>
|
||||
<property name="visibility">0</property>
|
||||
<property name="invisible-char">●</property>
|
||||
<property name="width-chars">10</property>
|
||||
<property name="max-width-chars">24</property>
|
||||
<property name="placeholder-text" translatable="1" comments="Placeholder in password entry field">Enter a Password</property>
|
||||
<property name="input-purpose">password</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="boxed-list"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="continue_button">
|
||||
<property name="label" translatable="1" comments="On button.">_Continue</property>
|
||||
<property name="sensitive">0</property>
|
||||
<property name="focusable">1</property>
|
||||
<property name="receives-default">1</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="use-underline">1</property>
|
||||
<style>
|
||||
<class name="suggested-action"/>
|
||||
<class name="pill"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
</template>
|
||||
</interface>
|
||||
143
data/resources/ui/widgets/device_row.blp
Normal file
143
data/resources/ui/widgets/device_row.blp
Normal file
@@ -0,0 +1,143 @@
|
||||
using Gtk 4.0;
|
||||
|
||||
template DeviceRow : ListBoxRow {
|
||||
focusable: true;
|
||||
selectable: false;
|
||||
child:
|
||||
Grid {
|
||||
margin-start: 12;
|
||||
margin-end: 12;
|
||||
margin-top: 6;
|
||||
margin-bottom: 6;
|
||||
row-spacing: 2;
|
||||
column-spacing: 12;
|
||||
|
||||
Stack arrow_stack {
|
||||
halign: end;
|
||||
hhomogeneous: false;
|
||||
vhomogeneous: false;
|
||||
|
||||
Image {
|
||||
halign: end;
|
||||
icon-name: "go-next-symbolic";
|
||||
}
|
||||
|
||||
StackPage {
|
||||
name: "too_small";
|
||||
child:
|
||||
Label too_small_label {
|
||||
visible: false;
|
||||
halign: start;
|
||||
|
||||
/* Translators: Shown for partitions that are not big enough to be installed on */
|
||||
|
||||
label: _("Not enough space for installation");
|
||||
wrap: true;
|
||||
xalign: 1;
|
||||
|
||||
styles [
|
||||
"dim-label",
|
||||
]
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
|
||||
layout {
|
||||
column: "2";
|
||||
row: "0";
|
||||
row-span: "2";
|
||||
}
|
||||
}
|
||||
|
||||
Stack name_stack {
|
||||
hexpand: true;
|
||||
hhomogeneous: false;
|
||||
|
||||
StackPage {
|
||||
name: "disk";
|
||||
child:
|
||||
Label disk_name {
|
||||
/* Translators: Shown if no name can be determined for a disk. */
|
||||
|
||||
label: _("Unknow Disk");
|
||||
use-markup: true;
|
||||
wrap: true;
|
||||
ellipsize: end;
|
||||
xalign: 0;
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
|
||||
StackPage {
|
||||
name: "partition";
|
||||
child:
|
||||
Box {
|
||||
valign: end;
|
||||
spacing: 4;
|
||||
|
||||
Label static_label {
|
||||
/* Translators: Followed by 'Partition' and a partiton name or number. */
|
||||
|
||||
label: _("Use");
|
||||
use-markup: true;
|
||||
xalign: 0;
|
||||
}
|
||||
|
||||
Label partition_name {
|
||||
hexpand: true;
|
||||
|
||||
/* Translators: Label to pick one out of a list of partitions. Followed by a partition name or a number if the partition has no name. */
|
||||
|
||||
label: _("Partition");
|
||||
use-markup: true;
|
||||
ellipsize: end;
|
||||
width-chars: 8;
|
||||
xalign: 0;
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
|
||||
layout {
|
||||
column: "1";
|
||||
row: "0";
|
||||
}
|
||||
}
|
||||
|
||||
Label device_path {
|
||||
valign: start;
|
||||
ellipsize: start;
|
||||
xalign: 0;
|
||||
|
||||
styles [
|
||||
"dim-label",
|
||||
]
|
||||
|
||||
layout {
|
||||
column: "1";
|
||||
row: "1";
|
||||
}
|
||||
}
|
||||
|
||||
Label size {
|
||||
width-chars: 5;
|
||||
max-width-chars: 7;
|
||||
xalign: 1;
|
||||
|
||||
styles [
|
||||
"dim-label",
|
||||
]
|
||||
|
||||
layout {
|
||||
column: "0";
|
||||
row: "0";
|
||||
row-span: "2";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
@@ -1,134 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<requires lib="gtk" version="4.0"/>
|
||||
<template class="DeviceRow" parent="GtkListBoxRow">
|
||||
<property name="focusable">1</property>
|
||||
<property name="selectable">0</property>
|
||||
<property name="child">
|
||||
<object class="GtkGrid">
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-end">12</property>
|
||||
<property name="margin-top">6</property>
|
||||
<property name="margin-bottom">6</property>
|
||||
<property name="row-spacing">2</property>
|
||||
<property name="column-spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkStack" id="arrow_stack">
|
||||
<property name="halign">end</property>
|
||||
<property name="hhomogeneous">0</property>
|
||||
<property name="vhomogeneous">0</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="halign">end</property>
|
||||
<property name="icon-name">go-next-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">too_small</property>
|
||||
<property name="child">
|
||||
<object class="GtkLabel" id="too_small_label">
|
||||
<property name="visible">0</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="label" translatable="1" comments="Shown for partitions that are not big enough to be installed on">Not enough space for installation</property>
|
||||
<property name="wrap">1</property>
|
||||
<property name="xalign">1</property>
|
||||
<style>
|
||||
<class name="dim-label"/>
|
||||
</style>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<layout>
|
||||
<property name="column">2</property>
|
||||
<property name="row">0</property>
|
||||
<property name="row-span">2</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkStack" id="name_stack">
|
||||
<property name="hexpand">1</property>
|
||||
<property name="hhomogeneous">0</property>
|
||||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">disk</property>
|
||||
<property name="child">
|
||||
<object class="GtkLabel" id="disk_name">
|
||||
<property name="label" translatable="1" comments="Shown if no name can be determined for a disk.">Unknow Disk</property>
|
||||
<property name="use-markup">1</property>
|
||||
<property name="wrap">1</property>
|
||||
<property name="ellipsize">end</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">partition</property>
|
||||
<property name="child">
|
||||
<object class="GtkBox">
|
||||
<property name="valign">end</property>
|
||||
<property name="spacing">4</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="static_label">
|
||||
<property name="label" translatable="1" comments="Followed by 'Partition' and a partiton name or number.">Use</property>
|
||||
<property name="use-markup">1</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="partition_name">
|
||||
<property name="hexpand">1</property>
|
||||
<property name="label" translatable="1" comments="Label to pick one out of a list of partitions. Followed by a partition name or a number if the partition has no name.">Partition</property>
|
||||
<property name="use-markup">1</property>
|
||||
<property name="ellipsize">end</property>
|
||||
<property name="width-chars">8</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<layout>
|
||||
<property name="column">1</property>
|
||||
<property name="row">0</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="device_path">
|
||||
<property name="valign">start</property>
|
||||
<property name="ellipsize">start</property>
|
||||
<property name="xalign">0</property>
|
||||
<style>
|
||||
<class name="dim-label"/>
|
||||
</style>
|
||||
<layout>
|
||||
<property name="column">1</property>
|
||||
<property name="row">1</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="size">
|
||||
<property name="width-chars">5</property>
|
||||
<property name="max-width-chars">7</property>
|
||||
<property name="xalign">1</property>
|
||||
<style>
|
||||
<class name="dim-label"/>
|
||||
</style>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="row">0</property>
|
||||
<property name="row-span">2</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</property>
|
||||
</template>
|
||||
</interface>
|
||||
68
data/resources/ui/widgets/horizontally_scrollable_list.blp
Normal file
68
data/resources/ui/widgets/horizontally_scrollable_list.blp
Normal file
@@ -0,0 +1,68 @@
|
||||
using Gtk 4.0;
|
||||
|
||||
template ScrollableListBox : Box {
|
||||
orientation: vertical;
|
||||
|
||||
ScrolledWindow {
|
||||
hscrollbar-policy: external;
|
||||
vscrollbar-policy: external;
|
||||
propagate-natural-width: true;
|
||||
propagate-natural-height: true;
|
||||
}
|
||||
|
||||
Box {
|
||||
orientation: vertical;
|
||||
|
||||
ScrolledWindow {
|
||||
focusable: true;
|
||||
hscrollbar-policy: external;
|
||||
vscrollbar-policy: external;
|
||||
propagate-natural-width: true;
|
||||
propagate-natural-height: true;
|
||||
child:
|
||||
Viewport {
|
||||
vscroll-policy: natural;
|
||||
child:
|
||||
Box {
|
||||
margin-top: 12;
|
||||
margin-bottom: 70;
|
||||
orientation: vertical;
|
||||
spacing: 12;
|
||||
|
||||
ListBox language_list {
|
||||
styles [
|
||||
"boxed-list",
|
||||
]
|
||||
}
|
||||
|
||||
Revealer show_all_revealer {
|
||||
transition-type: slide_up;
|
||||
child:
|
||||
Button show_all_button {
|
||||
width-request: 32;
|
||||
focusable: true;
|
||||
receives-default: true;
|
||||
halign: center;
|
||||
valign: center;
|
||||
margin-bottom: 18;
|
||||
|
||||
Image {
|
||||
icon-name: "view-more-symbolic";
|
||||
}
|
||||
|
||||
styles [
|
||||
"circular",
|
||||
]
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,72 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<requires lib="gtk" version="4.0"/>
|
||||
<template class="ScrollableListBox" parent="GtkBox">
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow">
|
||||
<property name="hscrollbar-policy">external</property>
|
||||
<property name="vscrollbar-policy">external</property>
|
||||
<property name="propagate-natural-width">1</property>
|
||||
<property name="propagate-natural-height">1</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow">
|
||||
<property name="focusable">1</property>
|
||||
<property name="hscrollbar-policy">external</property>
|
||||
<property name="vscrollbar-policy">external</property>
|
||||
<property name="propagate-natural-width">1</property>
|
||||
<property name="propagate-natural-height">1</property>
|
||||
<property name="child">
|
||||
<object class="GtkViewport">
|
||||
<property name="vscroll-policy">natural</property>
|
||||
<property name="child">
|
||||
<object class="GtkBox">
|
||||
<property name="margin-top">12</property>
|
||||
<property name="margin-bottom">70</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkListBox" id="language_list">
|
||||
<style>
|
||||
<class name="boxed-list"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRevealer" id="show_all_revealer">
|
||||
<property name="transition-type">slide-up</property>
|
||||
<property name="child">
|
||||
<object class="GtkButton" id="show_all_button">
|
||||
<property name="width-request">32</property>
|
||||
<property name="focusable">1</property>
|
||||
<property name="receives-default">1</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="margin-bottom">18</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="icon-name">view-more-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="circular"/>
|
||||
</style>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</template>
|
||||
</interface>
|
||||
28
data/resources/ui/widgets/language_row.blp
Normal file
28
data/resources/ui/widgets/language_row.blp
Normal file
@@ -0,0 +1,28 @@
|
||||
using Gtk 4.0;
|
||||
|
||||
template LanguageRow : ListBoxRow {
|
||||
focusable: true;
|
||||
selectable: false;
|
||||
child:
|
||||
Box {
|
||||
margin-start: 12;
|
||||
margin-end: 12;
|
||||
margin-top: 6;
|
||||
margin-bottom: 6;
|
||||
spacing: 18;
|
||||
|
||||
[center]
|
||||
Label label {
|
||||
hexpand: true;
|
||||
wrap: true;
|
||||
ellipsize: end;
|
||||
lines: 2;
|
||||
}
|
||||
|
||||
Image {
|
||||
icon-name: "go-next-symbolic";
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<requires lib="gtk" version="4.0"/>
|
||||
<template class="LanguageRow" parent="GtkListBoxRow">
|
||||
<property name="focusable">1</property>
|
||||
<property name="selectable">0</property>
|
||||
<property name="child">
|
||||
<object class="GtkBox">
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-end">12</property>
|
||||
<property name="margin-top">6</property>
|
||||
<property name="margin-bottom">6</property>
|
||||
<property name="spacing">18</property>
|
||||
<child type="center">
|
||||
<object class="GtkLabel" id="label">
|
||||
<property name="hexpand">1</property>
|
||||
<property name="wrap">1</property>
|
||||
<property name="ellipsize">end</property>
|
||||
<property name="lines">2</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="icon-name">go-next-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</property>
|
||||
</template>
|
||||
</interface>
|
||||
75
data/resources/ui/widgets/no_partitions_row.blp
Normal file
75
data/resources/ui/widgets/no_partitions_row.blp
Normal file
@@ -0,0 +1,75 @@
|
||||
using Gtk 4.0;
|
||||
|
||||
template NoPartitionsRow : ListBoxRow {
|
||||
activatable: false;
|
||||
focusable: true;
|
||||
selectable: false;
|
||||
child:
|
||||
Box {
|
||||
margin-start: 12;
|
||||
margin-end: 12;
|
||||
margin-top: 6;
|
||||
margin-bottom: 6;
|
||||
spacing: 12;
|
||||
|
||||
Image {
|
||||
icon-name: "dialog-information-symbolic";
|
||||
}
|
||||
|
||||
Box {
|
||||
hexpand: true;
|
||||
orientation: vertical;
|
||||
|
||||
Label {
|
||||
/* Translators: Shown if a disk is currently not compatible with the way a system was booted. */
|
||||
|
||||
label: _("Selecting a partition is not possible.");
|
||||
wrap: true;
|
||||
xalign: 0;
|
||||
}
|
||||
|
||||
Label {
|
||||
/* Translators: Followed by a list of requirements */
|
||||
|
||||
label: _("The disk requires:");
|
||||
wrap: true;
|
||||
xalign: 0;
|
||||
}
|
||||
|
||||
Stack {
|
||||
hhomogeneous: false;
|
||||
vhomogeneous: false;
|
||||
|
||||
StackPage {
|
||||
name: "efi";
|
||||
child:
|
||||
Label {
|
||||
/* Translators: Technical terms, the abbreviations should not be translated. */
|
||||
|
||||
label: _(" • GPT partitioning\n • EFI partition");
|
||||
wrap: true;
|
||||
xalign: 0;
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
|
||||
StackPage {
|
||||
name: "bios";
|
||||
child:
|
||||
Label {
|
||||
/* Translators: Technical terms, the abbreviations should not be translated */
|
||||
|
||||
label: _(" • BIOS boot partition");
|
||||
wrap: true;
|
||||
xalign: 0;
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
@@ -1,74 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<requires lib="gtk" version="4.0"/>
|
||||
<template class="NoPartitionsRow" parent="GtkListBoxRow">
|
||||
<property name="activatable">0</property>
|
||||
<property name="focusable">1</property>
|
||||
<property name="selectable">0</property>
|
||||
<property name="child">
|
||||
<object class="GtkBox">
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-end">12</property>
|
||||
<property name="margin-top">6</property>
|
||||
<property name="margin-bottom">6</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="icon-name">dialog-information-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="hexpand">1</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="label" translatable="1" comments="Shown if a disk is currently not compatible with the way a system was booted.">Selecting a partition is not possible.</property>
|
||||
<property name="wrap">1</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="label" translatable="1" comments="Followed by a list of requirements">The disk requires:</property>
|
||||
<property name="wrap">1</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkStack">
|
||||
<property name="hhomogeneous">0</property>
|
||||
<property name="vhomogeneous">0</property>
|
||||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">efi</property>
|
||||
<property name="child">
|
||||
<object class="GtkLabel">
|
||||
<property name="label" translatable="1" comments="Technical terms, the abbreviations should not be translated."> • GPT partitioning
|
||||
• EFI partition</property>
|
||||
<property name="wrap">1</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">bios</property>
|
||||
<property name="child">
|
||||
<object class="GtkLabel">
|
||||
<property name="label" translatable="1" comments="Technical terms, the abbreviations should not be translated"> • BIOS boot partition</property>
|
||||
<property name="wrap">1</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</property>
|
||||
</template>
|
||||
</interface>
|
||||
25
data/resources/ui/widgets/progress_row.blp
Normal file
25
data/resources/ui/widgets/progress_row.blp
Normal file
@@ -0,0 +1,25 @@
|
||||
using Gtk 4.0;
|
||||
|
||||
template ProgressRow : ListBoxRow {
|
||||
focusable: true;
|
||||
child:
|
||||
Box {
|
||||
margin-start: 12;
|
||||
margin-end: 12;
|
||||
margin-top: 6;
|
||||
margin-bottom: 6;
|
||||
spacing: 6;
|
||||
|
||||
Label label {
|
||||
ellipsize: end;
|
||||
hexpand: true;
|
||||
xalign: 0;
|
||||
}
|
||||
|
||||
Image {
|
||||
icon-name: "go-next-symbolic";
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<requires lib="gtk" version="4.0"/>
|
||||
<template class="ProgressRow" parent="GtkListBoxRow">
|
||||
<property name="focusable">1</property>
|
||||
<property name="child">
|
||||
<object class="GtkBox">
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-end">12</property>
|
||||
<property name="margin-top">6</property>
|
||||
<property name="margin-bottom">6</property>
|
||||
<property name="spacing">6</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label">
|
||||
<property name="ellipsize">end</property>
|
||||
<property name="hexpand">1</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="icon-name">go-next-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</property>
|
||||
</template>
|
||||
</interface>
|
||||
32
data/resources/ui/widgets/selection_row.blp
Normal file
32
data/resources/ui/widgets/selection_row.blp
Normal file
@@ -0,0 +1,32 @@
|
||||
using Gtk 4.0;
|
||||
|
||||
template SelectionRow : ListBoxRow {
|
||||
focusable: true;
|
||||
child:
|
||||
Box {
|
||||
margin-start: 12;
|
||||
margin-end: 12;
|
||||
margin-top: 6;
|
||||
margin-bottom: 6;
|
||||
spacing: 6;
|
||||
|
||||
Label label {
|
||||
wrap: true;
|
||||
ellipsize: end;
|
||||
lines: 2;
|
||||
xalign: 0;
|
||||
}
|
||||
|
||||
Revealer check_mark_revealer {
|
||||
transition-type: crossfade;
|
||||
child:
|
||||
Image {
|
||||
icon-name: "object-select-symbolic";
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<requires lib="gtk" version="4.0"/>
|
||||
<template class="SelectionRow" parent="GtkListBoxRow">
|
||||
<property name="focusable">1</property>
|
||||
<property name="child">
|
||||
<object class="GtkBox">
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-end">12</property>
|
||||
<property name="margin-top">6</property>
|
||||
<property name="margin-bottom">6</property>
|
||||
<property name="spacing">6</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label">
|
||||
<property name="wrap">1</property>
|
||||
<property name="ellipsize">end</property>
|
||||
<property name="lines">2</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRevealer" id="check_mark_revealer">
|
||||
<property name="transition-type">crossfade</property>
|
||||
<property name="child">
|
||||
<object class="GtkImage">
|
||||
<property name="icon-name">object-select-symbolic</property>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</property>
|
||||
</template>
|
||||
</interface>
|
||||
49
data/resources/ui/widgets/software_row.blp
Normal file
49
data/resources/ui/widgets/software_row.blp
Normal file
@@ -0,0 +1,49 @@
|
||||
using Gtk 4.0;
|
||||
|
||||
template SoftwareRow : ListBoxRow {
|
||||
focusable: true;
|
||||
child:
|
||||
Box {
|
||||
margin-start: 6;
|
||||
margin-end: 6;
|
||||
margin-top: 6;
|
||||
margin-bottom: 6;
|
||||
spacing: 6;
|
||||
|
||||
Image icon {
|
||||
width-request: 32;
|
||||
height-request: 32;
|
||||
valign: center;
|
||||
}
|
||||
|
||||
Box {
|
||||
halign: center;
|
||||
valign: center;
|
||||
orientation: vertical;
|
||||
spacing: 6;
|
||||
|
||||
Label name_label {
|
||||
valign: end;
|
||||
ellipsize: end;
|
||||
xalign: 0;
|
||||
|
||||
styles [
|
||||
"title-2",
|
||||
]
|
||||
}
|
||||
|
||||
Label description_label {
|
||||
valign: center;
|
||||
wrap: true;
|
||||
xalign: 0;
|
||||
}
|
||||
}
|
||||
|
||||
Switch switch {
|
||||
focusable: true;
|
||||
valign: center;
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
@@ -1,55 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<requires lib="gtk" version="4.0"/>
|
||||
<template class="SoftwareRow" parent="GtkListBoxRow">
|
||||
<property name="focusable">1</property>
|
||||
<property name="child">
|
||||
<object class="GtkBox">
|
||||
<property name="margin-start">6</property>
|
||||
<property name="margin-end">6</property>
|
||||
<property name="margin-top">6</property>
|
||||
<property name="margin-bottom">6</property>
|
||||
<property name="spacing">6</property>
|
||||
<child>
|
||||
<object class="GtkImage" id="icon">
|
||||
<property name="width-request">32</property>
|
||||
<property name="height-request">32</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="icon_size">5</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">6</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="name_label">
|
||||
<property name="valign">end</property>
|
||||
<property name="ellipsize">end</property>
|
||||
<property name="xalign">0</property>
|
||||
<style>
|
||||
<class name="title-2"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="description_label">
|
||||
<property name="valign">center</property>
|
||||
<property name="wrap">1</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSwitch" id="switch">
|
||||
<property name="focusable">1</property>
|
||||
<property name="valign">center</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</property>
|
||||
</template>
|
||||
</interface>
|
||||
8
subprojects/blueprint-compiler.wrap
Normal file
8
subprojects/blueprint-compiler.wrap
Normal file
@@ -0,0 +1,8 @@
|
||||
[wrap-git]
|
||||
directory = blueprint-compiler
|
||||
url = https://gitlab.gnome.org/jwestman/blueprint-compiler.git
|
||||
revision = main
|
||||
depth = 1
|
||||
|
||||
[provide]
|
||||
program_names = blueprint-compiler
|
||||
Reference in New Issue
Block a user