Code :
-- Mon packetage Handlers package Timbre_Handlers is new Gtk.Handlers.User_Return_Callback(Gtk.Widget.Gtk_Widget_Record, Boolean, Timbre_access); -- Ma fonction connectée. function Timbre_Right_Popup_Menu(Widget : access Gtk.Widget.Gtk_Widget_Record'Class;Event : Gdk.Event.Gdk_Event; Timbre : Timbre_Access) return Boolean is begin Put("Right click" ); return True; end Timbre_Right_Popup_Menu; --- la connection de l'objet Gtk_Fixed procedure Initialize(Timbre : in out Timbre_Access; Is_Drums : in Boolean := false) is begin Timbre := new T_Timbre(Is_Drums); Gtk.Box.Gtk_New_Vbox(Timbre.Main_Vbox); case Timbre.As_Drums is when True => Gtk.Frame.Gtk_New(Timbre.Drums); when False => Gtk.Frame.Gtk_New(Timbre.Synth, "Synth" ); Gtk_New(Timbre.Synth_Fixed); Add(Timbre.Synth, Timbre.Synth_Fixed); Pack_Start(Timbre.Main_Vbox, Timbre.Synth, True, True, 0); Timbre_Handlers.Connect(Timbre.Synth_Fixed, "button_press_event", Timbre_Handlers.To_Marshaller(Timbre_Right_Popup_Menu'Access), Timbre); end case; Gtk.Box.Show_All(Timbre.Main_vbox); end Initialize;
|