How to add new cursors in OOo4Kids (Windows, Linux,Mac OS X)

Added a new entry in
the OOo4Kids wiki:
How to add a new cursor in OOo4Kids (basically the same as adding one in
OpenOffice.org of course ;-)
Everything comes from notes I took during the implementation, and the translation in other locales will follow soon.
Any help and contribution is welcome : feel free to add information, and help us to improve ! """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Education Project on the wiki EducOO.org blog (french) OOo4Kids Many thanks to
Ben Bois , author of the EducOOo Logo
Libellés : devel, development, High Tech, OOo4Kids, OpenOffice, Teaching OpenSource
OOo4Kids 0.9 is available for download
EducOOo and the
OpenOffice.org Education Project are proud to announce
OOo4Kids 0.9 is out.
Click the link to download OOo4Kids You'll find the following versions (de, es, en-US, fi, fr, it, nl, pt, zh-CN):
* Windows XP ( SP3 or superior)
* Mac OS 10.4 or superiior (PowerPC and Intel),
* Linux 32 and 64 bits ( as archive containing .deb)
=>
+ Don't forget the Portable OOo4Kids for Windows ! -
the changelog is continuously updated there :
http://wiki.ooo4kids.org/index.php/Changelogs
To summarize, the
The latest essential changes
between 0.8 and 0.9 are :
English :
* OOo4Kids is now
localized in Finnish* Integrated sound and movies on Windows (DirectX), Mac(QuickTime) on Linux (gstreamer) with Impress. Thanks to
Novell, Radek Doulik and Cedric Bosdonnat for the gstreamer part (Linux).
*
User's preferences are now password protected. (
prof is the default password)
* Impress Annotations mode during a presentation : color, and size of the pen can now be modified, backup'ed erased. Thanks to the students of
Ecole Centrale Nantes and Thorsten Behrens for their work (eraser1 cws)
*
Impress 3D OpenGL transitions (Mac OS X only)
*
big size arrow cursor ( Mac OS X only)
*
Debian .deb archive on Linux (expérimental)
* (Linux) OOo4Kids and all other applications do now appear in the main menu
*
New Open and save icons( thanks to
Ben Bois) replaced old Crystal theme applications icons with the OOo4Kids one
(some bugfixes .. )
In préparation :
-
big cursors on Windows and Linux,
new eraser and pen cursors (bigger) with Impress, in annotations mode.
-
Puppy Linux version (very soon)
-
Linux Gdium version (build currently broken)
Note: we do not provide yet .rpm archive, but depending on the demand, we'll put one experimental .rpm archive online very soon ( Suse, RedHat and Mandriva compatible)
Anybody willing to prepare .rpm should be able to build OOo4Kids for those distributions witout any big probleme. Thanks to contact us for further information (
IRC : #ooo4kids , server : irc.freenode.net )
French :
* OOo4Kids est
maintenant proposé en Finlandais*
Son intégré sous Windows (DirectX), Mac(QuickTime) et Linux (gstreamer) avec Impress. Merci à
Novell, Radek Doulik and Cedric Bosdonnat pour le code relatif à gstreamer (Linux).
*
Préférences Utilisateur protégées par mot de passe. (
prof est le mot de passe par défaut )
* Annotations, couleur, taille stylo pouvant être modifiées, sauvegardées, gommées pendant une présentation (Impress)
*
Transitions 3D OpenGL (Impress, Mac OS X)
*
Curseur de grande taille ( Mac OS X seulement)
*
Archive .deb pour Debian sous Linux (expérimental)
* (Linux) OOo4Kids et toutes les applications apparaissent dans le menu principal
En préparation :
-
gros curseurs sous Windows et Linux,
nouveaux curseur gomme et stylo (plus gros ) avec Impress, en mode annotations
-
version Toutou Linux (prochainement)
-
version Linux Gdium (compilation actuellement cassée)
Note: nous ne fournissons pas encore d'archive de type .rpm faute de volontaires et de ressources, mais en fonction de la demande, nous mettrons une version experimentale en ligne prochainement. Toute personne souhaitant preparer des .rpm ( Mandriva, Red Hat ) devrait pouvoir créer ces archives sans problème.
Merci de nous contacter (
IRC : #ooo4kids , serveur : irc.freenode.net).
---------------------
If you want to help us, to find resource and contribute back to improve OpenOffice.org, via the OpenOffice.org Education Project,
donations are welcome OOo4Kids is
made for Educational purpose, has been thought to work with students, making them discover OpenOffice.org source code, without constraints, but just code, and having Fun.The promise is, when the code is good enough, it will be proposed for integration into OpenOffice.org.
OOo4Kids is a 7-12 years children Office suite, based on OpenOffice.org ( http://www.openoffice.org ) source code. This means OpenOffice.org has some features OOo4Kids has not (like Base and Java). And if you need those features, please use OpenOffice.org, that you can download at :
Download OpenOffice.org. Please do not forget that the software is provided as it, and that you will use it at your own risks. Do not forget to do a backup either.
Libellés : Debian, development, High Tech, Mandriva, OOo4Kids, OpenGL, OpenOffice, Portable OOo4Kids, Teaching OpenSource
Recent OOo4Kids progress

Reading the
OOo4Kids recent changelogs, I see
Thomas and
Abdel did serious progress with the
OOo4Kids Sugarization !
Glad to see serious and brillant students contributing !! For the one who did not understand, OOo4Kids is a
product of the Education Project: everything we implement in OOo4Kids is something we can teach, and explain to the students. As you can see, more time goes and more we can change things, and this brings a real motivation to them.
From my side, I continued to work at the
new Writer assistant for OOo4Kids. Last thing I did was to define a value for the
SID_NEW_SW slot ID. Better read
the cookbook.
To be continued."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Education Project on the wiki EducOO.org blog (french) OOo4Kids ProjectMany thanks to
Ben Bois , author of the
EducOOo logo, dedicated to the OpenOffice.org Education Project
...
Libellés : development, High Tech, OOo4Kids, OpenOffice, Sugar, XO
Probably no OOoCon 2009 for Education Project
Looking at the
current donations , an estimating the need to 600 euros (not to become rich, but just to pay travel + accomodations),
I will very probably not attend the OOoCon 2009. Final decision to come soon.
Two présentations were scheduled (see
Conference Schedule) :
- Present the Education Project
- OOo4Kids
Thanks anyway to all one who donated an maybe see you another time :)Libellés : development, OOo4Kids, OOoCon, OpenOffice
Education Project meeting: log available

Was IRC meeting today, for the
Education Project. We mostly welcomed new students, and made a point about the work in progress. I have seen some new nicknames on the channel :-)
Next week, we'll try to propose a list of ClassRooms.As usual the log is available on the wiki : the logNext meeting is scheduled the 22nd October, same hour. See you !!"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Education Project on the wiki EducOO.org blog (french) OOo4Kids ProjectMany thanks to
Ben Bois , author of the
EducOOo logo, dedicated to the OpenOffice.org Education Project
...
Libellés : devel, development, Education Project, High-Tech, OOo4Kids, OpenOffice, Teaching OpenSource
OOo4Kids call for donation
You appreciate OOo4Kids or any action the Education project does ?
So now, you have no excuse to not help us :)For that,
Ben Bois did yet another great thing, and added a
donate link on the
download websiteOther nice feature ... look at the thermometer on left ;) 
The money will help us to found other actions, and more, to really create a bridge between
OpenOffice.org Project and the Education
Thanks a lot to all the donators !! """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Education Project on the wiki EducOO.org blog (french) OOo4Kids ProjectMany thanks to
Ben Bois , author of the
EducOOo logo, dedicated to the OpenOffice.org Education Project
...
Libellés : development, Education Project, experimental, fun, High Tech, OOo4Kids, OpenOffice
User Level in prefs : completed :)
Glad to say that the feature is now fully implemented, and works (uff). Means there is an UserLevel field in the Common.cxu, initialized to "Beginner" and we can change that. The changes are immediate, and will conditionnate the behavior of some features ( in fact, looks like the possibilities are enormous, and I'll write a list of what can be changed with that :)
What is good, is I had to learn a lot of things, to implement this tiny feature, but the best piece was the config manager... ufff .. not trivial.
The code is documented on the
User Level wiki page. Feel free to contact me if you are interested to use it ;-)
Just wondering : does it worth to present a ClassRoom about that ? Please contact me if you think it does worth it
Last but not least, I'd like to say thank you to
Eike Rathke, Thorsten Behrens and Cedric Bosdonnat who helped me (either advices or links, or even suggestions).
Libellés : development, High Tech, OOo4Kids, OpenOffice, Teaching OpenSource
User Level in the preferences (OOo4Kids, experimental)
I started to work on the
"User Level" today (that's not finished yet). That's just a little feature, who will complete the password protected preferences, to avoid children doing something they do not understand.
The scenario is extremely simple :
* the prof enters the password (not yet implemented)
* once validated, he can access to the prefs, and change the settings.
*
3 possibilities :
Beginner, Average or ExpertAs shown in the screenshot below :

Once the user's level defined (default will be beginner), the behavior of
OOo4Kids will be defined too. The idea is to have a consistent behavior when one level is choosen.
e.g. on Calc, the number of the functions who appear in the list, depend on the level. Say :
8 functions for beginner, 40 for average, and all ( more than 100) for expert.
We can imagine a lot of other features who could depend on that, to allow more soupleness with
OOo4Kids.
Last but not least, thank you to
Eike Rathke, who provided me precious advices with Calc.
Libellés : development, Education Project, High Tech, OOo4Kids, OpenOffice
More about the public release of OOo4Kids
To make things clear, after we announced we'll use the GPL V2, we finaly changed for the LGPL v3.
Below, the content of the mails sent to the Project Leads mailing list (copy of the mail), just the URL for download has been hidden)
""""""""""""""""""""" Quote """"""""""""""""""""""""""""""
Hi,
Our new server is close to be ready for a public development version, but before to announce, I'd like to be sure nothing is wrong (of course, we'll will correct it asap if so)
I know Sun trademarked a lot of things, and we'd like whether there is something wrong with the current versions of OOo4Kids.
The license we finally choosen for the code is the LGPL v3, respecting Martin Hollmichel suggestion. The repository is not created, but will probably be soon : still waiting for Martin answer, to create a dedicated branch, but without the need to use the SCA ( OOo4Kids is not Sun trademarked, but EducOOo, a non profit association )
Additionaly to our own information, we will add, at a visible place, on the download page :
- OpenOffice.org website and a link for download OpenOffice.org source code
- a word explaining this is a development version, intended to work with students around OpenOffice.org, for pedagogical reasons, and who has not all the features OpenOffice.org has
- an invitation to use OpenOffice.org for the one who want to use Base or anything using Java
For the one interested to test, I have put versions of OOo4Kids 0.5pre on the following server : http://wwwwwwwwwwwwwwwwwwwww/ ( openoffice -> OOo4Kids ). Please note this server will be deprecated soon.
Available :
- Windows,
- Mac OS X (Intel and Power PC)
- Linux Intel (Mips -gdium version- and PowerPC will come soon)
Thanks in advance to confirm nothing is wrong, or to explain us what we still have to modify, to respect OpenOffice.org Project.
Eric Bachard
Lead,
OpenOffice.org Education Project
""""""""""""""""" End Quotel """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
--
Education Project: http://wiki.services.openoffice.org/wiki/Education_Project
Projet OOo4Kids : http://wiki.ooo4kids.org/index.php/Main_Page
L'association EducOOo : http://www.educoo.org
Blog : http://eric.bachard.free.fr/news
Libellés : development, OOo4Kids, OpenOffice
How to change applications icons in OOo ...
1) Watch them all. They mostly are located in default_images/svx default_images/framework, setup_native/source/win32/nsis , default_images/res, and in sysui/source/desktop/icons and some other place I could have missed there.
2) localize them exactly, e.g. using The Gimp on Linux, Apercu on Mac , don't remember what tool I used on Windows, maybe it was automatic.
3) rename all the one who can cause issue with what you want to achieve
4) build OOo. e.g. trunk can be a good choice, if you want to test the new localization scheme
Note: trunk means the current milestone, means the to-be-DEV300_m51
5) Missing icons (i.e. renamed icons) will make the build break. This is normal, and every time the build breaks,
you'll have to modify all the code calling the missing icons at buildtime (e.g. using ifdef YOUR_VARIABLE or whatever other hack), and to add your icon(s) with their new own icon names (the one you introduced in the code instead), all at the original place.
6) verify both old icons and the new one can live together at builtime, and that you can build both on all OS's
7) continue with all modules until the build ends. Think to take some coffee, this might be a long process.
And if you are serious, you'll have something correct at the end :-)
Nothing is perfect and you probably missed some at the begining. So, if you forgot some, repeat the process until you no longer see old application icons.
Be carefull, the image formats are different on every platform, and all builds are mandatorySimple, isn't it ?
[Upgrade] : looks like we have lot of unused icons in OOo. Will remove them per see :)
Libellés : development, EducOOo, hacks, High Tech, OOo4Kids
New Application Icon for OOo4Kids :)
My children like it already :)
Thanks (again !) to Ben Bois, doing most of the new Design for OOo4Kids=> Further information on
OOo4Kids wikiTo be continued ...Libellés : BenBois, Design, devel, development, Education Project, EducOOo, High Tech, OOo4Kids, OpenOffice
About the number of developers contributing to OpenOffice.org (again)
Back from FOSDEM (I'll write a word asap about it), I tried to see what happened in meantime, mainly what was committed in OOo tree.
If you remember my previous blog entry ( see
this link ), I wrote it was very easy to retrieve the most recent information, and have the number of people who commited code in some cws, for OpenOffice.org Project.
The magic link was:
CIA.vc server Now it is no longer possible, because
the stack of the recent commiters, including the sum,
disappeared.
I ignore what happened, and who did that, but that's clearly a
big regression for me, and yet another hidden information, who should be publicaly available.
Indeed, we now are in the situation where we:
- just see the (20 ?) most recent commits, nothing else
- have no idea on the number of contributors since we use svn
- cannot extract the exact content of a commit, and who did what in a cws (at least this is not as easy as it was using Bonsai, where we could even watch everything online).
I have contacted the owner of CIA.vc. Maybe he will explain me some tip, or how to proceed, to retrieve the values, and maybe more.
Libellés : Code, development, High-Tech, number of OOo devs OpenOffice
Discovering OpenSolaris and OOo build on it :)
Working with Frank Schoenheit and Pierre Pasteau on the moz2seamonkey01 cws, we had no proof our changes are ok on Solaris. The best I could do was to install OpenSolaris on a AMD XP4000+ / 3BG of RAM machine. After some garbage (I'm discovering this strange OS), I finally understood how to install -sort of- development environment.
And after some little changes I'll commit soon, I was even able to build seamonkey.1.1.13 zipped archives on OpenSolaris :-)
No hack, just trying to fix issue after issue, and I'm done.
The wiki is down, but I created a new task for students: build OOo on OpenSolaris. I think this is a difficult task, and it worth a try and a serious effort. I contacted
Christian Lins, who started the effort some times ago, but if you are interested or want to give me some advice, feel free to contact me :)
To be continued (after FOSDEM ) P.S. : the wiki is down, but I put some stuff
thereLibellés : development, High Tech, OpenOffice, OpenSolaris, Teaching OpenSource
work in progress
Since appleremote02 is ready for QA, I can concentrate me again on the
3D transitions with Impress , and more precisely, on the flicker. But not only. In fact, tracing the apleremote02 thing, I found other issues: the rectangle used for the OpenGL view is not constant (sometimes includes the lateral toolbars .. ) or there is -sort of- clipping issues. But I have some ideas.
Other interesting work in progress : build
AbiWord on Mac. I'll have some work, but can be extremely interesting for a lot of reasons.
This evening, was a pleasure to see several students attend the #education.openoffice.org channel, working together on the Impress improvement too ( see
issue 97972 ). We will have a meeting soon (on monday probably).
Libellés : AbiWord, development, OpenGL, OpenOffice
appleremote02 (part6)
Time for code review, last step for the cws before to be ready for QA.
Philipp Lohmann agreed the changes in vcl ( and thus, the corresponding changes in apple_remote module)
Several problems had to be fixed :
*
Christian Lippka suggested the use of MEDIA_COMMAND_VOLUME (UP and DOWN ) had to be changed, for other OS than Mac OS S X [fixed]
* protect the popup menu case [fixed]
*
Andre Fischer asked about the eventlistener [partially fixed]: is not exactly at the right place, because I add the eventlistener at the end of GetState(SfxItemSet&) method, and this would result in multiple calls to Application::AddEventListener(const Link&). The Application class stores event listeners in a list, not in a set, and thus, more than one eventlistener may be registered for a single SdModule object. Fortunaly, when the (one) listener is removed in ~SdModule the Application::RemoveEventListener(const Link&) removes all listeners (that's what I verified using leaks on Mac)
The possible solutions :
Add the listener directly in the SdModule Ctor : Does not work (maybe my fault), because this leads to a sort of chicken-egg problem, and after some tests, it seems to be unbuildable ( I gve up with that).
Philipp proposed a solution I tested already, based on a singleton pattern [done, works already]
Investigating on another more complicated, but elegant solution Andre proposed. the idea is to create a static Create() method for SdModule, that creates and initializes an SdModule object.
This needs to make the constructor private (no side effects ?) and finally to have SdDLL::Init() calling this new Create() method. Work in progress ...
A big thank you for the code review, and for the time they spend helping me to
Andre Fischer,
Christian Lippka, Philipp Lohmann and
Thorsten Behrens ( kindly answering my questions on the #education.openoffice.org channel)
Libellés : Apple, development, High-Tech, Mac OS X, Teaching OpenSource
About the (real) number of developers contributing to OpenOffice.org source code
Since we switched to svn this is really easy to obtain the number of regular OOo contributors. Means for source code, not for anything else.
Before, the best resource we had was
Bonsai. e.g. you can easely retrieve all the contributions of someone, or the exact content of a cws. Just fill in correctly the right fields and all the information concerning the commit before svn appear.
Sort of "memory of OOo" :-)Now, just look at :
CIA vc and you're done.
.. and the result is: the current number of nicks is 77 known people (at least one commit ... ) who wrote code for OpenOffice.org the last two months ... and not 200 like I read on some blog :-/
As example, the
Education Project attracted
4 new developers*** (able to create their own cws's and commit). Of course, they still need to learn a lot, and the next steps are : how to integrate code.
***Not that bad ;-) (I'll wrote more about that very soon)
Last, there is a remaining issue : I still don't know how to make appear all the changes people commited in a given cws, and more annoying, how to read just every diffs, like Bonsai allows us to do (please contact me if I missed something about that :) ). Of course, I can extract all the changes in a given cws, and navigate in te cws tree ( using
this link, but that's not the most efficient (imho).
I'm confident, there is probably a tool in preparation. Crossing the Fingers ;-)
Update:
About the coming month, we expect to see 6 new students from Ecole Centrale Nantes ( look at
Improve the OOo Impress), and 3 students from UTBM, working on the OpenGL transitions. No information from Seneca College, and students from this school, joining the project.
To be continued :)---------------------------------------
Donate to Education Project---------------------------------------
Libellés : Code, development, High-Tech, OpenOffice
appleremote03 (part1)
Since everything work with appleremote02, I think the last remaining changes for this cws will be about :
- remove the eventlistener (e.g. when closing the document)
- avoid leaks (to be confirmed)
- test on other ports (Windows)
Started working on
appleremote03 : implement the contextual menus with the remote.Done :
* catch all the remote event, and turn them into the right MEDIA_COMMAND
* found where in the code, is treated the contextual menu entries with mouse events or the keyboard
Work in progress : design the new implementation
Todo :
* create the new case, means when in fullscreen, and one popup menu is open, specificly for the remote events
* create one callback for any catched remote events
* write separated tests for every part
* write the code
* test
Libellés : aqua, Code, development, High-Tech, OpenOffice
appleremote02 (part 5)
"Play" works :-)After searching the entire week (in my free time, mostly late in the evening), I finally found a way to fix the issue I mentionned in the previous entry (
appleremote02 part 4), ... and I finally get it working :-)
Of course, the changes I commited today are maybe not the best one, and I'm waiting for opinion(s), one people who accepts to QA my code, and maybe tell me whether something is wrong.
How does it work ?When opening a presentation (in static mode) in Impress, it means we use Draw with another GUI. Our issue was, no event listener was running, and thus, the events sent through vcl ( kRemote* turned into MEDIA_COMMAND_something ) get lost. Just because the eventlistener only exists when Impress is in presentation mode. The idea was:
implement a new event listener in sd, but more early, means in static mode, to be able to catch the "Play" event, the last one who was not working.
But what do exactly, and where ?
The only way I found to understand was to ask on IRC, and read the code (if you know better, please tell me). I firstly tried in sd/source/ui/unoidl, but it was not correct, and following the advice from Thorsten, I tried in sd/source/ui/app. Probably not perfect, but at least it works.
Everything is based on the use of macros (at preprocessor step). Following the existing example previously studied in slideshowimpl.cxx, I had to :
1) add a
DECL_LINK() in the header, to declare a member function in a class that acts as a handler2)
set a handler using the LINK macro : after searching a while. I have choosen to use the sd/source/ui/app/sdmod1.cxx, in getState(), where a lot of things are initialized. The first choice was to set it in sd/source/ui/unoidl/unomodel.cxx, but the choice was probably wrong (at least too complicated), because I had no easy way to retrieve the frame and the shellview.
The LINK() adds the event listener.3)
Set an LINK_IMPL() acting as - sort of - "Callback", with the parameters passed in arguments by LINK().
The
IMPL_LINK is the place where I put what do of the event. For instance, check, first whether we have sd running in Impress mode (the other mode is Draw mode), second whether there is a frame containing the presentation, and is focused .. and so on.
4) the most simple was to remove the previous hack to switch at runtime (using environment variables) between use F5 or not. Now, only the right way is used, of course.
Note: in sdmod1.cxx, I firstly believed I could factorize more the code, and this bad idea caused me a lot of pretty crashes before I understood I had two steps at some places, instead of only one. Until now, with the current status of appleremote02, no crash occured.
Other fixed items :- did some modifications in the wiki page about
Apple Remote Implementation- commited the changes in the appleremote02 cws
Conclusions: I spent a lot of times on that, but I think I understood an important information in OpenOffice.org source code with the DECL() , LINK, LINK_IMPL() mechanism (that's why I try to describe it). Indeed, the scanner does use a similar mechanism, and I know have 90% of the information for the Image Capture implementation, that
Valentin Janiaut started some times ago. Another good thing, is the entire changes, if accepted, are really portable : the first side effect will indeed be,
it will work on Windows too !!Last but not least: who helped me there ?
As usual
Philipp Lohmann (for important theorical points**),
Thorsten Behrens (for his great Impress knowledge) and
Jonathan Winandy (from the Centrale Nantes Team) who agreed to build appleremote02 on Leopard on monday (and do some little tests), to confirm there is no obvious problem.
**e.g. Philipp confirmed me, that two event listeners can run together without clash, what I was not sure at all.
To do : - code cleanup (remove some debug extra stuff e.g.)
- improve : add a removeEventListener somewhere ?
- track leaks ?
- build a clean set, based on appleremote02
- upload it and ask people for tests
- ask for other tests in Windows and Linux ?
Libellés : aqua, Code, development, High-Tech, OpenOffice, Teaching OpenSource
appleremote02 (part 4)
Removing the F5 key
In appleremote01 cws, the plan was to send keycodes, and the sd had to interpret as commands for the slideshow. It works perfectly, but has the drawback to not respect the portability criteria.
As replacement, I modified the way events are sent to the application
Before, we had :
[NSApp postEvent:
[NSEvent keyEventWithType:NSKeyDown
location: NSZeroPoint
modifierFlags : modifierFlags
timestamp: 0
windowNumber: [[NSApp keyWindow] windowNumber]
context: nil
characters: characters
charactersIgnoringModifiers: characters
isARepeat: toBeRepeated
keyCode: theKeyCode]
atStart: NO];
Means, for every case, I sent the right keycode, for the right slideshow command ( I passed the theKeycode variable to the postEvent method, using an keyEventWithType:NSKeyDown type) (for further information, see
RemoteMainController.m appleremote01 ) The new implementation is different :
1) I created a different event type (otherEventWithType:NSApplicationDefined ) sent to the NSApp
- (void) postTheEvent: (short int)buttonIdentifier modifierFlags:(int)modifierFlags
{
[NSApp postEvent:
[NSEvent otherEventWithType:NSApplicationDefined
location:NSZeroPoint
modifierFlags:modifierFlags
timestamp: 0
windowNumber:[[NSApp keyWindow] windowNumber]
context:nil
subtype:AppleRemoteControlEvent
data1: buttonIdentifier
data2: 0]
atStart: NO];
}
(for further information, see
RemoteMainController.m appleremote02) 2) in AquaSalInstance::handleAppDefinedEvent(), the NSApp detects the event (in vcl/aqua/app/salinst.cxx ), and turns it into a MEDIA_COMMAND_(some_name) event through the data1 parameter. Then, the sd received the event throught the eventlistener, and does the dispatching to the ::Command and ::Notify implemented methods.
The problem was, it works nicely for all events sent, but
only when the slideshow is running.
Means: no way to start the slideshow using the same method as the one used for e.g. gotoNextSlide(), gotoFirstSlide() and so on. My first hack was to continue to create, in salinst.cxx, the NSKeyDown event. The problem is ... it is just a hack.
So I decided to figure out what was happening. And for that, I implemented new methods (uggly buggy hacks, but very usefull to trace everything at runtime), in sd/source/ui/view/viewshel.cxx (see
the diff for further information)
What I discovered, is, the events coming from the remote are never seen, when the slideshow is not started !
My first tries where: maybe I do no send the event to the right frame ? So I implemented another hack, when sending the "PLAY" command. The idea was to check for every frame, and see what happens ... More precisely, doing :
switch ([pEvent data1])
{
case kRemoteButtonPlay:
{
nCommand = MEDIA_COMMAND_PLAY;
std::list::iterator it = pSalData->maFrames.begin();
while( (*it) && (it != pSalData->maFrames.end()) )
{
AquaSalFrame* pFrame = (*it);
Window * pWindow = pFrame->GetWindow();
if( pWindow )
{
const Point aPoint;
CommandEvent aCEvt( aPoint, COMMAND_MEDIA, FALSE, &nCommand );
NotifyEvent aNCmdEvt( EVENT_COMMAND, pWindow, &aCEvt );
fprintf( stdout, "EVENT_COMMAND Notified from
AquaSalInstance::handleAppDefinedEvent \n");
if ( !ImplCallPreNotify( aNCmdEvt ) )
pWindow->Command( aCEvt );
}
it++;
}
}
But nothing ... After tracing a lot, and using the backtraces for working and not working events,
Philipp Lohmann suggested me to check the focused window.
So did I, using Window* pWindow = Application::GetFocusWindow(); instead of the list of frames.
And one more time, it was not working :-/
So what is the problem ? After yet another discussion on IRC, Philipp finaly found the reason, following ( if I'm not wrong) Christian Lippka explanations : the draw event listener for the slideshow is not active.
More precisely, the "play" does not work on Windows too. The reason is, as soon as the slideshow exists, it registers as event listener of the application. But that is AFTER the slideshow is started. Said differently, the slideshow doesn't exist at all, before the F5 key is pressed :)
=> So the events go nowhere (what I verified since several days ;) )
The solution (see
issue 97195 ) in the air is the sd to register as event handler before.
Andre Fischer is the specialist, and will work on that.
So far, once it will work, I'll just fix that in 2 minute, and this is the last change I see before to declare the cws as Ready for QA (and find someone for the QA ...) : everything else works, including a new little feature: play/pause when slideshow started.
Crossing the fingers to
see the change occur before the deadline of 3.1 (waiting, I'll have a look at how eventlistener work ... cannot be bad to understand how things work ... ;-) )
.. to be continued ... Libellés : aqua, Code, development, fun, High-Tech, Mac OS X, OpenOffice
[Mac OS X] experimental PowerPC and Intel builds need feedback
Please note :
not for production, backup your datas, save your prefs *before*... ...
For the adventurous, I do provide advanced, experimental builds for both
PowerPC and Intel, here : URL of Laurent site ( I can provide german on demand )
Those builds are based on DEV300_m35 + ogltrans4mac + macmenusquit + appleremote02 cws's
*
ogltrans4mac cws means, OpenGL transitions are inside, and work*
macmenusquit cws aims to removes useless "Quit" entries in all OpenOffice.org applications ( Calc, Writer .. and so on)
*
appleremote02 is a new apple remote implementation
And if you want to improve the chance to see such changes in the future 3.1, I really need feedback : thanks in advance for any ... !!Libellés : aqua, development, Mac OS X, OpenGL, OpenOffice
appleremote02 (part 3)
Since
DEV300_m35,
appleremote01 cws has been integrated, and the
Apple Remote works out of the box with Impress.
Means, it will be
included in the 3.1 Aqua version of OpenOffice.org :-)Do not forget to use it with the
presenter screen feature !
The feature is available and
works on PowerPC machines too, but just a little number of machines are concerned. If you are such user, please send me feedback !
In meantime, I progressed a lot with
appleremote02, and it works already.
Play/Pause key now allows to blank screen, and I'm searching how to add other features.
Remain two issues to be solved:
- I currently use the F5 keycode to start the presentation, because there is no other simple way to start the presentation (or please contact me if
Thorsten Behrens and me missed it )
- the second issue is more difficult to be solved : I can easely activate the popup menu ( i.e. contextual menu ) in fullscreen, but not control it yet, because I have no outlet with the Cocoa part ->
all suggestions are welcome :-)
And for the adventurous, I do provide builds for both PowerPC and Intel, here : URL of Laurent siteThey are based on DEV300_m35 + ogltrans4mac + macmenusquit + appleremote02 cws's
*
ogltrans4mac cws means, OpenGL transitions are inside, and work *
macmenusquit cws aims to removes useless "Quit" entries in all OpenOffice.org applications ( Calc, Writer .. and so on)
*
appleremote02 is a new apple remote implementation
Thanks in advance for any comment and feedback !!
Important: you use them at your own risks, take care to not use them in production, and make a backup of your datas *before* the tests.
Known issues (no need to file new one ;-) :
- using a high resolution for the external monitor, the area used by the NSOpenGLView for drawing the 3D scene is not correct (canvas fault imho)
- little flicker at the end: could be the rendering, maybe not complete, when the flush starts (thanks to
Radek Dulik for the possible origin of the issue)
Libellés : aqua, development, OpenGL, OpenOffice
appleremote02 (part 2)
The second implementation works !! Thanks to the gold advices from
Philipp Lohmann, who saved me a lot of time.
I spend one hour to fix a stupid typo (if you see it, please drop me a mail ;-) ) :
SalData* pSalData = GetSalData();
AquaSalFrame* pFrame = pSalData->maFrames.front();
Window * pWindow = pFrame->GetWindow() ?
pSalData->maFrames.front()->getWindow()
: NULL;
if( pWindow )
{
...
Plus one other hour to see why start was not working, nor go to last slide ... **
But now, it simply works, and I'll try to add the contextual menu, and more if I can.
Anybody interested to QA the cws ?Total cumuled time to work on that: 10 hoursTo be continued ... **ha ha : the methods are simply missing in the slideshow, when you use events -> will do
Libellés : aqua, development, Mac OS X, OpenOffice, OSX
appleremote02 (part 1)
Since
Florian Heckl approved the appleremote01 cws (thanks to him !), we can say the Apple Remote has big chances to be integrated in the Mac OS X version of OpenOffice.org 3.1.
UPGRADE : appleremote01 is in the coming DEV300_m35 !! :-)
The code is ready since a while (in september is was ready), but as usual, the QA is a bottleneck : we simply losed month for this feature integration :-/
Well, without wait more, I started the appleremote02, who will improve the process, making the change more "portable". All details are given there
appleremote02 cws description (I'll add information progressively).
The plan is to use another type of events, for instance NSApplicationDefined , and pass the buttonIdentifier as parameter (data1 ).
More techincaly, I created a new events subtype ( AppleRemoteControlEvent), and this new event type will be detected by the NSApp in AquaSalInstance::handleAppDefinedEvent( NSEvent* pEvent ).
I didn't change anything to the butttons, but I'll probably add new effects, like contextual menus, once they will be properly handled.
First results :
* in Fullscreen
Received the following event from the Apple Remote : 16
Received the following event from the Apple Remote : 2
Received the following event from the Apple Remote : 32
Received the following event from the Apple Remote : 64
.. and so on
* In normal mode, we receive only menu + play buttons as expected
Looks ok so far :-)Status of the changes:
Done (but code not commited, because appleremote01 is not integrated ) :
* remove the event sending the keycode
* implement new method, sending new event type, including the buttonIdentifier value
* implement glu code for intercepting the event and receiving the value of the message
* new libAppleRemote builds without any glitch
Planned :
* turn the notification into the right constant ( COMMAND_MEDIA and co defined in vcl/inc/vcl/cmdevt.hxx )
* build
* test
* verify
To be continued ... Libellés : aqua, development, Mac OS X, OpenOffice, OSX
OpenGL transitions ( 2)
Worked 5 hours on the thing last night (from 30th to 31st august).
Good some good news :
Fixed the colorspace issue: was the pDetectedFormat, means OpenGL transitions work and appear in the right colors now.
There is only one remaining important issue (flicker) Some details : GL_VERSION 1.2 or 1.3 detected means we enter in the "if .. .#endif" control structure
Adding debug info, we have :
rendering::ColorSpaceType:: 2 ( if RGB, returns 2 )
GL_VERSION 1.2 or 1.3 detected
nNumComponents = 4
nBitsPerPixel = 32
nComponentOrderIndex = 0
And in the #if .. #endif structure, this leads to lcl_ARGB32[] use, what is wrong. Indeed, correct OGLFormat is lcl_RGB24 on Mac OS X Intel ( lcl_RGB32 untested, might work )
Simple solution -> not use or fix the suspicious color space detection, and use (just fast workaround) :
#if defined(GL_VERSION_1_2) && defined(GLU_VERSION_1_3) && !defined( QUARTZ ) // buggy
instead of : #if defined(GL_VERSION_1_2) && defined(GLU_VERSION_1_3)
TODO :
- cleanup in void OGLTrans_TransitionerImpl::GLInitSlides() ,
- contact Radek, and Thorsten, and see. Maybe split the current OGLTransitionerImpl.cxx in three arch-dedicated files, should help to avoid the growing forest of #if ..
Last remaining issues : offset in window mode, caused by scrollbar not included in the slide position computation
(the frame dimensions are different)
=> Looks secondary, because everything works fine in a frame.
flickerVery noisy when happening. Must be fixed.
The problem is (using ssa words) : the slideshow displays the slide first
then an opengl view is painted on top of it and plays the slide transition
once it is removed the old background appears again still containing the first frame of the animation, and after a very short time the slideshow engine draws the final frame,
which is visible as a flicker
Update: the issues always occurs, means it does concern both windowed and fullscreen modes.
There is probably some needDisplay or whatever other event sent, we should not. Needs to ask pl, the master of vcl.
Optimization / compatibility ?
Will be Fun ( cleanup in OGLTransitionerImpl::GLInitSlides() is mandatory to be sure the detection works on every machine.
To be continuedLibellés : development, fun, High-Tech, Mac OS X, OpenGL, OpenOffice, OSX
OpenGL transitions in Impress for Aqua (1)
Started the effort, to make work the
OpenGL transitions, Shane M. Mathews developed under the Google Summer of Code 2007.
The goal is to use these transitions in Impress with the Aqua version. Obviously, the feature does concern Mac OS X only. As reminder, the great work Shane did, was mentored by
Thorsten Behrens.
The work is progressing fastly, and I created the cws is
ogltrans4mac. We'll probably do commit everything soon ( build completed with the current patches)
Everything will be documented on
the OpenGL transitions for Aqua wiki page. I'll document the code changes (incuding the one about another idea) asap.
Currently, the transitions can be tested, but some important issues have to be solved, and any help for the implementation is welcome.
Last, I'd like to thank
Stephan Schaefer for the important piece of code he provided (making the NSOpenGLView working).
Any volunteer is warmly invited to join us in the adventure :-)
Some screenshots are available
hereIMPORTANT: we need volunteers to (I hope this will not slow down the work in progress) write a spec document... and the Macport needs new devs, with objective C / C /C++ skills. Feel free to contact us :)Libellés : aqua, development, fun, High-Tech, Mac OS X, OSX
Education Project effort: a point on the work in progress

Several applications are started.
First application:
Pierre Pasteau to replace mozilla 1.7.5 sources, with seamonkey 1.1.11 source
Today was the first project review. Attendees : Franck Schonheit, Pierre Pasteau, me.
The log of the review Looking at the agenda, Pierre confirmed there is no delay, and we can start building OpenOffice.org using the new patch he created on Windows, Linux and Mac OSX.
Frank proposed to ask Martin Hollmichel for Pierre commit rights, thus he will be able to commit his own changes directly, and discover for true the real OpenOffice.org scheduling process. Always glad to see new volunteers joining the project :-)
2nd application, does concern
Valentin Janiaut: Image capture implementation on Mac OS X.
More precise description of the need, first try in progress. We need to describe more about the Image Capture available API
Rakesh Pandit started to work in starmath. Project review for current status has to be scheduled. More information to come this week about the starmath issue.
Don't forget,verybody, willing to help us, can join the effort, and will be warmly welcomed!
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Education Project on the wiki=> If you are willing to present a projet, or drive a ClassRoom with us, please contact me.
Many thanks to
Ben Bois , author of the Logo
Libellés : development, Education, High-Tech, OpenOffice, School
apple remote (5)
Last changes:
- Seems to work well with the
the Presenter Screen, a great and promising feature. Many thanks to the authors btw !
The issue was, the events were not sent to the right screen, and thus, no clics ... After searching complicated things, it was just a bad parameter. For one time I didn't had to read Apple doc for hours. Just a 20 minutes of search ... et hop :-)
- Updated the
wiki pageI'll continue to test
To be continued...Libellés : aqua, development, fun, High-Tech, OSX
apple remote (3) and other recent things
The apple_remote alias is ok (thanks to
Martin Hollmichel), thus I created appleremote01 cws ( should be buildable with m29 now).
Thanks to
Eike Rathke who explained me how commit the new build.lst and d.lst
The great and fast feedback from
Yves Roggeman, who helped me to fix the fullscreen issue ( I just forgot to implement it ).
I made a point with
Pierre Pasteau about his first task ( see
replace mozilla 1.7.5 )
Hope to find some time for the other cws I'd like to create ( macmenusquit)
Last but not least, new builds are available on
oooaqua site ( ja locale is available for Intel, and I'll start PowerPC build this afternoon)
IMPORTANT : please do not forget they are
unofficial and hacked builds, who just aim to receive feedback about the apple remote, nothing else. Do not use them if you don't know what you are doing, and make a backup of your datas
Libellés : aqua, development, fun, High-Tech, Mac OS X, OSX
Apple Remote in Impress : first try before more serious implementation
Just back from holidays, I found some times to hack the Apple Remote (the controller shipped with Apple machines).
After a week of learning the great
Pierre Chatelier documentation (Objective C for C++ developers ), and
Aaron Hillegass book " Cocoa Programming for Mac OS X", I finally found how to adapt
Martin Kahr's code, to make the Apple remote work with OpenOffice.org.
Today, reading Apple documentation, I finally found a simple way to implement the basics of the thing. and it works :-)
What you currently can do is:
- start a presentation
- goto next / previous slide
- goto to last/first slide
- quit the presentation
The Impress window must be in front (the active window). Else, Front row menus works as usual.
Some other features are missing, and I hope to make them work asap.
For the curious, I do provide unofficial builds Intel only ( PowerPC on tuesday), for en-US , fr and de (upload in progress). Don't forget to do a backup of your files.
The URL for the download is
Laurent Buisson site . Many thanks to him, for providing the ressources.
Last but not least, I found a way to modify the menus on the fly, and at build time, e.g; removing the not Aqua HIG compliant extra "Quit" in all the menus. I think this change could be an open door to better Mac OpenOffice.org menus customization.
Of course, this is work in progress, and I'm thinking to a more deep and professionnal implementation, but we need feedback from our users, to implement proprely the thing.
To be continued ...Libellés : Apple, aqua, development, High-Tech, Mac OS X
Little ClassRoom about warnings

Today, and because of the proximity of the holidays, we did a little ClassRoom with Rakesh, about the current effort
wae4binfilter.
The origin of the effort, what sorts of warnings we can encounter, and how solve them, and retain the lesson for the future code we'll write.
The log, including several relevant links, is available =>
the log""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Education Project on the wiki=> If you are willing to present a projet, or drive a ClassRoom with us, please contact me.
Many thanks to
Ben Bois , author of the Logo
Libellés : ClassRoom, development, Education, effort, OpenOffice
...

To much of mails, I'll answer tomorrow. Yesterday, I did some progress with the Apple Remote: added new constants, better vision of all the thing. But I still don't see all the messages I should in the terminal. A lot remains to do.
Today, I worked with
Rakesh Pandit on the wae4binfilter01 cws. Since his SCA is accepted, he was so kind to provide a lot of patches (28!), I was glad to commit for him. Currently, all current patches have been commited, and only a little number of uninitialized cases are remaining. Yet to fix some complicated cases, but I expect to complete wae4binfilter01 by tomorrow or so. Time to find a QA resp :-) (volunteers ? )
wae4binfilter02 will probably be about bad Ctors initializations.
Good news:
Pierre Pasteau, a student from
Epitech (Paris) proposed to contribute to OpenOffice.org for 5 months (until mid december exactly), as an Application for his cursus. This is not completely sure, but the last remaining thing I have to do is sign and return the convention, and we can go. Yet some administrative points to be verified before that. I'll provide further information asap.
Started a wiki page about the
first task (3 are scheduled). To be continued.
Last but not least,
Raphael Bircher proposed some update for the Education Project website. Thanks to Raphael, and thanks to all, who are doing a lot for the
Education Project.
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Education Project on the wiki EducOO.org blog (french) Many thanks to
Ben Bois , author of the Education Project Logo
Libellés : development, Education, effort, OpenOffice
First signs of life of my Apple Remote .. in OpenOffice.org
After searching a bit how to implement
Martin Kahr's code, to make Apple Remote work with OpenOffice.org, looks like I got something :
Menu button is seen as the value "8"
|<< is seen as "64"
>>| is seen as value "32"
- is seen as value "4"
+ as value "2"
|> || (play pause) as value "16"
Originaly, Martin did a complete reverse engineering of the thing, because the API was undocumented ( who is surprised ? ). We all expect to see apple publy something a day. Would be nice to replace some "magics" with something more academic ;-)
What is nice, is the 8 value (giving the FrontRow effect) is seen when you start the FrontRow and when you return in normal screen mode. Other point is all keys you hit when in front row mode are seen.
Seems crazy, but why not imagine we could use the FrontRow effect with OpenOffice.org ? I need to ask Martin Kahr, who gracefully accepted the integration (say adaptation, because there is some work yet) of his code into OpenOffice.org.
The trace (using gdb) :
2008-06-20 20:46:06.528 soffice.bin[11541] Button 8 pressed down 1
2008-06-20 20:46:06.539 soffice.bin[11541] Button 8 pressed down 0
2008-06-20 20:46:09.302 soffice.bin[11541] Button 8 pressed down 1
2008-06-20 20:46:09.312 soffice.bin[11541] Button 8 pressed down 0
2008-06-20 20:46:28.077 soffice.bin[11541] Button 64 pressed down 1
2008-06-20 20:46:28.087 soffice.bin[11541] Button 64 pressed down 0
2008-06-20 20:46:32.229 soffice.bin[11541] Button 32 pressed down 1
2008-06-20 20:46:32.239 soffice.bin[11541] Button 32 pressed down 0
2008-06-20 20:46:33.975 soffice.bin[11541] Button 4 pressed down 1
2008-06-20 20:46:34.142 soffice.bin[11541] Button 4 pressed down 0
2008-06-20 20:46:35.670 soffice.bin[11541] Button 2 pressed down 1
2008-06-20 20:46:35.760 soffice.bin[11541] Button 2 pressed down 0
2008-06-20 20:46:37.495 soffice.bin[11541] Button 16 pressed down 1
2008-06-20 20:46:37.505 soffice.bin[11541] Button 16 pressed down 0
As you can see, this is only the beginning, but this is very encouraging. Thanks a lot to Martin Kahr for his work.
Next steps will be associate the events with vcl events, simulate the keyboard access, read slideshow code .. and so on.
To be continued :-)
Important Links :
Martin Kahr website for Apple Remote OpenOffice.org wiki page for Apple Remote implementationLibellés : aqua, development, fun
Trip in California
Arrived on saturday in San Francisco, for my third WWDC. Nice meal with other frenchies the evening, and nice restaurants. As usual the first idea was to fight against the Jet lag, and I must admit I feel surprisingly well today.
Today, I visited Belmont (was my first caltrain travel). The Plisson Family, means Marion, Eleanor, Eglantine and of course Sebastien, was so kind to invite me. Nice town, nice meal, and nice trip the afternoon. I was extremely pleased to meet them, and I hope to be able to invite them at home in France.
Just back to the Hotel (very nice), I finally met Michael Sicotte. Wifi is ok too. Next step: retrieve Philipp Lohmann, probably sleeping (because just arrived today).
Got the badge, the bag (yet another bag...). I feel ready for the week: to be continued.
Libellés : aqua, development, fun
Ideas for Education project

Author
Ben Bois I met
Frederic Diaz and
Nicolas Jeudy this afternoon during
Sequanux annual general meeting. Was in Besancon (France).
I met a lot of people from Sequanux LUG, all contributing for free softwares, but in other domains.Very nice and interesting afternoon.
With Fred and Nicolas, we discussed about the Education project. What we agreed was:
- a better definition of Education project is needed
- Education project must attract all people from Education: 3 main categories appear.
- the tools can be divided in three categories too
Other point: we will define the role of local correspondant, probably on the wiki
Nicolas proposed to contribute for the Education website, and thus will help Raphael Bircher, to have something more attractive than the current mess.
Money and resources now: OpenOffice.org project does not help correctly volunteers. Thus, we have to find resources from ourselves.
To workaround that, we will create an association able to help the Education project, means able to receive money legally, and provide receipts to the companies or people helping us.
Concept is simple: autonomy, transparency, and simplicity.
The status are defined ( I prepared everything before), and I'll finalize asap.
Example of project we have in mind (concerning the 3rd category) : buy a machine (randomly: a Mac mini) , and ask for a student -studying in computing sciences- to:
- find a professor, already paid for managing the student. The prof will play the role of the intermediate, driving the student "locally".
- contribute for some feature, writing code, with objectives, and delays.
Just the content of the application will become "external" to the school.
If the code is correct, and the feature is ok (a validation step has to be defined), then the student will be able to keep the machine.
The estimated cost is approximatively around 600 euros per machine. And the applications (included in the student cursus) could concern features who will need 3 months (approximatively) of work. Of course, the main interest is pedagogical, and in return, we'll need reports and documentation about the work done.
I proposed this idea long time ago, and I strongly believe it will help the project to find new developers. At least it will be more efficient than "Advisory Boards" ;-)
Have a professor, is not enough, but will help a lot, and the role of Education project member will consist in help, to discover the structure of OpenOffice.org project, how is the code organized, connecting professor/students with the right developer, ...etc
... was just a draft of just one idea ;-)
Libellés : development, Education, Ideas
at least 2 by task ...
Thought about improving Mac OS X porting project
.... what about to start working differently ?
Proposal:
-
before to consider any task is started, at least 2 people must be identified as working on it. No problem if one is a very good developer, and the second a poor one: work together, and share the knowledge.
-
document the task: ask questions, note carefully the progression in the ideas, questions and answers how helped, and
document the design ( no need to document the code when the design is given ... )
Note: current specs need some rework. We are not working for the NASA ;-)
-
they are no dumb questions, and often simple questions help to solve important issues
Work this way will
-
avoid Bus Factor effect -
create synergy between people, and valorize everybody
-
improve the efficiency of the work
-
free the code: documentation
always helps. And we are working for a Free Software, aren't we ?
Doing that (please propose if you have better ideas), I bet
new devs will join the OpenOffice.org project .. and maybe the Mac porting project ;-) Let's try ?
--
Libellés : aqua, development
... Gorm ( .nib , part 2 )
Glad to have seen Robert Dargaud ( alias Bob) at home today afternoon. Bob suddenly disappeared the 28th november 2005 in the snow, when we came back from HH. I now have proofs he was not completely lost :)
Of course, we discussed a lot about the Aqua port, but not only.
The other very interesting point of discussion was about
Renaissance I already presented and
Gorm**.
Looks like we have tools to create correct ( but hell) ".nibs" using that.
Imagine, we parse some resource files, and transform them into .xml files. Then, we transform the .xml files into .nibs.
... I'm sure we can do something with that.
**I'd like to thank mm_w for his mail about Gorm too ;-)
Libellés : aqua, cocoa, development
Aqua port : Cocoa developers wanted
Author : Ben Bois ben at hooboo dot com I'll be soon on holidays for two weeks ( starting saturday 28th july ), but development never stops :
Since today,
Philipp Lohmann started the Cocoa transition and ... Mac OS X porting project needs Cocoa developers with objective C++ knowledge Don't expect too much Fun yet :
this is experimental work, and low level for now
The toy we will use to check everything is called
vcldemo (binary built in vcl). The child workspace is aquavcl03.
Be carefull : it is synchronized with milestone 220, and we probably will wait a bit for a new resync ( or at least wait for m223 ).
Things are simple : build OpenOffice.org, and play with vcldemo. ( a basic .nib is needed )
Work in progress is about :
- make vcldemo build ( replace svdem )
- implement AquaSalFrame basics
- implement AquaSalGraphics basics
- implement Cocoa timers
- implement proper NSevents
Contact : IRC : server irc.freenode.net channel : #ooo_macport Libellés : aqua, cocoa, development
Current Mac OS X OpenOffice.org versions : a quick inventory
Mac OS X is generic name, and we do provide
two versions ( Aqua and X11) , for two architectures, and for
several Mac OS X versions ! Mac OS X 10.5 (aka Leopard, sched. Oct2007) :
Aqua version : works on INTEL (beta version, for ADC devs only), untested on PowerPC
X11 version : works on INTEL (beta version, for ADC devs only), untested on PowerPC
Mac OS X 10.4 (aka Tiger ) :
Aqua version : works on INTEL, works on PowerPC
X11 version : works on INTEL, works on PowerPC
Mac OS X 10.3 (aka Panther, not offocially supported anymore by Mac OS X port ) :
Aqua version : not buildable
X11 version : works on PowerPC only, until 2.2.1 ( we cannot promise for more recent versions of OpenOffice.org )
Don't forget to multiply by all the locales, and you have the result
=> this is too much
The current distribution of users is :
66% using INTEL , and 33% only uses PowerPCSource : torrent for Aqua version (obsolete) When Leopard will be out on october, and looking at the Apple hardware sales figures(if they continue the same rythm), we can estimate to 75% the distribution in favour of Intel hardware.
In the 25% remaining and using PowerPC hardware, we can estimate 40% only using Panther, not more.
->
Very probably, less than 10% of Mac users will use Panther and PowerPC hardware by end 2007.The future for the Mac OS X version :
Current Aqua version will become our major version.
Tiger and Leopard only will be supported, for both PowerPC and Intel archs.
Better ergonomy with e.g. locale installation, Mac Address Book, Copy Paste, Drag and Drop, Mac spellchecker ... etcLibellés : development
Google Summer of Code and Mac OS X port
This is my second Google Summer of Code as mentor, and the Mac OS X porting project is proud (and lucky) to have two great students, Ismael Merzaq and Omer Bar-or (mentored by Florian Heckl and Sebastien Plisson).
Below, all the (current ) code already commited by both Ismael and Omer (please be patient because Bonsai may need some time) :
Ismael commits for Google Summer of code 2007 Omer Bar-or commits for Google Summer of Code 2007Impressive isn't it ? The lesson for OpenOffice.org project is
extremely positive :
First,
it works : students, when managed, can positively contribute to OpenOffice.org project, for
real tasks, and the
result is visible.
Second,
we progressed( the Mac port, but not only) a lot with the code understanding, because we had to explain it before to explain to the students.
Third : this is an
opportunity for a big project like OpenOffice.org, to appear as human for external people : it is possible to come, contact somebody, and share. e.g. friends of the students can discover/propagate what OpenOffice.org is, and maybe propose a SoC , new ideas , bring new blood .. etc.
They are other positive lessons, I'll continue later ;-)
Libellés : development
Aqua version : first tests on Leopard preview
As ADC member, I was able to test the last Aqua version on Leopard preview.
It works correctly : just some refresh issues, but nothing really bad, and
Philipp Lohmann did a great work, fixing the issues we had during the WWDC in apple Labs ( icons were drawn upside down with Funky colors in menus).
Two major issues :
- build is broken ( strange cpp issue )
- Java, not working (one more time)
Work in progress ...
Libellés : aqua, development
Japanese version of Aqua to be presented at Open Source Conference of Kyoto ( Japan )
Since the Aqua version of OpenOffice.org ( work in progress) is able to recognize Japanese fonts when they are in use ( for ex. when required by the Kotoeri input system) , Jean Christophe Helary, from
OmegaT project, was so kind and proposed me to present a
Japanese version of Aqua OpenOffice.org at Kyoto Japan 20 and 21th July.
This is extremely important to inform the Japanese community we are working to provide a working version for it, and show all the recent progress we did. This is mainly possible with Herbert duerr, Etsushi Kato and James Watson contributions.
Note : If I forgot somebody, please contact me and I'll rectify
During the conference, Jean-Christophe will hold two seminars to explain how to translate OpenOffice.org native file format (ODF) with OmegaT, while Mr Kamataki and the OpenOffice.org Japanese Native Lang Project will hold a seminar to show application development within OmegaT.
Thank you very much Jean-Christophe and Mr Kamataki !!Want to help the Mac port ?? You can make donations at
Cusoon ( paypal button) Thanks to add a comment saying your donation is for Mac OS X porting project (we can provide receipts on demand )
Libellés : aqua, community, development
Aqua Testtool
... now works and can run out of the box in command line.
Changes have been commited in aquavcl02 cws.
As you can see, even menus are native :)

More tests are needed, but this is a very good tool to improve QA on Mac OS X.
People are welcome to help us : all people having a Mac can help ! (no code skill mandatory for QA ) Contacts :
Mailing list (subscribe is mandatory) IRC :
Server : irc.freenode.net
Channel #ooo_macport Libellés : aqua, development, QA
Mac native port and aquavcl01 cws
aquavcl01 cws is closed : means no more commit, and
QA is in progress for integration.
This cws was
created 2005-11-27, during 1st Mac porters meeting ( Hamburg 25th 27th November 2005 ), using
milestone m137 as basis.
For the one not aware, milestone 137 was just after 2.0 output. With it, a complete native port of OpenOffice.org on Mac OS X has been created ( namely aqua part in vcl directory ).
Complete is not exact, because our work used an existing work in progress, with bases written some time -years- ago by
Stephan Schaefer and
Dan Williams ( e.g. Native Widget Framework, but not only )
The result :
Today, OpenOffice.org runs under Mac OS X, without the need to install X11 anymore, and the code will be -if nothing's going wrong- soon included in OpenOffice.org sources. This is work in progress, and a lot is remaining, but here we are.Some figures of aquavcl01 cws now :
just about vcl (the main part) :
50 new files + all modifications in common part20 developers contributed to the code : 16 developers contributed directly + 4 undirectly ( not the name in the commits, but they helped for code, Intel port ..etc
... around
1400 commits of code were necessary to reach the current state.
It does contain
58 issues in IssueZilla ( we started to file issues for aquavcl01 very lately ).
Note : we filed issues about it at the end only, to avoid prohibitive number of issues
... 22 modules are concerned and have been modified:
basebmp boost canvas desktop dtrans extensions fpicker framework freetype instsetoo_native
padmin psprint sal scp2 sfx2 sj2 solenv sot stlport svtools toolkit vcl
This cws has been successively resynchronized with milestones :
m163 / m172 / m177 / m181 / m182 / m184 / m187 /m192 / m195 / m196 / m200 / m202 / m208 / m211 / m215 For the one used to resync, they surely understand what it means ;-)
The Future :
aquavcl02 has been created, and today ( 2nd of July 2007 ),
" aqua " keyword does concern 178 issues Once Drag and drop will be implemented, we'll provide alpha version.
A second development snapshot is scheduled this week.
Stay tuned !
Libellés : aqua, development
Aqua snapshot, one month later
One month ago (already ! ), we proposed development snapshots of
Aqua version of OpenOffice.org. What was the context ?
Provide a snapshot was proposed during one of our
weekly IRC meetings. To be honest, I firstly was not hot, because we didn't reach alpha state at this time.
But, discussing with some developers, they considered we should show to the Mac users community we really were working on a native version, and what we had at this time. Just not use alpha was the common request.
A bad point was the native filepicker integration : I had to add a hack to add it in the build, because our integration process do not allow us to mix cws, and needs a lot of time and a complex process for code integration.
To proof what I say : it is still not the case today ( one month later .. ). If we are lucky, it will be possible in probably 2 weeks.
And we had to decide what put inside, including the filepicker. I wrote "we", because I didn't decide alone. Please do not believe the opposite.
And frankly, I don't see any reason to regret now : since, a lot of bugs have been fixed, simply because we had an incredible feeedback.
If unsure, please have a look at the current aqua issues list Please, continue to provide us feedback, even using X11 version !!(we use the same codebase for Aqua version)
As example, the list issues the Mac porter Team fixed since :- Impress : animations work now (excepted sound)
- export pdf works now (some remaining issues with arabian locales maybe)
- copy paste works partially (text only )
- 2 instant crashes vanished since new saltimer implementation ( spellchecker and quit )
- native fonts et OpenOffice.org bundled fonts are now usable -> equations are now correctly displayed, since OpenSymbol is found
- start of native comboboxes (needs work)
- listboxes ( not complete)
- window background uses Aqua theme
- Calc works (white cell issue solved)
- Writer works ( text input ok, space issue ... etc)
- Maths works (excepted braces, to be discussed soon )
- new Chart module is now included (since m214 resync)
We can include in the build (at least I do) native FilePicker, including the possibility to choose OpenOffice.org native one (allows URLs entries like http:// .. )
For a more complete list of changes, please have a look at
Aqua ChangelogAsap, we will provide another snapshot, and we are searching the best way for that (waiting, the most adventurous can try to build from sources, using our well known
AquaBuild wiki page ( soon, we expect to reach 30,000 reads :-).
If you see something wrong, or not clear, or even not optimized, feel free to login, and fix it : that's exactly what did Johan Henselmans two days ago ! Thanks Johan :-)
Libellés : aqua, development
WWDC 07 Part 2
From
WWDC07, the big marketing announce was
"64 bits ready", and developers will pay the price of what Apple Marketing decided ...
Even if a lot of applications won't see any improvement, people will ask to have applications "64 bits ready", else nothing
Carbon won't be 64bits. At least the part of the API we use in current Aqua port. Indeed, current Aqua port of OpenOffice.org uses HIToolbox ( HITheme, Appearance ..etc). the main effort is concentrated into vcl module.
For salframe, we use Carbon WindowRef and a lot of Carbon things. About events, we use CarbonEvents, and because of the old model used by OpenOffice.org, we use WaitNextEvent() and all. A big issue was to find a way to use RunApplicationEventLoop(). We asked our RAEL() implementation to be expertised, and things looks ok, from Apple engineers point of view.
Some other parts will be 64 bits anyway (Carbon Events should be 64 bits without last minute change).
The immediate consequence is Mac OS X port must start to think Carbon replacement using Cocoa.As good example, Damien started soem Cocoa cursors implementation. We'll document generously, as starting point. About something different, it's question of replace HIView using NSView too. We'll see.
But not now : Indeed, 64 bits Intel on Mac OS X port is a new port. It means we need to rewrite a new bridge, using Apple 64bits ABI for Intel procs, and a lot of changes like for Linux AMD64 port ... and we first will complete Aqua port ( without X11), and provide a working Mac application
Could be a 2 years or more plan.Where in the code ?
- for everything graphical- probably for text ( using CoreText instead of ATSUI, but hard discussions are in progress, and nobody knows, e.g. since Core Text cannot yet do everything ATSUI does ... ). Why change from ATSUI : not well integrated with other frameworks, preformance is difficult to optimize, not available for 64 bits.
- new bridge
- co-lateral changes ( sal probably )
- svx
- framework maybe
Current Mac OS X port plan is :1) Make it work first : provide a Mac application, not using X11, and having everything working.Means :
1.1 integrate aquavcl01
1.2 integrate aquafilepicker01
+ see
recent changelog 1.3) provide regular builds of Aqua version
1.4) start QA for aqua as soon as possible ( see
FOSDEM presentation )
Yet missing in aquavcl01 :
- drag and drop ( Tino already started )
- native printing ( Yvan Barthelemy and Philipp Lohmann )
- native spellchecker ( nobody afaik )
- Mac Address Book ( Omer Bar Or + Florian Heckl )
- Aqua Look ( Ismael Merzaq , Eric Bachard )
Spotlight plugin integration is delayed, because of - Mox will confirm- legal issues. See :
Violation of external policy for NeoLight source code To be confirmed :
- complete Mac OS X shortcuts
Later :
- implement native sound player (using QTKit)
- Implement Image acquisition
- use the Mac OS X key chain for document signing
Problematic : ALT key , and accelerators (will be discussed during next meeting)
2) Start Cocoa implementation, using e.g. aquavcl02 cws
To help us,
Pierre Chatelier, C++ and Cocoa expert, contacted me recently, to announce he translated his
C++ -> Cocoa guide (english and french versions available) .
This is a very interesting document, and I'd suggest to all mac porters to discover it.
3) Redesign our UIWe had an appointment in User Interface labs, and we found a lot of issues with our interface.
- the wizard at first launch needs a lot of work
- we don't respect a lot of elementary rules a real Mac application should
- (a lot to be discussed)
-> Todo : invite UX people to debate a lot of issues. From last year, I remember John told me "a menu should propose what you need NOW", not a bunch of useless things, the user doesn't even understand the role.
-> 20% visible / 80% hidden (means for specialist )
-> from general to specific
Last but not least: not quit OpenOffice.org when closing the last window ...
Consequence : deep changes are probably mandatory in OpenOffice.org source code. Maybe this is the first time we ask to go as far ...
The good point is all ports will benefit such changes, not only the Mac port.
Some answers from WWDC to the questions about code :1) Timers: Current code is obsolete, and compatibility with Leopard won't probably exist. Pavel wrote a patch using recent code ( see issue 75228).
Seems to work fine, excepted a thread issue (crash not easy to be reproduced, and I never could repoduce it btw)
Directly discussed the point with Philipp, who commited the code. Two instant crashes seems to have vanished since ( issues 77547 and 78129 )
2) Questions from pavel
Does Apple have a plan to enable UI drawing from threads different from the first one?
Does Apple have a plan to allow java to be run from other threads as well?
For both, the answer is no : what I have understood from Apple engineers is : they have to be in the main thread, because they are not thread safe, and things won't change because this is one Mac OS X foundation to work like that.
3) fix all our busy paint places
One more time discussed with Philipp : problems comes from Windows "model" we use to paint. Work in progress.
4) was HIThemeTabDrawInfo question ( or Ismael )
Version must be 1 ( old was 0 ).
Pb displaying the tabs : we have to ask in common part which tab is the first one, and which one is the last one, to paint borders properly.
Todo : add code in common part + implement
Other tip : use kHIThemeTabKindNormal only (other are not advised) [ possible cases are kHIThemeTabPositionFirst, kHIThemeTabPositionLast, kHIThemeTabPositionMiddle, kHIThemeTabPositionOnly ]
5) About XCode and dot in the binary name
Apple engineers confirmed this is a bug -> we have to file an issue
P.S. : they were very interested reading our wiki pages about XCode use.
6) I had a question about HIThemeScrollbarTrackDrawInfo, using ScrollbarInfo instead of HScrollbarInfo ( I need to retrieve ThumbREct in the srollbar).
Unfortunaly, this issue will never be fixed :-/
We forgot to ask about printing, but Philipp told me he had enough infos. I'll trust him :-)
Libellés : aqua, development
Mac OS X port, Carbon and 64bits Technology (before WWDC07 part 2)
Because Apple itself seems to confuse a lot of people, better start with official links instead of feed the Troll :)
1) Seen on
Leopard Overview"First implemented at the UNIX level in Tiger, Leopard brings complete 64-bit support to all of Mac OS X's (tm) application frameworks. Using either the Carbon or Cocoa frameworks, you can create applications that can address extremely large data sets, up to 128TB using the current Intel-based CPUs. The 64-bit model used in Mac OS X is known as LP64 and is the same model used by other 64-bit UNIX systems from Sun and SGI as well as 64-bit Linux."
2) Apple page about 64 bits Technology ( Marketing )
64 Bits Technology> 3) The
"Best of" from Carbon-dev mailing list
( I'll contact
Deric Horn, we met during WWDC with Philipp )
Best of Carbon-devNow we have
enough informations to present
part 2 (Technical part ) of WWDC 2007 reportTo be continued ... Libellés : aqua, development
Back from WWDC 2007 / Part 1 : agenda
Still no bagages .. :-/
Back from WWDC 2007 ( San Francisco California ). Arrived on saturday night.
3 attendees represented Mac OS X port of OpenOffice.org project :
Sebastien Plisson, Philipp Lohmann, Eric BachardOn sunday afternoon, I met Philipp and Sebastien for the first time.
We discussed a lot, and finally, we worked/discussed a bit ( 3 hours .. ) about the Mac port :-)
But I won't forgot to mention I was very pleased to meet Johann Henselmann for true. Unfortunaly, I was so tired I couldn't follow him and Sebastien in San Francisco nights :)
Of course, we met a lot of other people, and discussed a lot with them. More kind, I even installed the last version of Aqua OpenOffice.org on demand several times in the week.
The feedback we received from other people was very positive for the Mac port. Of course the first development snapshot was not perfect, but people encouraged us : this is true, an aqua version really exists, and works. More on part 2.
During the week, we had conferences, and Labs with Apple engineers. The hotel was nice (
wifi for free !! ), and very close to the Moscone Center. Always nice to walk for attending.
The Agenda was :Monday 11th June : Keynote (morning), and introduction conference.Glad to see
John Karmack for true. The other parts of the keynote were more "marketing" (IMHO)
The most important point of the day was :
no 64 bits for Carbon. This means Carbon will probably be binary compatible for 10.5, and deprecated for 10.6. Waiting for more infos, I'll comment more in the part 2.
Mess wit Sebastien and Johann for the dinner. We tried to find a restaurant with Philipp, but was too late. Was hamburgers and fries ..
Tuesday 12th June : conferences for Sebastien, Philipp and meNothing too important in the confs. Dinner with frenchies, Sanraku Restaurant, 704 Sutter street (yes, the name is the good one ;-) )
Philipp tested Japanese food :-) Return to the hotel, tested some code for Window background. Sent the patch to Ismael for his Googl SoC.
Wednesday 13th June First Lab with John Geleynse postponed to Thursday afternoon. We decided to assist some confs, and later, continued to work for code with Philipp.
Restaurant with Johann, Sebastien and Philipp. Good wine.
Thursday 14th June Because of the appointments, no confs : all the day on Labs.
first appointment : Deric Horn / David Mc Leod and another. 1h30 to ask questions and discuss.
After the lunch, we assisted some conf, and then prepared the second appointment, with John Geleynse.
Very constructive discussion, we learned a lot with John, about all the work we have to do before to reach Apple Software level of quality.
Dinner : was the bash. To avoid hours of buses, and spare time, the bash was not organized in Cuppertino, but close to the Moscone Center, in a park. Lot of music, noise and food. I met other frenchies ( Jacques Foucry , Dominique Baillon and Franck Lefevre).
We finally preferred Marriot bar ... more quiet before to return at the hotel.
Friday 15th June Other labs, and questions XCode, thread issues and HI* issues.
Last appointment with Ernest Prabahkar, during the lunch (more easy for all).
Continued with
weekly IRC meetingFriday afternoon : annoying conferences + a bit tired -> at hotel at 5h30 pm
Saturday 16th June Time to return
Thanks to all the donators, Cusoon, OpenOffice.org project and Apple for the help we received to make it true, and Christian Hardy, Cusoon treasurer for all his timeTo come : part 2, technical analyse about the benefit of WWDC for Mac OS X port.
Libellés : aqua, development, fun
aquavcl01 resync'ed with m214 : the
new chart is now
included in aqua build :)
Herbert added a great change : the UI uses system fonts. Seems insightfull, but it is not !
See
AquaBuild wiki pageif you want to build the aqua version.
Libellés : aqua, development
WWDC 2007 will start on monday.
Philipp Lohmann, Sebastien Plisson and me will represent Mac OS X port for OpenOffice.org project.
See you !!Libellés : aqua, development, fun
Aqua : development snapshot available for download
A development snapshot of
native OpenOffice.org for Mac OS X is available, and can be freely tested (see below for download URL).
=>
X11 is not needed anymore : just drop the OpenOffice.org icon whereever you want, click and go to test it.
IMPORTANT:
- there is no support for this software, and you will use it at your own risks
- *Do* a backup of your data before you start using this software in order to prevent data loss and crashes that may occure
KNOWN ISSUES :
Drag and Drop does not work
Native controls are not yet fully implemented
Copy paste, Native printing do not work
Some crashes may occur quitting the application
Multi monitoring support is not yet implemented
Text entry in Writer does not work completelly
Other features and/or crashes can occur
ISSUES :
For a complete list of issues see :
Aqua Issues listThank you for providing feedback about issues and problems you encountered *AFTER* you've verified that they don't already exist.
DOWNLOAD :
Archives are available in 4 locales (fr, de, en-US et ja), for both Intel and PowerPC architectures.
URL (classical download ) URL (bittorrent ) (thanks to read carefully the filename to be downloaded)
Many thanks to all the Mac porters and contributers that made this release possible
Libellés : aqua, development
Top 10 of issues : a big progress
I could not attend the
last IRC meeting ( because I had to attend
24h of computing of Maubeuge) but I was pretty sure something important happened in the afternoon :
After lot of hours tracing,
Herbert Duerr finally discovered why vcl build with debug enabled crashed : was a bad TARGET_CARBON check.
For more informations, see :
issue 72248Sometimes, they are a lot of hours spent to trace, search what could happen, hack boost ..etc, and the result, even not visible by end user, is really helpfull to the project.
Thanks Herbert !
Libellés : aqua, development
Aqua news
We now can retrieve values from preferences (thanks to Yvan Barthelemy to have seen the stupid typo who made me spend a lot of time .. ). For the curious,
the patch Philipp announced desktop and framework are added to aquavcl01. What does it mean ? Simply we will add preferences entry in system menu (and improve a bit introbitmap behaviour)
Other news : torrent ready (thanks to cloph), and upload of Aqua development snapshots scheduled. We will provide PowerPC / Intel in 4 locales : de, en-US, ja and fr.
Libellés : aqua, development
Aqua : native printing implementation started
Yvan Barthelemy started
native printing implementation for Aqua version of OpenOffice.org (without X11 )
Nothing works yet, this is just the first screenshot, but the Mac porting project is proud to show you the begining :-)

More informations :
Native Printing on the WikiGreat job Yvan !!
--
Want to join the Mac OS X port ?
Contact :
Mac porting mailing listIRC : server irc.freenode.net
channels :
#ooo_macport (english) or
#fr.openoffice.org ( francophone channel )
Libellés : aqua, development