Cocoa differences

From: Francis James Franklin <postmaster_at_alinameridon.plus.com>
Date: Mon Mar 28 2005 - 22:09:08 CEST

Hi Y'All,

So much e-mail! Where to start?

Okay, first, I confess that Cocoa and AbiWord maintenance were (and
continue to be) a steep (though thoroughly enjoyable) learning curve
and I have often chosen very bad ways to fix things that I am still on
occasion un-fixing. Being pretty much the sole developer for the
platform for the last 6 months means that I have often had to delve
into parts of AbiWord's code that I have prayed for years (with
excellent reason) that I would never have to set foot in.

Platform Consistency

Until recently (and for a couple of years previously) I didn't have
access to other platforms so by and large I've been doing what made
sense for the Cocoa-FE without a good reference to the other platforms.
The Options dialog is an excellent example of a dialog that is (a) a
mess of code, and (b) inconsistent with the snap shots in CVS. (More
about this later.)

Am I deliberately trying to make the OSX port different? Well, by
necessity it is different in many ways, but in general I try to resist
changes that conflict with xp methodology. There's nothing that
frustrates me more than having to put #ifdef MAC_TARGET_COCOA (or
whatever) in xp code.

Many of the problems have arisen because the Cocoa port is the only one
that doesn't require the existence of a current document, and the only
one in which the toolbars are not attached to the document window
(although this is a point of some controversy). Most of the rest have
been caused by the UI zealotry of Mac users - I have been using a Mac
for 5 years now and I wasn't aware of 90% of the "bugs" that have been
brought to my attention.

Cocoa provides a number of (I believe) unique interface elements that I
would like to use, elements which are familiar to Mac users but not
available to the other platforms, or at least not easily available. So
far I haven't really tried to use these, because AbiWord's consistency
is important, and because there are far less controversial "fixes"
still to be made.

Stable vs Head

I have been working on stable because it still isn't as polished as we
would like, and thus has a way to go before the users are happy. On the
other side of this, I have as far as possible tried to avoid xp code.

Of course, if I have added features that you would like to make
cross-platform, then I'm very happy to work on an xp solution. By and
large, when working in Cocoa code I'm usually quite happy working
within the Cocoa paradigm because it simplifies matters.

Tool Palette

MSWord for Mac has a palette and I find it very useful, and also at the
time the Cocoa-FE toolbar was in dire need of fixing. So I made this a
little project, and I think it has been mostly a success. Now that I
have the plug-ins working, I can see how I could turn this into a
plug-in, and indeed I may even do that at some point.

Format Frame Dialog

A classic example of looking at the code and the expected functionality
and seeing what it should do, and what IMO was the best solution rather
than necessarily what was being done elsewhere. I think it works well,
and plan to do something similar for Format Cell.

I wasn't aware of providing different functionality, although I was
aware of implementing stuff that had apparently been neglected.
However, I also provided a clean code API in the xp class to make it
easy for the other platforms to update. I accept that I misunderstood
the nature of the dialog on the other platforms, but I continue to
believe that the previous MSWord-like behaviour was (and is) awful.

Options Dialog

Wow, what a mess. I created this new Options dialog because the current
one is in desperate need of a rewrite. I hadn't really intended it for
stable, but it turned out to be a lot more stable than the real stable
dialog so I switched it over. In case people missed it, I proposed
working on a new Options dialog for 2.4, and this is the basis for what
I planned. (The underlying code for the new Options dialog is xp, but
currently commented out.)

Cocoa Plug-Ins

We have been talking about doing a C API for ages now. I thought it
would be interesting to try to develop an Obj-C API (which could,
perhaps, be turned into a C API later) because this works well on OSX.
Whether it's strictly necessary, I don't know, but it's certainly
interesting.

The New Font Menu

Why does it have the same name? Because the localization exists, and
the purposes are clearly different. Does it need to be in the main menu
like that? Probably not - it could even be optional. Does it provide
useful functionality? Certainly. Am I flexible? Of course. I welcome
suggestions, and may even see if I can get uwog's preview to work
instead.

I don't like the idea of reverting this, because I think it adds
something very useful. I am quite happy to improve it, in whatever way.

Fun, fun, fun,
Regards, Frank
:-)
Received on Mon Mar 28 22:11:59 2005

This archive was generated by hypermail 2.1.8 : Mon Mar 28 2005 - 22:12:02 CEST