diff options
author | Camil Staps | 2019-12-12 14:59:47 +0100 |
---|---|---|
committer | Camil Staps | 2019-12-12 14:59:47 +0100 |
commit | fc5d54decf344a3104a6c46641b93ea2f7319a62 (patch) | |
tree | 852f1deb80f69b2be6686c350f3ca052867cc19b | |
parent | Add G flag to ccall of gtk_sheet_moveto, to be sure (diff) |
Add GtkSortable for TreeView columns
-rw-r--r-- | src/Gtk/Internal.dcl | 1 | ||||
-rw-r--r-- | src/Gtk/Internal.icl | 5 | ||||
-rw-r--r-- | src/Gtk/Types.dcl | 4 | ||||
-rw-r--r-- | src/Gtk/Widgets.dcl | 6 | ||||
-rw-r--r-- | src/Gtk/Widgets.icl | 5 |
5 files changed, 16 insertions, 5 deletions
diff --git a/src/Gtk/Internal.dcl b/src/Gtk/Internal.dcl index bd37efa..8c9da9e 100644 --- a/src/Gtk/Internal.dcl +++ b/src/Gtk/Internal.dcl @@ -160,6 +160,7 @@ gtk_tree_selection_select_iter :: !Pointer !{#Int} !.a -> .a gtk_tree_view_column_add_attribute :: !Pointer !Pointer !String !Int !.a -> .a gtk_tree_view_column_new :: !.a -> (!Pointer, !.a) gtk_tree_view_column_pack_start :: !Pointer !Pointer !Bool !.a -> .a +gtk_tree_view_column_set_sort_column_id :: !Pointer !Int !.a -> .a gtk_tree_view_column_set_title :: !Pointer !String !.a -> .a gtk_tree_view_append_column :: !Pointer !Pointer !.a -> .a diff --git a/src/Gtk/Internal.icl b/src/Gtk/Internal.icl index 89546ba..b92d3d8 100644 --- a/src/Gtk/Internal.icl +++ b/src/Gtk/Internal.icl @@ -718,6 +718,11 @@ gtk_tree_view_column_pack_start column renderer expand env = code { ccall gtk_tree_view_column_pack_start "ppI:V:A" } +gtk_tree_view_column_set_sort_column_id :: !Pointer !Int !.a -> .a +gtk_tree_view_column_set_sort_column_id column id env = code { + ccall gtk_tree_view_column_set_sort_column_id "pI:V:A" +} + gtk_tree_view_column_set_title :: !Pointer !String !.a -> .a gtk_tree_view_column_set_title column title env = set column (packString title) env where diff --git a/src/Gtk/Types.dcl b/src/Gtk/Types.dcl index 62b925c..dfbde91 100644 --- a/src/Gtk/Types.dcl +++ b/src/Gtk/Types.dcl @@ -201,6 +201,10 @@ instance toInt GtkScrollbarPolicy :: GtkSizeRequest =: GtkSizeRequest (!Int,!Int) +:: GtkSortable + = Sortable + | NotSortable + :: GtkSpacing =: Spacing Int :: GtkStylePriority diff --git a/src/Gtk/Widgets.dcl b/src/Gtk/Widgets.dcl index a9cb44c..27d5677 100644 --- a/src/Gtk/Widgets.dcl +++ b/src/Gtk/Widgets.dcl @@ -29,8 +29,8 @@ from Gtk.Types import :: GtkLineSpacingModifier, :: GtkMargins, :: GtkMarkup, :: GtkMessageType, :: GtkModal, :: GtkOrientation, :: GtkPanedHandleWidth, :: GtkResize, :: GtkResponse, :: GtkScrollbarPolicy, :: GtkSensitivity, :: GtkShrink, - :: GtkSizeRequest, :: GtkSpacing, :: GtkStylePriority, :: GtkText, - :: GtkTitle, :: GtkWrapMode + :: GtkSizeRequest, :: GtkSortable, :: GtkSpacing, :: GtkStylePriority, + :: GtkText, :: GtkTitle, :: GtkWrapMode /** * A `GtkAccelGroup` is needed for a `GtkAccelerator`. 'Accelerator' is Gtk's @@ -365,7 +365,7 @@ newTreeView :: !GtkListStore -> GtkM GtkTreeView * the column index in the list store that is shown. When `Expand` is used, * excess space of the tree view is (partially) given to this column. */ -appendColumnToTreeView :: !String !Int !GtkExpand !GtkTreeView -> GtkM GtkTreeView +appendColumnToTreeView :: !String !Int !GtkSortable !GtkExpand !GtkTreeView -> GtkM GtkTreeView //* Add a signal handler for the event that the user selects a different row. addSelectionChangedHandler :: !(GtkM ()) !GtkTreeView -> GtkM GtkTreeView diff --git a/src/Gtk/Widgets.icl b/src/Gtk/Widgets.icl index 4fec8d4..d4f53a4 100644 --- a/src/Gtk/Widgets.icl +++ b/src/Gtk/Widgets.icl @@ -540,13 +540,14 @@ newTreeView (GtkListStore s) = toState (g_object_unref s) >>| show (GtkTreeView view) -appendColumnToTreeView :: !String !Int !GtkExpand !GtkTreeView -> GtkM GtkTreeView -appendColumnToTreeView title col expand tree=:(GtkTreeView tv) = +appendColumnToTreeView :: !String !Int !GtkSortable !GtkExpand !GtkTreeView -> GtkM GtkTreeView +appendColumnToTreeView title col sortable expand tree=:(GtkTreeView tv) = toStateR gtk_cell_renderer_text_new >>= \renderer -> toStateR gtk_tree_view_column_new >>= \column -> toState (gtk_tree_view_column_set_title column title) >>| toState (gtk_tree_view_column_pack_start column renderer expand=:Expand) >>| toState (gtk_tree_view_column_add_attribute column renderer "text" col) >>| + if (sortable=:Sortable) (toState (gtk_tree_view_column_set_sort_column_id column col)) (pure ()) >>| toState (gtk_tree_view_append_column tv column) >>| pure tree |