Make hardware page interactive

This commit is contained in:
Stephen Horvath
2025-03-19 16:07:16 +10:00
parent cf179ca9bd
commit 7d46a7d673
3 changed files with 134 additions and 30 deletions

View File

@@ -4,7 +4,7 @@
<!-- interface-description The Hardware page for YAFI -->
<!-- interface-copyright Steve-Tech -->
<requires lib="gtk" version="4.12"/>
<requires lib="libadwaita" version="1.4"/>
<requires lib="libadwaita" version="1.3"/>
<object class="GtkBox" id="hardware-root">
<property name="orientation">vertical</property>
<child>
@@ -18,20 +18,15 @@
</object>
</child>
<child>
<object class="AdwActionRow">
<property name="selectable">False</property>
<property name="subtitle">Currently Closed</property>
<object class="AdwActionRow" id="hw-chassis">
<property name="title">Chassis Open Count</property>
<child>
<object class="GtkLabel">
<property name="label">0</property>
</object>
<object class="GtkLabel" id="hw-chassis-label"/>
</child>
</object>
</child>
<child>
<object class="AdwActionRow">
<property name="selectable">False</property>
<object class="AdwActionRow" id="hw-priv-cam">
<property name="subtitle">Use Privacy Switch</property>
<property name="title">Camera Enabled</property>
<child>
@@ -40,7 +35,7 @@
<property name="homogeneous">True</property>
<property name="valign">center</property>
<child>
<object class="GtkSwitch">
<object class="GtkSwitch" id="hw-priv-cam-sw">
<property name="active">True</property>
<property name="sensitive">False</property>
</object>
@@ -50,8 +45,7 @@
</object>
</child>
<child>
<object class="AdwActionRow">
<property name="selectable">False</property>
<object class="AdwActionRow" id="hw-priv-mic">
<property name="subtitle">Use Privacy Switch</property>
<property name="title">Microphone Enabled</property>
<child>
@@ -60,7 +54,7 @@
<property name="homogeneous">True</property>
<property name="valign">center</property>
<child>
<object class="GtkSwitch">
<object class="GtkSwitch" id="hw-priv-mic-sw">
<property name="active">True</property>
<property name="sensitive">False</property>
</object>
@@ -70,9 +64,27 @@
</object>
</child>
<child>
<object class="AdwSwitchRow">
<property name="active">True</property>
<property name="title">Fingerprint Enabled</property>
<object class="AdwActionRow" id="hw-fp-pwr">
<property name="title">Fingerprint</property>
<property name="visible">False</property>
<child>
<object class="GtkBox">
<property name="halign">end</property>
<property name="homogeneous">True</property>
<property name="spacing">5</property>
<property name="valign">center</property>
<child>
<object class="GtkButton" id="hw-fp-pwr-en">
<property name="label">Enable</property>
</object>
</child>
<child>
<object class="GtkButton" id="hw-fp-pwr-dis">
<property name="label">Disable</property>
</object>
</child>
</object>
</child>
</object>
</child>
<style>

View File

@@ -82,15 +82,18 @@
(5,1,"GtkBox","hardware-root",None,None,None,None,0,None,None),
(5,2,"GtkListBox",None,1,None,None,None,0,None,None),
(5,3,"AdwActionRow",None,2,None,None,None,0,None,None),
(5,4,"AdwActionRow",None,2,None,None,None,1,None,None),
(5,5,"GtkLabel",None,4,None,None,None,0,None,None),
(5,6,"AdwActionRow",None,2,None,None,None,2,None,None),
(5,9,"AdwActionRow",None,2,None,None,None,3,None,None),
(5,11,"GtkSwitch",None,13,None,None,None,0,None,None),
(5,12,"AdwSwitchRow",None,2,None,None,None,4,None,None),
(5,4,"AdwActionRow","hw-chassis",2,None,None,None,1,None,None),
(5,5,"GtkLabel","hw-chassis-label",4,None,None,None,0,None,None),
(5,6,"AdwActionRow","hw-priv-cam",2,None,None,None,2,None,None),
(5,9,"AdwActionRow","hw-priv-mic",2,None,None,None,3,None,None),
(5,11,"GtkSwitch","hw-priv-mic-sw",13,None,None,None,0,None,None),
(5,13,"GtkBox",None,9,None,None,None,0,None,None),
(5,14,"GtkBox",None,6,None,None,None,0,None,None),
(5,15,"GtkSwitch",None,14,None,None,None,0,None,None),
(5,15,"GtkSwitch","hw-priv-cam-sw",14,None,None,None,0,None,None),
(5,16,"AdwActionRow","hw-fp-pwr",2,None,None,None,4,None,None),
(5,17,"GtkBox",None,16,None,None,None,0,None,None),
(5,18,"GtkButton","hw-fp-pwr-en",17,None,None,None,0,None,None),
(5,19,"GtkButton","hw-fp-pwr-dis",17,None,None,None,1,None,None),
(6,1,"AdwAboutWindow","about-root",None,None,None,None,0,None,None)
</object>
<object_property>
@@ -240,20 +243,13 @@
(5,2,"GtkWidget","margin-start","10",0,None,None,None,None,None,None,None,None),
(5,3,"AdwPreferencesRow","title","Hardware Status",0,None,None,None,None,None,None,None,None),
(5,3,"GtkListBoxRow","selectable","False",0,None,None,None,None,None,None,None,None),
(5,4,"AdwActionRow","subtitle","Currently Closed",None,None,None,None,None,None,None,None,None),
(5,4,"AdwPreferencesRow","title","Chassis Open Count",0,None,None,None,None,None,None,None,None),
(5,4,"GtkListBoxRow","selectable","False",0,None,None,None,None,None,None,None,None),
(5,5,"GtkLabel","label","0",None,None,None,None,None,None,None,None,None),
(5,6,"AdwActionRow","subtitle","Use Privacy Switch",None,None,None,None,None,None,None,None,None),
(5,6,"AdwPreferencesRow","title","Camera Enabled",0,None,None,None,None,None,None,None,None),
(5,6,"GtkListBoxRow","selectable","False",0,None,None,None,None,None,None,None,None),
(5,9,"AdwActionRow","subtitle","Use Privacy Switch",None,None,None,None,None,None,None,None,None),
(5,9,"AdwPreferencesRow","title","Microphone Enabled",0,None,None,None,None,None,None,None,None),
(5,9,"GtkListBoxRow","selectable","False",0,None,None,None,None,None,None,None,None),
(5,11,"GtkSwitch","active","True",0,None,None,None,None,None,None,None,None),
(5,11,"GtkWidget","sensitive","False",0,None,None,None,None,None,None,None,None),
(5,12,"AdwPreferencesRow","title","Fingerprint Enabled",None,None,None,None,None,None,None,None,None),
(5,12,"AdwSwitchRow","active","True",None,None,None,None,None,None,None,None,None),
(5,13,"GtkBox","homogeneous","True",None,None,None,None,None,None,None,None,None),
(5,13,"GtkWidget","halign","end",None,None,None,None,None,None,None,None,None),
(5,13,"GtkWidget","valign","center",None,None,None,None,None,None,None,None,None),
@@ -262,6 +258,14 @@
(5,14,"GtkWidget","valign","center",0,None,None,None,None,None,None,None,None),
(5,15,"GtkSwitch","active","True",0,None,None,None,None,None,None,None,None),
(5,15,"GtkWidget","sensitive","False",0,None,None,None,None,None,None,None,None),
(5,16,"AdwPreferencesRow","title","Fingerprint",0,None,None,None,None,None,None,None,None),
(5,16,"GtkWidget","visible","False",None,None,None,None,None,None,None,None,None),
(5,17,"GtkBox","homogeneous","True",0,None,None,None,None,None,None,None,None),
(5,17,"GtkBox","spacing","5",None,None,None,None,None,None,None,None,None),
(5,17,"GtkWidget","halign","end",0,None,None,None,None,None,None,None,None),
(5,17,"GtkWidget","valign","center",0,None,None,None,None,None,None,None,None),
(5,18,"GtkButton","label","Enable",None,None,None,None,None,None,None,None,None),
(5,19,"GtkButton","label","Disable",None,None,None,None,None,None,None,None,None),
(6,1,"AdwAboutWindow","application-icon","application-default-icon",None,None,None,None,None,None,None,None,None),
(6,1,"AdwAboutWindow","application-name","Yet Another Framework Interface",None,None,None,None,None,None,None,None,None),
(6,1,"AdwAboutWindow","comments","YAFI is another GUI for the Framework Laptop Embedded Controller.\nIt is written in Python with a GTK3 theme, and uses the `CrOS_EC_Python` library to communicate with the EC.",None,None,None,None,None,None,None,None,None),