tags:

views:

285

answers:

4

I have a carbon C++ application and I would like to programmatically do the equivalent of Command-H (to hide the application) which is available in the Application menu for my app. I have explored the carbon API for TransitionWindow and HideWindow and while these can hide my window, they do not do the equivalent of Command-H. I looked into the AppleEvent reference on the offhand I needed to create an AppleEvent but I didn't see one for hide application. Any thoughts?

+1  A: 

Sorry to answer my own question but the ShowHideProcess() API seems to do what I want. If there are better solutions I would love to hear them.

+1  A: 

Just a note: hiding a Window is very different to hiding an Application.

Matthew Schinckel
A: 

I looked into the AppleEvent reference on the offhand I needed to create an AppleEvent but I didn't see one for hide application. Any thoughts?

I'm no expert but you can just use AppleEvent to set the visible property of a process to false – at least it works with an AppleScript

tell application "System Events"
    set visible of process "xyz" to false
end tell

On the other hand, your API seems to be the most direct way and the above code probably just uses it as well.

Konrad Rudolph
+1  A: 

You can also send a kHICommandHide ('hide') command event from the Carbon Event Manager (which is what that menu item does, and which calls ShowHideProcess() when processed) if you prefer, for instance if you'd like this action to be materialised by an event.

Pierre Lebeaupin