You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ubl-settings-resourcequota/source/ubl-settings-resourcequota.h

223 lines
6.6 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#include <gtk/gtk.h>
#include <gtk/gtkx.h>
#include "ubl-utils.h"
#include <locale.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <libintl.h>
#include <getopt.h>
#include <libintl.h>
#include <vte/vte.h>
#include "ubl-cmake.h"
#include "view_add.h"
#include "filters.h"
#include "view_edit.h"
#include "my_device.h"
#include "philos_utils.h"
#ifdef WEBKIT_FOUND
#include <webkit2/webkit2.h>
#endif
#include "ubl-strings.h"
#define config_path yon_char_unite("/home/",yon_ubl_root_user_get(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL)
#define WIKI_LINK "https://wiki.ublinux.ru/ru/Программное_обеспечениерограммы_и_утилиты/Все/ubl-settings-resourcequota"
#define _(String) gettext(String)
#define glade_path "/com/ublinux/ui/ubl-settings-resourcequota.glade"
#define banner_path "/com/ublinux/images/ubl-settings-resourcequota-banner.png"
#define CssPath "/com/ublinux/css/ubl-settings-resourcequota.css"
#define LocalePath "/usr/share/locale"
#define LocaleName "ubl-settings-resourcequota"
#define CMD_LOAD_GLOBAL "ubconfig --default --source global get security CGROUP_QUOTA[*]"
#define CMD_LOAD_SYSTEM "ubconfig --default --source system get security CGROUP_QUOTA[*]"
#define CMD_SAVE_GLOBAL "ubconfig --default --source global set security"
#define CMD_SAVE_SYSTEM "ubconfig --default --source system set security"
#define CMD_ALL_SAVE "ubconfig set security "
#define CMD_ALL_REMOVE "ubconfig remove security "
#define CMD_REMOVE_GLOBAL "ubconfig --target global --noexecute remove security "
#define CMD_REMOVE_SYSTEM "ubconfig --target system remove security "
#define CMD_GET_SLICE_SERVICE "systemd-cgls --no-page"
#define CMD_GET_GROUP "cut -d: -f1 /etc/group"
typedef char *string;
string version_application;
static char *local;
typedef struct
{
int always_open_documentation;
int win_pos_x;
int win_pos_y;
int win_width;
int win_height;
int socket_id;
int load_socket_id;
int save_socket_id;
int lock_help;
int lock_save_local;
int lock_save_global;
int lock_load_global;
GtkListStore *list;
config_str load_system_value;
config_str load_global_value;
config_str cfg_gui_value;
config_str load_system_key;
config_str load_global_key;
render_data status_render;
config_str type_quota;
config_str quota_volume;
int* soft_raw_limit;
int* hard_raw_limit;
int* swap;
int* cpu_limit;
int** i_o_limit_read;
int** i_o_limit_write;
config_str* disk;
config_str array_del_line;
int size_array_del_line;
int *type_quota_size;
int *quota_volume_size;
int *soft_raw_limit_size;
int *hard_raw_limit_size;
int *swap_size;
int *cpu_limit_size;
int** i_o_limit_read_size;
int** i_o_limit_write_size;
int size_tree_view;
dictionary *load_global_cfg;
dictionary *load_system_cfg;
dictionary *save_cfg_gui;
int flag_set_data;
// flag_load | 0 system
// flag_load | 1 global
int flag_load;
} config;
typedef struct
{
GtkWidget *Window;
GtkTreeViewColumn *tvc0;
GtkTreeViewColumn *tvc1;
GtkTreeViewColumn *tvc2;
GtkTreeViewColumn *tvc3;
GtkTreeViewColumn *tvc4;
GtkTreeViewColumn *tvc5;
GtkTreeViewColumn *tvc6;
GtkTreeViewColumn *tvc7;
GtkWidget *btnDelQuotas;
GtkWidget *cbtMainInfoLevel2;
GtkWidget *cbtMainInfo;
GtkWidget *vteProcesses;
GtkWidget *vteInformation;
GtkWidget *btnMainShowCoreStream;
GtkWidget *btnMainShowAllEmpty;
GtkWidget *vteDispatcher;
GtkWidget *spinUpdateDispatcher;
GtkWidget *btnUpdateDispatcher;
GtkWidget *treeViewMain;
GtkWidget *btnSaveCfg;
GtkWidget *btnShowFilters;
GtkWidget *notebookMain;
GtkWidget *btnEdit;
GtkWidget *btnInfo;
GtkWidget *btnAdd;
GtkWidget *HatLabel;
GtkWidget *PlugBox;
GtkWidget *HeadOverlay;
GtkWidget *HeadImage;
GtkWidget *HeadBox;
GtkWidget *HeadTitleLabel;
GtkWidget *HeadInfoLabel;
GtkWidget *StatusBox;
GtkWidget *StatusIcon;
GtkWidget *StatusLabel;
GtkWidget *SaveLabel;
GtkWidget *SaveMenuItem;
GtkWidget *SaveGlobalMenuItem;
GtkWidget *SaveLocalMenuItem;
GtkWidget *RightBox;
GtkWidget *LoadLabel;
GtkWidget *LoadGlobalMenuItem;
GtkWidget *LoadLocalMenuItem;
GtkWidget *LeftBox;
GtkWidget *DocumentationMenuItem;
GtkWidget *AboutMenuItem;
} main_window;
typedef struct
{
GtkWidget *Window;
GtkWidget *HatText;
GtkWidget *HeaderText;
GtkWidget *InfoText;
GtkWidget *AlwaysOpenCheck;
GtkWidget *CloseButton;
GtkWidget *AcceptButton;
} documentation_confirmation_window;
main_window *setup_window();
void main_update_processes();
void config_init();
void event_all(main_window *widgets);
void main_event(main_window *widgets);
void info_show(GtkWidget *self);
void main_localization(main_window *widgets);
void main_visible_columns();
void wrapper_filters_show(GtkWidget *self);
void main_update_dispatcher();
void main_update_information();
void main_fill_combo_box_text(GtkWidget *cbt, config_str list_data, int size);
void main_cbx_2_event();
void tree_view_select(GtkWidget *self, main_window *widgets);
void tree_view_add(int index);
int tree_view_edit();
void main_add_btn_save();
void wrapper_add_show(GtkWidget *self);
void main_edit_btn_save();
void tree_view_del_line();
void main_fill_tree_view_after_remove();
void load_system_cfg();
void load_global_cfg();
void template_load_cfg(char *cmd, dictionary *load_cfg);
void str_split_value(char *values, int index);
void set_size_memory_integer(char* str_find, int** array_data, int index);
void set_size_memory_integer_char(char* str_find, char*** array_data, int index);
void set_pow_size_memory(char* str_find, int** array_size, int index);
void str_split_key(char *source_value, int index);
void fill_tree_view(int start, int size, int flag_gui_add);
void clear_array();
void init_cfg_array(int index);
void wrapper_template_save(char *check_flag);
void wrapper_system_save();
void wrapper_global_save();
void wrapper_all_save();
int template_format_str_save(dictionary *load_cfg, char *source_cmd, char* source_remove_cmd);
char* template_format_str_remove_save(dictionary* load_cfg, char* source_remove_cmd);
char* template_format_str_set_save(dictionary* load_cfg, char* source_set_cmd);
char* save_format_key(int index);
void get_param_io_limit(char** arr_values, int index_start, int size, int index_n1, char *key_find);
char* add_io_str_format_ubconfig(char* cmd_io, char* key, int** i_o_limit, int** i_o_limit_size, char*** disk_read, int index);
char* format_io_limit_in_tree_view(config_str* disk, int** i_o_limit, int** i_o_limit_size, int index);