master #108

Merged
asmeron merged 2 commits from YanTheKaller/ubl-settings-bootloader:master into master 3 months ago

@ -2,110 +2,124 @@
void on_menu_chosen(GtkWidget *, yon_menu_item *item){ void yon_menu_open_submenu(yon_menu_window *window, yon_menu_item *item){
if (strcmp(item->target,DEFAULT_MENU_ITEM_LABEL)){ int size;
gtk_entry_set_text(GTK_ENTRY(item->widgets->OSDefaultEntry),item->target); config_str options = yon_config_load(get_menus_entry_command,&size);
} else { for (int i=1;i<size;i++){
gtk_entry_set_text(GTK_ENTRY(item->widgets->OSDefaultEntry),DEFAULT_MENU_ITEM_LABEL); yon_char_remove_last_symbol(options[i],'\n');
int parsed_size;
config_str parsed = yon_char_parse(options[i],&parsed_size,";");
int id_size;
config_str id_parsed = yon_char_parse(parsed[0],&id_size,">");
int name_size;
config_str name_parsed = yon_char_parse(parsed[1],&name_size,">");
if (yon_char_parsed_check_exist(id_parsed,id_size,item->id)==0){
yon_menu_item *subitem = yon_menu_add_item(window,parsed[0],name_parsed[1],0);
gtk_list_box_insert(GTK_LIST_BOX(window->ChildrenListBox),subitem->MenuItemRow,-1);
gtk_widget_hide(subitem->ArrowImage);
}
yon_char_parsed_free(id_parsed,id_size);
yon_char_parsed_free(name_parsed,name_size);
yon_char_parsed_free(parsed,parsed_size);
} }
}
void yon_menu_ungrab(yon_menu_window *window){
GdkDisplay *display = gdk_display_get_default(); GdkDisplay *display = gdk_display_get_default();
GdkSeat *seat = gdk_display_get_default_seat(display); GdkSeat *seat = gdk_display_get_default_seat(display);
if (item->window->seat_grab) if (window->seat_grab)
gdk_seat_ungrab(seat); gdk_seat_ungrab(seat);
else else
gtk_grab_remove(item->window->MenuWindow); gtk_grab_remove(window->MenuWindow);
gtk_widget_destroy(item->window->MenuWindow); gtk_widget_destroy(window->MenuWindow);
}
void on_menu_chosen(GtkWidget *, GtkListBoxRow* row, yon_menu_window *window){
yon_menu_item *item = g_object_get_data(G_OBJECT(row),"yon_menu_item");
if (item->children){
yon_menu_open_submenu(window,item);
gtk_widget_show(window->ChildrenRevealer);
gtk_widget_hide(window->ItemsRevealer);
gtk_revealer_set_reveal_child(GTK_REVEALER(window->ItemsRevealer),0);
gtk_revealer_set_reveal_child(GTK_REVEALER(window->ChildrenRevealer),1);
} else {
gtk_entry_set_text(GTK_ENTRY(window->target),item->name);
yon_config_register(GRUB_DEFAULT_parameter,DEFAULT_MENU_ITEM_LABEL,item->id);
yon_menu_ungrab(window);
}
} }
void on_submenu_open(GtkWidget *,yon_menu_item *item){ yon_menu_item *yon_menu_add_item(yon_menu_window *target_menu,const char *id, const char *name, int children){
yon_menu_window *window = item->window; yon_menu_item *item = yon_menu_item_new();
item->window=target_menu;
item->children = children;
item->id = yon_char_new(id);
item->name = yon_char_new(name);
gtk_label_set_text(GTK_LABEL(item->MenuTextLabel),item->name);
dictionary *dact = NULL; // g_signal_connect(G_OBJECT(item->MenuItemRow),"clicked",G_CALLBACK(on_menu_chosen),item);
for_dictionaries(dact,item->children){
yon_menu_item *child = yon_dictionary_get_data(dact,yon_menu_item*);
gtk_widget_hide(child->NextIconButton);
gtk_list_box_insert(GTK_LIST_BOX(window->ChildrenListBox),child->MenuItemBox,-1);
g_signal_connect(G_OBJECT(child->MenuButton),"clicked",G_CALLBACK(on_menu_chosen),dact->data);
} g_object_set_data(G_OBJECT(item->MenuItemRow),"yon_menu_item",item);
gtk_revealer_set_reveal_child(GTK_REVEALER(item->window->ItemsRevealer),0); gtk_widget_show(item->MenuItemRow);
gtk_revealer_set_reveal_child(GTK_REVEALER(item->window->ChildrenRevealer),1); return item;
gtk_box_set_child_packing(GTK_BOX(gtk_widget_get_parent(window->ChildrenRevealer)),window->ChildrenRevealer,1,1,0,GTK_PACK_START);
gtk_box_set_child_packing(GTK_BOX(gtk_widget_get_parent(window->ItemsRevealer)),window->ItemsRevealer,0,0,0,GTK_PACK_START);
yon_on_revealer_switched(window);
g_signal_connect(G_OBJECT(window->MenuWindow),"size-allocate",G_CALLBACK(on_menu_window_size_reallocated),window);
} }
yon_menu_window *yon_menu_window_open(GtkWidget *, main_window *widgets){ yon_menu_window *yon_menu_window_open(GtkWidget *, main_window *widgets){
yon_menu_window *window = yon_menu_window_new(); yon_menu_window *window = yon_menu_window_new();
window->target = widgets->OSDefaultEntry;
g_signal_connect(G_OBJECT(window->ItemsListBox),"row-activated",G_CALLBACK(on_menu_chosen),window);
g_signal_connect(G_OBJECT(window->ChildrenListBox),"row-activated",G_CALLBACK(on_menu_chosen),window);
gtk_window_set_transient_for(GTK_WINDOW(window->MenuWindow),GTK_WINDOW(widgets->Window)); gtk_window_set_transient_for(GTK_WINDOW(window->MenuWindow),GTK_WINDOW(widgets->Window));
{ {
yon_menu_item *item = yon_menu_item_new(); yon_menu_item *item = yon_menu_add_item(window,"",DEFAULT_MENU_ITEM_LABEL,0);
item->widgets=widgets; gtk_list_box_insert(GTK_LIST_BOX(window->ItemsListBox),item->MenuItemRow,-1);
item->window=window; gtk_widget_hide(item->ArrowImage);
item->children=NULL;
gtk_label_set_text(GTK_LABEL(item->MenuTextLabel),DEFAULT_MENU_ITEM_LABEL);
item->target=yon_char_new(DEFAULT_MENU_ITEM_LABEL);
gtk_list_box_insert(GTK_LIST_BOX(window->ItemsListBox),item->MenuItemBox,-1);
yon_dictionary_add_or_create_if_exists_with_data(window->menu_items,DEFAULT_MENU_ITEM_LABEL,item);
gtk_widget_show(item->MenuItemBox);
gtk_widget_hide(item->NextIconButton);
g_signal_connect(G_OBJECT(item->MenuButton),"clicked",G_CALLBACK(on_menu_chosen),item);
} }
int size; int size;
config_str parsed = yon_config_load(get_menus_entry_command,&size); config_str options = yon_config_load(get_menus_entry_command,&size);
for (int i=0;i<size;i++){ GHashTable *created = g_hash_table_new(g_str_hash,g_str_equal);
yon_char_remove_last_symbol(parsed[i],'\n'); for (int i=1;i<size;i++){
int param_size; yon_char_remove_last_symbol(options[i],'\n');
config_str parameter = yon_char_parse(parsed[i],&param_size,">"); int parsed_size;
dictionary * cur_item = NULL; config_str parsed = yon_char_parse(options[i],&parsed_size,";");
if (param_size==2&&(cur_item=yon_dictionary_get(&window->menu_items,parameter[0]))){ int have_children=0;
yon_menu_item *item = (yon_menu_item*)cur_item->data; char *children_id;
yon_menu_item *item_child = yon_menu_item_new(); if ((children_id=strstr(parsed[0],">"))){
gtk_widget_hide(item_child->NextIconButton); children_id[0]='\0';
gtk_label_set_text(GTK_LABEL(item_child->MenuTextLabel),parameter[1]); have_children=1;
item_child->target=yon_char_new(parsed[i]); }
gtk_widget_show(item_child->MenuItemBox); char *children_name;
yon_dictionary_add_or_create_if_exists_with_data(item->children,parameter[1],item_child); if ((children_name=strstr(parsed[1],">"))){
item_child->widgets=widgets; children_name[0]='\0';
item_child->window=window; have_children=1;
} else {
yon_menu_item *item = yon_menu_item_new();
item->widgets=widgets;
item->window=window;
gtk_label_set_text(GTK_LABEL(item->MenuTextLabel),parameter[0]);
item->target=yon_char_new(parsed[i]);
gtk_list_box_insert(GTK_LIST_BOX(window->ItemsListBox),item->MenuItemBox,-1);
yon_dictionary_add_or_create_if_exists_with_data(window->menu_items,parameter[0],item);
gtk_widget_show(item->MenuItemBox);
if (param_size==2){
yon_menu_item *item_child = yon_menu_item_new();
gtk_widget_show(item->NextIconButton);
gtk_widget_hide(item_child->NextIconButton);
gtk_label_set_text(GTK_LABEL(item_child->MenuTextLabel),parameter[1]);
item_child->target=yon_char_new(parsed[i]);
gtk_widget_show(item_child->MenuItemBox);
item_child->widgets=widgets;
item_child->window=window;
g_signal_connect(G_OBJECT(item->MenuButton),"clicked",G_CALLBACK(on_submenu_open),item);
yon_dictionary_add_or_create_if_exists_with_data(item->children,parameter[1],item_child);
} else {
gtk_widget_hide(item->NextIconButton);
g_signal_connect(G_OBJECT(item->MenuButton),"clicked",G_CALLBACK(on_menu_chosen),item);
}
} }
if (!g_hash_table_contains(created,parsed[0])){
g_hash_table_add(created,parsed[0]);
yon_menu_item *item = yon_menu_add_item(window,parsed[0],parsed[1],have_children);
gtk_list_box_insert(GTK_LIST_BOX(window->ItemsListBox),item->MenuItemRow,-1);
if (!have_children){
gtk_widget_hide(item->ArrowImage);
}
}
} }
g_hash_table_unref(created);
yon_char_parsed_free(options,size);
gtk_window_set_transient_for(GTK_WINDOW(window->MenuWindow), GTK_WINDOW(widgets->Window));
int x,y,width; int x,y,width;
gtk_widget_realize(window->MenuWindow);
gdk_window_get_position(gtk_widget_get_window(widgets->MenuButton),&x,&y); gdk_window_get_position(gtk_widget_get_window(widgets->MenuButton),&x,&y);
gtk_widget_translate_coordinates(widgets->MenuButton,widgets->Window,x,y,&window->button_pos_x,&window->button_pos_y); gtk_widget_translate_coordinates(widgets->MenuButton,widgets->Window,x,y,&window->button_pos_x,&window->button_pos_y);
gtk_window_get_size(GTK_WINDOW(window->MenuWindow),&width,NULL); gtk_window_get_size(GTK_WINDOW(window->MenuWindow),&width,NULL);
GtkAllocation alloc;
gtk_widget_get_allocation(widgets->MenuButton, &alloc);
gtk_window_get_position(GTK_WINDOW(widgets->Window),&x,&y); gtk_window_get_position(GTK_WINDOW(widgets->Window),&x,&y);
gtk_window_move(GTK_WINDOW(window->MenuWindow),x+window->button_pos_x-width,y+window->button_pos_y); gtk_window_move(GTK_WINDOW(window->MenuWindow),window->button_pos_x-width,window->button_pos_y);
gtk_widget_realize(window->MenuWindow);
gtk_widget_show(window->MenuWindow); gtk_widget_show(window->MenuWindow);
GdkGrabStatus status = gdk_seat_grab(gdk_display_get_default_seat(gdk_display_get_default()),gtk_widget_get_window(window->MenuWindow),GDK_SEAT_CAPABILITY_POINTER,TRUE,NULL,NULL,NULL,NULL); GdkGrabStatus status = gdk_seat_grab(gdk_display_get_default_seat(gdk_display_get_default()),gtk_widget_get_window(window->MenuWindow),GDK_SEAT_CAPABILITY_POINTER,TRUE,NULL,NULL,NULL,NULL);
if (status != GDK_GRAB_SUCCESS) { if (status != GDK_GRAB_SUCCESS) {
@ -122,14 +136,7 @@ gboolean on_menu_clicked(GtkWidget *, GdkEventButton *event, yon_menu_window *wi
gtk_window_get_size(GTK_WINDOW(window->MenuWindow),&width,&height); gtk_window_get_size(GTK_WINDOW(window->MenuWindow),&width,&height);
gtk_window_get_position(GTK_WINDOW(window->MenuWindow),&x,&y); gtk_window_get_position(GTK_WINDOW(window->MenuWindow),&x,&y);
if (event->x_root<x||event->y_root<y||event->x_root>x+width||event->y_root>y+height){ if (event->x_root<x||event->y_root<y||event->x_root>x+width||event->y_root>y+height){
yon_menu_ungrab(window);
GdkDisplay *display = gdk_display_get_default();
GdkSeat *seat = gdk_display_get_default_seat(display);
if (window->seat_grab)
gdk_seat_ungrab(seat);
else
gtk_grab_remove(window->MenuWindow);
gtk_widget_destroy(window->MenuWindow);
} }
return 1; return 1;
@ -169,11 +176,10 @@ void on_children_clean(GtkWidget*, yon_menu_window *window){
} }
void on_menu_window_size_reallocated(GtkWidget *self,GtkAllocation *,yon_menu_window *window){ void on_menu_window_size_reallocated(GtkWidget *self,GtkAllocation *,yon_menu_window *window){
int x,y,width; int x,y,width;
gtk_window_get_size(GTK_WINDOW(window->MenuWindow),&width,NULL); gtk_window_get_size(GTK_WINDOW(window->MenuWindow),&width,NULL);
gtk_window_get_position(GTK_WINDOW(gtk_window_get_transient_for(GTK_WINDOW(window->MenuWindow))),&x,&y); gtk_window_get_position(GTK_WINDOW(gtk_window_get_transient_for(GTK_WINDOW(window->MenuWindow))),&x,&y);
gtk_window_move(GTK_WINDOW(window->MenuWindow),x+window->button_pos_x-width,y+window->button_pos_y); gtk_window_move(GTK_WINDOW(window->MenuWindow),window->button_pos_x-width,window->button_pos_y);
g_signal_handlers_disconnect_by_func(self,on_menu_window_size_reallocated,window); g_signal_handlers_disconnect_by_func(self,on_menu_window_size_reallocated,window);
} }
@ -197,11 +203,9 @@ void on_menu_window_size_reallocated(GtkWidget *self,GtkAllocation *,yon_menu_wi
yon_menu_item *yon_menu_item_new(){ yon_menu_item *yon_menu_item_new(){
yon_menu_item *item = new(yon_menu_item); yon_menu_item *item = new(yon_menu_item);
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_menu_item); GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_menu_item);
item->MenuItemBox = yon_gtk_builder_get_widget(builder,"MenuItemBox"); item->MenuItemRow = yon_gtk_builder_get_widget(builder,"MenuItemRow");
item->MenuButton = yon_gtk_builder_get_widget(builder,"MenuButton");
item->MenuTextLabel = yon_gtk_builder_get_widget(builder,"MenuTextLabel"); item->MenuTextLabel = yon_gtk_builder_get_widget(builder,"MenuTextLabel");
item->NextIconButton = yon_gtk_builder_get_widget(builder,"NextIconButton"); item->ArrowImage = yon_gtk_builder_get_widget(builder,"ArrowImage");
item->children=NULL;
return item; return item;
} }

@ -649,6 +649,8 @@ void yon_main_window_complete(main_window *widgets){
yon_root_button_setup((template_main_window*)widgets,main_config.launch_arguments,main_config.launch_size); yon_root_button_setup((template_main_window*)widgets,main_config.launch_arguments,main_config.launch_size);
yon_save_window_set_postsave_function(on_save_done,widgets); yon_save_window_set_postsave_function(on_save_done,widgets);
yon_load_proceed(YON_CONFIG_LOCAL); yon_load_proceed(YON_CONFIG_LOCAL);
char *path = yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL);
yon_window_config_load(path);
yon_interface_update(widgets); yon_interface_update(widgets);
} }
@ -667,8 +669,6 @@ int main(int argc, char *argv[]){
main_config.launch_arguments=yon_char_parsed_copy(argv,argc); main_config.launch_arguments=yon_char_parsed_copy(argv,argc);
main_config.launch_size=argc; main_config.launch_size=argc;
yon_main_window_complete((main_window*)widgets); yon_main_window_complete((main_window*)widgets);
char *path = yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL);
yon_window_config_load(path);
if (getuid()!=0){ if (getuid()!=0){
textdomain(template_ui_LocaleName); textdomain(template_ui_LocaleName);
yon_ubl_status_box_render(ROOT_WARNING_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_box_render(ROOT_WARNING_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);

@ -34,7 +34,7 @@
#define LocaleName "ubl-settings-bootloader" #define LocaleName "ubl-settings-bootloader"
#define get_menus_entry_command "/usr/lib/ublinux/scripts/grub-functions exec_get_all_menuentry" #define get_menus_entry_command "/usr/lib/ublinux/scripts/grub-functions exec_get_all_menuentry2"
#define check_is_password_hash(password) system(yon_char_unite("/lib/ublinux/functions is_hash_password '", password,"'",NULL)) #define check_is_password_hash(password) system(yon_char_unite("/lib/ublinux/functions is_hash_password '", password,"'",NULL))
@ -183,6 +183,36 @@ typedef struct {
char *prev_name; char *prev_name;
} yon_ringtone_window; } yon_ringtone_window;
typedef struct
{
GtkWidget *MenuWindow;
GtkWidget *BackButton;
GtkWidget *ItemsRevealer;
GtkWidget *ItemsListBox;
GtkWidget *ChildrenRevealer;
GtkWidget *ChildrenListBox;
GtkWidget *target;
int seat_grab;
dictionary *menu_items;
char *cur_selection;
int button_pos_x;
int button_pos_y;
} yon_menu_window;
typedef struct
{
GtkWidget *MenuItemRow;
GtkWidget *MenuTextLabel;
GtkWidget *ArrowImage;
yon_menu_window *window;
char *name;
char *id;
int children;
} yon_menu_item;
//main //main
void on_save_done(main_window *, config_str output, int size); void on_save_done(main_window *, config_str output, int size);
@ -232,43 +262,17 @@ yon_ringtone_window *yon_ringtone_window_new();
//menu //menu
typedef struct {
GtkWidget *MenuWindow;
GtkWidget *BackButton;
GtkWidget *ItemsRevealer;
GtkWidget *ItemsListBox;
GtkWidget *ChildrenRevealer;
GtkWidget *ChildrenListBox;
int seat_grab;
dictionary *menu_items;
char *cur_selection;
int button_pos_x;
int button_pos_y;
} yon_menu_window;
typedef struct {
GtkWidget *MenuItemBox;
GtkWidget *MenuButton;
GtkWidget *MenuTextLabel;
GtkWidget *NextIconButton;
char *target;
main_window *widgets;
yon_menu_window *window;
dictionary *children;
} yon_menu_item;
yon_menu_window *yon_menu_window_open(GtkWidget *target, main_window *widgets);
gboolean on_menu_clicked(GtkWidget *, GdkEventButton *, yon_menu_window *);
yon_menu_window *yon_menu_window_new();
yon_menu_item *yon_menu_item_new(); yon_menu_item *yon_menu_item_new();
void on_menu_window_size_reallocated(GtkWidget *,GtkAllocation *,yon_menu_window *window); yon_menu_window *yon_menu_window_new();
void on_menu_chosen(GtkWidget *, yon_menu_item *item); void on_menu_window_size_reallocated(GtkWidget *self, GtkAllocation *, yon_menu_window *window);
void on_submenu_open(GtkWidget *,yon_menu_item *item); void on_children_clean(GtkWidget *, yon_menu_window *window);
gboolean yon_on_revealer_switched(yon_menu_window *window);
gboolean on_menu_clicked(GtkWidget *, GdkEventButton *event, yon_menu_window *window);
yon_menu_window *yon_menu_window_open(GtkWidget *, main_window *widgets);
void yon_menu_open_submenu(yon_menu_window *window, yon_menu_item *item);
yon_menu_item *yon_menu_add_item(yon_menu_window *target_menu,const char *id, const char *name, int children);
void yon_menu_ungrab(yon_menu_window *window);
void on_menu_chosen(GtkWidget *, GtkListBoxRow* row, yon_menu_window *window);
void on_children_clean(GtkWidget*, yon_menu_window *window); void on_children_clean(GtkWidget*, yon_menu_window *window);
gboolean yon_on_revealer_switched (yon_menu_window *window); gboolean yon_on_revealer_switched (yon_menu_window *window);
void yon_save_window_hide_passwords(template_saving_window *window); void yon_save_window_hide_passwords(template_saving_window *window);

@ -6,7 +6,7 @@
#define BOOT_MENU_LABEL _("Boot menu") #define BOOT_MENU_LABEL _("Boot menu")
#define BOOT_SELECTION_LABEL _("Boot selection menu timer:") #define BOOT_SELECTION_LABEL _("Boot selection menu timer:")
#define SECONDS_LABEL _("seconds") #define SECONDS_LABEL _("seconds")
#define DEFAULT_LABEL _("Default") // #define DEFAULT_LABEL _("Default")
#define DEFAULT_OS_LABEL _("Default OS:") #define DEFAULT_OS_LABEL _("Default OS:")
#define LOAD_DISPLAY_MODE_LABEL _("Load screen display mode:") #define LOAD_DISPLAY_MODE_LABEL _("Load screen display mode:")
#define BOOT_USERS_LABEL _("Boot Menu Users") #define BOOT_USERS_LABEL _("Boot Menu Users")
@ -28,8 +28,8 @@
#define EDIT_LABEL _("Edit") #define EDIT_LABEL _("Edit")
#define REMOVE_LABEL _("Remove") #define REMOVE_LABEL _("Remove")
#define ACCEPT_LABEL _("Accept") // #define ACCEPT_LABEL _("Accept")
#define CANCE_LABEL _("Cancel") // #define CANCE_LABEL _("Cancel")
#define BOOT_LOG_LABEL _("Boot animation with log") #define BOOT_LOG_LABEL _("Boot animation with log")
#define BOOT_NO_LOG_LABEL _("Boot animation without log") #define BOOT_NO_LOG_LABEL _("Boot animation without log")

@ -1,69 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 --> <!-- Generated with glade 3.40.0 -->
<interface domain="ubl-settings-bootloader"> <interface domain="ubl-settings-bootloader">
<requires lib="gtk+" version="3.24"/> <requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubl-settings-bootloader.css --> <!-- interface-css-provider-path ubl-settings-bootloader.css -->
<object class="GtkBox" id="MenuItemBox"> <object class="GtkListBoxRow" id="MenuItemRow">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">True</property>
<child> <child>
<object class="GtkButton" id="MenuButton"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">False</property>
<property name="receives-default">True</property> <property name="spacing">5</property>
<child>
<object class="GtkLabel" id="MenuTextLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">label</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child> <child>
<object class="GtkBox"> <object class="GtkImage" id="ArrowImage">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="spacing">5</property> <property name="icon-name">com.ublinux.libublsettingsui-gtk3.pan-right-symbolic</property>
<child>
<object class="GtkLabel" id="MenuTextLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">label</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkMenuButton" id="NextIconButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="focus-on-click">False</property>
<property name="receives-default">True</property>
<property name="popup">menu1</property>
<property name="direction">right</property>
<child>
<placeholder/>
</child>
<style>
<class name="thin"/>
<class name="noborder"/>
<class name="nobackground"/>
</style>
</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> </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> </child>
<style>
<class name="noborder"/>
<class name="menunoborder"/>
</style>
</object> </object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child> </child>
</object> </object>
<object class="GtkMenu" id="menu1"> <object class="GtkMenu" id="menu1">

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 --> <!-- Generated with glade 3.40.0 -->
<interface domain="ubl-settings-bootloader"> <interface domain="ubl-settings-bootloader">
<requires lib="gtk+" version="3.24"/> <requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubl-settings-bootloader.css --> <!-- interface-css-provider-path ubl-settings-bootloader.css -->
@ -60,6 +60,9 @@
</style> </style>
</object> </object>
</child> </child>
<style>
<class name="listbox_hovering"/>
</style>
</object> </object>
</child> </child>
</object> </object>
@ -166,6 +169,9 @@
<property name="label" translatable="yes">Children options were not found</property> <property name="label" translatable="yes">Children options were not found</property>
</object> </object>
</child> </child>
<style>
<class name="listbox_hovering"/>
</style>
</object> </object>
</child> </child>
</object> </object>

Loading…
Cancel
Save