1. 26 Oct, 2020 7 commits
  2. 31 Aug, 2020 1 commit
  3. 13 Aug, 2020 1 commit
  4. 05 Aug, 2020 1 commit
  5. 04 Aug, 2020 5 commits
  6. 29 Jul, 2020 1 commit
  7. 26 Jul, 2020 1 commit
  8. 26 Jun, 2020 2 commits
  9. 06 Jun, 2020 1 commit
  10. 05 Jun, 2020 1 commit
    • Emmanuele Bassi's avatar
      Move orientable style classes into GtkWidget · 6e52ef96
      Emmanuele Bassi authored
      It feels slightly wrong to have GtkOrientable operate on widgets, but at
      least what happens when an orientable widget changes orientation should
      be part of GtkWidget.
      
      This will allow to add more state changes without accessing widget state
      from the outside of gtkwidget.c.
      6e52ef96
  11. 30 May, 2020 12 commits
    • Matthias Clasen's avatar
      docs: Add a listview overview section · 12b10070
      Matthias Clasen authored
      Add a conceptual overview for all the listmodel-based
      widgets.
      
      Fixes: #2214
      12b10070
    • Matthias Clasen's avatar
      columnview: Add sorting · 66500a68
      Matthias Clasen authored
      This is a somewhat large commit that:
      
      - Adds GtkColumnViewSorter
      This is a special-purpose, private sorter implementation which sorts
      according to multiple sorters, allowing each individual sorter to be
      inverted. This will be used with clickable column view headers.
      
      - Adds a read-only GtkColumnView::sorter property
      The GtkColumnView creates a GtkColumnViewSorter at startup that it uses
      for this property.
      
      - Adds a writable GtkColumnViewColumn::sorter property
      This allows defining per-column sorters. Whenever an application sets a
      sorter for a column, the header becomes clickable and whenever
      a header is clicked, that column's sorter is prepended to the list of
      sorters, unless it is already the first sorter, in which case we invert
      its order. No column can be in the list more than once.
      66500a68
    • Benjamin Otte's avatar
      columnview: Add header · efcb3a9d
      Benjamin Otte authored
      This uses a custom GtkColumnViewTitle widget. So far that widget is
      pretty boring, but that will change once we added
      resizing, reordering, dnd, sorting, hiding/showing of columns or
      whatever UIs we want.
      efcb3a9d
    • Benjamin Otte's avatar
      columnview: Add a custom LayoutManager · 326cb114
      Benjamin Otte authored
      The ColumnView now allocates column widths first and then the individual
      rows use the new layout manager which looks at the column allocations to
      allocate their children.
      326cb114
    • Benjamin Otte's avatar
      columnview: Add GtkColumnViewCell · 9927d9bd
      Benjamin Otte authored
      It's a GtkListItemWidget subclass that tracks the column it belongs to
      and allows the column to track it.
      
      We also use this subclass to implement sizing support so columns share
      the same size and get resized in sync.
      9927d9bd
    • Benjamin Otte's avatar
      columnview: Add listitems for the columns · 87363435
      Benjamin Otte authored
      They are not aligned in columns yet, but they do exist.
      87363435
    • Benjamin Otte's avatar
      listitem: Make this a GObject · 30f09ea1
      Benjamin Otte authored
      This splits GtkListItem into 2 parts:
      
      1. GtkListItem
         This is purely a GObject with public API for developers who want to
         populate lists. There is no chance to cause conflict with GtkWidget
         properties that the list implementation assumed control over and
         defines a clear boundary.
      2. GtkListItemWidget
         The widget part of the listitem. This is not only fully in control of
         the list machinery, the machinery can also use different widget
         implementations for different list widgets like I inted to for
         GtkColumnView.
      30f09ea1
    • Benjamin Otte's avatar
      columnview: Allow adding/removing columns · 03e5c6e3
      Benjamin Otte authored
      ... and make that work in UI files via <child>, too.
      03e5c6e3
    • Benjamin Otte's avatar
      Add GtkListBase · cc987b31
      Benjamin Otte authored
      This is a base item for GTK's list widgets so they can share some (read:
      hopefully a lot of) code.
      cc987b31
    • Benjamin Otte's avatar
      listview: Add GtkListItem · e1fa6271
      Benjamin Otte authored
      GtkListItem is a generic row widget that is supposed to replace
      GtkListBoxRow and GtkFlowBoxChild.
      e1fa6271
    • Benjamin Otte's avatar
      listview: Add GtkListItemManager · 9d5bb875
      Benjamin Otte authored
      It's all stubs for now, but here's the basic ideas about what
      this object is supposed to do:
      
      (1) It's supposed to be handling all the child GtkWidgets that are
          used by the listview, so that the listview can concern
          itself with how many items it needs and where to put them.
      (2) It's meant to do the caching of widgets that are not (currently)
          used.
      (3) It's meant to track items that remain in the model across
          items-changed emissions and just change position.
      (2) It's code that can be shared between listview and potential
          other widgets like a GridView.
      
      It's also free to assume that the number of items it's supposed to
      manage doesn't grow too much, so it's free to use O(N) algorithms.
      9d5bb875
    • Benjamin Otte's avatar
      listview: Introduce GtkListItemFactory · e20c207a
      Benjamin Otte authored
      Thisis the abstraction I intend to use for creating widgets and binding
      them to the item out of the listview.
      
      For now this is a very dumb wrapper around the functions that exist in
      the API.
      
      But it leaves the freedom to turn this into public API, make an
      interface out of it and most of all write different implementations, in
      particular one that uses GtkBuilder.
      e20c207a
  12. 25 May, 2020 7 commits