Sacramento, CA

Partly Cloudy 64° | 42°

Seattle, WA

Cloudy 54° | 45°

Buk Life

Posts Tagged ‘mac osx’

12 November 2009

Creating Application Menus in Mac OSX with Adobe AIR

Adobe AIR is a great tool for quickly creating cross platform desktop applications.  For the most part you can code once and deploy on any OS that AIR supports and you app will look and feel like a native app.  There are a few caveats of course and one of them is working with menus.  In particular menus are handled somewhat differently in Mac OS than they are in Windows. This post won’t get into the nitty gritty of actually creating and modifying menu items as that is covered quite nicely in Adobe’s documentation on the subject, but I will tell you how to create native menus on Mac OS that are indistinguishable from those of native Mac apps.

First, the Differences

In Windows menus belong to each window. So File, Edit, View and such are items in each open window of an application. In AIR this corresponds to the menu property of a NativeWindow.

Windows menu example

In Mac OS the corresponding menu is called an application menu and there is only one for all windows of the application. In AIR this corresponds to the NativeApplication’s menu property.

Mac OS Application Menu

So what you say? AIR has features that let you handle Windows vs. Mac menu differences quite easily. This is true, a quick check of the docs will reveal how quickly this can be accomplished. However, you’ll notice in the above screen grab that application menus on Mac OS list the application name in bold. There is nothing in the AIR docs about how to accomplish this.

What To Do?

You can just ignore this and create a menu like the (quite nice) SQLite administration tool Lita. Note Lita has “Lita” in the menu but it’s not bolded.

Lita's Mac OS Menu

Or you can not even bother with the application name like the (also extremely useful) MonsterDebugger.

MonsterDebugger's Mac OS Menu

Both of these approaches are completely valid. After all both Lita and MonsterDebugger are incredibly useful applications that make my life as a developer much easier and lacking a proper Mac OS application menu doesn’t detract from their utility in any way. However it’s also quite simple to create application menus that look identical to a true native application.

Creating Seamless Application Menus For Mac OS

It’s so simple to create seamless application menus on Mac OS that you don’t even have to do anything! That’s right, just create an application and AIR makes one for you:

Default AIR Application Menu on Mac OS

Everything you see above you get for free (note: adl is the AIR debugger. If I were to publish a release build and install the application you’d see the name set in the application descriptor xml file). You might now be saying that this is all good and well but what if you want to customize the menu at all? The good news is you can, it just take a tad more work.

To start you’ll need to note that AIR gives us three menu items in addition to the “Application Name” item (the bold one). For this example I’ll assume you’re only interested in keeping the app name item so we’ll just get rid of everything but that one.

First you’ll need to get a reference to the application’s menu:


// Get a reference to the NativeApplication's menu, if this is Mac OS
// Note: you'll need to handle menus differently if you are on Mac OS or Windows.
// See the AIR docs related to creating native menus for details.
if (NativeApplication.nativeApplication.supportsMenu)
{
var appMenu:NativeMenu = NativeApplication.nativeApplication.menu;
}

If you were to loop over this you’d see all of the menu items from the above screen grab. You’ll also notice that each of the items is a NativeMenuItem (more on this later). Since we only want the first one we can now remove all the others:


// Get rid of our unwanted menu items
// The app name item is the first one
while (appMenu.items.length > 1)
{
menu.removeItemAt(menu.items.length - 1);
}

At this point our menu consists of one item: the application name menu item. This menu item is pre-populated with some standard elements like “About” and “Quit”. If you’re happy with this as-is, you can now freely add your own menu items. If you need to customize this application name menu item a bit simply take advantage of the fact that it’s a NativeMenuItem and go nuts.

Using this method you’ll now see your application’s name (that is, the name you set in the application descriptor xml file) up in bold when you publish a release build and install. Here at BKWLD we’ve recently used this technique and here are the results:

Spyder Elastic Sales Application Menu on Mac OS

0 Sean Monahan,Flex Developer

November 12th, 2009 at 01:19 PM
Posted By: Sean Monahan in Development

11 June 2009

Windows 7 on Mac OS X Boot Camp

imac-bootcamp

While BKWLD may be one of the most Apple/Mac centric companies I’ve worked at (only 1 guy in our Seattle office uses something other than a Mac), Microsoft has been whittling away at their next monster, Windows 7. I’ve been really impressed with how Microsoft has been handling the lead up until its release of Windows 7, namely, its free release of the Release Candidate that will work until June 2010. I decided to check it out by installing Boot Camp on my iMac at home, so I could play some good old video games on Steam.

I won’t post a full tutorial here, there are plenty a Google search away, (I ended up with the 32-bit version because of some issues with the RC on a Mac).

Windows 7’s install is much improved from Windows XP (I have never used or installed Windows Vista) it was simple, non instrusive, and smooth.

However, I got everything running great, when I rebooted back into Mac OS X, my wifi would simply not work. DHCP would simply not grab an IP address from my router no matter what I tried.

I decided that it was time to try a good ol’ Archive and Install of Mac OS X, but I was worried about the reinstall messing up all my recent work getting Boot Camp up and running. I googled for hours and could not find a definititive answer to my question, “Will Boot Camp still work after a Mac OS X Archive and Install?”

I couldn’t find any definitive answer, so I just decided to screw it all, and try it out. Reinstall worked flawlessly, my wifi was back in Mac OS X, and Windows 7 on Boot Camp still works great!

Update: You can download Windows 7 at microsoft.com.

2 Aaron Egaas,Web Applications Lead

June 11th, 2009 at 06:46 PM
Posted By: Aaron Egaas in Operating Systems