13 Mar 2005 (updated 14 Mar 2005 at 06:27 UTC) »
MS Word Developers Listen to Customers!
I know it's unbelievable, but it's true! Look at this blog entry on the the topic of Eugenia's article:
http://blogs.msdn.com/rick_schaut/archive/2005/03/12/394480.aspx
I had no idea. I wonder how one talks to them?
Fun With Hacker Heads.
I did some more debugging of the tight wrapped image code. It's now pretty robust though it's possible to screw things up by placing overlapping images in text. I'm pretty sure I know how to fix that. I'll get around to it later.
Anyway I had fun debugging this feature by playing with the hacker heads found on http://planet.abisource.com
Here is a screenshot:
http://www.ph.unimelb.edu.au/~msevior/abiword/AbiHeads.png
jamesh I'm not familiar with the Open Office equation editor although other people have told me that OO.o have implemented some sort of language for describing maths. The Latex equation editor I wrote for AbiWord is not meant to be the only way enter Maths. Eventually I'd like us to have a full-blown graphical editor like Lyx or MSWord. Ordinary people would definitely get intimidated by having to learn Latex so we'll need something with a shallower learning curve even if it's not as productive.
I'm very comfortable with having Latex as the command-line entry mode. A large fraction of people who need Maths in documents know Latex and those that don't should learn it anyway :-) Since we'll give people instant feedback as they enter their formulas, AbiWord will actually a good way to learn the Latex syntax so users will acquire a transferable skill.
Luis One of the advantages Apple has over us (and everyone else even MicroSoft) is that they can market their wares to their users right on their own desktop. Right now the big Linux distros have mandated OOo for everyone. It's hard to get a look in at the moment.
Regarding features, I have no doubt that more features => more users (and hence developers). I get the impression people think that we'd need to be as big as OOo in order to have all the features in OO.o.
This is certainly not the case.
Our code base is an order of magnitude smaller now and will not be much larger when I'm comfortable with AbiWord's feature set. This will probably happen by the middle of next year.
That said we're extremely open to good ideas as to how to present these to users. MS Word has taken to hiding menus and burying options in complex dialogs. I'm sure we can do better than that. I'm not very familiar with what OOo has done because I don't use it very much.
If you're interested it is extremely easy to fiddle with the AbiWord UI. Download a tarball or CVS HEAD (for the fun new stuff) build it with the standard, autogen.sh,configure, make etc..
Then in the directory abi/src/wp/ap/xp you'll find the following files which define the main menu:
ap_Menu_Layouts_MainMenu.h
and the toolbars:
ap_TB_Layouts_ExtraOps.h
ap_TB_Layouts_FormatOps.h
ap_TB_Layouts_FileEditOps.h
ap_TB_Layouts_TableOps.h
The ap_Menu_Layouts_MainMenu.h file contains entries like this...
BeginSubMenu(AP_MENU_ID_VIEW)
MenuItem(AP_MENU_ID_VIEW_NORMAL)
MenuItem(AP_MENU_ID_VIEW_WEB)
MenuItem(AP_MENU_ID_VIEW_PRINT)
MenuItem(AP_MENU_ID_WEB_WEBPREVIEW)
Separator()
BeginSubMenu(AP_MENU_ID_VIEW_TOOLBARS)
MenuItem(AP_MENU_ID_VIEW_TB_1)
MenuItem(AP_MENU_ID_VIEW_TB_2)
MenuItem(AP_MENU_ID_VIEW_TB_3)
MenuItem(AP_MENU_ID_VIEW_TB_4)
// Currently we only can change toolbars in UNIX builds
#ifdef XP_UNIX_TARGET_GTK
Separator()
MenuItem(AP_MENU_ID_VIEW_LOCK_TB_LAYOUT)
MenuItem(AP_MENU_ID_VIEW_DEFAULT_TB_LAYOUT)
#endif
EndSubMenu()
MenuItem(AP_MENU_ID_VIEW_RULER)
MenuItem(AP_MENU_ID_VIEW_STATUSBAR)
Separator()
MenuItem(AP_MENU_ID_VIEW_LOCKSTYLES)
MenuItem(AP_MENU_ID_VIEW_SHOWPARA)
Separator()
MenuItem(AP_MENU_ID_VIEW_FULLSCREEN)
The toolbar files look like this:
BeginLayout(FileEditOps, AP_STRING_ID_TB_Standard, AP_PREF_KEY_StandardBarVisible)
ToolbarItem(AP_TOOLBAR_ID_FILE_NEW)
ToolbarItem(AP_TOOLBAR_ID_FILE_OPEN)
ToolbarItem(AP_TOOLBAR_ID_FILE_SAVE)
ToolbarItem(AP_TOOLBAR_ID_FILE_SAVEAS)
Spacer()
ToolbarItem(AP_TOOLBAR_ID_FILE_PRINT)
#if defined(HAVE_GNOME)
ToolbarItem(AP_TOOLBAR_ID_FILE_PRINT_PREVIEW)
#endif
ToolbarItem(AP_TOOLBAR_ID_SPELLCHECK)
Spacer()
ToolbarItem(AP_TOOLBAR_ID_EDIT_CUT)
ToolbarItem(AP_TOOLBAR_ID_EDIT_COPY)
ToolbarItem(AP_TOOLBAR_ID_EDIT_PASTE)
ToolbarItem(AP_TOOLBAR_ID_FMTPAINTER)
I think you can work out how to use these. Edit the files as you would guess. Type "make install" and see your own personalized UI. When you come up with something better or something that targets a different market niche let us know. We're very receptive to good ideas.
I discovered a great little utility called itex2MML written by Paul Gartside which converts itex (which is basically Latex) to MathML. Since we can nicely display MathML I used this utility to make a Latex based Equation Editor for AbiWord.
I'm very pleased with the results. This is exactly the way I'd like to enter and edit mathematics in my documents.
Here's is a cute little screenshot of the feature in use. I cooked this up in just about 10 minutes of playing :-)
http://www.ph.unimelb.edu.au/~msevior/abiword/TightEditMathGrammar.png
6 Mar 2005 (updated 6 Mar 2005 at 01:07 UTC) »
The World's Biggest Commit
From my great friend and fellow abi hacker Marc (uwog) Maurer!
---------------------------------------------------------
Had some tiny issues with this one. I think after this sync, all will be well again. It even compiles! Yay!
Marc
Sync with HEAD
CVS:
----------------------------------------------------------------------
CVS: Enter Log. Lines beginning with `CVS:' are removed automatically
CVS:
CVS: Committing in .
CVS:
CVS: Modified Files:
CVS: Tag: JMM-DOUBLEGRAPHICS-1
CVS: CREDITS.TXT GNUmakefile.am Makefile configure.ac includes.mk
CVS: ac-helpers/abi-glib-gtk.m4 ac-helpers/abi-gnome.m4
CVS: ac-helpers/abi-gucharmap.m4 docs/build/BUILD.TXT
CVS: docs/build/BUILD.html po/cy-GB.po po/es-ES.po po/ms-MY.po
CVS: po/nl-NL.po po/pt-PT.po po/sq-AL.po src/af/GNUmakefile.am
CVS: src/af/ev/cocoa/ev_CocoaMenu.mm
CVS: src/af/ev/cocoa/ev_CocoaToolbar.h
CVS: src/af/ev/cocoa/ev_CocoaToolbar.mm
CVS: src/af/ev/unix/ev_UnixMenu.cpp src/af/ev/win/ev_Win32Menu.cpp
CVS: src/af/ev/xp/ev_EditBits.h src/af/gr/Makefile
CVS: src/af/gr/cocoa/gr_CocoaGraphics.h
CVS: src/af/gr/cocoa/gr_CocoaGraphics.mm
CVS: src/af/gr/cocoa/gr_CocoaImage.h
CVS: src/af/gr/cocoa/gr_CocoaImage.mm
CVS: src/af/gr/unix/gr_UnixGraphics.cpp
CVS: src/af/gr/unix/gr_UnixGraphics.h
CVS: src/af/gr/unix/gr_UnixImage.cpp src/af/gr/unix/gr_UnixImage.h
CVS: src/af/gr/win/gr_Win32Graphics.cpp
CVS: src/af/gr/win/gr_Win32Graphics.h
CVS: src/af/gr/win/gr_Win32Image.cpp src/af/gr/win/gr_Win32Image.h
CVS: src/af/gr/win/gr_Win32USPGraphics.cpp
CVS: src/af/gr/win/gr_Win32USPGraphics.h
CVS: src/af/gr/xp/GNUmakefile.am src/af/gr/xp/Makefile
CVS: src/af/gr/xp/gr_Graphics.cpp src/af/gr/xp/gr_Graphics.h
CVS: src/af/gr/xp/gr_Image.cpp src/af/gr/xp/gr_Image.h
CVS: src/af/gr/xp/gr_RenderInfo.h src/af/gr/xp/gr_VectorImage.cpp
CVS: src/af/gr/xp/gr_VectorImage.h src/af/util/GNUmakefile.am
CVS: src/af/util/Makefile src/af/util/unix/ut_unixMisc.cpp
CVS: src/af/util/xp/GNUmakefile.am src/af/util/xp/Makefile
CVS: src/af/util/xp/ut_assert.h src/af/util/xp/ut_misc.cpp
CVS: src/af/util/xp/ut_misc.h src/af/util/xp/ut_png.cpp
CVS: src/af/util/xp/ut_string_class.cpp src/af/util/xp/ut_tree.h
CVS: src/af/util/xp/ut_types.h src/af/xap/GNUmakefile.am
CVS: src/af/xap/Makefile src/af/xap/cocoa/GNUmakefile.am
CVS: src/af/xap/cocoa/xap_CocoaAppController.h
CVS: src/af/xap/cocoa/xap_CocoaAppController.mm
CVS: src/af/xap/cocoa/xap_CocoaDialog_Utilities.h
CVS: src/af/xap/cocoa/xap_CocoaDialog_Utilities.mm
CVS: src/af/xap/cocoa/xap_CocoaDlg_FileOpenSaveAs.h
CVS: src/af/xap/cocoa/xap_CocoaDlg_FileOpenSaveAs.mm
CVS: src/af/xap/cocoa/xap_CocoaDlg_FontChooser.h
CVS: src/af/xap/cocoa/xap_CocoaDlg_Language.h
CVS: src/af/xap/cocoa/xap_CocoaDlg_Language.mm
CVS: src/af/xap/cocoa/xap_CocoaDlg_ListDocuments.mm
CVS: src/af/xap/cocoa/xap_CocoaDlg_PluginManager.h
CVS: src/af/xap/cocoa/xap_CocoaDlg_PluginManager.mm
CVS: src/af/xap/cocoa/xap_CocoaDlg_Zoom.mm
CVS: src/af/xap/cocoa/xap_CocoaFont.h
CVS: src/af/xap/cocoa/xap_CocoaFont.mm
CVS: src/af/xap/cocoa/xap_CocoaFrame.h
CVS: src/af/xap/cocoa/xap_CocoaFrame.mm
CVS: src/af/xap/cocoa/xap_CocoaFrameImpl.h
CVS: src/af/xap/cocoa/xap_CocoaFrameImpl.mm
CVS: src/af/xap/cocoa/xap_CocoaModule.h
CVS: src/af/xap/cocoa/xap_CocoaModule.mm
CVS: src/af/xap/cocoa/xap_CocoaPlugin.h
CVS: src/af/xap/cocoa/xap_CocoaPlugin.mm
CVS: src/af/xap/cocoa/xap_CocoaToolPalette.mm
CVS: src/af/xap/cocoa/xap_CocoaToolbarWindow.h
CVS: src/af/xap/cocoa/xap_CocoaToolbarWindow.mm
CVS: src/af/xap/cocoa/xap_CocoaToolbar_Icons.h
CVS: src/af/xap/cocoa/xap_CocoaToolbar_Icons.mm
CVS: src/af/xap/cocoa/xap_CocoaDlg_FontChooser.nib/classes.nib
CVS: src/af/xap/cocoa/xap_CocoaDlg_FontChooser.nib/info.nib
CVS: src/af/xap/cocoa/xap_CocoaDlg_FontChooser.nib/objects.nib
CVS: src/af/xap/cocoa/xap_CocoaDlg_PluginManager.nib/classes.nib
CVS: src/af/xap/cocoa/xap_CocoaDlg_PluginManager.nib/info.nib
CVS: src/af/xap/cocoa/xap_CocoaDlg_PluginManager.nib/objects.nib
CVS: src/af/xap/cocoa/xap_CocoaDlg_Zoom.nib/info.nib
CVS: src/af/xap/cocoa/xap_CocoaDlg_Zoom.nib/objects.nib
CVS: src/af/xap/cocoa/xap_CocoaFileOpen_Views.nib/classes.nib
CVS: src/af/xap/cocoa/xap_CocoaFileOpen_Views.nib/info.nib
CVS: src/af/xap/cocoa/xap_CocoaFileOpen_Views.nib/objects.nib
CVS: src/af/xap/cocoa/xap_CocoaToolPalette.nib/info.nib
CVS: src/af/xap/cocoa/xap_CocoaToolPalette.nib/keyedobjects.nib
CVS: src/af/xap/unix/GNUmakefile.am
CVS: src/af/xap/unix/xap_UnixDialogHelper.cpp
CVS: src/af/xap/unix/xap_UnixDialogHelper.h
CVS: src/af/xap/unix/xap_UnixDlg_FileOpenSaveAs.cpp
CVS: src/af/xap/unix/xap_UnixDlg_FileOpenSaveAs.h
CVS: src/af/xap/unix/xap_UnixDlg_FontChooser.cpp
CVS: src/af/xap/unix/xap_UnixDlg_Image.cpp
CVS: src/af/xap/unix/xap_UnixDlg_Image.glade
CVS: src/af/xap/unix/xap_UnixDlg_Image.h
CVS: src/af/xap/unix/xap_UnixDlg_Language.cpp
CVS: src/af/xap/unix/xap_UnixDlg_Language.glade
CVS: src/af/xap/unix/xap_UnixDlg_Language.h
CVS: src/af/xap/unix/xap_UnixDlg_PluginManager.cpp
CVS: src/af/xap/unix/xap_UnixDlg_PluginManager.h
CVS: src/af/xap/unix/xap_UnixDlg_Zoom.glade
CVS: src/af/xap/unix/xap_UnixEncodingManager.cpp
CVS: src/af/xap/unix/xap_UnixFont.cpp
CVS: src/af/xap/unix/xap_UnixFont.h
CVS: src/af/xap/unix/xap_UnixFontManager.cpp
CVS: src/af/xap/unix/xap_UnixPSFont.cpp
CVS: src/af/xap/unix/xap_UnixPSFont.h
CVS: src/af/xap/unix/xap_UnixPSGraphics.cpp
CVS: src/af/xap/unix/xap_UnixPSImage.cpp
CVS: src/af/xap/unix/xap_UnixPSImage.h
CVS: src/af/xap/unix/xap_UnixTableWidget.cpp
CVS: src/af/xap/unix/gnome/color-palette.c
CVS: src/af/xap/unix/gnome/color-palette.h
CVS: src/af/xap/unix/gnome/widget-color-combo.c
CVS: src/af/xap/unix/gnome/xap_UnixGnomePrintGraphics.cpp
CVS: src/af/xap/xp/GNUmakefile.am src/af/xap/xp/Makefile
CVS: src/af/xap/xp/xad_Document.cpp src/af/xap/xp/xad_Document.h
CVS: src/af/xap/xp/xap_App.cpp src/af/xap/xp/xap_App.h
CVS: src/af/xap/xp/xap_Dialog.cpp src/af/xap/xp/xap_Dialog.h
CVS: src/af/xap/xp/xap_DialogFactory.cpp
CVS: src/af/xap/xp/xap_Dialog_Id.h src/af/xap/xp/xap_Dlg_About.h
CVS: src/af/xap/xp/xap_Dlg_Image.cpp src/af/xap/xp/xap_Dlg_Image.h
CVS: src/af/xap/xp/xap_Dlg_Language.cpp
CVS: src/af/xap/xp/xap_Dlg_Language.h
CVS: src/af/xap/xp/xap_Dlg_PluginManager.cpp
CVS: src/af/xap/xp/xap_EncodingManager.cpp
CVS: src/af/xap/xp/xap_Module.cpp src/af/xap/xp/xap_Module.h
CVS: src/af/xap/xp/xap_ModuleManager.cpp
CVS: src/af/xap/xp/xap_ModuleManager.h
CVS: src/af/xap/xp/xap_Prefs_SchemeIds.h
CVS: src/af/xap/xp/xap_String_Id.h src/af/xap/xp/xav_Listener.h
CVS: src/af/xap/xp/xav_View.cpp src/af/xap/xp/xav_View.h
CVS: src/config/abi_release_version.mk src/config/abi_rules.mk
CVS: src/pkg/common/unix/data/tbz_install.sh
CVS: src/pkg/common/unix/data/tgz_install.sh
CVS: src/pkg/common/unix/scripts/install.sh
CVS: src/pkg/common/unix/scripts/makewrapper.sh
CVS: src/pkg/freebsd/scripts/mkplist.sh
CVS: src/pkg/hpux/scripts/hpux.abiword.mkdepot.sh
CVS: src/pkg/linux/Makefile src/pkg/linux/deb/AbiWord
CVS: src/pkg/linux/deb/rules
CVS: src/pkg/linux/rpm/abiword.spec-template
CVS: src/pkg/linux/scripts/install_redhat.sh
CVS: src/pkg/win/setup/DictionaryAmerican.nsi
CVS: src/pkg/win/setup/DictionaryBritish.nsi
CVS: src/pkg/win/setup/DictionaryCatalan.nsi
CVS: src/pkg/win/setup/DictionaryCzech.nsi
CVS: src/pkg/win/setup/DictionaryDansk.nsi
CVS: src/pkg/win/setup/DictionaryDeutsch.nsi
CVS: src/pkg/win/setup/DictionaryDeutschmed.nsi
CVS: src/pkg/win/setup/DictionaryEllhnika.nsi
CVS: src/pkg/win/setup/DictionaryEspanol.nsi
CVS: src/pkg/win/setup/DictionaryEsperanto.nsi
CVS: src/pkg/win/setup/DictionaryFrancais.nsi
CVS: src/pkg/win/setup/DictionaryGalician.nsi
CVS: src/pkg/win/setup/DictionaryIrish.nsi
CVS: src/pkg/win/setup/DictionaryItalian.nsi
CVS: src/pkg/win/setup/DictionaryLietuviu.nsi
CVS: src/pkg/win/setup/DictionaryNederlands.nsi
CVS: src/pkg/win/setup/DictionaryNorsk.nsi
CVS: src/pkg/win/setup/DictionaryNynorsk.nsi
CVS: src/pkg/win/setup/DictionaryPolish.nsi
CVS: src/pkg/win/setup/DictionaryPortugues.nsi
CVS: src/pkg/win/setup/DictionaryRussian.nsi
CVS: src/pkg/win/setup/DictionarySvenska.nsi
CVS: src/pkg/win/setup/Makefile
CVS: src/pkg/win/setup/pluginImportersExporters.nsi
CVS: src/pkg/win/setup/NSISv2/AbiWord.nsi
CVS: src/pkg/win/setup/NSISv2/abi_lng_misc.nsh
CVS: src/pkg/win/setup/NSISv2/abi_mui_sectdesc.nsh
CVS: src/pkg/win/setup/NSISv2/abi_parsecmdline.nsh
CVS: src/pkg/win/setup/NSISv2/abi_util_addremove.nsh
CVS: src/text/fmt/xp/GNUmakefile.am src/text/fmt/xp/Makefile
CVS: src/text/fmt/xp/fb_LineBreaker.cpp
CVS: src/text/fmt/xp/fg_GraphicRaster.cpp
CVS: src/text/fmt/xp/fl_BlockLayout.cpp
CVS: src/text/fmt/xp/fl_BlockLayout.h
CVS: src/text/fmt/xp/fl_ContainerLayout.cpp
CVS: src/text/fmt/xp/fl_DocLayout.cpp
CVS: src/text/fmt/xp/fl_DocLayout.h
CVS: src/text/fmt/xp/fl_DocListener.cpp
CVS: src/text/fmt/xp/fl_FootnoteLayout.cpp
CVS: src/text/fmt/xp/fl_FrameLayout.cpp
CVS: src/text/fmt/xp/fl_FrameLayout.h
CVS: src/text/fmt/xp/fl_SectionLayout.cpp
CVS: src/text/fmt/xp/fl_SectionLayout.h
CVS: src/text/fmt/xp/fl_Squiggles.cpp
CVS: src/text/fmt/xp/fl_Squiggles.h
CVS: src/text/fmt/xp/fl_TableLayout.cpp
CVS: src/text/fmt/xp/fl_TestRoutines.cpp
CVS: src/text/fmt/xp/fp_Column.cpp
CVS: src/text/fmt/xp/fp_FrameContainer.cpp
CVS: src/text/fmt/xp/fp_FrameContainer.h
CVS: src/text/fmt/xp/fp_Line.cpp src/text/fmt/xp/fp_Page.cpp
CVS: src/text/fmt/xp/fp_Run.cpp src/text/fmt/xp/fp_Run.h
CVS: src/text/fmt/xp/fp_TextRun.cpp src/text/fmt/xp/fp_TextRun.h
CVS: src/text/fmt/xp/fv_FrameEdit.cpp
CVS: src/text/fmt/xp/fv_FrameEdit.h src/text/fmt/xp/fv_View.cpp
CVS: src/text/fmt/xp/fv_View.h src/text/fmt/xp/fv_View_cmd.cpp
CVS: src/text/fmt/xp/fv_View_protected.cpp
CVS: src/text/fmt/xp/fv_VisualDragText.cpp
CVS: src/text/fmt/xp/fv_VisualDragText.h
CVS: src/text/ptbl/xp/GNUmakefile.am src/text/ptbl/xp/fd_Field.cpp
CVS: src/text/ptbl/xp/pd_Document.cpp
CVS: src/text/ptbl/xp/pd_Document.h
CVS: src/text/ptbl/xp/pd_Iterator.cpp src/text/ptbl/xp/pf_Frag.cpp
CVS: src/text/ptbl/xp/pf_Frag.h src/text/ptbl/xp/pf_Frag_FmtMark.h
CVS: src/text/ptbl/xp/pf_Frag_Object.cpp
CVS: src/text/ptbl/xp/pf_Frag_Object.h
CVS: src/text/ptbl/xp/pf_Frag_Strux.cpp
CVS: src/text/ptbl/xp/pf_Frag_Strux.h
CVS: src/text/ptbl/xp/pf_Frag_Text.h
CVS: src/text/ptbl/xp/pp_AttrProp.cpp
CVS: src/text/ptbl/xp/pp_PropertyMap.cpp
CVS: src/text/ptbl/xp/pp_PropertyMap.h
CVS: src/text/ptbl/xp/pp_Revision.cpp
CVS: src/text/ptbl/xp/pp_Revision.h
CVS: src/text/ptbl/xp/pt_PT_Append.cpp
CVS: src/text/ptbl/xp/pt_PT_ChangeObject.cpp
CVS: src/text/ptbl/xp/pt_PT_ChangeSpan.cpp
CVS: src/text/ptbl/xp/pt_PT_DeleteObject.cpp
CVS: src/text/ptbl/xp/pt_PT_DeleteSpan.cpp
CVS: src/text/ptbl/xp/pt_PT_DeleteStrux.cpp
CVS: src/text/ptbl/xp/pt_PT_InsertObject.cpp
CVS: src/text/ptbl/xp/pt_PT_InsertSpan.cpp
CVS: src/text/ptbl/xp/pt_PT_InsertStrux.cpp
CVS: src/text/ptbl/xp/pt_PT_Styles.cpp
CVS: src/text/ptbl/xp/pt_PieceTable.cpp
CVS: src/text/ptbl/xp/pt_PieceTable.h src/text/ptbl/xp/pt_Types.h
CVS: src/text/ptbl/xp/px_CR_FmtMark.cpp
CVS: src/text/ptbl/xp/px_CR_FmtMarkChange.cpp
CVS: src/text/ptbl/xp/px_CR_Glob.cpp
CVS: src/text/ptbl/xp/px_CR_Object.cpp
CVS: src/text/ptbl/xp/px_CR_Object.h
CVS: src/text/ptbl/xp/px_CR_ObjectChange.cpp
CVS: src/text/ptbl/xp/px_CR_Span.cpp
CVS: src/text/ptbl/xp/px_CR_SpanChange.cpp
CVS: src/text/ptbl/xp/px_CR_Strux.cpp
CVS: src/text/ptbl/xp/px_CR_Strux.h
CVS: src/text/ptbl/xp/px_CR_StruxChange.cpp
CVS: src/text/ptbl/xp/px_ChangeRecord.cpp
CVS: src/text/ptbl/xp/px_ChangeRecord.h src/wp/GNUmakefile.am
CVS: src/wp/ap/cocoa/ap_CocoaApp.mm
CVS: src/wp/ap/cocoa/ap_CocoaDialog_All.h
CVS: src/wp/ap/cocoa/ap_CocoaDialog_Background.h
CVS: src/wp/ap/cocoa/ap_CocoaDialog_Background.mm
CVS: src/wp/ap/cocoa/ap_CocoaDialog_Field.h
CVS: src/wp/ap/cocoa/ap_CocoaDialog_Field.mm
CVS: src/wp/ap/cocoa/ap_CocoaDialog_FormatFrame.h
CVS: src/wp/ap/cocoa/ap_CocoaDialog_FormatFrame.mm
CVS: src/wp/ap/cocoa/ap_CocoaDialog_MailMerge.h
CVS: src/wp/ap/cocoa/ap_CocoaDialog_MailMerge.mm
CVS: src/wp/ap/cocoa/ap_CocoaDialog_New.h
CVS: src/wp/ap/cocoa/ap_CocoaDialog_New.mm
CVS: src/wp/ap/cocoa/ap_CocoaDialog_PageSetup.h
CVS: src/wp/ap/cocoa/ap_CocoaDialog_PageSetup.mm
CVS: src/wp/ap/cocoa/ap_CocoaDialog_Replace.mm
CVS: src/wp/ap/cocoa/ap_CocoaDialog_Stylist.h
CVS: src/wp/ap/cocoa/ap_CocoaDialog_Stylist.mm
CVS: src/wp/ap/cocoa/ap_CocoaDialog_WordCount.h
CVS: src/wp/ap/cocoa/ap_CocoaDialog_WordCount.mm
CVS: src/wp/ap/cocoa/ap_CocoaFrameImpl.mm
CVS: src/wp/ap/cocoa/ap_CocoaLeftRuler.mm
CVS: src/wp/ap/cocoa/ap_CocoaTopRuler.mm
CVS: src/wp/ap/cocoa/ap_CocoaDialog_Field.nib/info.nib
CVS: src/wp/ap/cocoa/ap_CocoaDialog_Field.nib/objects.nib
CVS: src/wp/ap/cocoa/ap_CocoaDialog_FormatFrame.nib/classes.nib
CVS: src/wp/ap/cocoa/ap_CocoaDialog_FormatFrame.nib/info.nib
CVS: src/wp/ap/cocoa/ap_CocoaDialog_FormatFrame.nib/objects.nib
CVS: src/wp/ap/cocoa/ap_CocoaDialog_InsertTable.nib/info.nib
CVS: src/wp/ap/cocoa/ap_CocoaDialog_InsertTable.nib/objects.nib
CVS: src/wp/ap/cocoa/ap_CocoaDialog_New.nib/classes.nib
CVS: src/wp/ap/cocoa/ap_CocoaDialog_New.nib/info.nib
CVS: src/wp/ap/cocoa/ap_CocoaDialog_New.nib/objects.nib
CVS: src/wp/ap/cocoa/ap_CocoaDialog_PageSetup.nib/info.nib
CVS: src/wp/ap/cocoa/ap_CocoaDialog_PageSetup.nib/objects.nib
CVS: src/wp/ap/cocoa/ap_CocoaDialog_Spell.nib/info.nib
CVS: src/wp/ap/cocoa/ap_CocoaDialog_Spell.nib/objects.nib
CVS: src/wp/ap/cocoa/ap_CocoaDialog_Stylist.nib/objects.nib
CVS: src/wp/ap/qnx/ap_QNXDialog_All.h src/wp/ap/unix/GNUmakefile.am
CVS: src/wp/ap/unix/Makefile src/wp/ap/unix/abiwidget.cpp
CVS: src/wp/ap/unix/ap_UnixApp.cpp src/wp/ap/unix/ap_UnixApp.h
CVS: src/wp/ap/unix/ap_UnixDialog_All.h
CVS: src/wp/ap/unix/ap_UnixDialog_Background.cpp
CVS: src/wp/ap/unix/ap_UnixDialog_Break.glade
CVS: src/wp/ap/unix/ap_UnixDialog_FormatFrame.cpp
CVS: src/wp/ap/unix/ap_UnixDialog_FormatFrame.glade
CVS: src/wp/ap/unix/ap_UnixDialog_FormatFrame.h
CVS: src/wp/ap/unix/ap_UnixDialog_FormatTable.cpp
CVS: src/wp/ap/unix/ap_UnixDialog_FormatTable.glade
CVS: src/wp/ap/unix/ap_UnixDialog_FormatTable.h
CVS: src/wp/ap/unix/ap_UnixDialog_Goto.cpp
CVS: src/wp/ap/unix/ap_UnixDialog_Goto.h
CVS: src/wp/ap/unix/ap_UnixDialog_New.cpp
CVS: src/wp/ap/unix/ap_UnixDialog_New.glade
CVS: src/wp/ap/unix/ap_UnixDialog_New.h
CVS: src/wp/ap/unix/ap_UnixDialog_Options.cpp
CVS: src/wp/ap/unix/ap_UnixDialog_Options.glade
CVS: src/wp/ap/unix/ap_UnixDialog_Options.h
CVS: src/wp/ap/unix/ap_UnixDialog_PageNumbers.glade
CVS: src/wp/ap/unix/ap_UnixDialog_PageSetup.cpp
CVS: src/wp/ap/unix/ap_UnixDialog_PageSetup.h
CVS: src/wp/ap/unix/ap_UnixDialog_Paragraph.h
CVS: src/wp/ap/unix/ap_UnixDialog_Spell.cpp
CVS: src/wp/ap/unix/ap_UnixDialog_Spell.h
CVS: src/wp/ap/unix/ap_UnixDialog_WordCount.cpp
CVS: src/wp/ap/unix/ap_UnixDialog_WordCount.glade
CVS: src/wp/ap/unix/ap_UnixDialog_WordCount.h
CVS: src/wp/ap/unix/ap_UnixFrameImpl.cpp
CVS: src/wp/ap/win/ap_Win32App.cpp
CVS: src/wp/ap/win/ap_Win32Dialog_All.h
CVS: src/wp/ap/win/ap_Win32Dialog_Field.cpp
CVS: src/wp/ap/win/ap_Win32Dialog_FormatTOC.cpp
CVS: src/wp/ap/win/ap_Win32Dialog_FormatTOC.h
CVS: src/wp/ap/win/ap_Win32Dialog_InsertTable.cpp
CVS: src/wp/ap/win/ap_Win32Dialog_New.cpp
CVS: src/wp/ap/win/ap_Win32Dialog_Options.cpp
CVS: src/wp/ap/win/ap_Win32Dialog_Options.h
CVS: src/wp/ap/win/ap_Win32Dialog_Replace.cpp
CVS: src/wp/ap/win/ap_Win32Dialog_WordCount.cpp
CVS: src/wp/ap/win/ap_Win32Res_DlgNew.rc2
CVS: src/wp/ap/win/ap_Win32Res_DlgOptions.rc2
CVS: src/wp/ap/win/ap_Win32Res_DlgWordCount.rc2
CVS: src/wp/ap/xp/ap_Dialog_Columns.cpp
CVS: src/wp/ap/xp/ap_Dialog_FormatFrame.cpp
CVS: src/wp/ap/xp/ap_Dialog_FormatFrame.h
CVS: src/wp/ap/xp/ap_Dialog_FormatTOC.cpp
CVS: src/wp/ap/xp/ap_Dialog_Lists.cpp
CVS: src/wp/ap/xp/ap_Dialog_New.cpp
CVS: src/wp/ap/xp/ap_Dialog_Options.cpp
CVS: src/wp/ap/xp/ap_Dialog_Options.h
CVS: src/wp/ap/xp/ap_Dialog_Paragraph.h
CVS: src/wp/ap/xp/ap_Dialog_WordCount.cpp
CVS: src/wp/ap/xp/ap_Dialog_WordCount.h
CVS: src/wp/ap/xp/ap_EditMethods.cpp src/wp/ap/xp/ap_LB_Default.cpp
CVS: src/wp/ap/xp/ap_ML_ContextFrame.h
CVS: src/wp/ap/xp/ap_ML_ContextHyperlink.h
CVS: src/wp/ap/xp/ap_Menu_ActionSet.cpp
CVS: src/wp/ap/xp/ap_Menu_Functions.cpp
CVS: src/wp/ap/xp/ap_Menu_Id_List.h
CVS: src/wp/ap/xp/ap_Menu_Layouts_All.h
CVS: src/wp/ap/xp/ap_Menu_Layouts_MainMenu.h
CVS: src/wp/ap/xp/ap_Prefs_SchemeIds.h
CVS: src/wp/ap/xp/ap_Preview_Paragraph.cpp
CVS: src/wp/ap/xp/ap_Preview_Paragraph.h src/wp/ap/xp/ap_Ruler.cpp
CVS: src/wp/ap/xp/ap_String_Id.h src/wp/ap/xp/ap_TopRuler.cpp
CVS: src/wp/impexp/Makefile
CVS: src/wp/impexp/cocoa/ie_impexp_RegisterCocoa.cpp
CVS: src/wp/impexp/unix/GNUmakefile.am src/wp/impexp/unix/Makefile
CVS: src/wp/impexp/unix/ie_impexp_RegisterUnix.cpp
CVS: src/wp/impexp/win/ie_impexp_RegisterWin32.cpp
CVS: src/wp/impexp/xp/GNUmakefile.am src/wp/impexp/xp/Makefile
CVS: src/wp/impexp/xp/ie_FileInfo.cpp
CVS: src/wp/impexp/xp/ie_FileInfo.h
CVS: src/wp/impexp/xp/ie_exp_AbiWord_1.cpp
CVS: src/wp/impexp/xp/ie_exp_HTML.cpp
CVS: src/wp/impexp/xp/ie_exp_HTML.h src/wp/impexp/xp/ie_exp_RTF.cpp
CVS: src/wp/impexp/xp/ie_exp_RTF_listenerGetProps.cpp
CVS: src/wp/impexp/xp/ie_exp_RTF_listenerGetProps.h
CVS: src/wp/impexp/xp/ie_exp_RTF_listenerWriteDoc.cpp
CVS: src/wp/impexp/xp/ie_impGraphic.cpp
CVS: src/wp/impexp/xp/ie_impGraphic.h
CVS: src/wp/impexp/xp/ie_imp_AbiWord_1.cpp
CVS: src/wp/impexp/xp/ie_imp_AbiWord_1.h
CVS: src/wp/impexp/xp/ie_imp_GraphicAsDocument.cpp
CVS: src/wp/impexp/xp/ie_imp_MsWord_97.cpp
CVS: src/wp/impexp/xp/ie_imp_MsWord_97.h
CVS: src/wp/impexp/xp/ie_imp_RTF.cpp src/wp/impexp/xp/ie_imp_RTF.h
CVS: src/wp/impexp/xp/ie_imp_RTFKeywordIDs.h
CVS: src/wp/impexp/xp/ie_imp_RTFKeywords.h
CVS: src/wp/impexp/xp/ie_imp_RTFObjectsAndPicts.cpp
CVS: src/wp/impexp/xp/ie_mailmerge.cpp
CVS: src/wp/impexp/xp/ie_mailmerge.h src/wp/impexp/xp/ie_types.h
CVS: src/wp/main/cocoa/bundle/DOCDocument.icns
CVS: src/wp/main/cocoa/bundle/Info.plist
CVS: src/wp/main/cocoa/bundle/Info.plist.in
CVS: src/wp/main/cocoa/bundle/RTFDocument.icns
CVS: src/wp/main/qnx/GNUmakefile.am src/wp/main/unix/.cvsignore
CVS: src/wp/main/unix/GNUmakefile.am src/wp/main/unix/Makefile
CVS: src/wp/main/unix/gnome/.cvsignore
CVS: src/wp/main/unix/gnome/Makefile src/wp/main/win/Win32Main.rc
CVS: user/wp/strings/am-ET.strings user/wp/strings/ar.strings
CVS: user/wp/strings/be-BY.strings user/wp/strings/br-FR.strings
CVS: user/wp/strings/ca-ES.strings user/wp/strings/cy-GB.strings
CVS: user/wp/strings/de-CH.strings user/wp/strings/de-DE.strings
CVS: user/wp/strings/es-ES.strings user/wp/strings/eu-ES.strings
CVS: user/wp/strings/fi-FI.strings user/wp/strings/fr-FR.strings
CVS: user/wp/strings/gl-ES.strings user/wp/strings/it-IT.strings
CVS: user/wp/strings/ja-JP.strings user/wp/strings/jbo.strings
CVS: user/wp/strings/lv-LV.strings user/wp/strings/ms-MY.strings
CVS: user/wp/strings/nl-NL.strings user/wp/strings/pl-PL.strings
CVS: user/wp/strings/ro-RO.strings user/wp/strings/sc-IT.strings
CVS: user/wp/strings/sq-AL.strings user/wp/strings/sr.strings
CVS: user/wp/strings/tr-TR.strings user/wp/strings/uk-UA.strings
CVS: user/wp/strings/vi-VN.strings user/wp/strings/zh-CN.strings
CVS: Added Files:
CVS: Tag: JMM-DOUBLEGRAPHICS-1
CVS: Doxyfile docs/AbiWord_UnitTest.abw po/mg-MG.po
CVS: src/af/gr/unix/gr_UnixPangoGraphics.cpp
CVS: src/af/gr/unix/gr_UnixPangoGraphics.h
CVS: src/af/gr/xp/gr_EmbedManager.cpp
CVS: src/af/gr/xp/gr_EmbedManager.h src/af/util/unix/ut_unixMisc.h
CVS: src/af/xap/cocoa/xap_CocoaWidget.h
CVS: src/af/xap/cocoa/xap_CocoaWidget.mm
CVS: src/af/xap/unix/xap_UnixWidget.cpp
CVS: src/af/xap/unix/xap_UnixWidget.h
CVS: src/af/xap/xp/xap_ModuleFactory.h src/af/xap/xp/xap_Widget.h
CVS: src/pkg/win/setup/DictionaryBrazilian.nsi
CVS: src/pkg/win/setup/DictionaryFinnish.nsi
CVS: src/pkg/win/setup/DictionaryHungarian.nsi
CVS: src/pkg/win/setup/DictionaryMLatin.nsi
CVS: src/pkg/win/setup/DictionarySardinian.nsi
CVS: src/pkg/win/setup/DictionarySlovak.nsi
CVS: src/pkg/win/setup/DictionarySlovensko.nsi
CVS: src/pkg/win/setup/DictionarySwiss.nsi
CVS: src/pkg/win/setup/DictionaryUkrainian.nsi
CVS: src/text/fmt/xp/fp_MathRun.cpp src/text/fmt/xp/fp_MathRun.h
CVS: src/text/fmt/xp/fv_InlineImage.cpp
CVS: src/text/fmt/xp/fv_InlineImage.h
CVS: src/text/ptbl/xp/pd_XyDiff.cpp src/text/ptbl/xp/pd_XyDiff.h
CVS: src/wp/ap/cocoa/ap_CocoaPlugin.h
CVS: src/wp/ap/cocoa/ap_CocoaPlugin.mm
CVS: src/wp/ap/unix/ap_UnixDialog_Goto.glade
CVS: src/wp/ap/unix/ap_UnixDialog_Spell.glade
CVS: src/wp/ap/xp/ap_ML_ContextPosObject.h src/wp/ap/xp/margin.png
CVS: src/wp/impexp/unix/ie_impGraphic_GdkPixbuf.cpp
CVS: src/wp/impexp/unix/ie_impGraphic_GdkPixbuf.h
CVS: src/wp/impexp/xp/ie_TOC.cpp src/wp/impexp/xp/ie_TOC.h
CVS: src/wp/main/cocoa/bundle/Cursor_Compass.png
CVS: src/wp/main/cocoa/bundle/Cursor_Crosshair.png
CVS: src/wp/main/cocoa/bundle/Cursor_DownArrow.png
CVS: src/wp/main/cocoa/bundle/Cursor_E.png
CVS: src/wp/main/cocoa/bundle/Cursor_Exchange.png
CVS: src/wp/main/cocoa/bundle/Cursor_HandPointer.png
CVS: src/wp/main/cocoa/bundle/Cursor_LeftArrow.png
CVS: src/wp/main/cocoa/bundle/Cursor_N.png
CVS: src/wp/main/cocoa/bundle/Cursor_NE.png
CVS: src/wp/main/cocoa/bundle/Cursor_NW.png
CVS: src/wp/main/cocoa/bundle/Cursor_RightArrow.png
CVS: src/wp/main/cocoa/bundle/Cursor_S.png
CVS: src/wp/main/cocoa/bundle/Cursor_SE.png
CVS: src/wp/main/cocoa/bundle/Cursor_SW.png
CVS: src/wp/main/cocoa/bundle/Cursor_W.png
CVS: src/wp/main/cocoa/bundle/Cursor_Wait.png
CVS: src/wp/main/cocoa/bundle/HTMDocument.icns
CVS: src/wp/main/cocoa/bundle/SDWDocument.icns
CVS: src/wp/main/cocoa/bundle/SXWDocument.icns
CVS: src/wp/main/cocoa/bundle/TXTDocument.icns
CVS: src/wp/main/cocoa/bundle/WPDDocument.icns
CVS: user/wp/strings/mg-MG.strings
CVS: Removed Files:
CVS: Tag: JMM-DOUBLEGRAPHICS-1
CVS: regtest/.cvsignore regtest/conversion_tests.py
CVS: regtest/regtest.py regtest/simple.abw regtest/simple.html.goal
CVS: regtest/simple.rtf.goal regtest/testcase.py src/.doxygen.cfg
CVS: src/af/ev/xp/Makefile.mpw src/af/gr/xp/Makefile.mpw
CVS: src/af/util/xp/Makefile.mpw src/af/util/xp/ut_spi.cpp
CVS: src/af/util/xp/ut_spi.h
CVS: src/af/xap/unix/xap_UnixGtkColorPicker.c
CVS: src/af/xap/unix/xap_UnixGtkColorPicker.h
CVS: src/af/xap/xp/Makefile.mpw src/af/xap/xp/xap_Spider.cpp
CVS: src/af/xap/xp/xap_Spider.h src/config/abi_defs.mk.mpw
CVS: src/config/abi_rules.mk.mpw src/other/spell/xp/Makefile.mpw
CVS: src/pkg/win/setup/NSISv2/abi_lng_Albanian.nsh
CVS: src/pkg/win/setup/NSISv2/abi_lng_Arabic.nsh
CVS: src/pkg/win/setup/NSISv2/abi_lng_Bulgarian.nsh
CVS: src/pkg/win/setup/NSISv2/abi_lng_Catalan.nsh
CVS: src/pkg/win/setup/NSISv2/abi_lng_Croatian.nsh
CVS: src/pkg/win/setup/NSISv2/abi_lng_Czech.nsh
CVS: src/pkg/win/setup/NSISv2/abi_lng_Danish.nsh
CVS: src/pkg/win/setup/NSISv2/abi_lng_Dutch.nsh
CVS: src/pkg/win/setup/NSISv2/abi_lng_English.nsh
CVS: src/pkg/win/setup/NSISv2/abi_lng_Estonian.nsh
CVS: src/pkg/win/setup/NSISv2/abi_lng_Farsi.nsh
CVS: src/pkg/win/setup/NSISv2/abi_lng_Finnish.nsh
CVS: src/pkg/win/setup/NSISv2/abi_lng_French.nsh
CVS: src/pkg/win/setup/NSISv2/abi_lng_German.nsh
CVS: src/pkg/win/setup/NSISv2/abi_lng_Greek.nsh
CVS: src/pkg/win/setup/NSISv2/abi_lng_Hebrew.nsh
CVS: src/pkg/win/setup/NSISv2/abi_lng_Hungarian.nsh
CVS: src/pkg/win/setup/NSISv2/abi_lng_Italian.nsh
CVS: src/pkg/win/setup/NSISv2/abi_lng_Japanese.nsh
CVS: src/pkg/win/setup/NSISv2/abi_lng_Korean.nsh
CVS: src/pkg/win/setup/NSISv2/abi_lng_Lithuanian.nsh
CVS: src/pkg/win/setup/NSISv2/abi_lng_Macedonian.nsh
CVS: src/pkg/win/setup/NSISv2/abi_lng_Norwegian.nsh
CVS: src/pkg/win/setup/NSISv2/abi_lng_Polish.nsh
CVS: src/pkg/win/setup/NSISv2/abi_lng_Portuguese.nsh
CVS: src/pkg/win/setup/NSISv2/abi_lng_PortugueseBR.nsh
CVS: src/pkg/win/setup/NSISv2/abi_lng_Romanian.nsh
CVS: src/pkg/win/setup/NSISv2/abi_lng_Russian.nsh
CVS: src/pkg/win/setup/NSISv2/abi_lng_Serbian.nsh
CVS: src/pkg/win/setup/NSISv2/abi_lng_SimpChinese.nsh
CVS: src/pkg/win/setup/NSISv2/abi_lng_Slovak.nsh
CVS: src/pkg/win/setup/NSISv2/abi_lng_Slovenian.nsh
CVS: src/pkg/win/setup/NSISv2/abi_lng_Spanish.nsh
CVS: src/pkg/win/setup/NSISv2/abi_lng_Swedish.nsh
CVS: src/pkg/win/setup/NSISv2/abi_lng_Thai.nsh
CVS: src/pkg/win/setup/NSISv2/abi_lng_TradChinese.nsh
CVS: src/pkg/win/setup/NSISv2/abi_lng_Turkish.nsh
CVS: src/pkg/win/setup/NSISv2/abi_lng_Ukrainian.nsh
CVS: src/text/fmt/xp/Makefile.mpw src/text/ptbl/xp/Makefile.mpw
CVS: src/wp/ap/xp/Makefile.mpw src/wp/impexp/xp/Makefile.mpw
CVS: src/wp/main/xp/Makefile.mpw
CVS:
----------------------------------------------------------------------
Successful Debugging!
I had an intense debugging session today and got tight wrapped objects for AbiWord working well enough to commit.
Screenshot with a tightly wrapped object.
http://www.ph.unimelb.edu.au/~msevior/abiword/TightWrapSS.png
Screenshot with a square wrapped object.
http://www.ph.unimelb.edu.au/~msevior/abiword/SquareWrapSS.png
Thats about 3 weeks from the idea to implementation. I love writing software :-)
In Japan
I arrived in Japan today. It is cold and snowy which is quite a contrast from the extremely pleasant Melbourne late summer.
I bought a couple of toys at the Duty Free shop at the airport. One is a new set of headphones. These suck. They don't stay in my ears :-(
The other toy was a little Belkin FM transmitter. You plug this into any audio source like an MP3 player or a laptop and you can play your music through a high quality FM receiver. This works really well. I finally get good bass from my laptop and I can control the volume right from my desktop.
I'll try it from my MP3 player and through the car FM receiver later.
I have this thing about disconnected remote control. I find it very cool to change the volume on my computer and get an instant response out of my FM receiver in a totally different room.
AbiWord and Grammar checking.
I finally got the grammar squiggle code working as I'd like it. I really do find this useful because I'm such a bad typist. There is still a fair bit to do.
We need to come with some heuristics to determine whether paragraphs need to be grammar checked. Almost all headings are incorrect sentences. It is silly to grammar-check them as they almost always get squiggled.
While in principle I can see how to make link-grammar provide corrections to a sentence, I can see that it will be a long-term project. I hope we can grow a community of people interested in natural language parsing to work on it. It seems quite possible to extend it to other languages as well. The project needs experts in native language grammar.
My next big feature for AbiWord will be tight wrapped positioned images. I have most of the code written. It now needs to be debugged.
AbiWord and Gnumeric will be moved to FC-Extras for FC-4. It's pretty disappointing since AbiWord-2.2 really does provide a whole extra level of user-friendliness not found in other competing products anywhere. Gnumeric is the best Spreadsheet on the planet and far better than OOo.
We seem to have been pushed out by a whole slew of server-side stuff. I guess it's clear where RedHat sees it's future.
I hope we can find maintainers for FC-Extras. I guess it's time to start looking for a new distro for me, family and friends.
Debian has totally taken over what used to be a RedHat Workplace here so something like Ubuntu is looking good.
AbiWord - Plugins.
I've been hacking on some really cool plugins for AbiWord. These are now maturing enough to become useful though they're still very alpha.
The first is a plugin framework to allow arbitrary content to be rendered in AbiWord. I have a document describing this that I'm working on. I haven't finished the document because I keep tweaking the interface.
The first application of the framework is a plugin to use Luca Padovani's GtkMathView to render maths inside AbiWord. Luca and I worked out how to draw MathML into AbiWord at last years GUADEC. However by placing the code inside the new plugin framework we can move the code to CVS HEAD while allowing those platforms unfortunate enough to to not have GtkMathView to build and develop. The works really well and fully utilizes the AbiWord and GtkMathView abstract graphics and font classes to draw and print directly into an AbiWord document. Furthermore, the framework can make png snapshots of itself so that the AbiWord document with the maths can be viewed without the plugin. This is great for backward compatibility or for platforms that don't support GtkMathView.
Despite the name, the build of GtkMathView that we use does not need GTK and is in principle totally portable. In practice this hasn't happened yet. We need Windows and OSX developers to port it.
While GtkMathView is an awesome piece of code, it is not complete. It needs quite a bit more work to be production ready and it's editor needs to be fully implemented.. At the moment all we can do is insert MathML into a document. We can't create it on the fly.
While this is the first application of the framework it is by no means the last. I think we can use the code to enable arbitary rendering of content within AbiWord. So we can embed gnumeric documents, postscript, pdfs and maybe even the netscape plugins. We'll see.
The other cool plugin is for grammar checking. Last year I created a new type of plugin based on notifications. These work by having AbiWord broadcast notifications to plugins that "listen". I used this send the text in each paragraph to the excellent link-grammar grammar checker. Dom wrote a great auto-enabled build system for the code and now we have automatic English grammar checking in AbiWord. It seems to work really well!
Dom has already posted one screenshot, here is another showing some nice maths too :-)
We got an interesting email from Michel Strasser on using remote filters to do AbiWord document conversion with a particular example of using AbiWord to design websites.
See http://thebirdslake.free.fr/Abiword/index.htm
I think this is a very interesting idea particularly for CMS.
His example is really impressive. Click through and give it a try!
FOAF updates: Trust rankings are now exported, making the data available to other users and websites. An external FOAF URI has been added, allowing users to link to an additional FOAF file.
Keep up with the latest Advogato features by reading the Advogato status blog.
If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!