Enlightenment CVS committal Author : dj2 Project : e17 Module : libs/ewl
Dir : e17/libs/ewl/src/lib Modified Files: ewl_colorpicker.c Log Message: - remove duplicate code =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_colorpicker.c,v retrieving revision 1.19 retrieving revision 1.20 diff -u -3 -r1.19 -r1.20 --- ewl_colorpicker.c 19 May 2006 15:55:47 -0000 1.19 +++ ewl_colorpicker.c 19 May 2006 16:13:53 -0000 1.20 @@ -77,9 +77,24 @@ int ewl_colorpicker_init(Ewl_Colorpicker *cp) { - Ewl_Widget *vbox, *hbox, *o, *prev; + Ewl_Widget *vbox, *hbox, *o, *prev = NULL; unsigned int r, g, b; double h, s, v; + int i; + struct + { + char *name; + Ewl_Color_Mode mode; + int max; + } modes[] = { + {"h", EWL_COLOR_MODE_HSV_HUE, 360}, + {"s", EWL_COLOR_MODE_HSV_SATURATION, 100}, + {"v", EWL_COLOR_MODE_HSV_VALUE, 100}, + {"r", EWL_COLOR_MODE_RGB_RED, 255}, + {"g", EWL_COLOR_MODE_RGB_GREEN, 255}, + {"b", EWL_COLOR_MODE_RGB_BLUE, 255}, + {NULL, EWL_COLOR_MODE_RGB_RED, 0} + }; DENTER_FUNCTION(DLEVEL_STABLE); DCHECK_PARAM_PTR_RET("cp", cp, FALSE); @@ -188,203 +203,74 @@ ewl_object_fill_policy_set(EWL_OBJECT(vbox), EWL_FLAG_FILL_SHRINK); ewl_widget_show(vbox); - /* h button/spinner */ - hbox = ewl_hbox_new(); - ewl_widget_internal_set(hbox, TRUE); - ewl_container_child_append(EWL_CONTAINER(vbox), hbox); - ewl_widget_show(hbox); - - o = ewl_colorpicker_radiobutton_new(); - ewl_widget_internal_set(o, TRUE); - ewl_button_label_set(EWL_BUTTON(o), "h"); - ewl_radiobutton_checked_set(EWL_RADIOBUTTON(o), TRUE); - ewl_container_child_append(EWL_CONTAINER(hbox), o); - ewl_colorpicker_radiobutton_mode_set(EWL_COLORPICKER_RADIOBUTTON(o), - EWL_COLOR_MODE_HSV_HUE); - ewl_callback_append(o, EWL_CALLBACK_VALUE_CHANGED, - ewl_colorpicker_cb_radio_change, cp); - prev = o; - ewl_widget_show(o); - - o = ewl_colorpicker_spinner_new(); - ewl_widget_internal_set(o, TRUE); - ewl_container_child_append(EWL_CONTAINER(hbox), o); - ewl_spinner_min_val_set(EWL_SPINNER(o), 0); - ewl_spinner_max_val_set(EWL_SPINNER(o), 360); - ewl_spinner_value_set(EWL_SPINNER(o), h); - ewl_spinner_step_set(EWL_SPINNER(o), 1); - ewl_spinner_digits_set(EWL_SPINNER(o), 0); - ewl_colorpicker_spinner_mode_set(EWL_COLORPICKER_SPINNER(o), - EWL_COLOR_MODE_HSV_HUE); - ewl_callback_append(o, EWL_CALLBACK_VALUE_CHANGED, - ewl_colorpicker_cb_spinner_change, cp); - cp->spinners.hsv.h = o; - ewl_widget_show(o); - - /* s button/spinner */ - hbox = ewl_hbox_new(); - ewl_widget_internal_set(hbox, TRUE); - ewl_container_child_append(EWL_CONTAINER(vbox), hbox); - ewl_widget_show(hbox); - - o = ewl_colorpicker_radiobutton_new(); - ewl_widget_internal_set(o, TRUE); - ewl_button_label_set(EWL_BUTTON(o), "s"); - ewl_container_child_append(EWL_CONTAINER(hbox), o); - ewl_radiobutton_chain_set(EWL_RADIOBUTTON(o), EWL_RADIOBUTTON(prev)); - ewl_colorpicker_radiobutton_mode_set(EWL_COLORPICKER_RADIOBUTTON(o), - EWL_COLOR_MODE_HSV_SATURATION); - ewl_callback_append(o, EWL_CALLBACK_VALUE_CHANGED, - ewl_colorpicker_cb_radio_change, cp); - prev = o; - ewl_widget_show(o); - - o = ewl_colorpicker_spinner_new(); - ewl_widget_internal_set(o, TRUE); - ewl_container_child_append(EWL_CONTAINER(hbox), o); - ewl_spinner_min_val_set(EWL_SPINNER(o), 0); - ewl_spinner_max_val_set(EWL_SPINNER(o), 100); - ewl_spinner_value_set(EWL_SPINNER(o), s * 100); - ewl_spinner_step_set(EWL_SPINNER(o), 1); - ewl_spinner_digits_set(EWL_SPINNER(o), 0); - ewl_colorpicker_spinner_mode_set(EWL_COLORPICKER_SPINNER(o), - EWL_COLOR_MODE_HSV_SATURATION); - ewl_callback_append(o, EWL_CALLBACK_VALUE_CHANGED, - ewl_colorpicker_cb_spinner_change, cp); - cp->spinners.hsv.s = o; - ewl_widget_show(o); - - /* v button/spinner */ - hbox = ewl_hbox_new(); - ewl_widget_internal_set(hbox, TRUE); - ewl_container_child_append(EWL_CONTAINER(vbox), hbox); - ewl_widget_show(hbox); - - o = ewl_colorpicker_radiobutton_new(); - ewl_widget_internal_set(o, TRUE); - ewl_button_label_set(EWL_BUTTON(o), "v"); - ewl_container_child_append(EWL_CONTAINER(hbox), o); - ewl_radiobutton_chain_set(EWL_RADIOBUTTON(o), EWL_RADIOBUTTON(prev)); - ewl_colorpicker_radiobutton_mode_set(EWL_COLORPICKER_RADIOBUTTON(o), - EWL_COLOR_MODE_HSV_VALUE); - ewl_callback_append(o, EWL_CALLBACK_VALUE_CHANGED, + /* setup the spinners and radiobuttons */ + for (i = 0; modes[i].name != NULL; i++) + { + hbox = ewl_hbox_new(); + ewl_widget_internal_set(hbox, TRUE); + ewl_container_child_append(EWL_CONTAINER(vbox), hbox); + ewl_widget_show(hbox); + + o = ewl_colorpicker_radiobutton_new(); + ewl_widget_internal_set(o, TRUE); + ewl_button_label_set(EWL_BUTTON(o), modes[i].name); + if (!prev) + ewl_radiobutton_checked_set(EWL_RADIOBUTTON(o), TRUE); + else + ewl_radiobutton_checked_set(EWL_RADIOBUTTON(o), FALSE); + + ewl_container_child_append(EWL_CONTAINER(hbox), o); + ewl_colorpicker_radiobutton_mode_set(EWL_COLORPICKER_RADIOBUTTON(o), + modes[i].mode); + if (prev) + ewl_radiobutton_chain_set(EWL_RADIOBUTTON(o), EWL_RADIOBUTTON(prev)); + ewl_callback_append(o, EWL_CALLBACK_VALUE_CHANGED, ewl_colorpicker_cb_radio_change, cp); - prev = o; - ewl_widget_show(o); + prev = o; + ewl_widget_show(o); - o = ewl_colorpicker_spinner_new(); - ewl_widget_internal_set(o, TRUE); - ewl_container_child_append(EWL_CONTAINER(hbox), o); - ewl_spinner_min_val_set(EWL_SPINNER(o), 0); - ewl_spinner_max_val_set(EWL_SPINNER(o), 100); - ewl_spinner_value_set(EWL_SPINNER(o), v * 100); - ewl_spinner_step_set(EWL_SPINNER(o), 1); - ewl_spinner_digits_set(EWL_SPINNER(o), 0); - ewl_colorpicker_spinner_mode_set(EWL_COLORPICKER_SPINNER(o), - EWL_COLOR_MODE_HSV_VALUE); - ewl_callback_append(o, EWL_CALLBACK_VALUE_CHANGED, + o = ewl_colorpicker_spinner_new(); + ewl_widget_internal_set(o, TRUE); + ewl_container_child_append(EWL_CONTAINER(hbox), o); + ewl_spinner_min_val_set(EWL_SPINNER(o), 0); + ewl_spinner_max_val_set(EWL_SPINNER(o), modes[i].max); + + switch(modes[i].mode) + { + case EWL_COLOR_MODE_HSV_HUE: + ewl_spinner_value_set(EWL_SPINNER(o), h); + cp->spinners.hsv.h = o; + break; + case EWL_COLOR_MODE_HSV_SATURATION: + ewl_spinner_value_set(EWL_SPINNER(o), s * 100); + cp->spinners.hsv.s = o; + break; + case EWL_COLOR_MODE_HSV_VALUE: + ewl_spinner_value_set(EWL_SPINNER(o), v * 100); + cp->spinners.hsv.v = o; + break; + case EWL_COLOR_MODE_RGB_RED: + ewl_spinner_value_set(EWL_SPINNER(o), r); + cp->spinners.rgb.r = o; + break; + case EWL_COLOR_MODE_RGB_GREEN: + ewl_spinner_value_set(EWL_SPINNER(o), g); + cp->spinners.rgb.g = o; + break; + case EWL_COLOR_MODE_RGB_BLUE: + ewl_spinner_value_set(EWL_SPINNER(o), b); + cp->spinners.rgb.b = o; + break; + } + + ewl_spinner_step_set(EWL_SPINNER(o), 1); + ewl_spinner_digits_set(EWL_SPINNER(o), 0); + ewl_colorpicker_spinner_mode_set(EWL_COLORPICKER_SPINNER(o), + modes[i].mode); + ewl_callback_append(o, EWL_CALLBACK_VALUE_CHANGED, ewl_colorpicker_cb_spinner_change, cp); - cp->spinners.hsv.v = o; - ewl_widget_show(o); - - /* r button/spinner */ - hbox = ewl_hbox_new(); - ewl_widget_internal_set(hbox, TRUE); - ewl_container_child_append(EWL_CONTAINER(vbox), hbox); - ewl_widget_show(hbox); - - o = ewl_colorpicker_radiobutton_new(); - ewl_widget_internal_set(o, TRUE); - ewl_button_label_set(EWL_BUTTON(o), "r"); - ewl_container_child_append(EWL_CONTAINER(hbox), o); - ewl_radiobutton_chain_set(EWL_RADIOBUTTON(o), EWL_RADIOBUTTON(prev)); - ewl_colorpicker_radiobutton_mode_set(EWL_COLORPICKER_RADIOBUTTON(o), - EWL_COLOR_MODE_RGB_RED); - ewl_callback_append(o, EWL_CALLBACK_VALUE_CHANGED, - ewl_colorpicker_cb_radio_change, cp); - prev = o; - ewl_widget_show(o); - - o = ewl_colorpicker_spinner_new(); - ewl_widget_internal_set(o, TRUE); - ewl_container_child_append(EWL_CONTAINER(hbox), o); - ewl_spinner_min_val_set(EWL_SPINNER(o), 0); - ewl_spinner_max_val_set(EWL_SPINNER(o), 255); - ewl_spinner_value_set(EWL_SPINNER(o), r); - ewl_spinner_step_set(EWL_SPINNER(o), 1); - ewl_spinner_digits_set(EWL_SPINNER(o), 0); - ewl_colorpicker_spinner_mode_set(EWL_COLORPICKER_SPINNER(o), - EWL_COLOR_MODE_RGB_RED); - ewl_callback_append(o, EWL_CALLBACK_VALUE_CHANGED, - ewl_colorpicker_cb_spinner_change, cp); - cp->spinners.rgb.r = o; - ewl_widget_show(o); - - /* g button/spinner */ - hbox = ewl_hbox_new(); - ewl_widget_internal_set(hbox, TRUE); - ewl_container_child_append(EWL_CONTAINER(vbox), hbox); - ewl_widget_show(hbox); - - o = ewl_colorpicker_radiobutton_new(); - ewl_widget_internal_set(o, TRUE); - ewl_button_label_set(EWL_BUTTON(o), "g"); - ewl_container_child_append(EWL_CONTAINER(hbox), o); - ewl_radiobutton_chain_set(EWL_RADIOBUTTON(o), EWL_RADIOBUTTON(prev)); - ewl_colorpicker_radiobutton_mode_set(EWL_COLORPICKER_RADIOBUTTON(o), - EWL_COLOR_MODE_RGB_GREEN); - ewl_callback_append(o, EWL_CALLBACK_VALUE_CHANGED, - ewl_colorpicker_cb_radio_change, cp); - prev = o; - ewl_widget_show(o); - - o = ewl_colorpicker_spinner_new(); - ewl_widget_internal_set(o, TRUE); - ewl_container_child_append(EWL_CONTAINER(hbox), o); - ewl_spinner_min_val_set(EWL_SPINNER(o), 0); - ewl_spinner_max_val_set(EWL_SPINNER(o), 255); - ewl_spinner_value_set(EWL_SPINNER(o), g); - ewl_spinner_step_set(EWL_SPINNER(o), 1); - ewl_spinner_digits_set(EWL_SPINNER(o), 0); - ewl_colorpicker_spinner_mode_set(EWL_COLORPICKER_SPINNER(o), - EWL_COLOR_MODE_RGB_GREEN); - ewl_callback_append(o, EWL_CALLBACK_VALUE_CHANGED, - ewl_colorpicker_cb_spinner_change, cp); - cp->spinners.rgb.g = o; - ewl_widget_show(o); - - /* b button/spinner */ - hbox = ewl_hbox_new(); - ewl_widget_internal_set(hbox, TRUE); - ewl_container_child_append(EWL_CONTAINER(vbox), hbox); - ewl_widget_show(hbox); - - o = ewl_colorpicker_radiobutton_new(); - ewl_widget_internal_set(o, TRUE); - ewl_button_label_set(EWL_BUTTON(o), "b"); - ewl_container_child_append(EWL_CONTAINER(hbox), o); - ewl_radiobutton_chain_set(EWL_RADIOBUTTON(o), EWL_RADIOBUTTON(prev)); - ewl_colorpicker_radiobutton_mode_set(EWL_COLORPICKER_RADIOBUTTON(o), - EWL_COLOR_MODE_RGB_BLUE); - ewl_callback_append(o, EWL_CALLBACK_VALUE_CHANGED, - ewl_colorpicker_cb_radio_change, cp); - prev = o; - ewl_widget_show(o); - - o = ewl_colorpicker_spinner_new(); - ewl_widget_internal_set(o, TRUE); - ewl_container_child_append(EWL_CONTAINER(hbox), o); - ewl_spinner_min_val_set(EWL_SPINNER(o), 0); - ewl_spinner_max_val_set(EWL_SPINNER(o), 255); - ewl_spinner_value_set(EWL_SPINNER(o), b); - ewl_spinner_step_set(EWL_SPINNER(o), 1); - ewl_spinner_digits_set(EWL_SPINNER(o), 0); - ewl_colorpicker_spinner_mode_set(EWL_COLORPICKER_SPINNER(o), - EWL_COLOR_MODE_RGB_BLUE); - ewl_callback_append(o, EWL_CALLBACK_VALUE_CHANGED, - ewl_colorpicker_cb_spinner_change, cp); - cp->spinners.rgb.b = o; - ewl_widget_show(o); + ewl_widget_show(o); + } /* alpha spinner */ o = ewl_spinner_new(); ------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs