From b0ca80ffb55e1147e57ffdfb45fa68db75cbb8cc Mon Sep 17 00:00:00 2001 From: Philipp Zabel Date: Tue, 11 May 2010 20:23:25 +0200 Subject: [PATCH] Add LED pattern button class, display pattern duration as secondary text --- Makefile | 1 + src/led-pattern-button.vala | 56 +++++++++++++++++++++++++++++++++++++++++++ src/led-pattern-dialog.vala | 15 +----------- 3 files changed, 58 insertions(+), 14 deletions(-) create mode 100644 src/led-pattern-button.vala diff --git a/Makefile b/Makefile index 7a7af41..341a8ce 100644 --- a/Makefile +++ b/Makefile @@ -36,6 +36,7 @@ led_pattern_editor_VALASOURCES = \ src/led-pattern.vala \ src/led-pattern-rx51.vala \ src/led-pattern-dialog.vala \ + src/led-pattern-button.vala \ src/led-pattern-view.vala \ src/led-program-dialog.vala \ src/mce-ini-parse.vala diff --git a/src/led-pattern-button.vala b/src/led-pattern-button.vala new file mode 100644 index 0000000..bcaa31e --- /dev/null +++ b/src/led-pattern-button.vala @@ -0,0 +1,56 @@ +/* This file is part of LED Pattern Editor. + * + * Copyright (C) 2010 Philipp Zabel + * + * LED Pattern Editor is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * LED Pattern Editor is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with LED Pattern Editor. If not, see . + */ + +class LedPatternButton : Gtk.Button { + LedPatternRX51 pattern; + Gtk.Label value_label; + + public LedPatternButton (LedPatternRX51 _pattern) { + pattern = _pattern; + + 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_box = new Gtk.VBox (false, 0); + + var title = new Gtk.Label (pattern.name.has_prefix ("Pattern") ? + pattern.name.offset (7) : pattern.name); + title.set_alignment (0.0f, 0.5f); + label_box.pack_start (title, false, false, 0); + + value_label = new Gtk.Label ("%.2f s".printf (pattern.duration / 1000.0)); + value_label.set_alignment (0.0f, 0.5f); + Hildon.helper_set_logical_color (value_label, Gtk.RcFlags.FG, Gtk.StateType.NORMAL, "SecondaryTextColor"); + Hildon.helper_set_logical_color (value_label, Gtk.RcFlags.FG, Gtk.StateType.PRELIGHT, "SecondaryTextColor"); + Hildon.helper_set_logical_font (value_label, "SmallSystemFont"); + label_box.pack_start (value_label, true, true, 0); + + hbox.pack_start (label_box, true, true, 0); + + add (hbox); + + pattern.changed.connect (on_pattern_changed); + } + + private void on_pattern_changed () { + value_label.set_text ("%.2f s".printf (pattern.duration / 1000.0)); + } +} diff --git a/src/led-pattern-dialog.vala b/src/led-pattern-dialog.vala index 15995af..ee6b16d 100644 --- a/src/led-pattern-dialog.vala +++ b/src/led-pattern-dialog.vala @@ -30,23 +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); button.set_data ("pattern", pattern); button.clicked.connect (on_pattern_clicked); - 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); vbox.pack_start (button, true, true, 0); } -- 1.7.9.5