diff --git a/src/layout.jl b/src/layout.jl index 7ac44435..85119f62 100644 --- a/src/layout.jl +++ b/src/layout.jl @@ -57,6 +57,16 @@ if gtk_version == 3 end end + function deleteat!(grid::GtkGrid, i::Integer, side::Symbol) + if side == :row + ccall((:gtk_grid_remove_row,libgtk), Void, (Ptr{GObject}, Cint), grid, i) + elseif side == :col + ccall((:gtk_grid_remove_column,libgtk), Void, (Ptr{GObject}, Cint), grid, i) + else + error(string("invalid GtkPositionType ",s)) + end + end + function insert!(grid::GtkGrid, sibling, side::Symbol) ccall((:gtk_grid_insert_next_to,libgtk), Void, (Ptr{GObject}, Ptr{GObject}, Cint), grid, sibling, GtkPositionType.(side)) end diff --git a/test/gui.jl b/test/gui.jl index 187b2824..e525a912 100644 --- a/test/gui.jl +++ b/test/gui.jl @@ -1,6 +1,6 @@ ## Tests using Gtk.ShortNames, Gtk.GConstants, Gtk.Graphics -import Gtk.deleteat! +import Gtk.deleteat!, Gtk.libgtk_version ## Window w = @Window("Window", 400, 300) |> showall @@ -132,7 +132,7 @@ push!(w, ex) showall(w) destroy(w) -## Grid +## Table grid = @Table(3,3) w = @Window(grid, "Grid", 400, 400) grid[2,2] = @Button("2,2") @@ -141,6 +141,17 @@ grid[1,1] = "grid" showall(w) destroy(w) +## Grid +grid = @Grid() +w = @Window(grid, "Grid", 400, 400) +grid[2,2] = @Button("2,2") +grid[2,3] = @Button("2,3") +grid[1,1] = "grid" +insert!(grid,1,:top) +libgtk_version >= v"3.10.0" && deleteat!(grid,1,:row) +showall(w) +destroy(w) + ## Widgets