gtk chooser used with float representation.
free(scolor);
if (!c)
- return color_new(0xffff, 0xffff, 0xffff);
+ return color_new(1, 1, 1);
return c;
}
free(scolor);
if (!c)
- return color_new(0x0000, 0x0000, 0x0000);
+ return color_new(0, 0, 0);
return c;
}
cairo_fill(cr);
if (config->alpha_channel_enabled)
cairo_set_source_rgba(cr,
- bgcolor->f_red,
- bgcolor->f_green,
- bgcolor->f_blue,
+ bgcolor->red,
+ bgcolor->green,
+ bgcolor->blue,
config->graph_bg_alpha);
else
cairo_set_source_rgb(cr,
- bgcolor->f_red,
- bgcolor->f_green,
- bgcolor->f_blue);
+ bgcolor->red,
+ bgcolor->green,
+ bgcolor->blue);
cairo_rectangle(cr, g_xoff, g_yoff, g_width, g_height);
cairo_fill(cr);
cairo_set_line_width(cr, 1);
cairo_set_dash(cr, dashes, ndash, 0);
cairo_set_source_rgb(cr,
- color->f_red, color->f_green, color->f_blue);
+ color->red, color->green, color->blue);
/* vertical lines representing time steps */
for (i = 0; i <= 5; i++) {
double v;
cairo_set_source_rgb(cr,
- s->color->f_red,
- s->color->f_green,
- s->color->f_blue);
+ s->color->red,
+ s->color->green,
+ s->color->blue);
dt = et - bt;
first = 1;
#include "color.h"
-void color_set(struct color *c, unsigned int r, unsigned int g, unsigned int b)
+void color_set(struct color *c, double r, double g, double b)
{
c->red = r;
c->green = g;
c->blue = b;
-
- c->f_red = ((double)r) / 65535;
- c->f_green = ((double)g) / 65535;
- c->f_blue = ((double)b) / 65535;
}
-void color_set_f(struct color *c, double r, double g, double b)
+struct color *color_new(double r, double g, double b)
{
- c->f_red = r;
- c->f_green = g;
- c->f_blue = b;
-
- c->red = 65535 * r;
- c->green = 65535 * g;
- c->blue = 65535 * b;
-}
+ struct color *color;
-struct color *color_new(unsigned int red, unsigned int green, unsigned int blue)
-{
- struct color *color = malloc(sizeof(struct color));
+ color = malloc(sizeof(struct color));
- color_set(color, red, green, blue);
+ color_set(color, r, g, b);
return color;
}
tmp[4] = '\0';
blue = strtol(tmp, NULL, 16);
- return color_new(red, green, blue);
+ return color_new(((double)red)/65535,
+ ((double)green)/65535,
+ ((double)blue)/65535);
}
char *color_to_str(const struct color *color)
{
char *str = malloc(1 + 12 + 1);
- sprintf(str, "#%.4x%.4x%.4x", color->red, color->green, color->blue);
+ sprintf(str, "#%.4x%.4x%.4x",
+ (int)(65535 * color->red),
+ (int)(65535 * color->green),
+ (int)(65535 * color->blue));
return str;
}
* representation.
*/
struct color {
- /* rgb 0..65535 */
- unsigned int red;
- unsigned int green;
- unsigned int blue;
-
/* rgb floating 0..1 */
- double f_red;
- double f_green;
- double f_blue;
+ double red;
+ double green;
+ double blue;
};
-/** rgb 0..65535 */
-struct color *color_new(unsigned int r, unsigned int g, unsigned int b);
+/** rgb 0..1 */
+struct color *color_new(double r, double g, double b);
struct color *color_dup(struct color *);
-/** rgb 0..65535 */
-void color_set(struct color *,
- unsigned int r,
- unsigned int g,
- unsigned int b);
-
/** rgb 0..1 */
-void color_set_f(struct color *, double r, double g, double b);
+void color_set(struct color *, double r, double g, double b);
int is_color(const char *str);
/* number of uniq colors */
#define COLORS_COUNT 8
- unsigned int colors[COLORS_COUNT][3] = {
- {0x0000, 0x0000, 0x0000}, /* black */
- {0xffff, 0x0000, 0x0000}, /* red */
- {0x0000, 0x0000, 0xffff}, /* blue */
- {0x0000, 0xffff, 0x0000}, /* green */
-
- {0x7fff, 0x7fff, 0x7fff}, /* grey */
- {0x7fff, 0x0000, 0x0000}, /* dark red */
- {0x0000, 0x0000, 0x7fff}, /* dark blue */
- {0x0000, 0x7fff, 0x0000} /* dark green */
+ double colors[COLORS_COUNT][3] = {
+ {0, 0, 0}, /* black */
+ {1, 0, 0}, /* red */
+ {0, 0, 1}, /* blue */
+ {0, 1, 0}, /* green */
+
+ {0.5, 0.5, 0.5},/* grey */
+ {0.5, 0, 0}, /* dark red */
+ {0, 0, 0.5}, /* dark blue */
+ {0, 0.5, 0} /* dark green */
};
struct psensor **cur;
int i;
else
b = color.blue;
- color_set(col, 65535*r, 65535*g, 65535*b);
+ color_set(col, r, g, b);
}
gtk_widget_destroy(GTK_WIDGET(colordlg));
{
GdkRGBA c;
- c.red = color->f_red;
- c.green = color->f_green;
- c.blue = color->f_blue;
+ c.red = color->red;
+ c.green = color->green;
+ c.blue = color->blue;
c.alpha = 1.0;
return c;
gtk_color_chooser_get_rgba(w_color_fg, &color);
color_set(cfg->graph_fgcolor,
- color.red, color.green, color.blue);
+ color.red,
+ color.green,
+ color.blue);
gtk_color_chooser_get_rgba(w_color_bg, &color);
color_set(cfg->graph_bgcolor,
- color.red, color.green, color.blue);
+ color.red,
+ color.green,
+ color.blue);
value = gtk_range_get_value(GTK_RANGE(w_bg_opacity));
cfg->graph_bg_alpha = value;
{
GtkTreeIter iter;
GtkListStore *store;
- GdkColor color;
+ GdkRGBA color;
char *scolor;
struct psensor **ordered_sensors, **s_cur, *s;
unsigned int enabled;
color.red = s->color->red;
color.green = s->color->green;
color.blue = s->color->blue;
+ color.alpha = 1.0;
- scolor = gdk_color_to_string(&color);
+ scolor = gdk_rgba_to_string(&color);
enabled = config_is_sensor_enabled(s->id);
if (p) {
gtk_color_chooser_get_rgba(GTK_COLOR_CHOOSER(widget), &color);
- color_set_f(p->color, color.red, color.green, color.blue);
+ color_set(p->color, color.red, color.green, color.blue);
}
}
config_set_sensor_alarm_enabled(s->id, s->alarm_enabled);
}
- color_set(s->color, p->color->red, p->color->green, p->color->blue);
+ color_set(s->color,
+ p->color->red,
+ p->color->green,
+ p->color->blue);
config_set_sensor_color(s->id, s->color);
if (s->appindicator_enabled != p->appindicator_enabled) {