|
|
#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 "../compile/ubl-cmake.h"
|
|
|
#include <vte-2.91/vte/vte.h>
|
|
|
#ifdef WEBKIT_FOUND
|
|
|
#include <webkit2/webkit2.h>
|
|
|
#endif
|
|
|
#include "ubl-strings.h"
|
|
|
|
|
|
#define WIKI_LINK "https://wiki.ublinux.ru/ru/Программное_обеспечение/Программы_и_утилиты/Все/ubl-settings-services"
|
|
|
|
|
|
#define _(String) gettext(String)
|
|
|
|
|
|
#define glade_path "/com/ublinux/ui/ubl-settings-services.glade"
|
|
|
#define banner_path "/com/ublinux/images/ubl-settings-services-banner.png"
|
|
|
#define CssPath "/com/ublinux/css/ubl-settings-services.css"
|
|
|
#define config_path yon_char_unite("/home/",yon_ubl_root_user_get(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL)
|
|
|
#define terminal_window_path "/com/ublinux/ui/ubl-settings-services-terminal.glade"
|
|
|
|
|
|
#define LocalePath "/usr/share/locale"
|
|
|
#define LocaleName "ubl-settings-services"
|
|
|
|
|
|
#define load_config_local_command "ubconfig --source system get config SERVICESSTART SERVICESNOSTART SERVICESMASK"
|
|
|
|
|
|
#define load_services_command "systemctl list-units --type=service --type=socket --no-pager --all |grep -E \"^ \" |grep -v \"UNIT\" |sed -e 's/ */;/g' -e 's/^;//g' -e 's/running /running;/g' -e 's/inactive /inactive;/g'"
|
|
|
|
|
|
#define load_sockets_command "systemctl list-sockets -all |grep -vE \"LISTEN|sockets listed\"| sed -e 's/ */:/g'"
|
|
|
|
|
|
#define status_command "systemctl status --no-pager "
|
|
|
|
|
|
typedef char* string;
|
|
|
string version_application;
|
|
|
|
|
|
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;
|
|
|
|
|
|
config_str loaded_config;
|
|
|
GtkListStore *list;
|
|
|
gboolean rmb_clicked;
|
|
|
} config;
|
|
|
|
|
|
typedef struct {
|
|
|
GtkWidget *Menu;
|
|
|
GtkWidget *MenuConfigAutostart;
|
|
|
GtkWidget *MenuConfigAutostop;
|
|
|
GtkWidget *MenuConfigBlock;
|
|
|
GtkWidget *MenuSystemAutostart;
|
|
|
GtkWidget *MenuSystemLaunched;
|
|
|
GtkWidget *MenuReloadConfig;
|
|
|
GtkWidget *MenuStatus;
|
|
|
} menu_obj;
|
|
|
|
|
|
typedef struct {
|
|
|
GtkWidget *Window;
|
|
|
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 *ChosenNameLabel;
|
|
|
GtkWidget *ChosenDescriptionLabel;
|
|
|
|
|
|
GtkWidget *DocumentationMenuItem;
|
|
|
GtkWidget *AboutMenuItem;
|
|
|
|
|
|
GtkWidget *ActionsPopover;
|
|
|
|
|
|
GtkWidget *FirstRowNamesTree;
|
|
|
GtkWidget *MainTree;
|
|
|
|
|
|
GtkTreeViewColumn *ServiceTreeColumn;
|
|
|
GtkWidget *RMBMenu;
|
|
|
menu_obj *menu;
|
|
|
} main_window;
|
|
|
|
|
|
typedef struct {
|
|
|
char *name;
|
|
|
int loaded;
|
|
|
int active;
|
|
|
char *description;
|
|
|
} service_info;
|
|
|
|
|
|
typedef struct {
|
|
|
GtkWidget *Window;
|
|
|
|
|
|
GtkWidget *HatText;
|
|
|
GtkWidget *HeaderText;
|
|
|
GtkWidget *InfoText;
|
|
|
GtkWidget *AlwaysOpenCheck;
|
|
|
|
|
|
GtkWidget *CloseButton;
|
|
|
GtkWidget *AcceptButton;
|
|
|
} documentation_confirmation_window;
|
|
|
|
|
|
|
|
|
void yon_config_main_clean();
|
|
|
main_window *setup_window(); |