From 69906a77cd2354012192500f06a2eb8fd35a0965 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 11 Sep 2023 10:41:38 +0600 Subject: [PATCH] Fixes --- source/ublexec.c | 36 +++++++++++++++++----- source/ublexec.h | 5 ++- ublexec.css | 48 ++++++++++++++++++++++++++++- ublexec.glade | 80 +++++++++++++++++++++++++++++++++++++++++------- 4 files changed, 149 insertions(+), 20 deletions(-) diff --git a/source/ublexec.c b/source/ublexec.c index 3de1052..087a102 100644 --- a/source/ublexec.c +++ b/source/ublexec.c @@ -123,7 +123,7 @@ void on_application_chooser_open(GtkWidget *self, main_window *widgets){ } void on_user_changed(GtkWidget *self, main_window *widgets){ - GtkAdjustment *adj = gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(widgets->prioritySpin)); + GtkAdjustment *adj = gtk_range_get_adjustment(GTK_RANGE(widgets->priorityScale)); if (gtk_combo_box_get_active(GTK_COMBO_BOX(self))==0){ gtk_adjustment_set_lower(adj,-20); gtk_label_set_text(GTK_LABEL(widgets->highestPriorityLabel),PRIORITY_ROOT_LABEL); @@ -151,7 +151,7 @@ void on_user_activate(GtkToggleButton *self, main_window *widgets){ } void on_user_switching(GtkToggleButton *self, main_window *widgets){ - GtkAdjustment *adj = gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(widgets->prioritySpin)); + GtkAdjustment *adj = gtk_range_get_adjustment(GTK_RANGE(widgets->priorityScale)); if (gtk_toggle_button_get_active(self)){ if (!gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->runWithUserCombo))){ gtk_adjustment_set_lower(adj,-20); @@ -180,7 +180,7 @@ void on_setup_command(GtkWidget *self, main_window *widgets){ int su_check = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->runWithUserSuCheck)); int sudo_check = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->runWithUserSudoCheck)); int priority_check = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->priorityCheck)); - char *priority = priority_check ? yon_char_append(" --priority=",yon_char_from_long(gtk_spin_button_get_value(GTK_SPIN_BUTTON(widgets->prioritySpin)))) : ""; + char *priority = priority_check ? yon_char_append(" --priority=",yon_char_from_long(gtk_adjustment_get_value(gtk_range_get_adjustment(GTK_RANGE(widgets->priorityScale))))) : ""; int size; char *command = yon_char_unite(get_run_command_command, " -o", terminal_check ? yon_char_append(" --terminal=", terminal->name_simple) : "", @@ -219,7 +219,7 @@ void on_command_run(GtkWidget *self, main_window *widgets){ int su_check = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->runWithUserSuCheck)); int sudo_check = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->runWithUserSudoCheck)); int priority_check = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->priorityCheck)); - char *priority = priority_check ? yon_char_append(" --priority=",yon_char_from_long(gtk_spin_button_get_value(GTK_SPIN_BUTTON(widgets->prioritySpin)))) : ""; + char *priority = priority_check ? yon_char_append(" --priority=",yon_char_from_long(gtk_adjustment_get_value(gtk_range_get_adjustment(GTK_RANGE(widgets->priorityScale))))) : ""; int size; char *command = yon_char_unite(get_run_command_command, terminal_check ? yon_char_append(" --terminal=", terminal->name_simple) : "", @@ -254,6 +254,22 @@ void config_init(){ main_config.lock_save_local=0; } +void on_adjustment_changed(GtkAdjustment *self, main_window *widgets){ + gtk_entry_set_text(GTK_ENTRY(widgets->prioritySpinEntry),yon_char_from_long(gtk_adjustment_get_value(self))); +} + +void on_adjustment_increase(GtkWidget *self, main_window *widgets) { + long current = gtk_adjustment_get_value(gtk_range_get_adjustment(GTK_RANGE(widgets->priorityScale))); + current ++; + gtk_adjustment_set_value(gtk_range_get_adjustment(GTK_RANGE(widgets->priorityScale)),current); +} + +void on_adjustment_decrease(GtkWidget *self, main_window *widgets) { + long current = gtk_adjustment_get_value(gtk_range_get_adjustment(GTK_RANGE(widgets->priorityScale))); + current --; + gtk_adjustment_set_value(gtk_range_get_adjustment(GTK_RANGE(widgets->priorityScale)),current); +} + main_window *setup_window(){ /* Widgets getting | Получение виджетов */ main_window *widgets = malloc(sizeof(main_window)); @@ -279,7 +295,9 @@ main_window *setup_window(){ widgets->priorityCheck = yon_gtk_builder_get_widget(builder,"priorityCheck"); widgets->priorityScale = yon_gtk_builder_get_widget(builder,"priorityScale"); - widgets->prioritySpin = yon_gtk_builder_get_widget(builder,"prioritySpin"); + widgets->prioritySpinEntry = yon_gtk_builder_get_widget(builder,"prioritySpinEntry"); + widgets->prioritySpinIncreaseButton = yon_gtk_builder_get_widget(builder,"prioritySpinIncreaseButton"); + widgets->prioritySpinDecreaseButton = yon_gtk_builder_get_widget(builder,"prioritySpinDecreaseButton"); widgets->highestPriorityLabel = yon_gtk_builder_get_widget(builder,"highestPriorityLabel"); widgets->commandCheck = yon_gtk_builder_get_widget(builder,"commandCheck"); @@ -311,7 +329,7 @@ main_window *setup_window(){ g_signal_connect(G_OBJECT(widgets->chooseDesktopButton),"clicked",G_CALLBACK(on_application_chooser_open),widgets); g_signal_connect(G_OBJECT(widgets->priorityCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),widgets->priorityScale); - g_signal_connect(G_OBJECT(widgets->priorityCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),widgets->prioritySpin); + g_signal_connect(G_OBJECT(widgets->priorityCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),gtk_widget_get_parent(widgets->prioritySpinEntry)); g_signal_connect(G_OBJECT(widgets->runWithUserCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),widgets->runWithUserPkexecCheck); g_signal_connect(G_OBJECT(widgets->runWithUserCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),widgets->runWithUserSuCheck); @@ -339,8 +357,12 @@ main_window *setup_window(){ g_signal_connect(G_OBJECT(widgets->priorityCheck),"toggled",G_CALLBACK(on_setup_command),widgets); g_signal_connect(G_OBJECT(widgets->priorityScale),"value-changed",G_CALLBACK(on_setup_command),widgets); + g_signal_connect(G_OBJECT(widgets->prioritySpinIncreaseButton),"clicked",G_CALLBACK(on_adjustment_increase),widgets); + g_signal_connect(G_OBJECT(widgets->prioritySpinDecreaseButton),"clicked",G_CALLBACK(on_adjustment_decrease),widgets); + + g_signal_connect(G_OBJECT(gtk_range_get_adjustment(GTK_RANGE(widgets->priorityScale))),"value-changed",G_CALLBACK(on_adjustment_changed),widgets); + g_signal_connect(G_OBJECT(widgets->runButton),"clicked",G_CALLBACK(on_command_run),widgets); - int size; gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->runWithUserCombo),"root"); gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->runWithUserCombo),0); diff --git a/source/ublexec.h b/source/ublexec.h index 88d1603..f8e8072 100644 --- a/source/ublexec.h +++ b/source/ublexec.h @@ -1,5 +1,6 @@ #include #include +#include #include "ubl-utils.h" #include #include @@ -97,7 +98,9 @@ typedef struct { GtkWidget *runWithUserCombo; GtkWidget *priorityCheck; GtkWidget *priorityScale; - GtkWidget *prioritySpin; + GtkWidget *prioritySpinEntry; + GtkWidget *prioritySpinIncreaseButton; + GtkWidget *prioritySpinDecreaseButton; GtkWidget *highestPriorityLabel; GtkWidget *commandCheck; diff --git a/ublexec.css b/ublexec.css index f8f987c..87942db 100644 --- a/ublexec.css +++ b/ublexec.css @@ -2,22 +2,27 @@ text-shadow: 2px 2px @theme_bg_color; color: @theme_text_color; } + .thin { margin:0px; padding:0px; } + .bannerbackground { background-color: #404040; } + .view_app { background-color: @theme_bg_color; } + .view_app.view.cell:selected { background-color:@theme_selected_bg_color; color:@theme_selected_text_color; transition: 10ms ease-out; border-radius: 3px; } + .boxInfoMessError{ background-color: #ea9999; } @@ -25,6 +30,7 @@ .boxInfoMessOK{ background-color: #f3f0ac; } + #GnomeIcon{ border-style:solid; border-bottom-width: 1px; @@ -39,28 +45,34 @@ #iconlabel { font-size:14px; font-weight: bold; - } + .roundborder * { border-width:0px; border-radius:5px; } + .noborder { border: none; } + .menu:hover { border-color:alpha(@theme_text_color, 0.01); } + .menu { border-color:alpha(@theme_text_color, 0.01); } + .menu:hover >* { border-color:alpha(@theme_text_color, 0.01); } + .menuitembottom{ margin-top:0px; margin-bottom:3px; } + .menuitemmiddle{ margin-top:0px; margin-bottom:0px; @@ -69,30 +81,36 @@ .menuitemtop{ margin-bottom:0px; } + .menuitemtop *{ margin:2px 2px 0 2px; padding: 5px 10px 3px 5px; } + .menuitemmiddle *{ margin:0 2px 0 2px; padding: 3px 10px 3px 5px; } + .menuitembottom *{ margin:0 2px 2px 2px; padding: 3px 10px 5px 5px; } + .menuitemtop:hover { background:@theme_bg_color; border-color: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; @@ -100,18 +118,21 @@ border-right-width:inherit; } + .menuitemtop:hover* { margin:2px 2px 0 2px; padding: 5px 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 5px 5px; @@ -122,18 +143,22 @@ .workingbg, #workingbg { background-color:@theme_base_color; } + .workingbg.view.cell:selected { background-color:@theme_selected_bg_color; } + .workingbg.view.cell:hover { background-color:darker(@theme_selected_bg_color); color:@theme_selected_text_color; border-radius:3px; } + .bkim { transition: 200ms ease-out; background-image: none; } + .noborder{ border:none; } @@ -156,22 +181,43 @@ opacity:0.99; border-left-width:inherit; border-right-width:inherit; } + .aaa *{ margin:0 2px 0 2px; padding-top: 3px; padding-bottom:3px; border:transparent; } + .aaa:hover { background:@theme_bg_color; border-color:inherit; border-left-width:inherit; border-right-width:inherit; } + .aaa:hover * { margin:0 2px 0 2px; padding-top: 3px; padding-bottom:3px; background:@theme_selected_bg_color; border-radius:2px; +} + +.flatborders { + border-radius: 0px; +} + +.flatbordersleft { + border-top-left-radius: 0px; + border-bottom-left-radius: 0px; +} + +.flatbordersright { + border-top-right-radius: 0px; + border-bottom-right-radius: 0px; +} + +.noleftborder { + border-left: 0px; } \ No newline at end of file diff --git a/ublexec.glade b/ublexec.glade index b41e923..c455f4f 100644 --- a/ublexec.glade +++ b/ublexec.glade @@ -67,6 +67,7 @@ + 19 1 @@ -380,6 +381,16 @@ translated and supported by community. False media-playback-start-symbolic + + True + False + value-decrease-symbolic + + + True + False + value-increase-symbolic + @@ -941,18 +952,69 @@ translated and supported by community. - + True False - True + False center - adjustment1 - True + + + True + True + center + 4 + 2 + 0 + digits + + + + False + True + 0 + + + + + True + True + True + image3 + + + + False + True + 1 + + + + + True + True + True + image2 + + + + False + True + 2 + + False True - 2 + 3 @@ -1156,6 +1218,8 @@ translated and supported by community. True False + 5 + 5 32 com.ublinux.ublexec @@ -1192,12 +1256,6 @@ translated and supported by community. - - - - - - 800 600