static int value_member(lua_State*L) { lua_combobox combobox; luaA_to(L,lua_combobox,&combobox,1); int length = dt_bauhaus_combobox_length(combobox->widget); if(lua_gettop(L) > 2) { if(lua_isnil(L,3)) { dt_bauhaus_combobox_set(combobox->widget,-1); } else if(lua_isnumber(L,3)) { int index = lua_tointeger(L,3) ; if(index < 1 || index > length) { return luaL_error(L,"Invalid index for combo box : %d\n",index); } dt_bauhaus_combobox_set(combobox->widget,index -1); } else if(lua_isstring(L,3)&& dt_bauhaus_combobox_get_editable(combobox->widget)) { const char * string = lua_tostring(L,3); dt_bauhaus_combobox_set_text(combobox->widget,string); } else { return luaL_error(L,"Invalid type for combo box value\n"); } return 0; } lua_pushstring(L,dt_bauhaus_combobox_get_text(combobox->widget)); return 1; }
void gui_update(struct dt_iop_module_t *self) { dt_iop_borders_gui_data_t *g = (dt_iop_borders_gui_data_t *)self->gui_data; dt_iop_borders_params_t *p = (dt_iop_borders_params_t *)self->params; dt_bauhaus_slider_set(g->size, p->size*100.0f); int k = 0; for(;k<9;k++) { if(fabsf(p->aspect - g->aspect_ratios[k]) < 0.0001f) { dt_bauhaus_combobox_set(g->aspect, k); break; } } if(k == 9) { char text[128]; snprintf(text, 128, "%.3f:1", p->aspect); dt_bauhaus_combobox_set(g->aspect, -1); dt_bauhaus_combobox_set_text(g->aspect, text); } GdkColor c; c.red = p->color[0]*65535.0; c.green = p->color[1]*65535.0; c.blue = p->color[2]*65535.0; gtk_widget_modify_fg(GTK_WIDGET(g->colorpick), GTK_STATE_NORMAL, &c); }
void gui_update(struct dt_iop_module_t *self) { dt_iop_borders_gui_data_t *g = (dt_iop_borders_gui_data_t *)self->gui_data; dt_iop_borders_params_t *p = (dt_iop_borders_params_t *)self->params; dt_bauhaus_slider_set(g->size, p->size*100.0f); // ----- Aspect int k = 0; for(; k<DT_IOP_BORDERS_ASPECT_COUNT; k++) { if(fabsf(p->aspect - g->aspect_ratios[k]) < 0.0001f) { dt_bauhaus_combobox_set(g->aspect, k); break; } } if(k == DT_IOP_BORDERS_ASPECT_COUNT) { dt_bauhaus_combobox_set_text(g->aspect, p->aspect_text); dt_bauhaus_combobox_set(g->aspect, -1); } // ----- aspect orientation dt_bauhaus_combobox_set(g->aspect_orient, p->aspect_orient); // ----- Position H for(k=0; k<DT_IOP_BORDERS_POSITION_H_COUNT; k++) { if(fabsf(p->pos_h - g->pos_h_ratios[k]) < 0.0001f) { dt_bauhaus_combobox_set(g->pos_h, k); break; } } if(k == DT_IOP_BORDERS_POSITION_H_COUNT) { dt_bauhaus_combobox_set_text(g->pos_h, p->pos_h_text); dt_bauhaus_combobox_set(g->pos_h, -1); } // ----- Position V for(k=0; k<DT_IOP_BORDERS_POSITION_V_COUNT; k++) { if(fabsf(p->pos_v - g->pos_v_ratios[k]) < 0.0001f) { dt_bauhaus_combobox_set(g->pos_v, k); break; } } if(k == DT_IOP_BORDERS_POSITION_V_COUNT) { dt_bauhaus_combobox_set_text(g->pos_v, p->pos_v_text); dt_bauhaus_combobox_set(g->pos_v, -1); } dt_bauhaus_slider_set(g->frame_size, p->frame_size*100.0f); dt_bauhaus_slider_set(g->frame_offset, p->frame_offset*100.0f); // ----- Border Color GdkColor c; c.red = p->color[0]*65535.0; c.green = p->color[1]*65535.0; c.blue = p->color[2]*65535.0; gtk_widget_modify_fg(GTK_WIDGET(g->colorpick), GTK_STATE_NORMAL, &c); // ----- Frame Color GdkColor fc; fc.red = p->frame_color[0]*65535.0; fc.green = p->frame_color[1]*65535.0; fc.blue = p->frame_color[2]*65535.0; gtk_widget_modify_fg(GTK_WIDGET(g->frame_colorpick), GTK_STATE_NORMAL, &fc); }
void gui_update(struct dt_iop_module_t *self) { dt_iop_borders_gui_data_t *g = (dt_iop_borders_gui_data_t *)self->gui_data; dt_iop_borders_params_t *p = (dt_iop_borders_params_t *)self->params; dt_bauhaus_slider_set(g->size, p->size * 100.0f); // ----- Aspect int k = 0; for(; k < DT_IOP_BORDERS_ASPECT_COUNT; k++) { if(fabsf(p->aspect - g->aspect_ratios[k]) < 0.0001f) { dt_bauhaus_combobox_set(g->aspect, k); break; } } if(k == DT_IOP_BORDERS_ASPECT_COUNT) { dt_bauhaus_combobox_set_text(g->aspect, p->aspect_text); dt_bauhaus_combobox_set(g->aspect, -1); } // ----- aspect orientation dt_bauhaus_combobox_set(g->aspect_orient, p->aspect_orient); // ----- Position H for(k = 0; k < DT_IOP_BORDERS_POSITION_H_COUNT; k++) { if(fabsf(p->pos_h - g->pos_h_ratios[k]) < 0.0001f) { dt_bauhaus_combobox_set(g->pos_h, k); break; } } if(k == DT_IOP_BORDERS_POSITION_H_COUNT) { dt_bauhaus_combobox_set_text(g->pos_h, p->pos_h_text); dt_bauhaus_combobox_set(g->pos_h, -1); } // ----- Position V for(k = 0; k < DT_IOP_BORDERS_POSITION_V_COUNT; k++) { if(fabsf(p->pos_v - g->pos_v_ratios[k]) < 0.0001f) { dt_bauhaus_combobox_set(g->pos_v, k); break; } } if(k == DT_IOP_BORDERS_POSITION_V_COUNT) { dt_bauhaus_combobox_set_text(g->pos_v, p->pos_v_text); dt_bauhaus_combobox_set(g->pos_v, -1); } dt_bauhaus_slider_set(g->frame_size, p->frame_size * 100.0f); dt_bauhaus_slider_set(g->frame_offset, p->frame_offset * 100.0f); // ----- Border Color GdkRGBA c = (GdkRGBA){.red = p->color[0], .green = p->color[1], .blue = p->color[2], .alpha = 1.0 }; gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(g->colorpick), &c); // ----- Frame Color GdkRGBA fc = (GdkRGBA){ .red = p->frame_color[0], .green = p->frame_color[1], .blue = p->frame_color[2], .alpha = 1.0 }; gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(g->frame_colorpick), &fc); } void init(dt_iop_module_t *module) { // module->data = malloc(sizeof(dt_iop_borders_data_t)); module->params = calloc(1, sizeof(dt_iop_borders_params_t)); module->default_params = calloc(1, sizeof(dt_iop_borders_params_t)); module->default_enabled = 0; module->params_size = sizeof(dt_iop_borders_params_t); module->gui_data = NULL; module->priority = 953; // module order created by iop_dependencies.py, do not edit! } void cleanup(dt_iop_module_t *module) { free(module->params); module->params = NULL; }