|
Post by alexfish on Mar 12, 2020 21:41:38 GMT 1
Hi Peter
I am having a problem with Bacon Comipler usingflags
Example
PRAGMA INCLUDE <gtk-2.0/gtk/gtk.h> PRAGMA INCLUDE <cairo/cairo.h> PRAGMA LDFLAGS -lcairo
PRAGMA LDFLAGS `pkg-config --cflags gtk+-2.0 --libs gtk+-2.0`
LOCAL * window TYPE GtkWidget
Errors
Compiling 'baconcanvas.bac'... cc -c baconcanvas.bac.c Makefile.bacon:6: recipe for target 'baconcanvas.bac.o' failed Compiler error:
In file included from baconcanvas.bac.h:7:0, from baconcanvas.bac.c:2: /usr/include/gtk-2.0/gtk/gtk.h:32:21: fatal error: gdk/gdk.h: No such file or directory #include <gdk/gdk.h> ^ compilation terminated. make: *** [baconcanvas.bac.o] Error 1
BR Alex
|
|
|
Post by vovchik on Mar 12, 2020 22:52:36 GMT 1
Dear Alex,
What about this:
' for BaCon => 2.5 only PRAGMA LDFLAGS `pkg-config --libs gtk+-2.0` PRAGMA OPTIONS `pkg-config --cflags gtk+-2.0` PRAGMA INCLUDE <cairo/cairo.h> PRAGMA INCLUDE <gtk-2.0/gtk/gtk.h> PRAGMA INCLUDE <gtk-2.0/gdk/gdk.h>
That works for me.
With kind regards, vovchik
|
|
|
Post by alexfish on Mar 13, 2020 2:46:17 GMT 1
Thanks Vovchik
that works.
Just one more thing, does that scheme work in BaCon 4.
BR Alex
|
|
|
Post by vovchik on Mar 13, 2020 10:13:21 GMT 1
Dear Alex, Yep. Works with 4.0 just fine. With kind regards, vovchik
|
|
|
Post by alexfish on Mar 13, 2020 13:08:51 GMT 1
Stuck again
' for BaCon => 2.5 only PRAGMA LDFLAGS `pkg-config --libs gtk+-2.0` PRAGMA OPTIONS `pkg-config --cflags gtk+-2.0` PRAGMA INCLUDE <cairo/cairo.h> PRAGMA INCLUDE <gtk-2.0/gtk/gtk.h> PRAGMA INCLUDE <gtk-2.0/gdk/gdk.h>
OPTION PARSE FALSE
PROTO SelectionInfo gtk_window_new gtk_drawing_area_new
typedef struct{ gboolean active; gdouble x, y; gdouble w, h; }SelectionInfo;
FUNCTION event_press (GtkWidget *widget, GdkEventButton *bev, SelectionInfo *sel_info) TYPE int
RETURN FALSE
END FUNCTION
FUNCTION event_motion (GtkWidget *widget, GdkEventButton *bev, SelectionInfo *sel_info) TYPE int
RETURN FALSE
END FUNCTION
FUNCTION event_release (GtkWidget *widget, GdkEventButton *bev, SelectionInfo *sel_info) TYPE int
RETURN FALSE
END FUNCTION
DECLARE * window TYPE GtkWidget
DECLARE *canvas TYPE GtkWidget
SelectionInfo selection = {FALSE, 0, 0, 0, 0}
gtk_init (&argc, &argv)
window = gtk_window_new (GTK_WINDOW_TOPLEVEL) g_signal_connect (G_OBJECT (window), "delete-event",G_CALLBACK (gtk_main_quit), NULL)
canvas = gtk_drawing_area_new () gtk_widget_set_size_request (canvas, 400, 200) /* connect our drawing method to the "expose" signal * passing in a pointer to the selection structure as the user data */ 'g_signal_connect (G_OBJECT (canvas), "expose-event",G_CALLBACK (paint),&selection)
/* add additional events the canvas widget will listen for */ gtk_widget_add_events (canvas,GDK_BUTTON1_MOTION_MASK|GDK_BUTTON_PRESS_MASK|GDK_BUTTON_RELEASE_MASK) /* connect our rubber banding callbacks, like the paint callback * we pass the selection as userdata */ g_signal_connect (G_OBJECT (canvas), "button_press_event",G_CALLBACK (event_press),&selection) g_signal_connect (G_OBJECT (canvas), "button_release_event",G_CALLBACK (event_release),&selection) g_signal_connect (G_OBJECT (canvas), "motion_notify_event",G_CALLBACK (event_motion),&selection)
gtk_container_add (GTK_CONTAINER (window), canvas) gtk_widget_show_all (window) gtk_main ()
Converting 'baconcanvas.bac'... done, 78 lines were processed in 0.050 seconds. Compiling 'baconcanvas.bac'... cc `pkg-config --cflags gtk+-2.0` -c baconcanvas.bac.c Makefile.bacon:6: recipe for target 'baconcanvas.bac.o' failed Compiler error:
Description: file 'baconcanvas.bac' line 70: g_signal_connect (G_OBJECT (canvas), "motion_notify_event",G_CALLBACK (event_motion),&selection) Cause: unknown type name 'SelectionInfo'
EDIT:: think strucy is the problem BR Alex
|
|
|
Post by alexfish on Mar 13, 2020 14:48:37 GMT 1
Hi Vivchik
have managed to get the bits working
the info struct not use since can pass this in bacon
think can remember how to use bacon RECORD within the FUNCTION's
the code base now look like this
but need to put rest of bits in Including bacon record within the FUNTION's
PRAGMA LDFLAGS `pkg-config --libs gtk+-2.0` PRAGMA OPTIONS `pkg-config --cflags gtk+-2.0` PRAGMA INCLUDE <cairo/cairo.h> PRAGMA INCLUDE <gtk-2.0/gtk/gtk.h> PRAGMA INCLUDE <gtk-2.0/gdk/gdk.h>
OPTION PARSE FALSE
FUNCTION paint (GtkWidget *widget, GdkEventExpose *bev) TYPE int
RETURN FALSE
END FUNCTION
FUNCTION event_press (GtkWidget *widget, GdkEventButton *bev) TYPE int
RETURN FALSE
END FUNCTION
FUNCTION event_motion (GtkWidget *widget, GdkEventMotion *bev) TYPE int
RETURN FALSE
END FUNCTION
FUNCTION event_release (GtkWidget *widget, GdkEventButton *bev) TYPE int
RETURN FALSE
END FUNCTION
DECLARE * window TYPE GtkWidget
DECLARE *canvas TYPE GtkWidget
gtk_init (&argc, &argv)
window = gtk_window_new (GTK_WINDOW_TOPLEVEL) g_signal_connect (G_OBJECT (window), "delete-event",G_CALLBACK (gtk_main_quit), NULL)
canvas = gtk_drawing_area_new () gtk_widget_set_size_request (canvas, 400, 200) /* connect our drawing method to the "expose" signal * passing in a pointer to the selection structure as the user data */ g_signal_connect (G_OBJECT (canvas), "expose-event",G_CALLBACK (paint),NULL)
/* add additional events the canvas widget will listen for */ gtk_widget_add_events (canvas,GDK_BUTTON1_MOTION_MASK|GDK_BUTTON_PRESS_MASK|GDK_BUTTON_RELEASE_MASK) /* connect our rubber banding callbacks, like the paint callback * we pass the selection as userdata */ g_signal_connect (G_OBJECT (canvas), "button_press_event",G_CALLBACK (event_press),NULL) g_signal_connect (G_OBJECT (canvas), "button_release_event",G_CALLBACK (event_release),NULL) g_signal_connect (G_OBJECT (canvas), "motion_notify_event",G_CALLBACK (event_motion),NULL)
gtk_container_add (GTK_CONTAINER (window), canvas) gtk_widget_show_all (window) gtk_main ()
BR Alex
|
|
|
Post by bigbass on Mar 13, 2020 16:49:56 GMT 1
Hello Alex a very nice job almost there only a small adjustment for bacon use (porting c can cause some unseen troubles you know) believe me that RECORD typedef has caused me a lot of trouble too But this is working now to get the events you need hope it helps have fun using the latest bacon 4 P.S I dont know why I had to do this line with the closing semicolon for it to work?? maybe a bug on my part but works selection = {FALSE, 0, 0, 0, 0;}
Joe
|
|
|
Post by alexfish on Mar 13, 2020 17:23:27 GMT 1
HI All have added bits from original demo But have gone much further as regards a Canvas a lot lot further but now need to pass into bacon this one uses cairo , pixbuf & pixbuff animation + keyboard , mysterious ? will post on a new thread , when Soon BR Alex demo in archive Attachments:baconcanvas.bac.bz2 (1.4 KB)
|
|
|
Post by vovchik on Mar 13, 2020 17:34:54 GMT 1
Dear Alex and Joe,
Very nice. Thanks. Works very nicely....
With kind regards, vovchik
|
|
|
Post by alexfish on Mar 13, 2020 17:49:40 GMT 1
Hi Joe
Thanks for that one
will test in next demo as mentioned above
BR Alex
|
|