Dynamically add bluetooth devices

Add scrolling for wifi
Improve audio ui a little
This commit is contained in:
takotori 2023-11-02 10:43:37 +01:00
parent 13084ed86d
commit e34e8ce80f
11 changed files with 263 additions and 141 deletions

View file

@ -10,8 +10,6 @@ use crate::components::audio::audioSource::AudioSourceEntry;
pub struct AudioBox {
#[template_child]
pub resetOutputDevice: TemplateChild<DropDown>,
#[template_child]
pub resetAllOutputDevices: TemplateChild<Button>,
}

View file

@ -1,6 +1,10 @@
use adw::glib;
use adw::glib::Object;
use adw::subclass::prelude::ObjectSubclassIsExt;
use crate::components::bluetooth::bluetoothBoxImpl;
use crate::components::bluetooth::bluetoothEntry::BluetoothEntry;
use crate::components::bluetooth::bluetoothEntryImpl::DeviceTypes;
glib::wrapper! {
pub struct BluetoothBox(ObjectSubclass<bluetoothBoxImpl::BluetoothBox>)
@ -13,4 +17,28 @@ impl BluetoothBox {
pub fn new() -> Self {
Object::builder().build()
}
pub fn scanForDevices(&self) {
let selfImp = self.imp();
let mut wifiEntries = selfImp.availableDevices.borrow_mut();
wifiEntries.push(BluetoothEntry::new(DeviceTypes::Mouse, "ina mouse"));
wifiEntries.push(BluetoothEntry::new(DeviceTypes::Keyboard, "inaboard"));
wifiEntries.push(BluetoothEntry::new(DeviceTypes::Controller, "ina controller"));
wifiEntries.push(BluetoothEntry::new(DeviceTypes::Controller, "ina best waifu"));
for wifiEntry in wifiEntries.iter() {
selfImp.resetBluetoothAvailableDevices.append(wifiEntry);
}
}
pub fn addConnectedDevices(&self) {
let selfImp = self.imp();
let mut wifiEntries = selfImp.connectedDevices.borrow_mut();
wifiEntries.push(BluetoothEntry::new(DeviceTypes::Mouse, "why are we still here?"));
wifiEntries.push(BluetoothEntry::new(DeviceTypes::Keyboard, "just to suffer?"));
for wifiEntry in wifiEntries.iter() {
selfImp.resetBluetoothConnectedDevices.append(wifiEntry);
}
}
}

View file

@ -1,3 +1,4 @@
use std::cell::RefCell;
use gtk::{CompositeTemplate, glib, ListBox, Switch};
use gtk::prelude::*;
use gtk::subclass::prelude::*;
@ -15,6 +16,8 @@ pub struct BluetoothBox {
pub resetBluetoothAvailableDevices: TemplateChild<ListBox>,
#[template_child]
pub resetBluetoothConnectedDevices: TemplateChild<ListBox>,
pub availableDevices: RefCell<Vec<BluetoothEntry>>,
pub connectedDevices: RefCell<Vec<BluetoothEntry>>,
}
#[glib::object_subclass]
@ -36,6 +39,9 @@ impl ObjectSubclass for BluetoothBox {
impl ObjectImpl for BluetoothBox {
fn constructed(&self) {
self.parent_constructed();
let obj = self.obj();
obj.scanForDevices();
obj.addConnectedDevices();
}
}

View file

@ -1,6 +1,8 @@
use adw::glib;
use adw::glib::Object;
use adw::subclass::prelude::ObjectSubclassIsExt;
use crate::components::bluetooth::bluetoothEntryImpl;
use crate::components::bluetooth::bluetoothEntryImpl::DeviceTypes;
glib::wrapper! {
pub struct BluetoothEntry(ObjectSubclass<bluetoothEntryImpl::BluetoothEntry>)
@ -9,7 +11,21 @@ glib::wrapper! {
}
impl BluetoothEntry {
pub fn new() -> Self {
Object::builder().build()
pub fn new(deviceType: DeviceTypes, name: &str) -> Self {
let entry: BluetoothEntry = Object::builder().build();
let entryImp = entry.imp();
entryImp.resetBluetoothLabel.get().set_text(name);
entryImp.resetBluetoothDeviceType.get().set_from_icon_name(match deviceType {
DeviceTypes::Mouse => Some("input-mouse-symbolic"),
DeviceTypes::Keyboard => Some("input-keyboard-symbolic"),
DeviceTypes::Headset => Some("audio-headset-symbolic"),
DeviceTypes::Controller => Some("input-gaming-symbolic"),
DeviceTypes::None => Some("text-x-generic-symbolic") // no generic bluetooth device icon found
});
{
let mut wifiName = entryImp.deviceName.borrow_mut();
*wifiName = String::from(name);
}
entry
}
}

View file

@ -1,7 +1,17 @@
use std::cell::RefCell;
use gtk::{Button, CompositeTemplate, glib, Image, Label};
use gtk::subclass::prelude::*;
use crate::components::bluetooth::bluetoothEntry;
#[derive(Default, Copy, Clone)]
pub enum DeviceTypes {
Mouse,
Keyboard,
Headset,
Controller,
#[default]
None,
}
#[allow(non_snake_case)]
#[derive(Default, CompositeTemplate)]
#[template(resource = "/org/Xetibo/ReSet/resetBluetoothEntry.ui")]
@ -12,6 +22,7 @@ pub struct BluetoothEntry {
pub resetBluetoothLabel: TemplateChild<Label>,
#[template_child]
pub resetBluetoothButton: TemplateChild<Button>,
pub deviceName: RefCell<String>,
}
#[glib::object_subclass]

View file

@ -1,4 +1,4 @@
use gtk::{Align, FlowBox, FlowBoxChild};
use gtk::{Align, FlowBox, FlowBoxChild, Label};
use gtk::prelude::{FlowBoxChildExt, WidgetExt};
use crate::components::audio::audioBox::AudioBox;
use crate::components::bluetooth::bluetoothBox::BluetoothBox;
@ -59,9 +59,9 @@ pub const HANDLE_VOLUME_CLICK: fn(FlowBox) = |resetMain: FlowBox| {
};
pub const HANDLE_MICROPHONE_CLICK: fn(FlowBox) = |resetMain: FlowBox| {
let wifibox = WifiBox::new();
let label = Label::new(Some("not implemented yet"));
resetMain.remove_all();
resetMain.insert(&wifibox, -1);
resetMain.insert(&label, -1);
};
pub const HANDLE_HOME: fn(FlowBox) = |resetMain: FlowBox| {

View file

@ -1,7 +1,7 @@
<?xml version='1.0' encoding='UTF-8'?>
<!-- Created with Cambalache 0.17.0 -->
<interface>
<requires lib="gtk" version="4.12"/>
<requires lib="gtk" version="4.6"/>
<template class="resetAudio" parent="GtkBox">
<property name="halign">start</property>
<property name="margin-start">5</property>
@ -10,7 +10,7 @@
<property name="width-request">400</property>
<child>
<object class="GtkBox">
<property name="margin-bottom">10</property>
<property name="height-request">40</property>
<child>
<object class="GtkLabel">
<property name="label">Output Device</property>
@ -20,7 +20,27 @@
<object class="GtkDropDown" id="resetOutputDevice">
<property name="halign">end</property>
<property name="hexpand">True</property>
<property name="valign">end</property>
<property name="valign">center</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkBox">
<property name="height-request">40</property>
<property name="margin-bottom">5</property>
<child>
<object class="GtkLabel">
<property name="label">Show Applications</property>
</object>
</child>
<child>
<object class="GtkSwitch">
<property name="active">True</property>
<property name="halign">end</property>
<property name="hexpand">True</property>
<property name="margin-end">5</property>
<property name="valign">center</property>
</object>
</child>
</object>
@ -29,15 +49,8 @@
<object class="GtkSeparator"/>
</child>
<child>
<object class="resetAudioSourceEntry" id="asdf"/>
</child>
<child>
<object class="GtkButton" id="resetAllOutputDevices">
<property name="halign">start</property>
<property name="label">All Output Devices</property>
<property name="margin-start">5</property>
<object class="resetAudioSourceEntry" id="asdf">
<property name="margin-top">5</property>
<property name="valign">start</property>
</object>
</child>
</template>

View file

@ -2,7 +2,6 @@
<!-- Created with Cambalache 0.17.0 -->
<interface>
<requires lib="gtk" version="4.12"/>
<requires lib="libadwaita" version="1.4"/>
<template class="resetBluetooth" parent="GtkBox">
<property name="halign">start</property>
<property name="margin-start">5</property>
@ -27,31 +26,26 @@
</object>
</child>
<child>
<object class="AdwClampScrollable">
<property name="maximum-size">0</property>
<property name="orientation">vertical</property>
<object class="GtkScrolledWindow">
<property name="propagate-natural-height">True</property>
<child>
<object class="GtkBox">
<property name="orientation">vertical</property>
<property name="valign">start</property>
<object class="GtkViewport">
<child>
<object class="GtkLabel">
<property name="halign">start</property>
<property name="justify">right</property>
<property name="label">Available device</property>
</object>
</child>
<child>
<object class="GtkListBox" id="resetBluetoothAvailableDevices">
<object class="GtkBox">
<property name="orientation">vertical</property>
<property name="valign">start</property>
<child>
<object class="resetBluetoothEntry"/>
<object class="GtkLabel">
<property name="halign">start</property>
<property name="justify">right</property>
<property name="label">Available device</property>
</object>
</child>
<child>
<object class="resetBluetoothEntry"/>
</child>
<child>
<object class="resetBluetoothEntry"/>
<object class="GtkListBox" id="resetBluetoothAvailableDevices">
<property name="show-separators">True</property>
<property name="valign">start</property>
</object>
</child>
</object>
</child>
@ -60,37 +54,27 @@
</object>
</child>
<child>
<object class="GtkSeparator">
<property name="margin-bottom">5</property>
<property name="margin-top">5</property>
</object>
</child>
<child>
<object class="AdwClampScrollable">
<property name="maximum-size">0</property>
<property name="orientation">vertical</property>
<object class="GtkScrolledWindow">
<property name="margin-top">10</property>
<property name="propagate-natural-height">True</property>
<child>
<object class="GtkBox">
<property name="orientation">vertical</property>
<property name="valign">start</property>
<object class="GtkViewport">
<child>
<object class="GtkLabel">
<property name="halign">start</property>
<property name="justify">right</property>
<property name="label">Connected devices</property>
</object>
</child>
<child>
<object class="GtkListBox" id="resetBluetoothConnectedDevices">
<object class="GtkBox">
<property name="orientation">vertical</property>
<property name="valign">start</property>
<child>
<object class="resetBluetoothEntry"/>
<object class="GtkLabel">
<property name="halign">start</property>
<property name="justify">right</property>
<property name="label">Connected devices</property>
</object>
</child>
<child>
<object class="resetBluetoothEntry"/>
</child>
<child>
<object class="resetBluetoothEntry"/>
<object class="GtkListBox" id="resetBluetoothConnectedDevices">
<property name="show-separators">True</property>
<property name="valign">start</property>
</object>
</child>
</object>
</child>
@ -102,6 +86,7 @@
<object class="GtkButton">
<property name="halign">start</property>
<property name="label">Advanced</property>
<property name="margin-top">5</property>
<property name="valign">start</property>
</object>
</child>

View file

@ -9,7 +9,9 @@
(7,1,None,"resetAudioSourceEntry",None,None,None,None,None,None,None),
(8,1,None,"resetAudio",None,None,None,None,None,None,None),
(10,1,None,"resetBluetooth",None,None,None,None,None,None,None),
(11,1,None,"resetBluetoothEntry",None,None,None,None,None,None,None)
(11,1,None,"resetBluetoothEntry",None,None,None,None,None,None,None),
(12,1,None,"resetMicrophone",None,None,None,None,None,None,None),
(13,1,None,"resetMicSourceEntry",None,None,None,None,None,None,None)
</ui>
<object>
(3,1,"AdwApplicationWindow","resetUI",None,None,None,None,-1," &lt;child&gt;\n &lt;object id=\"resetSidebarBreakpoint\" class=\"AdwBreakpoint\"&gt;\n &lt;/object&gt;\n &lt;/child&gt;"),
@ -37,10 +39,6 @@
(3,38,"GtkButton",None,36,None,None,None,1,None),
(3,39,"GtkButton","resetAboutButton",36,None,None,None,2,None),
(4,7,"GtkBox","resetWifi",None,None,None,None,None,None),
(4,8,"AdwClampScrollable",None,7,None,None,None,1,None),
(4,9,"GtkBox",None,8,None,None,None,None,None),
(4,10,"GtkLabel",None,9,None,None,None,None,None),
(4,11,"GtkListBox","resetWifiList",9,None,None,None,1,None),
(4,42,"GtkButton",None,7,None,None,None,2,None),
(4,54,"GtkListBox","resetWifiDetails",7,None,None,None,None,None),
(4,55,"GtkListBoxRow","resetWifiSwitchRow",54,None,None,None,None,None),
@ -51,6 +49,11 @@
(4,60,"GtkBox",None,56,None,None,None,None,None),
(4,61,"GtkLabel",None,60,None,None,None,None,None),
(4,62,"GtkImage",None,60,None,None,None,1,None),
(4,63,"GtkScrolledWindow",None,7,None,None,None,1,None),
(4,67,"GtkViewport",None,63,None,None,None,None,None),
(4,68,"GtkBox",None,67,None,None,None,None,None),
(4,69,"GtkLabel",None,68,None,None,None,None,None),
(4,70,"GtkListBox","resetWifiList",68,None,None,None,1,None),
(5,1,"GtkListBoxRow","resetWifiEntry",None,None,None,None,None,None),
(5,2,"GtkBox",None,1,None,None,None,None,None),
(5,4,"GtkLabel","resetWifiLabel",2,None,None,None,1,None),
@ -73,37 +76,54 @@
(7,11,"GtkButton","resetSourceMute",8,None,None,None,None,None),
(7,12,"GtkLabel","resetVolumePercentage",8,None,None,None,2,None),
(8,1,"GtkBox","resetAudio",None,None,None,None,None,None),
(8,13,"GtkButton","resetAllOutputDevices",1,None,None,None,3,None),
(8,14,"GtkBox",None,1,None,None,None,None,None),
(8,15,"GtkLabel",None,14,None,None,None,None,None),
(8,16,"GtkDropDown","resetOutputDevice",14,None,None,None,1,None),
(8,18,"GtkSeparator",None,1,None,None,None,1,None),
(8,19,"resetAudioSourceEntry","asdf",1,None,None,None,2,None),
(8,18,"GtkSeparator",None,1,None,None,None,2,None),
(8,19,"resetAudioSourceEntry","asdf",1,None,None,None,3,None),
(8,20,"GtkBox",None,1,None,None,None,1,None),
(8,22,"GtkSwitch",None,20,None,None,None,1,None),
(8,23,"GtkLabel",None,20,None,None,None,None,None),
(10,1,"GtkBox","resetBluetooth",None,None,None,None,None,None),
(10,2,"AdwClampScrollable",None,1,None,None,None,1,None),
(10,3,"GtkBox",None,2,None,None,None,None,None),
(10,4,"GtkLabel",None,3,None,None,None,None,None),
(10,5,"GtkListBox","resetBluetoothAvailableDevices",3,None,None,None,1,None),
(10,14,"AdwClampScrollable",None,1,None,None,None,3,None),
(10,15,"GtkBox",None,14,None,None,None,None,None),
(10,16,"GtkLabel",None,15,None,None,None,None,None),
(10,17,"GtkListBox","resetBluetoothConnectedDevices",15,None,None,None,1,None),
(10,18,"GtkButton",None,1,None,None,None,4,None),
(10,18,"GtkButton",None,1,None,None,None,3,None),
(10,19,"GtkBox",None,1,None,None,None,None,None),
(10,20,"GtkLabel",None,19,None,None,None,None,None),
(10,21,"GtkSwitch","resetBluetoothSwitch",19,None,None,None,1,None),
(10,22,"resetBluetoothEntry",None,5,None,None,None,-1,None),
(10,23,"resetBluetoothEntry",None,5,None,None,None,1,None),
(10,24,"resetBluetoothEntry",None,5,None,None,None,2,None),
(10,25,"resetBluetoothEntry",None,17,None,None,None,None,None),
(10,26,"resetBluetoothEntry",None,17,None,None,None,1,None),
(10,27,"resetBluetoothEntry",None,17,None,None,None,2,None),
(10,28,"GtkSeparator",None,1,None,None,None,2,None),
(10,22,"GtkScrolledWindow",None,1,None,None,None,2,None),
(10,23,"GtkScrolledWindow",None,1,None,None,None,1,None),
(10,24,"GtkViewport",None,23,None,None,None,-1,None),
(10,25,"GtkViewport",None,22,None,None,None,-1,None),
(10,26,"GtkBox",None,24,None,None,None,None,None),
(10,27,"GtkLabel",None,26,None,None,None,None,None),
(10,28,"GtkListBox","resetBluetoothAvailableDevices",26,None,None,None,1,None),
(10,29,"GtkBox",None,25,None,None,None,None,None),
(10,30,"GtkLabel",None,29,None,None,None,None,None),
(10,31,"GtkListBox","resetBluetoothConnectedDevices",29,None,None,None,1,None),
(11,1,"GtkListBoxRow","resetBluetoothEntry",None,None,None,None,None,None),
(11,2,"GtkBox",None,1,None,None,None,None,None),
(11,3,"GtkImage","resetBluetoothDeviceType",2,None,None,None,None,None),
(11,4,"GtkLabel","resetBluetoothLabel",2,None,None,None,1,None),
(11,5,"GtkButton","resetBluetoothButton",2,None,None,None,2,None)
(11,5,"GtkButton","resetBluetoothButton",2,None,None,None,2,None),
(12,1,"GtkBox","resetMicrophone",None,None,None,None,None,None),
(12,2,"GtkBox",None,1,None,None,None,None,None),
(12,3,"GtkLabel",None,2,None,None,None,None,None),
(12,4,"GtkDropDown","resetOutputDevice",2,None,None,None,1,None),
(12,5,"GtkBox",None,1,None,None,None,1,None),
(12,6,"GtkLabel",None,5,None,None,None,None,None),
(12,7,"GtkSwitch",None,5,None,None,None,1,None),
(12,8,"GtkSeparator",None,1,None,None,None,2,None),
(12,9,"GtkViewport",None,1,None,None,None,3,None),
(12,10,"resetMicEntry",None,9,None,None,None,-1,None),
(13,1,"GtkBox","resetMicEntry",None,None,None,None,None,None),
(13,2,"GtkBox",None,1,None,None,None,None,None),
(13,3,"GtkImage","resetMicIcon",2,None,None,None,None,None),
(13,4,"GtkLabel","resetMicName",2,None,None,None,1,None),
(13,5,"GtkBox",None,1,None,None,None,1,None),
(13,6,"GtkButton","resetMicMute",5,None,None,None,None,None),
(13,7,"GtkScale","resetMicSlider",5,None,None,None,1,None),
(13,8,"GtkAdjustment",None,7,None,None,None,None,None),
(13,9,"GtkLabel","resetMicPercentage",5,None,None,None,2,None),
(13,10,"GtkProgressBar","resetMicMeter",1,None,None,None,2,None)
</object>
<object_property>
(3,1,"GtkWindow","default-height","500",None,None,None,None,None,None,None,None,None),
@ -168,15 +188,6 @@
(4,7,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
(4,7,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
(4,7,"GtkWidget","width-request","400",None,None,None,None,None,None,None,None,None),
(4,8,"AdwClampScrollable","maximum-size","0",None,None,None,None,None,None,None,None,None),
(4,8,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
(4,9,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
(4,9,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
(4,10,"GtkLabel","justify","right",None,None,None,None,None,None,None,None,None),
(4,10,"GtkLabel","label","Available networks",None,None,None,None,None,None,None,None,None),
(4,10,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
(4,11,"GtkListBox","show-separators","True",None,None,None,None,None,None,None,None,None),
(4,11,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
(4,42,"GtkButton","label","Advanced",None,None,None,None,None,None,None,None,None),
(4,42,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
(4,42,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
@ -201,6 +212,14 @@
(4,62,"GtkWidget","halign","end",None,None,None,None,None,None,None,None,None),
(4,62,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(4,62,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
(4,63,"GtkScrolledWindow","propagate-natural-height","True",None,None,None,None,None,None,None,None,None),
(4,68,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
(4,68,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
(4,69,"GtkLabel","justify","right",None,None,None,None,None,None,None,None,None),
(4,69,"GtkLabel","label","Available networks",None,None,None,None,None,None,None,None,None),
(4,69,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
(4,70,"GtkListBox","show-separators","True",None,None,None,None,None,None,None,None,None),
(4,70,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
(5,1,"GtkListBoxRow","selectable","False",None,None,None,None,None,None,None,None,None),
(5,4,"GtkLabel","ellipsize","end",None,None,None,None,None,None,None,None,None),
(5,4,"GtkLabel","label","LoremIpsumInternet",None,None,None,None,None,None,None,None,None),
@ -210,7 +229,7 @@
(5,4,"GtkWidget","margin-end","10",None,None,None,None,None,None,None,None,None),
(5,4,"GtkWidget","width-request","200",None,None,None,None,None,None,None,None,None),
(5,5,"GtkButton","has-frame","False",None,None,None,None,None,None,None,None,None),
(5,5,"GtkButton","icon-name","emblem-system-symbolic",None,None,None,None,None,None,None,None,None),
(5,5,"GtkButton","icon-name","text-x-generic-symbolic",None,None,None,None,None,None,None,None,None),
(5,5,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
(5,5,"GtkWidget","valign","center",None,None,None,None,None,None,None,None,None),
(5,6,"GtkBox","spacing","-1",None,None,None,None,None,None,None,None,None),
@ -252,47 +271,51 @@
(8,1,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
(8,1,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
(8,1,"GtkWidget","width-request","400",None,None,None,None,None,None,None,None,None),
(8,13,"GtkButton","label","All Output Devices",None,None,None,None,None,None,None,None,None),
(8,13,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
(8,13,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
(8,13,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
(8,13,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
(8,14,"GtkWidget","margin-bottom","10",None,None,None,None,None,None,None,None,None),
(8,14,"GtkWidget","height-request","40",None,None,None,None,None,None,None,None,None),
(8,15,"GtkLabel","label","Output Device",None,None,None,None,None,None,None,None,None),
(8,16,"GtkWidget","halign","end",None,None,None,None,None,None,None,None,None),
(8,16,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(8,16,"GtkWidget","valign","end",None,None,None,None,None,None,None,None,None),
(8,16,"GtkWidget","valign","center",None,None,None,None,None,None,None,None,None),
(8,19,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
(8,20,"GtkWidget","height-request","40",None,None,None,None,None,None,None,None,None),
(8,20,"GtkWidget","margin-bottom","5",None,None,None,None,None,None,None,None,None),
(8,22,"GtkSwitch","active","True",None,None,None,None,None,None,None,None,None),
(8,22,"GtkWidget","halign","end",None,None,None,None,None,None,None,None,None),
(8,22,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(8,22,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
(8,22,"GtkWidget","valign","center",None,None,None,None,None,None,None,None,None),
(8,23,"GtkLabel","label","Show Applications",None,None,None,None,None,None,None,None,None),
(10,1,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
(10,1,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
(10,1,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
(10,1,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
(10,1,"GtkWidget","width-request","400",None,None,None,None,None,None,None,None,None),
(10,2,"AdwClampScrollable","maximum-size","0",None,None,None,None,None,None,None,None,None),
(10,2,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
(10,3,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
(10,3,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
(10,4,"GtkLabel","justify","right",None,None,None,None,None,None,None,None,None),
(10,4,"GtkLabel","label","Available device",None,None,None,None,None,None,None,None,None),
(10,4,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
(10,5,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
(10,14,"AdwClampScrollable","maximum-size","0",None,None,None,None,None,None,None,None,None),
(10,14,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
(10,15,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
(10,15,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
(10,16,"GtkLabel","justify","right",None,None,None,None,None,None,None,None,None),
(10,16,"GtkLabel","label","Connected devices",None,None,None,None,None,None,None,None,None),
(10,16,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
(10,17,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
(10,18,"GtkButton","label","Advanced",None,None,None,None,None,None,None,None,None),
(10,18,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
(10,18,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
(10,18,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
(10,19,"GtkWidget","margin-bottom","5",None,None,None,None,None,None,None,None,None),
(10,20,"GtkLabel","label","Bluetooth",None,None,None,None,None,None,None,None,None),
(10,21,"GtkWidget","halign","end",None,None,None,None,None,None,None,None,None),
(10,21,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(10,21,"GtkWidget","valign","end",None,None,None,None,None,None,None,None,None),
(10,28,"GtkWidget","margin-bottom","5",None,None,None,None,None,None,None,None,None),
(10,28,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
(10,22,"GtkScrolledWindow","propagate-natural-height","True",None,None,None,None,None,None,None,None,None),
(10,22,"GtkWidget","margin-top","10",None,None,None,None,None,None,None,None,None),
(10,23,"GtkScrolledWindow","propagate-natural-height","True",None,None,None,None,None,None,None,None,None),
(10,26,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
(10,26,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
(10,27,"GtkLabel","justify","right",None,None,None,None,None,None,None,None,None),
(10,27,"GtkLabel","label","Available device",None,None,None,None,None,None,None,None,None),
(10,27,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
(10,28,"GtkListBox","show-separators","True",None,None,None,None,None,None,None,None,None),
(10,28,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
(10,29,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
(10,29,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
(10,30,"GtkLabel","justify","right",None,None,None,None,None,None,None,None,None),
(10,30,"GtkLabel","label","Connected devices",None,None,None,None,None,None,None,None,None),
(10,30,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
(10,31,"GtkListBox","show-separators","True",None,None,None,None,None,None,None,None,None),
(10,31,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
(11,1,"GtkListBoxRow","selectable","False",None,None,None,None,None,None,None,None,None),
(11,3,"GtkImage","icon-name","input-mouse-symbolic",None,None,None,None,None,None,None,None,None),
(11,3,"GtkWidget","margin-end","15",None,None,None,None,None,None,None,None,None),
@ -304,7 +327,47 @@
(11,4,"GtkWidget","margin-end","10",None,None,None,None,None,None,None,None,None),
(11,4,"GtkWidget","width-request","200",None,None,None,None,None,None,None,None,None),
(11,5,"GtkButton","has-frame","False",None,None,None,None,None,None,None,None,None),
(11,5,"GtkButton","icon-name","emblem-system-symbolic",None,None,None,None,None,None,None,None,None)
(11,5,"GtkButton","icon-name","emblem-system-symbolic",None,None,None,None,None,None,None,None,None),
(12,1,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
(12,1,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
(12,1,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
(12,1,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
(12,1,"GtkWidget","width-request","400",None,None,None,None,None,None,None,None,None),
(12,2,"GtkWidget","height-request","40",None,None,None,None,None,None,None,None,None),
(12,3,"GtkLabel","label","Input Device",None,None,None,None,None,None,None,None,None),
(12,4,"GtkWidget","halign","end",None,None,None,None,None,None,None,None,None),
(12,4,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(12,4,"GtkWidget","valign","center",None,None,None,None,None,None,None,None,None),
(12,5,"GtkWidget","height-request","40",None,None,None,None,None,None,None,None,None),
(12,5,"GtkWidget","margin-bottom","5",None,None,None,None,None,None,None,None,None),
(12,6,"GtkLabel","label","Show Applications",None,None,None,None,None,None,None,None,None),
(12,7,"GtkSwitch","active","True",None,None,None,None,None,None,None,None,None),
(12,7,"GtkWidget","halign","end",None,None,None,None,None,None,None,None,None),
(12,7,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(12,7,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
(12,7,"GtkWidget","valign","center",None,None,None,None,None,None,None,None,None),
(12,10,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
(13,1,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
(13,1,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
(13,1,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
(13,2,"GtkWidget","margin-bottom","5",None,None,None,None,None,None,None,None,None),
(13,3,"GtkImage","icon-name","audio-input-microphone-symbolic",None,None,None,None,None,None,None,None,None),
(13,3,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
(13,4,"GtkLabel","label","Input Volume",None,None,None,None,None,None,None,None,None),
(13,5,"GtkWidget","margin-bottom","5",None,None,None,None,None,None,None,None,None),
(13,5,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
(13,6,"GtkButton","icon-name","audio-input-microphone-symbolic",None,None,None,None,None,None,None,None,None),
(13,6,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
(13,6,"GtkWidget","valign","center",None,None,None,None,None,None,None,None,None),
(13,7,"GtkRange","adjustment",None,None,None,None,None,8,None,None,None,None),
(13,7,"GtkScale","value-pos","bottom",None,None,None,None,None,None,None,None,None),
(13,7,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(13,7,"GtkWidget","valign","center",None,None,None,None,None,None,None,None,None),
(13,8,"GtkAdjustment","page-increment","5.0",None,None,None,None,None,None,None,None,None),
(13,8,"GtkAdjustment","upper","100.0",None,None,None,None,None,None,None,None,None),
(13,9,"GtkLabel","label","100%",None,None,None,None,None,None,None,None,None),
(13,9,"GtkLabel","lines","1",None,None,None,None,None,None,None,None,None),
(13,9,"GtkWidget","width-request","40",None,None,None,None,None,None,None,None,None)
</object_property>
<object_data>
(3,23,"GtkWidget",1,1,None,None,None,None,None,None),

View file

@ -2,7 +2,6 @@
<!-- Created with Cambalache 0.17.0 -->
<interface>
<requires lib="gtk" version="4.12"/>
<requires lib="libadwaita" version="1.4"/>
<template class="resetWifi" parent="GtkBox">
<property name="halign">start</property>
<property name="margin-start">5</property>
@ -66,24 +65,27 @@
</object>
</child>
<child>
<object class="AdwClampScrollable">
<property name="maximum-size">0</property>
<property name="orientation">vertical</property>
<object class="GtkScrolledWindow">
<property name="propagate-natural-height">True</property>
<child>
<object class="GtkBox">
<property name="orientation">vertical</property>
<property name="valign">start</property>
<object class="GtkViewport">
<child>
<object class="GtkLabel">
<property name="halign">start</property>
<property name="justify">right</property>
<property name="label">Available networks</property>
</object>
</child>
<child>
<object class="GtkListBox" id="resetWifiList">
<property name="show-separators">True</property>
<object class="GtkBox">
<property name="orientation">vertical</property>
<property name="valign">start</property>
<child>
<object class="GtkLabel">
<property name="halign">start</property>
<property name="justify">right</property>
<property name="label">Available networks</property>
</object>
</child>
<child>
<object class="GtkListBox" id="resetWifiList">
<property name="show-separators">True</property>
<property name="valign">start</property>
</object>
</child>
</object>
</child>
</object>

View file

@ -41,7 +41,7 @@
<object class="GtkButton" id="resetWifiButton">
<property name="halign">start</property>
<property name="has-frame">False</property>
<property name="icon-name">emblem-system-symbolic</property>
<property name="icon-name">info-symbolic</property>
<property name="valign">center</property>
</object>
</child>