summaryrefslogtreecommitdiff
path: root/NxWidgets/nxwm/src
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-04-30 01:21:26 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-04-30 01:21:26 +0000
commit284cd6923b521898c0927992fab77593ad797b4a (patch)
treeecdc27cff477efee7da31d0fae65b527377e094f /NxWidgets/nxwm/src
parent45f021f2a88d9f76c7802aa31d3fc67827ff288d (diff)
downloadnuttx-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.cxx2
-rw-r--r--NxWidgets/nxwm/src/cnxconsole.cxx11
-rw-r--r--NxWidgets/nxwm/src/ctaskbar.cxx (renamed from NxWidgets/nxwm/src/cnxtaskbar.cxx)212
-rw-r--r--NxWidgets/nxwm/src/glyph_minimize.cxx6
-rwxr-xr-xNxWidgets/nxwm/src/glyph_nsh.cxx7
-rwxr-xr-xNxWidgets/nxwm/src/glyph_start.cxx7
-rwxr-xr-xNxWidgets/nxwm/src/glyph_stop.cxx7
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