1 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
3 behavior.h for ObConf, the configuration tool for Openbox
4 Copyright (c) 2003-2007 Dana Jansens
5 Copyright (c) 2003 Tim Riley
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2 of the License, or
10 (at your option) any later version.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 See the COPYING file for a copy of the GNU General Public License.
23 static gboolean mapping = FALSE;
25 static void behavior_enable_stuff();
27 void behavior_setup_tab()
29 GtkWidget *w, *winresist, *edgeresist;
35 winresist = get_widget("resist_window");
36 edgeresist = get_widget("resist_edge");
37 group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
38 gtk_size_group_add_widget(group, winresist);
39 gtk_size_group_add_widget(group, edgeresist);
41 winresist = get_widget("resist_window_label");
42 edgeresist = get_widget("resist_edge_label");
43 group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
44 gtk_size_group_add_widget(group, winresist);
45 gtk_size_group_add_widget(group, edgeresist);
47 w = get_widget("focus_mouse");
48 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
49 tree_get_bool("focus/followMouse", FALSE));
51 w = get_widget("focus_delay");
52 gtk_spin_button_set_value(GTK_SPIN_BUTTON(w),
53 tree_get_int("focus/focusDelay", 0));
55 w = get_widget("focus_raise");
56 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
57 tree_get_bool("focus/raiseOnFocus", FALSE));
59 w = get_widget("focus_last");
60 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
61 tree_get_bool("focus/focusLast", FALSE));
63 w = get_widget("focus_new");
64 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
65 tree_get_bool("focus/focusNew", TRUE));
67 w = get_widget("resize_contents");
68 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
69 tree_get_bool("resize/drawContents", TRUE));
71 w = get_widget("resist_window");
72 gtk_spin_button_set_value(GTK_SPIN_BUTTON(w),
73 tree_get_int("resistance/strength", 10));
75 w = get_widget("resist_edge");
76 gtk_spin_button_set_value(GTK_SPIN_BUTTON(w),
77 tree_get_int("resistance/screen_edge_strength",
80 w = get_widget("place_mouse");
81 s = tree_get_string("placement/policy", "Smart");
82 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
83 !g_ascii_strcasecmp(s, "UnderMouse"));
86 behavior_enable_stuff();
91 static void behavior_enable_stuff()
96 w = get_widget("focus_mouse");
97 b = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w));
99 w = get_widget("focus_delay");
100 gtk_widget_set_sensitive(w, b);
101 w = get_widget("focus_delay_label");
102 gtk_widget_set_sensitive(w, b);
103 w = get_widget("focus_delay_label_units");
104 gtk_widget_set_sensitive(w, b);
105 w = get_widget("focus_raise");
106 gtk_widget_set_sensitive(w, b);
107 w = get_widget("focus_last");
108 gtk_widget_set_sensitive(w, b);
111 void on_focus_mouse_toggled(GtkToggleButton *w, gpointer data)
117 b = gtk_toggle_button_get_active(w);
118 tree_set_bool("focus/followMouse", b);
120 behavior_enable_stuff();
123 void on_focus_delay_value_changed(GtkSpinButton *w, gpointer data)
127 tree_set_int("focus/focusDelay",
128 gtk_spin_button_get_value_as_int(w));
131 void on_focus_raise_toggled(GtkToggleButton *w, gpointer data)
135 tree_set_bool("focus/raiseOnFocus", gtk_toggle_button_get_active(w));
138 void on_focus_last_toggled(GtkToggleButton *w, gpointer data)
142 tree_set_bool("focus/focusLast", gtk_toggle_button_get_active(w));
145 void on_focus_new_toggled(GtkToggleButton *w, gpointer data)
149 tree_set_bool("focus/focusNew", gtk_toggle_button_get_active(w));
152 void on_place_mouse_toggled(GtkToggleButton *w, gpointer data)
156 tree_set_string("placement/policy",
157 (gtk_toggle_button_get_active(w) ?
158 "UnderMouse" : "Smart"));
161 void on_resist_window_value_changed(GtkSpinButton *w, gpointer data)
165 tree_set_int("resistance/strength", gtk_spin_button_get_value_as_int(w));
168 void on_resist_edge_value_changed(GtkSpinButton *w, gpointer data)
172 tree_set_int("resistance/screen_edge_strength",
173 gtk_spin_button_get_value_as_int(w));
176 void on_resize_contents_toggled(GtkToggleButton *w, gpointer data)
180 tree_set_bool("resize/drawContents", gtk_toggle_button_get_active(w));