public class MovieListView : PannableArea {
public MovieListStore store;
TreeView tree;
- public TreeSortable sorted_store;
private bool more_movies_available;
private CellRendererText title_renderer;
public signal void movie_activated (Movie movie);
- public MovieListView (Gtk.Window window) {
+ public MovieListView (Gtk.Window window, bool show_date = false) {
store = new MovieListStore ();
- // Add filter wrapper
- var filtered_store = new TreeModelFilter (store, null);
-
- // Add sort wrapper
- sorted_store = new TreeModelSort.with_model (filtered_store);
+ Gdk.Color color;
+ window.ensure_style ();
+ if (window.style.lookup_color ("SecondaryTextColor", out color)) {
+ store.year_markup = "<span size=\"small\" fgcolor=\"%s\">(%%d)</span>".printf (color.to_string ());
+ }
// Tree View
- tree = (TreeView) Hildon.gtk_tree_view_new_with_model (UIMode.NORMAL, sorted_store);
+ tree = (TreeView) Hildon.gtk_tree_view_new_with_model (UIMode.NORMAL, store);
tree.set_headers_visible (false);
add (tree);
secondary_renderer = new CellRendererText ();
secondary_renderer.yalign = 0;
secondary_renderer.ellipsize = Pango.EllipsizeMode.END;
- secondary_renderer.attributes = get_attributes (window, "SmallSystemFont", "SecondaryColor");
+ secondary_renderer.attributes = get_attributes (window, "SmallSystemFont", "SecondaryTextColor");
vbox_renderer.append (secondary_renderer, true);
tree.append_column (title_column);
// Sort by title
- sorted_store.set_sort_column_id (MovieListStore.Columns.TITLE, SortType.ASCENDING);
+ store.set_sort_column_id (MovieListStore.Columns.TITLE, SortType.ASCENDING);
// Year column
- var renderer = new CellRendererText ();
var year_column = new TreeViewColumn ();
- year_column.set_title (_("Rating"));
+ year_column.set_title (_("Year"));
year_column.set_sort_column_id (MovieListStore.Columns.YEAR);
year_column.set_reorderable (false);
year_column.set_sort_order (SortType.DESCENDING);
- year_column.pack_start (renderer, true);
- year_column.set_cell_data_func (renderer, year_data_func);
tree.append_column (year_column);
// Rating column
rating_column.set_sort_column_id (MovieListStore.Columns.RATING);
rating_column.set_reorderable (false);
rating_column.set_sort_order (SortType.DESCENDING);
- rating_column.xalign = (float) 1.0;
+ rating_column.xalign = 1.0f;
vbox_renderer = new CellRendererVBox ();
rating_renderer = new CellRendererText ();
- // rating_renderer.yalign = 1.0f;
+ rating_renderer.xalign = 1.0f;
+ if (show_date)
+ rating_renderer.yalign = 1.0f;
vbox_renderer.append (rating_renderer, true);
date_renderer = new CellRendererText ();
date_renderer.yalign = 0;
- date_renderer.attributes = get_attributes (window, "SmallSystemFont", "SecondaryColor");
+ date_renderer.attributes = get_attributes (window, "SmallSystemFont", "SecondaryTextColor");
- // vbox_renderer.append (date_renderer, true);
+ if (show_date)
+ vbox_renderer.append (date_renderer, true);
rating_column.pack_start (vbox_renderer, true);
rating_column.set_cell_data_func (vbox_renderer, rating_data_func);
private void title_data_func (CellLayout cell_layout, CellRenderer cell, TreeModel model, TreeIter iter) {
Movie movie;
+ string markup;
- model.get (iter, MovieListStore.Columns.MOVIE, out movie);
- title_renderer.text = movie.title;
+ model.get (iter, MovieListStore.Columns.MOVIE, out movie,
+ MovieListStore.Columns.MARKUP, out markup);
+ title_renderer.markup = markup;
secondary_renderer.text = movie.secondary;
}
- private void year_data_func (CellLayout cell_layout, CellRenderer cell, TreeModel model, TreeIter iter) {
- int year;
-
- model.get (iter, MovieListStore.Columns.YEAR, out year);
- ((CellRendererText) cell).text = (year > 0) ? year.to_string () : "";
- }
-
private void rating_data_func (CellLayout cell_layout, CellRenderer cell, TreeModel model, TreeIter iter) {
- int rating;
+ string rating;
Movie movie;
model.get (iter, MovieListStore.Columns.RATING, out rating,
MovieListStore.Columns.MOVIE, out movie);
- rating_renderer.text = (rating > 0) ? "%d.%d".printf (rating / 10, rating % 10) : "";
- date_renderer.text = "%u".printf (movie.julian_date);
+ rating_renderer.text = rating;
+ if (movie.julian_date != 0) {
+ var date = Date ();
+ date.set_julian (movie.julian_date);
+ var s = new char[64];
+ date.strftime (s, "%x");
+ date_renderer.text = (string) s;
+ } else {
+ date_renderer.text = "";
+ }
}
}