CollectionView.vala 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using Adw;
  2. using Gtk;
  3. namespace Publicate {
  4. public class CollectionView : Box {
  5. private Adw.HeaderBar header_bar;
  6. private MenuButton menu_button;
  7. private ListBox publication_list;
  8. private WindowTitle header_title;
  9. private ProgressBar osd_bar;
  10. private ViewerWindow window;
  11. public CollectionView(ViewerWindow win) {
  12. window = win;
  13. orientation = Orientation.VERTICAL;
  14. vexpand = true;
  15. add_css_class("view");
  16. header_bar = new Adw.HeaderBar ();
  17. header_bar.show_end_title_buttons = true;
  18. header_bar.title_widget = new Adw.WindowTitle ("", "");
  19. header_title = new WindowTitle("", "");
  20. header_bar.title_widget = header_title;
  21. menu_button = new MenuButton();
  22. menu_button.icon_name = "open-menu-symbolic";
  23. header_bar.pack_end(menu_button);
  24. menu_button.menu_model = win.window_menu;
  25. append(header_bar);
  26. osd_bar = new ProgressBar();
  27. osd_bar.add_css_class("osd");
  28. append(osd_bar);
  29. var scroll_window = new ScrolledWindow();
  30. scroll_window.hscrollbar_policy = PolicyType.NEVER;
  31. scroll_window.propagate_natural_width = true;
  32. scroll_window.vexpand = true;
  33. append(scroll_window);
  34. publication_list = new ListBox ();
  35. scroll_window.child = publication_list;
  36. }
  37. public async void show_collection(CollectionConfig config) {
  38. header_title.title = config.name;
  39. header_title.subtitle = @"via $(config.domain)";
  40. }
  41. }
  42. }