japplemenubar.JAppleMenuBar Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of core Show documentation
Show all versions of core Show documentation
Processing is a programming language, development environment, and online community.
This core package contains the core : PApplet, Graphics. Without the IDE and libraries.
/*
Part of the Processing project - http://processing.org
Copyright (c) 2011-12 hansi raber, released under LGPL under agreement
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation, version 2.1.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General
Public License along with this library; if not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330,
Boston, MA 02111-1307 USA
*/
package japplemenubar;
import java.io.*;
import processing.core.PApplet;
/**
* Starting point for the application. General initialization should be done
* inside the ApplicationController's init() method. If certain kinds of
* non-Swing initialization takes too long, it should happen in a new Thread
* and off the Swing event dispatch thread (EDT).
*
* @author hansi
*/
public class JAppleMenuBar {
static JAppleMenuBar instance;
static final String FILENAME = "libjAppleMenuBar.jnilib";
static {
try {
File temp = File.createTempFile("processing", "menubar");
temp.delete(); // remove the file itself
temp.mkdirs(); // create a directory out of it
temp.deleteOnExit();
File jnilibFile = new File(temp, FILENAME);
InputStream input = JAppleMenuBar.class.getResourceAsStream(FILENAME);
if (input != null) {
if (PApplet.saveStream(jnilibFile, input)) {
System.load(jnilibFile.getAbsolutePath());
instance = new JAppleMenuBar();
} else {
sadness("Problem saving " + FILENAME + " for full screen use.");
}
} else {
sadness("Could not load " + FILENAME + " from core.jar");
}
} catch (IOException e) {
sadness("Unknown error, here's the stack trace.");
e.printStackTrace();
}
}
static void sadness(String msg) {
System.err.println("Full screen mode disabled. " + msg);
}
// static public void show() {
// instance.setVisible(true);
// }
static public void hide() {
instance.setVisible(false, false);
}
public native void setVisible(boolean visibility, boolean kioskMode);
// public void setVisible(boolean visibility) {
// // Keep original API in-tact. Default kiosk-mode to off.
// setVisible(visibility, false);
// }
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy