PrismLauncher/launcher/org/simplericity/macify/eawt/Application.java

177 lines
5.7 KiB
Java

package org.simplericity.macify.eawt;
/*
* Copyright 2007 Eirik Bjorsnos.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import java.awt.*;
import java.awt.image.BufferedImage;
/**
* The Macify Library API interface provides integration with the OS X platform for Java Applications.
* The API includes a facade to the
* <a href="http://developer.apple.com/documentation/Java/Reference/1.5.0/appledoc/api/index.html">
* Apple Java Extensions API
* </a>.
* Additionally, it provides access to several useful methods in the Cocoa NSApplication API.
*
* The default implementation of this interface is {@link org.simplericity.macify.eawt.DefaultApplication}.
*/
public interface Application {
static int REQUEST_USER_ATTENTION_TYPE_CRITICAL = 1 ;
static int REQUEST_USER_ATTENTION_TYPE_INFORMATIONAL = 2 ;
/**
* See
* <a href="http://developer.apple.com/documentation/Java/Reference/1.5.0/appledoc/api/com/apple/eawt/Application.html#addAboutMenuItem()">
* Apple's API
* </a>.
*/
void addAboutMenuItem();
/**
* See
* <a href="http://developer.apple.com/documentation/Java/Reference/1.5.0/appledoc/api/com/apple/eawt/Application.html#addApplicationListener(com.apple.eawt.ApplicationListener)">
* Apple's API
* </a>.
*/
void addApplicationListener(ApplicationListener applicationListener);
/**
* See
* <a href="http://developer.apple.com/documentation/Java/Reference/1.5.0/appledoc/api/com/apple/eawt/Application.html#addPreferencesMenuItem()">
* Apple's API
* </a>.
*/
void addPreferencesMenuItem();
/**
* See
* <a href="http://developer.apple.com/documentation/Java/Reference/1.5.0/appledoc/api/com/apple/eawt/Application.html#getEnabledAboutMenu()">
* Apple's API
* </a>.
*/
boolean getEnabledAboutMenu();
/**
* See
* <a href="http://developer.apple.com/documentation/Java/Reference/1.5.0/appledoc/api/com/apple/eawt/Application.html#getEnabledPreferencesMenu()">
* Apple's API
* </a>.
*/
boolean getEnabledPreferencesMenu();
/**
* See
* <a href="http://developer.apple.com/documentation/Java/Reference/1.5.0/appledoc/api/com/apple/eawt/Application.html#isAboutMenuItemPresent()">
* Apple's API
* </a>.
*/
boolean isAboutMenuItemPresent();
/**
* See
* <a href="http://developer.apple.com/documentation/Java/Reference/1.5.0/appledoc/api/com/apple/eawt/Application.html#isPreferencesMenuItemPresent()">
* Apple's API
* </a>.
*/
boolean isPreferencesMenuItemPresent();
/**
* See
* <a href="http://developer.apple.com/documentation/Java/Reference/1.5.0/appledoc/api/com/apple/eawt/Application.html#removeAboutMenuItem()">
* Apple's API
* </a>.
*/
void removeAboutMenuItem();
/**
* See
* <a href="http://developer.apple.com/documentation/Java/Reference/1.5.0/appledoc/api/com/apple/eawt/Application.html#removeApplicationListener(com.apple.eawt.ApplicationListener)">
* Apple's API
* </a>.
*/
void removeApplicationListener(ApplicationListener applicationListener);
/**
* See
* <a href="http://developer.apple.com/documentation/Java/Reference/1.5.0/appledoc/api/com/apple/eawt/Application.html#removePreferencesMenuItem()">
* Apple's API
* </a>.
*/
void removePreferencesMenuItem();
/**
* See
* <a href="http://developer.apple.com/documentation/Java/Reference/1.5.0/appledoc/api/com/apple/eawt/Application.html#getEnabledAboutMenu()">
* Apple's API
* </a>.
*/
void setEnabledAboutMenu(boolean enabled);
/**
* See
* <a href="http://developer.apple.com/documentation/Java/Reference/1.5.0/appledoc/api/com/apple/eawt/Application.html#getEnabledPreferencesMenu()">
* Apple's API
* </a>.
*/
void setEnabledPreferencesMenu(boolean enabled);
/**
* See
* <a href="http://developer.apple.com/documentation/Java/Reference/1.5.0/appledoc/api/com/apple/eawt/Application.html#getMouseLocationOnScreen()">
* Apple's API
* </a>.
*/
Point getMouseLocationOnScreen();
/**
* See
* <a href="http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Classes/NSApplication_Class/index.html#//apple_ref/doc/uid/TP40004004">
* Apple's NSApplication Class Reference
* </a>.
* @param type on of {@link #REQUEST_USER_ATTENTION_TYPE_CRITICAL} or {@link #REQUEST_USER_ATTENTION_TYPE_INFORMATIONAL}.
*/
int requestUserAttention(int type);
/**
* See
* <a href="http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Classes/NSApplication_Class/index.html#//apple_ref/doc/uid/TP40004004">
* Apple's NSApplication Class Reference
* </a>
*/
void cancelUserAttentionRequest(int request);
/**
* Update the application's icon image
* @param image
*/
void setApplicationIconImage(BufferedImage image);
/**
* Get the application's icon image.
*/
BufferedImage getApplicationIconImage();
/**
* Determines whether the application is running on a Mac AND the Apple Extensions API classes are available.
* @return
*/
boolean isMac();
}