Update Id Card add dialog to include the Display Name
[moonshot-ui.git] / src / moonshot-add-dialog.vala
1 using Gtk;
2
3 class AddIdentityDialog : Dialog
4 {
5     private Entry displayname_entry;
6     private Entry issuer_entry;
7     private Entry username_entry;
8     private Entry password_entry;
9     
10     public string display_name {
11         get { return displayname_entry.get_text(); }
12     }
13
14     public string issuer {
15         get { return issuer_entry.get_text (); }
16     }
17
18      public string username {
19         get { return username_entry.get_text (); }
20     }
21
22     public string password {
23         get { return password_entry.get_text (); }
24     }
25
26     public AddIdentityDialog ()
27     {
28         this.set_title (_("Add ID Card"));
29         this.set_modal (true);
30
31         this.add_buttons (_("Add ID Card"), ResponseType.OK,
32 #if VALA_0_12
33                           Stock.CANCEL, ResponseType.CANCEL);
34 #else
35                           STOCK_CANCEL, ResponseType.CANCEL);
36 #endif
37
38         var content_area = this.get_content_area ();
39         ((Box) content_area).set_spacing (12);
40         
41         var displayname_label = new Label (_("Display Name:"));
42         displayname_label.set_alignment (1, (float) 0.5);
43         displayname_entry = new Entry ();
44         var issuer_label = new Label (_("Issuer:"));
45         issuer_label.set_alignment (1, (float) 0.5);
46         this.issuer_entry = new Entry ();
47         var username_label = new Label (_("Username:"));
48         username_label.set_alignment (1, (float) 0.5);
49         this.username_entry = new Entry ();
50         var password_label = new Label (_("Password:"));
51         password_label.set_alignment (1, (float) 0.5);
52         this.password_entry = new Entry ();
53         password_entry.set_invisible_char ('*');
54         password_entry.set_visibility (false);
55         var remember_checkbutton = new CheckButton.with_label (_("Remember password"));
56
57         set_atk_relation (displayname_label, displayname_entry, Atk.RelationType.LABEL_FOR);
58         set_atk_relation (issuer_label, issuer_entry, Atk.RelationType.LABEL_FOR);
59         set_atk_relation (username_label, username_entry, Atk.RelationType.LABEL_FOR);
60         set_atk_relation (password_entry, password_entry, Atk.RelationType.LABEL_FOR);
61
62         var table = new Table (5, 5, false);
63         table.set_col_spacings (10);
64         table.set_row_spacings (10);
65         
66         table.attach_defaults (displayname_label, 0, 1, 0, 1);
67         table.attach_defaults (displayname_entry, 1, 2, 0, 1);
68         table.attach_defaults (issuer_label, 0, 1, 1, 2);
69         table.attach_defaults (issuer_entry, 1, 2, 1, 2);
70         table.attach_defaults (username_label, 0, 1, 2, 3);
71         table.attach_defaults (username_entry, 1, 2, 2, 3);
72         table.attach_defaults (password_label, 0, 1, 3, 4);
73         table.attach_defaults (password_entry, 1, 2, 3, 4);
74         table.attach_defaults (remember_checkbutton,  1, 2, 4, 5);
75
76         var vbox = new VBox (false, 0);
77         vbox.set_border_width (6);
78         vbox.pack_start (table, false, false, 0);
79
80         ((Container) content_area).add (vbox);
81
82         this.set_border_width (6);
83         this.set_resizable (false);
84         this.show_all ();
85     }
86
87     private void set_atk_relation (Widget widget, Widget target_widget, Atk.RelationType relationship)
88     {
89         var atk_widget = widget.get_accessible ();
90         var atk_target_widget = target_widget.get_accessible ();
91
92         atk_widget.add_relationship (relationship, atk_target_widget);
93     }
94 }