diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2012-04-30 01:21:26 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2012-04-30 01:21:26 +0000 |
commit | 284cd6923b521898c0927992fab77593ad797b4a (patch) | |
tree | ecdc27cff477efee7da31d0fae65b527377e094f /NxWidgets/nxwm/src/cnxtaskbar.cxx | |
parent | 45f021f2a88d9f76c7802aa31d3fc67827ff288d (diff) | |
download | px4-nuttx-284cd6923b521898c0927992fab77593ad797b4a.tar.gz px4-nuttx-284cd6923b521898c0927992fab77593ad797b4a.tar.bz2 px4-nuttx-284cd6923b521898c0927992fab77593ad797b4a.zip |
NxWM update
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4677 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'NxWidgets/nxwm/src/cnxtaskbar.cxx')
-rw-r--r-- | NxWidgets/nxwm/src/cnxtaskbar.cxx | 545 |
1 files changed, 0 insertions, 545 deletions
diff --git a/NxWidgets/nxwm/src/cnxtaskbar.cxx b/NxWidgets/nxwm/src/cnxtaskbar.cxx deleted file mode 100644 index 6b93bc793..000000000 --- a/NxWidgets/nxwm/src/cnxtaskbar.cxx +++ /dev/null @@ -1,545 +0,0 @@ -/******************************************************************************************** - * NxWidgets/nxwm/src/cnxtaskbar.cxx - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX, NxWidgets, nor the names of its contributors - * me be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ********************************************************************************************/ - -/******************************************************************************************** - * Included Files - ********************************************************************************************/ - -#include <nuttx/config.h> - -#include "nxwmconfig.hxx" -#include "cnxconsole.hxx" - -/******************************************************************************************** - * Pre-Processor Definitions - ********************************************************************************************/ - -/******************************************************************************************** - * CNxConsole Method Implementations - ********************************************************************************************/ - -using namespace NxWM; - -/** - * CNxTaskBar Constructor - * - * @param hWnd - NX server handle - */ - -CNxTaskBar::CNxTaskBar(void) -{ - m_taskbar = (INxWindow *)NULL; - m_background = (INxWindow *)NULL; - m_start = (INxWindow *)NULL; -} - -/** - * CNxTaskBar Destructor - */ - -CNxTaskBar::~CNxTaskBar(void) -{ - disconnect(); -} -/** - * Add the application to the start window. The window manager start-up - * sequence is: - * - * 1. Create the CNxTaskBar instance, - * 2. Call addApplication repeatedly to add applications to the start window - * 3. Call startWindowManager to start the display - * - * @param application. The new application to add to the start window - * @return true on success - */ - -bool CNxTaskBar::addApplication(INxApplication *application) -{ -} - -/** - * Start the window manager and present the initial displays. The window - * manager start-up sequence is: - * - * 1. Create the CNxTaskBar instance, - * 2. Call addApplication repeatedly to add applications to the start window - * 3. Call startWindowManager to start the display - * - * startWindowManager will present the taskar and the background image. The - * initial taskbar will contain only the start window icon. - * - * @param application. The new application to add to the start window - * @return true on success - */ - -bool CNxTaskBar::startWindowManager(start); - -/** - * Create an application window. Creating a new applicatino in the start - * window requires three steps: - * - * 1. Call openApplicationWindow to create a window for the application, - * 2. Instantiate the application, providing the window to the application's - * constructor, - * 3. Then call addApplication to add the application to the start window. - * - * When the application is selected from the start window: - * - * 4. Call startApplication start the application and bring its window to - * the top. - */ - -CApplicationWindow *CNxTaskBar::openApplicationWindow(void); - -/** - * Start an application and add its icon to the taskbar. The applications's - * window is brought to the top. Creating a new applicatino in the start - * window requires three steps: - * - * 1. Call openApplicationWindow to create a window for the application, - * 2. Instantiate the application, providing the window to the application's - * constructor, - * 3. Then call addApplication to add the application to the start window. - * - * When the application is selected from the start window: - * - * 4. Call startApplication start the application and bring its window to - * the top. - * - * @param application. The new application to add to the task bar - * @return true on success - */ - -bool CNxTaskBar::startApplication(INxApplication *application) -{ -} - -/** - * Hide an application by moving its window to the bottom. - * - * @param application. The new application to add to the task bar - * @return true on success - */ - -bool CNxTaskBar::hideApplication(INxApplication *application) -{ -} - -/** - * Destroy an application. Move its window to the bottom and remove its - * icon from the task bar. - * - * @param application. The new application to remove from the task bar - * @return true on success - */ - -bool CNxTaskBar::stopApplication(INxApplication *application) -{ -} - -/** - * Connect to the server - */ - -bool CNxTaskBar::connect(void) -{ - // Connect to the server - - bool nxConnected = CNxServer::connect(); - if (nxConnected) - { - // Set the background color - - if (!setBackgroundColor(CONFIG_CNXWM_BGCOLOR)) - { - message("CNxwm::connect: setBackgroundColor failed\n"); - } - } - - return nxConnected; -} - -/** - * Disconnect from the server - */ - -void CNxTaskBar::disconnect(void) -{ - // Delete all applications -#warning "Missing logic - - // Close the windows - - NXWidgets::CWidgetControl *control; - if (m_taskbar) - { - // Delete the contained widget control. We are responsible for it - // because we created it - - control = m_taskbar->getWidgetControl(); - if (control) - { - delete control; - } - - // Then delete the toolbar - - delete m_taskbar; - } - - if (m_background) - { - // Delete the contained widget control. We are responsible for it - // because we created it - - control = m_background->getWidgetControl(); - if (control) - { - delete control; - } - - // Then delete the background - - delete m_background; - } - - if (m_start) - { - // Delete the contained widget control. We are responsible for it - // because we created it - - control = m_start->getWidgetControl(); - if (control) - { - delete control; - } - - // Then delete the start window - - delete m_start; - } - - // And disconnect from the server - - CNxServer::disconnect(); -} - -/** - * Create a raw window. - * - * 1) Create a dumb CWigetControl instance - * 2) Pass the dumb CWidgetControl instance to the window constructor - * that inherits from INxWindow. This will "smarten" the CWidgetControl - * instance with some window knowlede - * 3) Call the open() method on the window to display the window. - * 4) After that, the fully smartened CWidgetControl instance can - * be used to generate additional widgets by passing it to the - * widget constructor - */ - -NXWidgets::CNxWindow *CNxTaskBar::openRawWindow(void) -{ - // Initialize the widget control using the default style - - NXWidgets::CWidgetControl *widgetControl = new CWidgetControl((CWidgetStyle *)NULL); - - // Get an (uninitialized) instance of the background window as a class - // that derives from INxWindow. - - NXWidgets::CNxWindow window = createRawWindow(widgetControl); - if (!window) - { - message("CNxwm::createGraphics: Failed to create background window\n"); - delete widgetControl; - return false; - } - - // Open (and initialize) the window - - bool success = window->open(); - if (!success) - { - message("CNxwm::createGraphics: Failed to open background window\n"); - delete window; - window = (NXWidgets::INxWindow *)0; - return false; - } - - return window; -} - -/** - * Create a framed application window - * - * This may be used to provide the window parater to the INxApplication constructor - * - * @return A partially initialized application window instance. - */ - -NXWidgets::CNxTkWindow *CNxTaskBar::openFramedWindow(void) -{ - // Initialize the widget control using the default style - - NXWidgets::CWidgetControl *widgetControl = new CWidgetControl((CWidgetStyle *)NULL); - - // Get an (uninitialized) instance of the background window as a class - // that derives from INxWindow. - - NXWidgets:CNxTkWindow window = createRawWindow(widgetControl); - if (!window) - { - message("CNxwm::createGraphics: Failed to create background window\n"); - delete widgetControl; - return false; - } - - // Open (and initialize) the window - - bool success = window->open(); - if (!success) - { - message("CNxwm::createGraphics: Failed to open background window\n"); - delete window; - window = (NXWidgets::INxWindow *)0; - return false; - } - - return window; -} - -/** - * Set size and position of a window in the application area. - * - * @param window. The window to be resized and repositioned - * - * @return true on success - */ - -bool CNxTaskBar::setApplicationGeometry(NXWidgets::INxWindow *window) -{ - // Get the widget control from the toolbar window. The physical window geometry - // should be the same for all windows. - - NXWidgets::CWidgetControl *control = m_taskbar->getWidgetControl(); - - // Now position and size the application. This will depend on the position and - // orientation of the toolbar. - - nxgl_point_t pos; - nxgl_size_t size; - -#if defined(CONFIG_NXWM_TASKBAR_TOP) - pos.x = 0; - pos.y = CONFIG_NXWM_TASKBAR_WIDTH; - - size.w = rect.getWidth(); - size.h = rect.getWidth() - CONFIG_NXWM_TASKBAR_WIDTH; -#elif defined(CONFIG_NXWM_TASKBAR_BOTTOM) - pos.x = 0; - pos.y = 0; - - size.w = rect.getWidth(); - size.h = rect.getWidth() - CONFIG_NXWM_TASKBAR_WIDTH; -#elif defined(CONFIG_NXWM_TASKBAR_LEFT) - pos.x = CONFIG_NXWM_TASKBAR_WIDTH; - pos.y = 0; - - size.w = rect.getWidth() - CONFIG_NXWM_TASKBAR_WIDTH; - size.h = rect.getHeight(); -#else - pos.x = 0; - pos.y = 0; - - size.w = rect.getWidth() - CONFIG_NXWM_TASKBAR_WIDTH; - size.h = rect.getHeight(); -#endif - - /* Set the size and position the window. - * - * @param pPos The new position of the window. - * @return True on success, false on failure. - */ - - window->setPosition(&pos); - window->setSize(&size); -} - -/** - * Create the toolbar window. - * - * @return true on success - */ - -bool CNxTaskBar::createToolbarWindow(void) -{ - // Create a raw window to present the toolbar - - m_taskbar = openRawWindow(); - if (!m_taskbar) - { - message("CNxwm::createGraphics: Failed to create CBgWindow instance\n"); - return false; - } - - // Get the contained widget control - - NXWidgets::CWidgetControl *control = m_taskbar->getWidgetControl(); - - // Get the size of the window from the widget control - - CRect rect = control->getWindowBoundingBox(); - - // Now position and size the toolbar. This will depend on the position and - // orientation of the toolbar. - - nxgl_point_t pos; - nxgl_size_t size; - -#if defined(CONFIG_NXWM_TASKBAR_TOP) - pos.x = 0; - pos.y = 0; - - size.w = rect.getWidth(); - size.h = CONFIG_NXWM_TASKBAR_WIDTH; -#elif defined(CONFIG_NXWM_TASKBAR_BOTTOM) - pos.x = 0; - pos.y = rect.getHeight() - CONFIG_NXWM_TASKBAR_WIDTH; - - size.w = rect.getWidth(); - size.h = CONFIG_NXWM_TASKBAR_WIDTH; -#elif defined(CONFIG_NXWM_TASKBAR_LEFT) - pos.x = 0; - pos.y = 0; - - size.w = CONFIG_NXWM_TASKBAR_WIDTH; - size.h = rect.getHeight(); -#else - pos.x = rect.getWidgth() - CONFIG_NXWM_TASKBAR_WIDTH; - pos.y = 0; - - size.w = CONFIG_NXWM_TASKBAR_WIDTH; - size.h = rect.getHeight(); -#endif - - /* Set the size and position the window. - * - * @param pPos The new position of the window. - * @return True on success, false on failure. - */ - - m_taskbar->setPosition(&pos); - m_taskbar->setSize(&size); - - /* And raise the window to the top of the display */ - - m_taskbar->raise(void); - - // Add the start menu's icon to the toolbar -#warning "Missing logic" - return true; -} - -/** - * Create the background window. - * - * @return true on success - */ - -bool CNxTaskBar::createBackgroundWindow(void) -{ - // Create a raw window to present the background image - - m_background = openRawWindow(); - if (!m_background) - { - message("CNxwm::createGraphics: Failed to create background window\n"); - return false; - } - - // Set the geometry to fit in the application window space - - setApplicationGeometry(static_cast<NXWidgets::INxWidget>(m_background)); - - /* And lower the background window to the bottom of the display */ - - m_background->lower(void); - - return true; -} - -/** - * Create the start window. - * - * @return true on success - */ - -bool CNxTaskBar::createStartWindow(void) -{ - // Create a raw window to present the background image - - m_start = openFramedWindow(); - if (!m_start) - { - message("CNxwm::createGraphics: Failed to create start window\n"); - return false; - } - - // Set the geometry to fit in the application window space - - setApplicationGeometry(static_cast<NXWidgets::INxWidget>(m_start)); - - /* And lower the background window to the top of the display */ - - m_start->raise(void); - - // Now create the start up application -#warning "Missing logic" - - // m_start - return true; -} - -/** - * Handle a mouse button click event. - * - * @param e The event data. - */ - -void CNxApplicationWindow::handleClickEvent(const NXWidgets::CWidgetEventArgs &e) -{ -#warning "Missing logic" -} - - |