Tooth/src/API/StatusVisibility.vala

72 lines
2 KiB
Vala
Raw Normal View History

2019-03-11 14:14:37 +00:00
public enum Tootle.API.StatusVisibility {
2018-04-15 11:29:55 +00:00
PUBLIC,
UNLISTED,
PRIVATE,
DIRECT;
2018-10-23 10:05:24 +00:00
public string to_string () {
2018-04-15 11:29:55 +00:00
switch (this) {
case PUBLIC:
return "public";
case UNLISTED:
return "unlisted";
case PRIVATE:
return "private";
case DIRECT:
return "direct";
default:
assert_not_reached();
}
}
2019-03-09 13:06:40 +00:00
2018-05-11 11:28:49 +00:00
public static StatusVisibility from_string (string str) {
switch (str) {
case "public":
return StatusVisibility.PUBLIC;
case "unlisted":
return StatusVisibility.UNLISTED;
case "private":
return StatusVisibility.PRIVATE;
case "direct":
return StatusVisibility.DIRECT;
default:
assert_not_reached();
}
}
2019-03-09 13:06:40 +00:00
2018-10-23 10:05:24 +00:00
public string get_desc () {
2018-04-15 11:29:55 +00:00
switch (this) {
case PUBLIC:
return _("Post to public timelines");
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:
assert_not_reached();
}
}
2019-03-09 13:06:40 +00:00
2018-10-23 10:05:24 +00:00
public string get_icon () {
2018-04-15 11:29:55 +00:00
switch (this) {
case PUBLIC:
return "network-workgroup-symbolic";
case UNLISTED:
2018-04-15 12:28:23 +00:00
return "view-private-symbolic";
2018-04-15 11:29:55 +00:00
case PRIVATE:
2018-04-15 12:28:23 +00:00
return "security-medium-symbolic";
2018-04-15 11:29:55 +00:00
case DIRECT:
2019-03-09 13:06:40 +00:00
return "user-available-symbolic";
2018-04-15 11:29:55 +00:00
default:
assert_not_reached();
}
}
2019-03-09 13:06:40 +00:00
2018-10-23 10:05:24 +00:00
public static StatusVisibility[] get_all () {
return {StatusVisibility.PUBLIC, StatusVisibility.UNLISTED, StatusVisibility.PRIVATE, StatusVisibility.DIRECT};
}
2019-03-09 13:06:40 +00:00
2018-04-15 11:29:55 +00:00
}