Musings from Mars Banner Image
For Software Addicts: Yes!MaybeNah!
Resource Posts With Tag <em>Cocoa</em>

Resource Posts With Tag Cocoa

August 16th, 2011

I don’t like the App Store, but in case I need it someday…

Tips for submitting software to the Mac App Store This looks like a good set of instructions and tips for developers who have used some other selling mechanism previously but would like to begin using the App Store. With Aquatic Prime apparently incompatible with Mac OS X 10.7 ("Lion"), I may need to find an alternative...
October 18th, 2010

Cocoa with Love: Drawing gloss gradients in CoreGraphics

Cocoa with Love: Drawing gloss gradients in CoreGraphics. This is but one of many tutorials and source code provided by Matt Gallagher on his site, CocoaWithLove.com.
September 1st, 2010

A Browser for Core Data

Browsing Core Data databases using F-Script. Hmm... I've been wanting something like this ever since I started learning about Core Data. In fact, the absence of such a tool has made me leery about using Core Data rather than a traditional database. I really like &mdash; and need &mdash; to see the data for my applications outside of the Mac OS X GUI context of my app. I gather that the app is written in AppleScript and uses F-Script to do the peeking. Now, I wonder if this lets you edit the data as well... ? That would be too much to hope for. :-)
March 24th, 2010

CocoaOniguruma: Objective-C Framework for Regular Expressions

CocoaOniguruma: Simple and tiny Objective-C binding of Oniguruma. I ran across this today after noticing that SafariStand now uses it for its regular expressions search support. Don't have a need for RegEx support yet, but I might eventually, so … I also note that the framework is open source.
February 26th, 2010

Adding An Apple Help File To Your Cocoa App

Apple Help Screencast Here's a 2008 screencast from developer Matt Neuberg explaining how to make an Apple Help bundle for your app. He walks you through every step, identifying the problems developers typically have and the secrets to their solution.
Posted in:ProgrammingTags: , , |
February 23rd, 2010

CocoaLab: New source of info for Cocoa programmers

CocoaLab. This site has loads of tutorials and other articles on Cocoa-programming topics. It also goes into specifics on issues such as software licensing and code signing. Recommends Potion Store for creating a web store to sell software.
June 18th, 2009

Mac | I Love Code

Mac | I Love Code. This is a terrific collection of tutorials on software development, covering various languages and platforms including Mac OS X (Cocoa), HTML/CSS, JavaScript, PHP, and iPhone. Just the things I'm interested in! The tutorials are contributed by some very smart developers from across the world.
May 23rd, 2009

nib2cib Enables Using Interface Builder for Cappuccino Apps

nib2cib - Cappuccino nib2cib is a command line tool designed for converting Cocoa’s nibs and xibs to  <a href="http://cappuccino.org/">Cappuccino</a>’s cibs. (If you aren't familiar with  <a href="http://developer.apple.com/documentation/developertools/Conceptual/IB_UserGuide/Introduction/Introduction.html">Interface Builder</a>, Apple's application layout software, I'm sure that xibs, nibs, and cibs are glibly inscrutable. No worries. It's not required unless you're going to be working with Cocoa anytime soon...) This means you could layout your interface in IB and then use nib2cib to convert the IB output for use in Cappuccino. Pretty cool!
April 19th, 2009

Atlas: Very Cool Developer UI for Capuccino

Atlas - 280 North. The Capuccino project seems to be growing by leaps and bounds. In addition to the amazing presentation app the project published earlier in the year, they have now demoed an equally amazing tool for actually building Capuccino interfaces and wiring up their functionality. From what the demo video shows, Atlas is going to be Interface Builder on steroids! Maybe Apple will even learn a thing or two about the direction they should be going with their developer tools for Cocoa apps. For now, you can sign up to be emailed with progress info about Atlas, which is still in testing.
March 31st, 2009

JSTalk: AppleScript For Cocoa Fans

ccgus's jstalk at GitHub

Here's the latest offshoot of the jsCocoa universe: JSTalk is a scripting language that can be used to easily interact with Cocoa apps. It's what Applescript would be if rewritten today using Cocoa and JavaScript. The download comes with a slew of example scripts and a script editor application.

March 16th, 2009

JSCocoa — A bridge from JavascriptCore to Cocoa

JSCocoa — A bridge from JavascriptCore to Cocoa

On the heels of learning about Cappuccino, here's a project that lets developers access Cocoa from within JavaScript! Natch, it's open source, with documentation on on a google code site.

March 12th, 2009

280 Slides - Web Presentations Made With Cocoa!

280 Slides - Create & Share Presentations Online

OK, this has to be the coolest web app I've yet encountered. So desktop-like you forget it's running in your web browser! Part of that must reflect its software foundation, which isn't javascript or flash or Air, or any of the other possible languages for Web 2.0-style apps. No, it's Cocoa--the same language (a derivative of Objective C) and framework Apple uses for its desktop apps!

The framework used is called Cappucino, a fairly new open source project that "makes it easy to build desktop-caliber applications that run in a web browser."

I'm all over this... definitely!

March 1st, 2009

Fantastic Resource for Learning Cocoa Bindings

Cocoa Bindings Examples and Hints

This page has lots of great explanations of various aspects of bindings and key-value observing in writing Cocoa apps, but what makes it really special is that the author has provided a slew of example applications as well. You can download the apps with the source code.

Posted in:ProgrammingTags: , , |
January 16th, 2009

Very Clear and Useful Article on Cocoa Debugging and Dead-Code Stripping

seriot.ch - Removing Cocoa Dead Code Using Code Coverage

Very glad I found this one... now I hope I remember I've put it here in my Cocoa bin!

July 22nd, 2008

Theocacao: Great Resource for Cocoa Fans

Theocacao Just ran across this site today and found some great demos of new Leopard APIs for core animation. I was specifically looking for demos of using the new CGWindow methods.
March 24th, 2008

CrystalClear Interface Update: Version 1.9.1

CrystalClear Interface: Where No Theme Has Gone Before
Update 3/24/08: New download of 1.9.1 posted. Yesterday’s post inadvertently had the 1.9.0 installer instead of the 1.9.1 installer. Sorry!

Update 3/23/08: This release fixes a problem with the uninstaller, and is otherwise the same as 1.9.0. The uninstaller now runs a new utility, GraphicsToggle, after running the installer/uninstaller, and this takes care of making sure the Leopard graphics are fully restored. See the documentation included with the download for more information about GraphicsToggle.

Since releasing the last version of CrystalClear Interface (CCI) in January, I’ve been hard at work on a lengthy—and, it sometimes seems, never-ending—list of bug fixes. Given what CCI is trying to accomplish, I don’t suppose I’ll ever release a bug-free version. However, I’m pleased to say that version 1.9 is much better behaved than 1.8.

Of course, the really fun part for me is seeing what else I can get CCI to do in the way of theming various aspects of Aqua. Many of the experiments in 1.9 are customizations I would have relied on ShapeShifter for if it were available for Leopard. However, it appeared that Unsanity was going to be some time in getting a Leopard-compatible ShapeShifter finished, and (no offense, Apple!) I’ve really gotten bored (sick?) of the Aqua “theme.”

I mean seriously, Aqua is soooo 2001! I don’t know about you, but I’ve been itching for something insanely different for awhile now. Leopard is a marvelous upgrade in many ways, and yes, it did finally introduce the much-requested “unified” theme for OS X windows, a controversial (why?) new menubar, and a cool new Dock, but overall its look and feel is the same-old, same-old Aqua we’ve used since Mac OS X 10.0. Seven years is a long time in the Internet age, Steve! (But you know that, I’m sure… we all have our multiple priorities to juggle.)

There really are too many enhancements in CCI 1.9 to list them all here, but here a few of the highlights:

  • Transparent scrollbars. I’ve been trying to make these in ThemePark and ShapeShifter forever, but finally gave up some time ago. I’m pleased to say that I was successful in bringing them to shiny life in CrystalClear Interface 1.9!
  • Titlebar Buttons. There’s nothing exciting in titlebar buttons per se, but Leopard windows refuse to use the ones you slip into Extras.rsrc, so I had to try to the CCI route. It worked!
  • PopUp Buttons. In another experiment, I tried banishing Aqua from my popup buttons by forcing them to adopt a different, Apple-designed “bezel style.” As I am quite fond of the “recessed” bezel style introduced in Tiger, I chose that one.
Transparent Scrollbars in CCI 1.9Customized Toolbar Buttons in CCI 1.9Customized PopUp Buttons in CCI 1.9Customized Segment Buttons in CCI 1.9New Theme with CCI DisabledCustom HUD Buttons & Bevels
  • Other Buttons. The trick I used for popup buttons came in handy for theming other buttons as well… again using alternative “official” bezel styles. You’ll see the shiny metal theme used for segmented buttons and push buttons (including toolbar buttons like those used in Mail). Disclosure buttons also get a tweak.
  • HUD Windows. I also did some work on this kind of window, trying to unify the look across the various applications that use them, and across the kind of “utility” window they represent.
  • Text Color Contrast. My attempt to make sure all text is readable regardless of the window color, level of opacity, or desktop picture you may prefer has improved in 1.9. Still needs work, but it’s much better.
  • System Graphics. I decided to go ahead and release a custom version of Extras.rsrc (and Extras2.rsrc for Intel Macs), since it incorporates some of the system graphics I haven’t had time or been able to customize using Cocoa in CrystalClear Interface itself. In this category are things like tab bars, tab bar background bevels, text field overlays, progress bars, radio and check buttons, and a few others. The CCI 1.9 install program includes an option to install these graphics if you choose. (An uninstall option restores the original system graphics files.) It’s important to note here that most of the graphics in the Extras resource files only work by disabling some of the new Leopard graphics. In the Preferences for CCI 1.9, I’ve added some options to let you choose whether or not to use CCI graphics in this manner. You can opt out of CCI’s graphics either globally or for individual applications.
  • New Window, Toolbar, and Titlebar Gradients. I started playing with Leopard’s new NSGradient class and discovered how easy it is to create cool gradients for these window elements. In CCI 1.9, you’ll discover most of these when you set CCI to “Disabled” for a particular application. However, the new gradients also show up in some Carbon applications like the Finder or PhotoShop when you call forth an Open or Save dialogue box. In a future version, I’d like to make this window style an optional variant within CCI Preferences. Along the same lines, you’ll find some HUD style windows popping up even if you have CCI disabled.

Sad to say, all of these enhancements do come at a price.

No, I’m not talking about money (though I’d really like a few bucks one day for all this toil and trouble!) The price is that I’m jettisoning support for Tiger (Mac OS X 10.4) as of CrystalClear Interface 1.9. I had intended to keep CCI running on Tiger for some time, but even though I had coded to keep Leopard-only code out of Tiger’s way, when time came last month to test what I had, it became clear pretty quickly that Tiger just didn’t want to play along. Not only do I have a real shortage of time, but my only Tiger test system is going away soon, so I won’t even have a way to test if I did have the time.

So… sorry, Tiger fans. The good news is that you still have ShapeShifter to satisfy your diet for theming alternatives. In the meantime, save up your money and upgrade to Leopard when you can… if for Time Machine alone, it’s well worth it! (Time Machine seems more awesome too me the more I use it. How did I ever get along without it?)

And Leopard fans, rejoice! CCI 1.9 begins to feel like an actual, complete theme… and one of the only options I’ve got at this point.

What Does CrystalClear Interface Do?

Rather than repeat everything from the January article, I’m just going to link to it. It has a section with the same heading as this one that runs down all of CCI’s features pretty well.

However, because of continuing confusion about where you can access CCI’s Preferences window, I’m reiterating that info here. As with the previous versions, you access CCI Preferences by clicking on the small, round icon in any application in which CCI is loaded. For example, here is where CCI’s menu appears in TextEdit: CCI's Icon in TextEdit Menubar

Caveats for CCI 1.9

So, CCI 1.9 does all these cool things, but what’s the downside? Well, I wouldn’t be a good wizard if I didn’t warn you that “Yes, Dorothy, there is a dark side to CrystalClear City.”

  • Although there are fewer cases that I know of this time around, you will undoubtedly encounter an application that doesn’t work well with CCI turned on. In this case, you should try just disabling CCI for that app by using the checkbox at the top of the CCI Preferences panel.
  • Aperture crashes when you terminate it. It works fine otherwise.
  • Small scrollbars need a smaller image to go with them. In addition, empty scrollbars may show a small, unnecessary piece of themselves at the top of the scroll track.
  • In apps such as Mail and Activity Monitor, the layout of items in a given Preferences panel tab gets messed up if you close and then reopen the panel.
  • In some Carbon apps, such as Photoshop, you’ll find that the background window color doesn’t match the background color of button controls and/or text.
  • Buttons don’t always get themed when you first open a window or tab item. You can force them to theme themselves by tabbing to a different keyboard input control, or by clicking in an inactive text field.
  • The Crystal Menubar still isn’t always showing its state correctly in the CCI menu.
  • You may find memory usage higher than usual in some applications… although I’ve done a lot of memory-leak cleanup, you can never do enough, it seems. I find Safari and iWeb, in particular, get draggy over time, but they snap back when I restart it. (I do think CCI makes iWeb more crash-prone than usual.)
  • When you have CCI disabled in an application, you may find a window (usually one such as a preference panel or utility window) that refuses to be dragged. This problem occurs when you first disable CCI in an application and will be eliminated by restarting the app.
  • If you have CCI disabled and then re-enable it, one of the windows may take on a “shadowy” appearance. You can workaround this by closing the window’s toolbar and reopening it. Or it will go away if you restart the app.
  • In Pages with CCI disabled, you will experience a lag in keystrokes initially. To fix the lag, resize the window slightly. The problem will not recur during the current Pages session.
  • In Numbers with CCI enabled, attempting to use one of the popup buttons on the toolbar will cause the app to crash. To workaround, either disable CCI or do some work in your spreadsheet before clicking on a toolbar popup button.
  • With CCI disabled, some HUD-style, dark-background windows use black text rather than a contrasting white, as they do with CCI enabled.

As before, Crystal Clear has much more of an effect on Mac OS X apps that were developed using the “Cocoa” frameworks than it does on apps developed with the older “Carbon” frameworks. Some apps are a mix of the two frameworks, so some windows may get themed “clear,” while others won’t. Most of the applications Apple builds are Cocoa apps, with the notable exceptions of iTunes and the Finder. Nearly all new Mac apps built today use the Cocoa frameworks, but a number of high-profile apps that have been around for years are still built with Carbon. In this latter category are all apps from Microsoft and Adobe, as well as some older apps from Mac vendors that are now building with Cocoa, such as BBEdit (BareBones).

It’s also important to note that CCI 1.9 will be most enjoyable if you run it on a recent-model Mac with at least 2GB of RAM and a 2Ghz or better processor.

Information about Cocoa InputManagers on Leopard

Left To Do For Future Versions

No, I’m not done yet, much to my wife’s dismay. :-) Although I intend to take a break for awhile (if I can drag myself away…), here are a few things I still want to incorporate into CrystalClear Interface:

  • Menus.
  • Menubar.
  • Focus highlight color.
  • Spotlight.
  • Did I mention Menus?
  • Other applications.
  • Finder and other semi-Cocoa Carbon apps.
  • Expand CCI Preference options.
  • Allow user customization of window elements (backgrounds, buttons, etc.)
What’s in the CCI Download Package?

Not nearly as much as before! Besides some nice desktop pictures, documentation, and a screenshot, the 1.9.1 package just includes the CCI software installer, which lets you do the following:

  1. Install CrystalClear Interface 1.9.1. This installation also checks to see if you have an old version of SetAlphaValue installed and moves it to a (Disabled) folder, since it can conflict with CCI.
  2. Optionally install system graphics. This option is off by default, but if you want to use the custom “Extras” resource file included in the CCI installer, click the checkbox before running the installer.
  3. Uninstall. The Apple PackageMaker program doesn’t make including an uninstaller very elegant, but I’ve put one in anyway. If you want to uninstall CCI and the custom system graphics at any time, run the CCI installer again and select the uninstall option. (Be sure to deselect the install option if you do this.) Note: The install program will still label the Uninstall step as an Install step.

Download CrystalClear Interface 1.9.1 (7.7 MB)

Update 3/16/08: If you uninstalled CCI 1.9.0, and buttons in the Finder and Safari no longer have the new “Leopard” look, download GraphicsToggle and run it. Just doubleclick on the GraphicsToggle icon, and it will do its thing and then quit the Finder. You’ll need to relaunch the Finder to complete the restoration.

Update 3/23/08: The new CCI 1.9.1 package not only includes GraphicsToggle as a separate app, but also incorporates it into the installer/uninstaller, and this takes care of making sure the Leopard graphics are fully restored. See the documentation included with the download for more information about GraphicsToggle.

Note: If you’re looking for the ShapeShifter theme, the Crystal Albook iconset, or other extras, you can download them from the Mars Themes page… select Crystal Clear (for ShapeShifter) version 1.5.

Screenshot with CrystalClear Interface 1.9
LICENSE

© 2008, Leland Scott, Musings from Mars

0Use of this software is free of charge, but redestribution or modification is prohibited without the author’s permission. All rights reserved. The author assumes no responsibility for any damage to your system that may result from the use of this software. Please be sure to read all instructions and information in order to make the most of CrystalClear Interface.

Version History
1.9.1 03/23/08 Incorporates a new utility as part of the uninstall process that makes sure the Leopard graphics are fully restored to their original state. This program, GraphicsToggle, is also included separately in the download package for users of CCI 1.9.0 who want to use it after uninstalling.
1.9.0 03/12/08 Significant improvement in stability, and numerous extensions in capability. CrystalClear Interface 1.9 begins tackling theming chores previously handled by ShapeShifter, and also makes its presence felt visually on “disabled” apps. The installer optionally installs a system graphics file that replaces some images with those from the ShapeShifter version of Crystal Clear. Note: Starting with this release, CCI will only run on Mac OS X 10.5 (”Leopard”).
1.8.12 01/02/08 Additional round of performance optimizations and bug fixes. Targets include iPhoto, iChat, PhotoBooth, iWeb, and, on Leopard, QuickLook. Crystal Menubar’s launch mechanism still needs work, but it should no longer drop down the screen when you enter full-screen mode in an application.
1.8.0 12/1/07 CrystalClear Interface was numbered early in development, since it was conceived as an extension of the ShapeShifter theme, CrystalClear. However, things turned out a bit differently. The article on Musings from Mars explains.
1.5 9/7/07 Crystal Clear 1.5 was developed to complement CrystalClear Interface, then in development.
1.2 6/6/07 Crystal Clear 1.2 introduces a new approach to the system menubar that attempts to solve the problem created by backgrounds in menu extras there. There are many other new interface elements as well as some fixes to earlier ones. This version does not include the Crystal Albook icons, but they can be downloaded separately. See this article for the latest information on Crystal Clear releases.
1.1 4/19/07 Crystal Clear 1.1 has several major new interface elements as well as a newly designed, full set of Crystal Albook icons (version 1.0).
1.0 3/26/07 Crystal Clear 1.0 provided a complete package, with both “Lite” and “Dark” variants included. This release also included an initial set of Crystal icons based on the Albook icon set.
0.6 3/2/07 Introduced a variant called Crystal Clear Lite, which utilizes translucent white menus instead of translucent black ones. The variant also incorporated numerous other improvements and bug fixes to the original release.
0.5 2/13/07 First release of Crystal Clear. This version is what became known later as Crystal Clear Dark. The development of Crystal Clear was described in this introductory article on Musings from Mars. A few days earlier, this preview article appeared, with many application screenshots.

January 2nd, 2008

Announcing CrystalClear Interface v. 1.8.12

This unexpected journey into the realm of transparent user interfaces has taken me much further than I ever imagined. It's been almost a year now since the first inkling of the idea rattled my brain, which led to the first release of Crystal Clear for ShapeShifter in mid-February.

Thanks to the Cocoa InputManager SetAlphaValue, I was led, Pied-Piper-like, into the enormous and strange world of Objective-C and Cocoa during the summer. I'm finally surfacing from that expedition and have brought a souvenir of my travels into the strange, terrifying, and glorious realm of Cocoa.

Each computer user will have to decide for themselves just how much transparency they can stand while working at their Mac. I was surprised at the amount of loathing that was expressed towards Leopard's newly translucent menubar last month. But I don't think it's indicative of any permanent flaw in the concept. Quite the contrary, in fact: If anything, Leopard's toying with translucency is too much of a baby step, on the one hand, and smacks of me-tooism with Vista, on the other.

Very briefly, the premise I'm proposing is that our computer monitors are essentially glorious light sources, much like the ones that shine through windows in our houses and automobiles. Just as we do with those windows, there are times when we want to bask in the beauty shining through, and other times that we prefer to close the blinds to avoid glare. On the computer, we already know how to close the blinds. I'm suggesting that there's a world of beauty awaiting computer users who can enjoy the light as well.

Based on my experience in building this software, I'd say transparency is quite practical to achieve on the Mac, with the appropriate support and technical leadership from Apple. What you'll find in CrystalClear Interface is flawed in a number of ways, but is still a good demonstration of what's possible. I'll have more to say on this point once I recover from this release, which is already 3 months later than I had planned.

Since this trinket I'm bringing, which I'm calling CrystalClear Interface, is still a work-in-progress, I'll certainly keep tinkering away at it and will post updates for any who want them.

border: none; height: 220px; width: 300px;

InterfaceBuilder on Leopard with CrystalClear Interface 1.8 and the Eagle Nebula desktop picture (c/o finalfrontier.za.org). Click for larger version.

For now, CrystalClear Interface is available for free, but if I'm able to make the improvements I envision--both in functionality and in stability--I may want to get a little monetary reward for my bauble eventually. That said, if you try CrystalClear Interface now, learn how to use it, and like it, it would be terrific to know of your appreciation by way of a donation (you can use the link on this page for that).

The download package has three documents that give brief explanations of its contents, including a Help document for the new CrystalClear Interface software. What follows are two lists: First, some highlights about the latest, greatest Crystal Clear release, and second, the contents of the download itself. There's a lot here, so pay attention! :-)

First, it's important to understand that Crystal Clear Interface can be used either in conjunction with the Crystal Clear appearance theme for ShapeShifter, or on its own without ShapeShifter running. It's also compatible with numerous ShapeShifter themes besides Crystal Clear. Another confusing point is that I'm releasing here an upgrade to the Crystal Clear ShapeShifter theme as well, though you probably won't want to use it without using CrystalClear Interface.

What Does CrystalClear Interface Do?

Assuming you're already familiar with the appearance theme (if not, there's a Welcome document in the download that covers it), the following is a list of the user-interface customization options that are introduced with Crystal Clear Interface. Many of them have been mentioned in the two preceding articles on this release, which are worth looking at for the screenshots and screen movies if not the words:

  1. Crystal Clear 1.5 Preview:
    Yes! The Term "Opaque Window" Is An Oxymoron
    (8/6/07)
  2. Update On That Crystal I’ve Been Growing (10/11/07)
  3. Manages overall window transparency (as SetAlphaValue did), including the ability to customize transparency for windows both globally and on a per-application basis. Also from SetAlphaValue, you can set custom transparency values for individual, named windows, and for unnamed windows of given dimensions.
  4. Adds separate transparency settings to window backgrounds and background colors of text views of various kinds.
  5. Replaces the default window "frames" of Mac OS X Aqua with transparent ones that more or less reproduce the look of windows in the ShapeShifter version of Crystal Clear. Non-utility panels have a visually distinct transparent frame.
  6. Puts a Crystal Clear icon in the main menubar where you can find it. (Many users of SetAlphaValue could never figure out how to find its powerful settings... ) There's also a preference option that lets you move the Crystal Clear menu item from the main menu to the application menu if you need to.
  7. The Preferences pane has been redesigned with an eye toward expanding the number of settings users can control. Initially, it adds six controls: Three color controls and three optional settings.
  8. The Color tab lets you customize colors in three parts of the interface. Most significant, you can customize the background color of application windows, using the standard color picker and also including transparency as one variable. With this option, you can restore opaque windows if that's your pleasure. The second control is for the background color of "column view" text areas, such as the ones in iCal, Xcode, Mail, etc. Finally, I added an option that lets you customize the text color in certain menus--namely, the ones that you always wished you could theme when using or designing a "dark" ShapeShifter theme.
  9. CrystalClear Interface also introduces somewhat superfluous animations that fire when you close windows. An option in another new tab lets you turn the animation mode off if you like.
  10. Another option, which is
    disabled by default, lets you turn on SAM (single application mode). Since SAM is one of the desktop paradigms that I believe are essential to successful adoption of clear interfaces, I'm offering this minimal version as a start. I still use LiteSwitch myself for day-to-day SAMming, because it (a) works with Carbon apps, too, and (b) implements the standard "Shift-when-switching" key that lets you keep two (or more) applications onscreen at the same time when necessary.
  11. Utility-type panels (such as the color and font panels, and "inspector" panels) are designed with a faux "HUD" look that’s become popular in Apple’s software lately.
  12. Sheets are designed as a light blue sheet of glass, and "alert" panels appear in a gold color. The structure is in place to allow users to customize the color settings for both of these kinds of window objects.
  13. To make CrystalClear windows look as much like glass as possible, I was able to persuade a slice of transparent "highlight" glass to affix itself to each one. The effect is really quite cool. The shine resizes itself with its window and disposes of itself when the window is closed. Again, I plan eventually to let users turn the shine on and off, and also to select from a few other shine "styles."
  14. This version has a routine that changes the background text color from black to white in the HUD-style windows that are by default set in a dark translucent color. Customizing the text color contrast in this way is key to making windows of variable color and transparency readable. I've managed to do the same thing to some other windows (concentrating on those that have transparent backgrounds), but the function is still evolving.
  15. Besides a link to Preferences, the CrystalClear menu item now also has a selection for turning the Crystal Menubar on and off. (The on-and-off part is still a bit buggy.) This function activates a newer version of the Crystal Menubar, but you can still use the one I released in August instead.
  16. You can disable CrystalClear Interface on a per-application basis, as you could with SetAlphaValue. Even in this mode, however, you can enjoy a side-benefit of the software: CrystalClear Interface activates the "Opacity" slider everywhere the Color panel is used (well, except for Carbon apps). This means you can get transparent backgrounds in applications like Xcode, Coda, Smultron, etc., that otherwise wouldn't let you!
What's In the Crystal Clear Package?

The Crystal Clear download includes the following files in the main folder:

  1. Crystal Clear v15.guiKit (Both variants of Crystal Clear for ShapeShifter).
  2. CrystalClear Interface.mpkg (Installer for CrystalClear Interface).

There are six subfolders in the package:

  1. docs: Two Welcome documents, one for CrystalClear Interface and one for Crystal Clear for ShapeShifter, and a Help document (which is also included in the software's preferences pane).
  2. icons: I've updated the Crystal Albook icon set, adding a dozen or so new icons. This folder has a GuiKit file for use with ShapeShifter, and three iContainers for use with CandyBar (they were made with the terrific, new CandyBar 3.0, but I think can be used with previous versions as well).
  3. menu extras: Here you'll find folders with menu-extra graphics and installation ReadMe files for Chronosync, DropCopy, FastAndSlow, FastScripts Lite, iKey, MainMenu, Sound Source, Yahoo Widget Engine, and YouControl Tunes.
  4. other extras: This is where you'll find the iCan theme, the updated Growl style, and a folder for the extra SafariStand toolbar graphics.
  5. pics: Contains full-screen previews for both Crystal Clear and CrystalClear Interface. The pic of Crystal Clear (ShapeShifter) is taken with CrystalClear Interface running on Tiger (Mac OS X 10.4.10). The pics of CrystalClear Interface on its own is taken in Leopard (Mac OS X 10.5.1).
  6. desktop pics: A Crystal Clear user sent me a terrific batch of desktop pictures with a Cosmos theme, which, given Leopard's default desktop, is quite timely. I've been enjoying using them lately, and in fact they provided the backdrop for some of the pictures I took for the Musings from Mars release article.
Known Issues and Usage Notes
As before, Crystal Clear has much more of an effect on Mac OS X apps that were developed using the "Cocoa" frameworks than it does on apps developed with the older "Carbon" frameworks. Some apps are a mix of the two frameworks, so some windows may get themed "clear," while others won't. Most of the applications Apple builds are Cocoa apps, with the notable exceptions of iTunes and the Finder. Nearly all new Mac apps built today use the Cocoa frameworks, but a number of high-profile apps that have been around for years are still built with Carbon. In this latter category are all apps from Microsoft and Adobe, as well as some older apps from M
ac vendors that are now building with Cocoa, such as BBEdit (BareBones).

In addition, there are a number of applications that may not work properly with CrystalClear Interface running. On Leopard (Mac OS X 10.5), in particular, I have done less testing than on Tiger. Applications that I've experienced some difficulty with include:

  1. InterfaceBuilder (Leopard) (better with v. 1.8.1)
  2. Numbers (actually works now with v. 1.8.1)
  3. Console (Leopard). It runs fine, but crashes if you close a window showing the tabular log data.

If you need to disable CrystalClear Interface in a particular application, simply select the checkbox at the top of the Preferences window. In this situation, it's a good idea to quit and restart the application afterwards.

On Leopard, there is a bug involving the main menubar, which I'll be working on for a future release. Occasionally, selecting the main menubar will cause the application to crash, but it's a fairly rare occurrence. I also experience an occasional crash when clicking on a window's close button.

The Crystal Menubar loading/unloading mechanism is still buggy. If you find that you've launched more than one menubar, for now you'll have to use ActivityMonitor to quit one of them. In ActivityMonitor, enter "Crystal" in the search field to locate the Menubar applications.

I'll be actively developing CrystalClear Interface for some time, so if you experience a particular bug, please email me a report with as much detail as possible: llscotts at fastmail.fm

To uninstall CrystalClear Interface, delete the folder "CrystalClear" from your /Library/InputManagers folder. Deleting this folder will require you to authenticate as an admin user.


Download

Download CrystalClear Interface 1.8.0 package (12.4 MB)

» Update 01/02/08: Download CrystalClear Interface 1.8.12 (0.8 MB)

Note: Version 1.8.12 consists of an additional round of performance optimizations and bug fixes. Targets include iPhoto, iChat, PhotoBooth, iWeb, and, on Leopard, QuickLook. CrystalBar's launch mechanism still needs work, but it should no longer drop down the screen when you enter full-screen mode in an application.

The thumbnails below link to full-size desktop screenshots on my deviantArt site. Hope you enjoy the surprise!

0



LICENSE

c 2007, Leland Scott, Musings from Mars

Use of this software is free of charge, but redestribution or modification is prohibited without the author's permission. All rights reserved. The author assumes no responsibility for any damage to your system that may result from the use of this software. Please be sure to read all instructions and information in order to make the most of CrystalClear Interface.

Version History
0.5 2/13/07 First release of Crystal Clear. This version is what became known later as Crystal Clear Dark. The development of Crystal Clear was described in this introductory article on Musings from Mars. A few days earlier, this preview article appeared, with many application screenshots.
0.6 3/2/07 Introduced a variant called Crystal Clear Lite, which utilizes translucent white menus instead of translucent black ones. The variant also incorporated numerous other improvements and bug fixes to the original release.
1.0 3/26/07 Crystal Clear 1.0 provided a complete package, with both "Lite" and "Dark" variants included. This release also included an initial set of Crystal icons based on the Albook icon set.
1.1 4/19/07 Crystal Clear 1.1 has several major new interface elements as well as a newly designed, full set of Crystal Albook icons (version 1.0).
1.2 6/6/07 Crystal Clear 1.2 introduces a new approach to the system menubar that attempts to solve the problem created by backgrounds in menu extras there. There are many other new interface elements as well as some fixes to earlier ones. This version does not include the Crystal Albook icons, but they can be downloaded separately. See this article for the latest information on Crystal Clear releases.
1.5 9/7/07 Crystal Clear 1.5 was developed to complement CrystalClear Interface, then in development.
1.8 12/1/07 CrystalClear Interface was numbered early in development, since it was conceived as an extension of the ShapeShifter theme, CrystalClear. However, things turned out a bit differently. The article on Musings from Mars explains.
1.8.1 12/22/07 This version adds an option to disable the "window shine", as well as makes a number of improvements to stability and performance, particularly on Mac OS X 10.5 ("Leopard").
1.8.12 01/02/08 Additional round of performance optimizations and bug fixes. Targets include iPhoto, iChat, PhotoBooth, iWeb, and, on Leopard, QuickLook. CrystalBar's launch mechanism still needs work, but it should no longer drop down the screen when you enter full-screen mode in an application.
border: none; height: 220px; width: 300px;
border: none; height: 220px; width: 300px;
border: none; height: 220px; width: 300px;

System Preferences (Desktop Pictures) on Leopard with CrystalClear Interface 1.8 and the Incarnation desktop picture (c/o artofgregmartin.com). Click for larger version.

Time Machine on Leopard with CrystalClear Interface 1.8 and the default Mac OS X 10.5 desktop picture (Warp). Click for larger version.

Automator on Leopard with CrystalClear Interface 1.8 and the Celestia III desktop picture (c/o artofgregmartin.com). Click for larger version.

PathFinder (Spotlight Viewer) on Leopard with CrystalClear Interface 1.8 and the Orion Nebula desktop picture (c/o spacewallpapers.net). Click for larger version.

November 13th, 2007

Blow-By-Blow Description of How an NSApplication Comes Alive

Lap Cat Software Blog » Blog Archive » Everything you always wanted to know about NSApplication This is a very interesting blog article, accompanied by an equally interesting test application. The author wanted to figure out precisely the order in which NSApplication calls events and objects as it opens. Now, I can confirm that he's not alone in this curiosity, and I'm very appreciative that he took the time to document it. The app writes very verbosely to the Console, delineating each teeny tiny step that takes place.
October 31st, 2007

Bagelturf - Resources And Articles For Cocoa Programmers

Bagelturf - Resources And Articles For Cocoa Programmers I stumbled upon this Cocoa blog yesterday, drawn by an article on enabling/disabling controls. Turns out the owner has a really useful series of tutorials here, complete with readable text and code, plus downloadable xCode projects. One is a 10-part series on key-value coding that I'll definitely have to check out! Amazing how generous we programmers are as a lot, don't you think? You know this is a good guy when you see his tag line is "Shining out like a shaft of gold when all around is dark." Certainly more inspiring than claiming to be "like a stream of bat's piss," eh? :-)
September 15th, 2007

CocoaDev’s “How To Program In OS X”: A Great Resource, But A Lousy Pointer

CocoaDev: HowToProgramInOSX I can't believe in all the times I've visited CocoaDev, including the hundreds of Google and CocoaDev searches I've done while trying to learn Objective-C and Cocoa, that this fine set of pages passed me by. The wiki page consists of a wonderful collection of articles contributed by readers on all the important subjects beginners need to learn in order to program Cocoa apps. Problem is, as a wiki, the page's title is "HowToProgramInOSX", and that's not a term anybody is ever going to type into a search engine. For that matter, neither are such great offerings on this page as "LogicalOperators," "HowToUseOutlets", "AnatomyOfADotMFile," and so on. I guess this is kind of a drawback to the default wiki "style," which is probably why successful wikis like Wikipedia provide "search-engine friendly" pointers to all of their pages. :-)
Just Say No To Flash