Modifying Stickies

One of the great things about Macintosh is that whatever you see, download,
or buy isn't necessarily what you have to live with on a day-to-day basis. Since
the good old days of ResEdit, ardent Mac enthusiasts have diced, sliced, and
julienne-fried their applications to customize their look.

Did a dialog box
offend your artistic sensibilities? A few minutes in ResEdit would update that
box to a newer, fresher presentation. Not happy with your icons? ResEdit let
you edit the bits. With ResEdit, users could move around buttons, change sounds
and pictures, edit text, and more.

OS X continues this grand tradition and expands
upon it. Not only can Mac enthusiasts modify an application's look, but we can also actually change the way it works. OS X's Interface Builder, part of
its Xcode development suite, provides all the tools you need to go beyond. With
Interface Builder, you can accomplish the unthinkable. It lets you customize
existing applications in ways that ResEdit users never dreamed of. If you think
that customizing an application interface involves nothing more than moving
a button into a new position or resizing a screen, think again.

In this article,
you're about to learn how to update your Stickies application to give it abilities
that its authors probably never considered.

Getting Ready to Hack

You're about to perform some weird and wonderful hacks on your Stickies application.
Before you get started, there are some preparatory steps you need to do first.

Make sure you've installed the Xcode Tools on your Mac. The easiest way
to see if you have the Xcode Tools installed on your Mac is to open a Finder
window and click on your primary hard drive's icon in the Sidebar. If you
see a folder named Developer, Xcode is installed. If not, you'll need to
install the Xcode Tools.

The Xcode Tools can be found on a separate disc that comes with Mac OS
X Panther. You must install the tools to add the developer environments,
documentation, applications, and utilities, all of which gets placed in
the Developer folder.

If you can't find the Xcode Tools CD (also called the Developer
Tools CD), the tools are freely available from Apple's developer
website: http://developer.apple.com/tools/download/.
The Xcode Tools download is about 350 MB, so you'll need a fast
connection and a little bit of patience to get it all down. Be prepared
to spend a little time signing up for a (free) Developer Connection
account.

Open a new Finder window and go to the Applications folder (Shift-CMD-A gets
you there the fastest), and then select the Stickies application.

Create a copy of the Stickies application by choosing File -> Duplicate
(CMD-D) from the menubar. This creates an exact duplicate of the Stickies
application and saves it as "Stickies copy" in the Applications folder.
You'll need this copy to restore Stickies to its original version once you're
done with this article.

Drag Stickies into your dock. This will provide quick access to the application
as you work through the steps in this article.

In your Finder window, change folders to your home directory (Shift-CMD-H)
and then into the Library folder beneath it.

If you've ever used Stickies before, you'll find a StickiesDatabase file
in your ~/Library folder. (If you've never used Stickies before, feel free
to skip to the next step.) Select StickiesDatabase and choose File ->
Duplicate (CMD-D) from the menubar. This duplicates your Stickies database
(to the "StickiesDatabase copy" file). This will allow you to return to
your current set of Stickies after making any mods to the program while
working through this article.

Launch Interface Builder (/Developer/Applications). Part of the Xcode Tools,
Interface Builder is used for designing the user interface (windows, dialogs,
etc.) for an application.

If needed, read through any release notes and then close the release notes
window. (Release notes only appear the first time you launch the Interface
Builder, or after you trash Interface Builder's preferences: ~/Library/Preferences/com.apple.InterfaceBuilder.plist.)

Click on the General tab to select the General Preferences pane. Make sure
that the following items have been checked. Some of these choices will not
go into effect until you quit and restart Interface Builder, so close the
Preferences window (CMD-W), and then quit (CMD-Q) and launch Interface Builder
again.

By checking these preferences, you set Interface Builder at its greatest
level of user-friendliness.

Note for International Readers

The steps in this article describe how to edit English-language project
files for the Stickies application. To make changes for languages other
than English, follow these directions:

Copy the StickiesDocument.nib file from the English.lproj folder
into your language localization folder, e.g. into Italian.lproj
or Spanish.lproj, etc. This will overwrite the copy of StickiesDocument.nib
in that folder.

Edit this copy of the StickiesDocument.nib file according the directions
in this article.

There are no other steps that need to be taken; however, you may want
to translate any English text (e.g. Stampa rather than Print) in your
interface. Do not, however, attempt to translate the connections. For
example, connect your Stampa button to print:, not to stampa:.

Exploring Stickies

Stickies is quite the cool application. It lets you put notes on your screen
and float them over your workspace. You can use Stickies to add reminders about
appointments, phone calls, or just to store frequently used text. But if you
think that notes are all there is to Stickies, think again. With Stickies, you
can use fully formatted rich text and you can store pictures as well as text.
In addition, you can:

Search: Use "Find" to search through your Stickies collection
(CMD-F).

Choose Backgrounds: Set the color of each Sticky to any
of the six predefined pastels in the Color menu.

Set Text Colors: Change the color of text by selecting
it, opening the Color window (Font -> Show Colors, CMD-Shift-C), and choosing
a new color.

Watch a Movie: Simply drag a movie onto a Sticky and then
click play.

Stickies allows you to store graphics, colors, and even movies and sound
files on free-floating notes.

All these features (and more!) make Stickies a fun and useful program. However,
there are some areas in which Stickies clearly falls short. Here are just two,
both of which can be addressed by simple end-user edits in Interface Builder.

Stickies don't scroll: If your text or image is larger
than the current Sticky, you'll have to resize or use a "select-to-scroll"
trick to move to content that's not currently shown on-window.

Styling is hard: The variety of Font menus and submenus
makes it hard to directly stylize your text in Stickies. It's easier to
do the work in TextEdit and then use the services menu (Services -> Make
Sticky Note, CMD-Shift-Y) to create a new Sticky with the stylized text.