|
|
#ifndef UBL_UTILS_GTK3
|
|
|
#define UBL_UTILS_GTK3
|
|
|
#include <gtk/gtk.h>
|
|
|
#include <gdk/gdk.h>
|
|
|
#include <gtk/gtkx.h>
|
|
|
#include <libublsettings.h>
|
|
|
|
|
|
#define _(String) gettext(String)
|
|
|
|
|
|
#ifdef __GTK_H__
|
|
|
#include <vte/vte.h>
|
|
|
/**
|
|
|
* void yon_terminal_integrated_launch(GtkWidget *place_to_show, void *endwork_function, void* endwork_function_argument)
|
|
|
* [EN]
|
|
|
* launches terminal with specific [command],
|
|
|
* terminal is shown in [place_to_show] container,
|
|
|
* after terminal done its work [endwork_function] is called with [endwork_function_argument] argument.
|
|
|
* [RU]
|
|
|
* Запускает терминал с командой [command],
|
|
|
* терминал добавляется в контейнер [place_to_show] виджета,
|
|
|
* после завершения работы терминала вызывается функция [endwork_function] с аргументом [endwork_function_argument].
|
|
|
*/
|
|
|
void yon_terminal_integrated_launch(GtkWidget *place_to_show, char* command, void *endwork_function, void* endwork_function_argument);
|
|
|
|
|
|
/**yon_terminal_integrated_start(GtkWidget *terminal, char* command)
|
|
|
* [EN]
|
|
|
* launches terminal with specific [command],
|
|
|
* terminal is shown in [place_to_show] container.
|
|
|
* [RU]
|
|
|
* Запускает терминал с командой [command].
|
|
|
*/
|
|
|
void yon_terminal_integrated_start(GtkWidget *terminal, char* command);
|
|
|
|
|
|
/**yon_terminal_integrated_start_shell(GtkWidget *terminal, char* command, void *endwork_function, void* endwork_function_argument)
|
|
|
* [EN]
|
|
|
* launches terminal with shell and executes specific [command],
|
|
|
* terminal is shown in [place_to_show] container,
|
|
|
* after terminal done its work [endwork_function] is called with [endwork_function_argument] argument.
|
|
|
* [RU]
|
|
|
* Запускает терминал оболочкой для выполнения команды [command],
|
|
|
* после завершения работы терминала вызывается функция [endwork_function] с аргументом [endwork_function_argument].
|
|
|
*/
|
|
|
void yon_terminal_integrated_start_shell(GtkWidget *terminal, char* command, void *endwork_function, void* endwork_function_argument);
|
|
|
|
|
|
void yon_terminal_window_launch(GtkWindow *parent_window, char *command, char *success_label,char *fail_label);
|
|
|
void yon_terminal_window_launch_shell(GtkWindow *parent_window, char *command, char *success_label,char *fail_label);
|
|
|
|
|
|
void yon_terminal_window_update_button_launch(GtkWindow *parent_window, char *command, char *success_label,char *fail_label);
|
|
|
|
|
|
#define for_iter(model,iter) for(int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model),iter);valid;valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model),iter))
|
|
|
|
|
|
/**yon_gtk_widget_set_scroll_window_for_scroll(GtkWidget *target, GtkScrollbar *scroll)
|
|
|
* [EN]
|
|
|
*
|
|
|
* [RU]
|
|
|
* Устанавливает для виджета [target] прокрутку скролла [scroll]
|
|
|
*/
|
|
|
void yon_gtk_widget_set_scroll_window_for_scroll(GtkWidget *target, GtkScrollbar *scroll);
|
|
|
|
|
|
/**YON_TYPE
|
|
|
* [EN]
|
|
|
*
|
|
|
* [RU]
|
|
|
* Типы, поддерживаемые функциями сохранения/загрузки конфигурации утилиты
|
|
|
*/
|
|
|
enum YON_TYPE{
|
|
|
YON_TYPE_STRING,
|
|
|
YON_TYPE_STRING_LIST,
|
|
|
YON_TYPE_INT,
|
|
|
YON_TYPE_BOOLEAN,
|
|
|
YON_TYPE_OTHER};
|
|
|
|
|
|
/**yon_gtk_builder_get_widget(builder, widget_name)
|
|
|
* [EN]
|
|
|
* Returns GtkWidget from GtkBuilder *[builder].
|
|
|
* [builder] is GtkBuilder*;
|
|
|
* [widget_name] is id of widget;
|
|
|
* [RU]
|
|
|
* Возвращает виджет GtkWidget c id [widget_name] из [builder]
|
|
|
*/
|
|
|
#define yon_gtk_builder_get_widget(builder, widget_name) GTK_WIDGET(gtk_builder_get_object(builder, widget_name))
|
|
|
|
|
|
void yon_window_config_save_instant();
|
|
|
|
|
|
int yon_window_config_check_init();
|
|
|
|
|
|
/**yon_window_config_setup(GtkWindow *window)
|
|
|
* [EN]
|
|
|
*
|
|
|
* [RU]
|
|
|
* Устанавливает указатель на окно для отслеживания его положения и размера
|
|
|
*/
|
|
|
void yon_window_config_setup(GtkWindow *window);
|
|
|
|
|
|
/**yon_window_config_load(char *path)
|
|
|
* [EN]
|
|
|
*
|
|
|
* [RU]
|
|
|
* Загружает конфиг окна и инициализирует отслеживание его параметров
|
|
|
*/
|
|
|
int yon_window_config_load(char *path);
|
|
|
|
|
|
/**yon_window_config_get_section(char *section, gsize *size)
|
|
|
* [EN]
|
|
|
*
|
|
|
* [RU]
|
|
|
* Возвращает все параметры раздела [section] конфига утилиты и записывает в [size] количество считанных параметров.
|
|
|
*/
|
|
|
config_str yon_window_config_get_section(char *section, gsize *size);
|
|
|
|
|
|
/**yon_window_config_add_custom_parameter(GtkWidget *widget, char *param_name, char *widget_property)
|
|
|
* [EN]
|
|
|
*
|
|
|
* [RU]
|
|
|
* Добавляет параметр виджета [widget] по названию [widget_property] для отслеживания и сохраняет его в конфиг под ключом [param_name].
|
|
|
*/
|
|
|
void yon_window_config_add_listener(GtkWidget *widget, char *param_name, char *widget_property, enum YON_TYPE val_type);
|
|
|
|
|
|
/**yon_window_config_add_custom_parameter(char *param_name, char *section, void *tracked_value, enum YON_TYPE val_type)
|
|
|
* [EN]
|
|
|
*
|
|
|
* [RU]
|
|
|
* Добавить параметр в конфиг утилиты.
|
|
|
* Параметр [param_name] добавляется в раздел [section] конфига утилиты со значением [tracked value].
|
|
|
* Тип указывается в [type]
|
|
|
*/
|
|
|
void yon_window_config_add_custom_parameter(char *param_name, char *section, void *tracked_value, enum YON_TYPE val_type);
|
|
|
|
|
|
void yon_window_config_add_instant_parameter(char *param_name, char *section, void *tracked_value, enum YON_TYPE val_type);
|
|
|
|
|
|
/**yon_window_config_erase_custom_parameter(char *param_name, char *section)
|
|
|
* [EN]
|
|
|
*
|
|
|
* [RU]
|
|
|
* Удаляет параметр из конфига утилиты.
|
|
|
* Удаляет параметр [param_name] из раздела [section] конфига утилиты.
|
|
|
*/
|
|
|
void yon_window_config_erase_custom_parameter(char *param_name, char *section);
|
|
|
|
|
|
void yon_window_config_erase_instant_parameter(char *param_name, char *section);
|
|
|
|
|
|
/**yon_window_config_get_parameter(char *section, char *config_parameter, void *return_value, enum YON_TYPE type)
|
|
|
* [EN]
|
|
|
*
|
|
|
* [RU]
|
|
|
* Возвращает параметр из конфига утилиты.
|
|
|
* Параметр [config_parameter] из раздела [section] возвращается в [return_value]
|
|
|
* Возвращаемый тип указывается в [type]
|
|
|
*/
|
|
|
int yon_window_config_get_parameter(char *section, char *config_parameter, void *return_value, enum YON_TYPE type);
|
|
|
|
|
|
/**yon_window_config_custom_window_setup(GtkWindow *window, char *window_name)
|
|
|
* [EN]
|
|
|
*
|
|
|
* [RU]
|
|
|
* Зарегистрировать окно [window] в конфиге утилиты под именем [window_name]
|
|
|
*/
|
|
|
void yon_window_config_custom_window_setup(GtkWindow *window, char *window_name);
|
|
|
|
|
|
/**yon_window_config_custom_window_set(GtkWindow *window, char *window_name)
|
|
|
* [EN]
|
|
|
*
|
|
|
* [RU]
|
|
|
* Загрузить и применить параметры окна [window], сохранёнными в конфигурации утилиты под именем [window_name]
|
|
|
*/
|
|
|
void yon_window_config_custom_window_get(GtkWindow *window, char *window_name);
|
|
|
|
|
|
/**yon_window_config_custom_window_set(GtkWindow *window, char *window_name)
|
|
|
* [EN]
|
|
|
*
|
|
|
* [RU]
|
|
|
* Сохранить параметры окна [window] в конфигурацию утилиты под именем [window_name]
|
|
|
*/
|
|
|
void yon_window_config_custom_window_set(GtkWindow *window, char *window_name);
|
|
|
|
|
|
int yon_window_config_check_exist(char *section, char *parameter);
|
|
|
|
|
|
int yon_gtk_icon_view_hide_empty(dictionary *icon_view_segment);
|
|
|
|
|
|
/**on_subwindow_close(GtkWidget *self)
|
|
|
* [EN]
|
|
|
* Closes window in which [self] is contained.
|
|
|
* [RU]
|
|
|
* Закрывает окно, в котором расположен виджет [self].
|
|
|
*/
|
|
|
void on_subwindow_close(GtkWidget *self);
|
|
|
|
|
|
int yon_gtk_window_setup(GtkWindow *window, GtkWindow *transistent_window, char *title, char *icon_name, char *window_id);
|
|
|
|
|
|
/**yon_ubl_menu_item_documentation_new(char *buttonname)
|
|
|
* [EN]
|
|
|
*
|
|
|
* [RU]
|
|
|
* Создаёт элемент меню GtkMenu с текстом [buttonname]. Кнопка настроена для отображения диалогового окна информации об утилите
|
|
|
*/
|
|
|
GtkWidget *yon_ubl_menu_item_about_new(char *buttonname);
|
|
|
|
|
|
/**yon_ubl_menu_item_documentation_new(char *buttonname)
|
|
|
* [EN]
|
|
|
*
|
|
|
* [RU]
|
|
|
* Создаёт элемент меню GtkMenu с текстом [buttonname]. Кнопка настроена для отображения диалогового окна подтверждения перехода на страницу wiki
|
|
|
*/
|
|
|
GtkWidget *yon_ubl_menu_item_documentation_new(char *buttonname);
|
|
|
|
|
|
// other Gtk functions
|
|
|
|
|
|
/**yon_gtk_combo_box_fill(GtkWidget *combo, config_str parameters,int size)
|
|
|
* [EN]
|
|
|
*
|
|
|
* [RU]
|
|
|
* Добавляет в Комбобокс [combo] все строки из массива строк [parameters] размера [size]
|
|
|
*/
|
|
|
int yon_gtk_combo_box_fill(GtkWidget *combo, char **parameters,int size);
|
|
|
|
|
|
/**yon_gtk_combo_box_text_find(GtkWidget *combo_box, char *text_to_find)
|
|
|
* [EN]
|
|
|
*
|
|
|
* [RU]
|
|
|
* Проивзодит поиск по GtkComboBoxText [combo_box]
|
|
|
* возвращает 1 если элемент [text_to_find] найден, иначе возвращает 0
|
|
|
*/
|
|
|
int yon_gtk_combo_box_text_find(GtkWidget *combo_box, char *text_to_find);
|
|
|
|
|
|
void yon_gtk_tree_view_column_minimal_fixed_size_set(GtkTreeViewColumn *column);
|
|
|
|
|
|
/**yon_gtk_tree_view_minimal_fixed_size_set_full(GtkTreeView *tree)
|
|
|
* [EN]
|
|
|
*
|
|
|
* [RU]
|
|
|
* Установить минимальный размер таблицы [tree] равным размеру заголовка.
|
|
|
*/
|
|
|
void yon_gtk_tree_view_minimal_fixed_size_set_full(GtkTreeView *tree);
|
|
|
|
|
|
void yon_gtk_tree_view_set_(GtkTreeView *top,GtkTreeView *resizing, ...);
|
|
|
|
|
|
/**yon_dictionary_gtk_pack_start_multiple_widgets(GtkBox *destination, gboolean expand, gboolean fill, int padding, ...)
|
|
|
* [EN]
|
|
|
*
|
|
|
* [RU]
|
|
|
* Добвляет [destination] все виджеты, прописанные после [padding]. Добавление происходит с начала контейнера.
|
|
|
* [expand] - расширяемость выделенного для виджетов места
|
|
|
* [fill] - заполнять ли виджетом всё ему выделенное место
|
|
|
* [padding] - отступ од других элементов
|
|
|
*/
|
|
|
int yon_dictionary_gtk_pack_start_multiple_widgets(GtkBox *destination, gboolean expand, gboolean fill, int padding, ...);
|
|
|
|
|
|
/**yon_dictionary_gtk_pack_end_multiple_widgets(GtkBox *destination, gboolean expand, gboolean fill, int padding, ...)
|
|
|
* [EN]
|
|
|
*
|
|
|
* [RU]
|
|
|
* Добвляет в [destination] все виджеты, прописанные после [padding]. Добавление происходит с конца контейнера.
|
|
|
* [expand] - расширяемость выделенного для виджетов места
|
|
|
* [fill] - заполнять ли виджетом всё ему выделенное место
|
|
|
* [padding] - отступ од других элементов
|
|
|
*/
|
|
|
int yon_dictionary_gtk_pack_end_multiple_widgets(GtkBox *destination, gboolean expand, gboolean fill, int padding, ...);
|
|
|
|
|
|
int yon_gtk_list_store_find_text(GtkListStore *list, GtkTreeIter *iter, int seek_column, char *value);
|
|
|
|
|
|
void yon_cell_renderer_toggle_set_toggle(GtkCellRendererToggle *target,GtkWidget *tree);
|
|
|
|
|
|
void yon_gtk_toggle_button_set_inactive_from_toggle(GtkToggleButton *self, GtkToggleButton *target);
|
|
|
|
|
|
void yon_gtk_toggle_button_set_inactive_from_entry(GtkEntry *self, GtkToggleButton *target);
|
|
|
|
|
|
void yon_gtk_toggle_button_set_inactive_from_combo_box(GtkComboBox *self, GtkToggleButton *target);
|
|
|
|
|
|
/**yon_gtk_widget_set_sensitive_from_toggle_button(GtkToggleButton *toggle, GtkWidget *target)
|
|
|
* [EN]
|
|
|
*
|
|
|
* [RU]
|
|
|
* Выставляет чуствительность виджета [target] в зависимости от состояния комбобокса [toggle].
|
|
|
* Чувствительность виджета [target] повторяет статус чекбоска.
|
|
|
*/
|
|
|
void yon_gtk_widget_set_sensitive_from_toggle_button(GtkToggleButton *toggle, GtkWidget *target);
|
|
|
|
|
|
/**yon_gtk_widget_set_sensitive_from_toggle_button_inversed(GtkToggleButton *toggle, GtkWidget *target)
|
|
|
* [EN]
|
|
|
*
|
|
|
* [RU]
|
|
|
* Выставляет чуствительность виджета [target] в зависимости от состояния чекбоска [toggle].
|
|
|
* Если чекбокс вктивен, [target] становится нечувствительным и наоборот.
|
|
|
*/
|
|
|
void yon_gtk_widget_set_sensitive_from_toggle_button_inversed(GtkToggleButton *toggle, GtkWidget *target);
|
|
|
|
|
|
void yon_gtk_widget_set_sensitive_from_switch(GtkSwitch *toggle, int status, GtkWidget *target);
|
|
|
void yon_gtk_widget_set_sensitive_from_switch_inversed(GtkSwitch *toggle, int status, GtkWidget *target);
|
|
|
|
|
|
/**yon_gtk_widget_set_sensitive_from_combo_box(GtkComboBox *toggle, GtkWidget *target);
|
|
|
* [EN]
|
|
|
*
|
|
|
* [RU]
|
|
|
* Выставляет чуствительность виджета [target] в зависимости от состояния комбобокса [toggle].
|
|
|
* Если выбран первый элемент списка, [target] становится чувствительным, любое другое значение сделает его нечувствительным.
|
|
|
*/
|
|
|
void yon_gtk_widget_set_sensitive_from_combo_box(GtkComboBox *toggle, GtkWidget *target);
|
|
|
|
|
|
/**yon_gtk_widget_set_sensitive_from_combo_box_inversed(GtkComboBox *toggle, GtkWidget *target);
|
|
|
* [EN]
|
|
|
*
|
|
|
* [RU]
|
|
|
* Выставляет чуствительность виджета [target] в зависимости от состояния комбобокса [toggle].
|
|
|
* Если выбран первый элемент списка, [target] становится нечувствительным, любое другое значение сделает его чувствительным.
|
|
|
*/
|
|
|
void yon_gtk_widget_set_sensitive_from_combo_box_inversed(GtkComboBox *toggle, GtkWidget *target);
|
|
|
|
|
|
/**yon_gtk_toggle_button_set_inactive_from_toggle_button_inversed(GtkToggleButton *self, GtkToggleButton *target)
|
|
|
* [EN]
|
|
|
*
|
|
|
* [RU]
|
|
|
* Выставляет активность переключателя [target] на 0 когда переключатель [self] не равен 0.
|
|
|
*/
|
|
|
void yon_gtk_toggle_button_set_inactive_from_toggle_button_inversed(GtkToggleButton *self, GtkToggleButton *target);
|
|
|
|
|
|
|
|
|
/**yon_gtk_toggle_button_set_inactive_from_toggle_button(GtkToggleButton *self, GtkToggleButton *target)
|
|
|
* [EN]
|
|
|
*
|
|
|
* [RU]
|
|
|
* Выставляет активность переключателя [target] на 0 когда переключатель [self] сам равен 0.
|
|
|
*/
|
|
|
void yon_gtk_toggle_button_set_inactive_from_toggle_button(GtkToggleButton *self, GtkToggleButton *target);
|
|
|
|
|
|
|
|
|
int yon_gtk_tree_view_set_fixed_size(GtkTreeView *target, ...);
|
|
|
|
|
|
void yon_tree_model_sort_filter_get_child_iter(GtkTreeModelSort *target, GtkTreeIter *iter, GtkTreeIter *converted_iter);
|
|
|
|
|
|
void yon_tree_model_sort_filter_get_model_iter(GtkTreeModelSort *target, GtkTreeIter *iter, GtkTreeIter *converted_iter);
|
|
|
|
|
|
//status section
|
|
|
typedef enum
|
|
|
{
|
|
|
BACKGROUND_IMAGE_INFO_TYPE,
|
|
|
BACKGROUND_IMAGE_SUCCESS_TYPE,
|
|
|
BACKGROUND_IMAGE_FAIL_TYPE
|
|
|
} BACKGROUND_IMAGE_TYPE;
|
|
|
|
|
|
typedef struct {
|
|
|
BACKGROUND_IMAGE_TYPE type;
|
|
|
GtkWidget *icon;
|
|
|
GtkWidget *box;
|
|
|
GtkWidget *label;
|
|
|
char* text_to_render;
|
|
|
} render_data;
|
|
|
|
|
|
|
|
|
/**yon_ubl_status_box_setup(render,icon,box,label)
|
|
|
* [EN]
|
|
|
* Sets up [render] structure of type render_data.
|
|
|
* [icon] is GtkImage widget of status box for showing status icons;
|
|
|
* [box] is GtkBox widget of status box for showing status color;
|
|
|
* [label] is GtkLabel widget of status box for showing status text;
|
|
|
* [RU]
|
|
|
* Настраивает структуру [render] типа render_data.
|
|
|
* [icon] - виджет типа GtkIcon в котором будут отображаться статусные иконки;
|
|
|
* [box] - виджет типа GtkBox в котором будет отображаться цвет статуса;
|
|
|
* [label] - виджет типа GtkLabel в котором будет отображаться текст статусного сообщения;
|
|
|
*/
|
|
|
int yon_ubl_status_box_setup(GtkWidget *icon, GtkWidget *box, GtkWidget *label);
|
|
|
|
|
|
int yon_status_box_is_set();
|
|
|
|
|
|
/**yon_ubl_status_box_render(render,text,type)
|
|
|
* [EN]
|
|
|
* Renders message in status box;
|
|
|
* [render] is render_data structure of status box;
|
|
|
* [text] is text to be shown in status box;
|
|
|
* [type] if type of message. Can be BACKGROUND_IMAGE_FAIL_TYPE or BACKGROUND_IMAGE_SUCCESS_TYPE
|
|
|
* [RU]
|
|
|
* Отображает сообщение в статусном окне.
|
|
|
* [render] - структура типа render_data для нужного статусного окна;
|
|
|
* [text] - текст, отображаемый в статусном окне;
|
|
|
* [type] - тип сообщения. Может быть:
|
|
|
* BACKGROUND_IMAGE_FAIL_TYPE (красный фон,иконка - восклицательный знак)
|
|
|
* или
|
|
|
* BACKGROUND_IMAGE_SUCCESS_TYPE (Жёлтный фон, иконка - галка)
|
|
|
*/
|
|
|
void yon_ubl_status_box_render(char *text, BACKGROUND_IMAGE_TYPE type);
|
|
|
|
|
|
void yon_ubl_status_box_block_input(int seconds);
|
|
|
|
|
|
/**yon_ubl_status_box_render_thread(render,text,type)
|
|
|
* [EN]
|
|
|
* Renders message in status box. It is safe to use outside of interface thread.
|
|
|
* [render] is render_data structure of status box;
|
|
|
* [text] is text to be shown in status box;
|
|
|
* [type] if type of message. Can be BACKGROUND_IMAGE_FAIL_TYPE or BACKGROUND_IMAGE_SUCCESS_TYPE
|
|
|
* [RU]
|
|
|
* Отображает сообщение в статусном окне. Безопасна для вызова не из потока интерфейса.
|
|
|
* [render] - структура типа render_data для нужного статусного окна;
|
|
|
* [text] - текст, отображаемый в статусном окне;
|
|
|
* [type] - тип сообщения. Может быть:
|
|
|
* BACKGROUND_IMAGE_FAIL_TYPE (красный фон,иконка - восклицательный знак)
|
|
|
* или
|
|
|
* BACKGROUND_IMAGE_SUCCESS_TYPE (Жёлтный фон, иконка - галка)
|
|
|
*/
|
|
|
void yon_ubl_status_box_render_thread(char *text, BACKGROUND_IMAGE_TYPE type);
|
|
|
|
|
|
/**yon_ubl_status_list_store_highlight_incorrect(GtkListStore *list, GtkTreeIter *iter)
|
|
|
* [EN]
|
|
|
*
|
|
|
* [RU]
|
|
|
* Подсвечивает красным цветом [widget] на 5 секунд
|
|
|
*/
|
|
|
void yon_ubl_status_highlight_incorrect(GtkWidget *widget);
|
|
|
|
|
|
/**yon_ubl_status_list_store_highlight_incorrect(GtkListStore *list, GtkTreeIter *iter)
|
|
|
* [EN]
|
|
|
*
|
|
|
* [RU]
|
|
|
* Подсвечивает красным цветом [iter] элемент списка [list] на 5 секунд
|
|
|
*/
|
|
|
void yon_ubl_status_list_store_highlight_incorrect(GtkListStore *list, GtkTreeIter *iter);
|
|
|
|
|
|
static int status_thread_busy;
|
|
|
|
|
|
int yon_ubl_status_box_spawn_infinite(GtkContainer *container, char *status_id, char *display_text, BACKGROUND_IMAGE_TYPE type);
|
|
|
int yon_ubl_status_box_despawn_infinite(GtkContainer *container);
|
|
|
|
|
|
/**yon_ubl_status_box_spawn(GtkContainer *container,char *display_text, int timeout,BACKGROUND_IMAGE_TYPE type);
|
|
|
* [EN]
|
|
|
*
|
|
|
* [RU]
|
|
|
* Создаёт статусную строку в контейнере [container], отображая текст [display_text].
|
|
|
* Строка удаляется через [timeout] секунд.
|
|
|
* [type] - тип сообщения. Может быть:
|
|
|
* BACKGROUND_IMAGE_FAIL_TYPE (красный фон,иконка - восклицательный знак)
|
|
|
* или
|
|
|
* BACKGROUND_IMAGE_SUCCESS_TYPE (Жёлтный фон, иконка - галка)
|
|
|
*/
|
|
|
void yon_ubl_status_box_spawn(GtkContainer *container,char *display_text, int timeout,BACKGROUND_IMAGE_TYPE type);
|
|
|
void yon_ubl_status_box_despawn(GtkContainer *status_container);
|
|
|
|
|
|
|
|
|
int yon_ubl_status_set_text(GtkContainer *status_placeholder,char *text);
|
|
|
|
|
|
/**yon_ubl_header_setup(overlay, head, image, imag_path)
|
|
|
* [EN]
|
|
|
* Sets up header of app.
|
|
|
* [overlay] is overlay for app header;
|
|
|
* [head] is box of header, which connects to [overlay]
|
|
|
* [image] is header background image;
|
|
|
* [imag_path] is path of image, shown in [image]
|
|
|
* [RU]
|
|
|
* Настраивает заголовок приложения.
|
|
|
* [overlay] - оверлей заголовка приложения;
|
|
|
* [head] - шапка заголовка, присоединяемая к [overlay]
|
|
|
* [image] - виджет картинки для заднего фона;
|
|
|
* [imag_path] - путь до картинки, загружаемой в [image]
|
|
|
*/
|
|
|
#define yon_ubl_header_setup(overlay, head, image, imag_path) _yon_ubl_header_setup(GTK_WIDGET(overlay), GTK_WIDGET(head), GTK_WIDGET(image), (char *)imag_path)
|
|
|
|
|
|
/**yon_ubl_header_setup_resource(overlay, head, image, imag_path)
|
|
|
* [EN]
|
|
|
* Sets up header of app.
|
|
|
* [overlay] is overlay for app header;
|
|
|
* [head] is box of header, which connects to [overlay]
|
|
|
* [image] is header background image;
|
|
|
* [imag_path] is path of image, shown in [image]
|
|
|
* [RU]
|
|
|
* Настраивает заголовок приложения.
|
|
|
* [overlay] - оверлей заголовка приложения;
|
|
|
* [head] - шапка заголовка, присоединяемая к [overlay]
|
|
|
* [image] - виджет картинки для заднего фона;
|
|
|
* [imag_path] - путь до картинки в ресурсах утилиты, загружаемой в [image]
|
|
|
*/
|
|
|
#define yon_ubl_header_setup_resource(overlay, head, image, imag_path) _yon_ubl_header_setup_resource(GTK_WIDGET(overlay), GTK_WIDGET(head), GTK_WIDGET(image), (char *)imag_path)
|
|
|
|
|
|
void _yon_ubl_header_setup(GtkWidget *Overlay, GtkWidget *Head, GtkWidget *Image, char *image_path);
|
|
|
|
|
|
void _yon_ubl_header_setup_resource(GtkWidget *Overlay, GtkWidget *Head, GtkWidget *Image, char *image_path);
|
|
|
|
|
|
//socket section
|
|
|
/**yon_ubl_setup_sockets(GtkWidget *main_window, GtkWidget *left_window, GtkWidget *right_window, int socket_main_id, int socket_left_id, int socket_right_id)
|
|
|
* [EN]
|
|
|
* Set up plugs for using with GtkSockets insine ubl-settings-manager.
|
|
|
* [main_window] is container widget, which holds main application functionality.
|
|
|
* [left_window] is container widget, which holds widgets, have to be shown at left part of ubl-settings-manager header.
|
|
|
* [right_window] is container widget, which holds widgets, have to be shown at right part of ubl-settings-manager header.
|
|
|
* [socket_main_id] is id of socket for [main_window].
|
|
|
* [socket_left_id] is id of socket for [left_window].
|
|
|
* [socket_right_id] is id of socket for [right_window].
|
|
|
* [RU]
|
|
|
* Настраивает плаги для работы с сокетами в утилите ubl-settings-manager.
|
|
|
* [main_window] - контейнер основного интерфейса приложения.
|
|
|
* [left_window] - контейнер для виджетов которые должны отображаться в левой части шапки ubl-settings-manager.
|
|
|
* [right_window] - контейнер для виджетов которые должны отображаться в правой части шапки ubl-settings-manager.
|
|
|
* [socket_main_id] - id сокета для [main_window].
|
|
|
* [socket_left_id] - id сокета для [left_window].
|
|
|
* [socket_right_id] - id сокета для [right_window].
|
|
|
*/
|
|
|
void yon_ubl_setup_sockets(GtkWidget *main_window, GtkWidget *left_window, GtkWidget *right_window, int socket_main_id, int socket_left_id, int socket_right_id);
|
|
|
|
|
|
//webkit section
|
|
|
#ifdef WEBKIT_INCLUDE
|
|
|
#include <webkit2/webkit2.h>
|
|
|
|
|
|
/**yon_ubl_browser_window_open(char *link, char *browser_window_name)
|
|
|
* [EN]
|
|
|
* Launches integrated browser window, named [browser_window_name] at header with [link].
|
|
|
* [RU]
|
|
|
* Открывает встроенный браузер с именем [browser_window_name] и показываемой страницей по ссылке [link]
|
|
|
*/
|
|
|
GtkWidget *yon_ubl_browser_window_open(char *link, char *browser_window_name);
|
|
|
#else
|
|
|
|
|
|
/**yon_ubl_browser_window_open(char *link, char *browser_window_name)
|
|
|
* [EN]
|
|
|
* Launches browser with [link].
|
|
|
* [browser_window_name] is't used. It's needed for compatibility with webkit version of that function.
|
|
|
* [RU]
|
|
|
* Открывает браузер со страницей по ссылке [link]
|
|
|
* [browser_window_name] не используется. Нужна для совместимости с webkit версией этой функции.
|
|
|
*/
|
|
|
GtkWidget *yon_ubl_browser_window_open(char *link, char *browser_window_name);
|
|
|
#endif
|
|
|
|
|
|
// rmb menu section
|
|
|
typedef struct {
|
|
|
GtkWidget *menu;
|
|
|
dictionary *buttons;
|
|
|
GCallback show_function;
|
|
|
void *show_data;
|
|
|
} rmb_menu_window;
|
|
|
|
|
|
rmb_menu_window *yon_rmb_menu_setup(GtkWidget *target_widget, int (*show_function)(void*), void *show_data, const char *button_label, const char *icon_name, GCallback function, gpointer data,...);
|
|
|
#endif
|
|
|
|
|
|
void yon_gtk_entry_set_password_visibility_icon(GtkEntry *target);
|
|
|
|
|
|
void yon_on_text_insert_only_digits(GtkEditable *editable, const gchar *text, gint length, gint *position, gpointer user_data);
|
|
|
|
|
|
void yon_gtk_entry_block_restricted_symbols(GtkEntry *target);
|
|
|
|
|
|
void yon_gtk_entry_allow_password_symbols(GtkEntry *target);
|
|
|
|
|
|
void yon_gtk_entry_block_languages(GtkEntry *target);
|
|
|
|
|
|
void yon_gtk_entry_block_symbols(GtkEntry *target, char *symbols);
|
|
|
|
|
|
void yon_gtk_entry_block_lowercase(GtkEntry *target);
|
|
|
|
|
|
void yon_entry_set_pattern(GtkEntry *target, char *pattern);
|
|
|
|
|
|
void yon_on_entry_set_allowed_symbols(GtkEntry *target, char *symbols);
|
|
|
|
|
|
// GtkTreeStore section
|
|
|
|
|
|
dictionary *yon_gtk_tree_store_get_children(GtkTreeStore *tree, GtkTreeIter *parent,int column);
|
|
|
|
|
|
void yon_gtk_tree_store_fill_children(GtkTreeStore *tree, GtkTreeIter *parent, dictionary *data, int column);
|
|
|
|
|
|
void yon_gtk_tree_store_copy_full(GtkTreeStore *source, GtkTreeStore *destination);
|
|
|
|
|
|
gboolean yon_gtk_tree_store_find_full(GtkTreeModel *model, GtkTreeIter *iter, gint column, const gchar *target);
|
|
|
|
|
|
gboolean yon_gtk_tree_iter_get_from_combo_box_id(GtkComboBox *combo, GtkTreeModel *model, GtkTreeIter *iter);
|
|
|
|
|
|
gboolean yon_gtk_tree_model_check_exist(GtkTreeModel *model, GtkTreeIter *iter, char *id, int column);
|
|
|
|
|
|
gboolean yon_gtk_list_store_copy_full(GtkListStore *target, GtkListStore *source);
|
|
|
|
|
|
void yon_calendar_set_date_orientation(int orientation);
|
|
|
|
|
|
void yon_calendar_popover_open(GtkEntry *TargetEntry,GtkWidget *PopupTarget);
|
|
|
|
|
|
int yon_calendar_get_last_date();
|
|
|
|
|
|
config_str yon_resource_open_file(const char *path, int *size);
|
|
|
|
|
|
void yon_gtk_revealer_set_from_switch(GtkRevealer *revealer, GtkSwitch *target);
|
|
|
void yon_gtk_revealer_set_from_switch_inversed(GtkRevealer *revealer, GtkSwitch *target);
|
|
|
void yon_gtk_revealer_set_from_expander(GtkRevealer *revealer, GtkExpander *target);
|
|
|
|
|
|
void yon_gtk_window_set_shrinking_from_revealer_resizing(GtkWindow *window, GtkRevealer *revealer);
|
|
|
|
|
|
|
|
|
enum YON_PACKAGES_DB_TYPE {
|
|
|
YON_PACKAGES_LOCAL,
|
|
|
YON_PACKAGES_SYNC,
|
|
|
YON_PACKAGES_ALL,
|
|
|
};
|
|
|
|
|
|
/**yon_packages_init()
|
|
|
* Инициализация системы пакетов. Инициализация происходит долго,
|
|
|
* рекомендуется вызывать как можно ближе к началу работы кода.
|
|
|
*/
|
|
|
int yon_packages_init();
|
|
|
|
|
|
/*Проверить существовует ли пакет в репозиториях*/
|
|
|
int yon_packages_check_exist(const char *package);
|
|
|
|
|
|
/*Проверить установлен ли пакет*/
|
|
|
int yon_packages_check_installed(char *package);
|
|
|
int yon_packages_check_updates(char *package);
|
|
|
void yon_packages_finish();
|
|
|
GList *yon_packages_get_all();
|
|
|
void yon_packages_update();
|
|
|
int yon_packages_install(char *package);
|
|
|
int yon_packages_remove(char *package);
|
|
|
|
|
|
config_str yon_packages_find(enum YON_PACKAGES_DB_TYPE type, const char *search_string, gsize *size);
|
|
|
|
|
|
char *yon_packages_get_version(enum YON_PACKAGES_DB_TYPE type, const char *package);
|
|
|
char *yon_packages_get_description(enum YON_PACKAGES_DB_TYPE type, const char *package);
|
|
|
|
|
|
config_str yon_packages_get_depends(enum YON_PACKAGES_DB_TYPE type, const char *package, int *size);
|
|
|
|
|
|
void yon_combo_box_set_default(GtkComboBoxText *target, char *command, char*(result_callback)(char*));
|
|
|
|
|
|
int yon_ip_mask_get_bits(char *mask);
|
|
|
int yon_ip_check(char *ip);
|
|
|
|
|
|
void yon_gtk_widget_register_parameter(GtkWidget *target, char *config_parameter, char *get_command, char *object_property);
|
|
|
void yon_gtk_widget_register_parameter_manual(GtkWidget *target, char *config_parameter, char *get_command, char *object_property);
|
|
|
void yon_gtk_widget_register_parameter_activate();
|
|
|
|
|
|
typedef struct apps
|
|
|
{
|
|
|
char *Name;
|
|
|
char *Desktop_path;
|
|
|
int Type;
|
|
|
char *Comment;
|
|
|
int categories_size;
|
|
|
config_str Categories;
|
|
|
char *Exec;
|
|
|
char *Icon;
|
|
|
int Pluggable;
|
|
|
int DualPluggable;
|
|
|
char *keywords;
|
|
|
} apps;
|
|
|
|
|
|
/// @brief Initiallize applications system
|
|
|
void yon_apps_init();
|
|
|
|
|
|
/// @brief Uninitiallize applications system
|
|
|
void yon_apps_uninit();
|
|
|
|
|
|
/// @brief Check the initialization of the applications system
|
|
|
/// @return true if initialised, false otherwise
|
|
|
gboolean yon_apps_check_init();
|
|
|
|
|
|
/// @brief Get a structure with information about the application
|
|
|
/// @param name Application name
|
|
|
/// @return Structure with information about the application from the system
|
|
|
apps *yon_apps_get(char *name);
|
|
|
|
|
|
/// @brief Get all apps from the category list
|
|
|
/// @param categories List of categories for which applications are searched
|
|
|
/// @param categories_size The length of the category list
|
|
|
/// @param final_size The size of the final array with application names
|
|
|
/// @return An array of strings containing the names of all applications in the given categories.
|
|
|
config_str yon_apps_get_by_categories(config_str categories, int categories_size, int *final_size);
|
|
|
|
|
|
|
|
|
/// @brief Block scroll element changing for GtkComboBox
|
|
|
/// @param target - GtkComboBox to block
|
|
|
void yon_gtk_combo_box_block_scroll(GtkComboBox *target);
|
|
|
#endif |