/[oroborus]/oroborus/src/settings.c
ViewVC logotype

Diff of /oroborus/src/settings.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.8 by dreamind, Sun Jul 7 03:17:41 2002 UTC revision 1.9 by dreamind, Mon Jul 15 08:23:08 2002 UTC
# Line 24  Line 24 
24  void  void
25  loadSettings ()  loadSettings ()
26  {  {
27    char *rc[][2] = {          char *rc[][2] = {
28      {"theme", NULL},                  {"theme", NULL},
29      {"scheme", NULL},                  {"scheme", NULL},
30      {"font", NULL},                  {"font", NULL},
31      {"title_alignment", NULL},                  {"title_alignment", NULL},
32      {"full_width_title", NULL},                  {"full_width_title", NULL},
33      {"button_layout", NULL},                  {"button_layout", NULL},
34      {"button_spacing", NULL},                  {"button_spacing", NULL},
35      {"button_offset", NULL},                  {"button_offset", NULL},
36      {"active_text_color", NULL},                  {"active_text_color", NULL},
37      {"inactive_text_color", NULL},                  {"inactive_text_color", NULL},
38      {"active_border_color", NULL},                  {"active_border_color", NULL},
39      {"inactive_border_color", NULL},                  {"inactive_border_color", NULL},
40      {"active_color_1", NULL},                  {"active_color_1", NULL},
41      {"inactive_color_1", NULL},                  {"inactive_color_1", NULL},
42      {"active_shadow_1", NULL},                  {"active_shadow_1", NULL},
43      {"inactive_shadow_1", NULL},                  {"inactive_shadow_1", NULL},
44      {"active_hilight_1", NULL},                  {"active_hilight_1", NULL},
45      {"inactive_hilight_1", NULL},                  {"inactive_hilight_1", NULL},
46      {"active_color_2", NULL},                  {"active_color_2", NULL},
47      {"inactive_color_2", NULL},                  {"inactive_color_2", NULL},
48      {"active_shadow_2", NULL},                  {"active_shadow_2", NULL},
49      {"inactive_shadow_2", NULL},                  {"inactive_shadow_2", NULL},
50      {"active_hilight_2", NULL},                  {"active_hilight_2", NULL},
51      {"inactive_hilight_2", NULL},                  {"inactive_hilight_2", NULL},
52      {"double_click_action", NULL},                  {"double_click_action", NULL},
53      {"box_move", NULL},                  {"box_move", NULL},
54      {"box_resize", NULL},                  {"box_resize", NULL},
55      {"click_to_focus", NULL},                  {"click_to_focus", NULL},
56      {"focus_new", NULL},                  {"focus_new", NULL},
57      {"raise_on_focus", NULL},                  {"raise_on_focus", NULL},
58      {"raise_delay", NULL},                  {"raise_delay", NULL},
59      {"raise_on_click", NULL},                  {"raise_on_click", NULL},
60      {"window_placement", NULL},                  {"window_placement", NULL},
61      {"snap_to_border", NULL},                  {"snap_to_border", NULL},
62      {"snap_to_windows", NULL},                  {"snap_to_windows", NULL},
63      {"snap_width", NULL},                  {"snap_width", NULL},
64      {"workspace_count", NULL},                  {"workspace_count", NULL},
65      {"wrap_workspaces", NULL},                  {"wrap_workspaces", NULL},
66      {"close_window_key", NULL},                  {"close_window_key", NULL},
67      {"hide_window_key", NULL},                  {"hide_window_key", NULL},
68      {"maximize_window_key", NULL},                  {"maximize_window_key", NULL},
69      {"maximize_vert_key", NULL},                  {"maximize_vert_key", NULL},
70      {"maximize_horiz_key", NULL},                  {"maximize_horiz_key", NULL},
71      {"shade_window_key", NULL},                  {"shade_window_key", NULL},
72      {"lower_window_layer_key", NULL},                  {"lower_window_layer_key", NULL},
73      {"raise_window_layer_key", NULL},                  {"raise_window_layer_key", NULL},
74      {"cycle_windows_key", NULL},                  {"cycle_windows_key", NULL},
75      {"move_window_up_key", NULL},                  {"move_window_up_key", NULL},
76      {"move_window_down_key", NULL},                  {"move_window_down_key", NULL},
77      {"move_window_left_key", NULL},                  {"move_window_left_key", NULL},
78      {"move_window_right_key", NULL},                  {"move_window_right_key", NULL},
79      {"resize_window_up_key", NULL},                  {"resize_window_up_key", NULL},
80      {"resize_window_down_key", NULL},                  {"resize_window_down_key", NULL},
81      {"resize_window_left_key", NULL},                  {"resize_window_left_key", NULL},
82      {"resize_window_right_key", NULL},                  {"resize_window_right_key", NULL},
83      {"next_workspace_key", NULL},                  {"next_workspace_key", NULL},
84      {"prev_workspace_key", NULL},                  {"prev_workspace_key", NULL},
85      {"add_workspace_key", NULL},                  {"add_workspace_key", NULL},
86      {"del_workspace_key", NULL},                  {"del_workspace_key", NULL},
87      {"stick_window_key", NULL},                  {"stick_window_key", NULL},
88      {"workspace_1_key", NULL},                  {"workspace_1_key", NULL},
89      {"workspace_2_key", NULL},                  {"workspace_2_key", NULL},
90      {"workspace_3_key", NULL},                  {"workspace_3_key", NULL},
91      {"workspace_4_key", NULL},                  {"workspace_4_key", NULL},
92      {"workspace_5_key", NULL},                  {"workspace_5_key", NULL},
93      {"workspace_6_key", NULL},                  {"workspace_6_key", NULL},
94      {"workspace_7_key", NULL},                  {"workspace_7_key", NULL},
95      {"workspace_8_key", NULL},                  {"workspace_8_key", NULL},
96      {"workspace_9_key", NULL},                  {"workspace_9_key", NULL},
97      {"move_window_next_workspace_key", NULL},                  {"move_window_next_workspace_key", NULL},
98      {"move_window_prev_workspace_key", NULL},                  {"move_window_prev_workspace_key", NULL},
99      {"move_window_workspace_1_key", NULL},                  {"move_window_workspace_1_key", NULL},
100      {"move_window_workspace_2_key", NULL},                  {"move_window_workspace_2_key", NULL},
101      {"move_window_workspace_3_key", NULL},                  {"move_window_workspace_3_key", NULL},
102      {"move_window_workspace_4_key", NULL},                  {"move_window_workspace_4_key", NULL},
103      {"move_window_workspace_5_key", NULL},                  {"move_window_workspace_5_key", NULL},
104      {"move_window_workspace_6_key", NULL},                  {"move_window_workspace_6_key", NULL},
105      {"move_window_workspace_7_key", NULL},                  {"move_window_workspace_7_key", NULL},
106      {"move_window_workspace_8_key", NULL},                  {"move_window_workspace_8_key", NULL},
107      {"move_window_workspace_9_key", NULL},                  {"move_window_workspace_9_key", NULL},
108      {"move_top_left_key", NULL},                  {"move_top_left_key", NULL},
109      {"move_top_right_key", NULL},                  {"move_top_right_key", NULL},
110      {"move_bottom_left_key", NULL},                  {"move_bottom_left_key", NULL},
111      {"move_bottom_right_key", NULL},                  {"move_bottom_right_key", NULL},
112      {"window_ops_modifiers", NULL},                  {"window_ops_modifiers", NULL},
113      {"quit_key", NULL},                  {"quit_key", NULL},
114      {"borderless_windows", NULL},                  {"borderless_windows", NULL},
115      {NULL, NULL}                  {NULL, NULL}
116    };          };
117    char *theme, *scheme;          char *theme, *scheme;
118    XpmColorSymbol colsym[16];          XpmColorSymbol colsym[16];
119    
120  #ifdef DEBUG  #ifdef DEBUG
121    printf ("entering settingsLoad\n");          printf ("entering settingsLoad\n");
122  #endif  #endif
123    
124    if (!parseRc ("defaults", DATADIR, rc))          if (!parseRc ("defaults", DATADIR, rc))
125      {                  {
126        fprintf (stderr, "%s: Missing defaults file\n", progname);                          fprintf (stderr, "%s: Missing defaults file\n", progname);
127        exit (1);                          exit (1);
128      }                  }
129    if (!checkRc (rc))          if (!checkRc (rc))
130      {                  {
131        fprintf (stderr, "%s: Missing values in defaults file\n", progname);                          fprintf (stderr, "%s: Missing values in defaults file\n", progname);
132        exit (1);                          exit (1);
133      }                  }
134    
135    parseRc (".oroborusrc", getenv ("HOME"), rc);          parseRc (".oroborusrc", getenv ("HOME"), rc);
136    
137    scheme = getValue ("scheme", rc);          scheme = getValue ("scheme", rc);
138    parseRc (scheme, NULL, rc);          parseRc (scheme, NULL, rc);
139    
140    theme = getValue ("theme", rc);          theme = getValue ("theme", rc);
141    parseRc ("themerc", theme, rc);          parseRc ("themerc", theme, rc);
142    
143    parseRc (".oroborusrc", getenv ("HOME"), rc);          parseRc (".oroborusrc", getenv ("HOME"), rc);
144    
145    if (!getFont (dpy, &title_font, getValue ("font", rc)))          if (!getFont (dpy, &title_font, getValue ("font", rc)))
146      {                  {
147        fprintf (stderr, "%s: Cannot load default font\n", progname);                          fprintf (stderr, "%s: Cannot load default font\n", progname);
148        exit (1);                          exit (1);
149      }                  }
150    
151    colsym[0].name = "active_text_color";          colsym[0].name = "active_text_color";
152    colsym[0].value = getValue ("active_text_color", rc);          colsym[0].value = getValue ("active_text_color", rc);
153    colsym[1].name = "inactive_text_color";          colsym[1].name = "inactive_text_color";
154    colsym[1].value = getValue ("inactive_text_color", rc);          colsym[1].value = getValue ("inactive_text_color", rc);
155    colsym[2].name = "active_border_color";          colsym[2].name = "active_border_color";
156    colsym[2].value = getValue ("active_border_color", rc);          colsym[2].value = getValue ("active_border_color", rc);
157    colsym[3].name = "inactive_border_color";          colsym[3].name = "inactive_border_color";
158    colsym[3].value = getValue ("inactive_border_color", rc);          colsym[3].value = getValue ("inactive_border_color", rc);
159    colsym[4].name = "active_color_1";          colsym[4].name = "active_color_1";
160    colsym[4].value = getValue ("active_color_1", rc);          colsym[4].value = getValue ("active_color_1", rc);
161    colsym[5].name = "inactive_color_1";          colsym[5].name = "inactive_color_1";
162    colsym[5].value = getValue ("inactive_color_1", rc);          colsym[5].value = getValue ("inactive_color_1", rc);
163    colsym[6].name = "active_shadow_1";          colsym[6].name = "active_shadow_1";
164    colsym[6].value = getValue ("active_shadow_1", rc);          colsym[6].value = getValue ("active_shadow_1", rc);
165    colsym[7].name = "inactive_shadow_1";          colsym[7].name = "inactive_shadow_1";
166    colsym[7].value = getValue ("inactive_shadow_1", rc);          colsym[7].value = getValue ("inactive_shadow_1", rc);
167    colsym[8].name = "active_hilight_1";          colsym[8].name = "active_hilight_1";
168    colsym[8].value = getValue ("active_hilight_1", rc);          colsym[8].value = getValue ("active_hilight_1", rc);
169    colsym[9].name = "inactive_hilight_1";          colsym[9].name = "inactive_hilight_1";
170    colsym[9].value = getValue ("inactive_hilight_1", rc);          colsym[9].value = getValue ("inactive_hilight_1", rc);
171    colsym[10].name = "active_color_2";          colsym[10].name = "active_color_2";
172    colsym[10].value = getValue ("active_color_2", rc);          colsym[10].value = getValue ("active_color_2", rc);
173    colsym[11].name = "inactive_color_2";          colsym[11].name = "inactive_color_2";
174    colsym[11].value = getValue ("inactive_color_2", rc);          colsym[11].value = getValue ("inactive_color_2", rc);
175    colsym[12].name = "active_shadow_2";          colsym[12].name = "active_shadow_2";
176    colsym[12].value = getValue ("active_shadow_2", rc);          colsym[12].value = getValue ("active_shadow_2", rc);
177    colsym[13].name = "inactive_shadow_2";          colsym[13].name = "inactive_shadow_2";
178    colsym[13].value = getValue ("inactive_shadow_2", rc);          colsym[13].value = getValue ("inactive_shadow_2", rc);
179    colsym[14].name = "active_hilight_2";          colsym[14].name = "active_hilight_2";
180    colsym[14].value = getValue ("active_hilight_2", rc);          colsym[14].value = getValue ("active_hilight_2", rc);
181    colsym[15].name = "inactive_hilight_2";          colsym[15].name = "inactive_hilight_2";
182    colsym[15].value = getValue ("inactive_hilight_2", rc);          colsym[15].value = getValue ("inactive_hilight_2", rc);
183    
184    title_gc[ACTIVE] =          title_gc[ACTIVE] =
185      createGC (dpy, cmap, getValue ("active_text_color", rc), GXcopy,                  createGC (dpy, cmap, getValue ("active_text_color", rc), GXcopy,
186                title_font.font, False);                                                          title_font.font, False);
187    title_gc[INACTIVE] =          title_gc[INACTIVE] =
188      createGC (dpy, cmap, getValue ("inactive_text_color", rc), GXcopy,                  createGC (dpy, cmap, getValue ("inactive_text_color", rc), GXcopy,
189                title_font.font, False);                                                          title_font.font, False);
190    
191    loadPixmap (dpy, &sides[SIDE_LEFT][ACTIVE], theme, "left-active.xpm",          loadPixmap (dpy, &sides[SIDE_LEFT][ACTIVE], theme, "left-active.xpm",
192                colsym, 16);                                                          colsym, 16);
193    loadPixmap (dpy, &sides[SIDE_LEFT][INACTIVE], theme, "left-inactive.xpm",          loadPixmap (dpy, &sides[SIDE_LEFT][INACTIVE], theme, "left-inactive.xpm",
194                colsym, 16);                                                          colsym, 16);
195    loadPixmap (dpy, &sides[SIDE_RIGHT][ACTIVE], theme, "right-active.xpm",          loadPixmap (dpy, &sides[SIDE_RIGHT][ACTIVE], theme, "right-active.xpm",
196                colsym, 16);                                                          colsym, 16);
197    loadPixmap (dpy, &sides[SIDE_RIGHT][INACTIVE], theme, "right-inactive.xpm",          loadPixmap (dpy, &sides[SIDE_RIGHT][INACTIVE], theme, "right-inactive.xpm",
198                colsym, 16);                                                          colsym, 16);
199    loadPixmap (dpy, &sides[SIDE_BOTTOM][ACTIVE], theme, "bottom-active.xpm",          loadPixmap (dpy, &sides[SIDE_BOTTOM][ACTIVE], theme, "bottom-active.xpm",
200                colsym, 16);                                                          colsym, 16);
201    loadPixmap (dpy, &sides[SIDE_BOTTOM][INACTIVE], theme,          loadPixmap (dpy, &sides[SIDE_BOTTOM][INACTIVE], theme,
202                "bottom-inactive.xpm", colsym, 16);                                                          "bottom-inactive.xpm", colsym, 16);
203    loadPixmap (dpy, &corners[CORNER_TOP_LEFT][ACTIVE], theme,          loadPixmap (dpy, &corners[CORNER_TOP_LEFT][ACTIVE], theme,
204                "top-left-active.xpm", colsym, 16);                                                          "top-left-active.xpm", colsym, 16);
205    loadPixmap (dpy, &corners[CORNER_TOP_LEFT][INACTIVE], theme,          loadPixmap (dpy, &corners[CORNER_TOP_LEFT][INACTIVE], theme,
206                "top-left-inactive.xpm", colsym, 16);                                                          "top-left-inactive.xpm", colsym, 16);
207    loadPixmap (dpy, &corners[CORNER_TOP_RIGHT][ACTIVE], theme,          loadPixmap (dpy, &corners[CORNER_TOP_RIGHT][ACTIVE], theme,
208                "top-right-active.xpm", colsym, 16);                                                          "top-right-active.xpm", colsym, 16);
209    loadPixmap (dpy, &corners[CORNER_TOP_RIGHT][INACTIVE], theme,          loadPixmap (dpy, &corners[CORNER_TOP_RIGHT][INACTIVE], theme,
210                "top-right-inactive.xpm", colsym, 16);                                                          "top-right-inactive.xpm", colsym, 16);
211    loadPixmap (dpy, &corners[CORNER_BOTTOM_LEFT][ACTIVE], theme,          loadPixmap (dpy, &corners[CORNER_BOTTOM_LEFT][ACTIVE], theme,
212                "bottom-left-active.xpm", colsym, 16);                                                          "bottom-left-active.xpm", colsym, 16);
213    loadPixmap (dpy, &corners[CORNER_BOTTOM_LEFT][INACTIVE], theme,          loadPixmap (dpy, &corners[CORNER_BOTTOM_LEFT][INACTIVE], theme,
214                "bottom-left-inactive.xpm", colsym, 16);                                                          "bottom-left-inactive.xpm", colsym, 16);
215    loadPixmap (dpy, &corners[CORNER_BOTTOM_RIGHT][ACTIVE], theme,          loadPixmap (dpy, &corners[CORNER_BOTTOM_RIGHT][ACTIVE], theme,
216                "bottom-right-active.xpm", colsym, 16);                                                          "bottom-right-active.xpm", colsym, 16);
217    loadPixmap (dpy, &corners[CORNER_BOTTOM_RIGHT][INACTIVE], theme,          loadPixmap (dpy, &corners[CORNER_BOTTOM_RIGHT][INACTIVE], theme,
218                "bottom-right-inactive.xpm", colsym, 16);                                                          "bottom-right-inactive.xpm", colsym, 16);
219    loadPixmap (dpy, &buttons[HIDE_BUTTON][ACTIVE], theme, "hide-active.xpm",          loadPixmap (dpy, &buttons[HIDE_BUTTON][ACTIVE], theme, "hide-active.xpm",
220                colsym, 16);                                                          colsym, 16);
221    loadPixmap (dpy, &buttons[HIDE_BUTTON][INACTIVE], theme,          loadPixmap (dpy, &buttons[HIDE_BUTTON][INACTIVE], theme,
222                "hide-inactive.xpm", colsym, 16);                                                          "hide-inactive.xpm", colsym, 16);
223    loadPixmap (dpy, &buttons[HIDE_BUTTON][PRESSED], theme, "hide-pressed.xpm",          loadPixmap (dpy, &buttons[HIDE_BUTTON][PRESSED], theme, "hide-pressed.xpm",
224                colsym, 16);                                                          colsym, 16);
225    loadPixmap (dpy, &buttons[CLOSE_BUTTON][ACTIVE], theme, "close-active.xpm",          loadPixmap (dpy, &buttons[CLOSE_BUTTON][ACTIVE], theme, "close-active.xpm",
226                colsym, 16);                                                          colsym, 16);
227    loadPixmap (dpy, &buttons[CLOSE_BUTTON][INACTIVE], theme,          loadPixmap (dpy, &buttons[CLOSE_BUTTON][INACTIVE], theme,
228                "close-inactive.xpm", colsym, 16);                                                          "close-inactive.xpm", colsym, 16);
229    loadPixmap (dpy, &buttons[CLOSE_BUTTON][PRESSED], theme,          loadPixmap (dpy, &buttons[CLOSE_BUTTON][PRESSED], theme,
230                "close-pressed.xpm", colsym, 16);                                                          "close-pressed.xpm", colsym, 16);
231    loadPixmap (dpy, &buttons[MAXIMIZE_BUTTON][ACTIVE], theme,          loadPixmap (dpy, &buttons[MAXIMIZE_BUTTON][ACTIVE], theme,
232                "maximize-active.xpm", colsym, 16);                                                          "maximize-active.xpm", colsym, 16);
233    loadPixmap (dpy, &buttons[MAXIMIZE_BUTTON][INACTIVE], theme,          loadPixmap (dpy, &buttons[MAXIMIZE_BUTTON][INACTIVE], theme,
234                "maximize-inactive.xpm", colsym, 16);                                                          "maximize-inactive.xpm", colsym, 16);
235    loadPixmap (dpy, &buttons[MAXIMIZE_BUTTON][PRESSED], theme,          loadPixmap (dpy, &buttons[MAXIMIZE_BUTTON][PRESSED], theme,
236                "maximize-pressed.xpm", colsym, 16);                                                          "maximize-pressed.xpm", colsym, 16);
237    loadPixmap (dpy, &buttons[SHADE_BUTTON][ACTIVE], theme, "shade-active.xpm",          loadPixmap (dpy, &buttons[SHADE_BUTTON][ACTIVE], theme, "shade-active.xpm",
238                colsym, 16);                                                          colsym, 16);
239    loadPixmap (dpy, &buttons[SHADE_BUTTON][INACTIVE], theme,          loadPixmap (dpy, &buttons[SHADE_BUTTON][INACTIVE], theme,
240                "shade-inactive.xpm", colsym, 16);                                                          "shade-inactive.xpm", colsym, 16);
241    loadPixmap (dpy, &buttons[SHADE_BUTTON][PRESSED], theme,          loadPixmap (dpy, &buttons[SHADE_BUTTON][PRESSED], theme,
242                "shade-pressed.xpm", colsym, 16);                                                          "shade-pressed.xpm", colsym, 16);
243    loadPixmap (dpy, &title[TITLE_1][ACTIVE], theme, "title-1-active.xpm",          loadPixmap (dpy, &title[TITLE_1][ACTIVE], theme, "title-1-active.xpm",
244                colsym, 16);                                                          colsym, 16);
245    loadPixmap (dpy, &title[TITLE_1][INACTIVE], theme, "title-1-inactive.xpm",          loadPixmap (dpy, &title[TITLE_1][INACTIVE], theme, "title-1-inactive.xpm",
246                colsym, 16);                                                          colsym, 16);
247    loadPixmap (dpy, &title[TITLE_2][ACTIVE], theme, "title-2-active.xpm",          loadPixmap (dpy, &title[TITLE_2][ACTIVE], theme, "title-2-active.xpm",
248                colsym, 16);                                                          colsym, 16);
249    loadPixmap (dpy, &title[TITLE_2][INACTIVE], theme, "title-2-inactive.xpm",          loadPixmap (dpy, &title[TITLE_2][INACTIVE], theme, "title-2-inactive.xpm",
250                colsym, 16);                                                          colsym, 16);
251    loadPixmap (dpy, &title[TITLE_3][ACTIVE], theme, "title-3-active.xpm",          loadPixmap (dpy, &title[TITLE_3][ACTIVE], theme, "title-3-active.xpm",
252                colsym, 16);                                                          colsym, 16);
253    loadPixmap (dpy, &title[TITLE_3][INACTIVE], theme, "title-3-inactive.xpm",          loadPixmap (dpy, &title[TITLE_3][INACTIVE], theme, "title-3-inactive.xpm",
254                colsym, 16);                                                          colsym, 16);
255    loadPixmap (dpy, &title[TITLE_4][ACTIVE], theme, "title-4-active.xpm",          loadPixmap (dpy, &title[TITLE_4][ACTIVE], theme, "title-4-active.xpm",
256                colsym, 16);                                                          colsym, 16);
257    loadPixmap (dpy, &title[TITLE_4][INACTIVE], theme, "title-4-inactive.xpm",          loadPixmap (dpy, &title[TITLE_4][INACTIVE], theme, "title-4-inactive.xpm",
258                colsym, 16);                                                          colsym, 16);
259    loadPixmap (dpy, &title[TITLE_5][ACTIVE], theme, "title-5-active.xpm",          loadPixmap (dpy, &title[TITLE_5][ACTIVE], theme, "title-5-active.xpm",
260                colsym, 16);                                                          colsym, 16);
261    loadPixmap (dpy, &title[TITLE_5][INACTIVE], theme, "title-5-inactive.xpm",          loadPixmap (dpy, &title[TITLE_5][INACTIVE], theme, "title-5-inactive.xpm",
262                colsym, 16);                                                          colsym, 16);
263    
264    if (!strcmp ("left", getValue ("title_alignment", rc)))          if (!strcmp ("left", getValue ("title_alignment", rc)))
265      title_alignment = ALIGN_LEFT;                  title_alignment = ALIGN_LEFT;
266    else if (!strcmp ("right", getValue ("title_alignment", rc)))          else if (!strcmp ("right", getValue ("title_alignment", rc)))
267      title_alignment = ALIGN_RIGHT;                  title_alignment = ALIGN_RIGHT;
268    else          else
269      title_alignment = ALIGN_CENTER;                  title_alignment = ALIGN_CENTER;
270    full_width_title = !strcmp ("true", getValue ("full_width_title", rc));          full_width_title = !strcmp ("true", getValue ("full_width_title", rc));
271    
272    strncpy (button_layout, getValue ("button_layout", rc), 5);          strncpy (button_layout, getValue ("button_layout", rc), 5);
273    button_spacing = atoi (getValue ("button_spacing", rc));          button_spacing = atoi (getValue ("button_spacing", rc));
274    button_offset = atoi (getValue ("button_offset", rc));          button_offset = atoi (getValue ("button_offset", rc));
275    
276    box_gc = createGC (dpy, cmap, "#FFFFFF", GXxor, title_font.font, True);          box_gc = createGC (dpy, cmap, "#FFFFFF", GXxor, title_font.font, True);
277    box_resize = !strcmp ("true", getValue ("box_resize", rc));          box_resize = !strcmp ("true", getValue ("box_resize", rc));
278    box_move = !strcmp ("true", getValue ("box_move", rc));          box_move = !strcmp ("true", getValue ("box_move", rc));
279    
280    click_to_focus = !strcmp ("true", getValue ("click_to_focus", rc));          click_to_focus = !strcmp ("true", getValue ("click_to_focus", rc));
281    focus_new = !strcmp ("true", getValue ("focus_new", rc));          focus_new = !strcmp ("true", getValue ("focus_new", rc));
282    raise_on_focus = !strcmp ("true", getValue ("raise_on_focus", rc));          raise_on_focus = !strcmp ("true", getValue ("raise_on_focus", rc));
283    raise_delay = abs (atoi (getValue ("raise_delay", rc)));          raise_delay = abs (atoi (getValue ("raise_delay", rc)));
284    raise_on_click = !strcmp ("true", getValue ("raise_on_click", rc));          raise_on_click = !strcmp ("true", getValue ("raise_on_click", rc));
285    
286    if (!strcmp ("center_root", getValue ("window_placement", rc)))          if (!strcmp ("center_root", getValue ("window_placement", rc)))
287      window_placement = PLACEMENT_ROOT;                  window_placement = PLACEMENT_ROOT;
288    else          else
289      window_placement = PLACEMENT_MOUSE;                  window_placement = PLACEMENT_MOUSE;
290    snap_to_border = !strcmp ("true", getValue ("snap_to_border", rc));          snap_to_border = !strcmp ("true", getValue ("snap_to_border", rc));
291    snap_width = abs (atoi (getValue ("snap_width", rc)));          snap_width = abs (atoi (getValue ("snap_width", rc)));
292    snap_to_windows = !strcmp ("true", getValue ("snap_to_windows", rc));          snap_to_windows = !strcmp ("true", getValue ("snap_to_windows", rc));
293    
294    if (!strcmp ("shade", getValue ("double_click_action", rc)))          if (!strcmp ("shade", getValue ("double_click_action", rc)))
295      double_click_action = ACTION_SHADE;                  double_click_action = ACTION_SHADE;
296    else if (!strcmp ("hide", getValue ("double_click_action", rc)))          else if (!strcmp ("hide", getValue ("double_click_action", rc)))
297      double_click_action = ACTION_HIDE;                  double_click_action = ACTION_HIDE;
298    else if (!strcmp ("maximize", getValue ("double_click_action", rc)))          else if (!strcmp ("maximize", getValue ("double_click_action", rc)))
299      double_click_action = ACTION_MAXIMIZE;                  double_click_action = ACTION_MAXIMIZE;
300    else          else
301      double_click_action = ACTION_NONE;                  double_click_action = ACTION_NONE;
302    
303    if (workspace_count < 0)          if (workspace_count < 0)
304      {                  {
305        workspace_count = abs (atoi (getValue ("workspace_count", rc)));                          workspace_count = abs (atoi (getValue ("workspace_count", rc)));
306        setGnomeHint (root, win_workspace_count, workspace_count);                          setGnomeHint (root, win_workspace_count, workspace_count);
307        setGnomeHint (root, net_atoms[NET_NUMBER_OF_DESKTOPS], workspace_count);                          setGnomeHint (root, net_atoms[NET_NUMBER_OF_DESKTOPS], workspace_count);
308      }                  }
309    wrap_workspaces = !strcmp ("true", getValue ("wrap_workspaces", rc));          wrap_workspaces = !strcmp ("true", getValue ("wrap_workspaces", rc));
310    
311    parseKeyString (dpy, &keys[KEY_MOVE_UP],          parseKeyString (dpy, &keys[KEY_MOVE_UP],
312                    getValue ("move_window_up_key", rc));                                                                          getValue ("move_window_up_key", rc));
313    parseKeyString (dpy, &keys[KEY_MOVE_DOWN],          parseKeyString (dpy, &keys[KEY_MOVE_DOWN],
314                    getValue ("move_window_down_key", rc));                                                                          getValue ("move_window_down_key", rc));
315    parseKeyString (dpy, &keys[KEY_MOVE_LEFT],          parseKeyString (dpy, &keys[KEY_MOVE_LEFT],
316                    getValue ("move_window_left_key", rc));                                                                          getValue ("move_window_left_key", rc));
317    parseKeyString (dpy, &keys[KEY_MOVE_RIGHT],          parseKeyString (dpy, &keys[KEY_MOVE_RIGHT],
318                    getValue ("move_window_right_key", rc));                                                                          getValue ("move_window_right_key", rc));
319    parseKeyString (dpy, &keys[KEY_RESIZE_UP],          parseKeyString (dpy, &keys[KEY_RESIZE_UP],
320                    getValue ("resize_window_up_key", rc));                                                                          getValue ("resize_window_up_key", rc));
321    parseKeyString (dpy, &keys[KEY_RESIZE_DOWN],          parseKeyString (dpy, &keys[KEY_RESIZE_DOWN],
322                    getValue ("resize_window_down_key", rc));                                                                          getValue ("resize_window_down_key", rc));
323    parseKeyString (dpy, &keys[KEY_RESIZE_LEFT],          parseKeyString (dpy, &keys[KEY_RESIZE_LEFT],
324                    getValue ("resize_window_left_key", rc));                                                                          getValue ("resize_window_left_key", rc));
325    parseKeyString (dpy, &keys[KEY_RESIZE_RIGHT],          parseKeyString (dpy, &keys[KEY_RESIZE_RIGHT],
326                    getValue ("resize_window_right_key", rc));                                                                          getValue ("resize_window_right_key", rc));
327    parseKeyString (dpy, &keys[KEY_CYCLE_WINDOWS],          parseKeyString (dpy, &keys[KEY_CYCLE_WINDOWS],
328                    getValue ("cycle_windows_key", rc));                                                                          getValue ("cycle_windows_key", rc));
329    parseKeyString (dpy, &keys[KEY_CLOSE_WINDOW],          parseKeyString (dpy, &keys[KEY_CLOSE_WINDOW],
330                    getValue ("close_window_key", rc));                                                                          getValue ("close_window_key", rc));
331    parseKeyString (dpy, &keys[KEY_HIDE_WINDOW],          parseKeyString (dpy, &keys[KEY_HIDE_WINDOW],
332                    getValue ("hide_window_key", rc));                                                                          getValue ("hide_window_key", rc));
333    parseKeyString (dpy, &keys[KEY_MAXIMIZE_WINDOW],          parseKeyString (dpy, &keys[KEY_MAXIMIZE_WINDOW],
334                    getValue ("maximize_window_key", rc));                                                                          getValue ("maximize_window_key", rc));
335    parseKeyString (dpy, &keys[KEY_MAXIMIZE_VERT],          parseKeyString (dpy, &keys[KEY_MAXIMIZE_VERT],
336                    getValue ("maximize_vert_key", rc));                                                                          getValue ("maximize_vert_key", rc));
337    parseKeyString (dpy, &keys[KEY_MAXIMIZE_HORIZ],          parseKeyString (dpy, &keys[KEY_MAXIMIZE_HORIZ],
338                    getValue ("maximize_horiz_key", rc));                                                                          getValue ("maximize_horiz_key", rc));
339    parseKeyString (dpy, &keys[KEY_SHADE_WINDOW],          parseKeyString (dpy, &keys[KEY_SHADE_WINDOW],
340                    getValue ("shade_window_key", rc));                                                                          getValue ("shade_window_key", rc));
341    parseKeyString (dpy, &keys[KEY_LOWER_WINDOW_LAYER],          parseKeyString (dpy, &keys[KEY_LOWER_WINDOW_LAYER],
342                    getValue ("lower_window_layer_key", rc));                                                                          getValue ("lower_window_layer_key", rc));
343    parseKeyString (dpy, &keys[KEY_RAISE_WINDOW_LAYER],          parseKeyString (dpy, &keys[KEY_RAISE_WINDOW_LAYER],
344                    getValue ("raise_window_layer_key", rc));                                                                          getValue ("raise_window_layer_key", rc));
345    parseKeyString (dpy, &keys[KEY_NEXT_WORKSPACE],          parseKeyString (dpy, &keys[KEY_NEXT_WORKSPACE],
346                    getValue ("next_workspace_key", rc));                                                                          getValue ("next_workspace_key", rc));
347    parseKeyString (dpy, &keys[KEY_PREV_WORKSPACE],          parseKeyString (dpy, &keys[KEY_PREV_WORKSPACE],
348                    getValue ("prev_workspace_key", rc));                                                                          getValue ("prev_workspace_key", rc));
349    parseKeyString (dpy, &keys[KEY_ADD_WORKSPACE],          parseKeyString (dpy, &keys[KEY_ADD_WORKSPACE],
350                    getValue ("add_workspace_key", rc));                                                                          getValue ("add_workspace_key", rc));
351    parseKeyString (dpy, &keys[KEY_DEL_WORKSPACE],          parseKeyString (dpy, &keys[KEY_DEL_WORKSPACE],
352                    getValue ("del_workspace_key", rc));                                                                          getValue ("del_workspace_key", rc));
353    parseKeyString (dpy, &keys[KEY_STICK_WINDOW],          parseKeyString (dpy, &keys[KEY_STICK_WINDOW],
354                    getValue ("stick_window_key", rc));                                                                          getValue ("stick_window_key", rc));
355    parseKeyString (dpy, &keys[KEY_WORKSPACE_1],          parseKeyString (dpy, &keys[KEY_WORKSPACE_1],
356                    getValue ("workspace_1_key", rc));                                                                          getValue ("workspace_1_key", rc));
357    parseKeyString (dpy, &keys[KEY_WORKSPACE_2],          parseKeyString (dpy, &keys[KEY_WORKSPACE_2],
358                    getValue ("workspace_2_key", rc));                                                                          getValue ("workspace_2_key", rc));
359    parseKeyString (dpy, &keys[KEY_WORKSPACE_3],          parseKeyString (dpy, &keys[KEY_WORKSPACE_3],
360                    getValue ("workspace_3_key", rc));                                                                          getValue ("workspace_3_key", rc));
361    parseKeyString (dpy, &keys[KEY_WORKSPACE_4],          parseKeyString (dpy, &keys[KEY_WORKSPACE_4],
362                    getValue ("workspace_4_key", rc));                                                                          getValue ("workspace_4_key", rc));
363    parseKeyString (dpy, &keys[KEY_WORKSPACE_5],          parseKeyString (dpy, &keys[KEY_WORKSPACE_5],
364                    getValue ("workspace_5_key", rc));                                                                          getValue ("workspace_5_key", rc));
365    parseKeyString (dpy, &keys[KEY_WORKSPACE_6],          parseKeyString (dpy, &keys[KEY_WORKSPACE_6],
366                    getValue ("workspace_6_key", rc));                                                                          getValue ("workspace_6_key", rc));
367    parseKeyString (dpy, &keys[KEY_WORKSPACE_7],          parseKeyString (dpy, &keys[KEY_WORKSPACE_7],
368                    getValue ("workspace_7_key", rc));                                                                          getValue ("workspace_7_key", rc));
369    parseKeyString (dpy, &keys[KEY_WORKSPACE_8],          parseKeyString (dpy, &keys[KEY_WORKSPACE_8],
370                    getValue ("workspace_8_key", rc));                                                                          getValue ("workspace_8_key", rc));
371    parseKeyString (dpy, &keys[KEY_WORKSPACE_9],          parseKeyString (dpy, &keys[KEY_WORKSPACE_9],
372                    getValue ("workspace_9_key", rc));                                                                          getValue ("workspace_9_key", rc));
373    parseKeyString (dpy, &keys[KEY_MOVE_NEXT_WORKSPACE],          parseKeyString (dpy, &keys[KEY_MOVE_NEXT_WORKSPACE],
374                    getValue ("move_window_next_workspace_key", rc));                                                                          getValue ("move_window_next_workspace_key", rc));
375    parseKeyString (dpy, &keys[KEY_MOVE_PREV_WORKSPACE],          parseKeyString (dpy, &keys[KEY_MOVE_PREV_WORKSPACE],
376                    getValue ("move_window_prev_workspace_key", rc));                                                                          getValue ("move_window_prev_workspace_key", rc));
377    parseKeyString (dpy, &keys[KEY_MOVE_WORKSPACE_1],          parseKeyString (dpy, &keys[KEY_MOVE_WORKSPACE_1],
378                    getValue ("move_window_workspace_1_key", rc));                                                                          getValue ("move_window_workspace_1_key", rc));
379    parseKeyString (dpy, &keys[KEY_MOVE_WORKSPACE_2],          parseKeyString (dpy, &keys[KEY_MOVE_WORKSPACE_2],
380                    getValue ("move_window_workspace_2_key", rc));                                                                          getValue ("move_window_workspace_2_key", rc));
381    parseKeyString (dpy, &keys[KEY_MOVE_WORKSPACE_3],          parseKeyString (dpy, &keys[KEY_MOVE_WORKSPACE_3],
382                    getValue ("move_window_workspace_3_key", rc));                                                                          getValue ("move_window_workspace_3_key", rc));
383    parseKeyString (dpy, &keys[KEY_MOVE_WORKSPACE_4],          parseKeyString (dpy, &keys[KEY_MOVE_WORKSPACE_4],
384                    getValue ("move_window_workspace_4_key", rc));                                                                          getValue ("move_window_workspace_4_key", rc));
385    parseKeyString (dpy, &keys[KEY_MOVE_WORKSPACE_5],          parseKeyString (dpy, &keys[KEY_MOVE_WORKSPACE_5],
386                    getValue ("move_window_workspace_5_key", rc));                                                                          getValue ("move_window_workspace_5_key", rc));
387    parseKeyString (dpy, &keys[KEY_MOVE_WORKSPACE_6],          parseKeyString (dpy, &keys[KEY_MOVE_WORKSPACE_6],
388                    getValue ("move_window_workspace_6_key", rc));                                                                          getValue ("move_window_workspace_6_key", rc));
389    parseKeyString (dpy, &keys[KEY_MOVE_WORKSPACE_7],          parseKeyString (dpy, &keys[KEY_MOVE_WORKSPACE_7],
390                    getValue ("move_window_workspace_7_key", rc));                                                                          getValue ("move_window_workspace_7_key", rc));
391    parseKeyString (dpy, &keys[KEY_MOVE_WORKSPACE_8],          parseKeyString (dpy, &keys[KEY_MOVE_WORKSPACE_8],
392                    getValue ("move_window_workspace_8_key", rc));                                                                          getValue ("move_window_workspace_8_key", rc));
393    parseKeyString (dpy, &keys[KEY_MOVE_WORKSPACE_9],          parseKeyString (dpy, &keys[KEY_MOVE_WORKSPACE_9],
394                    getValue ("move_window_workspace_9_key", rc));                                                                          getValue ("move_window_workspace_9_key", rc));
395    parseKeyString (dpy, &keys[KEY_WINDOW_OPS],          parseKeyString (dpy, &keys[KEY_WINDOW_OPS],
396                    getValue ("window_ops_modifiers", rc));                                                                          getValue ("window_ops_modifiers", rc));
397    parseKeyString (dpy, &keys[KEY_TOP_LEFT],          parseKeyString (dpy, &keys[KEY_TOP_LEFT],
398                    getValue ("move_top_left_key", rc));                                                                          getValue ("move_top_left_key", rc));
399    parseKeyString (dpy, &keys[KEY_TOP_RIGHT],          parseKeyString (dpy, &keys[KEY_TOP_RIGHT],
400                    getValue ("move_top_right_key", rc));                                                                          getValue ("move_top_right_key", rc));
401    parseKeyString (dpy, &keys[KEY_BOTTOM_LEFT],          parseKeyString (dpy, &keys[KEY_BOTTOM_LEFT],
402                    getValue ("move_bottom_left_key", rc));                                                                          getValue ("move_bottom_left_key", rc));
403    parseKeyString (dpy, &keys[KEY_BOTTOM_RIGHT],          parseKeyString (dpy, &keys[KEY_BOTTOM_RIGHT],
404                    getValue ("move_bottom_right_key", rc));                                                                          getValue ("move_bottom_right_key", rc));
405    parseKeyString (dpy, &keys[KEY_QUIT], getValue ("quit_key", rc));          parseKeyString (dpy, &keys[KEY_QUIT], getValue ("quit_key", rc));
406    
407    borderless_windows =          borderless_windows =
408      malloc (sizeof (char) *                  malloc (sizeof (char) *
409              (strlen (getValue ("borderless_windows", rc)) + 1));                                                  (strlen (getValue ("borderless_windows", rc)) + 1));
410    snprintf (borderless_windows,          snprintf (borderless_windows,
411              sizeof (char) * (strlen (getValue ("borderless_windows", rc)) +                                                  sizeof (char) * (strlen (getValue ("borderless_windows", rc)) +
412                               1), "%s", getValue ("borderless_windows", rc));                                                                                                                   1), "%s", getValue ("borderless_windows", rc));
413    
414    ungrabKeys (dpy, gnome_win);          ungrabKeys (dpy, gnome_win);
415    grabKey (dpy, &keys[KEY_CYCLE_WINDOWS], gnome_win);          grabKey (dpy, &keys[KEY_CYCLE_WINDOWS], gnome_win);
416    grabKey (dpy, &keys[KEY_NEXT_WORKSPACE], gnome_win);          grabKey (dpy, &keys[KEY_NEXT_WORKSPACE], gnome_win);
417    grabKey (dpy, &keys[KEY_PREV_WORKSPACE], gnome_win);          grabKey (dpy, &keys[KEY_PREV_WORKSPACE], gnome_win);
418    grabKey (dpy, &keys[KEY_ADD_WORKSPACE], gnome_win);          grabKey (dpy, &keys[KEY_ADD_WORKSPACE], gnome_win);
419    grabKey (dpy, &keys[KEY_NEXT_WORKSPACE], gnome_win);          grabKey (dpy, &keys[KEY_NEXT_WORKSPACE], gnome_win);
420    grabKey (dpy, &keys[KEY_WORKSPACE_1], gnome_win);          grabKey (dpy, &keys[KEY_WORKSPACE_1], gnome_win);
421    grabKey (dpy, &keys[KEY_WORKSPACE_2], gnome_win);          grabKey (dpy, &keys[KEY_WORKSPACE_2], gnome_win);
422    grabKey (dpy, &keys[KEY_WORKSPACE_3], gnome_win);          grabKey (dpy, &keys[KEY_WORKSPACE_3], gnome_win);
423    grabKey (dpy, &keys[KEY_WORKSPACE_4], gnome_win);          grabKey (dpy, &keys[KEY_WORKSPACE_4], gnome_win);
424    grabKey (dpy, &keys[KEY_WORKSPACE_5], gnome_win);          grabKey (dpy, &keys[KEY_WORKSPACE_5], gnome_win);
425    grabKey (dpy, &keys[KEY_WORKSPACE_6], gnome_win);          grabKey (dpy, &keys[KEY_WORKSPACE_6], gnome_win);
426    grabKey (dpy, &keys[KEY_WORKSPACE_7], gnome_win);          grabKey (dpy, &keys[KEY_WORKSPACE_7], gnome_win);
427    grabKey (dpy, &keys[KEY_WORKSPACE_8], gnome_win);          grabKey (dpy, &keys[KEY_WORKSPACE_8], gnome_win);
428    grabKey (dpy, &keys[KEY_WORKSPACE_9], gnome_win);          grabKey (dpy, &keys[KEY_WORKSPACE_9], gnome_win);
429    grabKey (dpy, &keys[KEY_QUIT], gnome_win);          grabKey (dpy, &keys[KEY_QUIT], gnome_win);
430    freeRc (rc);          freeRc (rc);
431  }  }
432    
433  void  void
434  unloadSettings ()  unloadSettings ()
435  {  {
436    int i;          int i;
437  #ifdef DEBUG  #ifdef DEBUG
438    printf ("entering unloadSettings\n");          printf ("entering unloadSettings\n");
439  #endif  #endif
440    for (i = 0; i < 3; i++)          for (i = 0; i < 3; i++)
441      {                  {
442        freePixmap (dpy, &sides[i][ACTIVE]);                          freePixmap (dpy, &sides[i][ACTIVE]);
443        freePixmap (dpy, &sides[i][INACTIVE]);                          freePixmap (dpy, &sides[i][INACTIVE]);
444      }                  }
445    for (i = 0; i < 4; i++)          for (i = 0; i < 4; i++)
446      {                  {
447        freePixmap (dpy, &corners[i][ACTIVE]);                          freePixmap (dpy, &corners[i][ACTIVE]);
448        freePixmap (dpy, &corners[i][INACTIVE]);                          freePixmap (dpy, &corners[i][INACTIVE]);
449        freePixmap (dpy, &buttons[i][ACTIVE]);                          freePixmap (dpy, &buttons[i][ACTIVE]);
450        freePixmap (dpy, &buttons[i][INACTIVE]);                          freePixmap (dpy, &buttons[i][INACTIVE]);
451        freePixmap (dpy, &buttons[i][PRESSED]);                          freePixmap (dpy, &buttons[i][PRESSED]);
452      }                  }
453    for (i = 0; i < 5; i++)          for (i = 0; i < 5; i++)
454      {                  {
455        freePixmap (dpy, &title[i][ACTIVE]);                          freePixmap (dpy, &title[i][ACTIVE]);
456        freePixmap (dpy, &title[i][INACTIVE]);                          freePixmap (dpy, &title[i][INACTIVE]);
457      }                  }
458    XFreeGC (dpy, title_gc[ACTIVE]);          XFreeGC (dpy, title_gc[ACTIVE]);
459    XFreeGC (dpy, title_gc[INACTIVE]);          XFreeGC (dpy, title_gc[INACTIVE]);
460    XFreeGC (dpy, box_gc);          XFreeGC (dpy, box_gc);
461  }  }
462    
463  void  void
464  reloadSettings ()  reloadSettings ()
465  {  {
466    Client *c;          Client *c;
467    int i;          int i;
468    XWindowChanges wc;          XWindowChanges wc;
469  #ifdef DEBUG  #ifdef DEBUG
470    printf ("entering reloadSettings\n");          printf ("entering reloadSettings\n");
471  #endif  #endif
472    for (c = clients, i = 0; i < client_count; c = c->next, i++)          for (c = clients, i = 0; i < client_count; c = c->next, i++)
473      {                  {
474        clientGravitate (c, REMOVE);                          clientGravitate (c, REMOVE);
475        clientUngrabKeys (c);                          clientUngrabKeys (c);
476      }                  }
477    unloadSettings ();          unloadSettings ();
478    loadSettings ();          loadSettings ();
479    for (c = clients, i = 0; i < client_count; c = c->next, i++)          for (c = clients, i = 0; i < client_count; c = c->next, i++)
480      {                  {
481        clientGravitate (c, APPLY);                          clientGravitate (c, APPLY);
482        wc.x = c->x;                          wc.x = c->x;
483        wc.y = c->y;                          wc.y = c->y;
484        wc.width = c->width;                          wc.width = c->width;
485        wc.height = c->height;                          wc.height = c->height;
486        clientConfigure (c, &wc, CWX | CWY | CWWidth | CWHeight);                          clientConfigure (c, &wc, CWX | CWY | CWWidth | CWHeight);
487        clientGrabKeys (c);                          clientGrabKeys (c);
488      }                  }
489  }  }
490    
491  /**This must remain at the end of the file.**********  /**This must remain at the end of the file.**********
492   * vim600:set sw=2 ts=8:                            *   * vim600:set sw=2 ts=2:                            *
493   * vim600:set cindent cinoptions={1s,>2s,^-1s,n-1s: *   * vim600:set cindent cinoptions={1s,>2s,^-1s,n-1s: *
494   * vim600:set foldmethod=marker:                    *   * vim600:set foldmethod=marker:                    *
495   ****************************************************/   ****************************************************/

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.9

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26