Add LED pattern button class, display pattern duration as secondary text
[led-pattern-ed] / src / led-pattern-dialog.vala
index 9946997..ee6b16d 100644 (file)
@@ -30,21 +30,10 @@ class LedPatternDialog : Gtk.Dialog {
                var vbox = new Gtk.VBox (false, 0);
 
                foreach (LedPatternRX51 pattern in list) {
-                       var button = new Gtk.Button ();
+                       var button = new LedPatternButton (pattern);
                        Hildon.gtk_widget_set_theme_size (button, Hildon.SizeType.FINGER_HEIGHT);
-
-                       var hbox = new Gtk.HBox (false, Hildon.MARGIN_DOUBLE);
-
-                       var lpv = new LedPatternView (pattern);
-                       lpv.set_size_request (200, -1);
-                       hbox.pack_start (lpv, false, false, 0);
-
-                       var label = new Gtk.Label (pattern.name.has_prefix ("Pattern") ?
-                                                  pattern.name.offset (7) : pattern.name);
-                       label.set_alignment (0.0f, 0.5f);
-                       hbox.pack_start (label, true, true, 0);
-
-                       button.add (hbox);
+                       button.set_data ("pattern", pattern);
+                       button.clicked.connect (on_pattern_clicked);
                        vbox.pack_start (button, true, true, 0);
                }
 
@@ -54,4 +43,15 @@ class LedPatternDialog : Gtk.Dialog {
 
                add_button ("Save", Gtk.ResponseType.OK);
        }
+
+       void on_pattern_clicked (Gtk.Button button) {
+               LedPatternRX51 pattern = button.get_data ("pattern");
+               var dialog = new LedProgramDialog (pattern);
+               dialog.set_transient_for (this);
+
+               int response = 0;
+               while (response >= 0)
+                       response = dialog.run ();
+               dialog.destroy ();
+       }
 }