[california/wip/725768-colors] Fixes some bugs with "invisible" events and color parsing
- From: Jim Nelson <jnelson src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [california/wip/725768-colors] Fixes some bugs with "invisible" events and color parsing
- Date: Thu, 20 Mar 2014 22:06:29 +0000 (UTC)
commit ab1774f0aaa5ea1da42586122f5e69db0914348b
Author: Jim Nelson <jim yorba org>
Date: Thu Mar 20 15:04:57 2014 -0700
Fixes some bugs with "invisible" events and color parsing
src/backing/backing-source.vala | 5 +----
src/util/util-gfx.vala | 28 ++++++++++++++++++++++++----
src/view/month/month-cell.vala | 10 +++++-----
3 files changed, 30 insertions(+), 13 deletions(-)
---
diff --git a/src/backing/backing-source.vala b/src/backing/backing-source.vala
index 3a1d411..21e3912 100644
--- a/src/backing/backing-source.vala
+++ b/src/backing/backing-source.vala
@@ -92,10 +92,7 @@ public abstract class Source : BaseObject {
}
public void set_color_to_rgba(Gdk.RGBA rgba) {
- Gdk.Color rgb = Gfx.rgba_to_rgb(rgba);
-
- color = rgb.to_string();
- debug("set-color: %s", color);
+ color = Gfx.rgb_to_uint8_rgb_string(Gfx.rgba_to_rgb(rgba));
}
public override string to_string() {
diff --git a/src/util/util-gfx.vala b/src/util/util-gfx.vala
index 1246529..2225df4 100644
--- a/src/util/util-gfx.vala
+++ b/src/util/util-gfx.vala
@@ -15,7 +15,7 @@ namespace California.Gfx {
public Gdk.Color rgb_string_to_rgb(string rgb_string, Gdk.Color default_rgb, out bool used_default) {
Gdk.Color rgb;
if (!Gdk.Color.parse(rgb_string, out rgb)) {
- debug("Unable to parse calendar color \"%s\"", rgb_string);
+ debug("Unable to parse RGB color \"%s\"", rgb_string);
used_default = true;
@@ -36,7 +36,7 @@ public Gdk.Color rgb_string_to_rgb(string rgb_string, Gdk.Color default_rgb, out
public Gdk.RGBA rgb_string_to_rgba(string rgb_string, Gdk.RGBA default_rgba, out bool used_default) {
Gdk.Color rgb;
if (!Gdk.Color.parse(rgb_string, out rgb)) {
- debug("Unable to parse calendar color \"%s\"", rgb_string);
+ debug("Unable to parse RGB color \"%s\"", rgb_string);
used_default = true;
@@ -56,7 +56,7 @@ public Gdk.RGBA rgb_string_to_rgba(string rgb_string, Gdk.RGBA default_rgba, out
// compiler error if this calculation is done inline when initializing struct
private inline double uint16_to_fp(uint16 value) {
- return (double) value / (double) uint8.MAX;
+ return (double) value / (double) uint16.MAX;
}
/**
@@ -88,7 +88,27 @@ public Gdk.Color rgba_to_rgb(Gdk.RGBA rgba) {
}
private inline uint16 fp_to_uint16(double value) {
- return (uint16) Math.round(value * (double) uint8.MAX);
+ return (uint16) Math.round(value * (double) uint16.MAX);
+}
+
+public string rgb_to_uint8_rgb_string(Gdk.Color rgb) {
+ return "#%02x%02x%02x".printf(
+ uint16_to_uint8(rgb.red),
+ uint16_to_uint8(rgb.green),
+ uint16_to_uint8(rgb.blue)
+ );
+}
+
+private inline uint8 uint16_to_uint8(uint16 value) {
+ return (uint8) (value / (uint8.MAX + 1));
+}
+
+public string rgb_to_string(Gdk.Color rgb) {
+ return "(%d,%d,%d)".printf(rgb.red, rgb.green, rgb.blue);
+}
+
+public string rgba_to_string(Gdk.RGBA rgba) {
+ return "(%lf,%lf,%lf,%lf)".printf(rgba.red, rgba.green, rgba.blue, rgba.alpha);
}
}
diff --git a/src/view/month/month-cell.vala b/src/view/month/month-cell.vala
index be85b69..2aa450f 100644
--- a/src/view/month/month-cell.vala
+++ b/src/view/month/month-cell.vala
@@ -315,12 +315,12 @@ public class Cell : Gtk.EventBox {
* The Gdk.Point must be relative to the widget's coordinate system.
*/
public Component.Event? get_event_at(Gdk.Point point) {
- int line_number = 0;
- foreach (Component.Event event in days_events) {
- int y = get_line_top_y(line_number++);
-
+ for (int line_number = 0; line_number < line_to_event.size; line_number++) {
+ int y = get_line_top_y(line_number);
if (point.y >= y && point.y < (y + line_height_px))
- return event;
+ return line_to_event.get(line_number);
+
+ line_number++;
}
return null;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]