@ -18,28 +18,57 @@
# define _(String) gettext(String)
# define _(String) gettext(String)
/**Префикс для всех икнок из библиотеки.*/
# define yon_dull_icon_path "com.ublinux.libublsettingsui-gtk3"
# define yon_dull_icon_path "com.ublinux.libublsettingsui-gtk3"
/**Путь до файла основного окна утилит ubl-settings-**/
# define ui_glade_path " / com / ublinux / ui / libublsettingsui-gtk3.glade"
# define ui_glade_path " / com / ublinux / ui / libublsettingsui-gtk3.glade"
/**Путь до файла подтверждения открытия документации утилит ubl-settings-**/
# define ui_glade_path_documentation " / com / ublinux / ui / libublsettingsui-gtk3-documentation.glade"
# define ui_glade_path_documentation " / com / ublinux / ui / libublsettingsui-gtk3-documentation.glade"
/**Путь до файла окна "О программе" утилит ubl-settings-**/
# define ui_glade_path_about " / com / ublinux / ui / libublsettingsui-gtk3-about.glade"
# define ui_glade_path_about " / com / ublinux / ui / libublsettingsui-gtk3-about.glade"
/**Путь до файла окна сохранения утилит ubl-settings-**/
# define ui_glade_path_saving " / com / ublinux / ui / libublsettingsui-gtk3-saving.glade"
# define ui_glade_path_saving " / com / ublinux / ui / libublsettingsui-gtk3-saving.glade"
/**Путь до файла окна выбора файлов утилит ubl-settings-**/
# define ui_glade_path_filechooser " / com / ublinux / ui / libublsettingsui-gtk3-filechooser.glade"
# define ui_glade_path_filechooser " / com / ublinux / ui / libublsettingsui-gtk3-filechooser.glade"
/**Путь до файла окна отладки утилит ubl-settings-**/
# define ui_glade_path_debug " / com / ublinux / ui / libublsettingsui-gtk3-debugger.glade"
# define ui_glade_path_debug " / com / ublinux / ui / libublsettingsui-gtk3-debugger.glade"
/**Путь до файла окна управления юнитами утилит ubl-settings-**/
# define ui_glade_path_service " / com / ublinux / ui / libublsettingsui-gtk3-service-control.glade"
# define ui_glade_path_service " / com / ublinux / ui / libublsettingsui-gtk3-service-control.glade"
/**Путь до файла окна выбора приложений утилит ubl-settings-**/
# define ui_glade_path_app_chooser " / com / ublinux / ui / libublsettingsui-gtk3-app-chooser.glade"
# define ui_glade_path_app_chooser " / com / ublinux / ui / libublsettingsui-gtk3-app-chooser.glade"
/**Путь до основного баннера утилит ubl-settings-**/
# define ui_banner_path " / com / ublinux / images / libublsettingsui-gtk3-banner.png"
# define ui_banner_path " / com / ublinux / images / libublsettingsui-gtk3-banner.png"
/**Путь до файла стилей для утилит*/
# define ui_CssPath " / com / ublinux / css / libublsettingsui-gtk3.css"
# define ui_CssPath " / com / ublinux / css / libublsettingsui-gtk3.css"
/**Путь до файла конфигурации утилит*/
# define ui_config_path yon_char_unite(yon_ubl_user_get_home_directory()," / .config / ",template_app_information.app_tech_name," / ",template_app_information.app_tech_name,".conf",NULL)
# define ui_config_path yon_char_unite(yon_ubl_user_get_home_directory()," / .config / ",template_app_information.app_tech_name," / ",template_app_information.app_tech_name,".conf",NULL)
/**Команда удаления файла конфигурации утилит*/
# define remove_config_dir_command yon_char_unite("rm -rfd ", yon_ubl_user_get_home_directory()," / .config / ",template_app_information.app_tech_name," / ",NULL)
# define remove_config_dir_command yon_char_unite("rm -rfd ", yon_ubl_user_get_home_directory()," / .config / ",template_app_information.app_tech_name," / ",NULL)
/**Шаблон команды сохраненния/удаления/получения параметров из конфигурации*/
# define dull_parameter_get_command "ubconfig --source global get users PARAMETER"
# define dull_parameter_get_command "ubconfig --source global get users PARAMETER"
/**Команда получения режима загрузки*/
# define SAVE_MODE_GET_COMMAND "ubconfig --raw --source system get [config] SYSTEMBOOT_STATEMODE"
# define SAVE_MODE_GET_COMMAND "ubconfig --raw --source system get [config] SYSTEMBOOT_STATEMODE"
/**Команда создания файла конфигурации ubconfig
* @ target - п у т ь д о с о з д а в а е м о г о ф а й л а
*/
# define ubconfig_file_create(target) yon_char_unite("ubconfig --target \"",target,"\" create",NULL)
# define ubconfig_file_create(target) yon_char_unite("ubconfig --target \"",target,"\" create",NULL)
/**Типы */
typedef enum SAVE_MODE_TYPE {
typedef enum SAVE_MODE_TYPE {
SAVE_MODE_FULL ,
SAVE_MODE_FULL ,
SAVE_MODE_MODULE ,
SAVE_MODE_MODULE ,
@ -49,12 +78,27 @@ typedef enum SAVE_MODE_TYPE {
SAVE_MODE_HDD_HOME ,
SAVE_MODE_HDD_HOME ,
} SAVE_MODE_TYPE ;
} SAVE_MODE_TYPE ;
/**Получить локализованную строку из библиотеки
*/
char * yon_char_get_localised_from_lib ( char * string ) ;
char * yon_char_get_localised_from_lib ( char * string ) ;
/**Получить название иконки для режима сохранения
*/
char * yon_ubl_save_mode_get_icon_name ( SAVE_MODE_TYPE type ) ;
char * yon_ubl_save_mode_get_icon_name ( SAVE_MODE_TYPE type ) ;
/**Конввертировать вывод команды SAVE_MODE_GET_COMMAND в SAVE_MODE_TYPE*/
SAVE_MODE_TYPE yon_ubl_save_mode_get_type ( char * type ) ;
SAVE_MODE_TYPE yon_ubl_save_mode_get_type ( char * type ) ;
/**Структура с информацией о б утилите, использующей библиотеку.
* @ interface - в и д ж е т , к о р е н ь и н т е р ф е й с а з а п у щ е н н о й у т и л и т ы . Д о б а в л я е т с я в о к н о и з б и б л и о т е к и
* @ app_locale - и м я ф а й л а л о к а л и з а ц и и о т к у д а б у д е т з а г р у ж а т ь с я л о к а л и з а ц и я у т и л и т ы
* @ css_path - п у т ь д о ф а й л а css с т и л е й у т и л и т ы
* @ app_title - Н а з в а н и е у т и л и т ы д л я о т о б р а ж е н и я н а б а н н е р е и н а о к н а х и з б и б л и о т е к и
* @ app_description - о п и с а н и е у т и л и т ы д л я о т о б р а ж е н и я н а б а н н е р е .
* @ app_texh_name - т е х н и ч е с к о е н а з в а н и е у т и л и т ы ( ubl - settings - * )
* @ app_version - т е к с т о в а я с т р о к а с в е р с и е й у т и л и т ы
* @ wiki_link - с с ы л к а н а с т р а н и ц у wiki у т и л и т ы
*/
typedef struct {
typedef struct {
GtkWidget * interface ;
GtkWidget * interface ;
@ -73,7 +117,8 @@ typedef struct {
extern template_app_info template_app_information ;
extern template_app_info template_app_information ;
/**Стандартные поля для конфигурации утилиты.
* template_config_fields Д О Л Ж Е Н Р А С П О Л А Г А Т Ь С Я П Е Р В Ы М В С Т Р У К Т У Р Е К О Н Ф И Г У Р А Ц И И */
# define template_config_fields\
# define template_config_fields\
int socket_id ; \
int socket_id ; \
int load_socket_id ; \
int load_socket_id ; \
@ -95,11 +140,13 @@ typedef struct {
template_config_fields
template_config_fields
} _template_config ;
} _template_config ;
/**Указатель на конфиг. В него попадает указатель на основной конфиг утилиты с полями @template_fields*/
extern _template_config * template_config ;
extern _template_config * template_config ;
[ [ maybe_unused ] ]
[ [ maybe_unused ] ]
extern _template_config * template_config ;
extern _template_config * template_config ;
/**Поля структуры основного окна утилиты, настраивыемые через бибилотеку. template_window_fields ДОЛЖЕН РАСПОЛАГАТЬСЯ ПЕРВЫМ В С Т Р У К Т У Р Е */
# define template_window_fields\
# define template_window_fields\
GtkWidget * Window ; \
GtkWidget * Window ; \
GtkWidget * HeadLabel ; \
GtkWidget * HeadLabel ; \
@ -132,11 +179,12 @@ extern _template_config *template_config;
GtkWidget * InterfaceBox ; \
GtkWidget * InterfaceBox ; \
//}
//}
/**Структура с основным окном утилиты*/
typedef struct {
typedef struct {
template_window_fields
template_window_fields
} template_main_window ;
} template_main_window ;
/**Структура с окном подтверждения перехода к документации*/
typedef struct {
typedef struct {
GtkWidget * Window ;
GtkWidget * Window ;
GtkWidget * HeaderLabel ;
GtkWidget * HeaderLabel ;
@ -147,6 +195,7 @@ typedef struct {
GtkWidget * AcceptButton ;
GtkWidget * AcceptButton ;
} template_documentation_confirmation_window ;
} template_documentation_confirmation_window ;
/**Структура с окном режима отладки*/
typedef struct {
typedef struct {
GtkWidget * Window ;
GtkWidget * Window ;
GtkWidget * HeaderTopic ;
GtkWidget * HeaderTopic ;
@ -155,6 +204,12 @@ typedef struct {
GtkWidget * Vte ;
GtkWidget * Vte ;
} template_debug_window ;
} template_debug_window ;
/**Структура для диалогового окна подтверждения.
* @ void ( * function ) ( void * , void * ) - у к а з а т е л ь н а ф у н к ц и ю в ы п о л н я ю з у ю с я в с л у ч а е н а ж а т и я н а к н о п к у " Принять " . П е р в ы й п а р а м е т р - У к а з а т е л ь н а о к н о и л и в и д ж е т а , р а с п о л о ж е н н о г о в э т о м о к н е
* @ data - п а р а м е т р , п е р е д а ю щ и й с я в ф у н к ц и ю
* @ action_text - о т о б р а ж а е м ы й в д и а л о г о в о м о к н е т е к с т д е й с т в и я , т р е б у ю щ е г о п о д т в е р ж д е н и я
* @ title - т е к с т в ш а п к е д и а л о г о в о г о о к н а
*/
typedef struct {
typedef struct {
void ( * function ) ( void * , void * ) ;
void ( * function ) ( void * , void * ) ;
void * data ;
void * data ;
@ -162,6 +217,14 @@ typedef struct {
char * title ;
char * title ;
} dialog_confirmation_data ;
} dialog_confirmation_data ;
/**Структура для окна выбора файлов.
* @ Window - в и д ж е т о к н а
* @ StatusBox - в и д ж е т д л я п о к а з а с т а т у с н ы х с о о б щ е н и й , п у с т о й GtkBox с в е р т и к а л ь н о й о р и е н т а ц и е й
* @ HeaderTopic - в и д ж е т т е к с т а в ш а п к е о к н а
* @ MainFileChooser - в и д ж е т в ы б о р а ф а й л о в .
* @ SaveButton - К н о п к а п р и н я т и я в ы б о р а . З а к р ы в а е т о к н о и у с т а н а в л и в а е т responce р а в н ы м GTK_RESPONCE_ACCEPT е с л и б ы л в ы б р а н ф а й л
* @ CancelButton - к н о п к а о т м е н ы . З а к р ы в а е т о к н о и
*/
typedef struct {
typedef struct {
GtkWidget * Window ;
GtkWidget * Window ;
GtkWidget * StatusBox ;
GtkWidget * StatusBox ;
@ -312,6 +375,7 @@ void yon_ubl_settings_window_init(GtkMenu *menu);
void * yon_ubl_settings_window_get ( char * id ) ;
void * yon_ubl_settings_window_get ( char * id ) ;
void yon_configuration_window_add_boolean_parameter ( enum CONFIGURATION_PARAMETER_TYPE type , char * id , char * label ) ;
void yon_configuration_window_add_boolean_parameter ( enum CONFIGURATION_PARAMETER_TYPE type , char * id , char * label ) ;
void yon_configuration_window_add_combo_box_parameter ( enum CONFIGURATION_PARAMETER_TYPE type , char * id , char * label , GCallback func , gpointer data , . . . ) ;
void yon_configuration_window_add_combo_box_parameter ( enum CONFIGURATION_PARAMETER_TYPE type , char * id , char * label , GCallback func , gpointer data , . . . ) ;
template_saving_window * yon_exit_window_new ( ) ;
char * yon_gtk_entry_check_restricted ( GtkEntry * target ) ;
char * yon_gtk_entry_check_restricted ( GtkEntry * target ) ;
@ -511,4 +575,6 @@ yon_app_chooser_window *yon_app_chooser_window_new(int multiple_choise);
# define _SERVICE_ACTIVE_STATUS_LABEL(target) yon_char_unite("\"",target,"\" ", yon_char_get_localised_from_lib(_("service is active")),NULL)
# define _SERVICE_ACTIVE_STATUS_LABEL(target) yon_char_unite("\"",target,"\" ", yon_char_get_localised_from_lib(_("service is active")),NULL)
# define _SERVICE_INACTIVE_STATUS_LABEL(target) yon_char_unite("\"",target,"\" ",yon_char_get_localised_from_lib(_("service is inactive")),NULL)
# define _SERVICE_INACTIVE_STATUS_LABEL(target) yon_char_unite("\"",target,"\" ",yon_char_get_localised_from_lib(_("service is inactive")),NULL)
# define UNSAVED_LABEL yon_char_get_localised_from_lib("The changes were not saved to either the local or global configuration file. Quit without saving?")
# define EXIT_LABEL yon_char_get_localised_from_lib("Exit")
# endif
# endif