diff --git a/icons/actions/com.ublinux.libublsettingsui-gtk3.pan-down.svg b/icons/actions/com.ublinux.libublsettingsui-gtk3.pan-down-symbolic.svg similarity index 100% rename from icons/actions/com.ublinux.libublsettingsui-gtk3.pan-down.svg rename to icons/actions/com.ublinux.libublsettingsui-gtk3.pan-down-symbolic.svg diff --git a/icons/actions/com.ublinux.libublsettingsui-gtk3.pan-left.svg b/icons/actions/com.ublinux.libublsettingsui-gtk3.pan-left-symbolic.svg similarity index 100% rename from icons/actions/com.ublinux.libublsettingsui-gtk3.pan-left.svg rename to icons/actions/com.ublinux.libublsettingsui-gtk3.pan-left-symbolic.svg diff --git a/icons/actions/com.ublinux.libublsettingsui-gtk3.pan-right.svg b/icons/actions/com.ublinux.libublsettingsui-gtk3.pan-right-symbolic.svg similarity index 100% rename from icons/actions/com.ublinux.libublsettingsui-gtk3.pan-right.svg rename to icons/actions/com.ublinux.libublsettingsui-gtk3.pan-right-symbolic.svg diff --git a/icons/actions/com.ublinux.libublsettingsui-gtk3.pan-up.svg b/icons/actions/com.ublinux.libublsettingsui-gtk3.pan-up-symbolic.svg similarity index 100% rename from icons/actions/com.ublinux.libublsettingsui-gtk3.pan-up.svg rename to icons/actions/com.ublinux.libublsettingsui-gtk3.pan-up-symbolic.svg diff --git a/source/libublsettingsui-gtk3.c b/source/libublsettingsui-gtk3.c index 8da5f51..12548e6 100644 --- a/source/libublsettingsui-gtk3.c +++ b/source/libublsettingsui-gtk3.c @@ -528,28 +528,38 @@ void on_root_access(GtkWidget *, GtkWidget *window){ } } -void yon_root_button_setup(template_main_window *widgets, config_str args, int args_size){ +void yon_root_button_init(GtkWidget *root_item,GtkWindow *window){ + g_signal_connect(G_OBJECT(root_item),"activate", G_CALLBACK(on_root_access),window); + +} + +GtkWidget *yon_root_button_new(config_str args, int args_size){ textdomain(template_ui_LocaleName); arg_size=args_size; arg_target=args; GtkWidget *root_item = gtk_menu_item_new(); gtk_style_context_add_class(gtk_widget_get_style_context(root_item),"menuitemtop"); - gtk_style_context_add_class(gtk_widget_get_style_context(widgets->DocumentationMenuItem),"menuitemmiddle"); - gtk_style_context_remove_class(gtk_widget_get_style_context(widgets->DocumentationMenuItem),"menuitemtop"); GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,5); GtkWidget *root_label = gtk_label_new(ROOT_CHECK_LABEL); GtkWidget *root_check = gtk_check_button_new(); - gtk_menu_shell_prepend(GTK_MENU_SHELL(gtk_widget_get_parent(widgets->DocumentationMenuItem)),root_item); gtk_box_pack_start(GTK_BOX(box),root_label,1,1,0); gtk_box_pack_start(GTK_BOX(box),root_check,0,0,0); gtk_container_add(GTK_CONTAINER(root_item),box); gtk_widget_show_all(root_item); - g_signal_connect(G_OBJECT(root_item),"activate", G_CALLBACK(on_root_access),widgets->Window); if (getuid()==0) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(root_check),1); gtk_widget_set_sensitive(root_item,0); } textdomain(template_app_information.app_locale); + return root_item; +} + +void yon_root_button_setup(template_main_window *widgets, config_str args, int args_size){ + GtkWidget *root_item = yon_root_button_new(args,args_size); + gtk_style_context_add_class(gtk_widget_get_style_context(widgets->DocumentationMenuItem),"menuitemmiddle"); + gtk_style_context_remove_class(gtk_widget_get_style_context(widgets->DocumentationMenuItem),"menuitemtop"); + gtk_menu_shell_prepend(GTK_MENU_SHELL(gtk_widget_get_parent(widgets->DocumentationMenuItem)),root_item); + g_signal_connect(G_OBJECT(root_item),"activate", G_CALLBACK(on_root_access),widgets->Window); } void __yon_config_init(){ diff --git a/source/libublsettingsui-gtk3.h b/source/libublsettingsui-gtk3.h index 843251b..2ff607d 100644 --- a/source/libublsettingsui-gtk3.h +++ b/source/libublsettingsui-gtk3.h @@ -274,14 +274,21 @@ char *yon_debug_output(char *pattern,char*text); */ int yon_ubl_connect_config(_template_config *config); +/// @brief Create and setup root access menu item for applications, which use libublsettingsui-gtk3's window template via yon_ubl_window_setup() void yon_root_button_setup(template_main_window *widgets, config_str args, int args_size); -/**yon_ubl_window_init(int argc, char *argv[]) - * [EN] - * - * [RU] - * Создаёт и настраивает основное окно приложения. -*/ + +/// @brief Create new root access button +/// @param args list of income parameters +/// @param args_size size of income parameters list +/// @return Type: GtkWidget. A newly created root menu item +GtkWidget *yon_root_button_new(config_str args, int args_size); + +/// @brief Setup all callbacks for root button +/// @param root_item Target root menu item +/// @param window Main application window +void yon_root_button_init(GtkWidget *root_item,GtkWindow *window); + template_main_window *yon_ubl_window_setup(); /**yon_ubl_window_setup(GtkWidget *interface, char *app_title, char *app_description, char *locale, char *css, char *tech_name, char *version, char *wiki)