Skip to content

Commit b11930c

Browse files
committed
MessageDialog now inputs a Dict of buttons
1 parent d804cdb commit b11930c

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

src/windows.jl

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,16 +33,12 @@ GtkScrolledWindowLeaf() = GtkScrolledWindowLeaf(
3333
ccall((:gtk_scrolled_window_new,libgtk),Ptr{GObject},(Ptr{GObject},Ptr{GObject}),
3434
C_NULL,C_NULL))
3535

36-
function GtkDialogLeaf(title::StringLike, parent::GtkContainer, flags::Integer, button_text_response...)
37-
n = length(button_text_response)
38-
if !iseven(n)
39-
error("button_text_response must consist of text/response pairs")
40-
end
36+
function GtkDialogLeaf(title::StringLike, parent::GtkContainer, flags::Integer, buttons)
4137
w = GtkDialogLeaf(ccall((:gtk_dialog_new_with_buttons,libgtk), Ptr{GObject},
4238
(Ptr{Uint8},Ptr{GObject},Cint,Ptr{Void}),
4339
title, parent, flags, C_NULL))
44-
for i = 1:2:n
45-
push!(w, button_text_response[i], button_text_response[i+1])
40+
for key in keys(buttons)
41+
push!(w, key, buttons[key])
4642
end
4743
w
4844
end
@@ -57,6 +53,17 @@ function GtkMessageDialogLeaf(parent::GtkContainer, flag::Integer, typ::Integer,
5753
parent, flag, typ, button, bytestring(message) ))
5854
end
5955

56+
function GtkMessageDialogLeaf(parent::GtkContainer, flags::Integer, typ::Integer,
57+
message::StringLike, buttons)
58+
w = GtkMessageDialogLeaf(ccall((:gtk_message_dialog_new,libgtk), Ptr{GObject},
59+
(Ptr{GObject},Cint,Cint,Cint,Ptr{Uint8}),
60+
parent, flags, typ, 0, bytestring(message) ))
61+
for key in keys(buttons)
62+
push!(w, key, buttons[key])
63+
end
64+
w
65+
end
66+
6067
function info_dialog(message::String; parent = GtkNullContainer())
6168
dlg = @GtkMessageDialog(parent, GtkDialogFlags.DESTROY_WITH_PARENT,
6269
GtkMessageType.INFO, GtkButtonsType.CLOSE, message)

0 commit comments

Comments
 (0)