+ private string cast_label_markup (Movie movie) {
+ List<Role> cast = movie.get_cast ();
+ var markup = new StringBuilder ();
+ Gdk.Color color;
+ this.ensure_style ();
+
+ if (this.style.lookup_color ("SecondaryTextColor", out color)) {
+ foreach (Role role in cast) {
+ if (markup.len > 0)
+ markup.append (",\n");
+ markup.append_printf ("%s <span size=\"small\" fgcolor=\"%s\">(%s)</span>", display_name (role.actor_name), color.to_string (), role.character);
+ }
+ } else {
+ foreach (Role role in cast) {
+ if (markup.len > 0)
+ markup.append (",\n");
+ markup.append_printf ("%s <small>(%s)</small>", display_name (role.actor_name), role.character);
+ }
+ }
+
+ return markup.str;
+ }
+
+ private string display_name (string name) {
+ string[] parts;
+ if (name.has_suffix (")"))
+ parts = name.ndup (name.length - 4).split (", ");
+ else
+ parts = name.split (", ");
+ if (parts.length == 2) {
+ return parts[1] + " " + parts[0];
+ } else {
+ return name;
+ }
+ }
+