static int colorlabel_index(lua_State *L) { int imgid; luaA_to(L,dt_lua_image_t,&imgid,-2); int colorlabel_index = luaL_checkoption(L,-1,NULL,dt_colorlabels_name); lua_pushboolean(L,dt_colorlabels_check_label(imgid,colorlabel_index)); return 1; }
static int colorlabel_member(lua_State *L) { int imgid; luaA_to(L, dt_lua_image_t, &imgid, 1); int colorlabel_index = luaL_checkoption(L, 2, NULL, dt_colorlabels_name); if(lua_gettop(L) != 3) { lua_pushboolean(L, dt_colorlabels_check_label(imgid, colorlabel_index)); return 1; } else { if(lua_toboolean(L, 3)) // no testing of type so we can benefit from all types of values { dt_colorlabels_set_label(imgid, colorlabel_index); } else { dt_colorlabels_remove_label(imgid, colorlabel_index); } return 0; } }