static Bool zoomSetDisplayOption(CompPlugin *plugin, CompDisplay *display, const char *name, CompOptionValue *value) { CompOption *o; int index; ZOOM_DISPLAY(display); o = compFindOption(zd->opt, NUM_OPTIONS(zd), name, &index); if (!o) return FALSE; switch (index) { case ZOOM_DISPLAY_OPTION_OUT_BUTTON: if (compSetActionOption(o, value)) return TRUE; break; default: return compSetDisplayOption(display, o, value); } return FALSE; }
Bool compSetOption(CompOption * option, CompOptionValue * value) { switch (option->type) { case CompOptionTypeBool: return compSetBoolOption(option, value); case CompOptionTypeInt: return compSetIntOption(option, value); case CompOptionTypeFloat: return compSetFloatOption(option, value); case CompOptionTypeString: return compSetStringOption(option, value); case CompOptionTypeColor: return compSetColorOption(option, value); case CompOptionTypeMatch: return compSetMatchOption(option, value); case CompOptionTypeAction: case CompOptionTypeKey: case CompOptionTypeButton: case CompOptionTypeEdge: case CompOptionTypeBell: return compSetActionOption(option, value); case CompOptionTypeList: return compSetOptionList(option, value); } return FALSE; }
Bool compSetDisplayOption (CompDisplay *d, CompOption *o, CompOptionValue *value) { if (isActionOption (o)) { if (o->value.action.state & CompActionStateAutoGrab) { if (setDisplayAction (d, o, value)) return TRUE; } else { if (compSetActionOption (o, value)) return TRUE; } } else { if (compSetOption (o, value)) return TRUE; } return FALSE; }