#ifndef UBL_SETTINGS_MANAGER #define UBL_SETTINGS_MANAGER #include #define GladePath "/usr/share/ubl-settings-manager/ui/ubl-settings-manager.glade" #define CssPath "/usr/share/ubl-settings-manager/css/ubl-settings-manager.css" #define GlobalConfigPath "/etc/ubconfig-main.conf" #define UserConfigPath "/.config/ubl-settings-manager/ubconfig-main.conf" #define AppIconPath "/usr/share/icons/hicolor/32x32/apps/ublinux-ubconfig.svg" #define AppBannerPath "/usr/share/icons/hicolor/scalable/apps/ubl-settings-manager.png" #define DesktopPath "/usr/share/applications/" #define IconPicturesPath "/usr/share/icons/hicolor/scalable/apps/" #define ErrIconPicturePath "/usr/share/icons/Faenza/emblems/32/emblem-important.png" #define PictureFormatMain ".svg" #define PictureFormatExtra ".png" #define LocalePath "/usr/share/locale" #define LocaleName "ubl-settings-manager" #define LogoPath "/usr/share/icons/hicolor/scalable/apps/ubl-settings-manager.svg" #define ubl_settings_infoPath "/home/superadmin/Документы/ubl-settings-manager/ub-settings-manager/ubl-info/ubl-settings-info" #define ubl_settings_infoPathLaunch "/home/superadmin/Документы/ubl-settings-manager/ub-settings-manager/ubl-info/ubl-settings-info --socket-id=" typedef struct apps{ char *Name; int Type; char *Categories; char *Exec; char *Icon; int Pluggable; } apps; typedef struct dictionary { char *key; void *data; struct dictionary *next; struct dictionary *prev; struct dictionary *first; } dictionary; typedef struct IVGrapgicals{ char *sectionName; char *categories; GtkListStore *LV; GtkWidget *Box; GtkWidget *IV; GtkWidget *label; GtkWidget *sep; } IVGraphicals; typedef struct IconSection{ char *section; char *categories; } IconSection; typedef struct { int windowWidth; int windowHeight; int windowPosX; int windowPosY; int WindowTheme; char *curThemeName; int iconsize; int iconSegmentSize; dictionary *sections; } 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 { GtkBuilder *builder; GtkWidget *window; dictionary *ICSys; GtkWidget *DesktopBasic; GtkWidget *DesktopSocket; GtkWidget *ButtonBackToMain; GtkWidget *DialogOpenDocumentation; GtkWidget *CancelHelpButton; GtkWidget *ReadHelpButton; GtkWidget *AlwaysOpenDocumentation; GtkWidget *helpHeader; GtkWidget *helpText; GtkWidget *appSettings; GtkWidget *SettingsWindow; GtkWidget *settingsSizeSlider; GtkWidget *settingsSizeInfoLabel; GtkWidget *settingsThemeChooser; GtkWidget *settingsCancel; GtkWidget *settingsAccept; GtkWidget *settingsIcon; GtkWidget *socket; GtkWidget *socketplace; GtkWidget *HideWhileLaunch; GtkWidget *MenuItemSettings; GtkWidget *MenuItemDocumentation; GtkWidget *MenuItemAboutSystem; GtkWidget *LabelTitle; GtkWidget *settingsSubmenuLabelSize; GtkWidget *settingsSubmenuLabelTheme; GtkWidget *GnomePaned; GtkWidget *GnomeInfoLabel; GtkWidget *workingwindow; GtkWidget *settingsSectionsSettingsButton; GtkWidget *SectionSettingsWindow; GtkWidget *SectionSettingsPack; dictionary *SettingsSections; GtkWidget *SectionSettingAddButton; GtkWidget *SectionSettingAddNameEntry; GtkWidget *SectionSettingAddCategoriesEntry; GtkWidget *SectionSettingsClearEntryButton; GtkWidget *SectionSettingsSaveButton; GtkWidget *SectionSettingsCloseButton; GtkWidget *GnomeInfoDetailsLabel; GtkWidget *CautionWindow; GtkWidget *CautionUnderstandButton; int appssize; apps *applist; GtkWidget *icvpack; } actionWidgets; typedef enum { ACTIONWIDGETS, ICONSECTION, IVGRAPHICALS, OTHER } DICT_TYPE; void on_plug_added(GtkSocket* self, actionWidgets *builder); void on_plug_removed(GtkSocket* self, actionWidgets *widgets); void on_Item_activated(GtkIconView* self, GtkTreePath* path, actionWidgets *applist); void on_gnome_Item_activated(GtkIconView* self, GtkTreePath* path, actionWidgets *applist); void on_item_selection_changed(GtkIconView *IV, actionWidgets *widgets); void on_ButtonOpenHelp_activated(GtkWidget *button, GtkBuilder *builder); void on_backToSettingsButton_clicked(GtkWidget *button,actionWidgets *sctb); void on_CancelHelpButton_activated(GtkWidget *button,GtkBuilder *builder); void on_ReadHelpButton_activated(GtkWidget *button, GtkBuilder *builder); void launch_app_with_arguments(char *name, char *args); void launch_app(char *name); void py_launch_app(char *name,char *args); int on_settings_accept(GtkWidget *button, dictionary **widgetsDs); void on_paned_move(GtkPaned* self, GtkScrollType* scroll_type, actionWidgets *widgets); int on_settingsOpen(GtkWidget *button, actionWidgets *widgets); int on_settings_icon_size_changed(GtkWidget* self, actionWidgets *widgets); int on_settings_cancel(GtkWidget *button, actionWidgets *widgets); apps *get_app_by_name(apps *applist,char *name, int size); int reload_list(IVGraphicals *section); int load_apps(IVGraphicals *section, apps *applist, int size); int load_apps_with_clear(IVGraphicals *section, apps *applist, int size); int hide_if_unfound(dictionary *widgetsDc); GtkWidget *create_socket(actionWidgets *builder); void sort_apps(apps *applist,int size); apps *find_apps(int *sizef); int check_categories(apps app, char *catstocheck); int setup_config(); dictionary *yon_theme_new(dictionary **widgetss, GtkBuilder *builder, char *theme_id, apps *applist, int appsize); char *yon_char_get_augumented(char *source, char *append); char *yon_cut(char *source, int size, int startpos); int yon_set_sections(IconSection *section); void yon_set_default_sections(dictionary **section); char *yon_char_divide_search(char *source, char* dividepos, int delete_divider); char *yon_char_divide(char *source, int dividepos); dictionary *yon_section_new(dictionary *section, char *section_name, char *categories); void yon_switch_theme(dictionary **dict, dictionary *newone); dictionary *yon_dictionary_find(dictionary **dict, char *key); void yon_segment_show(actionWidgets *widgets, SectionSettingSegment *sgm); dictionary *yon_dictionary_create_empty(); SectionSettingSegment *yon_create_section_setting(char *name, char *categories); void yon_segments_show(actionWidgets *widgets); void yon_segments_hide(actionWidgets *widgets); void yon_dictionary_make_first(dictionary *dict); dictionary *yon_create_icon_section_list(dictionary *sections); int yon_show_icon_views(dictionary *IVS,actionWidgets *widgets); void yon_icon_size_convert(int mode); #endif