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