Closed Bug 115437 Opened 23 years ago Closed 14 years ago

Service to improve platform integration and enhance user experience

Categories

(SeaMonkey :: UI Design, enhancement)

enhancement
Not set
normal

Tracking

(Not tracked)

RESOLVED EXPIRED

People

(Reporter: lordpixel, Assigned: lordpixel)

Details

Attachments

(2 files)

Over the last year or so, there have been quite a few bugs where I have wanted
to improve user experience by following platform convetions more closely.

Frustratingly often, I can work out the native code I need to write, and the
Mozilla code, but I can't get reviews because it doesn't make architectural
sense to host the code in the classes I need to access or alter.

Having had enough of this, we've come up with a plan to define an XP service
intended to allow one to access provide platform specific functionality.

In general, the interface of this service is to be written in XP terms. Each
method may or may not be implemented on any given platform (either due to lack
of interest on that platform, or because the platform does not use the concept
in question).

Examples of functionality that need this sort of help:
   Dock integration on Mac OS X
   Native Proxy Icons on all Mac OS
   Interacting with the Taskbar on Windows (eg, % completion for FTP in taskbar)
   Responding to changes in the operating system theme, fonts or colour depth
This is the first cut at the interface for the component needed, written in
IDL.

On a purely technical level, this probably needs to be a service with a
contract ID. It may also want to send and receive events (but I need to find
out more about that).

This is intended to go in widget/public, with an implementation in src/XXXX
where  XXXX is each platform.
Note to self: pink points out that if we implement the lower level of this by
making say, nsMacWindow,  we can avoid calling functions that don't exist on a
given platform by going a QueryInterface on nsWindow (or top level) and seeing
if it supports the appropriate interface (nsMacWindow on Mac) before calling.
Have a look at nsINativeAppSupport.  It is *supposed* to handle these sorts of
things.  It is used on Windows to do much Windows-specific stuff.

Unfortunately, it seems like some Unix stuff went into nsAppRunner.cpp with
#ifdef LINUX (or somesuch) rather than build it into the Linux implementation of
that interface).

Anyway, definitely have a look at that and see if it meets your needs.  There is
code in place that calls this interface at interesting points in time.
I have diffs to implement nsNativeAppSupport for Mac.
Changing qa contact to me, as I am working on these now ;-)
QA Contact: sairuh → tpreston
Thanks Simon. I rolled that code into a patch I'm making for bug 90823.
qa contact windows integration-> pmac
QA Contact: tpreston → pmac
Product: Core → Mozilla Application Suite
QA Contact: pmac → nobody
MASS-CHANGE:
This bug report is registered in the SeaMonkey product, but has been without a comment since the inception of the SeaMonkey project. This means that it was logged against the old Mozilla suite and we cannot determine that it's still valid for the current SeaMonkey suite. Because of this, we are setting it to an UNCONFIRMED state.

If you can confirm that this report still applies to current SeaMonkey 2.x nightly builds, please set it back to the NEW state along with a comment on how you reproduced it on what Build ID, or if it's an enhancement request, why it's still worth implementing and in what way.
If you can confirm that the report doesn't apply to current SeaMonkey 2.x nightly builds, please set it to the appropriate RESOLVED state (WORKSFORME, INVALID, WONTFIX, or similar).
If no action happens within the next few months, we move this bug report to an EXPIRED state.

Query tag for this change: mass-UNCONFIRM-20090614
Status: NEW → UNCONFIRMED
MASS-CHANGE:
This bug report is registered in the SeaMonkey product, but still has no comment since the inception of the SeaMonkey project 5 years ago.

Because of this, we're resolving the bug as EXPIRED.

If you still can reproduce the bug on SeaMonkey 2 or otherwise think it's still valid, please REOPEN it and if it is a platform or toolkit issue, move it to the according component.

Query tag for this change: EXPIRED-20100420
Status: UNCONFIRMED → RESOLVED
Closed: 14 years ago
Resolution: --- → EXPIRED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: