goocanvas-devel Mailing List for GooCanvas (Page 3)
Status: Beta
Brought to you by:
dachaplin
You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(4) |
Sep
(16) |
Oct
(29) |
Nov
(5) |
Dec
(9) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(24) |
Feb
(58) |
Mar
(48) |
Apr
(33) |
May
(11) |
Jun
(10) |
Jul
(10) |
Aug
(17) |
Sep
(3) |
Oct
(107) |
Nov
(40) |
Dec
(2) |
2008 |
Jan
|
Feb
(15) |
Mar
(37) |
Apr
(11) |
May
(50) |
Jun
(44) |
Jul
(13) |
Aug
(2) |
Sep
(6) |
Oct
(1) |
Nov
(11) |
Dec
(12) |
2009 |
Jan
|
Feb
(3) |
Mar
(11) |
Apr
(5) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2010 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2011 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Damon C. <da...@ka...> - 2008-07-06 12:08:59
|
On Sun, 2008-07-06 at 21:37 +1000, Richard Gipps wrote: > Hi all, > I was wondering if there is an easy way to delete all the > items in a GooCanvasTableModel without having to keep a list of all the > items you added to the table and then deleting them one by one? You can get the number of children with: n_children = goo_canvas_item_model_get_n_children (table); then remove them with something like: for (i = 0; i < n_children; i++) goo_canvas_item_model_remove_child (table, 0); Damon |
From: Richard G. <rg...@ne...> - 2008-07-06 11:37:41
|
Hi all, I was wondering if there is an easy way to delete all the items in a GooCanvasTableModel without having to keep a list of all the items you added to the table and then deleting them one by one? Thanks, Richard. |
From: Damon C. <da...@ka...> - 2008-07-04 08:49:23
|
On Thu, 2008-07-03 at 20:32 -0500, Jamie Lahowetz wrote: > This may be a simple question, I'm sure this has been done before so I > figure i would just ask. Whats an easy way to relate latitude and > longitude to canvas coords? I don't think it has been mentioned here before. I suppose it depends on whether you're doing a map of the entire planet or just a part of it, and on how accurate it needs to be. Wikipedia has an article about it: http://en.wikipedia.org/wiki/Map_projection Damon |
From: Jamie L. <jla...@bi...> - 2008-07-04 01:32:46
|
This may be a simple question, I'm sure this has been done before so I figure i would just ask. Whats an easy way to relate latitude and longitude to canvas coords? -- Jamie Ryan Lahowetz University of Nebraska - Lincoln Graduate Student - Geosciences 402.304.0766 jla...@bi... |
From: Jamie L. <jla...@bi...> - 2008-06-22 15:49:37
|
I just got a new computer and tried to install Goo::Canvas using the new lib (is the pc file the only change/addition?) distro on Gnome. I got new errors: d000010.o:(.idata$6+0x0): multiple definition of `_nm__goo_canvas_style_operator _id' C:\camelbox\lib\libgoocanvas.dll.a(d000214.o):(.idata$6+0x0): first defined here d000011.o:(.idata$5+0x0): multiple definition of `_imp__goo_canvas_style_stroke_ pattern_id' C:\camelbox\lib\libgoocanvas.dll.a(d000219.o):(.idata$5+0x0): first defined here d000011.o:(.idata$6+0x0): multiple definition of `_nm__goo_canvas_style_stroke_p attern_id' C:\camelbox\lib\libgoocanvas.dll.a(d000219.o):(.idata$6+0x0): first defined here d000012.o:(.idata$7+0x0): multiple definition of `libgoocanvas_3_dll_iname' C:\camelbox\lib\libgoocanvas.dll.a(d000241.o):(.idata$7+0x0): first defined here collect2: ld returned 1 exit status dmake: Error code 129, while making 'blib\arch\auto\Goo\Canvas\Canvas.dll' Ant ideas? 2008/6/18 Richard Gipps <rg...@ne...>: > I had the problem with the goocanvasenumtypes.h but I had no issues with > generating the DLL. > > I got around the goocanvasenumtypes.h issue a different way. The tar source > files come already come with goocanvasenumtypes.h so I ran configure and > then deleted the following lines from src\Makefile. Once I did that I ran > make and all was fine. > > goocanvasenumtypes.h: stamp-goocanvasenumtypes.h > @true > stamp-goocanvasenumtypes.h: $(goo_canvas_public_headers) Makefile > (cd $(srcdir) && $(GLIB_MKENUMS) \ > --fhead "#ifndef __GOO_CANVAS_ENUM_TYPES_H__\n#define > __GOO_CANVAS_ENUM_TYPES_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" > \ > --fprod "/* Enumerations from \"@filename@\" */\n" \ > --vhead "GType @enum_name@_get_type (void);\n#define > GOO_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n\n\n" \ > --ftail "G_END_DECLS\n\n#endif /* __GOO_CANVAS_ENUM_TYPES_H__ */" \ > $(libgoocanvas_public_headers)) >> xgen-gtbh \ > && (cmp -s xgen-gtbh goocanvasenumtypes.h || cp xgen-gtbh > goocanvasenumtypes.h ) \ > && rm -f xgen-gtbh \ > && echo timestamp > $(@F) > > goocanvasenumtypes.c: $(goo_canvas_public_headers) Makefile > (cd $(srcdir) && $(GLIB_MKENUMS) \ > --fhead "#include <glib-object.h>\n" \ > --fhead "#include \"goocanvas.h\"\n" \ > --fprod "\n/* Enumerations from \"@filename@\" */" \ > --vhead "GType\n@enum_name@_get_type (void)\n{\n static GType > etype = 0;\n if( etype == 0 ) \n {\n static const G@Type@Value > values[] = {" \ > --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," > \ > --vtail " { 0, NULL, NULL }\n };\n etype = g_@type@_register_static > (\"@EnumName@\", values );\n }\n return etype;\n}\n" \ > $(libgoocanvas_public_headers)) > xgen-gtbc \ > && cp xgen-gtbc goocanvasenumtypes.c \ > && rm -f xgen-gtbc > > Not very elegant, but it works! > Richard. > > control H wrote: > > Just a quick note for those who compile goocanvas on windows like I > did 2 weeks ago. There were 2 problems on my Windows system > (goocanvas0.10): > > 1. there were errors in goocanvasenumtypes.h > 2. there was no libgoocanvas dll generated > > 1. glib-mkenums needs perl, and even if it can find perl it sometimes > generates a syntax incorrect goocanvasenumtypes.h. I solved it by > making sure in msys perl can really be found at /usr/bin/perl. > 2. this is because libtool is a bit flawed IMO. In the function > func_win32_libid () we see: > > func_win32_libid () > { > win32_libid_type="unknown" > win32_fileres=`file -L $1 2>/dev/null` > ... > > However, my version of file.exe (4.16) doesn't support the option -L > on windows, but libtool assumes it does, therefore func_win32_libid() > doesn't recognize. I just removed -L in the code above, resulting in > libgoocanvas-3.dll being made. > > Of course all this is not goocanvas specific, but general > mingw/libtool stuff. But it can take you a lot of time finding out why > things don't work, so hope this helps. > > regards, > CH > > PS I don't know about libtool at all actually, but wouldn't it be an > idea to check whether file supports option -L? > > ------------------------------------------------------------------------- > Check out the new SourceForge.net Marketplace. > It's the best place to buy or sell services for > just about anything Open Source.http://sourceforge.net/services/buy/index.php > _______________________________________________ > Goocanvas-devel mailing lis...@li...https://lists.sourceforge.net/lists/listinfo/goocanvas-devel > > > > ------------------------------------------------------------------------- > Check out the new SourceForge.net Marketplace. > It's the best place to buy or sell services for > just about anything Open Source. > http://sourceforge.net/services/buy/index.php > _______________________________________________ > Goocanvas-devel mailing list > Goo...@li... > https://lists.sourceforge.net/lists/listinfo/goocanvas-devel > > -- Jamie Ryan Lahowetz University of Nebraska - Lincoln Graduate Student - Geosciences 402.304.0766 jla...@bi... |
From: Damon C. <da...@ka...> - 2008-06-19 07:57:45
|
On Wed, 2008-06-18 at 18:57 -0500, Jamie Lahowetz wrote: > When you create a group, items can be dropped into that group making > it a container. right? so is there a way to click on an item on the > canvas, get the group that contains this item, and remove it from the > canvas? The easiest way to do that is to connect to the "button-press-event" signal of the item, and then call goo_canvas_item_remove() on it. Damon |
From: Damon C. <da...@ka...> - 2008-06-19 07:52:43
|
On Wed, 2008-06-18 at 17:21 -0500, Jamie Lahowetz wrote: > get_items_at would definitely be the best way to find items with a > right click. But it seems that these perl bindings are not present for > the Goo::Canvas module. Well, sort of, they are present for > Goo::Canvas::Item objects. Are the items returned by > goocanvasitems_get_items_at the same as whats returned by > goocanvas_get_items_at? goocanvas_get_items_at() calls goocanvasitems_get_items_at() so you could possibly call it directly yourself instead. Have a look at the C code. You will need to call goo_canvas_create_cairo_context() though, so check if that is wrapped. Damon |
From: Jamie L. <jla...@bi...> - 2008-06-18 23:57:32
|
When you create a group, items can be dropped into that group making it a container. right? so is there a way to click on an item on the canvas, get the group that contains this item, and remove it from the canvas? On Wed, Jun 18, 2008 at 5:21 PM, Jamie Lahowetz <jla...@bi...> wrote: > get_items_at would definitely be the best way to find items with a right > click. But it seems that these perl bindings are not present for the > Goo::Canvas module. Well, sort of, they are present for Goo::Canvas::Item > objects. Are the items returned by goocanvasitems_get_items_at the same as > whats returned by goocanvas_get_items_at? > > > > > On Tue, Jun 17, 2008 at 3:49 PM, Damon Chaplin <da...@ka...> > wrote: > >> >> On Tue, 2008-06-17 at 15:36 -0500, Jamie Lahowetz wrote: >> > Does get_bounds return the x1,y1,x2,y2 of the item/group? >> >> In the C API goo_canvas_item_get_bounds() takes a GooCanvasBounds struct >> and fills it in. I don't know what the Perl bindings do. >> >> Damon >> >> >> >> ------------------------------------------------------------------------- >> Check out the new SourceForge.net Marketplace. >> It's the best place to buy or sell services for >> just about anything Open Source. >> http://sourceforge.net/services/buy/index.php >> _______________________________________________ >> Goocanvas-devel mailing list >> Goo...@li... >> https://lists.sourceforge.net/lists/listinfo/goocanvas-devel >> > > > > -- > Jamie Ryan Lahowetz > University of Nebraska - Lincoln > Graduate Student - Geosciences > 402.304.0766 > jla...@bi... > -- Jamie Ryan Lahowetz University of Nebraska - Lincoln Graduate Student - Geosciences 402.304.0766 jla...@bi... |
From: Jamie L. <jla...@bi...> - 2008-06-18 22:21:32
|
get_items_at would definitely be the best way to find items with a right click. But it seems that these perl bindings are not present for the Goo::Canvas module. Well, sort of, they are present for Goo::Canvas::Item objects. Are the items returned by goocanvasitems_get_items_at the same as whats returned by goocanvas_get_items_at? On Tue, Jun 17, 2008 at 3:49 PM, Damon Chaplin <da...@ka...> wrote: > > On Tue, 2008-06-17 at 15:36 -0500, Jamie Lahowetz wrote: > > Does get_bounds return the x1,y1,x2,y2 of the item/group? > > In the C API goo_canvas_item_get_bounds() takes a GooCanvasBounds struct > and fills it in. I don't know what the Perl bindings do. > > Damon > > > > ------------------------------------------------------------------------- > Check out the new SourceForge.net Marketplace. > It's the best place to buy or sell services for > just about anything Open Source. > http://sourceforge.net/services/buy/index.php > _______________________________________________ > Goocanvas-devel mailing list > Goo...@li... > https://lists.sourceforge.net/lists/listinfo/goocanvas-devel > -- Jamie Ryan Lahowetz University of Nebraska - Lincoln Graduate Student - Geosciences 402.304.0766 jla...@bi... |
From: Richard G. <rg...@ne...> - 2008-06-18 11:14:56
|
I had the problem with the goocanvasenumtypes.h but I had no issues with generating the DLL. I got around the goocanvasenumtypes.h issue a different way. The tar source files come already come with goocanvasenumtypes.h so I ran configure and then deleted the following lines from src\Makefile. Once I did that I ran make and all was fine. goocanvasenumtypes.h: stamp-goocanvasenumtypes.h @true stamp-goocanvasenumtypes.h: $(goo_canvas_public_headers) Makefile (cd $(srcdir) && $(GLIB_MKENUMS) \ --fhead "#ifndef __GOO_CANVAS_ENUM_TYPES_H__\n#define __GOO_CANVAS_ENUM_TYPES_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \ --fprod "/* Enumerations from \"@filename@\" */\n" \ --vhead "GType @enum_name@_get_type (void);\n#define GOO_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n\n\n" \ --ftail "G_END_DECLS\n\n#endif /* __GOO_CANVAS_ENUM_TYPES_H__ */" \ $(libgoocanvas_public_headers)) >> xgen-gtbh \ && (cmp -s xgen-gtbh goocanvasenumtypes.h || cp xgen-gtbh goocanvasenumtypes.h ) \ && rm -f xgen-gtbh \ && echo timestamp > $(@F) goocanvasenumtypes.c: $(goo_canvas_public_headers) Makefile (cd $(srcdir) && $(GLIB_MKENUMS) \ --fhead "#include <glib-object.h>\n" \ --fhead "#include \"goocanvas.h\"\n" \ --fprod "\n/* Enumerations from \"@filename@\" */" \ --vhead "GType\n@enum_name@_get_type (void)\n{\n static GType etype = 0;\n if( etype == 0 ) \n {\n static const G@Type@Value values[] = {" \ --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \ --vtail " { 0, NULL, NULL }\n };\n etype = g_@type@_register_static (\"@EnumName@\", values );\n }\n return etype;\n}\n" \ $(libgoocanvas_public_headers)) > xgen-gtbc \ && cp xgen-gtbc goocanvasenumtypes.c \ && rm -f xgen-gtbc Not very elegant, but it works! Richard. control H wrote: > Just a quick note for those who compile goocanvas on windows like I > did 2 weeks ago. There were 2 problems on my Windows system > (goocanvas0.10): > > 1. there were errors in goocanvasenumtypes.h > 2. there was no libgoocanvas dll generated > > 1. glib-mkenums needs perl, and even if it can find perl it sometimes > generates a syntax incorrect goocanvasenumtypes.h. I solved it by > making sure in msys perl can really be found at /usr/bin/perl. > 2. this is because libtool is a bit flawed IMO. In the function > func_win32_libid () we see: > > func_win32_libid () > { > win32_libid_type="unknown" > win32_fileres=`file -L $1 2>/dev/null` > ... > > However, my version of file.exe (4.16) doesn't support the option -L > on windows, but libtool assumes it does, therefore func_win32_libid() > doesn't recognize. I just removed -L in the code above, resulting in > libgoocanvas-3.dll being made. > > Of course all this is not goocanvas specific, but general > mingw/libtool stuff. But it can take you a lot of time finding out why > things don't work, so hope this helps. > > regards, > CH > > PS I don't know about libtool at all actually, but wouldn't it be an > idea to check whether file supports option -L? > > ------------------------------------------------------------------------- > Check out the new SourceForge.net Marketplace. > It's the best place to buy or sell services for > just about anything Open Source. > http://sourceforge.net/services/buy/index.php > _______________________________________________ > Goocanvas-devel mailing list > Goo...@li... > https://lists.sourceforge.net/lists/listinfo/goocanvas-devel > > |
From: control H <con...@gm...> - 2008-06-18 08:32:58
|
Just a quick note for those who compile goocanvas on windows like I did 2 weeks ago. There were 2 problems on my Windows system (goocanvas0.10): 1. there were errors in goocanvasenumtypes.h 2. there was no libgoocanvas dll generated 1. glib-mkenums needs perl, and even if it can find perl it sometimes generates a syntax incorrect goocanvasenumtypes.h. I solved it by making sure in msys perl can really be found at /usr/bin/perl. 2. this is because libtool is a bit flawed IMO. In the function func_win32_libid () we see: func_win32_libid () { win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` ... However, my version of file.exe (4.16) doesn't support the option -L on windows, but libtool assumes it does, therefore func_win32_libid() doesn't recognize. I just removed -L in the code above, resulting in libgoocanvas-3.dll being made. Of course all this is not goocanvas specific, but general mingw/libtool stuff. But it can take you a lot of time finding out why things don't work, so hope this helps. regards, CH PS I don't know about libtool at all actually, but wouldn't it be an idea to check whether file supports option -L? |
From: Damon C. <da...@ka...> - 2008-06-17 20:50:15
|
On Tue, 2008-06-17 at 15:36 -0500, Jamie Lahowetz wrote: > Does get_bounds return the x1,y1,x2,y2 of the item/group? In the C API goo_canvas_item_get_bounds() takes a GooCanvasBounds struct and fills it in. I don't know what the Perl bindings do. Damon |
From: Jamie L. <jla...@bi...> - 2008-06-17 20:36:46
|
Does get_bounds return the x1,y1,x2,y2 of the item/group? On Tue, Jun 17, 2008 at 3:01 PM, Damon Chaplin <da...@ka...> wrote: > > On Mon, 2008-06-16 at 22:57 -0500, Jamie Lahowetz wrote: > > I'm trying to get the bounds of grouped items using the perl bindings: > > if ( $event->type eq "2button-press" ) { > > print 'x->',$event->x,' ','y->',$event->y; > > > > #convert UTM to Lat and Long > > my $easting = $ps[0] * $event->x + 0.0 * $event->y + $mtp[3]; > > my $northing = (-$ps[1]) * $event->y + 0.0 * $event->x + > > $mtp[4]; > > my ($latitude,$longitude)=utm_to_latlon($ellipsoid,$zone, > > $easting,$northing); > > print " ($latitude, $longitude)"; > > > > #Drop waypoint icon > > my $tgroup = Goo::Canvas::Group->new ($root); > > Goo::Canvas::Ellipse->new($tgroup,$event->x,$event->y,7.5,7.5, > > fill_color => 'purple', > > stroke_color => 'black'); > > Goo::Canvas::Text->new ($tgroup,$count,$event->x, > > $event->y,-1,'GTK_ANCHOR_CENTER', > > font => 'Sans Bold 15', > > fill_color => 'pink', > > ); > > print " $count\n"; > > > > $waypoints{$count } = {'x' => $event->x,'y' => $event->y, > > 'lat' => $latitude, 'long' => $longitude}; > > $count++; > > push(@drop,$tgroup); > > } > > > > #remove waypoints > > if ($event->type eq "button-press" && $event->button == 3){ > > print "right click\n"; > > foreach (@drop){ > > # my ($x1, $y1, $x2, $y2) = $_->get_bounds; > > print $_->get_bounds,"\n"; > > } > > > > The idea is that the user can add a waypoint by double clicking, then > > remove that waypoint by right clicking over thepoint. The thing is > > that I dont quite understand how to get the x and y bounds of the > > item. Any ideas? > > get_bounds() should return the bounds of the item, in device space (as > long as the item has been added to the canvas). Is that not working? > > You could also use goo_canvas_get_items_at() or > goo_canvas_get_items_in_area() to get the items in a particular > point/area. > > Damon > > > > ------------------------------------------------------------------------- > Check out the new SourceForge.net Marketplace. > It's the best place to buy or sell services for > just about anything Open Source. > http://sourceforge.net/services/buy/index.php > _______________________________________________ > Goocanvas-devel mailing list > Goo...@li... > https://lists.sourceforge.net/lists/listinfo/goocanvas-devel > -- Jamie Ryan Lahowetz University of Nebraska - Lincoln Graduate Student - Geosciences 402.304.0766 jla...@bi... |
From: Damon C. <da...@ka...> - 2008-06-17 20:02:31
|
On Mon, 2008-06-16 at 22:57 -0500, Jamie Lahowetz wrote: > I'm trying to get the bounds of grouped items using the perl bindings: > if ( $event->type eq "2button-press" ) { > print 'x->',$event->x,' ','y->',$event->y; > > #convert UTM to Lat and Long > my $easting = $ps[0] * $event->x + 0.0 * $event->y + $mtp[3]; > my $northing = (-$ps[1]) * $event->y + 0.0 * $event->x + > $mtp[4]; > my ($latitude,$longitude)=utm_to_latlon($ellipsoid,$zone, > $easting,$northing); > print " ($latitude, $longitude)"; > > #Drop waypoint icon > my $tgroup = Goo::Canvas::Group->new ($root); > Goo::Canvas::Ellipse->new($tgroup,$event->x,$event->y,7.5,7.5, > fill_color => 'purple', > stroke_color => 'black'); > Goo::Canvas::Text->new ($tgroup,$count,$event->x, > $event->y,-1,'GTK_ANCHOR_CENTER', > font => 'Sans Bold 15', > fill_color => 'pink', > ); > print " $count\n"; > > $waypoints{$count } = {'x' => $event->x,'y' => $event->y, > 'lat' => $latitude, 'long' => $longitude}; > $count++; > push(@drop,$tgroup); > } > > #remove waypoints > if ($event->type eq "button-press" && $event->button == 3){ > print "right click\n"; > foreach (@drop){ > # my ($x1, $y1, $x2, $y2) = $_->get_bounds; > print $_->get_bounds,"\n"; > } > > The idea is that the user can add a waypoint by double clicking, then > remove that waypoint by right clicking over thepoint. The thing is > that I dont quite understand how to get the x and y bounds of the > item. Any ideas? get_bounds() should return the bounds of the item, in device space (as long as the item has been added to the canvas). Is that not working? You could also use goo_canvas_get_items_at() or goo_canvas_get_items_in_area() to get the items in a particular point/area. Damon |
From: Jamie L. <jla...@bi...> - 2008-06-17 03:57:37
|
I'm trying to get the bounds of grouped items using the perl bindings: if ( $event->type eq "2button-press" ) { print 'x->',$event->x,' ','y->',$event->y; #convert UTM to Lat and Long my $easting = $ps[0] * $event->x + 0.0 * $event->y + $mtp[3]; my $northing = (-$ps[1]) * $event->y + 0.0 * $event->x + $mtp[4]; my ($latitude,$longitude)=utm_to_latlon($ellipsoid,$zone,$easting,$northing); print " ($latitude, $longitude)"; #Drop waypoint icon my $tgroup = Goo::Canvas::Group->new ($root); Goo::Canvas::Ellipse->new($tgroup,$event->x,$event->y,7.5,7.5, fill_color => 'purple', stroke_color => 'black'); Goo::Canvas::Text->new ($tgroup,$count,$event->x,$event->y,-1,'GTK_ANCHOR_CENTER', font => 'Sans Bold 15', fill_color => 'pink', ); print " $count\n"; $waypoints{$count } = {'x' => $event->x,'y' => $event->y, 'lat' => $latitude, 'long' => $longitude}; $count++; push(@drop,$tgroup); } #remove waypoints if ($event->type eq "button-press" && $event->button == 3){ print "right click\n"; foreach (@drop){ # my ($x1, $y1, $x2, $y2) = $_->get_bounds; print $_->get_bounds,"\n"; } The idea is that the user can add a waypoint by double clicking, then remove that waypoint by right clicking over thepoint. The thing is that I dont quite understand how to get the x and y bounds of the item. Any ideas? -- Jamie Ryan Lahowetz University of Nebraska - Lincoln Graduate Student - Geosciences 402.304.0766 jla...@bi... |
From: Murray C. <mu...@mu...> - 2008-06-13 10:24:51
|
On Fri, 2008-06-13 at 11:16 +0100, Damon Chaplin wrote: > On Fri, 2008-06-13 at 11:10 +0100, Damon Chaplin wrote: > > On Tue, 2008-06-10 at 20:22 +1000, Richard Gipps wrote: > > > Hi Jamie, > > > I have attached the goocanvas.pc file. I did not > > > realise it had been created as part of the make process. If it works I > > > will craete a new Windows package with it included. > > > > If you do create a new package, can you put all the library/devel files > > together in one zip file, and call it something like > > goocanvas-0.10-win32.zip so it is obviously for Windows. > > Actually having looked at http://www.gtk.org/download-windows.html we > should probably keep the binary/devel files split. > > So goocanvas-0.10-win32.zip and goocanvas-dev-0.10-win32.zip would be > good. And we could distribute this on ftp.gnome.org, along with the gtk+ win32 stuff. Ask me if you need help with that. -- mu...@mu... www.murrayc.com www.openismus.com |
From: Damon C. <da...@ka...> - 2008-06-13 10:17:03
|
On Fri, 2008-06-13 at 11:10 +0100, Damon Chaplin wrote: > On Tue, 2008-06-10 at 20:22 +1000, Richard Gipps wrote: > > Hi Jamie, > > I have attached the goocanvas.pc file. I did not > > realise it had been created as part of the make process. If it works I > > will craete a new Windows package with it included. > > If you do create a new package, can you put all the library/devel files > together in one zip file, and call it something like > goocanvas-0.10-win32.zip so it is obviously for Windows. Actually having looked at http://www.gtk.org/download-windows.html we should probably keep the binary/devel files split. So goocanvas-0.10-win32.zip and goocanvas-dev-0.10-win32.zip would be good. Damon |
From: Damon C. <da...@ka...> - 2008-06-13 10:11:09
|
On Tue, 2008-06-10 at 20:22 +1000, Richard Gipps wrote: > Hi Jamie, > I have attached the goocanvas.pc file. I did not > realise it had been created as part of the make process. If it works I > will craete a new Windows package with it included. If you do create a new package, can you put all the library/devel files together in one zip file, and call it something like goocanvas-0.10-win32.zip so it is obviously for Windows. Thanks, Damon |
From: Jamie L. <jla...@bi...> - 2008-06-13 02:21:22
|
Heres what I have found, hope it may help people in the future. (sorry Richard) Installing goocanvas on windows: Download pre-built goocanvas from <https://sourceforge.net/project/showfiles.php?group_id=173653>. Also, goocanvas.pc may be needed. Install them as follows (assuming main drive is C:): C:\..\bin\libgoocanvas-3.dll \include\goocanvas \lib\libgoocanvas.a \lib\libgoocanvas.dll.a \lib\pkg-config \lib\pkgconfig\goocanvas.pc \share\gtk-doc\html\goocanvas \share\gtk-doc\tmpl \share\gtk-doc\xml This should do it for installing the goocanvas library on Windows. To install the perl bindings Goo::Canvas on Windows: Download the module from CPaN and Extract into a directory without an spacing since it complicates things (such as C:\Goo-Canvas-0.05). Run 'perl Makefile.PL' to create the Makefile. Next the Makefile needs to be edited. These lines need to be edited fore these files: EXTRALIBS C:\..\bin\libgoocanvas-3.dll C:\..\bin\libgtk-win32-2.0-0.dll C:\..\bin\libgdk-win32-2.0-0.dll C:\..\bin\libatk-1.0-0.dll C:\..\bin\libgdk_pixbuf-2.0-0.dll C:\..\bin\libpangowin32-1.0-0.dll C:\..\bin\libpangocairo-1.0-0.dll C:\..\bin\libcairo-2.dll C:\..\bin\libgobject-2.0-0.dll C:\..\bin\libgmodule-2.0-0.dll C:\..\bin\libglib-2.0-0.dll C:\..\bin\intl.dll C:\..\bin\libcairo-2.dll C:\..\bin\libglib-2.0-0.dll LDLOADLIBS Should be the same as above Also, the header file has to be added to the Makefile in the INC: INC -IC:\..\include\goocanvas This should do it. Then run, 'make', 'make test', 'make install'. Personally, I use the perl build called camelbox and this is what I needed to do to get things going. I do still have 2 warnings when I run make: xs\goocanvas.c: In function `XS_Goo__Canvas_cairo_surface_from_pixbuf': xs\goocanvas.c:821: warning: assignment makes pointer from integer without a cas t xs\goocanvas.xs: In function `XS_Goo__Cairo__Pattern_new_from_pixbuf': xs\goocanvas.xs:340: warning: assignment makes pointer from integer without a ca st but luckily they are just warnings. Thanks to spicy jack and the goocanvas mailing list. On Wed, Jun 11, 2008 at 6:59 AM, Richard Gipps <rg...@ne...> wrote: > Hi Jamie, > You should definitely not need to modify the goocanvas.pc > file. You just need to put it with the other pkg-config files. My pkg-config > files are in my lib\pkgconfig directory. There are many other files there so > it should be easy to find. Here are the files in my pkgconfig directory: > > atk.pc > cairo-pdf.pc > cairo-png.pc > cairo-ps.pc > cairo-svg.pc > cairo-win32-font.pc > cairo-win32.pc > cairo.pc > files.txt > fontconfig.pc > freetype2.pc > gdk-2.0.pc > gdk-pixbuf-2.0.pc > gdk-win32-2.0.pc > gio-2.0.pc > glib-2.0.pc > gmodule-2.0.pc > gmodule-no-export-2.0.pc > gobject-2.0.pc > gthread-2.0.pc > goocanvas.pc > gtk+-2.0.pc > gtk+-win32-2.0.pc > libpng.pc > libpng13.pc > pango.pc > pangocairo.pc > pangoft2.pc > pangowin32.pc > > Richard. > > > > Jamie Lahowetz wrote: > > Thanks alot!! I'm going to guess that this file needs to be edited for a > windows environment since this is what I get when I type 'perl Makefile.pl': > Including generated API documentation... > Note (probably harmless): No library found for C:/camelbox/lib/cairo.lib > Note (probably harmless): No library found for > C:/camelbox/site/lib/auto/Cairo/C > airo.dll > Note (probably harmless): No library found for > C:/camelbox/site/lib/auto/Glib/Gl > ib.dll > Note (probably harmless): No library found for > C:/camelbox/site/lib/auto/Gtk2/Gt > k2.dll > Note (probably harmless): No library found for -lgobject-2.0 > Note (probably harmless): No library found for -lglib-2.0 > Note (probably harmless): No library found for -lintl > Note (probably harmless): No library found for -lgthread-2.0 > Note (probably harmless): No library found for -lgtk-win32-2.0 > Note (probably harmless): No library found for -lgdk-win32-2.0 > Note (probably harmless): No library found for -latk-1.0 > Note (probably harmless): No library found for -lgdk_pixbuf-2.0 > Note (probably harmless): No library found for -lpangowin32-1.0 > Note (probably harmless): No library found for -lpangocairo-1.0 > Note (probably harmless): No library found for -lpango-1.0 > Note (probably harmless): No library found for -lcairo > Note (probably harmless): No library found for -lgmodule-2.0 > Writing Makefile for Goo::Canvas > > all of these libraries do exist. Do I just need to point the {prefix} > variable in the goocanvas.pc file to the right directory (seems like its > finding the right one: C:\camelbox....) or ....? Thanks for all of the help, > I do appreciate it!! > > On Tue, Jun 10, 2008 at 5:22 AM, Richard Gipps <rg...@ne...> > wrote: > >> Hi Jamie, >> I have attached the goocanvas.pc file. I did not realise >> it had been created as part of the make process. If it works I will craete a >> new Windows package with it included. >> >> Richard. >> >> Jamie Lahowetz wrote: >> >> I am trying to install the perl module Goo::Canvas. In order to do this I >> need to have the lib goocanvas installed. When I go to perl Makefile.PL to >> install the module I get the errors mentioned. I am using camelbox<http://code.google.com/p/camelbox/>which I think uses MinGW. I thought just dropping the built Windows >> goocanvas libs would "install" the library. Do I have to ./configure >> goocanvas? >> >> On Sat, Jun 7, 2008 at 9:37 AM, Richard Gipps <rg...@ne...> >> wrote: >> >>> Hi Jamie, >>> I meant add this to the makefile. I not how Perl comes into >>> this. Are you try to compile an application that uses GooCanvas or compile >>> GooCanvas itself? If you are trying to do the former then there should be no >>> need for Perl. Which tool chain are you using? >>> >>> Richard. >>> >>> Jamie Lahowetz wrote: >>> >>> Sorry for my confusion. Do you mean to add this to the makefile or the >>> makefile.pl? If you mean the former, I cant make that file because of the >>> errors mentioned in the prior email. If its to the makefile.pl, where at in >>> the file should this be added? >>> >>> Thanks. >>> >>> On Sat, Jun 7, 2008 at 2:30 AM, Richard Gipps <rg...@ne...> >>> wrote: >>> >>>> Hi Jamie, >>>> There are no pkg-config scripts with the packages I have >>>> provided so you will have explicitly put the paths in your makefile. Here is >>>> a excerpt from my makefile: >>>> >>>> CFLAGS= -g \ >>>> -mms-bitfields \ >>>> -W \ >>>> -Wall \ >>>> -std=iso9899:1999 \ >>>> -I../../../../../MinGW/include \ >>>> -I../../../../../MinGW \ >>>> -I../../../src \ >>>> -DG_DISABLE_CONST_RETURNS \ >>>> -I../../../../../MinGW/include/glib-2.0 \ >>>> -I../../../../../MinGW/include/glib-2.0/glib \ >>>> -I../../../../../MinGW/lib/glib-2.0/include \ >>>> -I../../../../../MinGW/include/gtk-2.0 \ >>>> -I../../../../../MinGW/lib/gtk-2.0/include \ >>>> -I../../../../../MinGW/include/pango-1.0 \ >>>> -I../../../../../MinGW/include/cairo \ >>>> -I../../../../../MinGW/include/atk-1.0 \ >>>> -I../../../../../MinGW/include/goocanvas >>>> >>>> LDFLAGS= -L../../../../MinGW \ >>>> ../../../../../MinGW/lib/libglib-2.0.dll.a \ >>>> ../../../../../MinGW/lib/libgobject-2.0.dll.a \ >>>> ../../../../../MinGW/lib/libgthread-2.0.dll.a \ >>>> ../../../../../MinGW/lib/libgdk-win32-2.0.dll.a \ >>>> ../../../../../MinGW/lib/libgtk-win32-2.0.dll.a \ >>>> ../../../../../MinGW/lib/libgdk_pixbuf-2.0.dll.a \ >>>> ../../../../../MinGW/lib/libpango-1.0.dll.a \ >>>> ../../../../../MinGW/lib/libgoocanvas.dll.a \ >>>> ../../../../../MinGW/lib/libcairo.dll.a >>>> >>>> Can you make sure you send all emails to the mail list so that anyone >>>> else who wants to use GooCanvas on Windows see how to do it. >>>> >>>> Thanks, >>>> Richard. >>>> >>>> Jamie Lahowetz wrote: >>>> >>>> I tried to make the Makefile and got this: >>>> C:\Documents and Settings\Jamie\Desktop\Goo-Canvas-0.05>perl Makefile.PL >>>> Package goocanvas was not found in the pkg-config search path. >>>> Perhaps you should add the directory containing `goocanvas.pc' >>>> to the PKG_CONFIG_PATH environment variable >>>> No package 'goocanvas' found >>>> at Makefile.PL line 52 >>>> *** can not find package goocanvas >>>> *** check that it is properly installed and available in PKG_CONFIG_PATH >>>> at Makefile.PL line 52 >>>> >>>> >>>> >>>> On Fri, Jun 6, 2008 at 5:27 AM, Richard Gipps <rg...@ne...> >>>> wrote: >>>> >>>>> Hi Jamie, >>>>> You do not need to compile GooCanvas for Windows, you >>>>> can just use the DLL's and the header files which are provided here: >>>>> >>>>> https://sourceforge.net/project/showfiles.php?group_id=173653 >>>>> >>>>> You need to put the file libgoocanvas-3.dll (which is in >>>>> goocanvas-0.10.zip) in the directory with the other GTK+ dll's. My directory >>>>> contains these files: >>>>> >>>>> freetype6.dll >>>>> iconv.dll >>>>> intl.dll >>>>> libatk-1.0-0.dll >>>>> libcairo-2.dll >>>>> libfontconfig-1.dll >>>>> libgdk_pixbuf-2.0-0.dll >>>>> libgdk-win32-2.0-0.dll >>>>> libgio-2.0-0.dll >>>>> libglib-2.0-0.dll >>>>> libgmodule-2.0-0.dll >>>>> libgobject-2.0-0.dll >>>>> libgoocanvas-3.dll >>>>> libgthread-2.0-0.dll >>>>> libgtk-win32-2.0-0.dll >>>>> libpango-1.0-0.dll >>>>> libpangocairo-1.0-0.dll >>>>> libpangoft2-1.0-0.dll >>>>> libpangowin32-1.0-0.dll >>>>> libpng13.dll >>>>> libtiff3.dll >>>>> zlib1.dll >>>>> etc\... >>>>> lib\... >>>>> >>>>> You then need to unzip all the files in goocanvas-dev-0.10.zip and put >>>>> them where you have all your other header/library files are. For instance I >>>>> use the MinGW tool chain and so my directory structure looks like this: >>>>> >>>>> ....\Mingw\bin >>>>> \contrib >>>>> \doc >>>>> \etc >>>>> \include\atk-1.0 >>>>> \c++ >>>>> \cairo >>>>> \ddk >>>>> \fontconfig >>>>> \freetype2 >>>>> \GL >>>>> \glib-2.0 >>>>> \goocanvas >>>>> \gtk-2.0 >>>>> \libpng13 >>>>> \pango-1.0 >>>>> \sys >>>>> \info >>>>> \insight >>>>> \lib\libgoocanvas.a >>>>> \libgoocanvas.dll.a >>>>> \.... >>>>> >>>>> You then need update the header file and library paths in your make >>>>> file to include the goocanvas directories. >>>>> >>>>> Hope this helps. >>>>> Regards, >>>>> Richard. >>>>> >>>>> >>>>> >>>>> >>>>> Jamie Lahowetz wrote: >>>>> >>>>> I dropped the pre-made windows files into the directory and tried to >>>>> install Goo::Canvas and received this error: >>>>> 'C:\camelbox\bin\perl.exe Makefile.PL' returned status 2304, won't make >>>>> Any ideas? >>>>> On Thu, Jun 5, 2008 at 3:40 AM, Damon Chaplin < >>>>> da...@ka...> wrote: >>>>> >>>>>> >>>>>> I guess you unzip it into the same place you have GTK+ installed. I >>>>>> don't use it on Windows myself so don't really know. Ask Richard. >>>>>> >>>>>> Damon >>>>>> >>>>>> >>>>>> On Wed, 2008-06-04 at 22:17 -0500, Jamie Lahowetz wrote: >>>>>> > Thanks. Excuse my confusion but how is goocanvas and goocanvas-devel >>>>>> > installed. >>>>>> > >>>>>> > On Wed, Jun 4, 2008 at 2:01 PM, Damon Chaplin >>>>>> > <da...@ka...> wrote: >>>>>> > >>>>>> > On Wed, 2008-06-04 at 12:40 -0500, Jamie Lahowetz wrote: >>>>>> > > I am trying to build goocanvas 0.10 on my windows XP >>>>>> system. >>>>>> > I'm not >>>>>> > > sure how to do this and could use some help. >>>>>> > >>>>>> > >>>>>> > I've just put up pre-built files for Windows on sourceforge: >>>>>> > >>>>>> > >>>>>> https://sourceforge.net/project/showfiles.php?group_id=173653 >>>>>> > >>>>>> > Those were created by Richard Gipps <rg...@ne... >>>>>> >, >>>>>> > so if you >>>>>> > need more help try asking him. >>>>>> > >>>>>> > Damon >>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>>> Jamie Ryan Lahowetz >>>>>> University of Nebraska - Lincoln >>>>>> Graduate Student - Geosciences >>>>>> 402.304.0766 >>>>>> jla...@bi... >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Jamie Ryan Lahowetz >>>>> University of Nebraska - Lincoln >>>>> Graduate Student - Geosciences >>>>> 402.304.0766 >>>>> jla...@bi... >>>>> >>>>> ------------------------------ >>>>> >>>>> ------------------------------------------------------------------------- >>>>> Check out the new SourceForge.net Marketplace. >>>>> It's the best place to buy or sell services for >>>>> just about anything Open Source.http://sourceforge.net/services/buy/index.php >>>>> >>>>> ------------------------------ >>>>> >>>>> _______________________________________________ >>>>> Goocanvas-devel mailing lis...@li...https://lists.sourceforge.net/lists/listinfo/goocanvas-devel >>>>> >>>>> >>>>> >>>>> >>>>> ------------------------------------------------------------------------- >>>>> Check out the new SourceForge.net Marketplace. >>>>> It's the best place to buy or sell services for >>>>> just about anything Open Source. >>>>> http://sourceforge.net/services/buy/index.php >>>>> _______________________________________________ >>>>> Goocanvas-devel mailing list >>>>> Goo...@li... >>>>> https://lists.sourceforge.net/lists/listinfo/goocanvas-devel >>>>> >>>>> >>>> >>>> >>>> -- >>>> Jamie Ryan Lahowetz >>>> University of Nebraska - Lincoln >>>> Graduate Student - Geosciences >>>> 402.304.0766 >>>> jla...@bi... >>>> >>>> >>>> >>> >>> >>> -- >>> Jamie Ryan Lahowetz >>> University of Nebraska - Lincoln >>> Graduate Student - Geosciences >>> 402.304.0766 >>> jla...@bi... >>> >>> >>> >> >> >> -- >> Jamie Ryan Lahowetz >> University of Nebraska - Lincoln >> Graduate Student - Geosciences >> 402.304.0766 >> jla...@bi... >> >> >> >> prefix=/usr/local >> exec_prefix=${prefix} >> libdir=${exec_prefix}/lib >> includedir=${prefix}/include >> >> >> Name: GooCanvas >> Description: A GTK+ canvas widget using cairo >> Version: 0.10 >> Requires: gtk+-2.0 cairo >> Libs: -L${libdir} -lgoocanvas >> Cflags: -I${includedir}/goocanvas-1.0 >> >> >> ------------------------------------------------------------------------- >> Check out the new SourceForge.net Marketplace. >> It's the best place to buy or sell services for >> just about anything Open Source. >> http://sourceforge.net/services/buy/index.php >> _______________________________________________ >> Goocanvas-devel mailing list >> Goo...@li... >> https://lists.sourceforge.net/lists/listinfo/goocanvas-devel >> >> > > > -- > Jamie Ryan Lahowetz > University of Nebraska - Lincoln > Graduate Student - Geosciences > 402.304.0766 > jla...@bi... > > > -- Jamie Ryan Lahowetz University of Nebraska - Lincoln Graduate Student - Geosciences 402.304.0766 jla...@bi... -- Jamie Ryan Lahowetz University of Nebraska - Lincoln Graduate Student - Geosciences 402.304.0766 jla...@bi... |
From: Murray C. <mu...@mu...> - 2008-06-11 07:36:12
|
On Tue, 2008-06-10 at 23:43 +0200, control H wrote: > That sounds fairly easy to do with GooCanvas. Though it would all have > to be done inside the GooCanvas widget - you can't stack it on top of a > GtkDrawingArea widget. > > You'd create a class for the chart, and place that at the bottom of the > stacking order. You'd then add the other items on top of it (either > using the basic canvas items or creating more new classes). I do this in Glom, using groups, without custom-drawn canvas items. However, it's very C++. -- mu...@mu... www.murrayc.com www.openismus.com |
From: deadpickle <dea...@gm...> - 2008-06-11 04:06:16
|
> On Tue, Jun 10, 2008 at 3:55 PM, deadpickle <deadpic...@gmail.com> wrote: > [snippage of missing libraries] > > Note (probably harmless): No library found for -lpango-1.0 > > Note (probably harmless): No library found for -lcairo > > Note (probably harmless): No library found for -lgmodule-2.0 > > Writing Makefile for Goo::Canvas > ExtUtils::MakeMaker, the module that's generating your Makefile and > spitting out these warning messages, doesn't work 100% correctly on > Windows. The library files it's looking for don't match the filenames > of the library files on your system. This is a known issue. The > quick fix is to hand-edit the Makefile (not Makefile.PL) and add the > full path (C:\camelbox\bin\libXXXXXX.dll) for all of the missing > library files above to the Makefile in the LDLOADLIBS and EXTRALIBS > sections. All of the libraries you add should be on the same line as > the existing libraries listed in those variables. If > ExtUtils::MakeMaker was working right on Windows, it would have done > this for you already. > > C:\Documents and Settings\Jamie\Desktop\Goo-Canvas-0.05>dmake > > dmake: Error: -- `C:\Documents' not found, and can't be made > Spaces in filenames and directories make things barf. Try moving your > build tree into a path that has no spaces in the filename/directory > tree and see what happens. > > All those lib are there. I wonder if the goocanvas.pc file needs to be > > edited?! > No, I think the .pc file is fine, it's the above two issues that you > should concentrate on first. > Thanks, > Brian ---------- Forwarded message ---------- From: deadpickle <deadpic...@gmail.com> Date: Jun 10, 11:02 pm Subject: Installing Pre-Built goocanvas on Windows To: camelbox I went in and added all the directories to the makefile, moved the directory, and ran dmake and got these errors (snipped cause it is a long list): C:\Goo-Canvas-0.05>dmake cp build/goocanvas-perl-autogen.h blib\arch/Goo\Canvas/Install/ goocanvas-perl-au togen.h cp build/goocanvas-perl-version.h blib\arch/Goo\Canvas/Install/ goocanvas-perl-ve rsion.h cp build/IFiles.pm blib\arch/Goo\Canvas/Install/Files.pm cp C:\Goo-Canvas-0.05\goocanvas.typemap blib\arch/Goo\Canvas/Install/ goocanvas.t ypemap cp goocanvas-perl.h blib\arch/Goo\Canvas/Install/goocanvas-perl.h cp C:\Goo-Canvas-0.05\build\goocanvas-perl.typemap blib\arch/Goo \Canvas/Install/ goocanvas-perl.typemap cp lib/Goo/Canvas.pm blib\lib\Goo/Canvas.pm [ XS xs\goocanvas.xs ] [ CC xs\goocanvas.c ] In file included from xs\goocanvas.xs:1: ./goocanvas-perl.h:10:23: goocanvas.h: No such file or directory xs\goocanvas.c: In function `XS_Goo__Canvas_new': xs\goocanvas.c:32: warning: assignment makes pointer from integer without a cast ................. snip ................. xs\goocanvas.c: In function `XS_Goo__Cairo__Matrix_new': xs\goocanvas.c:975: error: `GooCairoMatrix_copy' undeclared (first use in this f unction) xs\goocanvas.c:975: error: `RETVAL' undeclared (first use in this function) xs\goocanvas.c:979: warning: assignment makes pointer from integer without a cas t dmake: Error code 129, while making 'xs\goocanvas.o' On Jun 10, 9:24 pm, "spicy jack" <elspicyj...@gmail.com> wrote: |
From: control H <con...@gm...> - 2008-06-10 21:42:57
|
Hi all, below an emailconversation I'm having with Damon. When I started asking him for advice, I didn't realise there is a mailing list. I'm posting our conversation hoping it might help others as well. Damon thanks for all your answers so far. On Sun, 2008-06-01 at 13:34 +0200, control H wrote: > Hello Damon, > > I'm checking out all different cairo-based canvas software for GTK+. > So far your goocanvas for sure looks to be the most sophisticated one > having lots of features and also good documentation. However, since > I'm lacking the overall picture I feel, I wonder whether I can use > your canvas for my project. > > I'm develloping a charting program which basically is a cairo_t put > into an gtkdrawingarea. Everything in the chart is drawn using cairo. > What I want to do now is being able to put "objects" on top of this > chart. Objects like all the resizable and movable things in programs > like inkscape, gimp, dia, and your own arrowhead in the demo. (I don't > know how these objects are called within the widgets/canvas world > which makes googling a bit harder). > > As an example, on top of the chart my program is painting, I want to > be able to draw an object line, which is movable, rotatable and > resizable using handles. I am able to create this "line object" in > goocanvas, but I am not able to put this on top of my > cairo/gtkdrawingarea. Also, in my chart as it is now I have to connect > to signals like mouse presses. Somehow I have to put the goocanvas on > top of my gtkdrawingarea, or the other way around. > > Is it possible to do it? I preferably keep my program as it is in the > sense that I still draw directly to a cairo_t. It will be hard I guess > to transform cairo gradients etc. into goocanvasitems. Everything in > my drawing is done in pixels, no fancy stuff, no zooming etc., no > multiple views etc. That sounds fairly easy to do with GooCanvas. Though it would all have to be done inside the GooCanvas widget - you can't stack it on top of a GtkDrawingArea widget. You'd create a class for the chart, and place that at the bottom of the stacking order. You'd then add the other items on top of it (either using the basic canvas items or creating more new classes). Damon On Thu, 2008-06-05 at 19:48 +0200, control H wrote: > I started with trying to create a line-object. As the sample code I > used demo-item.[ch]. I thought the easiest solution would be to use > GooCanvasRect for creating the drag-boxes, just like in demo-arrow. > One of the nice things then would be that I'd connect > on_{leave,enter}_notify on the dragboxes implementing highlighting > when hovering. > > However, since I'm trying to create a new class (line-item), I guessed > I'd have to put these create_drag_box calls in goo_line_item_init or > perhaps in goo_line_item_new, however this doesn't seem to work. > Without being able to use already existing items (and their signals) > it becomes much more difficult to me as I don't have a clue how to > implement something easy as highlighten when the mouse is over one of > the dragboxes on the line. I mean, of course it's easy to program to > draw the whole line-object in its correct state (eg one highlighted > dragbox) in the function goo_line_item_paint(), but how do I know > whithin this function which dragbox to highlight, if at all? Or do I > somehow have to use goo_line_item_is_item_at to find out and that that > function then calls goo_line_item_paint? > > In short I'm a bit confused of how all the signaling etc. work within > classes, or (as an alternative method) how to use already existing > objects like GooCanvasRect in a selfdefined class. Of course all this > would be easy if instead of a class, I'd make just a function > constructing the line-object using existing goocanvasitems and > connecting to their signals, as is demo-arrow. > > I'd appreciate your thoughts and help on this, as I guess I'm making > things a bit too difficult here, or I'm missing something basic. An > example in the demo would be really perfect in clearifying. I suppose > creating resizable objects are something quite common to do on a > canvas. I know, you're not develloping goocanvas anymore... :( You may be able to subclass from GooCanvasGroup and add the dragboxes as children. (I'm not sure if you'll be able to create them in the _init() function though - it may cause problems. Hopefully not.) The other alternative is to do everything within your new class - draw the selection handles in paint(), highlight them when the mouse moves over them, etc. That is more complicated, but not that hard. (To know which dragbox to highlight you would override the motion_notify_event method and keep track of which dragbox the mouse is over, if any. You'd also queue redraws, if needed.) Damon > I tried the second method. However, overriding de motion_notify_event > is not that trivial for me. I tried lots of things, I'd guess > something like this should work for overriding the method: > > static void goo_line_item_class_init (GooLineItemClass *klass) > { > GooCanvasItemClass *item_class=GOO_CANVAS_ITEM_CLASS(klass); > ... > simple_class->motion_notify_event=goo_line_item_motion_event; > } > > This can't be compiled: > line-item2.c: In function 'goo_line_item_class_init': > line-item2.c:257: error: 'GooCanvasItemSimpleClass' has no member > named 'motion_notify_event' > > Indeed, this has nowhere in the goocanvas sources been defined. A bug? > Or am I doing something completely wrong here? After all I've never > been this "low level" before. It is slightly complicated because GooCanvasItem is an interface rather than a normal class. So instead of using G_DEFINE_TYPE() you need to do something like this: G_DEFINE_TYPE_WITH_CODE (GooCanvasEllipse, goo_canvas_ellipse, GOO_TYPE_CANVAS_ITEM_SIMPLE, G_IMPLEMENT_INTERFACE (GOO_TYPE_CANVAS_ITEM, canvas_item_interface_init)) Then you need to add a function to initialize the interface, overriding any methods needed like this: static void canvas_item_interface_init (GooCanvasItemIface *iface) { iface->motion_notify_event = goo_canvas_ellipse_motion_notify; } Damon (You should really ask questions on the list, so the answers may help others.) |
From: Felipe R. <fel...@gm...> - 2008-06-10 14:33:34
|
El mar, 10-06-2008 a las 09:57 +0100, Damon Chaplin escribió: > On Mon, 2008-06-09 at 21:46 -0400, Felipe Reyes wrote: > > El lun, 09-06-2008 a las 22:21 +0100, Damon Chaplin escribió: > > > On Sun, 2008-06-08 at 20:53 -0400, Felipe Reyes wrote: > > > > hi, > > > > > > > > I'm being playing with pygoocanvas, trying to do some customized items, > > > > just impplementing do_simple_create_path() method, but I detected a > > > > strange behaviour when I use cr.stroke(), if I call to the stroke method > > > > all is drawed ok, but the I took another window (like xterm or firefox, > > > > it doesn't matters wich one) and start moving over the canvas my draw > > > > disappears, but if I comment the calls to stroke() this doesn't happen. > > > > > > If you override simple_create_path() you just need to create the path. > > > You shouldn't call stroke(). > > > > > > Does it work OK without the stroke() call? > > yes, without the stroke() works ok, so I'll omit all the calls to > > stroke(), but What I have to do to create a custom item that make a draw > > with more than 1 color?, where I must put that code? > > The simplest way is to subclass GooCanvasItemSimple and override > simple_update(), simple_paint() and simple_is_item_at(). This is > described in the "Creating New Items" section of the C API docs. > > The more complicated way is to implement the GooCanvasItem interface > directly. > thanks again :) damon, thanks a lot for your help, I'll keep playing with all this (BTW, It worked with your advise), when I got all variables under control I'm gonna try to write a little tutorial (probably for dummies like me :P) about how to write items using pygoocanvas. seeya. -- Felipe Reyes Astorga counter.li.org #316380 |
From: Jamie L. <jla...@bi...> - 2008-06-10 13:58:04
|
Thanks alot!! I'm going to guess that this file needs to be edited for a windows environment since this is what I get when I type 'perl Makefile.pl': Including generated API documentation... Note (probably harmless): No library found for C:/camelbox/lib/cairo.lib Note (probably harmless): No library found for C:/camelbox/site/lib/auto/Cairo/C airo.dll Note (probably harmless): No library found for C:/camelbox/site/lib/auto/Glib/Gl ib.dll Note (probably harmless): No library found for C:/camelbox/site/lib/auto/Gtk2/Gt k2.dll Note (probably harmless): No library found for -lgobject-2.0 Note (probably harmless): No library found for -lglib-2.0 Note (probably harmless): No library found for -lintl Note (probably harmless): No library found for -lgthread-2.0 Note (probably harmless): No library found for -lgtk-win32-2.0 Note (probably harmless): No library found for -lgdk-win32-2.0 Note (probably harmless): No library found for -latk-1.0 Note (probably harmless): No library found for -lgdk_pixbuf-2.0 Note (probably harmless): No library found for -lpangowin32-1.0 Note (probably harmless): No library found for -lpangocairo-1.0 Note (probably harmless): No library found for -lpango-1.0 Note (probably harmless): No library found for -lcairo Note (probably harmless): No library found for -lgmodule-2.0 Writing Makefile for Goo::Canvas all of these libraries do exist. Do I just need to point the {prefix} variable in the goocanvas.pc file to the right directory (seems like its finding the right one: C:\camelbox....) or ....? Thanks for all of the help, I do appreciate it!! On Tue, Jun 10, 2008 at 5:22 AM, Richard Gipps <rg...@ne...> wrote: > Hi Jamie, > I have attached the goocanvas.pc file. I did not realise it > had been created as part of the make process. If it works I will craete a > new Windows package with it included. > > > Richard. > > Jamie Lahowetz wrote: > > I am trying to install the perl module Goo::Canvas. In order to do this I > need to have the lib goocanvas installed. When I go to perl Makefile.PL to > install the module I get the errors mentioned. I am using camelbox<http://code.google.com/p/camelbox/>which I think uses MinGW. I thought just dropping the built Windows > goocanvas libs would "install" the library. Do I have to ./configure > goocanvas? > > On Sat, Jun 7, 2008 at 9:37 AM, Richard Gipps <rg...@ne...> > wrote: > >> Hi Jamie, >> I meant add this to the makefile. I not how Perl comes into >> this. Are you try to compile an application that uses GooCanvas or compile >> GooCanvas itself? If you are trying to do the former then there should be no >> need for Perl. Which tool chain are you using? >> >> Richard. >> >> Jamie Lahowetz wrote: >> >> Sorry for my confusion. Do you mean to add this to the makefile or the >> makefile.pl? If you mean the former, I cant make that file because of the >> errors mentioned in the prior email. If its to the makefile.pl, where at in >> the file should this be added? >> >> Thanks. >> >> On Sat, Jun 7, 2008 at 2:30 AM, Richard Gipps <rg...@ne...> >> wrote: >> >>> Hi Jamie, >>> There are no pkg-config scripts with the packages I have >>> provided so you will have explicitly put the paths in your makefile. Here is >>> a excerpt from my makefile: >>> >>> CFLAGS= -g \ >>> -mms-bitfields \ >>> -W \ >>> -Wall \ >>> -std=iso9899:1999 \ >>> -I../../../../../MinGW/include \ >>> -I../../../../../MinGW \ >>> -I../../../src \ >>> -DG_DISABLE_CONST_RETURNS \ >>> -I../../../../../MinGW/include/glib-2.0 \ >>> -I../../../../../MinGW/include/glib-2.0/glib \ >>> -I../../../../../MinGW/lib/glib-2.0/include \ >>> -I../../../../../MinGW/include/gtk-2.0 \ >>> -I../../../../../MinGW/lib/gtk-2.0/include \ >>> -I../../../../../MinGW/include/pango-1.0 \ >>> -I../../../../../MinGW/include/cairo \ >>> -I../../../../../MinGW/include/atk-1.0 \ >>> -I../../../../../MinGW/include/goocanvas >>> >>> LDFLAGS= -L../../../../MinGW \ >>> ../../../../../MinGW/lib/libglib-2.0.dll.a \ >>> ../../../../../MinGW/lib/libgobject-2.0.dll.a \ >>> ../../../../../MinGW/lib/libgthread-2.0.dll.a \ >>> ../../../../../MinGW/lib/libgdk-win32-2.0.dll.a \ >>> ../../../../../MinGW/lib/libgtk-win32-2.0.dll.a \ >>> ../../../../../MinGW/lib/libgdk_pixbuf-2.0.dll.a \ >>> ../../../../../MinGW/lib/libpango-1.0.dll.a \ >>> ../../../../../MinGW/lib/libgoocanvas.dll.a \ >>> ../../../../../MinGW/lib/libcairo.dll.a >>> >>> Can you make sure you send all emails to the mail list so that anyone >>> else who wants to use GooCanvas on Windows see how to do it. >>> >>> Thanks, >>> Richard. >>> >>> Jamie Lahowetz wrote: >>> >>> I tried to make the Makefile and got this: >>> C:\Documents and Settings\Jamie\Desktop\Goo-Canvas-0.05>perl Makefile.PL >>> Package goocanvas was not found in the pkg-config search path. >>> Perhaps you should add the directory containing `goocanvas.pc' >>> to the PKG_CONFIG_PATH environment variable >>> No package 'goocanvas' found >>> at Makefile.PL line 52 >>> *** can not find package goocanvas >>> *** check that it is properly installed and available in PKG_CONFIG_PATH >>> at Makefile.PL line 52 >>> >>> >>> >>> On Fri, Jun 6, 2008 at 5:27 AM, Richard Gipps <rg...@ne...> >>> wrote: >>> >>>> Hi Jamie, >>>> You do not need to compile GooCanvas for Windows, you >>>> can just use the DLL's and the header files which are provided here: >>>> >>>> https://sourceforge.net/project/showfiles.php?group_id=173653 >>>> >>>> You need to put the file libgoocanvas-3.dll (which is in >>>> goocanvas-0.10.zip) in the directory with the other GTK+ dll's. My directory >>>> contains these files: >>>> >>>> freetype6.dll >>>> iconv.dll >>>> intl.dll >>>> libatk-1.0-0.dll >>>> libcairo-2.dll >>>> libfontconfig-1.dll >>>> libgdk_pixbuf-2.0-0.dll >>>> libgdk-win32-2.0-0.dll >>>> libgio-2.0-0.dll >>>> libglib-2.0-0.dll >>>> libgmodule-2.0-0.dll >>>> libgobject-2.0-0.dll >>>> libgoocanvas-3.dll >>>> libgthread-2.0-0.dll >>>> libgtk-win32-2.0-0.dll >>>> libpango-1.0-0.dll >>>> libpangocairo-1.0-0.dll >>>> libpangoft2-1.0-0.dll >>>> libpangowin32-1.0-0.dll >>>> libpng13.dll >>>> libtiff3.dll >>>> zlib1.dll >>>> etc\... >>>> lib\... >>>> >>>> You then need to unzip all the files in goocanvas-dev-0.10.zip and put >>>> them where you have all your other header/library files are. For instance I >>>> use the MinGW tool chain and so my directory structure looks like this: >>>> >>>> ....\Mingw\bin >>>> \contrib >>>> \doc >>>> \etc >>>> \include\atk-1.0 >>>> \c++ >>>> \cairo >>>> \ddk >>>> \fontconfig >>>> \freetype2 >>>> \GL >>>> \glib-2.0 >>>> \goocanvas >>>> \gtk-2.0 >>>> \libpng13 >>>> \pango-1.0 >>>> \sys >>>> \info >>>> \insight >>>> \lib\libgoocanvas.a >>>> \libgoocanvas.dll.a >>>> \.... >>>> >>>> You then need update the header file and library paths in your make file >>>> to include the goocanvas directories. >>>> >>>> Hope this helps. >>>> Regards, >>>> Richard. >>>> >>>> >>>> >>>> >>>> Jamie Lahowetz wrote: >>>> >>>> I dropped the pre-made windows files into the directory and tried to >>>> install Goo::Canvas and received this error: >>>> 'C:\camelbox\bin\perl.exe Makefile.PL' returned status 2304, won't make >>>> Any ideas? >>>> On Thu, Jun 5, 2008 at 3:40 AM, Damon Chaplin < >>>> da...@ka...> wrote: >>>> >>>>> >>>>> I guess you unzip it into the same place you have GTK+ installed. I >>>>> don't use it on Windows myself so don't really know. Ask Richard. >>>>> >>>>> Damon >>>>> >>>>> >>>>> On Wed, 2008-06-04 at 22:17 -0500, Jamie Lahowetz wrote: >>>>> > Thanks. Excuse my confusion but how is goocanvas and goocanvas-devel >>>>> > installed. >>>>> > >>>>> > On Wed, Jun 4, 2008 at 2:01 PM, Damon Chaplin >>>>> > <da...@ka...> wrote: >>>>> > >>>>> > On Wed, 2008-06-04 at 12:40 -0500, Jamie Lahowetz wrote: >>>>> > > I am trying to build goocanvas 0.10 on my windows XP >>>>> system. >>>>> > I'm not >>>>> > > sure how to do this and could use some help. >>>>> > >>>>> > >>>>> > I've just put up pre-built files for Windows on sourceforge: >>>>> > >>>>> > >>>>> https://sourceforge.net/project/showfiles.php?group_id=173653 >>>>> > >>>>> > Those were created by Richard Gipps <rg...@ne... >>>>> >, >>>>> > so if you >>>>> > need more help try asking him. >>>>> > >>>>> > Damon >>>>> >>>>> >>>>> >>>> >>>> >>>> -- >>>>> Jamie Ryan Lahowetz >>>>> University of Nebraska - Lincoln >>>>> Graduate Student - Geosciences >>>>> 402.304.0766 >>>>> jla...@bi... >>>>> >>>> >>>> >>>> >>>> -- >>>> Jamie Ryan Lahowetz >>>> University of Nebraska - Lincoln >>>> Graduate Student - Geosciences >>>> 402.304.0766 >>>> jla...@bi... >>>> >>>> ------------------------------ >>>> >>>> ------------------------------------------------------------------------- >>>> Check out the new SourceForge.net Marketplace. >>>> It's the best place to buy or sell services for >>>> just about anything Open Source.http://sourceforge.net/services/buy/index.php >>>> >>>> ------------------------------ >>>> >>>> _______________________________________________ >>>> Goocanvas-devel mailing lis...@li...https://lists.sourceforge.net/lists/listinfo/goocanvas-devel >>>> >>>> >>>> >>>> >>>> ------------------------------------------------------------------------- >>>> Check out the new SourceForge.net Marketplace. >>>> It's the best place to buy or sell services for >>>> just about anything Open Source. >>>> http://sourceforge.net/services/buy/index.php >>>> _______________________________________________ >>>> Goocanvas-devel mailing list >>>> Goo...@li... >>>> https://lists.sourceforge.net/lists/listinfo/goocanvas-devel >>>> >>>> >>> >>> >>> -- >>> Jamie Ryan Lahowetz >>> University of Nebraska - Lincoln >>> Graduate Student - Geosciences >>> 402.304.0766 >>> jla...@bi... >>> >>> >>> >> >> >> -- >> Jamie Ryan Lahowetz >> University of Nebraska - Lincoln >> Graduate Student - Geosciences >> 402.304.0766 >> jla...@bi... >> >> >> > > > -- > Jamie Ryan Lahowetz > University of Nebraska - Lincoln > Graduate Student - Geosciences > 402.304.0766 > jla...@bi... > > > > prefix=/usr/local > exec_prefix=${prefix} > libdir=${exec_prefix}/lib > includedir=${prefix}/include > > > Name: GooCanvas > Description: A GTK+ canvas widget using cairo > Version: 0.10 > Requires: gtk+-2.0 cairo > Libs: -L${libdir} -lgoocanvas > Cflags: -I${includedir}/goocanvas-1.0 > > > ------------------------------------------------------------------------- > Check out the new SourceForge.net Marketplace. > It's the best place to buy or sell services for > just about anything Open Source. > http://sourceforge.net/services/buy/index.php > _______________________________________________ > Goocanvas-devel mailing list > Goo...@li... > https://lists.sourceforge.net/lists/listinfo/goocanvas-devel > > -- Jamie Ryan Lahowetz University of Nebraska - Lincoln Graduate Student - Geosciences 402.304.0766 jla...@bi... |
From: Richard G. <rg...@ne...> - 2008-06-10 10:24:03
|
prefix=/usr/local exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include Name: GooCanvas Description: A GTK+ canvas widget using cairo Version: 0.10 Requires: gtk+-2.0 cairo Libs: -L${libdir} -lgoocanvas Cflags: -I${includedir}/goocanvas-1.0 |