*/
class LedPatternDialog : Gtk.Dialog {
- unowned List<LedPatternRX51> list;
+ unowned List<LedPattern> list;
- public LedPatternDialog (List<LedPatternRX51> _list) {
+ public LedPatternDialog (List<LedPattern> _list) {
list = _list;
set_title ("LED Patterns");
var pannable = new Hildon.PannableArea ();
var vbox = new Gtk.VBox (false, 0);
- foreach (LedPatternRX51 pattern in list) {
- var button = new Gtk.Button ();
+ foreach (LedPattern pattern in list) {
+ var button = new LedPatternButton (pattern);
Hildon.gtk_widget_set_theme_size (button, Hildon.SizeType.FINGER_HEIGHT);
-
- var label = new Gtk.Label (pattern.name.has_prefix ("Pattern") ?
- pattern.name.offset (7) : pattern.name);
- label.set_alignment (0.0f, 0.5f);
- button.add (label);
-
- vbox.pack_start (button, false, false, 0);
+ button.set_data ("pattern", pattern);
+ button.clicked.connect (on_pattern_clicked);
+ vbox.pack_start (button, true, true, 0);
}
pannable.add_with_viewport (vbox);
add_button ("Save", Gtk.ResponseType.OK);
}
+
+ void on_pattern_clicked (Gtk.Button button) {
+ LedPattern pattern = button.get_data ("pattern");
+ if (pattern is LedPatternRX51) {
+ var dialog = new LedProgramDialog ((LedPatternRX51) pattern);
+ dialog.set_transient_for (this);
+
+ int response = 0;
+ while (response >= 0)
+ response = dialog.run ();
+ dialog.destroy ();
+ }
+ }
}