+ 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);
+}