Skip to content

Commit ba75f78

Browse files
committed
Merge branch 'listView' of github.com:tknopp/Gtk.jl into tknopp-listView
Conflicts: src/Gtk.jl
2 parents 0a8b481 + 9deb842 commit ba75f78

File tree

2 files changed

+66
-6
lines changed

2 files changed

+66
-6
lines changed

src/Gtk.jl

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,8 @@ import Cairo: destroy
1818
# generic interface:
1919
export width, height, #minsize, maxsize
2020
reveal, configure, draw, cairo_context,
21-
visible, destroy,
22-
hasparent, toplevel,
23-
stop
24-
21+
visible, destroy, stop,
22+
hasparent, toplevel
2523
#property, margin, padding, align
2624
#raise, focus, destroy, enabled
2725

@@ -34,7 +32,8 @@ export GtkWindow, GtkCanvas, GtkBox, GtkButtonBox, GtkPaned, GtkLayout, GtkNoteb
3432
GtkImage, GtkProgressBar, GtkSpinner, GtkStatusbar, GtkStatusIcon,
3533
GtkTextBuffer, GtkTextView, GtkTextMark, GtkTextTag,
3634
GtkMenuItem, GtkSeparatorMenuItem, GtkMenu, GtkMenuBar,
37-
GtkFileChooserDialog, GtkNullContainer, GtkBuilder
35+
GtkFileChooserDialog, GtkNullContainer, GtkBuilder, GtkListStore,
36+
GtkTreeIter, GtkTreeView, GtkTreeViewColumn, GtkCellRenderer
3837

3938
# Gtk3 objects
4039
export GtkGrid
@@ -209,6 +208,11 @@ module ShortNames
209208
const Justification = GtkJustification
210209
const NullContainer = GtkNullContainer
211210
const Builder = GtkBuilder
211+
const ListStore = GtkListStore
212+
const TreeIter = GtkTreeIter
213+
const TreeView = GtkTreeView
214+
const TreeViewColumn = GtkTreeViewColumn
215+
const CellRenderer = GtkCellRenderer
212216

213217
export G_, Window, Canvas, BoxLayout, ButtonBox, Paned, Layout, Notebook,
214218
Expander, Overlay, Frame, AspectFrame,
@@ -218,7 +222,8 @@ module ShortNames
218222
Pixbuf, Image, ProgressBar, Spinner, Statusbar,
219223
StatusIcon, TextBuffer, TextView, TextMark, TextTag,
220224
MenuItem, SeparatorMenuItem, Menu, MenuBar,
221-
NullContainer, Key, ScrollDirection, Justification, Builder
225+
NullContainer, Key, ScrollDirection, Justification, Builder, ListStore,
226+
TreeIter, TreeView, TreeViewColumn, CellRenderer
222227

223228
# Gtk 3
224229
if Gtk.gtk_version >= 3

src/lists.jl

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,3 +54,58 @@ end
5454
delete!(cb::GtkComboBoxText,i::Integer) =
5555
(ccall((:gtk_combo_box_text_remove,libgtk),Void,(Ptr{GObject},Cint),cb,i-1); cb)
5656

57+
type GtkTreeIter
58+
stamp::Cint
59+
user_data::Ptr{Void}
60+
user_data2::Ptr{Void}
61+
user_data3::Ptr{Void}
62+
GtkTreeIter() = new(0,C_NULL,C_NULL,C_NULL)
63+
end
64+
65+
@gtktype GtkListStore
66+
function GtkListStore(types::(Type...))
67+
gtypes = GLib.gvalues(types...)
68+
handle = ccall((:gtk_list_store_newv,libgtk),Ptr{GObject},(Cint,Ptr{GLib.GType}), length(types), gtypes)
69+
GtkListStore(handle)
70+
end
71+
72+
function push!(listStore::GtkListStore, iter::GtkTreeIter)
73+
ccall((:gtk_list_store_append,libgtk),Void,(Ptr{GObject},Ptr{GtkTreeIter}), listStore, &iter)
74+
listStore
75+
end
76+
77+
@gtktype GtkCellRenderer
78+
GtkCellRenderer() = GtkCellRenderer( ccall((:gtk_cell_renderer_text_new,libgtk),Ptr{GObject},()))
79+
80+
@gtktype GtkTreeViewColumn
81+
GtkTreeViewColumn() = GtkTreeViewColumn( ccall((:gtk_tree_view_column_new,libgtk),Ptr{GObject},()))
82+
83+
84+
empty!(treeColumn::GtkTreeViewColumn) =
85+
ccall((:gtk_tree_view_column_clear,libgtk), Void, (Ptr{GObject},),treeColumn)
86+
87+
function unshift!(treeColumn::GtkTreeViewColumn, renderer::GtkCellRenderer, expand::Bool=false)
88+
ccall((:gtk_tree_view_column_pack_start,libgtk), Void,
89+
(Ptr{GObject},Ptr{GObject},Bool),treeColumn,renderer,expand)
90+
treeColumn
91+
end
92+
93+
function push!(treeColumn::GtkTreeViewColumn, renderer::GtkCellRenderer, expand::Bool=false)
94+
ccall((:gtk_tree_view_column_pack_end,libgtk), Void,
95+
(Ptr{GObject},Ptr{GObject},Bool),treeColumn,renderer,expand)
96+
treeColumn
97+
end
98+
99+
add_attribute(treeColumn::GtkTreeViewColumn, renderer::GtkCellRenderer, attribute::String, column) =
100+
ccall((:gtk_tree_view_column_add_attribute,libgtk),Void,
101+
(Ptr{GObject},Ptr{GObject},Ptr{Uint8},Cint),treeColumn,renderer,bytestring(attribute),int32(column))
102+
103+
@gtktype GtkTreeView
104+
GtkTreeView() = GtkTreeView(ccall((:gtk_tree_view_new,libgtk),Ptr{GObject},()))
105+
GtkTreeView(listStore::GtkListStore) = GtkTreeView(
106+
ccall((:gtk_tree_view_new_with_model,libgtk),Ptr{GObject},(Ptr{GObject},),listStore))
107+
108+
function push!(treeView::GtkTreeView,treeColumn::GtkTreeViewColumn)
109+
ccall((:gtk_tree_view_append_column,libgtk),Void,(Ptr{GObject},Ptr{GObject}),treeView,treeColumn)
110+
treeView
111+
end

0 commit comments

Comments
 (0)