X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=src%2Fmoonshot-idcard-widget.vala;h=6a9c8e8c3aa7aa12d5995e32693931ff2d46217c;hb=c64066e0fd6838caafba7cac51b00ea2980a717e;hp=c6758af74e70d3e04177bad8270b3abd375fbd0c;hpb=95ae07cab2820890e1ab5d35c5c9840e08ccc97c;p=moonshot-ui.git diff --git a/src/moonshot-idcard-widget.vala b/src/moonshot-idcard-widget.vala index c6758af..6a9c8e8 100644 --- a/src/moonshot-idcard-widget.vala +++ b/src/moonshot-idcard-widget.vala @@ -1,3 +1,34 @@ +/* + * Copyright (c) 2011-2014, JANET(UK) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of JANET(UK) nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. +*/ using Gtk; class IdCardWidget : Box @@ -14,50 +45,56 @@ class IdCardWidget : Box private Label label; - public signal void expanded (); - public signal void remove_id (); - public signal void details_id (); - public signal void send_id (); + public signal void expanded(); + public signal void remove_id(); + public signal void details_id(); + public signal void send_id(); - public void collapse () + public void collapse() { - this.hbutton_box.set_visible (false); + this.hbutton_box.set_visible(false); - set_idcard_color (); + set_idcard_color(); } - private bool button_press_cb () + public void expand() { - this.hbutton_box.set_visible (!hbutton_box.get_visible ()); + this.hbutton_box.set_visible(true); - set_idcard_color (); + set_idcard_color(); + this.expanded(); + } - if (hbutton_box.get_visible () == true) - this.expanded (); + private bool button_press_cb() + { + if (hbutton_box.get_visible()) + collapse(); + else + expand(); return false; } - private void delete_button_cb () + private void delete_button_cb() { - this.remove_id (); + this.remove_id(); } - private void details_button_cb () + private void details_button_cb() { - this.details_id (); + this.details_id(); } - private void send_button_cb () + private void send_button_cb() { - this.send_id (); + this.send_id(); } - private void set_idcard_color () + private void set_idcard_color() { - var color = Gdk.Color (); + var color = Gdk.Color(); - if (hbutton_box.get_visible () == false) + if (hbutton_box.get_visible() == false) { color.red = 65535; color.green = 65535; @@ -69,80 +106,80 @@ class IdCardWidget : Box color.green = 33333; color.blue = 60000; } - var state = this.get_state (); - this.event_box.modify_bg (state, color); + var state = this.get_state(); + this.event_box.modify_bg(state, color); } public void - update_id_card_label () + update_id_card_label() { string services_text = ""; - var display_name = Markup.printf_escaped ("%s", this.id_card.display_name); - for (int i=0; i%s", this.id_card.display_name); + for (int i = 0; i < id_card.services.length; i++) { var service = id_card.services[i]; if (i == (id_card.services.length - 1)) - services_text = services_text + Markup.printf_escaped ("%s", service); + services_text = services_text + Markup.printf_escaped("%s", service); else - services_text = services_text + Markup.printf_escaped ("%s, ", service); + services_text = services_text + Markup.printf_escaped("%s, ", service); } - label.set_markup (display_name + "\n" + services_text); + label.set_markup(display_name + "\n" + services_text); } - public IdCardWidget (IdCard id_card) + public IdCardWidget(IdCard id_card) { this.id_card = id_card; - var image = new Image.from_pixbuf (id_card.get_data ("pixbuf")); + var image = new Image.from_pixbuf(get_pixbuf(id_card)); - label = new Label (null); - label.set_alignment ((float) 0, (float) 0.5); - label.set_ellipsize (Pango.EllipsizeMode.END); + label = new Label(null); + label.set_alignment((float) 0, (float) 0.5); + label.set_ellipsize(Pango.EllipsizeMode.END); update_id_card_label(); - table = new Gtk.HBox (false, 6); - table.pack_start (image, false, false, 0); - table.pack_start (label, true, true, 0); - - this.delete_button = new Button.with_label (_("Delete")); - this.details_button = new Button.with_label (_("View details")); - this.send_button = new Button.with_label (_("Send")); - set_atk_name_description (delete_button, _("Delete"), _("Delete this ID Card")); - set_atk_name_description (details_button, _("Details"), _("View the details of this ID Card")); - set_atk_name_description (send_button, _("Send"), _("Send this ID Card")); - this.hbutton_box = new HButtonBox (); - hbutton_box.pack_end (delete_button); - hbutton_box.pack_end (details_button); - hbutton_box.pack_end (send_button); - send_button.set_sensitive (false); - - delete_button.clicked.connect (delete_button_cb); - details_button.clicked.connect (details_button_cb); - send_button.clicked.connect (send_button_cb); - - this.main_vbox = new VBox (false, 12); - main_vbox.pack_start (table, true, true, 0); - main_vbox.pack_start (hbutton_box, false, false, 0); - main_vbox.set_border_width (12); - - event_box = new EventBox (); - event_box.add (main_vbox); - event_box.button_press_event.connect (button_press_cb); - this.pack_start (event_box, true, true); - - this.show_all (); - this.hbutton_box.hide (); - - set_idcard_color (); + table = new Gtk.HBox(false, 6); + table.pack_start(image, false, false, 0); + table.pack_start(label, true, true, 0); + + this.delete_button = new Button.with_label(_("Delete")); + this.details_button = new Button.with_label(_("View details")); + this.send_button = new Button.with_label(_("Send")); + set_atk_name_description(delete_button, _("Delete"), _("Delete this ID Card")); + set_atk_name_description(details_button, _("Details"), _("View the details of this ID Card")); + set_atk_name_description(send_button, _("Send"), _("Send this ID Card")); + this.hbutton_box = new HButtonBox(); + hbutton_box.pack_end(delete_button); + hbutton_box.pack_end(details_button); + hbutton_box.pack_end(send_button); + send_button.set_sensitive(false); + + delete_button.clicked.connect(delete_button_cb); + details_button.clicked.connect(details_button_cb); + send_button.clicked.connect(send_button_cb); + + this.main_vbox = new VBox(false, 12); + main_vbox.pack_start(table, true, true, 0); + main_vbox.pack_start(hbutton_box, false, false, 0); + main_vbox.set_border_width(12); + + event_box = new EventBox(); + event_box.add(main_vbox); + event_box.button_press_event.connect(button_press_cb); + this.pack_start(event_box, true, true); + + this.show_all(); + this.hbutton_box.hide(); + + set_idcard_color(); } - private void set_atk_name_description (Widget widget, string name, string description) + private void set_atk_name_description(Widget widget, string name, string description) { - var atk_widget = widget.get_accessible (); + var atk_widget = widget.get_accessible(); - atk_widget.set_name (name); - atk_widget.set_description (description); + atk_widget.set_name(name); + atk_widget.set_description(description); } }