1 /*
2  * Copyright © 2019 Benjamin Otte
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library. If not, see <http://www.gnu.org/licenses/>.
16  *
17  * Authors: Benjamin Otte <otte@gnome.org>
18  */
19 
20 #ifndef __GTK_COLUMN_VIEW_COLUMN_H__
21 #define __GTK_COLUMN_VIEW_COLUMN_H__
22 
23 #if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
24 #error "Only <gtk/gtk.h> can be included directly."
25 #endif
26 
27 #include <gtk/gtkcolumnview.h>
28 #include <gtk/gtksorter.h>
29 
30 G_BEGIN_DECLS
31 
32 #define GTK_TYPE_COLUMN_VIEW_COLUMN         (gtk_column_view_column_get_type ())
33 #define GTK_COLUMN_VIEW_COLUMN(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), GTK_TYPE_COLUMN_VIEW_COLUMN, GtkColumnViewColumn))
34 #define GTK_COLUMN_VIEW_COLUMN_CLASS(k)     (G_TYPE_CHECK_CLASS_CAST ((k), GTK_TYPE_COLUMN_VIEW_COLUMN, GtkColumnViewColumnClass))
35 #define GTK_IS_COLUMN_VIEW_COLUMN(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), GTK_TYPE_COLUMN_VIEW_COLUMN))
36 #define GTK_IS_COLUMN_VIEW_COLUMN_CLASS(k)  (G_TYPE_CHECK_CLASS_TYPE ((k), GTK_TYPE_COLUMN_VIEW_COLUMN))
37 #define GTK_COLUMN_VIEW_COLUMN_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GTK_TYPE_COLUMN_VIEW_COLUMN, GtkColumnViewColumnClass))
38 
39 typedef struct _GtkColumnViewColumnClass GtkColumnViewColumnClass;
40 
41 GDK_AVAILABLE_IN_ALL
42 GType                   gtk_column_view_column_get_type                 (void) G_GNUC_CONST;
43 
44 GDK_AVAILABLE_IN_ALL
45 GtkColumnViewColumn *   gtk_column_view_column_new                      (const char             *title,
46                                                                          GtkListItemFactory     *factory);
47 
48 GDK_AVAILABLE_IN_ALL
49 GtkColumnView *         gtk_column_view_column_get_column_view          (GtkColumnViewColumn    *self);
50 GDK_AVAILABLE_IN_ALL
51 void                    gtk_column_view_column_set_factory              (GtkColumnViewColumn    *self,
52                                                                          GtkListItemFactory     *factory);
53 GDK_AVAILABLE_IN_ALL
54 GtkListItemFactory *    gtk_column_view_column_get_factory              (GtkColumnViewColumn    *self);
55 
56 GDK_AVAILABLE_IN_ALL
57 void                    gtk_column_view_column_set_title                (GtkColumnViewColumn    *self,
58                                                                          const char             *title);
59 GDK_AVAILABLE_IN_ALL
60 const char *            gtk_column_view_column_get_title                (GtkColumnViewColumn    *self);
61 
62 GDK_AVAILABLE_IN_ALL
63 void                    gtk_column_view_column_set_sorter               (GtkColumnViewColumn    *self,
64                                                                          GtkSorter              *sorter);
65 GDK_AVAILABLE_IN_ALL
66 GtkSorter *             gtk_column_view_column_get_sorter               (GtkColumnViewColumn    *self);
67 
68 GDK_AVAILABLE_IN_ALL
69 void                    gtk_column_view_column_set_visible              (GtkColumnViewColumn    *self,
70                                                                          gboolean                visible);
71 GDK_AVAILABLE_IN_ALL
72 gboolean                gtk_column_view_column_get_visible              (GtkColumnViewColumn    *self);
73 
74 GDK_AVAILABLE_IN_ALL
75 
76 void                    gtk_column_view_column_set_header_menu          (GtkColumnViewColumn    *self,
77                                                                          GMenuModel             *menu);
78 GDK_AVAILABLE_IN_ALL
79 GMenuModel *            gtk_column_view_column_get_header_menu          (GtkColumnViewColumn    *self);
80 
81 GDK_AVAILABLE_IN_ALL
82 void                    gtk_column_view_column_set_fixed_width          (GtkColumnViewColumn    *self,
83                                                                          int                     fixed_width);
84 GDK_AVAILABLE_IN_ALL
85 int                     gtk_column_view_column_get_fixed_width          (GtkColumnViewColumn    *self);
86 
87 GDK_AVAILABLE_IN_ALL
88 void                    gtk_column_view_column_set_resizable            (GtkColumnViewColumn    *self,
89                                                                          gboolean                resizable);
90 GDK_AVAILABLE_IN_ALL
91 gboolean                gtk_column_view_column_get_resizable            (GtkColumnViewColumn    *self);
92 
93 GDK_AVAILABLE_IN_ALL
94 void                    gtk_column_view_column_set_expand               (GtkColumnViewColumn    *self,
95                                                                          gboolean                expand);
96 GDK_AVAILABLE_IN_ALL
97 gboolean                gtk_column_view_column_get_expand            (GtkColumnViewColumn    *self);
98 
99 G_END_DECLS
100 
101 #endif  /* __GTK_COLUMN_VIEW_COLUMN_H__ */
102