Merge commit 'upstream/0.2.85' into experimental
[debian/pino.git] / src / accounts_types.vala
1 using Gee;
2
3 public class AccountMeta : Object {
4
5         public string name {get; set;}
6         public string description {get; set;}
7         public Gdk.Pixbuf icon {get; set;}
8         public string icon_name {get; set;}
9
10         public AccountMeta(string name, string description, Gdk.Pixbuf icon,
11                 string icon_name) {
12                 
13                 this.name = name;
14                 this.description = description;
15                 this.icon = icon;
16                 this.icon_name = icon_name;
17         }
18         
19 }
20
21 /** Holdes all available types of accounts.
22         Icons http://paulrobertlloyd.com/2009/06/social_media_icons.
23         Licenced under an Attribution-Share Alike 2.0 UK: England & Wales Licence
24 */
25 public class AccountsTypes : HashMap<Type, AccountMeta> {
26         
27         public AccountsTypes() throws GLib.Error {
28                 AccountMeta twitter = new AccountMeta("Twitter",
29                         "Most popular microblogging service in the world",
30                         new Gdk.Pixbuf.from_file(Config.SERVICE_TWITTER_ICON),
31                         Config.SERVICE_TWITTER_ICON);
32                 
33                 AccountMeta identica = new AccountMeta("Identica",
34                         "Most popular microblogging service in the world",
35                         new Gdk.Pixbuf.from_file(Config.SERVICE_IDENTICA_ICON),
36                         Config.SERVICE_IDENTICA_ICON);
37                 
38                 set(typeof(Twitter.Account), twitter);
39                 set(typeof(Identica.Account), identica);
40         }
41
42         /** Return type by a string value */
43         public Type? get_type_by_string(string stype) {
44                 foreach(Type tp in keys) {
45                         if(get(tp).name == stype) {
46                                 return tp;
47                         }
48                 }
49
50                 return null;
51         }
52 }
53