If iChat is Cocoa, then it has just such a system built into it. The fact that third party developers aren't stepping up to learn how to use it isn't Apple's fault.
As I recall, someone brought up the fact that tabs can be added to iChat (an app I don't personally use) via an input manager. They called it a hack, but input managers are part of Mac OS X's services structure.
If you aren't aware of the types of things that can be done to a Cocoa app without modifying it's source code, then you should take a look at my page on
Further, I recently put together a presentation on services in Mac OS X which covered the following...
Philosophy of Services
Services date all the way back to the very first version of NEXTSTEP. The idea was that no app should have to stand alone and some basic functions shouldn't need to be duplicated in a number of apps.
What was originally envisioned was that one developer who was very good at one set of features would make an application. Then other developers who were good at other features would make other applications or services that would be shared with the first application. The user could then pick and choose what features they needed and put together the software on their system.
Additionally, features that are needed in a number of applications (like spell checking) would be made part of the operating system and shared with all apps that needed those features. This meant that developers wouldn't need to
reinvent the wheel to have these features as part of their application.
I've written about services in NEXTSTEP/OPENSTEP (
here) and some of the resources NeXT bundled with NEXTSTEP/OPENSTEP (
here).
Services
These are some of the services I use in Mac OS X on my systems and a quick discription of what services they provide.
DEVON Technologies Services
- AntiWordService- MS Word to plain text utility
- BlueService- send text to BlueTooth devices
- CalcService- provides simple calculations within the body of text
PDF2RTFService- PDF to Rich Text utility
- WordService- 34 common word processing features including: Reformat, Remove line attachments/endings/links/multiple spaces/multiple feeds/quotes, Trim line beginnings/line endings/lines, Sort lines ascending/descending, Shift left/right, Initial caps of words/sentences, All caps & lowercase, Mac/Windows/Unix line endings, Rotate 13, Straight/Smart Quotes, Encode/Decode tabs, Insert date/date & time/time/contents of path, Speak native/German text, Statistics
DEVON Technologies Application
- EasyFind- system find service
MacJournal- personal journal and data management app
Nisus Thesaurus- a browsable thesaurus, includes definitions
OmniDictionary- app for accessing online dictionary services (like dict.org)
RBrowser- FTP Client
Stone Design Create- web design, page layout and illustration app, provides RTF to HTML and text to image
WebGrabber- downloads a site while keeping its directory structure
Input Managers
These are services that actually modify the standard menu items for Cocoa applications. So rather than hunting through the "Services" menu for these, these are placed in the menu system about where you would expect to find such a feature.
System Services
These are services provided by the system itself to all Cocoa applications (and in some cases, Carbon applications too).
Spell Checking- This is a system wide spell checking feature available to any Cocoa app that allows you to type in text. It includes a check as you type feature and a customizable dictionary. Once a word has been added to the dictionary in one application it becomes available to all other applications that use this service. It also provide spell checking correction via a contextual menu.
Text Services- Originally designed to provide fonts and Rich Text formatting, Apple added a ton of additional features in 10.3 like single/double underline and single/double strike with choice of line color, background color (can be used for highlighting) and drop shadows (with multiple controls). There is a very nice write up on these features
here. Font management was also expanded with the inclusion of Font Book in 10.3.
Color Services- The colors panel has changed very little since it was first added in NEXTSTEP 3.0. Designed by
Keith Ohlfs this is still the most advanced color tool ever supplied with an operating system.
The main user interface is the color selector (the magnifying glass icon) and color well at the top and the swatch space at the bottom for saving colors. Some key elements include: color wheel with brightness control and opacity, color sliders (which include RGB, CMYK, HSB and grayscale), spectrum/image selector (drag-n-drop addition of images to be used as color sets) and basic colors.
Additionally, more color abilities can be added to the colors panel by third parties. A great example of this is
HexColorPicker which gives you the ability to find the HEX values for any color you pick or input a HEX value to find out what color it actually is. Another is
Painter's Picker which is designed to help select complimentary colors.
You can find a nice writeup on the colors panel in Mac OS X
here
Print/PDF Services- Back with NEXTSTEP/OPENSTEP/Rhapsody print services used the built in Display Postscript to both render images on the screen and prepare documents for output to printers. When Apple replaced Display Postscript with Display PDF in Mac OS X, PDF became the default format for the operating system.
It is via this service that any application running in Mac OS X can save a document to PDF... but other options can also be added via third party software.
For example
PStill can let you repurpose a document from the print dialog. PStill will distill a PDF using what ever setting you have left in PStill (allowing for small files while controlling the quality of the output). Similarly,
CocoaBooklet lets you create PDFs that are designed to be made into booklets directly from the print dialog.
Find Services- The find panel in most Cocoa apps is actually a system wide service much like spellchecking.
... in fact it was there before there was Linux! Services was one of the foundational technologies of NEXTSTEP.
to play with the source code of iChat, then they really should be good enough to implement what they want as a service for iChat.
But in all fairness, if you are the type of person who only uses the bundled apps with Mac OS X... you most likely aren't at the level of being able to use the source anyways.
any of the stuff made with the iChat source code any more than they currently see Fire. If they won't look for a third party app when confronted with limitations in iChat, then they won't see a third party build of iChat with modifications to it.