WorkspaceWindow.h

Go to the documentation of this file.
00001 /*
00002  * The information in this file is
00003  * Copyright(c) 2007 Ball Aerospace & Technologies Corporation
00004  * and is subject to the terms and conditions of the
00005  * GNU Lesser General Public License Version 2.1
00006  * The license text is available from   
00007  * http://www.gnu.org/licenses/lgpl.html
00008  */
00009 
00010 #ifndef WORKSPACEWINDOW_H
00011 #define WORKSPACEWINDOW_H
00012 
00013 #include "ViewWindow.h"
00014 #include "ConfigurationSettings.h"
00015 
00016 class View;
00017 
00018 /**
00019  *  Settings, characteristics, and features for windows displayed in the workspace area
00020  *  of the main application window.
00021  *
00022  *  Workspace windows are windows that are restricted to the workspace area of the main
00023  *  application window.  The workspace window is the primary tool for displaying data.
00024  *  A workspace window can float in the workspace area or be maximized or minimized in
00025  *  the workspace.  For each workspace window, a smaller overview window can also be
00026  *  displayed providing a thumbnail display of the entire view contents.
00027  *
00028  *  This subclass of Subject will notify upon the following conditions:
00029  *  - Everything documented in ViewWindow.
00030  *
00031  *  @see     ViewWindow
00032  */
00033 class WorkspaceWindow : public ViewWindow
00034 {
00035 public:
00036    SETTING(WindowHeight, WorkspaceWindow, unsigned int, 300)
00037    SETTING(WindowSize, WorkspaceWindow, WindowSizeType, MAXIMIZED)
00038    SETTING(WindowWidth, WorkspaceWindow, unsigned int, 450)
00039    SETTING(WindowPercentage, WorkspaceWindow, unsigned int, 40)
00040    SETTING(ConfirmClose, WorkspaceWindow, bool, true)
00041 
00042    /**
00043     *  Minimizes the window in the workspace.
00044     *
00045     *  Hides the display area of the window, leaving only the title bar showing.
00046     *  The title bar is then moved to the bottom of the workspace area.
00047     */
00048    virtual void minimize() = 0;
00049 
00050    /**
00051     *  Maximizes the window in the workspace.
00052     *
00053     *  Increases the size of the window to the maximum display area within the
00054     *  workspace.  Once maximized in the workspace, the window name is added
00055     *  to the application title bar in brackets [].
00056     */
00057    virtual void maximize() = 0;
00058 
00059    /**
00060     *  Maximizes the window over the entire screen area.
00061     *
00062     *  This method increases the size of the window to cover the entire area of
00063     *  the screen.  All other windows and toolbars for all applications are
00064     *  hidden.
00065     */
00066    virtual void fullScreen() = 0;
00067 
00068    /**
00069     *  Returns the window to its normal display size in the workspace.
00070     *
00071     *  This method restores a minimized, maximized, or full screen window to a
00072     *  floating state within the workspace area.  The size of the window returns
00073     *  to its previous size before it was minimized or maximized.
00074     */
00075    virtual void restore() = 0;
00076 
00077    /**
00078     *  Returns the active view in the window.
00079     *
00080     *  @return  A pointer to the active View in the window.  If the window is a
00081     *           SpatialDataWindow, a SpatialDataView is returned.  If the
00082     *           window is a ProductWindow, a ProductView is returned if the
00083     *           product view does not have an active edit view.  Otherwise, the
00084     *           active edit view in the product view is returned.  \b NULL is
00085     *           returned if the window does not contain an active View.
00086     *
00087     *  @see     ProductView::getActiveEditView()
00088     */
00089    virtual View* getActiveView() const = 0;
00090 
00091 protected:
00092    /**
00093     * This should be destroyed by calling DesktopServices::deleteWindow.
00094     */
00095    virtual ~WorkspaceWindow() {}
00096 };
00097 
00098 #endif

Software Development Kit - Opticks 4.9.0 Build 16218