From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM autolearn=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!mx02.eternal-september.org!feeder.eternal-september.org!newsfeed0.kamp.net!newsfeed.kamp.net!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: hreba Newsgroups: comp.lang.ada Subject: Where do I get my Cairo context from (in GTK3)? Date: Sun, 24 Apr 2016 22:44:23 +0200 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Trace: individual.net W5w9Tr32O73HU7Zlm21OfwBmMB5bflbY9+W+JUOi2AqqaTtKza Cancel-Lock: sha1:emKYtDoXZiwK/iicc1u1zDfk1cE= X-Mozilla-News-Host: news://News.Individual.DE:119 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 Xref: news.eternal-september.org comp.lang.ada:30269 Date: 2016-04-24T22:44:23+02:00 List-Id: In GTk2 you got it from a call of Gdk.Cairo.Create. In GTK3 it is passed as a parameter of the callback function for the "draw" signal with the C prototype: gboolean user_function (GtkWidget *widget, CairoContext *cr, gpointer user_data) So I wrote in my Ada program (GNAT, gtkada): package DA_Ret_Callback is new Gtk.Handlers.User_Return_Callback (Gtk.Widget.Gtk_Widget_Record, Boolean, Handler_DataD); function Draw_Handler (da: access Gtk.Widget.Gtk_Widget_Record'Class; cc: Cairo.Cairo_Context; hd: Handler_DataD) return Boolean is begin ... end Draw_Handler; procedure Connect_Handlers (obj: Glib.Object.GObject; hd: Handler_DataD; sn_realize, sn_config, sn_draw: Glib.Signal_Name) is begin ... DA_Ret_Callback.Connect (Gtk.Widget.Gtk_Widget(obj), sn_draw, DA_Ret_Callback.To_Marshaller(Draw_Handler'Access), hd); end Connect_Handlers; The compiler then tells me gui-canvas.adb:79:25: no candidate interpretations match the actuals: gui-canvas.adb:79:52: expected type "Handler" defined at gtk-marshallers.ads:309, instance at gtk-handlers.ads:468, instance at line 20 That means that he expects a handler type Handler is access function (Widget : access Widget_Type'Class; User_Data : User_Type) return Return_Type; So where do I get the cairo context from? -- Frank Hrebabetzky +49 / 6355 / 989 5070