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 | |
parent | 45f021f2a88d9f76c7802aa31d3fc67827ff288d (diff) | |
download | nuttx-284cd6923b521898c0927992fab77593ad797b4a.tar.gz nuttx-284cd6923b521898c0927992fab77593ad797b4a.tar.bz2 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')
-rw-r--r-- | NxWidgets/nxwm/src/capplicationwindow.cxx | 2 | ||||
-rw-r--r-- | NxWidgets/nxwm/src/cnxconsole.cxx | 11 | ||||
-rw-r--r-- | NxWidgets/nxwm/src/ctaskbar.cxx (renamed from NxWidgets/nxwm/src/cnxtaskbar.cxx) | 212 | ||||
-rw-r--r-- | NxWidgets/nxwm/src/glyph_minimize.cxx | 6 | ||||
-rwxr-xr-x | NxWidgets/nxwm/src/glyph_nsh.cxx | 7 | ||||
-rwxr-xr-x | NxWidgets/nxwm/src/glyph_start.cxx | 7 | ||||
-rwxr-xr-x | NxWidgets/nxwm/src/glyph_stop.cxx | 7 |
7 files changed, 116 insertions, 136 deletions
diff --git a/NxWidgets/nxwm/src/capplicationwindow.cxx b/NxWidgets/nxwm/src/capplicationwindow.cxx index a753cec3e..8fd578c1a 100644 --- a/NxWidgets/nxwm/src/capplicationwindow.cxx +++ b/NxWidgets/nxwm/src/capplicationwindow.cxx @@ -1,5 +1,5 @@ /******************************************************************************************** - * NxWidgets/nxwm/src/cnxtaskbar.cxx + * NxWidgets/nxwm/src/capplicationwindow.cxx * * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Author: Gregory Nutt <gnutt@nuttx.org> diff --git a/NxWidgets/nxwm/src/cnxconsole.cxx b/NxWidgets/nxwm/src/cnxconsole.cxx index d4e4b15c6..a127a8a5a 100644 --- a/NxWidgets/nxwm/src/cnxconsole.cxx +++ b/NxWidgets/nxwm/src/cnxconsole.cxx @@ -41,6 +41,7 @@ #include "nxwmconfig.hxx" #include "cnxconsole.hxx" +#include "nxwmglyphs.hxx" /******************************************************************************************** * Pre-Processor Definitions @@ -50,6 +51,8 @@ * CNxConsole Method Implementations ********************************************************************************************/ +using namespace NxWM; + /** * CNxConsole constructor * @@ -63,14 +66,14 @@ CNxConsole::CNxConsole(NXWidgets::INxWindow *window) /** * Get the icon associated with the application * - * @return An instance if INxBitmap that may be used to rend the - * application's icon. This is an new INxBitmap instance that must + * @return An instance if IBitmap that may be used to rend the + * application's icon. This is an new IBitmap instance that must * be deleted by the caller when it is no long needed. */ -NXWidgets::INxBitmap *CNxConsole::getIcon(void) +NXWidgets::IBitmap *CNxConsole::getIcon(void) { NXWidgets::CRlePaletteBitmap *bitmap = new NXWidgets::CRlePaletteBitmap(&g_nshBitmap); - return static_cast<INxBitmap>(bitmap); + return static_cast<NXWidgets::IBitmap *>(bitmap); } diff --git a/NxWidgets/nxwm/src/cnxtaskbar.cxx b/NxWidgets/nxwm/src/ctaskbar.cxx index 6b93bc793..407396ee5 100644 --- a/NxWidgets/nxwm/src/cnxtaskbar.cxx +++ b/NxWidgets/nxwm/src/ctaskbar.cxx @@ -1,5 +1,5 @@ /******************************************************************************************** - * NxWidgets/nxwm/src/cnxtaskbar.cxx + * NxWidgets/nxwm/src/ctaskbar.cxx * * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Author: Gregory Nutt <gnutt@nuttx.org> @@ -39,8 +39,14 @@ #include <nuttx/config.h> +#include <nuttx/nx/nxglib.h> + +#include "crect.hxx" +#include "cwidgetcontrol.hxx" +#include "cnxtkwindow.hxx" + #include "nxwmconfig.hxx" -#include "cnxconsole.hxx" +#include "ctaskbar.hxx" /******************************************************************************************** * Pre-Processor Definitions @@ -53,49 +59,33 @@ using namespace NxWM; /** - * CNxTaskBar Constructor + * CTaskbar Constructor * * @param hWnd - NX server handle */ -CNxTaskBar::CNxTaskBar(void) +CTaskbar::CTaskbar(void) { - m_taskbar = (INxWindow *)NULL; - m_background = (INxWindow *)NULL; - m_start = (INxWindow *)NULL; + m_taskbar = (NXWidgets::INxWindow *)0; + m_background = (NXWidgets::INxWindow *)0; } /** - * CNxTaskBar Destructor + * CTaskbar Destructor */ -CNxTaskBar::~CNxTaskBar(void) +CTaskbar::~CTaskbar(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 + * 1. Create the CTaskbar instance, + * 2. Call startApplication repeatedly to add applications to the task bar + * 3. Call startWindowManager to start the display with applications in place * * startWindowManager will present the taskar and the background image. The * initial taskbar will contain only the start window icon. @@ -104,10 +94,14 @@ bool CNxTaskBar::addApplication(INxApplication *application) * @return true on success */ -bool CNxTaskBar::startWindowManager(start); +bool CTaskbar::startWindowManager(void) +{ +#warning "Missing logic" + return false; +} /** - * Create an application window. Creating a new applicatino in the start + * Create an application window. Creating a new application in the start * window requires three steps: * * 1. Call openApplicationWindow to create a window for the application, @@ -121,29 +115,35 @@ bool CNxTaskBar::startWindowManager(start); * the top. */ -CApplicationWindow *CNxTaskBar::openApplicationWindow(void); +CApplicationWindow *CTaskbar::openApplicationWindow(void) +{ +#warning "Missing logic" + return (CApplicationWindow *)0; +} /** * 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. + * 1. Create the CTaskbar instance, + * 2. Call startApplication repeatedly to add applications to the task bar + * 3. Call startWindowManager to start the display with applications in place * * 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 + * @param app. The new application to add to the task bar + * @param minimized. The new application starts in the minimized state * @return true on success */ -bool CNxTaskBar::startApplication(INxApplication *application) +bool CTaskbar::startApplication(IApplication *app, bool minimized) { +#warning "Missing logic" + return false; } /** @@ -153,8 +153,23 @@ bool CNxTaskBar::startApplication(INxApplication *application) * @return true on success */ -bool CNxTaskBar::hideApplication(INxApplication *application) +bool CTaskbar::hideApplication(IApplication *application) { + // Every application provides a method to obtain its applicatin window + + CApplicationWindow *appWindow = application->getWindow(); + + // Each application window provides a method to get the underlying NX window + + NXWidgets::CNxTkWindow *window = appWindow->getWindow(); + + // Lower the window + + window->lower(); + + // Grey out the image in task bar +#warning "Missing logic" + return true; } /** @@ -165,15 +180,17 @@ bool CNxTaskBar::hideApplication(INxApplication *application) * @return true on success */ -bool CNxTaskBar::stopApplication(INxApplication *application) +bool CTaskbar::stopApplication(IApplication *application) { +#warning "Missing logic" + return false; } /** * Connect to the server */ -bool CNxTaskBar::connect(void) +bool CTaskbar::connect(void) { // Connect to the server @@ -182,9 +199,9 @@ bool CNxTaskBar::connect(void) { // Set the background color - if (!setBackgroundColor(CONFIG_CNXWM_BGCOLOR)) + if (!setBackgroundColor(CONFIG_NXWM_DEFAULT_BACKGROUNDCOLOR)) { - message("CNxwm::connect: setBackgroundColor failed\n"); + // Failed } } @@ -195,10 +212,17 @@ bool CNxTaskBar::connect(void) * Disconnect from the server */ -void CNxTaskBar::disconnect(void) +void CTaskbar::disconnect(void) { - // Delete all applications -#warning "Missing logic + // Stop all applications and remove them from the task bar. Clearly, there + // are some ordering issues here... On an orderly system shutdown, disconnection + // should really occur priority to deleting instances + + while (!m_applications.empty()) + { + IApplication *app = m_applications.at(0); + stopApplication(app); + } // Close the windows @@ -235,22 +259,6 @@ void CNxTaskBar::disconnect(void) 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(); @@ -269,19 +277,18 @@ void CNxTaskBar::disconnect(void) * widget constructor */ -NXWidgets::CNxWindow *CNxTaskBar::openRawWindow(void) +NXWidgets::CNxWindow *CTaskbar::openRawWindow(void) { // Initialize the widget control using the default style - NXWidgets::CWidgetControl *widgetControl = new CWidgetControl((CWidgetStyle *)NULL); + NXWidgets::CWidgetControl *widgetControl = new NXWidgets::CWidgetControl((NXWidgets::CWidgetStyle *)NULL); // Get an (uninitialized) instance of the background window as a class // that derives from INxWindow. - NXWidgets::CNxWindow window = createRawWindow(widgetControl); + NXWidgets::CNxWindow *window = createRawWindow(widgetControl); if (!window) { - message("CNxwm::createGraphics: Failed to create background window\n"); delete widgetControl; return false; } @@ -291,9 +298,8 @@ NXWidgets::CNxWindow *CNxTaskBar::openRawWindow(void) bool success = window->open(); if (!success) { - message("CNxwm::createGraphics: Failed to open background window\n"); delete window; - window = (NXWidgets::INxWindow *)0; + window = (NXWidgets::CNxWindow *)0; return false; } @@ -303,24 +309,23 @@ NXWidgets::CNxWindow *CNxTaskBar::openRawWindow(void) /** * Create a framed application window * - * This may be used to provide the window parater to the INxApplication constructor + * This may be used to provide the window parater to the IApplication constructor * * @return A partially initialized application window instance. */ -NXWidgets::CNxTkWindow *CNxTaskBar::openFramedWindow(void) +NXWidgets::CNxTkWindow *CTaskbar::openFramedWindow(void) { // Initialize the widget control using the default style - NXWidgets::CWidgetControl *widgetControl = new CWidgetControl((CWidgetStyle *)NULL); + NXWidgets::CWidgetControl *widgetControl = new NXWidgets::CWidgetControl((NXWidgets::CWidgetStyle *)NULL); // Get an (uninitialized) instance of the background window as a class // that derives from INxWindow. - NXWidgets:CNxTkWindow window = createRawWindow(widgetControl); + NXWidgets::CNxTkWindow *window = createFramedWindow(widgetControl); if (!window) { - message("CNxwm::createGraphics: Failed to create background window\n"); delete widgetControl; return false; } @@ -330,9 +335,8 @@ NXWidgets::CNxTkWindow *CNxTaskBar::openFramedWindow(void) bool success = window->open(); if (!success) { - message("CNxwm::createGraphics: Failed to open background window\n"); delete window; - window = (NXWidgets::INxWindow *)0; + window = (NXWidgets::CNxTkWindow *)0; return false; } @@ -347,18 +351,22 @@ NXWidgets::CNxTkWindow *CNxTaskBar::openFramedWindow(void) * @return true on success */ -bool CNxTaskBar::setApplicationGeometry(NXWidgets::INxWindow *window) +void CTaskbar::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(); + // Get the size of the window from the widget control + + NXWidgets::CRect rect = control->getWindowBoundingBox(); + // 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; + struct nxgl_point_s pos; + struct nxgl_size_s size; #if defined(CONFIG_NXWM_TASKBAR_TOP) pos.x = 0; @@ -402,14 +410,13 @@ bool CNxTaskBar::setApplicationGeometry(NXWidgets::INxWindow *window) * @return true on success */ -bool CNxTaskBar::createToolbarWindow(void) +bool CTaskbar::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; } @@ -419,13 +426,13 @@ bool CNxTaskBar::createToolbarWindow(void) // Get the size of the window from the widget control - CRect rect = control->getWindowBoundingBox(); + NXWidgets::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; + struct nxgl_point_s pos; + struct nxgl_size_s size; #if defined(CONFIG_NXWM_TASKBAR_TOP) pos.x = 0; @@ -464,7 +471,7 @@ bool CNxTaskBar::createToolbarWindow(void) /* And raise the window to the top of the display */ - m_taskbar->raise(void); + m_taskbar->raise(); // Add the start menu's icon to the toolbar #warning "Missing logic" @@ -477,57 +484,24 @@ bool CNxTaskBar::createToolbarWindow(void) * @return true on success */ -bool CNxTaskBar::createBackgroundWindow(void) +bool CTaskbar::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)); + setApplicationGeometry(static_cast<NXWidgets::INxWindow*>(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_background->lower(); - // m_start return true; } @@ -537,7 +511,7 @@ bool CNxTaskBar::createStartWindow(void) * @param e The event data. */ -void CNxApplicationWindow::handleClickEvent(const NXWidgets::CWidgetEventArgs &e) +void CTaskbar::handleClickEvent(const NXWidgets::CWidgetEventArgs &e) { #warning "Missing logic" } diff --git a/NxWidgets/nxwm/src/glyph_minimize.cxx b/NxWidgets/nxwm/src/glyph_minimize.cxx index 25521ee35..8c4228279 100644 --- a/NxWidgets/nxwm/src/glyph_minimize.cxx +++ b/NxWidgets/nxwm/src/glyph_minimize.cxx @@ -49,7 +49,7 @@ #include "nxconfig.hxx" #include "crlepalettebitmap.hxx" -#include "glyphs.hxx" +#include "nxwmglyphs.hxx" /******************************************************************************************** * Pre-Processor Definitions @@ -121,7 +121,7 @@ static const nxgl_mxpixel_t g_minimizeLut[BITMAP_NLUTCODES] = # error "Unsupport pixel format" #endif -static const struct SRlePaletteBitmapEntry g_minimizeRleEntries[] = +static const struct NXWidgets::SRlePaletteBitmapEntry g_minimizeRleEntries[] = { { 25, 0}, /* Row 0 */ { 25, 0}, /* Row 1 */ @@ -170,7 +170,7 @@ static const struct SRlePaletteBitmapEntry g_minimizeRleEntries[] = * Public Bitmap Structure Defintions ********************************************************************************************/ -const struct SRlePaletteBitmap NXWidgets::g_minimizeBitmap = +const struct NXWidgets::SRlePaletteBitmap g_minimizeBitmap = { CONFIG_NXWIDGETS_BPP, // bpp - Bits per pixel CONFIG_NXWIDGETS_FMT, // fmt - Color format diff --git a/NxWidgets/nxwm/src/glyph_nsh.cxx b/NxWidgets/nxwm/src/glyph_nsh.cxx index 54a91b581..8e9b0746d 100755 --- a/NxWidgets/nxwm/src/glyph_nsh.cxx +++ b/NxWidgets/nxwm/src/glyph_nsh.cxx @@ -49,7 +49,8 @@ #include "nxconfig.hxx" #include "crlepalettebitmap.hxx" -#include "glyphs.hxx" + +#include "nxwmglyphs.hxx" /******************************************************************************************** * Pre-Processor Definitions @@ -125,7 +126,7 @@ static const nxgl_mxpixel_t g_nshLut[BITMAP_NLUTCODES] = # error "Unsupport pixel format" #endif -static const struct SRlePaletteBitmapEntry g_nshRleEntries[] = +static const struct NXWidgets::SRlePaletteBitmapEntry g_nshRleEntries[] = { { 11, 0}, { 1, 1}, { 1, 2}, { 1, 1}, { 11, 0}, /* Row 0 */ { 11, 0}, { 3, 3}, { 11, 0}, /* Row 1 */ @@ -195,7 +196,7 @@ static const struct SRlePaletteBitmapEntry g_nshRleEntries[] = * Public Bitmap Structure Defintions ********************************************************************************************/ -const struct SRlePaletteBitmap NXWidgets::g_nshBitmap = +const struct NXWidgets::SRlePaletteBitmap g_nshBitmap = { CONFIG_NXWIDGETS_BPP, // bpp - Bits per pixel CONFIG_NXWIDGETS_FMT, // fmt - Color format diff --git a/NxWidgets/nxwm/src/glyph_start.cxx b/NxWidgets/nxwm/src/glyph_start.cxx index 95a22e611..a81d6b19f 100755 --- a/NxWidgets/nxwm/src/glyph_start.cxx +++ b/NxWidgets/nxwm/src/glyph_start.cxx @@ -49,7 +49,8 @@ #include "nxconfig.hxx" #include "crlepalettebitmap.hxx" -#include "glyphs.hxx" + +#include "nxwmglyphs.hxx" /******************************************************************************************** * Pre-Processor Definitions @@ -125,7 +126,7 @@ static const nxgl_mxpixel_t g_startLut[BITMAP_NLUTCODES] = # error "Unsupport pixel format" #endif -static const struct SRlePaletteBitmapEntry g_startRleEntries[] = +static const struct NXWidgets::SRlePaletteBitmapEntry g_startRleEntries[] = { { 7, 0}, { 1, 1}, { 3, 2}, { 1, 3}, { 4, 2}, { 1, 4}, { 1, 5}, { 7, 0}, /* Row 0 */ { 5, 0}, { 1, 6}, { 2, 7}, { 1, 8}, { 1, 9}, { 2, 1}, { 1, 10}, { 2, 9}, /* Row 1 */ @@ -196,7 +197,7 @@ static const struct SRlePaletteBitmapEntry g_startRleEntries[] = * Public Bitmap Structure Defintions ********************************************************************************************/ -const struct SRlePaletteBitmap NXWidgets::g_startBitmap = +const struct NXWidgets::SRlePaletteBitmap g_startBitmap = { CONFIG_NXWIDGETS_BPP, // bpp - Bits per pixel CONFIG_NXWIDGETS_FMT, // fmt - Color format diff --git a/NxWidgets/nxwm/src/glyph_stop.cxx b/NxWidgets/nxwm/src/glyph_stop.cxx index 3e1568b98..5c4c5477e 100755 --- a/NxWidgets/nxwm/src/glyph_stop.cxx +++ b/NxWidgets/nxwm/src/glyph_stop.cxx @@ -49,7 +49,8 @@ #include "nxconfig.hxx" #include "crlepalettebitmap.hxx" -#include "glyphs.hxx" + +#include "nxwmglyphs.hxx" /******************************************************************************************** * Pre-Processor Definitions @@ -136,7 +137,7 @@ static const nxgl_mxpixel_t g_stopLut[BITMAP_NLUTCODES] = # error "Unsupport pixel format" #endif -static const struct SRlePaletteBitmapEntry g_stopRleEntries[] = +static const struct NXWidgets::SRlePaletteBitmapEntry g_stopRleEntries[] = { { 25, 0}, /* Row 0 */ { 25, 0}, /* Row 1 */ @@ -208,7 +209,7 @@ static const struct SRlePaletteBitmapEntry g_stopRleEntries[] = * Public Bitmap Structure Defintions ********************************************************************************************/ -const struct SRlePaletteBitmap NXWidgets::g_stopBitmap = +const struct NXWidgets::SRlePaletteBitmap g_stopBitmap = { CONFIG_NXWIDGETS_BPP, // bpp - Bits per pixel CONFIG_NXWIDGETS_FMT, // fmt - Color format |