Merlin’s weekly podcast with Dan Benjamin. We talk about creativity, independence, and making things you love.
Merlin’s weekly podcast with Dan Benjamin. We talk about creativity, independence, and making things you love.
”What’s 43 Folders?”
43Folders.com is Merlin Mann’s website about finding the time and attention to do your best creative work.
Open Thread: Developing for Full Screen Mode?
Merlin Mann | Jan 23 2006
Full Screen Mode is a topic that comes up a lot here and abroad -- it's a way to set a given application to operate with as few menus, panels, and other navigational widgets as possible, claiming the entire screen, and enabling the user to focus exclusively on one task without distraction. Essentially, it temporarily hobbles your maddeningly versatile Mac into a machine for doing exactly one thing, being whatever is appearing in your single Full Screen window. And you might be amazed what a nice thing that can be sometimes. It's great for writers in particular, so it's perhaps not surprising that writing applications seem to be leading the Full Screen charge. Although you can also get FSM in Firefox using extensions and in Safari with the help of Saft. So my question, for you Mac developers in the house: I'm curious to learn more about Full Screen mode and how hard it is to make it a part of Cocoa applications. I've gotten the impression that Cocoa has "hooks" in place to hide the Menu Bar and claim all the screen space with a given document's front window, so I'm curious whether it's something that's difficult to implement. I'd love to request it in some favorite applications of mine (Hi, again, Allan!). What do you guys say? Piece of cake or pony? 31 Comments
POSTED IN:
Hmmm, what's required? You subclass NSWindow...Submitted by Fraser Speirs (not verified) on January 23, 2006 - 10:41am.
Hmmm, what's required? You subclass NSWindow and override - (BOOL)canBecomeKeyWindow to return YES. Then you instantiate it, passing NSBorderlessWindowMask as the styleMask parameter of a call to NSWindow's -initWithContentRect:styleMask:backing:defer:screen: initializer. Then you probably want to pass something like CGShieldingWindowLevel() to NSWindow's -setLevel: method before setting the window's frame (CORRECTLY handling the case where -[NSScreen screens] returns an array of more than one item (i.e. you're on a dual display box)) and putting it on-screen. Oh, and don't forget to capture some keystroke so people can get out of your fullscreen world! » POSTED IN:
|
|
EXPLORE 43Folders | THE GOOD STUFF |