I’ve been working on some Chinese extensions for OO but at every step of the way I have to fight with obscure documentation and really strange design decisions. Here’s the latest example. Want to display an image in a dialog? We’re not talking about anything fancy here but just one single image which remains static. There’s nothing dynamic about this. So can you just put in the relative path in the dlg:src parameter which indicates where the image lives (e.g. dlg:src=”../image.jpg”)? No way! That would be way too simple and would violate the spirit of OO which is “why make things simple when you can make them complicated”. Instead you have to create two additional XML files to tell Open Office where to find the image in your extension and then at run time you have to query Open Office to find where the image really lives and load it into your dialog. Yay! The reason for this is that you do not know ahead of time where your extension is going to reside on disk. You’d think a relative path would be rock solid because it is relative to where your extension is located, but no: that does not work. You have to file extra paperwork with Open Office to declare the existence of the images.
(I searched through the dialog files bundled with Open Office to see if I could find something useful in there but what I found were paths like “file://D:/…”. Ooops, I guess even the Open Office developers are having a hard time keeping their paths portable.)
And this is just the latest in a loooooooooooooooooooong series of grievances. Here’s a new motto: “you don’t know the meaning of bondage-and-discipline programing until you’ve tried to write extensions for Open Office.” Open Office is like a bureaucrat: you can’t do anything without filing multiple forms to announce what you want to do and justify it.