Enlightenment CVS committal
Author : rbdpngn
Project : e17
Module : libs/ewl
Dir : e17/libs/ewl/src
Modified Files:
ewl_spectrum.c ewl_spectrum.h
Log Message:
A real 2d gradient for arbitrary RGB. This makes some of the pick modes
redundant, so they've been removed.
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_spectrum.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -3 -r1.7 -r1.8
--- ewl_spectrum.c 27 Jul 2004 15:03:49 -0000 1.7
+++ ewl_spectrum.c 27 Jul 2004 16:17:29 -0000 1.8
@@ -37,6 +37,7 @@
ewl_callback_append(w, EWL_CALLBACK_CONFIGURE,
ewl_spectrum_configure_cb, NULL);
+ sp->orientation = EWL_ORIENTATION_VERTICAL;
sp->mode = EWL_PICK_MODE_HSV_HUE;
sp->dimensions = 2;
sp->redraw = 1;
@@ -50,14 +51,32 @@
DRETURN(DLEVEL_STABLE);
}
+void ewl_spectrum_orientation_set(Ewl_Spectrum *sp, int o)
+{
+ DENTER_FUNCTION(DLEVEL_STABLE);
+ DCHECK_PARAM_PTR("sp", sp);
+
+ if (sp->orientation != o) {
+ sp->orientation = o;
+ if (sp->dimensions == 1) {
+ sp->redraw = 1;
+ ewl_widget_configure(EWL_WIDGET(sp));
+ }
+ }
+
+ DLEAVE_FUNCTION(DLEVEL_STABLE);
+}
+
void ewl_spectrum_mode_set(Ewl_Spectrum * sp, int mode)
{
DENTER_FUNCTION(DLEVEL_STABLE);
DCHECK_PARAM_PTR("sp", sp);
- sp->mode = mode;
- sp->redraw = 1;
- ewl_widget_configure(EWL_WIDGET(sp));
+ if (sp->mode != mode) {
+ sp->mode = mode;
+ sp->redraw = 1;
+ ewl_widget_configure(EWL_WIDGET(sp));
+ }
DRETURN(DLEVEL_STABLE);
}
@@ -69,11 +88,11 @@
DENTER_FUNCTION(DLEVEL_STABLE);
DCHECK_PARAM_PTR("sp", sp);
- if (dimensions == 1 || dimensions == 2)
+ if (dimensions == 1 || dimensions == 2) {
sp->dimensions = dimensions;
-
- sp->redraw = 1;
- ewl_widget_configure(EWL_WIDGET(sp));
+ sp->redraw = 1;
+ ewl_widget_configure(EWL_WIDGET(sp));
+ }
DRETURN(DLEVEL_STABLE);
}
@@ -112,6 +131,8 @@
if (v >= 0 && v <= 1)
sp->v = v;
+ sp->redraw = 1;
+
ewl_widget_configure(EWL_WIDGET(sp));
DRETURN(DLEVEL_STABLE);
@@ -171,22 +192,23 @@
a = 255;
if (pick_mode == EWL_PICK_MODE_RGB) {
- r = red * (1 - (float) j / (float) ph);
- g = green * (1 - (float) j / (float) ph);
- b = blue * (1 - (float) j / (float) ph);
- }
- else if (pick_mode == EWL_PICK_MODE_RGB_RED) {
- r = red;
- g = 255 * (float) i / (float) pw;
- b = 255 * (float) j / (float) ph;
- } else if (pick_mode == EWL_PICK_MODE_RGB_GREEN) {
- r = 255 * (float) i / (float) pw;
- g = green;
- b = 255 * (float) j / (float) ph;
- } else if (pick_mode == EWL_PICK_MODE_RGB_BLUE) {
- r = 255 * (float) i / (float) pw;
- g = 255 * (float) j / (float) ph;
- b = blue;
+
+ r = red + (j) * (255 - red) / ph;
+ r = r * i / pw;
+ g = green + (j) * (255 - green) / ph;
+ g = g * i / pw;
+ b = blue + (j) * (255 - blue) / ph;
+ b = b * i / pw;
+
+ /*
+ r = red + (ph - j) * (255 - red) / ph;
+ r = r * i / pw;
+ g = green + (ph - j) * (255 - green) / ph;
+ g = g * i / pw;
+ b = blue + (ph - j) * (255 - blue) / ph;
+ b = b * i / pw;
+ */
+
} else if (pick_mode == EWL_PICK_MODE_HSV_HUE) {
h = hue;
s = 1 - (float) i / (float) pw;
@@ -240,18 +262,6 @@
r = red * (1 - (float) j / (float) ph);
g = green * (1 - (float) j / (float) ph);
b = blue * (1 - (float) j / (float) ph);
- } else if (pick_mode == EWL_PICK_MODE_RGB_RED) {
- r = 255 * (1 - (float) j / (float) ph);
- g = 0;
- b = 0;
- } else if (pick_mode == EWL_PICK_MODE_RGB_GREEN) {
- r = 0;
- g = 255 * (1 - (float) j / (float) ph);
- b = 0;
- } else if (pick_mode == EWL_PICK_MODE_RGB_BLUE) {
- r = 0;
- g = 0;
- b = 255 * (1 - (float) j / (float) ph);
} else if (pick_mode == EWL_PICK_MODE_HSV_HUE) {
h = 360 * (float) j / (float) ph;
s = 1.0;
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_spectrum.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- ewl_spectrum.h 27 Jul 2004 15:07:14 -0000 1.5
+++ ewl_spectrum.h 27 Jul 2004 16:17:29 -0000 1.6
@@ -8,9 +8,6 @@
enum {
EWL_PICK_MODE_RGB,
- EWL_PICK_MODE_RGB_RED,
- EWL_PICK_MODE_RGB_GREEN,
- EWL_PICK_MODE_RGB_BLUE,
EWL_PICK_MODE_HSV_HUE,
EWL_PICK_MODE_HSV_SATURATION,
EWL_PICK_MODE_HSV_VALUE
-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs