-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgui_tweaks.c
67 lines (54 loc) · 2.12 KB
/
gui_tweaks.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include "gui_tweaks.h"
/* No-op to prevent `w` from propagating "scroll" events it receives.
*/
void disable_scroll_cb( GtkWidget *w ) {}
/* Disable scroll on a widget by adding a capture phase event handler and
* connecting a no-op callback to the "scroll" event.
@source : https://stackoverflow.com/questions/72832314/how-to-disable-scrollwheel-on-gtk-scale-widget%20
*/
GtkWidget *disable_scroll( GtkWidget *w )
{
GtkEventController *ec;
ec = gtk_event_controller_scroll_new(w,
GTK_EVENT_CONTROLLER_SCROLL_VERTICAL );
gtk_event_controller_set_propagation_phase( ec, GTK_PHASE_CAPTURE );
g_signal_connect( ec, "scroll", G_CALLBACK( disable_scroll_cb ), w );
//gtk_widget_add_controller( w, ec );
return w;
}
void enable_entry (GtkEntry *e) {
gtk_widget_set_opacity (GTK_WIDGET(e), 1.0);
gtk_widget_set_can_focus (GTK_WIDGET(e), TRUE);
gtk_editable_set_editable (GTK_EDITABLE (e), TRUE);
}
void disable_entry (GtkEntry *e) {
gtk_widget_set_opacity (GTK_WIDGET(e), 0.6);
gtk_widget_set_can_focus (GTK_WIDGET(e), FALSE);
gtk_editable_set_editable (GTK_EDITABLE (e), FALSE);
}
void enable_combo_box( GtkComboBox* c ) {
gtk_widget_set_opacity (GTK_WIDGET(c), 1.0);
gtk_widget_set_can_focus (GTK_WIDGET(c), TRUE);
}
void disable_combo_box( GtkComboBox* c ) {
gtk_widget_set_opacity (GTK_WIDGET(c), 0.6);
gtk_widget_set_can_focus (GTK_WIDGET(c), FALSE);
}
void enable_button( GtkButton* b ) {
gtk_widget_set_opacity (GTK_WIDGET(b), 1.0);
gtk_widget_set_can_focus (GTK_WIDGET(b), TRUE);
gtk_widget_set_sensitive (GTK_WIDGET(b), TRUE);
}
void disable_button( GtkButton* b ) {
gtk_widget_set_opacity (GTK_WIDGET(b), 0.6);
gtk_widget_set_can_focus (GTK_WIDGET(b), FALSE);
gtk_widget_set_sensitive (GTK_WIDGET(b), FALSE);
}
void pseudo_disable_window( GtkWindow* w ) {
gtk_widget_set_opacity (GTK_WIDGET(w), 0.6);
gtk_widget_set_can_focus (GTK_WIDGET(w), FALSE);
}
void pseudo_enable_window( GtkWindow* w ) {
gtk_widget_set_opacity (GTK_WIDGET(w), 1.0);
gtk_widget_set_can_focus (GTK_WIDGET(w), TRUE);
}