WIP sections settings

pull/75/head
parent c9b36c023c
commit f91d15ede4
No known key found for this signature in database
GPG Key ID: FF1D842BF4DDE92B

@ -7,6 +7,7 @@
<file>ubl-settings-manager-theme-gnome-section.glade</file>
<file>ubl-settings-manager-theme-main.glade</file>
<file>ubl-settings-manager-settings-sections.glade</file>
<file>ubl-settings-manager-section-element.glade</file>
</gresource>
<gresource prefix="/com/ublinux/css">
<file>ubl-settings-manager.css</file>

@ -35,6 +35,7 @@ set(DEPENDFILES
../ubl-settings-manager-theme-gnome-section.glade
../ubl-settings-manager-theme-main.glade
../ubl-settings-manager-settings-sections.glade
../ubl-settings-manager-section-element.glade
../gresource.xml
../manager-banner.png
../ubl-settings-manager.css
@ -74,6 +75,7 @@ set(SOURCE_FILES
ubl-settings-manager-theme.c
ubl-settings-manager-theme-gnome.c
ubl-settings-manager-app-sections.c
ubl-settings-manager-settings-sections.c
ubl-settings-manager.h
ubl-strings.h
)

@ -0,0 +1,120 @@
#include "ubl-settings-manager.h"
typedef struct {
GtkWidget *Window;
GtkWidget *StatusBox;
GtkWidget *SectionsBox;
GtkWidget *NameEntry;
GtkWidget *CategoriesEntry;
GtkWidget *ClearButton;
GtkWidget *AddButton;
GtkWidget *CancelButton;
GtkWidget *SaveButton;
// section_struct *sections;
} settings_section_window;
typedef struct {
GtkWidget *SectionBox;
GtkWidget *NameEntry;
GtkWidget *CategoriesEntry;
GtkWidget *RemoveButton;
// GtkWidget *AcceptButton;
} section_struct;
void on_section_remove(GtkWidget *,section_struct *section);
void on_section_add(GtkWidget *,settings_section_window *window);
void on_section_clear(GtkWidget *,settings_section_window *window);
void on_sections_save(GtkWidget *,settings_section_window *window);
section_struct *yon_section_new();
settings_section_window *yon_section_window_new();
void on_section_remove(GtkWidget *,section_struct *section){
gtk_widget_destroy(section->SectionBox);
}
section_struct *yon_section_new(){
section_struct *section = malloc(sizeof(section_struct));
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_section_element);
section->SectionBox = yon_gtk_builder_get_widget(builder,"SectionBox");
section->NameEntry = yon_gtk_builder_get_widget(builder,"NameEntry");
section->CategoriesEntry = yon_gtk_builder_get_widget(builder,"CategoriesEntry");
section->RemoveButton = yon_gtk_builder_get_widget(builder,"RemoveButton");
// section->AcceptButton = yon_gtk_builder_get_widget(builder,"AcceptButton");
g_object_set_data(G_OBJECT(section->SectionBox),"section",section);
g_signal_connect(G_OBJECT(section->RemoveButton),"clicked",G_CALLBACK(on_section_remove),section);
return section;
}
void on_section_add(GtkWidget *,settings_section_window *window){
const char *cat_name = gtk_entry_get_text(GTK_ENTRY(window->NameEntry));
const char *cat_categories = gtk_entry_get_text(GTK_ENTRY(window->CategoriesEntry));
if (yon_char_is_empty(cat_name)){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),_EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(window->NameEntry);
return;
}
section_struct *section = yon_section_new();
gtk_box_pack_start(GTK_BOX(window->SectionsBox),section->SectionBox,0,0,0);
gtk_entry_set_text(GTK_ENTRY(section->NameEntry),cat_name);
gtk_entry_set_text(GTK_ENTRY(section->CategoriesEntry),cat_categories);
gtk_entry_set_text(GTK_ENTRY(window->NameEntry),"");
gtk_entry_set_text(GTK_ENTRY(window->CategoriesEntry),"");
}
void on_section_clear(GtkWidget *,settings_section_window *window){
gtk_entry_set_text(GTK_ENTRY(window->NameEntry),"");
gtk_entry_set_text(GTK_ENTRY(window->CategoriesEntry),"");
}
void on_sections_save(GtkWidget *,settings_section_window *window){
main_window *widgets = g_object_get_data(G_OBJECT(window->Window),"widgets");
gsize size;
config_str parameters = yon_window_config_get_section(sections_section,&size);
for (gsize i=0;i<size;i++){
yon_window_config_erase_instant_parameter(parameters[i],sections_section);
}
GList *list = gtk_container_get_children(GTK_CONTAINER(window->SectionsBox));
GList *iter;
for (iter=list;iter;iter=iter->next){
section_struct *section = g_object_get_data(G_OBJECT(iter->data),"section");
char *name = (char*)gtk_entry_get_text(GTK_ENTRY(section->NameEntry));
char *categories = (char*)gtk_entry_get_text(GTK_ENTRY(section->CategoriesEntry));
yon_window_config_add_instant_parameter(name,sections_section,categories,YON_TYPE_STRING);
}
on_subwindow_close(window->Window);
yon_interface_update(widgets);
}
settings_section_window *yon_section_window_new(){
settings_section_window *window = malloc(sizeof(settings_section_window));
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_settings_section);
window->Window = yon_gtk_builder_get_widget(builder,"Window");
window->StatusBox = yon_gtk_builder_get_widget(builder,"StatusBox");
window->SectionsBox = yon_gtk_builder_get_widget(builder,"SectionsBox");
window->NameEntry = yon_gtk_builder_get_widget(builder,"NameEntry");
window->CategoriesEntry = yon_gtk_builder_get_widget(builder,"CategoriesEntry");
window->ClearButton = yon_gtk_builder_get_widget(builder,"ClearButton");
window->AddButton = yon_gtk_builder_get_widget(builder,"AddButton");
window->CancelButton = yon_gtk_builder_get_widget(builder,"CancelButton");
window->SaveButton = yon_gtk_builder_get_widget(builder,"SaveButton");
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
g_signal_connect(G_OBJECT(window->SaveButton),"clicked",G_CALLBACK(on_sections_save),window);
g_signal_connect(G_OBJECT(window->AddButton),"clicked",G_CALLBACK(on_section_add),window);
g_signal_connect(G_OBJECT(window->ClearButton),"clicked",G_CALLBACK(on_section_clear),window);
return window;
}
void yon_section_window_open(GtkWidget *, settings_window *settings){
main_window *widgets = g_object_get_data(G_OBJECT(settings->Window),"widgets");
settings_section_window *window = yon_section_window_new();
g_object_set_data(G_OBJECT(window->Window),"widgets",widgets);
yon_gtk_window_setup(GTK_WINDOW(window->Window),GTK_WINDOW(settings->Window),TITLE_LABEL,icon_path,"sections_window");
}

@ -16,14 +16,15 @@ gboolean on_settings_size_changed(GtkRange* , GtkScrollType* , gdouble value, se
void on_settings_accept(GtkWidget *, settings_window *window){
main_window *widgets = g_object_get_data(G_OBJECT(window->Window),"widgets");
yon_window_config_add_instant_parameter(icon_size_parameter,"Settings",&window->icon_size,YON_TYPE_INT);
yon_window_config_add_instant_parameter(icon_size_parameter,settings_section,&window->icon_size,YON_TYPE_INT);
main_config.apps_icon_size = window->icon_size;
char *cur_theme = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->ThemeCombo));
if (cur_theme)
yon_window_config_add_instant_parameter(theme_parameter,"Settings",cur_theme,YON_TYPE_STRING);
yon_window_config_add_instant_parameter(theme_parameter,settings_section,cur_theme,YON_TYPE_STRING);
int double_click = gtk_switch_get_active(GTK_SWITCH(window->DoubleClickSwitch));
yon_window_config_add_instant_parameter(double_click_parameter,"Settings",&double_click,YON_TYPE_INT);
yon_window_config_add_instant_parameter(double_click_parameter,settings_section,&double_click,YON_TYPE_INT);
yon_interface_update(widgets);
on_subwindow_close(window->Window);
}
@ -53,19 +54,20 @@ settings_window *yon_settings_window_new(){
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(window->ThemeCombo),themes[i],themes[i]);
}
char *theme_id = NULL;
if (yon_window_config_get_parameter("Settings",theme_parameter,&theme_id,YON_TYPE_STRING)){
if (yon_window_config_get_parameter(settings_section,theme_parameter,&theme_id,YON_TYPE_STRING)){
gtk_combo_box_set_active_id(GTK_COMBO_BOX(window->ThemeCombo),theme_id);
} else {
gtk_combo_box_set_active_id(GTK_COMBO_BOX(window->ThemeCombo),GNOME_THEME_LABEL);
}
window->icon_size;
if (!yon_window_config_get_parameter("Settings",icon_size_parameter,&window->icon_size,YON_TYPE_INT)){
if (!yon_window_config_get_parameter(settings_section,icon_size_parameter,&window->icon_size,YON_TYPE_INT)){
window->icon_size=32;
}
gtk_range_set_value(GTK_RANGE(window->SizeSlider),window->icon_size);
on_settings_size_changed(NULL,NULL,window->icon_size,window);
int double_click_activate;
if (!yon_window_config_get_parameter("Settings",double_click_parameter,&double_click_activate,YON_TYPE_BOOLEAN)){
if (!yon_window_config_get_parameter(settings_section,double_click_parameter,&double_click_activate,YON_TYPE_BOOLEAN)){
double_click_activate=0;
}
gtk_switch_set_active(GTK_SWITCH(window->DoubleClickSwitch),double_click_activate);
@ -75,6 +77,7 @@ settings_window *yon_settings_window_new(){
void on_settings_open(GtkWidget *, main_window *widgets){
settings_window *window = yon_settings_window_new();
g_signal_connect(G_OBJECT(window->SectionsConfigurationButton),"clicked",G_CALLBACK(yon_section_window_open),window);
yon_gtk_window_setup(GTK_WINDOW(window->Window),GTK_WINDOW(widgets->Window),TITLE_LABEL,icon_path,"settings_window");
gtk_widget_show(window->Window);
g_object_set_data(G_OBJECT(window->Window),"widgets",widgets);

@ -2,7 +2,7 @@
theme_struct *yon_theme_update(main_window *widgets){
char *theme_id;
if (!yon_window_config_get_parameter("Settings","theme",&theme_id,YON_TYPE_STRING)){
if (!yon_window_config_get_parameter(settings_section,theme_parameter,&theme_id,YON_TYPE_STRING)){
theme_id = yon_char_new(GNOME_THEME_LABEL);
}

@ -337,13 +337,13 @@ void on_reveal_banner(GtkWidget *, main_window *widgets){
gtk_revealer_set_reveal_child(GTK_REVEALER(widgets->BannerRevealer),0);
gtk_menu_button_set_direction(GTK_MENU_BUTTON(widgets->BannerArrow),GTK_ARROW_RIGHT);
int banner = 1;
yon_window_config_add_instant_parameter(hide_banner_parameter,"Settings",&banner,YON_TYPE_BOOLEAN);
yon_window_config_add_instant_parameter(hide_banner_parameter,settings_section,&banner,YON_TYPE_BOOLEAN);
} else {
gtk_revealer_set_transition_type(GTK_REVEALER(widgets->BannerRevealer),GTK_REVEALER_TRANSITION_TYPE_SLIDE_RIGHT);
gtk_revealer_set_reveal_child(GTK_REVEALER(widgets->BannerRevealer),1);
gtk_menu_button_set_direction(GTK_MENU_BUTTON(widgets->BannerArrow),GTK_ARROW_LEFT);
int banner = 0;
yon_window_config_add_instant_parameter(hide_banner_parameter,"Settings",&banner,YON_TYPE_BOOLEAN);
yon_window_config_add_instant_parameter(hide_banner_parameter,settings_section,&banner,YON_TYPE_BOOLEAN);
}
}
@ -432,18 +432,19 @@ void config_init(){
main_config.double_click=0;
main_config.apps_icon_size=24;
main_config.labelDensity=0;
main_config.themes = g_hash_table_new(g_str_hash,g_str_equal);
yon_theme_init();
};
void yon_config_update(){
if (!yon_window_config_get_parameter("Setings",double_click_parameter,&main_config.double_click,YON_TYPE_INT)){
if (!yon_window_config_get_parameter(settings_section,double_click_parameter,&main_config.double_click,YON_TYPE_INT)){
main_config.double_click=0;
}
if (!yon_window_config_get_parameter("Setings",icon_size_parameter,&main_config.apps_icon_size,YON_TYPE_INT)){
if (!yon_window_config_get_parameter(settings_section,icon_size_parameter,&main_config.apps_icon_size,YON_TYPE_INT)){
main_config.apps_icon_size=24;
}
main_config.themes = g_hash_table_new(g_str_hash,g_str_equal);
yon_theme_init();
}
int yon_char_parsed_compare(const void *a, const void *b){
@ -528,14 +529,14 @@ void yon_interface_update(main_window *widgets){
}
gsize size;
config_str section_settings = yon_window_config_get_section("Sections",&size);
config_str section_settings = yon_window_config_get_section(sections_section,&size);
if (size){
for (gsize i=0;i<size;i++){
app_section *cur_section = yon_app_section_new();
cur_section->name = yon_char_new(section_settings[i]);
char *categories = NULL;
yon_window_config_get_parameter("Sections",cur_section->name,&categories,YON_TYPE_STRING);
yon_window_config_get_parameter(sections_section,cur_section->name,&categories,YON_TYPE_STRING);
cur_section->categories = yon_char_parse(categories,&cur_section->categories_size,";");
yon_dictionary_add_or_create_if_exists_with_data(main_config.sections,cur_section->name,cur_section);
}
@ -604,14 +605,15 @@ main_window *yon_main_window_setup(){
char *path = yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL);
yon_window_config_load(path);
free(path);
config_init();
yon_config_update();
{
int banner_hidden = 0;
yon_window_config_get_parameter("Settings",hide_banner_parameter, &banner_hidden,YON_TYPE_BOOLEAN);
yon_window_config_get_parameter(settings_section,hide_banner_parameter, &banner_hidden,YON_TYPE_BOOLEAN);
gtk_revealer_set_transition_type(GTK_REVEALER(widgets->BannerRevealer),!banner_hidden?GTK_REVEALER_TRANSITION_TYPE_SLIDE_LEFT:GTK_REVEALER_TRANSITION_TYPE_SLIDE_RIGHT);
gtk_revealer_set_reveal_child(GTK_REVEALER(widgets->BannerRevealer),!banner_hidden);
gtk_menu_button_set_direction(GTK_MENU_BUTTON(widgets->BannerArrow),!banner_hidden?GTK_ARROW_LEFT:GTK_ARROW_RIGHT);
}
gtk_widget_show(widgets->Window);
yon_interface_update(widgets);
return widgets;
@ -641,7 +643,6 @@ int main(int argc, char *argv[]){
}
}
gtk_init(&argc, &argv);
config_init();
main_window *widgets = yon_main_window_setup();
GtkCssProvider *css=gtk_css_provider_new();

@ -38,6 +38,8 @@
#define glade_path_gnome_section "/com/ublinux/ui/ubl-settings-manager-theme-gnome-section.glade"
#define glade_path_main_theme "/com/ublinux/ui/ubl-settings-manager-theme-main.glade"
#define glade_path_settings "/com/ublinux/ui/ubl-settings-manager-settings.glade"
#define glade_path_settings_section "/com/ublinux/ui/ubl-settings-manager-settings-sections.glade"
#define glade_path_section_element "/com/ublinux/ui/ubl-settings-manager-section-element.glade"
#define CssPath "/com/ublinux/css/ubl-settings-manager.css"
#define GlobalConfigPath "/etc/xdg/ubl-settings-manager/ubl-settings-manager.conf"
#define UserConfigPath "/.config/ubl-settings-manager/ubl-settings-manager.conf"
@ -53,6 +55,9 @@
#define launch_command(target) yon_char_unite("xdg-open ",target,NULL)
#define launch_args_command(main_socket,load_socket,save_socket) yon_char_unite("--socket-id=",main_socket," --socket-ext-id=",save_socket," --socket-trd-id=",load_socket,NULL)
#define settings_section "Settings"
#define sections_section "Sections"
#define double_click_parameter "double_click"
#define icon_size_parameter "icon_size"
#define theme_parameter "theme"
@ -222,5 +227,6 @@ int yon_char_parsed_compare(const void *a, const void *b);
void yon_interface_update(main_window *widgets);
void on_settings_open(GtkWidget *, main_window *widgets);
void yon_section_window_open(GtkWidget *, settings_window *settings);
#endif

@ -0,0 +1,61 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<interface>
<requires lib="gtk+" version="3.24"/>
<object class="GtkBox" id="SectionBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkEntry" id="NameEntry">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="width-chars">15</property>
<property name="truncate-multiline">True</property>
<property name="caps-lock-warning">False</property>
<property name="input-purpose">name</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="CategoriesEntry">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="width-chars">25</property>
<property name="caps-lock-warning">False</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="RemoveButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="halign">center</property>
<property name="image">image2</property>
<style>
<class name="thin"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<object class="GtkImage" id="image2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="pixel-size">16</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.trash-symbolic</property>
</object>
</interface>

@ -3,245 +3,198 @@
<interface domain="ubl-settings-manager">
<requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubl-settings-manager.css -->
<object class="GtkWindow" id="SectionSettingsWindow">
<object class="GtkImage" id="image2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="pixel-size">16</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.funnel-symbolic</property>
</object>
<object class="GtkImage" id="image4">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="pixel-size">16</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.accept-symbolic</property>
</object>
<object class="GtkImage" id="image6">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.cancel-uncolored-symbolic</property>
</object>
<object class="GtkImage" id="image7">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="default-width">800</property>
<property name="default-height">600</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.accept-symbolic</property>
</object>
<object class="GtkWindow" id="Window">
<property name="width-request">450</property>
<property name="height-request">350</property>
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="modal">True</property>
<property name="icon-name">com.ublinux.ubl-settings-manager</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkScrolledWindow">
<object class="GtkBox" id="StatusBox">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="shadow-type">in</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkViewport">
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="can-focus">True</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkBox">
<object class="GtkViewport">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkBox" id="SectionSettingsPack">
<object class="GtkBox" id="SectionsBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkFrame">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label-xalign">0.019999999552965164</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkAlignment">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="top-padding">5</property>
<property name="bottom-padding">5</property>
<property name="left-padding">5</property>
<property name="right-padding">5</property>
<child>
<object class="GtkFrame">
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="label-xalign">0.019999999552965164</property>
<property name="shadow-type">in</property>
<property name="spacing">5</property>
<child>
<object class="GtkAlignment">
<object class="GtkEntry" id="NameEntry">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="top-padding">3</property>
<property name="bottom-padding">3</property>
<property name="left-padding">5</property>
<property name="right-padding">5</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkButton" id="SectionSettingsClearEntryButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="halign">center</property>
<property name="margin-right">3</property>
<property name="margin-end">3</property>
<property name="image">image2</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="SectionSettingsAddNameEntry">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="truncate-multiline">True</property>
<property name="caps-lock-warning">False</property>
<property name="placeholder-text" translatable="yes">Section name</property>
<property name="input-purpose">name</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="valign">center</property>
<child>
<object class="GtkButton" id="SectionSettingsAddButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="margin-right">5</property>
<property name="margin-end">5</property>
<property name="image">image4</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">2</property>
<child>
<object class="GtkEntry" id="SectionSettingsAddCategoriesEntry">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="margin-left">5</property>
<property name="margin-right">10</property>
<property name="margin-start">5</property>
<property name="margin-end">10</property>
<property name="caps-lock-warning">False</property>
<property name="placeholder-text" translatable="yes">Identifier</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
</child>
<property name="can-focus">True</property>
<property name="width-chars">15</property>
<property name="truncate-multiline">True</property>
<property name="caps-lock-warning">False</property>
<property name="placeholder-text" translatable="yes">Section name</property>
<property name="input-purpose">name</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child type="label_item">
<placeholder/>
<child>
<object class="GtkEntry" id="CategoriesEntry">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="width-chars">25</property>
<property name="caps-lock-warning">False</property>
<property name="placeholder-text" translatable="yes">Identifier</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="ClearButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="halign">center</property>
<property name="image">image2</property>
<style>
<class name="thin"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkButton" id="AddButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image4</property>
<style>
<class name="thin"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">3</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkButton" id="SectionSettingsSaveButton">
<property name="label" translatable="yes">Save and apply</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="margin-right">5</property>
<property name="margin-end">5</property>
<property name="margin-bottom">5</property>
<property name="image">image7</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="SectionSettingsCloseButton">
<property name="label" translatable="yes">Close</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="margin-right">15</property>
<property name="margin-end">15</property>
<property name="margin-bottom">5</property>
<property name="image">image6</property>
<child type="label_item">
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
@ -249,11 +202,11 @@
</object>
</child>
<child type="titlebar">
<object class="GtkHeaderBar" id="SettingsBar2">
<object class="GtkHeaderBar">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child type="title">
<object class="GtkLabel" id="sectionsHeaderNameLabel">
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">UBLinux Settings Manager</property>
@ -271,29 +224,32 @@
<property name="icon_size">5</property>
</object>
</child>
<child>
<object class="GtkButton" id="CancelButton">
<property name="label" translatable="yes">Cancel</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image6</property>
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="SaveButton">
<property name="label" translatable="yes">Apply</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image7</property>
</object>
<packing>
<property name="pack-type">end</property>
<property name="position">2</property>
</packing>
</child>
</object>
</child>
</object>
<object class="GtkImage" id="image2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="pixel-size">16</property>
<property name="icon-name">user-trash-symbolic</property>
</object>
<object class="GtkImage" id="image4">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="pixel-size">16</property>
<property name="icon-name">object-select-symbolic</property>
</object>
<object class="GtkImage" id="image6">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">process-stop-symbolic</property>
</object>
<object class="GtkImage" id="image7">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">emblem-ok-symbolic</property>
</object>
</interface>

@ -6,6 +6,8 @@
<object class="GtkExpander" id="MainExpander">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="expanded">True</property>
<property name="label-fill">True</property>
<child>
<object class="GtkListBox" id="AppsList">
<property name="visible">True</property>

@ -28,11 +28,15 @@
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="shadow-type">none</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>

Loading…
Cancel
Save