
Hello, as Peter has now branched 0.43, I have merged HEAD with my branch, so please expect some recompilation. The Changelog:
merged with branch CXXIFICATION_VIEW_AND_WIDGET * src/arc-context.cpp, src/dyna-draw-context.cpp, src/event-context.cpp, src/file.cpp, gradient-context.cpp, src/inkscape.cpp, src/interface.cpp, src/rect-context.cpp, src/select-context.cpp, src/seltrans.cpp, src/sp-namedview.cpp, src/spiral-context.cpp, src/star-context.cpp, src/verbs.cpp, dialogs/dialog-events.cpp, src/dialogs/layer-properties.cpp, src/ui/dialog/dialog.cpp, src/widgets/desktop-widget.cpp, src/widgets/desktop-widget.h: move gtk code into desktop-widget.cpp, called via desktop * src/ui/view/Makefile_insert: added files edit-widget-interface.h, edit-widget.cpp, edit-widget.h the EditWidget is the Gtkmm version of the SPDesktopWidget * src/ui/widget/Makefile_insert: added files ruler.cpp, ruler.h, svg-canvas.cpp, svg-canvas.h, zoom-status.cpp, zoom-status.h these are widgets part of the EditWidget * src/file.cpp, src/inkscape.cpp, src/ui/dialog/dialog.cpp, src/ui/dialog/dialog.h, src/application/application.h, src/application/application.cpp: divide code /wrt Application::getNewGui(): if true, it's called by the Gtkmm application and the inkscape object is meaningless * src/application/app-prototype.h: replace UI specific return value of getWindow() with void* * src/application/editor.cpp, src/application/editor.h: made Editor a singleton, collect global UI code here that (for Gtk+) lives in inkscape.cpp and elsewhere * src/desktop-events.cpp, src/desktop.cpp, src/event-context.cpp, src/nodepath.cpp, src/seltrans.cpp: simplify calls to desktop->set_coordinate_status * src/desktop-handles.cpp, src/desktop-handles.h, src/extension/internal/ps.cpp, src/widgets/gradient-toolbar.cpp, src/widgets/toolbox.cpp: widget is no longer available through desktop * src/Makefile_insert: added files preferences.h preferences.cpp src/inkscape.h, src/inkscape.cpp, src/application/editor.cpp: move preferences handling into preferences.cpp/h * src/desktop.cpp, src/desktop.h: use EditWidgetInterface, more cosmetics * src/desktop.cpp, src/inkview.cpp, src/slideshow.cpp, src/svg-view-widget.cpp, src/svg-view.cpp, src/svg-view.h, src/ui/view/view.cpp, src/ui/view/view.h: streamline setDoc()/setDocument() logic * src/inkview.cpp: include empty func bodies to make linker happy
BTW, I get bad markup with cvs in nl.po.
Regards, ralf

Ralf Stephan wrote:
- src/file.cpp, src/inkscape.cpp, src/ui/dialog/dialog.cpp, src/ui/dialog/dialog.h, src/application/application.h, src/application/application.cpp: divide code /wrt Application::getNewGui(): if true, it's called by the Gtkmm application and the inkscape object is meaningless
My first problem compiling on win32. Aaron Spike
mingw32-g++ -O3 -Wall -mms-bitfields -DVERSION="0.42+devel" -DXP_WIN -D_INTL_ REDIRECT_INLINE -DHAVE_CONFIG_H -I. -I.. -I../.. -DGLIBMM_DLL -Ic:/gtk28/include /glibmm-2.4 -Ic:/gtk28/lib/glibmm-2.4/include -Ic:/gtk28/include/gtkmm-2.4 -Ic: /gtk28/lib/gtkmm-2.4/include -Ic:/gtk28/include/gdkmm-2.4 -Ic:/gtk28/lib/gdkmm- 2.4/include -Ic:/gtk28/include/pangomm-1.4 -Ic:/gtk28/include/atkmm-1.6 -Ic:/gtk 28/include/cairo -Ic:/gtk28/include/sigc++-2.0 -Ic:/gtk28/lib/sigc++-2.0/include -Ic:/gtk28/include/gtk-2.0 -Ic:/gtk28/lib/gtk-2.0/include -Ic:/gtk28/include/at k-1.0 -Ic:/gtk28/include/pango-1.0 -Ic:/gtk28/include/glib-2.0 -Ic:/gtk28/lib/gl ib-2.0/include -Ic:/gtk28/include -Wno-comment -Ic:/gtk28/perl/lib/CORE -Ic:/gtk 28/python/include -Ic:/gtk28/include/loudmouth-1.0 -Ic:/gtk28/include/libxml2 -I c:/gtk28/include/freetype2 -Ialgorithms -Iapplication -Idebug -Idialogs -Idispl ay -Idom -Idom/js/fdlibm -Idom/js -Idom -Iextension -Iextension/implementation - Iextension -Iextension/internal -Iextension -Iextension/script -Iextension -Ihel per -Iinkjar -Iio -Ilibavoid -Ilibcroco -Ilibnr -Ilibnrtype -Ilivarot -Isvg -Itr ace -Itrace/potrace -Itrace -Itraits -Iui/dialog -Iui -Iui/view -Iui/widget -Iut il -Iwidgets -Ixml/ -c -o application/application.o application/application.cpp application/application.cpp:21:25: preferences.h: No such file or directory application/application.cpp: In constructor `Inkscape::NSApplication::Applicatio n::Application(int, char**, bool, bool)': application/application.cpp:49: error: `Inkscape::Preferences' has not been decl ared application/application.cpp:49: error: `loadSkeleton' undeclared (first use this function) application/application.cpp:49: error: (Each undeclared identifier is reported o nly once for each function it appears in.) application/application.cpp: In member function `gint Inkscape::NSApplication::A pplication::run()': application/application.cpp:113: error: `Inkscape::Preferences' has not been dec lared application/application.cpp:113: error: `load' undeclared (first use this functi on) application/application.cpp: In static member function `static void Inkscape::NS Application::Application::exit()': application/application.cpp:133: error: `Inkscape::Preferences' has not been dec lared application/application.cpp:133: error: `save' undeclared (first use this functi on) make[1]: *** [application/application.o] Error 1 make[1]: Leaving directory `C:/src/inkscape/src' make: *** [all] Error 2

aaron@...749... wrote:
Ralf Stephan wrote:
* src/file.cpp, src/inkscape.cpp, src/ui/dialog/dialog.cpp,
src/ui/dialog/dialog.h, src/application/application.h, src/application/application.cpp: divide code /wrt Application::getNewGui(): if true, it's called by the Gtkmm application and the inkscape object is meaningless
My first problem compiling on win32. Aaron Spike
false alarm. I think I updated too soon.
Aaron Spike

aaron@...749... wrote:
aaron@...749... wrote:
Ralf Stephan wrote:
* src/file.cpp, src/inkscape.cpp, src/ui/dialog/dialog.cpp,
src/ui/dialog/dialog.h, src/application/application.h, src/application/application.cpp: divide code /wrt Application::getNewGui(): if true, it's called by the Gtkmm application and the inkscape object is meaningless
My first problem compiling on win32. Aaron Spike
false alarm. I think I updated too soon.
ok, for real now. errors on win and lin.
Aaron Spike
Win32 error: mingw32-g++ --export-dynamic -o inkscape.exe main.o winmain.o inkres.o libinksca pe.a -Lc:/gtk28/lib -lloudmouth-1 -lgtkmm-2.4 -lgdkmm-2.4 -lglibmm-2.4 -latkmm-1 .6 -lpangomm-1.4 -lsigc-2.0 -lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 -lgdk_pixb uf-2.0 -lm -lpangoft2-1.0 -lpangowin32-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2 .0 -lgthread-2.0 -lglib-2.0 -Lc:/gtk28/perl/lib/CORE -lperl58 -Lc:/gtk28/python/ libs -lpython24 c:/gtk28/bin/libxml2.dll c:/gtk28/lib/iconv.lib -lfreetype.dll - lfontconfig.dll -lpng -lpopt c:/gtk28/lib/zdll.lib -lgc -mwindows -lws2_32 -lint l libinkscape.a(inkscape.o)(.text+0x559):inkscape.cpp: undefined reference to `Ink scape::Preferences::save()' libinkscape.a(inkscape.o)(.text+0x697):inkscape.cpp: undefined reference to `Ink scape::Preferences::get()' libinkscape.a(inkscape.o)(.text+0xd39):inkscape.cpp: undefined reference to `Ink scape::Preferences::save()' libinkscape.a(inkscape.o)(.text+0xe60):inkscape.cpp: undefined reference to `Ink scape::Preferences::save()' libinkscape.a(inkscape.o)(.text+0x284b):inkscape.cpp: undefined reference to `In kscape::Preferences::load()' libinkscape.a(inkscape.o)(.text+0x3046):inkscape.cpp: undefined reference to `In kscape::Preferences::save()' libinkscape.a(application.o)(.text+0x9f):application.cpp: undefined reference to `Inkscape::Preferences::loadSkeleton()' libinkscape.a(application.o)(.text+0x23f):application.cpp: undefined reference t o `Inkscape::Preferences::loadSkeleton()' libinkscape.a(application.o)(.text+0x581):application.cpp: undefined reference t o `Inkscape::Preferences::load()' libinkscape.a(application.o)(.text+0x5e7):application.cpp: undefined reference t o `Inkscape::Preferences::save()' libinkscape.a(editor.o)(.text+0xe5):editor.cpp: undefined reference to `Inkscape ::UI::View::EditWidget::EditWidget(SPDocument*)' libinkscape.a(editor.o)(.text+0x1045):editor.cpp: undefined reference to `Inksca pe::Preferences::load()' libinkscape.a(editor.o)(.text+0x1445):editor.cpp: undefined reference to `Inksca pe::Preferences::load()' libinkscape.a(editor.o)(.text+0x1635):editor.cpp: undefined reference to `Inksca pe::Preferences::save()' libinkscape.a(editor.o)(.text+0x2d7b):editor.cpp: undefined reference to `Inksca pe::UI::View::EditWidget::EditWidget(SPDocument*)' collect2: ld returned 1 exit status make[1]: *** [inkscape.exe] Error 1 make[1]: Leaving directory `C:/src/inkscape/src' make: *** [all] Error 2
Linux error: if apg++ -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include/freetype2 -I/usr/local/src/inkscape/extra/static//include/loudmouth-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -DXTHREADS -I/usr/include/freetype2 -I/usr/X11R6/include -DPOTRACE="potrace" -DXTHREADS -pthread -I/usr/local/src/inkscape/extra/static/include/gdkmm-2.4 -I/usr/local/src/inkscape/extra/static/lib/gdkmm-2.4/include -I/usr/local/src/inkscape/extra/static/include/glibmm-2.4 -I/usr/local/src/inkscape/extra/static/lib/glibmm-2.4/include -I/usr/local/src/inkscape/extra/static/include/pangomm-1.4 -I/usr/local/src/inkscape/extra/static/include/gtkmm-2.4 -I/usr/local/src/inkscape/extra/static/lib/gtkmm-2.4/include -I/usr/local/src/inkscape/extra/static/include/atkmm-1.6 -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/X11R6/include -I/usr/include/sigc++-2.0 -I/usr/lib/sigc++-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/atk-1.0 -I/usr/include/libxml2 -I../cxxtest -I/usr/local/src/inkscape/extra/static/include -Wall -W -Wpointer-arith -Wcast-align -Wsign-compare -Woverloaded-virtual -Wswitch -Wno-unused-parameter -O2 -march=i586 -pipe -MT ui/view/edit-widget.o -MD -MP -MF "ui/view/.deps/edit-widget.Tpo" \ -c -o ui/view/edit-widget.o `test -f 'ui/view/edit-widget.cpp' || echo './'`ui/view/edit-widget.cpp; \ then mv -f "ui/view/.deps/edit-widget.Tpo" "ui/view/.deps/edit-widget.Po"; \ else rm -f "ui/view/.deps/edit-widget.Tpo"; exit 1; \ fi ui/view/edit-widget.cpp: In member function `void Inkscape::UI::View::EditWidget::initStatusbar()': ui/view/edit-widget.cpp:1152: error: `property_ellipsize' undeclared (first use this function) ui/view/edit-widget.cpp:1152: error: (Each undeclared identifier is reported only once for each function it appears in.) ui/view/edit-widget.cpp:1152: error: `ELLIPSIZE_END' undeclared in namespace ` Pango' make[2]: *** [ui/view/edit-widget.o] Error 1 make[2]: Leaving directory `/usr/local/src/inkscape/ap/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/usr/local/src/inkscape/ap' make: *** [all] Error 2 Making ... failed

Aaron, the Windoh errors must be due to the new files not added to your Windoze makefiles, I guess configure would solve that one, but there is maybe a simpler solution.
ui/view/edit-widget.cpp:1152: error: `property_ellipsize' undeclared (first use this function) ui/view/edit-widget.cpp:1152: error: `ELLIPSIZE_END' undeclared in namespace ` Pango'
Odd. Your gtkmm must be older than mine. I have here 2.8.0-0ubuntu1, what's yours?
Do we have a new dependency here?
ralf

Ralf Stephan wrote:
Aaron, the Windoh errors must be due to the new files not added to your Windoze makefiles, I guess configure would solve that one, but there is maybe a simpler solution.
I'm pretty clueless when it gets beyond just typeing the commands in the instructions. Anyone else?
ui/view/edit-widget.cpp:1152: error: `property_ellipsize' undeclared (first use this function) ui/view/edit-widget.cpp:1152: error: `ELLIPSIZE_END' undeclared in namespace ` Pango'
Odd. Your gtkmm must be older than mine. I have here 2.8.0-0ubuntu1, what's yours?
Do we have a new dependency here?
It looks like I build against gtkmm 2.4.
Aaron Spike

the Windoh errors must be due to the new files not added to your Windoze makefiles, I guess configure would solve that one, but there is maybe a simpler solution.
I'm pretty clueless when it gets beyond just typeing the commands in the instructions. Anyone else?
That would mean newly added files are not automagically propagated to Windoh maklefiles, wouldn't it?
ui/view/edit-widget.cpp:1152: error: `property_ellipsize' undeclared (first use this function) ui/view/edit-widget.cpp:1152: error: `ELLIPSIZE_END' undeclared in namespace ` Pango'
Odd. Your gtkmm must be older than mine. I have here 2.8.0-0ubuntu1, what's yours?
It looks like I build against gtkmm 2.4.
yes, sorry, mine is 2.4 too, but what package version?
ralf

Ralf Stephan wrote:
the Windoh errors must be due to the new files not added to your Windoze makefiles, I guess configure would solve that one, but there is maybe a simpler solution.
I'm pretty clueless when it gets beyond just typeing the commands in the instructions. Anyone else?
That would mean newly added files are not automagically propagated to Windoh maklefiles, wouldn't it?
I can swear that the perl scripts (mkfiles & mkdep) us win32 folks run are for that purpose... to update the makefiles. I could be wrong though.
For myself, after I make clean, mine is barfing on: ui/widget/ruler.cpp:73: error: `gettext' undeclared (first use this function) ui/widget/ruler.cpp:73: error: (Each undeclared identifier is reported only once for each function it appears in.)
-Josh

Josh:
For myself, after I make clean, mine is barfing on: ui/widget/ruler.cpp:73: error: `gettext' undeclared (first use this function) ui/widget/ruler.cpp:73: error: (Each undeclared identifier is reported only once for each function it appears in.)
So yours gets farther, but your gtkmm-dev appears to be different, too. I will include glibmm/i18n.h explicitly. Please update and report.
Thanks, ralf

Ralf Stephan wrote:
Josh:
For myself, after I make clean, mine is barfing on: ui/widget/ruler.cpp:73: error: `gettext' undeclared (first use this function) ui/widget/ruler.cpp:73: error: (Each undeclared identifier is reported only once for each function it appears in.)
So yours gets farther, but your gtkmm-dev appears to be different, too. I will include glibmm/i18n.h explicitly. Please update and report.
Updated and it finished compiling. My libs are the most recent ones that Ishmal put together, however I have a newer version of GTK+ (but not gtkmm or glibmm) that I overwrote Ishmal's with.
-Josh

On Tue, Nov 08, 2005 at 10:56:32AM -0700, Joshua A. Andler wrote:
Ralf Stephan wrote:
the Windoh errors must be due to the new files not added to your Windoze makefiles, I guess configure would solve that one, but there is maybe a simpler solution.
I'm pretty clueless when it gets beyond just typeing the commands in the instructions. Anyone else?
That would mean newly added files are not automagically propagated to Windoh maklefiles, wouldn't it?
I can swear that the perl scripts (mkfiles & mkdep) us win32 folks run are for that purpose... to update the makefiles. I could be wrong though.
For myself, after I make clean, mine is barfing on: ui/widget/ruler.cpp:73: error: `gettext' undeclared (first use this function) ui/widget/ruler.cpp:73: error: (Each undeclared identifier is reported only once for each function it appears in.)
Hmm, this sounds vaguely familiar; people had trouble with gettext on certain platforms when compiling gtkmm stuff before. It seems there is a macro definition for gettext which is not universally available or something. When this came up before it was in relation to the _() macro specifically. I think the solution was that the macro just needed to be locally defined.
Bryce

Thanks Josh, so it appears HEAD compiles with the newest gtkmm on Windows. That leaves the questions why added files on Windows aren't seen sometimes, and secondly:
ui/view/edit-widget.cpp:1152: error: `property_ellipsize' undeclared (first use this function) ui/view/edit-widget.cpp:1152: error: `ELLIPSIZE_END' undeclared in namespace ` Pango'
I have here 2.8.0-0ubuntu1, what's yours?
yes, sorry, mine is 2.4 too, but what package version?
It appears that pangomm/layout.h has to be explicitly included, Aaron, can you confirm that cvs compiles now for you on Linux?
gottagonow, ralf

Ralf Stephan wrote:
Thanks Josh, so it appears HEAD compiles with the newest gtkmm on Windows. That leaves the questions why added files on Windows aren't seen sometimes, and secondly:
Ok, I think I have the latest libs here at work and it compiles and runs after that i18n commit. thanks. I'll check to make sure that I'm using the latest libs at home.
Aaron

Ralf Stephan wrote:
yes, sorry, mine is 2.4 too, but what package version?
Hmm, how do I figure that out? Because I staticlly link things in the autopackage I compile them from source.
It appears that pangomm/layout.h has to be explicitly included, Aaron, can you confirm that cvs compiles now for you on Linux?
Nope.
Aaron

Ralf Stephan wrote:
AC:
It appears that pangomm/layout.h has to be explicitly included, Aaron, can you confirm that cvs compiles now for you on Linux?
Nope.
Can you please do a grep --recursive ELLIPSIZE /usr/include and quote the output?
Yeah, it is blank. I will make myself some new libs after 0.43 goes our and I update to breezy. (That should be soon, right? ;) )
Right now, I can't compile anywhere. Yesterday I was able to compile on my linux box at work, but I updated this morning and I get errors. I have old gtkmm on my linux box at home. And I have no clue what is going on with my laptop at home, but I did a clean checkout this morning and it was totally borked.
I think I'll sit out for a little while until some of the other win32 compiling guys say it is safe for kids.
Aaron Spike

aaron@...749... wrote:
Ralf Stephan wrote:
AC:
It appears that pangomm/layout.h has to be explicitly included, Aaron, can you confirm that cvs compiles now for you on Linux?
Nope.
Can you please do a grep --recursive ELLIPSIZE /usr/include and quote the output?
Yeah, it is blank. I will make myself some new libs after 0.43 goes our and I update to breezy. (That should be soon, right? ;) )
Right now, I can't compile anywhere. Yesterday I was able to compile on my linux box at work, but I updated this morning and I get errors. I have old gtkmm on my linux box at home. And I have no clue what is going on with my laptop at home, but I did a clean checkout this morning and it was totally borked.
I think I'll sit out for a little while until some of the other win32 compiling guys say it is safe for kids.
Aaron Spike
Well, on Breezy you will be good to go as mine compiled fine last night (and this morning as well with all of Bulia's great changes). As for win32, after the last commit that Ralf made, my compiling is fine here too... and usually I'm the one that runs into weird breakage problems on win32. I would definitely think it's safe for kids if I can do it. ;-)
If you'd like for me to package up my libs for your win32 stuff I can do that (but only the GTK+ is newer, not gtkmm). Did you perhaps have anything that maybe didn't merge properly? And a heads up, you will need to make clean for Bulia's changes.
-Josh

On Nov 8, 2005, at 4:09 AM, Ralf Stephan wrote:
Hello, as Peter has now branched 0.43, I have merged HEAD with my branch, so please expect some recompilation. The Changelog:
Now would probably be a good time to look at merge tagging.
If you use tags with a standard naming convention, various CVS tools can "connect the dots" with your versions.
The form is generally mergeto_<trunk or branchname>_<cmpressed date> and mergefrom_<trunk or branchname>_<cmpressed date>
For an example, see this:
http://www.twobarleycorns.net/tkcvs/tkcvs-log.gif
Does anyone have strong feelings on this one way or another?
Ralf, while we wait for any comments, take a peek at what that would mean for your changes.

as Peter has now branched 0.43, I have merged HEAD with my branch, so please expect some recompilation. The Changelog:
Now would probably be a good time to look at merge tagging.
While I already saw the (possible) benefits of tagging when a branch was made, I don't see what you mean, and how this relates to AC's problems which BTW don't show here. I intend not to continue the branch, maybe that was unclear.
Are you able to compile HEAD, Jon?
Ralf, while we wait for any comments, take a peek at what that would mean for your changes.
I do not see what you mean.
ralf

On Nov 8, 2005, at 9:14 AM, Ralf Stephan wrote:
While I already saw the (possible) benefits of tagging when a branch was made, I don't see what you mean, and how this relates to AC's problems which BTW don't show here. I intend not to continue the branch, maybe that was unclear.
Oh, no. That was clear.
The main thing is to document the merge from the branch back to the trunk. It's perhaps not a big deal at the moment, but months from now when people are trying to figure out how the pieces fit together, this then will be very helpful.
Ralf, while we wait for any comments, take a peek at what that would mean for your changes.
I do not see what you mean.
See what files you involved in merging, which revision on the branches and which revision on the trunks.
For example, I went on in to src/desktop.cpp
From reviewing it's log/tree view, I guessed that the end of the branch was merged in as 1.93 on the trunk. So... to tag each of those, I did:
$ cvs tag -r 1.189.2.19 mergeto_trunk_08Nov05 desktop.cpp T desktop.cpp
$ cvs tag -r 1.193 mergefrom_CXXIFICATION_VIEW_AND_WIDGET_08Nov05 desktop.cpp T desktop.cpp
The output with the "T" at the beginning of the line shows the file or directory being tagged. Now that the file had both "ends" of the merge tagged, we have a solid record of what happened. Also, tools like TkCVS will give a nice diagram listing all the connections. (TkCVS works under Linux, OS X and Windows, and I'd really suggest installing it for checking now and then, if nothing else)
Also, I'd gone in and tagged src/Makefile_insert and src/arc- context.cpp. You can see the simple case there.

Jon Cruz:
The main thing is to document the merge from the branch back to the trunk. It's perhaps not a big deal at the moment, but months from now when people are trying to figure out how the pieces fit together, this then will be very helpful.
I don't think the branch history is so valuable but will consider doing this next time.
ralf

On Nov 9, 2005, at 2:55 AM, Ralf Stephan wrote:
Jon Cruz:
The main thing is to document the merge from the branch back to the trunk. It's perhaps not a big deal at the moment, but months from now when people are trying to figure out how the pieces fit together, this then will be very helpful.
I don't think the branch history is so valuable but will consider doing this next time.
No, there's no need to not do it now.
Especially as other people are going forward on making changes, others (like myself) may have problems figuring out which are from the merge and which are other people's work.
participants (5)
-
unknown@example.com
-
Bryce Harrington
-
Jon A. Cruz
-
Joshua A. Andler
-
Ralf Stephan