|
46 | 46 | GtkAboutDialogLeaf() = GtkAboutDialogLeaf(
|
47 | 47 | ccall((:gtk_about_dialog_new,libgtk),Ptr{GObject},()))
|
48 | 48 |
|
49 |
| -function GtkMessageDialogLeaf(parent::GtkContainer, flags::Integer, typ::Integer, |
50 |
| - message::StringLike, buttons) |
| 49 | +function GtkMessageDialogLeaf(message::StringLike, buttons, flags::Integer, typ::Integer, parent = GtkNullContainer()) |
51 | 50 | w = GtkMessageDialogLeaf(ccall((:gtk_message_dialog_new,libgtk), Ptr{GObject},
|
52 | 51 | (Ptr{GObject},Cint,Cint,Cint,Ptr{Uint8}),
|
53 |
| - parent, flags, typ, GtkButtonsType.NONE, bytestring(message) )) |
| 52 | + parent, flags, typ, GtkButtonsType.NONE, C_NULL)) |
| 53 | + setproperty!(w, :text, bytestring(message)) |
54 | 54 | for (k,v) in buttons
|
55 | 55 | push!(w, k, v)
|
56 | 56 | end
|
57 | 57 | w
|
58 | 58 | end
|
59 | 59 |
|
60 |
| -function info_dialog(message::String; parent = GtkNullContainer()) |
61 |
| - dlg = @GtkMessageDialog(parent, GtkDialogFlags.DESTROY_WITH_PARENT, |
62 |
| - GtkMessageType.INFO, GtkButtonsType.CLOSE, message) |
63 |
| - run(dlg) |
64 |
| - destroy(dlg) |
65 |
| -end |
| 60 | +ask_dialog(message::String, parent = GtkNullContainer()) = |
| 61 | + ask_dialog(message, "Yes", "No", parent) |
66 | 62 |
|
67 |
| -function ask_dialog(message::String, yes_text="Yes", no_text="No"; parent = GtkNullContainer()) |
68 |
| - dlg = @GtkMessageDialog(parent, GtkDialogFlags.DESTROY_WITH_PARENT, |
69 |
| - GtkMessageType.QUESTION, message, ((yes_text,1), (no_text,2))) |
| 63 | +function ask_dialog(message::String, yes_text, no_text, parent = GtkNullContainer()) |
| 64 | + dlg = @GtkMessageDialog(message, ((yes_text,1), (no_text,2)), |
| 65 | + GtkDialogFlags.DESTROY_WITH_PARENT, GtkMessageType.QUESTION, parent) |
70 | 66 | response = run(dlg)
|
71 | 67 | destroy(dlg)
|
72 | 68 | response == 1
|
73 | 69 | end
|
74 | 70 |
|
75 |
| -function warn_dialog(message::String; parent = GtkNullContainer()) |
76 |
| - dlg = @GtkMessageDialog(parent, GtkDialogFlags.DESTROY_WITH_PARENT, |
77 |
| - GtkMessageType.WARNING, GtkButtonsType.CLOSE, message) |
78 |
| - run(dlg) |
79 |
| - destroy(dlg) |
80 |
| -end |
81 |
| - |
82 |
| -function error_dialog(message::String; parent = GtkNullContainer()) |
83 |
| - dlg = @GtkMessageDialog(parent, GtkDialogFlags.DESTROY_WITH_PARENT, |
84 |
| - GtkMessageType.ERROR, GtkButtonsType.CLOSE, message) |
85 |
| - run(dlg) |
86 |
| - destroy(dlg) |
| 71 | +for (func, flag) in ( |
| 72 | + (:info_dialog, GtkMessageType.INFO), |
| 73 | + (:warn_dialog, GtkMessageType.WARNING), |
| 74 | + (:error_dialog, GtkMessageType.ERROR)) |
| 75 | + @eval function $func(message::String, parent = GtkNullContainer()) |
| 76 | + w = GtkMessageDialogLeaf(ccall((:gtk_message_dialog_new,libgtk), Ptr{GObject}, |
| 77 | + (Ptr{GObject},Cint,Cint,Cint,Ptr{Uint8}), |
| 78 | + parent, GtkDialogFlags.DESTROY_WITH_PARENT, |
| 79 | + $flag, GtkButtonsType.CLOSE, C_NULL)) |
| 80 | + setproperty!(w, :text, bytestring(message)) |
| 81 | + run(w) |
| 82 | + destroy(w) |
| 83 | + end |
87 | 84 | end
|
88 |
| - |
89 |
| -#GtkSeparator — A separator widget |
0 commit comments