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
|
with Gtk; use Gtk;
with Gtk.Enums; use Gtk.Enums;
with Gtkada.Handlers; use Gtkada.Handlers;
with Powergnu_Pkg.Callbacks; use Powergnu_Pkg.Callbacks;
with Gdk.Event; use Gdk.Event;
package body Powergnu_Pkg is
procedure Gtk_New (Powergnu : out Powergnu_Access) is
begin
Powergnu := new Powergnu_Record;
Powergnu_Pkg.Initialize (Powergnu);
end Gtk_New;
procedure Initialize (Powergnu : access Powergnu_Record'Class) is
pragma Suppress (All_Checks);
begin
Gtk.Window.Initialize (Powergnu, Window_Toplevel);
Set_Events (Powergnu,
Key_Press_Mask);
Return_Callback.Connect
(Powergnu, "delete_event", On_Powergnu_Delete_Event'Access);
Return_Callback.Connect
(Powergnu, "key_press_event", On_Powergnu_Key_Press_Event'Access);
Set_Title (Powergnu, "GtkAda Presentation Viewer");
Set_Policy (Powergnu, True, True, False);
Set_Position (Powergnu, Win_Pos_None);
Set_Modal (Powergnu, False);
Set_Default_Size (Powergnu, 800, 600);
Gtk_New_Vbox (Powergnu.Vbox1, False, 0);
Add (Powergnu, Powergnu.Vbox1);
Gtk_New (Powergnu.Main_Frame);
Pack_Start (Powergnu.Vbox1, Powergnu.Main_Frame, True, True, 0);
Set_Shadow_Type (Powergnu.Main_Frame, Shadow_Etched_In);
Gtk_New (Powergnu.Drawing_Area);
Add (Powergnu.Main_Frame, Powergnu.Drawing_Area);
Gtk_New (Powergnu.Statusbar1);
Powergnu.Context := Get_Context_Id (Powergnu.Statusbar1, "powergnu_ctx");
Pack_Start (Powergnu.Vbox1, Powergnu.Statusbar1, False, False, 0);
Gtk_New (Powergnu.Win, Window_Popup);
Set_USize (Powergnu.Win, 1024, 768);
Set_USize (Powergnu.Win, 800, 600);
Set_Position (Powergnu.Win, Win_Pos_Center);
Set_Events (Powergnu.Win, Key_Press_Mask);
Set_Transient_For (Powergnu.Win, Powergnu);
Return_Callback.Object_Connect
(Powergnu.Win, "key_press_event", On_Powergnu_Key_Press_Event'Access,
Powergnu);
end Initialize;
end Powergnu_Pkg;
|