master #73

Merged
asmeron merged 3 commits from YanTheKaller/ubl-settings-manager:master into master 5 months ago

28
.gitignore vendored

@ -1,22 +1,14 @@
.vscode/ .vscode/
config.conf *#
ubconfig-main-back.conf
gtk-dark.css
msgformat.py
calendarApp.glade
calendarApp.glade~
ubl-settings-manager.glade~
*ubl-settings-manager.glade#
ubl-settings-manager ubl-settings-manager
**base.mo ubl-settings-TEMPLATE
home/ ubl-settings-repo-back/ubl-settings-repo-back
css/ *~
.config/ build/
images/
locale/
ui/
ubl-settings-manager_ru.pos
ubl-settings-manager_ru.po~
deleted
compile/ compile/
terminal-commands/
source/ubl-cmake.h
.BUILD.md
.updatebuild.sh
.install.sh .install.sh
*vgcore*

@ -2,11 +2,16 @@
<gresources> <gresources>
<gresource prefix="/com/ublinux/ui"> <gresource prefix="/com/ublinux/ui">
<file>ubl-settings-manager.glade</file> <file>ubl-settings-manager.glade</file>
<file>ubl-settings-manager-settings.glade</file>
<file>ubl-settings-manager-theme-gnome.glade</file>
<file>ubl-settings-manager-theme-gnome-section.glade</file>
<file>ubl-settings-manager-theme-main.glade</file>
<file>ubl-settings-manager-settings-sections.glade</file>
</gresource> </gresource>
<gresource prefix="/com/ublinux/css"> <gresource prefix="/com/ublinux/css">
<file>ubl-settings-manager.css</file> <file>ubl-settings-manager.css</file>
</gresource> </gresource>
<gresource prefix="/com/ublinux/images"> <gresource prefix="/com/ublinux/images">
<file>ubl-settings-manager-banner.png</file> <file>manager-banner.png</file>
</gresource> </gresource>
</gresources> </gresources>

Before

Width:  |  Height:  |  Size: 260 KiB

After

Width:  |  Height:  |  Size: 260 KiB

@ -15,10 +15,7 @@ add_definitions(${VTE291_CFLAGS_OTHER})
find_library(WEBKIT_LIBRARIES_FOUND webkit2gtk-4.0 webkit2gtk-web-extension-4.0) find_library(WEBKIT_LIBRARIES_FOUND webkit2gtk-4.0 webkit2gtk-web-extension-4.0)
option(WEBKIT_FOUND "No" OFF)
if(WEBKIT_LIBRARIES_FOUND) if(WEBKIT_LIBRARIES_FOUND)
add_definitions(-DWEBKIT_FOUND)
PKG_CHECK_MODULES(WEBKIT REQUIRED webkit2gtk-4.0 webkit2gtk-web-extension-4.0) PKG_CHECK_MODULES(WEBKIT REQUIRED webkit2gtk-4.0 webkit2gtk-web-extension-4.0)
include_directories(${WEBKIT_INCLUDE_DIRS}) include_directories(${WEBKIT_INCLUDE_DIRS})
link_directories(${WEBKIT_LIBRARY_DIRS}) link_directories(${WEBKIT_LIBRARY_DIRS})
@ -33,8 +30,13 @@ add_custom_target(GLADE ubl-settings-manager.glade)
set(DEPENDFILES set(DEPENDFILES
../ubl-settings-manager.glade ../ubl-settings-manager.glade
../ubl-settings-manager-settings.glade
../ubl-settings-manager-theme-gnome.glade
../ubl-settings-manager-theme-gnome-section.glade
../ubl-settings-manager-theme-main.glade
../ubl-settings-manager-settings-sections.glade
../gresource.xml ../gresource.xml
../ubl-settings-manager-banner.png ../manager-banner.png
../ubl-settings-manager.css ../ubl-settings-manager.css
) )
@ -58,21 +60,32 @@ add_custom_target(
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C} DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C}
) )
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g") #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always -std=c++2a")
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always -lm")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always \
-O2 -pipe -fno-plt -fexceptions \
-Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security \
-fstack-clash-protection -fcf-protection")
set(SOURCE_FILES set(SOURCE_FILES
ubl-settings-manager.c ubl-settings-manager.c
ubl-settings-manager-settings.c
ubl-settings-manager-theme.c
ubl-settings-manager-theme-gnome.c
ubl-settings-manager-app-sections.c
ubl-settings-manager.h ubl-settings-manager.h
ubl-strings.h
) )
message(${GTK_LIBRARIES})
set(LIBRARIES set(LIBRARIES
${GTK_LIBRARIES} ${GTK_LIBRARIES}
${WEBKIT_LIBRARIES} ${WEBKIT_LIBRARIES}
${VTE291_LIBRARIES} ${VTE291_LIBRARIES}
pthread) pthread
ublsettings
ublsettings-gtk3
ublsettingsui-gtk3)
add_executable(${PROJECT_NAME} ${SOURCE_FILES} ${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C}) add_executable(${PROJECT_NAME} ${SOURCE_FILES} ${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C})

@ -0,0 +1,7 @@
#include "ubl-settings-manager.h"
app_section *yon_app_section_new(){
app_section *new_section = malloc(sizeof(app_section));
memset(new_section,0,sizeof(app_section));
return new_section;
}

@ -0,0 +1,82 @@
#include "ubl-settings-manager.h"
gboolean on_settings_size_changed(GtkRange* , GtkScrollType* , gdouble value, settings_window *window){
long val = (long)value;
int size = val-val%8;
if (size<24) size=24;
if (size>64) size=64;
window->icon_size = size;
char *size_full = g_strdup_printf("%dx%d",size,size);
gtk_label_set_text(GTK_LABEL(window->SizeLabel),size_full);
gtk_image_set_from_pixbuf(GTK_IMAGE(window->SizeIcon),gtk_icon_info_load_icon(gtk_icon_theme_lookup_icon_for_scale(gtk_icon_theme_get_default(), icon_path,size,1,GTK_ICON_LOOKUP_FORCE_SIZE),NULL));
free(size_full);
return 0;
}
void on_settings_accept(GtkWidget *, settings_window *window){
main_window *widgets = g_object_get_data(G_OBJECT(window->Window),"widgets");
yon_window_config_add_instant_parameter(icon_size_parameter,"Settings",&window->icon_size,YON_TYPE_INT);
char *cur_theme = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->ThemeCombo));
if (cur_theme)
yon_window_config_add_instant_parameter(theme_parameter,"Settings",cur_theme,YON_TYPE_STRING);
int double_click = gtk_switch_get_active(GTK_SWITCH(window->DoubleClickSwitch));
yon_window_config_add_instant_parameter(double_click_parameter,"Settings",&double_click,YON_TYPE_INT);
yon_interface_update(widgets);
on_subwindow_close(window->Window);
}
settings_window *yon_settings_window_new(){
settings_window *window = malloc(sizeof(settings_window));
memset(window,0,sizeof(window));
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_settings);
window->Window = yon_gtk_builder_get_widget(builder,"Window");
window->SizeSlider = yon_gtk_builder_get_widget(builder,"SizeSlider");
window->SizeLabel = yon_gtk_builder_get_widget(builder,"SizeLabel");
window->SizeIcon = yon_gtk_builder_get_widget(builder,"SizeIcon");
window->ThemeCombo = yon_gtk_builder_get_widget(builder,"ThemeCombo");
window->DoubleClickSwitch = yon_gtk_builder_get_widget(builder,"DoubleClickSwitch");
window->SectionsConfigurationButton = yon_gtk_builder_get_widget(builder,"SectionsConfigurationButton");
window->CancelButton = yon_gtk_builder_get_widget(builder,"CancelButton");
window->AcceptButton = yon_gtk_builder_get_widget(builder,"AcceptButton");
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_settings_accept),window);
g_signal_connect(G_OBJECT(window->SizeSlider),"change-value",G_CALLBACK(on_settings_size_changed),window);
int size;
config_str themes = (config_str)g_hash_table_get_keys_as_array(main_config.themes,&size);
qsort(themes,size,sizeof(char*),yon_char_parsed_compare);
for (int i=0;i<size;i++){
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(window->ThemeCombo),themes[i],themes[i]);
}
char *theme_id = NULL;
if (yon_window_config_get_parameter("Settings",theme_parameter,&theme_id,YON_TYPE_STRING)){
gtk_combo_box_set_active_id(GTK_COMBO_BOX(window->ThemeCombo),theme_id);
} else {
gtk_combo_box_set_active_id(GTK_COMBO_BOX(window->ThemeCombo),GNOME_THEME_LABEL);
}
window->icon_size;
if (!yon_window_config_get_parameter("Settings",icon_size_parameter,&window->icon_size,YON_TYPE_INT)){
window->icon_size=32;
}
gtk_range_set_value(GTK_RANGE(window->SizeSlider),window->icon_size);
int double_click_activate;
if (!yon_window_config_get_parameter("Settings",double_click_parameter,&double_click_activate,YON_TYPE_BOOLEAN)){
double_click_activate=0;
}
gtk_switch_set_active(GTK_SWITCH(window->DoubleClickSwitch),double_click_activate);
return window;
}
void on_settings_open(GtkWidget *, main_window *widgets){
settings_window *window = yon_settings_window_new();
yon_gtk_window_setup(GTK_WINDOW(window->Window),GTK_WINDOW(widgets->Window),TITLE_LABEL,icon_path,"settings_window");
gtk_widget_show(window->Window);
g_object_set_data(G_OBJECT(window->Window),"widgets",widgets);
}

@ -0,0 +1,151 @@
#include "ubl-settings-manager.h"
typedef struct {
GtkWidget *expander;
GtkWidget *AppsList;
app_section *section;
} gnome_section;
void on_gnome_plug_connected(GtkWidget *,gnome_theme_struct *theme){
gtk_widget_show(theme->SocketBox);
gtk_widget_hide(theme->HideBox);
}
void on_gnome_plug_disconnected(GtkWidget *,gnome_theme_struct *theme){
gtk_widget_show(theme->HideBox);
gtk_widget_hide(theme->SocketBox);
on_plug_disconnected(GTK_SOCKET(theme->Socket),main_config.widgets);
}
void on_gnome_activate(GtkWidget *,GtkListBoxRow *self, gnome_theme_struct *theme);
void on_gnome_activate(GtkWidget *,GtkListBoxRow *self, gnome_theme_struct *theme){
theme->Socket = GTK_WIDGET(yon_sockets_init(GTK_BOX(theme->SocketBox)));
g_signal_connect(G_OBJECT(theme->Socket),"plug_added",G_CALLBACK(on_gnome_plug_connected),theme);
g_signal_connect(G_OBJECT(theme->Socket),"destroy",G_CALLBACK(on_gnome_plug_disconnected),theme);
apps *cur_app = g_object_get_data(G_OBJECT(self),"apps");
char *command = cur_app->Exec;//launch_command(cur_app->Desktop_path);
char *command_args = NULL;
if (cur_app->DualPluggable==1){
char *save_socket = yon_get_save_socket();
char *load_socket = yon_get_load_socket();
char *main_socket_id = yon_char_from_long((long)gtk_socket_get_id(GTK_SOCKET(theme->Socket)));
command_args = launch_args_command(main_socket_id,load_socket,save_socket);
} else if (cur_app->Pluggable){
char *main_socket_id = yon_char_from_long((long)gtk_socket_get_id(GTK_SOCKET(theme->Socket)));
command_args = yon_char_unite("--socket-id=",main_socket_id,NULL);
}
yon_launch_app_with_arguments(command,command_args);
}
void on_gnome_selected(GtkWidget *self_list,GtkListBoxRow *self, gnome_theme_struct *theme);
void on_gnome_selected(GtkWidget *self_list,GtkListBoxRow *self, gnome_theme_struct *theme){
GList *list = gtk_container_get_children(GTK_CONTAINER(theme->AppsTree));
GList *iter;
for (iter=list;iter;iter=iter->next){
gnome_section *cur_section = g_object_get_data(G_OBJECT(iter->data),"gnome_section");
if (cur_section->AppsList != self_list){
g_signal_handlers_block_by_func(G_OBJECT(cur_section->AppsList),G_CALLBACK(on_gnome_selected),theme);
gtk_list_box_unselect_all(GTK_LIST_BOX(cur_section->AppsList));
g_signal_handlers_unblock_by_func(G_OBJECT(cur_section->AppsList),G_CALLBACK(on_gnome_selected),theme);
}
}
}
void on_gnome_socket_add(){
}
gnome_section *yon_gnome_section_new(){
gnome_section *cur_section = malloc(sizeof(gnome_section));
memset(cur_section,0,sizeof(cur_section));
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_gnome_section);
cur_section->expander = yon_gtk_builder_get_widget(builder,"MainExpander");
cur_section->AppsList = yon_gtk_builder_get_widget(builder,"AppsList");
return cur_section;
}
void yon_gnome_section_setup_apps(gnome_section *cur_section, const char *target){
apps *cur_app = yon_apps_get((char*)target);
GtkIconInfo *info = gtk_icon_theme_lookup_icon_for_scale(gtk_icon_theme_get_default(), !yon_char_is_empty(cur_app->Icon)?cur_app->Icon:icon_path, main_config.apps_icon_size,1,GTK_ICON_LOOKUP_FORCE_SIZE);
GtkWidget *Image = NULL;
if (info){
Image = gtk_image_new_from_pixbuf(gtk_icon_info_load_icon(info,NULL));
} else {
info = gtk_icon_theme_lookup_icon_for_scale(gtk_icon_theme_get_default(), icon_path, main_config.apps_icon_size,1,GTK_ICON_LOOKUP_FORCE_SIZE);
Image = gtk_image_new_from_pixbuf(gtk_icon_info_load_icon(info,NULL));
}
GtkWidget *Label = gtk_label_new(cur_app->Name);
GtkWidget *Row = gtk_list_box_row_new();
GtkWidget *Box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,5);
gtk_container_add(GTK_CONTAINER(Row),Box);
gtk_box_pack_start(GTK_BOX(Box),Image,0,0,0);
gtk_box_pack_start(GTK_BOX(Box),Label,0,0,0);
gtk_label_set_xalign(GTK_LABEL(Label),0);
gtk_list_box_insert(GTK_LIST_BOX(cur_section->AppsList),Row,-1);
g_object_set_data(G_OBJECT(Row),"gnome_section",cur_section);
g_object_set_data(G_OBJECT(Row),"apps",cur_app);
gtk_widget_show_all(Row);
}
void yon_gnome_section_setup(gnome_theme_struct *theme,app_section *section){
gnome_section *cur_section = yon_gnome_section_new();
cur_section->section = section;
gtk_expander_set_label(GTK_EXPANDER(cur_section->expander),section->name);
int app_size;
config_str app_list = yon_apps_get_by_categories(section->categories,section->categories_size,&app_size);
for(int i=0;i<app_size;i++){
yon_gnome_section_setup_apps(cur_section,app_list[i]);
}
gtk_box_pack_start(GTK_BOX(theme->AppsTree),cur_section->expander,0,0,0);
g_object_set_data(G_OBJECT(cur_section->expander),"gnome_section",cur_section);
g_signal_connect(G_OBJECT(cur_section->AppsList),"row-activated",G_CALLBACK(on_gnome_activate),theme);
g_signal_connect(G_OBJECT(cur_section->AppsList),"row-selected",G_CALLBACK(on_gnome_selected),theme);
}
int yon_gnome_update(gnome_theme_struct *theme){
if (!main_config.sections) return 0;
GList *list = gtk_container_get_children(GTK_CONTAINER(theme->AppsTree));
GList *iter;
for (iter=list;iter;iter=iter->next){
gnome_section *cur_section = g_object_get_data(G_OBJECT(iter->data),"gnome_section");
gtk_widget_destroy(cur_section->expander);
free(cur_section);
}
int size;
dictionary *cur;
for_dictionaries(cur,main_config.sections){
app_section *section_data = yon_dictionary_get_data(cur,app_section*);
yon_gnome_section_setup(theme,section_data);
}
return 1;
}
gnome_theme_struct *yon_gnome_theme_new(){
gnome_theme_struct *theme = malloc(sizeof(gnome_theme_struct));
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_gnome_theme);
theme->MainBox = yon_gtk_builder_get_widget(builder,"MainBox");
theme->AppsTree = yon_gtk_builder_get_widget(builder,"AppsTree");
theme->SocketBox = yon_gtk_builder_get_widget(builder,"SocketBox");
theme->GnomePaned = yon_gtk_builder_get_widget(builder,"GnomePaned");
theme->GnomeInfoLogoImage = yon_gtk_builder_get_widget(builder,"GnomeInfoLogoImage");
theme->HideBox = yon_gtk_builder_get_widget(builder,"HideBox");
theme->IconCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"IconCell"));
theme->theme_name = yon_char_new(GNOME_THEME_LABEL);
theme->Socket = gtk_socket_new();
theme->list_update_func = (int(*)(struct gnome_theme_struct*))yon_gnome_update;
gtk_box_pack_start(GTK_BOX(theme->SocketBox),theme->Socket,1,1,0);
gtk_widget_show(theme->Socket);
g_signal_connect(G_OBJECT(theme->SocketBox),"add",G_CALLBACK(on_gnome_socket_add),theme);
// gtk_cell_renderer_set_fixed_size(theme->IconCell,main_config.apps_icon_size,main_config.apps_icon_size);
return theme;
}

@ -0,0 +1,61 @@
#include "ubl-settings-manager.h"
theme_struct *yon_theme_update(main_window *widgets){
char *theme_id;
if (!yon_window_config_get_parameter("Settings","theme",&theme_id,YON_TYPE_STRING)){
theme_id = yon_char_new(GNOME_THEME_LABEL);
}
theme_struct *theme = ((theme_struct*(*)())g_hash_table_lookup(main_config.themes,theme_id))();
if (theme){
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->ThemeBox));
GList *iter;
for (iter = list;iter;iter=iter->next){
theme_struct *cur_theme = g_object_get_data(G_OBJECT(iter->data),"theme_struct");
if (cur_theme) free(cur_theme);
gtk_widget_destroy(GTK_WIDGET(iter->data));
}
gtk_box_pack_start(GTK_BOX(widgets->ThemeBox),theme->MainBox,1,1,0);
return theme;
} else {
yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),THEME_ERROR_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
}
return NULL;
}
void yon_theme_init(){
// theme_struct *gnome_struct = (theme_struct*)yon_gnome_theme_new();
// theme_struct *main_struct = (theme_struct*)yon_main_theme_new();
g_hash_table_insert(main_config.themes,yon_char_new(GNOME_THEME_LABEL),yon_gnome_theme_new);
g_hash_table_insert(main_config.themes,yon_char_new(MAIN_THEME_LABEL),yon_main_theme_new);
}
void yon_main_update(main_theme_struct *theme){
}
void on_main_activate(){
}
void on_main_socket_add(){
}
main_theme_struct *yon_main_theme_new(){
main_theme_struct *theme = malloc(sizeof(main_theme_struct));
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_main_theme);
theme->MainBox = yon_gtk_builder_get_widget(builder,"MainBox");
theme->AppsIconView = yon_gtk_builder_get_widget(builder,"AppsIconView");
theme->SocketBox = yon_gtk_builder_get_widget(builder,"SocketBox");
theme->AppsList = GTK_LIST_STORE(gtk_builder_get_object(builder,"AppsList"));
theme->theme_name = yon_char_new(MAIN_THEME_LABEL);
theme->Socket = NULL;
theme->list_update_func = (int(*)(struct main_theme_struct*))yon_main_update;
g_signal_connect(G_OBJECT(theme->AppsIconView),"item-activated",G_CALLBACK(on_main_activate),theme);
g_signal_connect(G_OBJECT(theme->SocketBox),"add",G_CALLBACK(on_main_socket_add),theme);
return theme;
}

File diff suppressed because it is too large Load Diff

@ -20,22 +20,28 @@
#include <math.h> #include <math.h>
#include <wctype.h> #include <wctype.h>
#include <sys/stat.h> #include <sys/stat.h>
#include <libublsettings.h>
#include <libublsettings-gtk3.h>
#include <libublsettingsui-gtk3.h>
#ifdef WEBKIT_FOUND #ifdef WEBKIT_FOUND
#include <webkit2/webkit2.h> #include <webkit2/webkit2.h>
#endif #endif
#include "ubl-strings.h"
#define UBLINUX_WIKI_COMMAND "xdg-open https://wiki.ublinux.ru/ru/Программное_обеспечениерограммы_и_утилиты/Все/ubl-settings-manager" #define UBLINUX_WIKI_COMMAND "xdg-open https://wiki.ublinux.ru/ru/Программное_обеспечениерограммы_и_утилиты/Все/ubl-settings-manager"
#define UBLINUX_WIKI_LINK " https://wiki.ublinux.ru/ru/Программное_обеспечениерограммы_и_утилиты/Все/ubl-settings-manager" #define UBLINUX_WIKI_LINK " https://wiki.ublinux.ru/ru/Программное_обеспечениерограммы_и_утилиты/Все/ubl-settings-manager"
#define check_web2kit_command "ldconfig -p |grep webkit2" #define check_web2kit_command "ldconfig -p |grep webkit2"
#define cmdVersionText yon_char_get_augumented(yon_char_get_augumented(_("Version: "),version_application),"\n") #define glade_path "/com/ublinux/ui/ubl-settings-manager.glade"
#define cmdHelpText yon_char_get_augumented(yon_char_get_augumented(_("ubl-settings-manager version: "),version_application),_("\nGTK settings manager for UBLinux\nUsage: ubl-settings-manager [OPTIONS...]\nOptions:\n -h, --help Show this help\n -V, --version Show package version\n --lock-settings Lock menu settings\n")) #define glade_path_gnome_theme "/com/ublinux/ui/ubl-settings-manager-theme-gnome.glade"
#define GladePath "/com/ublinux/ui/ubl-settings-manager.glade" #define glade_path_gnome_section "/com/ublinux/ui/ubl-settings-manager-theme-gnome-section.glade"
#define glade_path_main_theme "/com/ublinux/ui/ubl-settings-manager-theme-main.glade"
#define glade_path_settings "/com/ublinux/ui/ubl-settings-manager-settings.glade"
#define CssPath "/com/ublinux/css/ubl-settings-manager.css" #define CssPath "/com/ublinux/css/ubl-settings-manager.css"
#define GlobalConfigPath "/etc/xdg/ubl-settings-manager/ubl-settings-manager.conf" #define GlobalConfigPath "/etc/xdg/ubl-settings-manager/ubl-settings-manager.conf"
#define UserConfigPath "/.config/ubl-settings-manager/ubl-settings-manager.conf" #define UserConfigPath "/.config/ubl-settings-manager/ubl-settings-manager.conf"
#define AppIconPath "com.ublinux.ubl-settings-manager" #define icon_path "com.ublinux.ubl-settings-manager"
#define AppBannerPath "/com/ublinux/images/ubl-settings-manager-banner.png" #define AppBannerPath "/com/ublinux/images/ubl-settings-manager-banner.png"
#define DesktopPath "/usr/share/applications/" #define DesktopPath "/usr/share/applications/"
#define IconPicturesPath "/usr/share/icons/hicolor/scalable/apps/" #define IconPicturesPath "/usr/share/icons/hicolor/scalable/apps/"
@ -43,56 +49,26 @@
#define LocaleName "ubl-settings-manager" #define LocaleName "ubl-settings-manager"
#define ubl_settings_infoPath "ubl-settings-info" #define ubl_settings_infoPath "ubl-settings-info"
#define ubl_settings_infoPathLaunch "ubl-settings-info --socket-id=" #define ubl_settings_infoPathLaunch "ubl-settings-info --socket-id="
typedef char* string;
string version_application;
#define UBL_SETTINGS_MANAGER_TITLE _("UBLinux Settings Manager") #define launch_command(target) yon_char_unite("xdg-open ",target,NULL)
#define UBL_SETTINGS_MANAGER_ABOUT_TITLE _("About UBLinux Settings Manager") #define launch_args_command(main_socket,load_socket,save_socket) yon_char_unite("--socket-id=",main_socket," --socket-ext-id=",save_socket," --socket-trd-id=",load_socket,NULL)
#define ABOUT_PROJECT_HOME_PAGE_LABEL _("Project Home Page")
#define ABOUT_PROJECT_COMMENTS_LABEL _("Settings manager for UBLinux") #define double_click_parameter "double_click"
#define CONFIG_LOAD_ERROR _("Config loading failed!\n") #define icon_size_parameter "icon_size"
#define DOUBLE_CLICK_SELECTION_LABEL _("Double click selection") #define theme_parameter "theme"
#define SECTIONS_MANAGEMENT_LABEL _("Sections management") #define hide_banner_parameter "hide_banner"
#define UNDERSTOOD_LABEL _("Understood")
#define ABOUT_LABEL _("About...")
#define DOCUMENTATION_LABEL _("Documentation")
#define SETTINGS_LABEL _("Settings")
#define ALWAYS_REDIRECT_LABEL _("Always redirect")
#define APPLY_LABEL _("Apply")
#define SAVE_AND_APPLY_LABEL _("Save and apply")
#define CLOSE_LABEL _("Close")
#define CANCEL_LABEL _("Cancel")
#define READ_ONLINE_LABEL _("Read online")
#define REDIRECTION_COMMENT_LABEL _("You will be redirected to documentation site, where user help pages are translated and supported by community.")
#define REDIRECTION_LABEL _("Would you like to read documentation in the Web?")
#define WINDOW_THEME_LABEL _("Window theme")
#define ICON_SIZE_LABEL _("Icon size")
#define BACK_TO_ALL_SETTINGS_LABEL _("All settings")
typedef char* string;
__attribute__((unused)) static \
string version_application;
typedef struct apps{ #define _(String) gettext(String)
char *Name;
int Type;
char *Categories;
char *Exec;
char *Icon;
int Pluggable;
int DualPluggable;
} apps;
typedef struct { typedef struct {
char *command; char *command;
int *exitcode; int *exitcode;
} thread_output; } thread_output;
typedef struct dictionary {
char *key;
void *data;
struct dictionary *next;
struct dictionary *prev;
struct dictionary *first;
} dictionary;
typedef struct IVGrapgicals{ typedef struct IVGrapgicals{
char *sectionName; char *sectionName;
char *categories; char *categories;
@ -109,33 +85,6 @@ typedef struct IconSection{
char *categories; char *categories;
} IconSection; } IconSection;
typedef struct {
int windowWidth;
int windowHeight;
int windowPosX;
int windowPosY;
int WindowTheme;
char *curThemeName;
int Mainiconsize;
int Gnomeiconsize;
int iconSegmentSize;
dictionary *sections;
int MainlabelSize;
int GnomelabelSize;
int *currentThemeLabelSize;
int *currentThemeIconSize;
int labelDensity;
char *lastUser;
int changed;
int fullscreen;
int lock_settings;
int GnomeDoubleClick;
int MainDoubleClick;
int *currentDoubleClick;
dictionary *SettingsSections;
int BannerHidden;
} config;
typedef struct { typedef struct {
GtkWidget *MainFrame; GtkWidget *MainFrame;
GtkWidget *MainBox; GtkWidget *MainBox;
@ -158,140 +107,120 @@ typedef struct {
GtkWidget *DeleditBox; GtkWidget *DeleditBox;
} SectionSettingSegment; } SectionSettingSegment;
typedef struct { typedef struct theme_struct {
GtkBuilder *builder; char *theme_name;
GtkWidget *window; GtkWidget *MainBox; //theme main box, which connects to window
dictionary *ICSys; GtkWidget *SocketBox; //main socket box, where socket is being parented to
GtkWidget *DesktopBasic; GtkWidget *HideBox; //box to hide when socket has been connected
GtkWidget *DesktopSocket; int (*list_update_func)(struct theme_struct*); //function to update theme's lits of application
GtkWidget *ButtonBackToMain; // GtkWidget *AppsTree; //theme application list container
GtkWidget *DialogOpenDocumentation; // GtkWidget *Socket;
GtkWidget *CancelHelpButton; } theme_struct;
GtkWidget *ReadHelpButton;
GtkWidget *AlwaysOpenDocumentation; typedef struct gnome_theme_struct {
GtkWidget *helpHeader; char *theme_name;
GtkWidget *helpText; GtkWidget *MainBox;
GtkWidget *appSettings; GtkWidget *SocketBox;
GtkWidget *SettingsWindow; GtkWidget *HideBox;
GtkWidget *settingsSizeSlider; int (*list_update_func)(struct gnome_theme_struct*);
GtkWidget *settingsSizeInfoLabel; GtkWidget *AppsTree;
GtkWidget *settingsThemeChooser; GtkWidget *Socket;
GtkWidget *settingsCancel;
GtkWidget *settingsAccept;
GtkWidget *settingsIcon;
GtkWidget *socket;
GtkWidget *socketplace;
GtkWidget *HideWhileLaunch;
GtkWidget *MenuItemSettings;
GtkWidget *MenuItemDocumentation;
GtkWidget *MenuItemAboutSystem;
GtkWidget *LabelTitle;
GtkWidget *settingsSubmenuLabelSize;
GtkWidget *settingsSubmenuLabelTheme;
GtkWidget *GnomePaned; GtkWidget *GnomePaned;
GtkWidget *GnomeInfoLabel; GtkWidget *GnomeInfoLogoImage;
GtkWidget *workingwindow; GtkCellRenderer *IconCell;
GtkWidget *settingsSectionsSettingsButton; } gnome_theme_struct;
GtkWidget *SectionSettingsWindow;
GtkWidget *SectionSettingsPack; typedef struct main_theme_struct {
dictionary *SettingsSections; char *theme_name;
GtkWidget *SectionSettingAddButton; GtkWidget *MainBox;
GtkWidget *SectionSettingAddNameEntry; GtkWidget *SocketBox;
GtkWidget *SectionSettingAddCategoriesEntry; GtkWidget *HideBox;
GtkWidget *SectionSettingsClearEntryButton; int (*list_update_func)(struct main_theme_struct*);
GtkWidget *SectionSettingsSaveButton; GtkWidget *AppsIconView;
GtkWidget *SectionSettingsCloseButton; GtkWidget *Socket;
GtkWidget *GnomeInfoDetailsLabel; GtkListStore *AppsList;
GtkWidget *CautionWindow; } main_theme_struct;
GtkWidget *CautionUnderstandButton;
GtkWidget *socketbuttonplace; typedef struct {
GtkWidget *socketbutton; GtkWidget *Window;
GtkWidget *Overlay; GtkWidget *StatusBox;
GtkWidget *ThirdSocketPlace; GtkWidget *TitleLabel;
GtkWidget *ThirdSocket; GtkWidget *ThemeBox;
int appssize; GtkWidget *SocketBox;
apps *applist; GtkWidget *BackButton;
GtkWidget *icvpack; GtkWidget *SettingsButton;
GtkWidget *infoWarningWindow; GtkWidget *BannerImage;
GtkWidget *infoWarningButton; GtkWidget *BannerArrow;
GtkWidget *infoWarningLabel; GtkWidget *BannerButton;
GtkWidget *BannerRevealer; GtkWidget *BannerRevealer;
GtkWidget *Revealer;
GtkWidget *settingsDoubleClickSwitch;
GtkWidget *settingsDoubleClickLabel;
GtkWidget *BackToSettingsLabel;
} actionWidgets; GtkWidget *LoadSocket;
GtkWidget *LoadSocketBox;
GtkWidget *SaveSocket;
GtkWidget *SaveSocketBox;
GtkWidget *OptionsSocket;
GtkWidget *OptionsSocketBox;
typedef enum { GtkWidget *MainMenuItemSettings;
ACTIONWIDGETS, GtkWidget *MainMenuItemAbout;
ICONSECTION, GtkWidget *MainMenuItemDocumentation;
IVGRAPHICALS,
OTHER
} DICT_TYPE; theme_struct *current_theme;
void on_plug_added(GtkSocket* self, actionWidgets *builder); } main_window;
void on_plug_removed(GtkSocket* self, actionWidgets *widgets);
void on_Item_activated(GtkIconView* self, GtkTreePath* path, actionWidgets *applist); typedef struct {
void on_gnome_Item_activated(GtkIconView* self, GtkTreePath* path, actionWidgets *applist); template_config_fields;
void on_item_selection_changed(GtkIconView *IV, actionWidgets *widgets); int apps_icon_size;
void on_ButtonOpenHelp_activated(GtkWidget *button, GtkBuilder *builder); dictionary *sections;
void on_backToSettingsButton_clicked(GtkWidget *button,actionWidgets *sctb); int labelDensity;
void on_CancelHelpButton_activated(GtkWidget *button,GtkBuilder *builder); int lock_settings;
void on_ReadHelpButton_activated(GtkWidget *button, GtkBuilder *builder); int double_click;
int launch_app_with_arguments(char *name, char *args); dictionary *SettingsSections;
int launch_app(char *name); int banner_hidden;
int py_launch_app(char *name,char *args);
int on_settings_accept(GtkWidget *button, dictionary **widgetsDs); main_window *widgets;
void on_paned_move(GtkPaned* self, GtkScrollType* scroll_type, actionWidgets *widgets);
int on_settingsOpen(GtkWidget *button, actionWidgets *widgets); GHashTable *themes;
int on_settings_icon_size_changed(GtkWidget* self, actionWidgets *widgets); } config;
int on_settings_cancel(GtkWidget *button, actionWidgets *widgets);
apps *get_app_by_name(apps *applist,char *name, int size); extern config main_config;
int reload_list(IVGraphicals *section);
int load_apps(IVGraphicals *section, apps *applist, int size); typedef struct {
int load_apps_with_clear(IVGraphicals *section, apps *applist, int size); char *name;
int hide_if_unfound(dictionary *widgetsDc); int categories_size;
GtkWidget *create_socket(actionWidgets *builder); config_str categories;
void sort_apps(apps *applist,int size); } app_section;
apps *find_apps(int *sizef);
int check_categories(apps app, char *catstocheck); typedef struct {
int setup_config(); GtkWidget *Window;
void update_double_clicks(dictionary *widgetsD); GtkWidget *SizeSlider;
void yon_icv_resize_item(dictionary *icdict, GtkWidget *paned); GtkWidget *SizeLabel;
dictionary *yon_theme_new(dictionary **widgetss, GtkBuilder *builder, char *theme_id, apps *applist, int appsize); GtkWidget *SizeIcon;
char *yon_char_get_augumented(char *source, char *append); GtkWidget *ThemeCombo;
char *yon_cut(char *source, int size, int startpos); GtkWidget *DoubleClickSwitch;
int yon_set_sections(IconSection *section); GtkWidget *SectionsConfigurationButton;
void yon_set_default_sections(dictionary *section); GtkWidget *CancelButton;
char *yon_char_divide_search(char *source, char* dividepos, int delete_divider); GtkWidget *AcceptButton;
char *yon_char_divide(char *source, int dividepos);
dictionary *yon_section_new(dictionary *section, char *section_name, char *categories); int icon_size;
void yon_switch_theme(dictionary **dict, dictionary *newone); } settings_window;
dictionary *yon_dictionary_find(dictionary **dict, char *key);
void yon_segment_show(actionWidgets *widgets, SectionSettingSegment *sgm); void on_settings_accept(GtkWidget *, settings_window *window);
dictionary *yon_dictionary_create_empty(); void yon_theme_init();
dictionary *yon_dictionary_rip(dictionary *dict); theme_struct *yon_theme_update(main_window *widgets);
dictionary *yon_dictionary_get_last(dictionary *dict); gnome_theme_struct *yon_gnome_theme_new();
dictionary *yon_dictionary_switch_places(dictionary *dict,int aim); main_theme_struct *yon_main_theme_new();
dictionary *yon_dictionary_create_with_data(char *key, void *data); app_section *yon_app_section_new();
dictionary *yon_dictionary_create_with_data_connected(dictionary *dict, char *key, void *data); gnome_theme_struct *yon_gnome_theme_new();
dictionary *yon_dictionary_connect(dictionary *old, dictionary *toconnect); char *yon_get_save_socket();
SectionSettingSegment *yon_create_section_setting(char *name, char *categories); char *yon_get_load_socket();
void yon_segments_show(actionWidgets *widgets); GtkSocket *yon_sockets_init(GtkBox *socketBox);
void yon_segments_hide(actionWidgets *widgets); void on_plug_disconnected(GtkSocket *self, main_window *widgets);
void yon_dictionary_make_first(dictionary *dict); int yon_char_parsed_compare(const void *a, const void *b);
dictionary *yon_create_icon_section_list(dictionary *sections);
int yon_show_icon_views(dictionary *IVS,actionWidgets *widgets); void yon_interface_update(main_window *widgets);
void yon_icon_size_convert(int mode);
char *yon_char_new(char *chr); void on_settings_open(GtkWidget *, main_window *widgets);
int launch(thread_output *thread);
float yon_time_average(dictionary *times);
void yon_time_reg_for_average(dictionary *listofregs, int size, time_t tm);
void yon_dictionary_switch_to_last(dictionary **dict);
dictionary *yon_dictionary_create_conneced(dictionary *targetdict);
int yon_get_icon_size(int size);
char *yon_char_from_int(int int_to_convert);
#endif #endif

@ -0,0 +1,26 @@
#define TITLE_LABEL _("UBLinux Settings Manager")
#define TITLE_INFO_LABEL _("About UBLinux Settings Manager")
#define WIKI_LINK _("https://wiki.ublinux.ru/software/programs_and_utilities/all/ubl-settings-manager")
#define ABOUT_PROJECT_COMMENTS_LABEL _("Settings manager for UBLinux")
#define CONFIG_LOAD_ERROR _("Config loading failed!\n")
#define DOUBLE_CLICK_SELECTION_LABEL _("Double click selection")
#define SECTIONS_MANAGEMENT_LABEL _("Sections management")
#define UNDERSTOOD_LABEL _("Understood")
#define SETTINGS_LABEL _("Settings")
#define APPLY_LABEL _("Apply")
#define SAVE_AND_APPLY_LABEL _("Save and apply")
#define CLOSE_LABEL _("Close")
#define CANCEL_LABEL _("Cancel")
#define READ_ONLINE_LABEL _("Read online")
#define REDIRECTION_COMMENT_LABEL _("You will be redirected to documentation site, where user help pages are translated and supported by community.")
#define REDIRECTION_LABEL _("Would you like to read documentation in the Web?")
#define WINDOW_THEME_LABEL _("Window theme")
#define ICON_SIZE_LABEL _("Icon size")
#define BACK_TO_ALL_SETTINGS_LABEL _("All settings")
#define THEME_ERROR_LABEL _("Failed to load theme")
#define MAIN_THEME_LABEL _("Main theme")
#define GNOME_THEME_LABEL _("GNOME theme")

@ -0,0 +1,299 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<interface domain="ubl-settings-manager">
<requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubl-settings-manager.css -->
<object class="GtkWindow" id="SectionSettingsWindow">
<property name="can-focus">False</property>
<property name="default-width">800</property>
<property name="default-height">600</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkBox" id="SectionSettingsPack">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="orientation">vertical</property>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkFrame">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="label-xalign">0.019999999552965164</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkAlignment">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="top-padding">3</property>
<property name="bottom-padding">3</property>
<property name="left-padding">5</property>
<property name="right-padding">5</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkButton" id="SectionSettingsClearEntryButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="halign">center</property>
<property name="margin-right">3</property>
<property name="margin-end">3</property>
<property name="image">image2</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="SectionSettingsAddNameEntry">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="truncate-multiline">True</property>
<property name="caps-lock-warning">False</property>
<property name="placeholder-text" translatable="yes">Section name</property>
<property name="input-purpose">name</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="valign">center</property>
<child>
<object class="GtkButton" id="SectionSettingsAddButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="margin-right">5</property>
<property name="margin-end">5</property>
<property name="image">image4</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">2</property>
<child>
<object class="GtkEntry" id="SectionSettingsAddCategoriesEntry">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="margin-left">5</property>
<property name="margin-right">10</property>
<property name="margin-start">5</property>
<property name="margin-end">10</property>
<property name="caps-lock-warning">False</property>
<property name="placeholder-text" translatable="yes">Identifier</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<child type="label_item">
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkButton" id="SectionSettingsSaveButton">
<property name="label" translatable="yes">Save and apply</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="margin-right">5</property>
<property name="margin-end">5</property>
<property name="margin-bottom">5</property>
<property name="image">image7</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="SectionSettingsCloseButton">
<property name="label" translatable="yes">Close</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="margin-right">15</property>
<property name="margin-end">15</property>
<property name="margin-bottom">5</property>
<property name="image">image6</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
<child type="titlebar">
<object class="GtkHeaderBar" id="SettingsBar2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child type="title">
<object class="GtkLabel" id="sectionsHeaderNameLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">UBLinux Settings Manager</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
</child>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="pixel-size">32</property>
<property name="icon-name">com.ublinux.ubl-settings-manager</property>
<property name="icon_size">5</property>
</object>
</child>
</object>
</child>
</object>
<object class="GtkImage" id="image2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="pixel-size">16</property>
<property name="icon-name">user-trash-symbolic</property>
</object>
<object class="GtkImage" id="image4">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="pixel-size">16</property>
<property name="icon-name">object-select-symbolic</property>
</object>
<object class="GtkImage" id="image6">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">process-stop-symbolic</property>
</object>
<object class="GtkImage" id="image7">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">emblem-ok-symbolic</property>
</object>
</interface>

@ -0,0 +1,295 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<interface domain="ubl-settings-manager">
<requires lib="gtk+" version="3.24"/>
<object class="GtkAdjustment" id="adjustment1">
<property name="lower">24</property>
<property name="upper">64</property>
<property name="value">24</property>
<property name="step-increment">8</property>
<property name="page-increment">8</property>
</object>
<object class="GtkImage" id="image8">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.cancel-uncolored-symbolic</property>
</object>
<object class="GtkImage" id="image9">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.accept-symbolic</property>
</object>
<object class="GtkWindow" id="Window">
<property name="can-focus">False</property>
<property name="modal">True</property>
<property name="icon-name">com.ublinux.ubl-settings-manager</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkFrame">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label-xalign">0.019999999552965164</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkAlignment">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="top-padding">5</property>
<property name="bottom-padding">5</property>
<property name="left-padding">5</property>
<property name="right-padding">5</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">10</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel" id="SizeLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="ypad">5</property>
<property name="label" translatable="yes">32x32</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkScale" id="SizeSlider">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="adjustment">adjustment1</property>
<property name="fill-level">64</property>
<property name="round-digits">0</property>
<property name="digits">0</property>
<property name="draw-value">False</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkImage" id="SizeIcon">
<property name="width-request">64</property>
<property name="height-request">64</property>
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="pixel-size">32</property>
<property name="icon-name">com.ublinux.ubl-settings-manager</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel" id="settingsSubmenuLabelSize">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="label" translatable="yes">Icon size</property>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkFrame">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label-xalign">0.019999999552965164</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkAlignment">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="top-padding">5</property>
<property name="bottom-padding">5</property>
<property name="left-padding">5</property>
<property name="right-padding">5</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkComboBoxText" id="ThemeCombo">
<property name="name">combo</property>
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
<property name="active">0</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel" id="settingsSubmenuLabelTheme">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="label" translatable="yes">Window theme</property>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel" id="settingsDoubleClickLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="valign">center</property>
<property name="label" translatable="yes">Double click selection</property>
<property name="xalign">0.019999999552965164</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkSwitch" id="DoubleClickSwitch">
<property name="visible">True</property>
<property name="can-focus">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkButton" id="SectionsConfigurationButton">
<property name="label" translatable="yes">Sections management</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
</object>
</child>
<child type="titlebar">
<object class="GtkHeaderBar">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child type="title">
<object class="GtkLabel" id="TitleLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">UBLinux Settings Manager</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
</child>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="pixel-size">32</property>
<property name="icon-name">com.ublinux.ubl-settings-manager</property>
<property name="icon_size">5</property>
</object>
</child>
<child>
<object class="GtkButton" id="CancelButton">
<property name="label" translatable="yes">Close</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image8</property>
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="AcceptButton">
<property name="label" translatable="yes">Apply</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image9</property>
</object>
<packing>
<property name="pack-type">end</property>
<property name="position">2</property>
</packing>
</child>
</object>
</child>
</object>
</interface>

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<interface domain="ubl-settings-manager">
<requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubl-settings-manager.css -->
<object class="GtkExpander" id="MainExpander">
<property name="visible">True</property>
<property name="can-focus">True</property>
<child>
<object class="GtkListBox" id="AppsList">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">5</property>
<property name="activate-on-single-click">False</property>
<style>
<class name="separatorTop"/>
</style>
</object>
</child>
<child type="label">
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">expander</property>
</object>
</child>
</object>
</interface>

@ -0,0 +1,176 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<interface domain="ubl-settings-manager">
<requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubl-settings-manager.css -->
<object class="GtkTreeStore" id="AppsStore">
<columns>
<!-- column-name Name -->
<column type="gchararray"/>
<!-- column-name Icon -->
<column type="GdkPixbuf"/>
<!-- column-name Description -->
<column type="gchararray"/>
</columns>
</object>
<object class="GtkBox" id="MainBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkPaned" id="GnomePaned">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="position">256</property>
<property name="position-set">True</property>
<property name="wide-handle">True</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkSearchEntry" id="SearchEntry">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="primary-icon-name">edit-find-symbolic</property>
<property name="primary-icon-activatable">False</property>
<property name="primary-icon-sensitive">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="AppsTree">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="resize">False</property>
<property name="shrink">True</property>
</packing>
</child>
<child>
<object class="GtkBox" id="GnomeMainBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkBox" id="HideBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkFrame">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-right">3</property>
<property name="label-xalign">0</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkAlignment">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">center</property>
<property name="valign">center</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">center</property>
<property name="valign">center</property>
<child>
<object class="GtkImage" id="GnomeInfoLogoImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="pixel-size">156</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<child type="label_item">
<placeholder/>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="SocketBox">
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="resize">True</property>
<property name="shrink">True</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">0</property>
</packing>
</child>
</object>
</interface>

@ -0,0 +1,60 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<interface>
<requires lib="gtk+" version="3.24"/>
<object class="GtkListStore" id="liststoreTemplate">
<columns>
<!-- column-name gchararray1 -->
<column type="gchararray"/>
<!-- column-name gfloat1 -->
<column type="gfloat"/>
<!-- column-name gfloat2 -->
<column type="gfloat"/>
<!-- column-name gint1 -->
<column type="gint"/>
<!-- column-name GdkPixbuf1 -->
<column type="GdkPixbuf"/>
<!-- column-name gint2 -->
<column type="gint"/>
</columns>
</object>
<object class="GtkIconView" id="iconTemplate">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="margin">4</property>
<property name="hscroll-policy">natural</property>
<property name="item-orientation">horizontal</property>
<property name="model">liststoreTemplate</property>
<property name="item-width">135</property>
<property name="row-spacing">0</property>
<property name="column-spacing">2</property>
<property name="item-padding">5</property>
<property name="activate-on-single-click">True</property>
<child>
<object class="GtkCellRendererPixbuf" id="iconPic">
<property name="xpad">2</property>
</object>
<attributes>
<attribute name="width">5</attribute>
<attribute name="height">3</attribute>
<attribute name="xalign">1</attribute>
<attribute name="yalign">2</attribute>
<attribute name="pixbuf">4</attribute>
</attributes>
</child>
<child>
<object class="GtkCellRendererText">
<property name="xalign">0</property>
<property name="wrap-mode">word</property>
<property name="wrap-width">130</property>
</object>
<attributes>
<attribute name="height">3</attribute>
<attribute name="text">0</attribute>
</attributes>
</child>
<style>
<class name="workingbg"/>
</style>
</object>
</interface>

@ -0,0 +1,69 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<interface domain="ubl-settings-manager">
<requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubl-settings-manager.css -->
<object class="GtkListStore" id="AppsList"/>
<object class="GtkBox" id="MainBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkBox" id="HideBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkScrolledWindow">
<property name="width-request">5</property>
<property name="height-request">5</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="resize-mode">immediate</property>
<property name="hscrollbar-policy">never</property>
<property name="vscrollbar-policy">always</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkIconView" id="AppsIconView">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="margin">6</property>
<property name="model">AppsList</property>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="SocketBox">
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<placeholder/>
</child>
<style>
<class name="frontground"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<style>
<class name="workingbg"/>
</style>
</object>
</interface>

@ -1,145 +1,342 @@
.bannerbackground { .thin {
background-color: #404040; margin:0px;
padding:0px;
}
.noborder {
border:none;
} }
.borders *{
border-width:0.5px;
border-style: solid;
.thin{
padding:0px;
margin:0px;
transition: 0ms ease-out;
} }
.thin:active { .nobackground {
background-color: @theme_selected_bg_color; background:transparent;
transition: 10ms ease-out; }
.nobackground:active {
background:transparent;
} }
.transparent { .textHead{
background:none; text-shadow: 2px 2px @theme_bg_color;
border:none; color: @theme_text_color;
transition: 0ms ease-out;
} }
#GnomeIcon{ .bggrey{
border-radius:5px;
border-color:@theme_text_color;
border-style:solid; border-style:solid;
border-bottom-width: 1px; border-width:0.3px;
border-image: linear-gradient(90deg, alpha(@theme_text_color,0.4) 55%, alpha(@theme_bg_color, 0) 100%); box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.15);
border-image-slice: 1;
} }
#SepIcon{ .inherited>* {
background-color: alpha(@theme_text_color, 0.6); border:none;
background:inherit;
}
.workingbg {
background:@theme_base_color;
} }
.menuitembottom{
margin-top:0px;
margin-bottom:3px;
border-color:inherit;
border-left-width:inherit;
border-right-width:inherit;
}
.menuitemmiddle{
margin-top:0px;
margin-bottom:0px;
border-color:inherit;
border-left-width:inherit;
border-right-width:inherit;
}
#iconlabel { .menuitemtop{
font-size:14px; margin-bottom:0px;
font-weight: bold; border-color:inherit;
border-top-width:inherit;
border-left-width:inherit;
border-right-width:inherit;
}
.menuitemtop >*{
margin:4px 2px 0 2px;
padding: 3px 10px 3px 5px;
border:transparent;
}
.menuitemmiddle >*{
margin:0 2px 0 2px;
padding: 3px 10px 3px 5px;
border:transparent;
}
.menuitembottom >*{
margin:0 2px 2px 2px;
padding: 3px 10px 3px 5px;
}
.menuitemtop:hover {
background:@theme_bg_color;
border-color:inherit;
border-top-width:inherit;
border-left-width:inherit;
border-right-width:inherit;
}
.menuitemmiddle:hover {
background:@theme_bg_color;
border-color:inherit;
border-left-width:inherit;
border-right-width:inherit;
}
.menuitembottom:hover {
background:@theme_bg_color;
border-color:inherit;
border-bottom-width:0px;
border-left-width:inherit;
border-right-width:inherit;
}
.menuitemtop:hover>* {
margin:4px 2px 0 2px;
padding: 3px 10px 3px 5px;
background:@theme_selected_bg_color;
border-radius:2px;
}
.menuitemmiddle:hover>* {
margin:0 2px 0 2px;
padding: 3px 10px 3px 5px;
background:@theme_selected_bg_color;
border-radius:2px;
}
.menuitembottom:hover>* {
margin:0 2px 2px 2px;
padding: 3px 10px 3px 5px;
background:@theme_selected_bg_color;
border-radius:2px;
}
.boxInfoMessError{
background-color: #ea9999;
} }
.roundborder > * {
border-width:0px; .boxInfoMessOK{
background-color: #f3f0ac;
} }
.roundborder:backdrop > * {
border-width:0px; .boxInfoMessGray{
border-radius:5px; background-color: darker(@theme_bg_color);
} }
.noborder { .errorBox {
border: none; border-width: 2px;
border-color: #ea9999;
border-style:solid;
} }
.menuitembottom{ .chosenOutline{
margin-top:0px; transition: 0ms;
margin-bottom:3px; border-width: 1px;
border-color:inherit; border-color: #f3f0ac;
border-left-width:inherit; border-style:solid;
border-right-width:inherit; }
.separatorTop{
border-color: darker (@theme_bg_color);
border-top-width:1px;
border-style:solid;
}
.separatorBottom{
border-color: darker (@theme_bg_color);
border-bottom-width:1px;
border-style:solid;
}
.marginright image{
margin-right: 2px;
}
.spinner_image{
-gtk-icon-transform: scale(2);
}
treeview row:nth-child(odd) { background-color: #000000; }
treeview row:nth-child(even) { background-color: #ffffff; }
.blackbg {
background-color: @theme_text_color;
} }
.menuitemmiddle{
margin-top:0px; .toggletabs {
margin-bottom:0px; background-color: @background_color;
border-color:inherit; border:none;
border-left-width:inherit; border-radius:0px;
border-right-width:inherit; transition:0;
padding-top:7px;
padding-bottom:7px;
} }
.menuitemtop{ .toggletabs:disabled {
margin-bottom:0px; background-color: @background_color;
border-color:inherit; border:none;
border-top-width:inherit; border-radius:0px;
border-left-width:inherit; transition:0;
border-right-width:inherit; padding-top:7px;
padding-bottom:7px;
opacity:1;
} }
.menuitemtop *{
margin:2px 2px 0 2px; .toggletabs:checked:disabled {
padding: 5px 10px 3px 5px; background:@theme_base_color;
border:transparent; border-radius:0px;
color:@theme_text_color;
padding-top:7px;
padding-bottom:7px;
opacity:1;
} }
.menuitemmiddle *{
margin:0 2px 0 2px; .toggletabs:checked:disabled>* {
padding: 3px 10px 3px 5px; background:@theme_base_color;
border:transparent; color:@theme_text_color;
opacity:1;
} }
.menuitembottom *{
margin:0 2px 2px 2px;
padding: 3px 10px 5px 5px; .toggletabs:checked:active:disabled {
background:@theme_base_color;
border-radius:0px;
color:inherit;
padding-top:7px;
padding-bottom:7px;
opacity:1;
} }
.menuitemtop:hover {
background:@theme_bg_color;
border-color:inherit; .toggletabs:disabled:active {
border-top-width:inherit; background-color: @theme_base_color;
border-left-width:inherit; border:none;
border-right-width:inherit; border-radius:0px;
transition:0;
padding-top:7px;
padding-bottom:7px;
color:black;
opacity:1;
} }
.menuitemmiddle:hover { .toggletabs:active {
background:@theme_bg_color; background-color: @theme_base_color;
border-color:inherit; border:none;
border-left-width:inherit; border-radius:0px;
border-right-width:inherit; transition:0;
padding-top:7px;
padding-bottom:7px;
color:inherit;
opacity:1;
} }
.menuitembottom:hover {
background:@theme_bg_color;
border-color:inherit;
border-bottom-width:0px;
border-left-width:inherit;
border-right-width:inherit;
.menubox {
background-color:@theme_text_color;
}
.menubox *{
color:@theme_base_color;
}
.bggrey{
border-radius:5px;
border-color:@theme_text_color;
border-style:solid;
border-width:0.3px;
box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.15);
} }
.menuitemtop:hover* {
margin:2px 2px 0 2px; .tag_red{
padding: 5px 10px 3px 5px; border-radius: 2px;
background:@theme_selected_bg_color; border-width: 0.5px;
border-radius:2px; border-style: solid;
padding:2px 5px;
color:#660000;
border-color: #cf2a27;
background-color:#ea9999
} }
.menuitemmiddle:hover* { .tag_blue{
margin:0 2px 0 2px; border-radius: 2px;
padding: 3px 10px 3px 5px; border-width: 0.5px;
background:@theme_selected_bg_color; border-style: solid;
border-radius:2px; padding:2px 5px;
color:#073763;
border-color: #2b78e4;
background-color:#9fc5f8
} }
.menuitembottom:hover* { .tag_purple{
margin:0 2px 2px 2px; border-radius: 2px;
padding: 3px 10px 5px 5px; border-width: 0.5px;
background:@theme_selected_bg_color; border-style: solid;
border-radius:2px; padding:2px 5px;
color:#073763;
border-color: #9900ff;
background-color:#b4a7d6
} }
.tag_orange{
border-radius: 2px;
border-width: 0.5px;
border-style: solid;
padding:2px 5px;
color:#783f04;
border-color: #ff9900;
.workingbg, #workingbg { background-color:#f9cb9c
background-color:@theme_base_color;
} }
.tag_yellow{
border-radius: 2px;
border-width: 0.5px;
border-style: solid;
padding:2px 5px;
color:#7f6000;
border-color: #bf9000;
.workingbg.view.cell:selected { background-color:#ffe599
background-color:@theme_selected_bg_color;
} }
.tag_green{
border-radius: 2px;
border-width: 0.5px;
border-style: solid;
padding:2px 5px;
border-color: #009e0f;
background-color:#b6d7a8;
color:#274e13;
}
.tag_grey{
border-radius: 2px;
border-width: 0.5px;
border-style: solid;
padding:2px 5px;
color:#5f5f5f;
border-color: #777777;
.workingbg.view.cell:hover { background-color:#999999
background-color:darker(@theme_selected_bg_color);
color:@theme_selected_text_color;
border-radius:3px;
} }
.bkim { .tableborderbottom {
transition: 200ms ease-out; border-bottom:0.5px;
background-image: none; border-style: solid;
border-color: @theme_fg_color;
} }
button { button {
min-width: 26px; min-width: 26px;
min-height: 24px; min-height: 24px;
} }
.unsensitiveblock:disabled {
opacity:1;
background:@theme_selected_bg_color;
}
.bannerbackground {
background-color: #404040;
}
.sharpborder {
border-radius: 0px;
}
.instant {
transition-duration: 0ms;
}

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save