Interface Luwrain

  • All Superinterfaces:
    HookContainer, PropertiesBase

    public interface Luwrain
    extends PropertiesBase, HookContainer
    The main bridge for applications and extensions purposed for communication with LUWRAIN core. This class is a central object to be used by applications and extensions to call system routines. Applications and extensions never have the access with the level deeper than this class. The packages like org.luwrain.controls or org.luwrain.popups always wrap the instance of Luwrain class (meaning, are unable to give more access to system core than provided with given instance of Luwrain class).

    The core creates new instance of this class for each newly launched application or loaded extension. Therefore, the environment is always aware which application oor extension has issued the particular request. Applications get the object associated with them through onLaunch() method. Extensions get the corresponding instance through the argument for the methods they override (it is always the same instance provided this way just for convenience). Everybody is encouraged to keep provided instance in secret.

    It could be slightly confusing that the extension and the applications launched by this extension get different instances of Luwrain class, but it's necessary to distinguish multiple instances of the particular application (while an extension can be loaded only once).

    Various instance of Luwrain class may provide different level of access. It is necessary to make extensions using more accurate and transparent.

    • Method Detail

      • announceActiveArea

        void announceActiveArea()
      • closeApp

        void closeApp()
      • crash

        void crash​(App app)
      • announcement

        void announcement​(String text,
                          String announcementClass,
                          String announcementSubclass)
      • getAllShortcutNames

        String[] getAllShortcutNames()
      • getAppDataDir

        Path getAppDataDir​(String appName)
        Returns a path to the directory where the application may safely store its auxiliary data. The returned directory, if it it isn't null, always exists and always belongs to the current user. Meaning, different users get different directories for the same application. Application must be identified with some short string. We discourage using application names starting with "luwrain.", because such names are usually used by the applications from LUWRAIN standard distribution.
        Parameters:
        appName - A short string for application identification, the same application name will result in the same directory
        Returns:
        The application data directory or null if the directory cannot be created
      • getAreaVisibleHeight

        int getAreaVisibleHeight​(Area area)
      • getAreaVisibleWidth

        int getAreaVisibleWidth​(Area area)
      • xGetLoadedSpeechFactories

        String[] xGetLoadedSpeechFactories()
      • getPlayer

        Player getPlayer()
      • getScreenWidth

        int getScreenWidth()
      • getScreenHeight

        int getScreenHeight()
      • executeBkg

        void executeBkg​(Runnable runnable)
      • launchApp

        void launchApp​(String shortcutName)
      • launchApp

        void launchApp​(String shortcutName,
                       String[] args)
      • message

        void message​(String text)
      • onAreaNewBackgroundSound

        void onAreaNewBackgroundSound​(Area area)
      • onAreaNewHotPoint

        void onAreaNewHotPoint​(Area area)
        Notifies the environment that the area gets new position of the hot point. This method causes updating of the visual position of the hot point on the screen for low vision users. Please keep in mind that this method doesn't produce any speech announcement of the new position and you should do that on your own, depending on the behaviour of your application.
        Parameters:
        area - The area which gets new position of the hot point
      • onAreaNewContent

        void onAreaNewContent​(Area area)
        Notifies the environment that the area gets new content. This method causes updating of the visual representation of the area content on the screen for low vision users. Please keep in mind that this method doesn't produce any speech announcement of the changes and you should do that on your own, depending on the behaviour of your application.
        Parameters:
        area - The area which gets new content
      • onAreaNewName

        void onAreaNewName​(Area area)
        Notifies the environment that the area gets new name. This method causes updating of the visual title of the area on the screen for low vision users. Please keep in mind that this method doesn't produce any speech announcement of name changes and you should do that on your own, depending on the behaviour of your application.
        Parameters:
        area - The area which gets new name
      • onNewAreaLayout

        void onNewAreaLayout()
      • openFile

        void openFile​(String fileName)
      • openFiles

        void openFiles​(String[] fileNames)
      • openHelp

        boolean openHelp​(String sectName)
      • openUniRef

        boolean openUniRef​(String uniRef)
      • openUniRef

        boolean openUniRef​(UniRefInfo uniRefInfo)
      • openUrl

        boolean openUrl​(String url)
      • playSound

        void playSound​(Sounds sound)
        /** Plays one of the system sounds. This method takes an identifier of the system sound, stops any previous playing, if there was any, and plays. The exact sound is selected depending on user's settings. Please node that sounds playing isn't interfering with speech.
        Parameters:
        sound - The identifier of the sound to play
      • playSound

        void playSound​(File file)
      • popup

        void popup​(Popup popup)
      • registerExtObj

        boolean registerExtObj​(ExtensionObject extObj)
        Registers new extension object. This operation is allowed for highly privileged interfaces only, what, for example, can be useful for custom startup and shutdown procedures. Custom objects may be of any kind, they are registered as they would be a part of the core.
        Parameters:
        extObj - The object to register
        Returns:
        True if the object was successfully registered, false otherwise
        Throws:
        RuntimeException - on any attempt to do this operation without enough privileged level
      • runCommand

        boolean runCommand​(String command)
      • runUiSafely

        void runUiSafely​(Runnable runnable)
      • runWorker

        boolean runWorker​(String workerName)
      • speak

        void speak​(String text)
      • speakLetter

        void speakLetter​(char letter)
      • speak

        void speak​(String text,
                   int pitch)
      • speak

        void speak​(String text,
                   int pitch,
                   int rate)
      • speakLetter

        void speakLetter​(char letter,
                         int pitch)
      • sendBroadcastEvent

        void sendBroadcastEvent​(SystemEvent event)
      • sendInputEvent

        void sendInputEvent​(InputEvent event)
      • setActiveArea

        void setActiveArea​(Area area)
        Sets the new active area of the application. This method asks the environment to choose another visible area as an active area of the application. This operation is applicable only to regular areas, not for popup areas, for which it is pointless. In contrast to onAreaNewHotPoint(), onAreaNewName() and onAreaNewContent() methods, this one produces proper introduction of the area being activated.
        Parameters:
        area - The area to choose as an active
      • setEventResponse

        void setEventResponse​(EventResponse eventResponse)
      • silence

        void silence()
      • speakLetter

        void speakLetter​(char letter,
                         int pitch,
                         int rate)
      • unloadDynamicExtension

        boolean unloadDynamicExtension​(String extId)
      • xQuit

        boolean xQuit()
      • xSetSpeechRate

        void xSetSpeechRate​(int value)
      • xGetSpeechRate

        int xGetSpeechRate()
      • xGetSpeechPitch

        int xGetSpeechPitch()
      • xSetSpeechPitch

        void xSetSpeechPitch​(int value)