Search code examples
swingclojurefullscreenseesaw

Enable full screen using seesaw?


How can I make my seesaw program full screen when F11 is pressed? (not just maximized)

I currently have this:

(defn toggle-full-screen [e]
  (-> (to-root e)
    magic!)

(def full-screen-action  (action  :name "Full Screen" :tip "Full Screen"     
                                  :mnemonic \f        :key (keystroke "F11")
                                  :handler toggle-full-screen))
(def view-menu (menu  :text "View"
                      :mnemonic \v
                      :items [full-screen-action]))

(def top-menubar (menubar :items [view-menu]))
[...]

toggle-full-screen runs when F11 is pressed however I can't figure out how to make the frame fullscreen.


Solution

  • Caveat scriptor, I haven't tried this in seesaw but I think this is mostly about directly leveraging what is available in swing.

    The following suggests what can be done with the swing API: http://weblogs.java.net/blog/mkarg/archive/2010/01/03/fullscreen-mode-cool

    Also: http://docs.oracle.com/javase/tutorial/extra/fullscreen/index.html

    At least part of the trick is to call setUndecorated on the frame.

    I haven't investigated how you get at the necessary swing objects within seesaw yet.