#ifndef UBL_SETTINGS_QUOTAS_H #define UBL_SETTINGS_QUOTAS_H #include #include #include #include #include #include "ubl-util-standard.c" #include "util.h" using namespace std; extern const string path_app; extern const string path_glade; extern const string app_name; extern const string path_locale; extern const string path_css; extern const string path_img_head_background; extern int socket_ext_id_I; extern int socket_trd_id_I; extern string version_application; class CmdArgParser : public Glib::OptionGroup { public: CmdArgParser(const std::string& p_name, const std::string& p_description, const std::string& p_help); ::Window GetSocketID() const; private: int m_socketID = 0; }; class MainWindow : public Gtk::ApplicationWindow { public: class ModelColumns : public Gtk::TreeModel::ColumnRecord { public: ModelColumns() {add(name), add(quotas); add(size), add(soft_limit_size), add(hard_limit_size); add(hard_limit_size_delay), add(hard_limit_activ_time), add(files); add(soft_limit_files), add(hard_limit_files), add(hard_limit_delay); add(hard_limit_files_activ_time); } Gtk::TreeModelColumn name; Gtk::TreeModelColumn quotas; Gtk::TreeModelColumn size; Gtk::TreeModelColumn soft_limit_size; Gtk::TreeModelColumn hard_limit_size; Gtk::TreeModelColumn hard_limit_size_delay; Gtk::TreeModelColumn hard_limit_activ_time; Gtk::TreeModelColumn files; Gtk::TreeModelColumn soft_limit_files; Gtk::TreeModelColumn hard_limit_files; Gtk::TreeModelColumn hard_limit_delay; Gtk::TreeModelColumn hard_limit_files_activ_time; }; ModelColumns m_columns; Glib::RefPtr builder; template struct Result{ Type response; int error; }; Gtk::Label *headerTopic; Gtk::AboutDialog *aboutWindows; Gtk::Overlay *HeadOverlay; Gtk::HeaderBar *headerBar; Gtk::Box *boxSave; Gtk::Box *boxButton; Gtk::Box *boxFuncs; Gtk::MenuButton *btnSave; Gtk::MenuButton *btnLoad; Gtk::MenuButton *btnSettings; Gtk::ButtonBox *btnBoxAboutDialog; Gtk::Image *HeadBackgroundImage; Gtk::Image *imgInfo; Gtk::Box *boxInfoError; Gtk::Label *lblWarning; Gtk::Label *generalTabLabel; Gtk::Label *UsersTabLabel; Gtk::Label *GroupsTabLabel; Gtk::Label *generalDeviceLabel; Gtk::Label *generalGroupsFrameLabel; Gtk::Label *generalGroupsSizeLabel; Gtk::Label *generalGroupsFilesLabel; Gtk::Label *generalUsersFrameLabel; Gtk::Label *generalUsersSizeLabel; Gtk::Label *generalUsersFilesLabel; Gtk::Label *generalGroupsSizeWeeksLabel; Gtk::Label *generalGroupsFilesWeeksLabel; Gtk::Label *generalUsersSizeWeeksLabel; Gtk::Label *generalUsersFilesWeeksLabel; Gtk::Label *generalGroupsSizeDaysLabel; Gtk::Label *generalGroupsFilesDaysLabel; Gtk::Label *generalUsersSizeDaysLabel; Gtk::Label *generalUsersFilesDaysLabel; Gtk::Label *generalGroupsSizeHoursLabel; Gtk::Label *generalGroupsFilesHoursLabel; Gtk::Label *generalUsersSizeHoursLabel; Gtk::Label *generalUsersFilesHoursLabel; Gtk::Label *generalGroupsSizeMinutesLabel; Gtk::Label *generalGroupsFilesMinutesLabel; Gtk::Label *generalUsersSizeMinutesLabel; Gtk::Label *generalUsersFilesMinutesLabel; Gtk::Label *generalFileSystemLabel; Gtk::Label *lblLoad; Gtk::Label *lblSave; Gtk::CheckButton *generalGroupsEnableCheck; Gtk::CheckButton *generalUsersEnableCheck; Gtk::MenuItem *btnLoadGlob; Gtk::MenuItem *btnLoadLocal; Gtk::MenuItem *btnSynopsis; Gtk::MenuItem *btnAbout; Gtk::MenuItem *btnSaveLocalGlob; Gtk::MenuItem *btnSaveGlob; Gtk::MenuItem *btnSaveLocal; Gtk::Label *groupsFileSystemLabel; Gtk::Label *usersFileSystemLabel; Gtk::Button *groupsFiltersButton; Gtk::Button *usersFiltersButton; Gtk::Label *groupsDeviceLabel; Gtk::Label *usersDeviceLabel; Gtk::Label *headLabel; Gtk::Window *FiltersWindow; Gtk::CheckButton *filtersNameFilterCheckbox; Gtk::CheckButton *filtersQuotasFilterCheckbox; Gtk::CheckButton *filtersSizeFilterCheckbox; Gtk::CheckButton *filtersSoftSizeFilterCheckbox; Gtk::CheckButton *filtersHardSizeFilterCheckbox; Gtk::CheckButton *filtersHardSizeDelayFilterCheckbox; Gtk::CheckButton *filtersHardSizeActivationFilterCheckbox; Gtk::CheckButton *filtersFilesFilterCheckbox; Gtk::CheckButton *filtersSoftFilesFilterCheckbox; Gtk::CheckButton *filtersHardFilesFilterCheckbox; Gtk::CheckButton *filtersHardFilesDelayFilterCheckbox; Gtk::CheckButton *filtersHardFilesActivationFilterCheckbox; Gtk::TreeView *groupsQuotasTree; Gtk::TreeView *usersQuotasTree; Gtk::Label *quotegroupDeviceLabel; Gtk::Label *quotegroupFileSystemLabel; Gtk::Label *quotegroupDiskQuotasLabel; Gtk::Label *quotegroupGroupQuotasLabel; Gtk::Label *quotegroupSizeFrameLabel; Gtk::Label *quotegroupSizeCurrentlyLabel; Gtk::Label *quoteSizeHardLimitLabel; Gtk::Label *quotegroupFilesFrameLabel; Gtk::Label *quotegroupFilesCurrentlyLabel; Gtk::Label *quotegroupFilesSoftLimitLabel; Gtk::Label *quoteFilesHardLimitLabel; Gtk::Label *quotegroupFilesHarLimitLabel; Gtk::Label *quoteuserDeviceLabel; Gtk::Label *quoteuserDiskQuotasLabel; Gtk::Label *quoteuserFileSystemLabel; Gtk::Label *quoteuserGroupQuotasLabel; Gtk::Label *quoteuserSizeFrameLabel; Gtk::Label *quoteuserSizeCurrentlyLabel; Gtk::Label *quoteuserSizeSoftLimitLabel; Gtk::Label *quoteuserSizeHardLimitLabel1; Gtk::Label *quoteuserFilesCurrentlyLabel; Gtk::Label *quoteuserFilesSoftLimitLabel; Gtk::Label *quoteFilesHardLimitLabel1; Gtk::Label *quoteuserFilesHarLimitLabel; Gtk::Label *quoteuserFilesFrameLabel; Gtk::Label *quotegroupSizeSoftLimitLabel; Gtk::Label *quoteuserFilesSoftLimitlabel; Gtk::Window *QuotasUserEditWindow; Gtk::Window *QuotasEditWindow; public: MainWindow(BaseObjectType* obj, Glib::RefPtr const& builder); MainWindow(Glib::RefPtr const& builder); void settings(); void lacalization(); void add_CSS(); void get_builder(); void event(); void info_status_app(string stule); void groupsFilters_show(); void init_tree_view(); void view_add_columns(Gtk::TreeView &treeView); }; class SettingsPlug : public Gtk::Plug{ public: Gtk::Window *window; SettingsPlug(::Window p_socketID, Glib::RefPtr builder); private: Gtk::Widget *plugBox; Gtk::Widget *parent; }; void help(); #endif