1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
function Saver_Event
(Object : access Gtk_Widget_Record'Class;
User_Data : Ultra_Address_To_Access.Object_Pointer) return Boolean;
function saver_Event
(Object : access Gtk_Widget_Record'Class;
User_Data : Ultra_Address_To_Access.Object_Pointer) return Boolean
is
Dialog : Gtk.Dialog.Gtk_Dialog;
Yes : Gtk.Widget.Gtk_Widget;
No : Gtk.Widget.Gtk_Widget;
begin
loop
Gtk.Dialog.Gtk_New(Dialog, "Save ?", User_Data.Mainwin, Gtk.dialog.modal);
Yes := Gtk.Dialog.Add_Button(Dialog, "Yes", Gtk.Dialog.Gtk_Response_Yes);
No := Gtk.Dialog.Add_Button(Dialog, "No", Gtk.Dialog.Gtk_Response_No);
case Gtk.Dialog.Run(Dialog) is
when Gtk.Dialog.Gtk_Response_Yes =>
Destroy(Object);
Gtk.Dialog.Destroy(Dialog);
Gtk.Main.Main_Quit;
return True;
when Gtk.Dialog.Gtk_Response_No =>
Destroy(Object);
Gtk.Dialog.Destroy(Dialog);
Gtk.Main.Main_Quit;
return True;
when others =>
Gtk.Dialog.Destroy(Dialog);
end case;
end loop;
end saver_Event;
procedure saver(Ultrason : in Ultrason_Access) is
Verax : Boolean := False;
begin
Gtk.Main.Init;
Gtk_New
(Ultrason.Mainwin);
Set_Title
(Ultrason.Mainwin,
"Ultrason 2015 MIDI Composer : " & Ultrason.Theory.File.all);
Gtk.Window.Set_Position
(Ultrason.Mainwin,
Win_Pos_Center);
Gtk.Window.Set_Default_Size
(Ultrason.Mainwin,
800, 600);
-- Window Exit connect. --
Window_Cb.Connect (Ultrason.Mainwin, "destroy",
Window_Cb.To_Marshaller (Exit_Main'Access),
Ultrason);
-- Window Delete connect. --
Return_Window_Cb.Connect (Ultrason.Mainwin, "delete_event",
Return_Window_Cb.To_Marshaller (saver_Event'access),
Ultrason,
After => True);
-- Create Mainbox. --
Gtk.Box.Gtk_New_Vbox (Ultrason.Mainbox, False, 0);
Gtk.Window.Add(Ultrason.Mainwin, Ultrason.Mainbox);
Gtk.Window.Show_All
(Ultrason.Mainwin);
Verax := Return_Window_Cb.Emit_By_Name(Ultrason.Mainwin, "delete_event");
Gtk.Main.Main;
end Saver; |
Partager