From 575b85263904e1a8d8ad8ebb26eb6426f18369e7 Mon Sep 17 00:00:00 2001 From: Hans Baier Date: Wed, 25 Mar 2009 16:24:29 +0700 Subject: [PATCH] made prolooks more glade-friendly + assorted bugfixes --- prolooks/Curve.vala | 2 +- prolooks/CurveDemo.vala | 2 +- prolooks/Led.vala | 8 ++++++-- prolooks/SmallButton.vala | 6 +++++- prolooks/VuMeter.vala | 27 ++++++++++++++------------- prolooks/wscript_build | 30 +++++++++++++++--------------- wscript | 2 +- 7 files changed, 43 insertions(+), 34 deletions(-) diff --git a/prolooks/Curve.vala b/prolooks/Curve.vala index 7bc36dc..1f218c3 100644 --- a/prolooks/Curve.vala +++ b/prolooks/Curve.vala @@ -50,7 +50,7 @@ public class Curve : Widget { /// Maximum number of points public uint point_limit { get; set; } - public Curve (uint point_limit) { + public Curve (uint point_limit = 10) { this.point_limit = point_limit; points = new List (); points.append (new CurvePoint (0.0f, 1.0f)); diff --git a/prolooks/CurveDemo.vala b/prolooks/CurveDemo.vala index ae46386..9f23ecc 100644 --- a/prolooks/CurveDemo.vala +++ b/prolooks/CurveDemo.vala @@ -11,7 +11,7 @@ namespace Prolooks { static int main (string[] args) { Gtk.init (ref args); var window = new Window (WindowType.TOPLEVEL); - var widget = new Curve (10); + var widget = new Curve (); window.add (widget); window.destroy += Gtk.main_quit; diff --git a/prolooks/Led.vala b/prolooks/Led.vala index 0d3115a..4a5632c 100644 --- a/prolooks/Led.vala +++ b/prolooks/Led.vala @@ -33,8 +33,12 @@ public class Led : DrawingArea { public string color { set { - gdk_color_to_cairo_color (color_from_string (value), ref r, ref g, ref b); - queue_draw (); + if (value != null & value != "") { + gdk_color_to_cairo_color (color_from_string (value), ref r, ref g, ref b); + queue_draw (); + } else { + r = 1; g = 0; b = 0; + } } } diff --git a/prolooks/SmallButton.vala b/prolooks/SmallButton.vala index 0fa32a8..0a57df0 100644 --- a/prolooks/SmallButton.vala +++ b/prolooks/SmallButton.vala @@ -18,7 +18,11 @@ public class SmallButton : DrawingArea { public string color { set { lock (base_color) { - base_color = color_from_string (value); + if (value != null & value != "") { + base_color = color_from_string (value); + } else { + base_color = style.bg[Gtk.StateType.NORMAL]; + } } } } diff --git a/prolooks/VuMeter.vala b/prolooks/VuMeter.vala index deafb6b..e7e241f 100644 --- a/prolooks/VuMeter.vala +++ b/prolooks/VuMeter.vala @@ -9,15 +9,14 @@ namespace Prolooks { public class VuMeter : DrawingArea { - public enum VuMeterMode { - VU_STANDARD, - VU_MONOCHROME, - VU_MONOCHROME_REVERSE + public enum Mode { + STANDARD, + MONOCHROME, + MONOCHROME_REVERSE } private Cairo.Surface? cache_surface = null; - private VuMeterMode _mode = VuMeterMode.VU_STANDARD; - private double _value = 0.5; + private Mode _mode = Mode.STANDARD; private double _value = 0.5; public double value { set { @@ -29,10 +28,12 @@ public class VuMeter : DrawingArea { return _value; } } - public VuMeterMode mode { + + public Mode mode { set { - if (mode != _mode) { - mode = _mode; + if (value != _mode) { + _mode = value; + cache_surface = null; queue_draw(); } } @@ -79,7 +80,7 @@ public class VuMeter : DrawingArea { double r = 0, g = 0, b = 0; switch(mode) { - case VuMeterMode.VU_STANDARD: + case Mode.STANDARD: default: if (ts < 0.75) { r = ts / 0.75; @@ -92,12 +93,12 @@ public class VuMeter : DrawingArea { b = 0; } break; - case VuMeterMode.VU_MONOCHROME_REVERSE: + case Mode.MONOCHROME_REVERSE: r = 1; g = 1; b = 0; break; - case VuMeterMode.VU_MONOCHROME: + case Mode.MONOCHROME: r = 1; g = 1; b = 0; @@ -121,7 +122,7 @@ public class VuMeter : DrawingArea { cr.paint (); cr.set_source_rgba (0, 0, 0, 0.5); - if( mode == VuMeterMode.VU_MONOCHROME_REVERSE ) + if( mode == Mode.MONOCHROME_REVERSE ) cr.rectangle (ox, oy, _value * (sx - ox) + 1, sy - oy + 1); else cr.rectangle (ox + _value * (sx - ox), oy, sx - ox + 1, sy - oy + 1); diff --git a/prolooks/wscript_build b/prolooks/wscript_build index 4e1cb73..bbcec81 100644 --- a/prolooks/wscript_build +++ b/prolooks/wscript_build @@ -5,18 +5,18 @@ libprolooks = bld.new_task_gen('cc', 'cshlib') libprolooks.name = 'prolooks' libprolooks.target = 'prolooks' libprolooks.source = """ -Helpers.vala -Display.vala -Led.vala -SmallButton.vala -VuMeter.vala -LineGraph.vala -TransportButton.vala -Knob.vala -SimpleKnobImageSource.gs -IKnobImageSource.vala -Keyboard.vala -Curve.vala + Helpers.vala + Display.vala + Led.vala + SmallButton.vala + VuMeter.vala + LineGraph.vala + TransportButton.vala + Knob.vala + SimpleKnobImageSource.gs + IKnobImageSource.vala + Keyboard.vala + Curve.vala """ libprolooks.includes = '-I.', @@ -81,9 +81,9 @@ vumeter.install_path = '' linegraph = bld.new_task_gen('cc', 'program') linegraph.name = 'linegraph-demo' linegraph.target = 'linegraph-demo' -linegraph.source = 'LineGraphDemo.vala' -linegraph.uselib_local = 'prolooks' -linegraph.packages = 'prolooks' +linegraph.source = 'LineGraph.vala LineGraphDemo.vala Helpers.vala' +linegraph.uselib = 'GTK' +linegraph.packages = 'gtk+-2.0' linegraph.vapi_dirs = '.' linegraph.install_path = '' diff --git a/wscript b/wscript index 2e107f8..e388595 100644 --- a/wscript +++ b/wscript @@ -2,7 +2,7 @@ import os import autowaf -PROLOOKS_VERSION = "1.0.1" +PROLOOKS_VERSION = "1.0.0" VERSION = PROLOOKS_VERSION VERSION_MAJOR_MINOR = ".".join(VERSION.split(".")[0:2]) -- 2.11.4.GIT