1// Same copyright and license as the rest of the files in this project 2// This file contains accelerator related functions and structures 3 4package gtk 5 6// #include <gtk/gtk.h> 7// #include "gtk.go.h" 8import "C" 9import ( 10 "unsafe" 11 12 "github.com/gotk3/gotk3/glib" 13) 14 15/* 16 * GtkTreeViewColumn 17 */ 18 19// TreeViewColumns is a representation of GTK's GtkTreeViewColumn. 20type TreeViewColumn struct { 21 glib.InitiallyUnowned 22} 23 24// native returns a pointer to the underlying GtkTreeViewColumn. 25func (v *TreeViewColumn) native() *C.GtkTreeViewColumn { 26 if v == nil || v.GObject == nil { 27 return nil 28 } 29 p := unsafe.Pointer(v.GObject) 30 return C.toGtkTreeViewColumn(p) 31} 32 33func marshalTreeViewColumn(p uintptr) (interface{}, error) { 34 c := C.g_value_get_object((*C.GValue)(unsafe.Pointer(p))) 35 obj := glib.Take(unsafe.Pointer(c)) 36 return wrapTreeViewColumn(obj), nil 37} 38 39func wrapTreeViewColumn(obj *glib.Object) *TreeViewColumn { 40 if obj == nil { 41 return nil 42 } 43 44 return &TreeViewColumn{glib.InitiallyUnowned{obj}} 45} 46 47// TreeViewColumnNew() is a wrapper around gtk_tree_view_column_new(). 48func TreeViewColumnNew() (*TreeViewColumn, error) { 49 c := C.gtk_tree_view_column_new() 50 if c == nil { 51 return nil, nilPtrErr 52 } 53 return wrapTreeViewColumn(glib.Take(unsafe.Pointer(c))), nil 54} 55 56// TreeViewColumnNewWithArea is a wrapper around gtk_tree_view_column_new_with_area(). 57func TreeViewColumnNewWithArea(area ICellArea) (*TreeViewColumn, error) { 58 c := C.gtk_tree_view_column_new_with_area(area.toCellArea()) 59 if c == nil { 60 return nil, nilPtrErr 61 } 62 return wrapTreeViewColumn(glib.Take(unsafe.Pointer(c))), nil 63} 64 65// TreeViewColumnNewWithAttribute() is a wrapper around 66// gtk_tree_view_column_new_with_attributes() that only sets one 67// attribute for one column. 68func TreeViewColumnNewWithAttribute(title string, renderer ICellRenderer, attribute string, column int) (*TreeViewColumn, error) { 69 t_cstr := C.CString(title) 70 defer C.free(unsafe.Pointer(t_cstr)) 71 a_cstr := C.CString(attribute) 72 defer C.free(unsafe.Pointer(a_cstr)) 73 c := C._gtk_tree_view_column_new_with_attributes_one((*C.gchar)(t_cstr), 74 renderer.toCellRenderer(), (*C.gchar)(a_cstr), C.gint(column)) 75 if c == nil { 76 return nil, nilPtrErr 77 } 78 return wrapTreeViewColumn(glib.Take(unsafe.Pointer(c))), nil 79} 80 81// AddAttribute() is a wrapper around gtk_tree_view_column_add_attribute(). 82func (v *TreeViewColumn) AddAttribute(renderer ICellRenderer, attribute string, column int) { 83 cstr := C.CString(attribute) 84 defer C.free(unsafe.Pointer(cstr)) 85 C.gtk_tree_view_column_add_attribute(v.native(), 86 renderer.toCellRenderer(), (*C.gchar)(cstr), C.gint(column)) 87} 88 89// SetExpand() is a wrapper around gtk_tree_view_column_set_expand(). 90func (v *TreeViewColumn) SetExpand(expand bool) { 91 C.gtk_tree_view_column_set_expand(v.native(), gbool(expand)) 92} 93 94// GetExpand() is a wrapper around gtk_tree_view_column_get_expand(). 95func (v *TreeViewColumn) GetExpand() bool { 96 c := C.gtk_tree_view_column_get_expand(v.native()) 97 return gobool(c) 98} 99 100// SetMinWidth() is a wrapper around gtk_tree_view_column_set_min_width(). 101func (v *TreeViewColumn) SetMinWidth(minWidth int) { 102 C.gtk_tree_view_column_set_min_width(v.native(), C.gint(minWidth)) 103} 104 105// GetMinWidth() is a wrapper around gtk_tree_view_column_get_min_width(). 106func (v *TreeViewColumn) GetMinWidth() int { 107 c := C.gtk_tree_view_column_get_min_width(v.native()) 108 return int(c) 109} 110 111// PackStart() is a wrapper around gtk_tree_view_column_pack_start(). 112func (v *TreeViewColumn) PackStart(cell ICellRenderer, expand bool) { 113 C.gtk_tree_view_column_pack_start(v.native(), cell.toCellRenderer(), gbool(expand)) 114} 115 116// PackEnd() is a wrapper around gtk_tree_view_column_pack_end(). 117func (v *TreeViewColumn) PackEnd(cell ICellRenderer, expand bool) { 118 C.gtk_tree_view_column_pack_end(v.native(), cell.toCellRenderer(), gbool(expand)) 119} 120 121// Clear() is a wrapper around gtk_tree_view_column_clear(). 122func (v *TreeViewColumn) Clear() { 123 C.gtk_tree_view_column_clear(v.native()) 124} 125 126// ClearAttributes() is a wrapper around gtk_tree_view_column_clear_attributes(). 127func (v *TreeViewColumn) ClearAttributes(cell *CellRenderer) { 128 C.gtk_tree_view_column_clear_attributes(v.native(), cell.native()) 129} 130 131// SetSpacing() is a wrapper around gtk_tree_view_column_set_spacing(). 132func (v *TreeViewColumn) SetSpacing(spacing int) { 133 C.gtk_tree_view_column_set_spacing(v.native(), C.gint(spacing)) 134} 135 136// GetSpacing() is a wrapper around gtk_tree_view_column_get_spacing(). 137func (v *TreeViewColumn) GetSpacing() int { 138 return int(C.gtk_tree_view_column_get_spacing(v.native())) 139} 140 141// SetVisible() is a wrapper around gtk_tree_view_column_set_visible(). 142func (v *TreeViewColumn) SetVisible(visible bool) { 143 C.gtk_tree_view_column_set_visible(v.native(), gbool(visible)) 144} 145 146// GetVisible() is a wrapper around gtk_tree_view_column_get_visible(). 147func (v *TreeViewColumn) GetVisible() bool { 148 return gobool(C.gtk_tree_view_column_get_visible(v.native())) 149} 150 151// SetResizable() is a wrapper around gtk_tree_view_column_set_resizable(). 152func (v *TreeViewColumn) SetResizable(resizable bool) { 153 C.gtk_tree_view_column_set_resizable(v.native(), gbool(resizable)) 154} 155 156// GetResizable() is a wrapper around gtk_tree_view_column_get_resizable(). 157func (v *TreeViewColumn) GetResizable() bool { 158 return gobool(C.gtk_tree_view_column_get_resizable(v.native())) 159} 160 161// GetWidth() is a wrapper around gtk_tree_view_column_get_width(). 162func (v *TreeViewColumn) GetWidth() int { 163 return int(C.gtk_tree_view_column_get_width(v.native())) 164} 165 166// SetFixedWidth() is a wrapper around gtk_tree_view_column_set_fixed_width(). 167func (v *TreeViewColumn) SetFixedWidth(w int) { 168 C.gtk_tree_view_column_set_fixed_width(v.native(), C.gint(w)) 169} 170 171// GetFixedWidth() is a wrapper around gtk_tree_view_column_get_fixed_width(). 172func (v *TreeViewColumn) GetFixedWidth() int { 173 return int(C.gtk_tree_view_column_get_fixed_width(v.native())) 174} 175 176// SetMaxWidth() is a wrapper around gtk_tree_view_column_set_max_width(). 177func (v *TreeViewColumn) SetMaxWidth(w int) { 178 C.gtk_tree_view_column_set_max_width(v.native(), C.gint(w)) 179} 180 181// GetMaxWidth() is a wrapper around gtk_tree_view_column_get_max_width(). 182func (v *TreeViewColumn) GetMaxWidth() int { 183 return int(C.gtk_tree_view_column_get_max_width(v.native())) 184} 185 186// Clicked() is a wrapper around gtk_tree_view_column_clicked(). 187func (v *TreeViewColumn) Clicked() { 188 C.gtk_tree_view_column_clicked(v.native()) 189} 190 191// SetTitle() is a wrapper around gtk_tree_view_column_set_title(). 192func (v *TreeViewColumn) SetTitle(t string) { 193 cstr := (*C.gchar)(C.CString(t)) 194 defer C.free(unsafe.Pointer(cstr)) 195 C.gtk_tree_view_column_set_title(v.native(), cstr) 196} 197 198// GetTitle() is a wrapper around gtk_tree_view_column_get_title(). 199func (v *TreeViewColumn) GetTitle() string { 200 return C.GoString((*C.char)(C.gtk_tree_view_column_get_title(v.native()))) 201} 202 203// SetClickable() is a wrapper around gtk_tree_view_column_set_clickable(). 204func (v *TreeViewColumn) SetClickable(clickable bool) { 205 C.gtk_tree_view_column_set_clickable(v.native(), gbool(clickable)) 206} 207 208// GetClickable() is a wrapper around gtk_tree_view_column_get_clickable(). 209func (v *TreeViewColumn) GetClickable() bool { 210 return gobool(C.gtk_tree_view_column_get_clickable(v.native())) 211} 212 213// SetReorderable() is a wrapper around gtk_tree_view_column_set_reorderable(). 214func (v *TreeViewColumn) SetReorderable(reorderable bool) { 215 C.gtk_tree_view_column_set_reorderable(v.native(), gbool(reorderable)) 216} 217 218// GetReorderable() is a wrapper around gtk_tree_view_column_get_reorderable(). 219func (v *TreeViewColumn) GetReorderable() bool { 220 return gobool(C.gtk_tree_view_column_get_reorderable(v.native())) 221} 222 223// SetSortIndicator() is a wrapper around gtk_tree_view_column_set_sort_indicator(). 224func (v *TreeViewColumn) SetSortIndicator(reorderable bool) { 225 C.gtk_tree_view_column_set_sort_indicator(v.native(), gbool(reorderable)) 226} 227 228// GetSortIndicator() is a wrapper around gtk_tree_view_column_get_sort_indicator(). 229func (v *TreeViewColumn) GetSortIndicator() bool { 230 return gobool(C.gtk_tree_view_column_get_sort_indicator(v.native())) 231} 232 233// SetSortColumnID() is a wrapper around gtk_tree_view_column_set_sort_column_id(). 234func (v *TreeViewColumn) SetSortColumnID(w int) { 235 C.gtk_tree_view_column_set_sort_column_id(v.native(), C.gint(w)) 236} 237 238// GetSortColumnID() is a wrapper around gtk_tree_view_column_get_sort_column_id(). 239func (v *TreeViewColumn) GetSortColumnID() int { 240 return int(C.gtk_tree_view_column_get_sort_column_id(v.native())) 241} 242 243// CellIsVisible() is a wrapper around gtk_tree_view_column_cell_is_visible(). 244func (v *TreeViewColumn) CellIsVisible() bool { 245 return gobool(C.gtk_tree_view_column_cell_is_visible(v.native())) 246} 247 248// FocusCell() is a wrapper around gtk_tree_view_column_focus_cell(). 249func (v *TreeViewColumn) FocusCell(cell *CellRenderer) { 250 C.gtk_tree_view_column_focus_cell(v.native(), cell.native()) 251} 252 253// QueueResize() is a wrapper around gtk_tree_view_column_queue_resize(). 254func (v *TreeViewColumn) QueueResize() { 255 C.gtk_tree_view_column_queue_resize(v.native()) 256} 257 258// GetXOffset() is a wrapper around gtk_tree_view_column_get_x_offset(). 259func (v *TreeViewColumn) GetXOffset() int { 260 return int(C.gtk_tree_view_column_get_x_offset(v.native())) 261} 262 263// void gtk_tree_view_column_set_attributes () 264// void gtk_tree_view_column_set_cell_data_func () 265 266type TreeViewColumnSizing int 267 268const ( 269 TREE_VIEW_COLUMN_GROW_ONLY TreeViewColumnSizing = C.GTK_TREE_VIEW_COLUMN_GROW_ONLY 270 TREE_VIEW_COLUMN_AUTOSIZE = C.GTK_TREE_VIEW_COLUMN_AUTOSIZE 271 TREE_VIEW_COLUMN_FIXED = C.GTK_TREE_VIEW_COLUMN_FIXED 272) 273 274// void gtk_tree_view_column_set_sizing () 275func (v *TreeViewColumn) SetSizing(sizing TreeViewColumnSizing) { 276 C.gtk_tree_view_column_set_sizing(v.native(), C.GtkTreeViewColumnSizing(sizing)) 277} 278 279// GtkTreeViewColumnSizing gtk_tree_view_column_get_sizing () 280func (v *TreeViewColumn) GetSizing() TreeViewColumnSizing { 281 return TreeViewColumnSizing(C.gtk_tree_view_column_get_sizing(v.native())) 282} 283 284// SetWidget() is a wrapper around gtk_tree_view_column_set_widget(). 285func (v *TreeViewColumn) SetWidget(widget IWidget) { 286 C.gtk_tree_view_column_set_widget(v.native(), widget.toWidget()) 287} 288 289// GetButton() is a wrapper around gtk_tree_view_column_get_button(). 290func (v *TreeViewColumn) GetButton() (IWidget, error) { 291 widget := C.gtk_tree_view_column_get_button(v.native()) 292 if widget == nil { 293 return nil, nilPtrErr 294 } 295 return castWidget(widget) 296} 297 298// GetWidget() is a wrapper around gtk_tree_view_column_get_widget(). 299func (v *TreeViewColumn) GetWidget() (IWidget, error) { 300 widget := C.gtk_tree_view_column_get_widget(v.native()) 301 if widget == nil { 302 return nil, nil 303 } 304 return castWidget(widget) 305} 306 307// void gtk_tree_view_column_set_alignment () 308// gfloat gtk_tree_view_column_get_alignment () 309 310// void gtk_tree_view_column_set_sort_order () 311func (v *TreeViewColumn) SetSortOrder(order SortType) { 312 C.gtk_tree_view_column_set_sort_order(v.native(), C.GtkSortType(order)) 313} 314 315// GtkSortType gtk_tree_view_column_get_sort_order () 316func (v *TreeViewColumn) GetSortOrder() SortType { 317 return SortType(C.gtk_tree_view_column_get_sort_order(v.native())) 318} 319 320// void gtk_tree_view_column_cell_set_cell_data () 321// void gtk_tree_view_column_cell_get_size () 322// gboolean gtk_tree_view_column_cell_get_position () 323// GtkWidget * gtk_tree_view_column_get_tree_view () 324