1 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
3 windows.c for ObConf, the configuration tool for Openbox
4 Copyright (c) 2003-2008 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 #define PLACE_ON_FIXED 0
26 #define PLACE_ON_PRIMARY 0
27 #define PLACE_ON_ACTIVE 1
28 #define PLACE_ON_MOUSE 2
29 #define PLACE_ON_ALL 3
31 static void enable_stuff();
33 void windows_setup_tab()
40 w = get_widget("focus_new");
41 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
42 tree_get_bool("focus/focusNew", TRUE));
44 w = get_widget("place_mouse");
45 s = tree_get_string("placement/policy", "Smart");
46 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
47 !g_ascii_strcasecmp(s, "UnderMouse"));
50 w = get_widget("place_active_popup");
51 s = tree_get_string("placement/monitor", "Any");
52 if (!g_ascii_strcasecmp(s, "Active"))
53 gtk_combo_box_set_active(GTK_COMBO_BOX(w), PLACE_ON_ACTIVE);
54 else if (!g_ascii_strcasecmp(s, "Mouse"))
55 gtk_combo_box_set_active(GTK_COMBO_BOX(w), PLACE_ON_MOUSE);
56 else if (!g_ascii_strcasecmp(s, "Primary"))
57 gtk_combo_box_set_active(GTK_COMBO_BOX(w), PLACE_ON_PRIMARY);
59 gtk_combo_box_set_active(GTK_COMBO_BOX(w), PLACE_ON_ALL);
62 w = get_widget("primary_monitor_popup");
63 s = tree_get_string("placement/primaryMonitor", "");
64 if (!g_ascii_strcasecmp(s, "Active"))
65 gtk_combo_box_set_active(GTK_COMBO_BOX(w), PLACE_ON_ACTIVE);
66 else if (!g_ascii_strcasecmp(s, "Mouse"))
67 gtk_combo_box_set_active(GTK_COMBO_BOX(w), PLACE_ON_MOUSE);
69 gtk_combo_box_set_active(GTK_COMBO_BOX(w), PLACE_ON_FIXED);
71 w = get_widget("fixed_monitor");
72 gtk_spin_button_set_value(GTK_SPIN_BUTTON(w),
73 tree_get_int("placement/primaryMonitor", 1));
82 static void enable_stuff()
87 w = get_widget("place_mouse");
88 b = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w));
90 w = get_widget("primary_monitor_popup");
91 b = gtk_combo_box_get_active(GTK_COMBO_BOX(w)) == PLACE_ON_FIXED;
92 w = get_widget("fixed_monitor");
93 gtk_widget_set_sensitive(w, b);
96 void on_primary_monitor_changed(GtkComboBox *w, gpointer data)
100 switch (gtk_combo_box_get_active(w)) {
103 GtkWidget *w2 = get_widget("fixed_monitor");
104 tree_set_int("placement/primaryMonitor",
105 gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(w2)));
110 tree_set_string("placement/primaryMonitor", "Active");
113 tree_set_string("placement/primaryMonitor", "Mouse");
118 void on_fixed_monitor_value_changed(GtkSpinButton *w, gpointer data)
122 tree_set_int("placement/primaryMonitor",
123 gtk_spin_button_get_value_as_int(w));
126 void on_focus_new_toggled(GtkToggleButton *w, gpointer data)
130 tree_set_bool("focus/focusNew", gtk_toggle_button_get_active(w));
133 void on_place_mouse_toggled(GtkToggleButton *w, gpointer data)
137 tree_set_string("placement/policy",
138 (gtk_toggle_button_get_active(w) ?
139 "UnderMouse" : "Smart"));
143 void on_place_active_popup_changed(GtkComboBox *w, gpointer data)
147 switch (gtk_combo_box_get_active(w)) {
149 tree_set_string("placement/monitor", "Primary");
152 tree_set_string("placement/monitor", "Active");
155 tree_set_string("placement/monitor", "Mouse");
158 tree_set_string("placement/monitor", "Any");