diff options
| author | Dana Jansens <danakj@orodu.net> | 2003-05-16 18:10:10 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2003-05-16 18:10:10 +0000 |
| commit | b77e40e1c7710323aa59a778338d8e18b591f718 (patch) | |
| tree | 48ae520439b10bffa5c63f3cc5a7230ccab06331 /openbox/config.c | |
| parent | 6e42b65bda1706887f3b2a7f9d79ba20f7611a06 (diff) | |
rename "Slit" to "Dock".
add config options to the rc3 for the dock.
create a window_map, add DockApps to the ObWindow types, use the window_map for translating windows into objects for event handling (only one lookup now) and remove the old maps (client_map, menu_map).
Diffstat (limited to 'openbox/config.c')
| -rw-r--r-- | openbox/config.c | 95 |
1 files changed, 94 insertions, 1 deletions
diff --git a/openbox/config.c b/openbox/config.c index 5624c48c..e751f32b 100644 --- a/openbox/config.c +++ b/openbox/config.c @@ -9,12 +9,20 @@ gboolean config_focus_popup; char *config_theme; -int config_desktops_num; +int config_desktops_num; GSList *config_desktops_names; gboolean config_opaque_move; gboolean config_opaque_resize; +StackLayer config_dock_layer; +DockPosition config_dock_pos; +int config_dock_x; +int config_dock_y; +gboolean config_dock_horz; +gboolean config_dock_hide; +guint config_dock_hide_timeout; + static void parse_focus(char *name, ParseToken *value) { if (!g_ascii_strcasecmp(name, "focusnew")) { @@ -118,6 +126,81 @@ static void parse_moveresize(char *name, ParseToken *value) parse_free_token(value); } +static void parse_dock(char *name, ParseToken *value) +{ + if (!g_ascii_strcasecmp(name, "stacking")) { + if (value->type != TOKEN_STRING) + yyerror("invalid value"); + else { + if (!g_ascii_strcasecmp(value->data.string, "bottom")) + config_dock_layer = Layer_Below; + else if (!g_ascii_strcasecmp(value->data.string, "normal")) + config_dock_layer = Layer_Normal; + else if (!g_ascii_strcasecmp(value->data.string, "top")) + config_dock_layer = Layer_Top; + else + yyerror("invalid layer"); + } + } else if (!g_ascii_strcasecmp(name, "position")) { + if (value->type != TOKEN_STRING) + yyerror("invalid value"); + else { + if (!g_ascii_strcasecmp(value->data.string, "topleft")) + config_dock_pos = DockPos_TopLeft; + else if (!g_ascii_strcasecmp(value->data.string, "top")) + config_dock_pos = DockPos_Top; + else if (!g_ascii_strcasecmp(value->data.string, "topright")) + config_dock_pos = DockPos_TopRight; + else if (!g_ascii_strcasecmp(value->data.string, "right")) + config_dock_pos = DockPos_Right; + else if (!g_ascii_strcasecmp(value->data.string, "bottomright")) + config_dock_pos = DockPos_BottomRight; + else if (!g_ascii_strcasecmp(value->data.string, "bottom")) + config_dock_pos = DockPos_Bottom; + else if (!g_ascii_strcasecmp(value->data.string, "bottomleft")) + config_dock_pos = DockPos_BottomLeft; + else if (!g_ascii_strcasecmp(value->data.string, "left")) + config_dock_pos = DockPos_Left; + else if (!g_ascii_strcasecmp(value->data.string, "floating")) + config_dock_pos = DockPos_Floating; + else + yyerror("invalid position"); + } + } else if (!g_ascii_strcasecmp(name, "floatingx")) { + if (value->type != TOKEN_INTEGER) + yyerror("invalid value"); + else { + config_dock_x = value->data.integer; + } + } else if (!g_ascii_strcasecmp(name, "floatingy")) { + if (value->type != TOKEN_INTEGER) + yyerror("invalid value"); + else { + config_dock_y = value->data.integer; + } + } else if (!g_ascii_strcasecmp(name, "horizontal")) { + if (value->type != TOKEN_BOOL) + yyerror("invalid value"); + else { + config_dock_horz = value->data.bool; + } + } else if (!g_ascii_strcasecmp(name, "autohide")) { + if (value->type != TOKEN_BOOL) + yyerror("invalid value"); + else { + config_dock_hide = value->data.bool; + } + } else if (!g_ascii_strcasecmp(name, "hidetimeout")) { + if (value->type != TOKEN_INTEGER) + yyerror("invalid value"); + else { + config_dock_hide_timeout = value->data.integer; + } + } else + yyerror("invalid option"); + parse_free_token(value); +} + void config_startup() { config_focus_new = TRUE; @@ -141,6 +224,16 @@ void config_startup() config_opaque_resize = TRUE; parse_reg_section("moveresize", NULL, parse_moveresize); + + config_dock_layer = Layer_Top; + config_dock_pos = DockPos_TopRight; + config_dock_x = 0; + config_dock_y = 0; + config_dock_horz = FALSE; + config_dock_hide = FALSE; + config_dock_hide_timeout = 3000; + + parse_reg_section("dock", NULL, parse_dock); } void config_shutdown() |
