#ifndef UBL_SETTINGS_MANAGER #define UBL_SETTINGS_MANAGER #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef WEBKIT_FOUND #include #endif #include "ubl-strings.h" #define UBLINUX_WIKI_COMMAND "xdg-open https://wiki.ublinux.ru/ru/Программное_обеспечение/Программы_и_утилиты/Все/ubl-settings-manager" #define UBLINUX_WIKI_LINK " https://wiki.ublinux.ru/ru/Программное_обеспечение/Программы_и_утилиты/Все/ubl-settings-manager" #define check_web2kit_command "ldconfig -p |grep webkit2" #define glade_path "/com/ublinux/ui/ubl-settings-manager.glade" #define glade_path_gnome_theme "/com/ublinux/ui/ubl-settings-manager-theme-gnome.glade" #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 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" #define AppIconPath "com.ublinux.ubl-settings-manager" #define AppBannerPath "/com/ublinux/images/ubl-settings-manager-banner.png" #define DesktopPath "/usr/share/applications/" #define IconPicturesPath "/usr/share/icons/hicolor/scalable/apps/" #define LocalePath "/usr/share/locale" #define LocaleName "ubl-settings-manager" #define ubl_settings_infoPath "ubl-settings-info" #define ubl_settings_infoPathLaunch "ubl-settings-info --socket-id=" typedef char* string; __attribute__((unused)) static \ string version_application; #define _(String) gettext(String) typedef struct { char *command; int *exitcode; } thread_output; typedef struct IVGrapgicals{ char *sectionName; char *categories; GtkListStore *LV; GtkWidget *Box; GtkWidget *IV; GtkWidget *label; GtkWidget *sep; GtkCellRendererPixbuf *iconRender; } IVGraphicals; typedef struct IconSection{ char *section; char *categories; } IconSection; typedef struct { template_config_fields; int apps_icon_size; dictionary *sections; int labelDensity; int lock_settings; int double_click; dictionary *SettingsSections; int banner_hidden; GHashTable *themes; } config; extern config main_config; typedef struct { GtkWidget *MainFrame; GtkWidget *MainBox; GtkWidget *ElemBox; GtkWidget *DragButtonBox; GtkWidget *DragUpButton; GtkWidget *DragDownButton; GtkWidget *NameBox; GtkWidget *CategoriesBox; GtkWidget *OptionBox; GtkWidget *NameEntry; GtkWidget *NameLabel; GtkWidget *CategoriesEntry; GtkWidget *CategoriesLabel; GtkWidget *EditButtonBox; GtkWidget *EditButtonAccept; GtkWidget *EditButtonCancel; GtkWidget *ButtonEdit; GtkWidget *ButtonDelete; GtkWidget *DeleditBox; } SectionSettingSegment; typedef struct theme_struct { GtkWidget *MainBox; GtkWidget *AppsTree; GtkWidget *SocketBox; GtkWidget *HideBox; GtkWidget *Socket; int (*list_update_func)(struct theme_struct*); char *(*get_command_func)(struct theme_struct*); void (*set_sections_func)(struct theme_struct*); GtkTreeStore *AppsStore; } theme_struct; typedef struct gnome_theme_struct { GtkWidget *MainBox; GtkWidget *AppsTree; GtkWidget *SocketBox; GtkWidget *HideBox; GtkWidget *Socket; int (*list_update_func)(struct gnome_theme_struct*); char *(*get_command_func)(struct gnome_theme_struct*); void (*set_sections_func)(struct gnome_theme_struct*); GtkWidget *GnomePaned; GtkWidget *GnomeInfoLogoImage; GtkCellRenderer *IconCell; } gnome_theme_struct; typedef struct main_theme_struct { GtkWidget *MainBox; GtkWidget *AppsIconView; GtkWidget *SocketBox; GtkWidget *HideBox; GtkWidget *Socket; int (*list_update_func)(struct main_theme_struct*); char *(*get_command_func)(struct main_theme_struct*); void (*set_sections_func)(struct main_theme_struct*); GtkListStore *AppsList; } main_theme_struct; typedef struct { GtkWidget *Window; GtkWidget *StatusBox; GtkWidget *TitleLabel; GtkWidget *ThemeBox; GtkWidget *SocketBox; GtkWidget *SettingsButton; GtkWidget *BannerImage; GtkWidget *BannerArrow; GtkWidget *BannerButton; GtkWidget *BannerRevealer; theme_struct *current_theme; } main_window; typedef struct { char *name; int categories_size; config_str categories; } app_section; void on_plug_added(GtkSocket* self, main_window *builder); void on_plug_removed(GtkSocket* self, main_window *widgets); void on_Item_activated(GtkIconView* self, GtkTreePath* path, main_window *applist); void on_gnome_Item_activated(GtkIconView* self, GtkTreePath* path, main_window *applist); void on_item_selection_changed(GtkIconView *IV, main_window *widgets); void on_ButtonOpenHelp_activated(GtkWidget *button, GtkBuilder *builder); void on_backToSettingsButton_clicked(GtkWidget *button,main_window *sctb); void on_CancelHelpButton_activated(GtkWidget *button,GtkBuilder *builder); void on_ReadHelpButton_activated(GtkWidget *button, GtkBuilder *builder); int on_settings_accept(GtkWidget *button, dictionary **widgetsDs); void on_paned_move(GtkPaned* self, GtkScrollType* scroll_type, main_window *widgets); int on_settingsOpen(GtkWidget *button, main_window *widgets); int on_settings_icon_size_changed(GtkWidget* self, main_window *widgets); int on_settings_cancel(GtkWidget *button, main_window *widgets); int reload_list(IVGraphicals *section); int hide_if_unfound(dictionary *widgetsDc); GtkWidget *create_socket(main_window *builder); int setup_config(); void update_double_clicks(dictionary *widgetsD); void yon_icv_resize_item(dictionary *icdict, GtkWidget *paned); int yon_set_sections(IconSection *section); void yon_set_default_sections(dictionary *section); dictionary *yon_section_new(dictionary *section, char *section_name, char *categories); void yon_switch_theme(dictionary **dict, dictionary *newone); void yon_segment_show(main_window *widgets, SectionSettingSegment *sgm); SectionSettingSegment *yon_create_section_setting(char *name, char *categories); void yon_segments_show(main_window *widgets); void yon_segments_hide(main_window *widgets); dictionary *yon_create_icon_section_list(dictionary *sections); int yon_show_icon_views(dictionary *IVS,main_window *widgets); void yon_icon_size_convert(int mode); int launch(thread_output *thread); float yon_time_average(dictionary *times); void yon_time_reg_for_average(dictionary *listofregs, int size, time_t tm); int yon_get_icon_size(int size); void yon_theme_init(); theme_struct *yon_theme_update(main_window *widgets); gnome_theme_struct *yon_gnome_theme_new(); main_theme_struct *yon_main_theme_new(); app_section *yon_app_section_new(); gnome_theme_struct *yon_gnome_theme_new(); #endif