LED program dialog: add LED color button
authorPhilipp Zabel <philipp.zabel@gmail.com>
Wed, 24 Feb 2010 17:34:19 +0000 (18:34 +0100)
committerPhilipp Zabel <philipp.zabel@gmail.com>
Wed, 24 Feb 2010 18:10:24 +0000 (19:10 +0100)
src/led-program-dialog.vala

index 2fec429..b3e9614 100644 (file)
@@ -47,6 +47,13 @@ class LedProgramDialog : Gtk.Dialog {
 
                content.show_all ();
 
+               var led_color = new LedColorButton.with_map (lpv.pattern.led_map);
+               led_color.clicked.connect (on_color_clicked);
+               add_action_widget (led_color, 2);
+               action_area.set_child_secondary (led_color, true);
+
+               action_area.show_all ();
+
                add_button ("Test", 1);
                add_button ("Done", Gtk.ResponseType.ACCEPT);
 
@@ -82,4 +89,37 @@ class LedProgramDialog : Gtk.Dialog {
 
                return false;
        }
+
+       void on_color_clicked (Gtk.Button button) {
+               var dialog = new LedColorDialog ();
+               int response = dialog.run ();
+               if (response > 0) {
+                       ((LedColorButton) button).set_color ((LedColor) response);
+                       switch ((LedColor) response) {
+                       case LedColor.R:
+                               lpv.pattern.led_map = "r";
+                               break;
+                       case LedColor.G:
+                               lpv.pattern.led_map = "g";
+                               break;
+                       case LedColor.B:
+                               lpv.pattern.led_map = "b";
+                               break;
+                       case LedColor.RG:
+                               lpv.pattern.led_map = "rg";
+                               break;
+                       case LedColor.RB:
+                               lpv.pattern.led_map = "rb";
+                               break;
+                       case LedColor.GB:
+                               lpv.pattern.led_map = "gb";
+                               break;
+                       case LedColor.RGB:
+                               lpv.pattern.led_map = "rgb";
+                               break;
+                       }
+                       lpv.pattern.changed ();
+               }
+               dialog.destroy ();
+       }
 }