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 void behavior_setup_tab()
27 GtkWidget *winresist, *edgeresist;
28 GtkWidget *winresist_l, *edgeresist_l;
29 GtkSizeGroup *group1, *group2;
31 winresist = get_widget("resist_window");
32 edgeresist = get_widget("resist_edge");
33 group1 = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
35 gtk_size_group_add_widget(group1, winresist);
36 gtk_size_group_add_widget(group1, edgeresist);
38 winresist_l = get_widget("resist_window_label");
39 edgeresist_l = get_widget("resist_edge_label");
40 group2 = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
42 gtk_size_group_add_widget(group2, winresist_l);
43 gtk_size_group_add_widget(group2, edgeresist_l);
46 void behavior_setup_focus_mouse(GtkWidget *w)
52 b = tree_get_bool("focus/followMouse", FALSE);
53 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w), b);
56 GtkWidget *delay = get_widget("focus_delay");
57 GtkWidget *delay_l = get_widget("focus_delay_label");
58 GtkWidget *delay_u = get_widget("focus_delay_label_units");
59 GtkWidget *raise = get_widget("focus_raise");
60 GtkWidget *last = get_widget("focus_last");
62 gtk_widget_set_sensitive(delay, b);
63 gtk_widget_set_sensitive(delay_l, b);
64 gtk_widget_set_sensitive(delay_u, b);
65 gtk_widget_set_sensitive(raise, b);
66 gtk_widget_set_sensitive(last, b);
72 void behavior_setup_focus_delay(GtkWidget *w)
75 gtk_spin_button_set_value(GTK_SPIN_BUTTON(w),
76 tree_get_int("focus/focusDelay", 0));
80 void behavior_setup_focus_raise(GtkWidget *w)
83 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
84 tree_get_bool("focus/raiseOnFocus", FALSE));
88 void behavior_setup_focus_last(GtkWidget *w)
91 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
92 tree_get_bool("focus/focusLast", FALSE));
96 void behavior_setup_focus_new(GtkWidget *w)
99 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
100 tree_get_bool("focus/focusNew", TRUE));
104 void behavior_setup_place_mouse(GtkWidget *w)
109 s = tree_get_string("placement/policy", "Smart");
110 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
111 !g_ascii_strcasecmp(s, "UnderMouse"));
116 void behavior_setup_resist_window(GtkWidget *w)
119 gtk_spin_button_set_value(GTK_SPIN_BUTTON(w),
120 tree_get_int("resistance/strength", 10));
124 void behavior_setup_resist_edge(GtkWidget *w)
127 gtk_spin_button_set_value(GTK_SPIN_BUTTON(w),
128 tree_get_int("resistance/screen_edge_strength",
133 void behavior_setup_resize_contents(GtkWidget *w)
136 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
137 tree_get_bool("resize/drawContents", TRUE));
141 void on_focus_mouse_toggled(GtkToggleButton *w, gpointer data)
147 b = gtk_toggle_button_get_active(w);
148 tree_set_bool("focus/followMouse", b);
151 GtkWidget *delay = get_widget("focus_delay");
152 GtkWidget *delay_l = get_widget("focus_delay_label");
153 GtkWidget *delay_u = get_widget("focus_delay_label_units");
154 GtkWidget *raise = get_widget("focus_raise");
155 GtkWidget *last = get_widget("focus_last");
156 gtk_widget_set_sensitive(delay, b);
157 gtk_widget_set_sensitive(delay_l, b);
158 gtk_widget_set_sensitive(delay_u, b);
159 gtk_widget_set_sensitive(raise, b);
160 gtk_widget_set_sensitive(last, b);
164 void on_focus_delay_value_changed(GtkSpinButton *w, gpointer data)
168 tree_set_int("focus/focusDelay",
169 gtk_spin_button_get_value_as_int(w));
172 void on_focus_raise_toggled(GtkToggleButton *w, gpointer data)
176 tree_set_bool("focus/raiseOnFocus", gtk_toggle_button_get_active(w));
179 void on_focus_last_toggled(GtkToggleButton *w, gpointer data)
183 tree_set_bool("focus/focusLast", gtk_toggle_button_get_active(w));
186 void on_focus_new_toggled(GtkToggleButton *w, gpointer data)
190 tree_set_bool("focus/focusNew", gtk_toggle_button_get_active(w));
193 void on_place_mouse_toggled(GtkToggleButton *w, gpointer data)
197 tree_set_string("placement/policy",
198 (gtk_toggle_button_get_active(w) ?
199 "UnderMouse" : "Smart"));
202 void on_resist_window_value_changed(GtkSpinButton *w, gpointer data)
206 tree_set_int("resistance/strength", gtk_spin_button_get_value_as_int(w));
209 void on_resist_edge_value_changed(GtkSpinButton *w, gpointer data)
213 tree_set_int("resistance/screen_edge_strength",
214 gtk_spin_button_get_value_as_int(w));
217 void on_resize_contents_toggled(GtkToggleButton *w, gpointer data)
221 tree_set_bool("resize/drawContents", gtk_toggle_button_get_active(w));