tootle-linux-client/src/API/Visibility.vala

77 lines
2.0 KiB
Vala
Raw Normal View History

2020-05-29 14:19:35 +02:00
public enum Tootle.API.Visibility {
2018-04-15 13:29:55 +02:00
PUBLIC,
UNLISTED,
PRIVATE,
DIRECT;
2018-10-23 12:05:24 +02:00
public string to_string () {
2018-04-15 13:29:55 +02:00
switch (this) {
case UNLISTED:
return "unlisted";
case PRIVATE:
return "private";
case DIRECT:
return "direct";
default:
2020-05-29 14:19:35 +02:00
return "public";
2018-04-15 13:29:55 +02:00
}
}
2019-03-09 14:06:40 +01:00
2020-05-29 14:19:35 +02:00
public static Visibility from_string (string str) {
2018-05-11 13:28:49 +02:00
switch (str) {
case "unlisted":
2020-05-29 14:19:35 +02:00
return Visibility.UNLISTED;
2018-05-11 13:28:49 +02:00
case "private":
2020-05-29 14:19:35 +02:00
return Visibility.PRIVATE;
2018-05-11 13:28:49 +02:00
case "direct":
2020-05-29 14:19:35 +02:00
return Visibility.DIRECT;
default:
return Visibility.PUBLIC;
}
}
public string get_name () {
switch (this) {
case UNLISTED:
return _("Unlisted");
case PRIVATE:
return _("Followers-only");
case DIRECT:
return _("Direct");
2018-05-11 13:28:49 +02:00
default:
2020-05-29 14:19:35 +02:00
return _("Public");
2018-05-11 13:28:49 +02:00
}
}
2019-03-09 14:06:40 +01:00
2018-10-23 12:05:24 +02:00
public string get_desc () {
2018-04-15 13:29:55 +02:00
switch (this) {
case UNLISTED:
return _("Don\'t post to public timelines");
case PRIVATE:
return _("Post to followers only");
case DIRECT:
return _("Post to mentioned users only");
default:
2020-05-29 14:19:35 +02:00
return _("Post to public timelines");
2018-04-15 13:29:55 +02:00
}
}
2019-03-09 14:06:40 +01:00
2018-10-23 12:05:24 +02:00
public string get_icon () {
2018-04-15 13:29:55 +02:00
switch (this) {
case UNLISTED:
2020-05-29 14:19:35 +02:00
return "changes-allow-symbolic";
2018-04-15 13:29:55 +02:00
case PRIVATE:
2020-05-29 14:19:35 +02:00
return "changes-prevent-symbolic";
2018-04-15 13:29:55 +02:00
case DIRECT:
2019-03-09 14:06:40 +01:00
return "user-available-symbolic";
2018-04-15 13:29:55 +02:00
default:
2020-05-29 14:19:35 +02:00
return "network-workgroup-symbolic";
2018-04-15 13:29:55 +02:00
}
}
2019-03-09 14:06:40 +01:00
2020-05-29 14:19:35 +02:00
public static Visibility[] all () {
return {Visibility.PUBLIC, Visibility.UNLISTED, Visibility.PRIVATE, Visibility.DIRECT};
2018-10-23 12:05:24 +02:00
}
2019-03-09 14:06:40 +01:00
2018-04-15 13:29:55 +02:00
}