NxWM update
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4677 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
parent
ff3967512e
commit
b4e9aa7fbf
@ -42,7 +42,7 @@ NXWIDGETDIR := $(NXWMDIR)/../libnxwidgets
|
|||||||
ASRCS =
|
ASRCS =
|
||||||
CSRCS =
|
CSRCS =
|
||||||
# Window Manager
|
# Window Manager
|
||||||
CXXSRCS = capplicationwindow.cxx cnxconsole.cxx cnxtaskbar.cxx
|
CXXSRCS = capplicationwindow.cxx cnxconsole.cxx ctaskbar.cxx
|
||||||
# Images
|
# Images
|
||||||
CXXSRCS += glyph_minimize.cxx glyph_nsh.cxx glyph_start.cxx glyph_stop.cxx
|
CXXSRCS += glyph_minimize.cxx glyph_nsh.cxx glyph_start.cxx glyph_stop.cxx
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Abstract Base Classes
|
* Implementation Classes
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#if defined(__cplusplus)
|
#if defined(__cplusplus)
|
||||||
|
@ -33,8 +33,8 @@
|
|||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#ifndef __NXWM_INCLUDE_CNXBACKIMAGE_HXX
|
#ifndef __NXWM_INCLUDE_CBACKGROUNDIMAGE_HXX
|
||||||
#define __NXWM_INCLUDE_CNXBACKIMAGE_HXX
|
#define __NXWM_INCLUDE_CBACKGROUNDIMAGE_HXX
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Included Files
|
* Included Files
|
||||||
@ -64,25 +64,25 @@ namespace NxWM
|
|||||||
* This class describes the NX windo manager's background image.
|
* This class describes the NX windo manager's background image.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class CNxBackImage : public NXWidgets::CImage
|
class CBackgroundImage : public NXWidgets::CImage
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
NXWidgets::CWidgetControl *m_widgetControl; // The controlling widget for the window
|
NXWidgets::CWidgetControl *m_widgetControl; // The controlling widget for the window
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* CNxBackImage Constructor
|
* CBackgroundImage Constructor
|
||||||
*/
|
*/
|
||||||
|
|
||||||
CNxBackImage(void);
|
CBackgroundImage(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CNxBackImage Destructor
|
* CBackgroundImage Destructor
|
||||||
*/
|
*/
|
||||||
|
|
||||||
~CNxBackImage(void);
|
~CBackgroundImage(void);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // __cplusplus
|
#endif // __cplusplus
|
||||||
#endif // __NXWM_INCLUDE_CNXBACKIMAGE_HXX
|
#endif // __NXWM_INCLUDE_CBACKGROUNDIMAGE_HXX
|
@ -42,9 +42,7 @@
|
|||||||
|
|
||||||
#include <nuttx/config.h>
|
#include <nuttx/config.h>
|
||||||
|
|
||||||
#include "crlepalettebitmap.hxx"
|
#include "iapplication.hxx"
|
||||||
#include "inxwindow.hxx"
|
|
||||||
#include "cnxapplication.hxx"
|
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Pre-Processor Definitions
|
* Pre-Processor Definitions
|
||||||
@ -62,7 +60,7 @@ namespace NxWM
|
|||||||
* This class implements the NxConsole application.
|
* This class implements the NxConsole application.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class CNxConsole : public CNxApplication
|
class CNxConsole : public IApplication
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
/**
|
/**
|
||||||
@ -83,12 +81,12 @@ namespace NxWM
|
|||||||
/**
|
/**
|
||||||
* Get the icon associated with the application
|
* Get the icon associated with the application
|
||||||
*
|
*
|
||||||
* @return An instance if INxBitmap that may be used to rend the
|
* @return An instance if IBitmap that may be used to rend the
|
||||||
* application's icon. This is an new INxBitmap instance that must
|
* application's icon. This is an new IBitmap instance that must
|
||||||
* be deleted by the caller when it is no long needed.
|
* be deleted by the caller when it is no long needed.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
NXWidgets::INxBitmap *getIcon(void);
|
NXWidgets::IBitmap *getIcon(void);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
#endif // __cplusplus
|
#endif // __cplusplus
|
||||||
|
@ -33,8 +33,8 @@
|
|||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#ifndef __INCLUDE_CNXSTART_NXX
|
#ifndef __INCLUDE_CSTARTWINDOW_NXX
|
||||||
#define __INCLUDE_CNXSTART_NXX
|
#define __INCLUDE_CSTARTWINDOW_NXX
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Included Files
|
* Included Files
|
||||||
@ -42,7 +42,8 @@
|
|||||||
|
|
||||||
#include <nuttx/config.h>
|
#include <nuttx/config.h>
|
||||||
|
|
||||||
#include "cnxapplication.hxx"
|
#include "iapplication.hxx"
|
||||||
|
#include "tnxarray.hxx"
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Pre-Processor Definitions
|
* Pre-Processor Definitions
|
||||||
@ -56,33 +57,34 @@
|
|||||||
|
|
||||||
namespace NxWM
|
namespace NxWM
|
||||||
{
|
{
|
||||||
class CNxTaskbar;
|
class CTaskbar;
|
||||||
class CApplicationWindow;
|
class CApplicationWindow;
|
||||||
|
|
||||||
class CNxStart : public INxApplication
|
class CStartWindow : public IApplication
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
CNxTaskbar *m_taskbar; /**< Reference to the "parent" taskbar */
|
CTaskbar *m_taskbar; /**< Reference to the "parent" taskbar */
|
||||||
|
TNxArray<CApplication*> m_applications; /**< List of apps in the start window */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CNxStart Constructor
|
* CStartWindow Constructor
|
||||||
*/
|
*/
|
||||||
|
|
||||||
~CNxStart(void);
|
~CStartWindow(void);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CNxStart Constructor
|
* CStartWindow Constructor
|
||||||
*
|
*
|
||||||
* @param taskbar. A pointer to the parent task bar instance
|
* @param taskbar. A pointer to the parent task bar instance
|
||||||
* @param window. The window to be used by this application.
|
* @param window. The window to be used by this application.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
CNxStart(CNxTaskbar *taskbar, CApplicationWindow *window);
|
CStartWindow(CTaskbar *taskbar, CApplicationWindow *window);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Each implementation of INxApplication must provide a method to recover
|
* Each implementation of IApplication must provide a method to recover
|
||||||
* the contained CApplicationWindow instance.
|
* the contained CApplicationWindow instance.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -91,12 +93,12 @@ namespace NxWM
|
|||||||
/**
|
/**
|
||||||
* Get the icon associated with the application
|
* Get the icon associated with the application
|
||||||
*
|
*
|
||||||
* @return An instance if INxBitmap that may be used to rend the
|
* @return An instance if IBitmap that may be used to rend the
|
||||||
* application's icon. This is an new INxBitmap instance that must
|
* application's icon. This is an new IBitmap instance that must
|
||||||
* be deleted by the caller when it is no long needed.
|
* be deleted by the caller when it is no long needed.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
NXWidgets::INxBitmap *getIcon(void);
|
NXWidgets::IBitmap *getIcon(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the name string associated with the application
|
* Get the name string associated with the application
|
||||||
@ -119,17 +121,23 @@ namespace NxWM
|
|||||||
stop(void);
|
stop(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add the application to the start window
|
* Add the application to the start window. The general sequence for
|
||||||
|
* setting up the start window is:
|
||||||
|
*
|
||||||
|
* 1. Call CTaskBar::openApplicationWindow to create a window for the start window,
|
||||||
|
* 2. Call CStartMenu::addApplication numerous times to install applications
|
||||||
|
* in the start window.
|
||||||
|
* 3. Call CTaskBar::startApplication (initially minimized) to start the start
|
||||||
|
* window application.
|
||||||
*
|
*
|
||||||
* @param application. The new application to add to the start window
|
* @param application. The new application to add to the start window
|
||||||
* @return true on success
|
* @return true on success
|
||||||
*/
|
*/
|
||||||
|
|
||||||
bool addApplication(INxApplication *application);
|
bool addApplication(IApplication *application);
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // __cplusplus
|
#endif // __cplusplus
|
||||||
|
|
||||||
#endif // __INCLUDE_CNXSTART_NXX
|
#endif // __INCLUDE_CSTARTWINDOW_NXX
|
@ -33,8 +33,8 @@
|
|||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#ifndef __NXWM_INCLUDE_CNXTASKBAR_HXX
|
#ifndef __NXWM_INCLUDE_CTASKBAR_HXX
|
||||||
#define __NXWM_INCLUDE_CNXTASKBAR_HXX
|
#define __NXWM_INCLUDE_CTASKBAR_HXX
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Included Files
|
* Included Files
|
||||||
@ -43,6 +43,13 @@
|
|||||||
#include <nuttx/config.h>
|
#include <nuttx/config.h>
|
||||||
|
|
||||||
#include "nxconfig.hxx"
|
#include "nxconfig.hxx"
|
||||||
|
#include "tnxarray.hxx"
|
||||||
|
#include "inxwindow.hxx"
|
||||||
|
#include "cnxserver.hxx"
|
||||||
|
#include "cwidgeteventhandler.hxx"
|
||||||
|
#include "cwidgeteventargs.hxx"
|
||||||
|
|
||||||
|
#include "iapplication.hxx"
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Pre-processor Definitions
|
* Pre-processor Definitions
|
||||||
@ -60,12 +67,12 @@ namespace NxWM
|
|||||||
* This class describes the NX window manager's task bar
|
* This class describes the NX window manager's task bar
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class CNxTaskBar : public NXWidgets::CNxServer, private NXWidgets::CWidgetEventHandler
|
class CTaskbar : public NXWidgets::CNxServer, private NXWidgets::CWidgetEventHandler
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
NXWidgets:INxWindow *m_taskbar; /**< The toolbar window */
|
NXWidgets::INxWindow *m_taskbar; /**< The toolbar window */
|
||||||
NXWidgets:INxWindow *m_background; /**< The background window */
|
NXWidgets::INxWindow *m_background; /**< The background window */
|
||||||
INxApplication *m_start; /**< The start window */
|
TNxArray<IApplication*> m_applications; /**< List of apps in the task bar */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Connect to the server
|
* Connect to the server
|
||||||
@ -97,7 +104,7 @@ namespace NxWM
|
|||||||
/**
|
/**
|
||||||
* Create a framed application window
|
* 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.
|
* @return A partially initialized application window instance.
|
||||||
*/
|
*/
|
||||||
@ -135,66 +142,50 @@ namespace NxWM
|
|||||||
* @param e The event data.
|
* @param e The event data.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void handleClickEvent(const CWidgetEventArgs &e);
|
void handleClickEvent(const NXWidgets::CWidgetEventArgs &e);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CNxTaskBar Destructor
|
* CTaskbar Destructor
|
||||||
*/
|
*/
|
||||||
|
|
||||||
~CNxTaskBar(void);
|
~CTaskbar(void);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* CNxTaskBar Constructor
|
* CTaskbar Constructor
|
||||||
*
|
*
|
||||||
* @param hWnd - NX server handle
|
* @param hWnd - NX server handle
|
||||||
*/
|
*/
|
||||||
|
|
||||||
CNxTaskBar(void);
|
CTaskbar(void);
|
||||||
|
|
||||||
/**
|
|
||||||
* 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 addApplication(INxApplication *application);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Start the window manager and present the initial displays. The window
|
* Start the window manager and present the initial displays. The window
|
||||||
* manager start-up sequence is:
|
* manager start-up sequence is:
|
||||||
*
|
*
|
||||||
* 1. Create the CNxTaskBar instance,
|
* 1. Create the CTaskbar instance,
|
||||||
* 2. Call addApplication repeatedly to add applications to the start window
|
* 2. Call CTaskBar::startApplication repeatedly to add applications to the task bar
|
||||||
* 3. Call startWindowManager to start the display
|
* 3. Call CTaskBar::startWindowManager to start the display with applications in place
|
||||||
*
|
*
|
||||||
* startWindowManager will present the taskar and the background image. The
|
* startWindowManager will present the taskar and the background image. The
|
||||||
* initial taskbar will contain only the start window icon.
|
* 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 startWindowManager(start);
|
bool startWindowManager(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 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:
|
* window requires three steps:
|
||||||
*
|
*
|
||||||
* 1. Call openApplicationWindow to create a window for the application,
|
* 1. Call CTaskBar::openApplicationWindow to create a window for the application,
|
||||||
* 2. Instantiate the application, providing the window to the application's
|
* 2. Instantiate the application, providing the window to the application's
|
||||||
* constructor,
|
* constructor,
|
||||||
* 3. Then call addApplication to add the application to the start window.
|
* 3. Then call CStartWindow::addApplication to add the application to the
|
||||||
|
* start window.
|
||||||
*
|
*
|
||||||
* When the application is selected from the start window:
|
* When the application is selected from the start window:
|
||||||
*
|
*
|
||||||
* 4. Call startApplication start the application and bring its window to
|
* 4. Call CTaskBar::startApplication start the application and bring its window to
|
||||||
* the top.
|
* the top.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -202,24 +193,25 @@ namespace NxWM
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Start an application and add its icon to the taskbar. The applications's
|
* 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 is brought to the top. Creating a new application in the start
|
||||||
* window requires three steps:
|
* window requires three steps:
|
||||||
*
|
*
|
||||||
* 1. Call openApplicationWindow to create a window for the application,
|
* 1. Call CTaskBar::openApplicationWindow to create a window for the application,
|
||||||
* 2. Instantiate the application, providing the window to the application's
|
* 2. Instantiate the application, providing the window to the application's
|
||||||
* constructor,
|
* constructor,
|
||||||
* 3. Then call addApplication to add the application to the start window.
|
* 3. Then call CStartWindow::addApplication to add the application to the start window.
|
||||||
*
|
*
|
||||||
* When the application is selected from the start window:
|
* When the application is selected from the start window:
|
||||||
*
|
*
|
||||||
* 4. Call startApplication start the application and bring its window to
|
* 4. Call CTaskBar::startApplication start the application and bring its window to
|
||||||
* the top.
|
* 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
|
* @return true on success
|
||||||
*/
|
*/
|
||||||
|
|
||||||
bool startApplication(INxApplication *application);
|
bool startApplication(IApplication *app, bool minimized);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Hide an application by moving its window to the bottom.
|
* Hide an application by moving its window to the bottom.
|
||||||
@ -228,7 +220,7 @@ namespace NxWM
|
|||||||
* @return true on success
|
* @return true on success
|
||||||
*/
|
*/
|
||||||
|
|
||||||
bool hideApplication(INxApplication *application);
|
bool hideApplication(IApplication *application);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Destroy an application. Move its window to the bottom and remove its
|
* Destroy an application. Move its window to the bottom and remove its
|
||||||
@ -238,9 +230,9 @@ namespace NxWM
|
|||||||
* @return true on success
|
* @return true on success
|
||||||
*/
|
*/
|
||||||
|
|
||||||
bool stopApplication(INxApplication *application);
|
bool stopApplication(IApplication *application);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // __cplusplus
|
#endif // __cplusplus
|
||||||
#endif // __NXWM_INCLUDE_CNXTASKBAR_HXX
|
#endif // __NXWM_INCLUDE_CTASKBAR_HXX
|
@ -1,5 +1,5 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* NxWidgets/nxwm/include/inxapplication.hxx
|
* NxWidgets/nxwm/include/iapplication.hxx
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 Gregory Nutt. All rights reserved.
|
* Copyright (C) 2012 Gregory Nutt. All rights reserved.
|
||||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
@ -33,8 +33,8 @@
|
|||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#ifndef __INCLUDE_INXAPPLICATION_NXX
|
#ifndef __INCLUDE_IAPPLICATION_NXX
|
||||||
#define __INCLUDE_INXAPPLICATION_NXX
|
#define __INCLUDE_IAPPLICATION_NXX
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Included Files
|
* Included Files
|
||||||
@ -42,6 +42,10 @@
|
|||||||
|
|
||||||
#include <nuttx/config.h>
|
#include <nuttx/config.h>
|
||||||
|
|
||||||
|
#include "cnxstring.hxx"
|
||||||
|
#include "ibitmap.hxx"
|
||||||
|
#include "capplicationwindow.hxx"
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Pre-Processor Definitions
|
* Pre-Processor Definitions
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
@ -54,18 +58,15 @@
|
|||||||
|
|
||||||
namespace NxWM
|
namespace NxWM
|
||||||
{
|
{
|
||||||
class CApplicationWindow;
|
|
||||||
class NxWidget::CNxString;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* INxApplication provides the abstract base class for each NxWM application.
|
* IApplication provides the abstract base class for each NxWM application.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class INxApplication
|
class IApplication
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* Each implementation of INxApplication must provide a method to recover
|
* Each implementation of IApplication must provide a method to recover
|
||||||
* the contained CApplicationWindow instance.
|
* the contained CApplicationWindow instance.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -74,12 +75,12 @@ namespace NxWM
|
|||||||
/**
|
/**
|
||||||
* Get the icon associated with the application
|
* Get the icon associated with the application
|
||||||
*
|
*
|
||||||
* @return An instance if INxBitmap that may be used to rend the
|
* @return An instance if IBitmap that may be used to rend the
|
||||||
* application's icon. This is an new INxBitmap instance that must
|
* application's icon. This is an new IBitmap instance that must
|
||||||
* be deleted by the caller when it is no long needed.
|
* be deleted by the caller when it is no long needed.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
virtual NXWidgets::INxBitmap *getIcon(void) = 0;
|
virtual NXWidgets::IBitmap *getIcon(void) = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the name string associated with the application
|
* Get the name string associated with the application
|
||||||
@ -93,16 +94,16 @@ namespace NxWM
|
|||||||
* Start the application.
|
* Start the application.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
virtual run(void) = 0;
|
virtual void run(void) = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Stop the application.
|
* Stop the application.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
virtual stop(void) = 0;
|
virtual void stop(void) = 0;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // __cplusplus
|
#endif // __cplusplus
|
||||||
|
|
||||||
#endif // __INCLUDE_INXAPPLICATION_NXX
|
#endif // __INCLUDE_IAPPLICATION_NXX
|
@ -71,7 +71,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef CONFIG_NXWM_DEFAULT_BACKGROUNDCOLOR
|
#ifndef CONFIG_NXWM_DEFAULT_BACKGROUNDCOLOR
|
||||||
# define CONFIG_NXWM_DEFAULT_BACKGROUNDCOLOR CONFIG_NXWM_DEFAULT_BACKGROUNDCOLOR
|
# define CONFIG_NXWM_DEFAULT_BACKGROUNDCOLOR MKRGB(160,160,160)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -79,7 +79,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef CONFIG_NXWM_DEFAULT_SELECTEDBACKGROUNDCOLOR
|
#ifndef CONFIG_NXWM_DEFAULT_SELECTEDBACKGROUNDCOLOR
|
||||||
# define CONFIG_NXWM_DEFAULT_SELECTEDBACKGROUNDCOLOR CONFIG_NXWM_DEFAULT_SELECTEDBACKGROUNDCOLOR
|
# define CONFIG_NXWM_DEFAULT_SELECTEDBACKGROUNDCOLOR MKRGB(120,192,192)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -127,18 +127,18 @@
|
|||||||
|
|
||||||
#if defined(CONFIG_NXWM_TASKBAR_TOP)
|
#if defined(CONFIG_NXWM_TASKBAR_TOP)
|
||||||
# if defined(CONFIG_NXWM_TASKBAR_BOTTOM) || defined (CONFIG_NXWM_TASKBAR_LEFT) || defined (CONFIG_NXWM_TASKBAR_RIGHT)
|
# if defined(CONFIG_NXWM_TASKBAR_BOTTOM) || defined (CONFIG_NXWM_TASKBAR_LEFT) || defined (CONFIG_NXWM_TASKBAR_RIGHT)
|
||||||
# warning "Multiple task positions specified"
|
# warning "Multiple task bar positions specified"
|
||||||
# endif
|
# endif
|
||||||
#elif defined(CONFIG_NXWM_TASKBAR_BOTTOM)
|
#elif defined(CONFIG_NXWM_TASKBAR_BOTTOM)
|
||||||
# if defined (CONFIG_NXWM_TASKBAR_LEFT) || defined (CONFIG_NXWM_TASKBAR_RIGHT)
|
# if defined (CONFIG_NXWM_TASKBAR_LEFT) || defined (CONFIG_NXWM_TASKBAR_RIGHT)
|
||||||
# warning "Multiple task positions specified"
|
# warning "Multiple task bar positions specified"
|
||||||
# endif
|
# endif
|
||||||
#elif defined(CONFIG_NXWM_TASKBAR_LEFT)
|
#elif defined(CONFIG_NXWM_TASKBAR_LEFT)
|
||||||
# if defined defined (CONFIG_NXWM_TASKBAR_RIGHT)
|
# if defined defined (CONFIG_NXWM_TASKBAR_RIGHT)
|
||||||
# warning "Multiple task positions specified"
|
# warning "Multiple task bar positions specified"
|
||||||
# endif
|
# endif
|
||||||
#elif !defined(CONFIG_NXWM_TASKBAR_RIGHT)
|
#elif !defined(CONFIG_NXWM_TASKBAR_RIGHT)
|
||||||
# warning "No task positions specified"
|
# warning "No task bar position specified"
|
||||||
# define CONFIG_NXWM_TASKBAR_TOP 1
|
# define CONFIG_NXWM_TASKBAR_TOP 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/********************************************************************************************
|
/********************************************************************************************
|
||||||
* NxWidgets/nxwm/src/cnxtaskbar.cxx
|
* NxWidgets/nxwm/src/capplicationwindow.cxx
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 Gregory Nutt. All rights reserved.
|
* Copyright (C) 2012 Gregory Nutt. All rights reserved.
|
||||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
|
@ -41,6 +41,7 @@
|
|||||||
|
|
||||||
#include "nxwmconfig.hxx"
|
#include "nxwmconfig.hxx"
|
||||||
#include "cnxconsole.hxx"
|
#include "cnxconsole.hxx"
|
||||||
|
#include "nxwmglyphs.hxx"
|
||||||
|
|
||||||
/********************************************************************************************
|
/********************************************************************************************
|
||||||
* Pre-Processor Definitions
|
* Pre-Processor Definitions
|
||||||
@ -50,6 +51,8 @@
|
|||||||
* CNxConsole Method Implementations
|
* CNxConsole Method Implementations
|
||||||
********************************************************************************************/
|
********************************************************************************************/
|
||||||
|
|
||||||
|
using namespace NxWM;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CNxConsole constructor
|
* CNxConsole constructor
|
||||||
*
|
*
|
||||||
@ -63,14 +66,14 @@ CNxConsole::CNxConsole(NXWidgets::INxWindow *window)
|
|||||||
/**
|
/**
|
||||||
* Get the icon associated with the application
|
* Get the icon associated with the application
|
||||||
*
|
*
|
||||||
* @return An instance if INxBitmap that may be used to rend the
|
* @return An instance if IBitmap that may be used to rend the
|
||||||
* application's icon. This is an new INxBitmap instance that must
|
* application's icon. This is an new IBitmap instance that must
|
||||||
* be deleted by the caller when it is no long needed.
|
* 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);
|
NXWidgets::CRlePaletteBitmap *bitmap = new NXWidgets::CRlePaletteBitmap(&g_nshBitmap);
|
||||||
return static_cast<INxBitmap>(bitmap);
|
return static_cast<NXWidgets::IBitmap *>(bitmap);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/********************************************************************************************
|
/********************************************************************************************
|
||||||
* NxWidgets/nxwm/src/cnxtaskbar.cxx
|
* NxWidgets/nxwm/src/ctaskbar.cxx
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 Gregory Nutt. All rights reserved.
|
* Copyright (C) 2012 Gregory Nutt. All rights reserved.
|
||||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
@ -39,8 +39,14 @@
|
|||||||
|
|
||||||
#include <nuttx/config.h>
|
#include <nuttx/config.h>
|
||||||
|
|
||||||
|
#include <nuttx/nx/nxglib.h>
|
||||||
|
|
||||||
|
#include "crect.hxx"
|
||||||
|
#include "cwidgetcontrol.hxx"
|
||||||
|
#include "cnxtkwindow.hxx"
|
||||||
|
|
||||||
#include "nxwmconfig.hxx"
|
#include "nxwmconfig.hxx"
|
||||||
#include "cnxconsole.hxx"
|
#include "ctaskbar.hxx"
|
||||||
|
|
||||||
/********************************************************************************************
|
/********************************************************************************************
|
||||||
* Pre-Processor Definitions
|
* Pre-Processor Definitions
|
||||||
@ -53,49 +59,33 @@
|
|||||||
using namespace NxWM;
|
using namespace NxWM;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CNxTaskBar Constructor
|
* CTaskbar Constructor
|
||||||
*
|
*
|
||||||
* @param hWnd - NX server handle
|
* @param hWnd - NX server handle
|
||||||
*/
|
*/
|
||||||
|
|
||||||
CNxTaskBar::CNxTaskBar(void)
|
CTaskbar::CTaskbar(void)
|
||||||
{
|
{
|
||||||
m_taskbar = (INxWindow *)NULL;
|
m_taskbar = (NXWidgets::INxWindow *)0;
|
||||||
m_background = (INxWindow *)NULL;
|
m_background = (NXWidgets::INxWindow *)0;
|
||||||
m_start = (INxWindow *)NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CNxTaskBar Destructor
|
* CTaskbar Destructor
|
||||||
*/
|
*/
|
||||||
|
|
||||||
CNxTaskBar::~CNxTaskBar(void)
|
CTaskbar::~CTaskbar(void)
|
||||||
{
|
{
|
||||||
disconnect();
|
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
|
* Start the window manager and present the initial displays. The window
|
||||||
* manager start-up sequence is:
|
* manager start-up sequence is:
|
||||||
*
|
*
|
||||||
* 1. Create the CNxTaskBar instance,
|
* 1. Create the CTaskbar instance,
|
||||||
* 2. Call addApplication repeatedly to add applications to the start window
|
* 2. Call startApplication repeatedly to add applications to the task bar
|
||||||
* 3. Call startWindowManager to start the display
|
* 3. Call startWindowManager to start the display with applications in place
|
||||||
*
|
*
|
||||||
* startWindowManager will present the taskar and the background image. The
|
* startWindowManager will present the taskar and the background image. The
|
||||||
* initial taskbar will contain only the start window icon.
|
* initial taskbar will contain only the start window icon.
|
||||||
@ -104,10 +94,14 @@ bool CNxTaskBar::addApplication(INxApplication *application)
|
|||||||
* @return true on success
|
* @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:
|
* window requires three steps:
|
||||||
*
|
*
|
||||||
* 1. Call openApplicationWindow to create a window for the application,
|
* 1. Call openApplicationWindow to create a window for the application,
|
||||||
@ -121,29 +115,35 @@ bool CNxTaskBar::startWindowManager(start);
|
|||||||
* the top.
|
* 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
|
* 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 is brought to the top. Creating a new applicatino in the start
|
||||||
* window requires three steps:
|
* window requires three steps:
|
||||||
*
|
*
|
||||||
* 1. Call openApplicationWindow to create a window for the application,
|
* 1. Create the CTaskbar instance,
|
||||||
* 2. Instantiate the application, providing the window to the application's
|
* 2. Call startApplication repeatedly to add applications to the task bar
|
||||||
* constructor,
|
* 3. Call startWindowManager to start the display with applications in place
|
||||||
* 3. Then call addApplication to add the application to the start window.
|
|
||||||
*
|
*
|
||||||
* When the application is selected from the start window:
|
* When the application is selected from the start window:
|
||||||
*
|
*
|
||||||
* 4. Call startApplication start the application and bring its window to
|
* 4. Call startApplication start the application and bring its window to
|
||||||
* the top.
|
* 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
|
* @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
|
* @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
|
* @return true on success
|
||||||
*/
|
*/
|
||||||
|
|
||||||
bool CNxTaskBar::stopApplication(INxApplication *application)
|
bool CTaskbar::stopApplication(IApplication *application)
|
||||||
{
|
{
|
||||||
|
#warning "Missing logic"
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Connect to the server
|
* Connect to the server
|
||||||
*/
|
*/
|
||||||
|
|
||||||
bool CNxTaskBar::connect(void)
|
bool CTaskbar::connect(void)
|
||||||
{
|
{
|
||||||
// Connect to the server
|
// Connect to the server
|
||||||
|
|
||||||
@ -182,9 +199,9 @@ bool CNxTaskBar::connect(void)
|
|||||||
{
|
{
|
||||||
// Set the background color
|
// 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
|
* Disconnect from the server
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void CNxTaskBar::disconnect(void)
|
void CTaskbar::disconnect(void)
|
||||||
{
|
{
|
||||||
// Delete all applications
|
// Stop all applications and remove them from the task bar. Clearly, there
|
||||||
#warning "Missing logic
|
// 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
|
// Close the windows
|
||||||
|
|
||||||
@ -235,22 +259,6 @@ void CNxTaskBar::disconnect(void)
|
|||||||
delete m_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
|
// And disconnect from the server
|
||||||
|
|
||||||
CNxServer::disconnect();
|
CNxServer::disconnect();
|
||||||
@ -269,19 +277,18 @@ void CNxTaskBar::disconnect(void)
|
|||||||
* widget constructor
|
* widget constructor
|
||||||
*/
|
*/
|
||||||
|
|
||||||
NXWidgets::CNxWindow *CNxTaskBar::openRawWindow(void)
|
NXWidgets::CNxWindow *CTaskbar::openRawWindow(void)
|
||||||
{
|
{
|
||||||
// Initialize the widget control using the default style
|
// 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
|
// Get an (uninitialized) instance of the background window as a class
|
||||||
// that derives from INxWindow.
|
// that derives from INxWindow.
|
||||||
|
|
||||||
NXWidgets::CNxWindow window = createRawWindow(widgetControl);
|
NXWidgets::CNxWindow *window = createRawWindow(widgetControl);
|
||||||
if (!window)
|
if (!window)
|
||||||
{
|
{
|
||||||
message("CNxwm::createGraphics: Failed to create background window\n");
|
|
||||||
delete widgetControl;
|
delete widgetControl;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -291,9 +298,8 @@ NXWidgets::CNxWindow *CNxTaskBar::openRawWindow(void)
|
|||||||
bool success = window->open();
|
bool success = window->open();
|
||||||
if (!success)
|
if (!success)
|
||||||
{
|
{
|
||||||
message("CNxwm::createGraphics: Failed to open background window\n");
|
|
||||||
delete window;
|
delete window;
|
||||||
window = (NXWidgets::INxWindow *)0;
|
window = (NXWidgets::CNxWindow *)0;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -303,24 +309,23 @@ NXWidgets::CNxWindow *CNxTaskBar::openRawWindow(void)
|
|||||||
/**
|
/**
|
||||||
* Create a framed application window
|
* 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.
|
* @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
|
// 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
|
// Get an (uninitialized) instance of the background window as a class
|
||||||
// that derives from INxWindow.
|
// that derives from INxWindow.
|
||||||
|
|
||||||
NXWidgets:CNxTkWindow window = createRawWindow(widgetControl);
|
NXWidgets::CNxTkWindow *window = createFramedWindow(widgetControl);
|
||||||
if (!window)
|
if (!window)
|
||||||
{
|
{
|
||||||
message("CNxwm::createGraphics: Failed to create background window\n");
|
|
||||||
delete widgetControl;
|
delete widgetControl;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -330,9 +335,8 @@ NXWidgets::CNxTkWindow *CNxTaskBar::openFramedWindow(void)
|
|||||||
bool success = window->open();
|
bool success = window->open();
|
||||||
if (!success)
|
if (!success)
|
||||||
{
|
{
|
||||||
message("CNxwm::createGraphics: Failed to open background window\n");
|
|
||||||
delete window;
|
delete window;
|
||||||
window = (NXWidgets::INxWindow *)0;
|
window = (NXWidgets::CNxTkWindow *)0;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -347,18 +351,22 @@ NXWidgets::CNxTkWindow *CNxTaskBar::openFramedWindow(void)
|
|||||||
* @return true on success
|
* @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
|
// Get the widget control from the toolbar window. The physical window geometry
|
||||||
// should be the same for all windows.
|
// should be the same for all windows.
|
||||||
|
|
||||||
NXWidgets::CWidgetControl *control = m_taskbar->getWidgetControl();
|
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
|
// Now position and size the application. This will depend on the position and
|
||||||
// orientation of the toolbar.
|
// orientation of the toolbar.
|
||||||
|
|
||||||
nxgl_point_t pos;
|
struct nxgl_point_s pos;
|
||||||
nxgl_size_t size;
|
struct nxgl_size_s size;
|
||||||
|
|
||||||
#if defined(CONFIG_NXWM_TASKBAR_TOP)
|
#if defined(CONFIG_NXWM_TASKBAR_TOP)
|
||||||
pos.x = 0;
|
pos.x = 0;
|
||||||
@ -402,14 +410,13 @@ bool CNxTaskBar::setApplicationGeometry(NXWidgets::INxWindow *window)
|
|||||||
* @return true on success
|
* @return true on success
|
||||||
*/
|
*/
|
||||||
|
|
||||||
bool CNxTaskBar::createToolbarWindow(void)
|
bool CTaskbar::createToolbarWindow(void)
|
||||||
{
|
{
|
||||||
// Create a raw window to present the toolbar
|
// Create a raw window to present the toolbar
|
||||||
|
|
||||||
m_taskbar = openRawWindow();
|
m_taskbar = openRawWindow();
|
||||||
if (!m_taskbar)
|
if (!m_taskbar)
|
||||||
{
|
{
|
||||||
message("CNxwm::createGraphics: Failed to create CBgWindow instance\n");
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -419,13 +426,13 @@ bool CNxTaskBar::createToolbarWindow(void)
|
|||||||
|
|
||||||
// Get the size of the window from the widget control
|
// 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
|
// Now position and size the toolbar. This will depend on the position and
|
||||||
// orientation of the toolbar.
|
// orientation of the toolbar.
|
||||||
|
|
||||||
nxgl_point_t pos;
|
struct nxgl_point_s pos;
|
||||||
nxgl_size_t size;
|
struct nxgl_size_s size;
|
||||||
|
|
||||||
#if defined(CONFIG_NXWM_TASKBAR_TOP)
|
#if defined(CONFIG_NXWM_TASKBAR_TOP)
|
||||||
pos.x = 0;
|
pos.x = 0;
|
||||||
@ -464,7 +471,7 @@ bool CNxTaskBar::createToolbarWindow(void)
|
|||||||
|
|
||||||
/* And raise the window to the top of the display */
|
/* 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
|
// Add the start menu's icon to the toolbar
|
||||||
#warning "Missing logic"
|
#warning "Missing logic"
|
||||||
@ -477,67 +484,34 @@ bool CNxTaskBar::createToolbarWindow(void)
|
|||||||
* @return true on success
|
* @return true on success
|
||||||
*/
|
*/
|
||||||
|
|
||||||
bool CNxTaskBar::createBackgroundWindow(void)
|
bool CTaskbar::createBackgroundWindow(void)
|
||||||
{
|
{
|
||||||
// Create a raw window to present the background image
|
// Create a raw window to present the background image
|
||||||
|
|
||||||
m_background = openRawWindow();
|
m_background = openRawWindow();
|
||||||
if (!m_background)
|
if (!m_background)
|
||||||
{
|
{
|
||||||
message("CNxwm::createGraphics: Failed to create background window\n");
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set the geometry to fit in the application window space
|
// 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 */
|
/* And lower the background window to the bottom of the display */
|
||||||
|
|
||||||
m_background->lower(void);
|
m_background->lower();
|
||||||
|
|
||||||
return true;
|
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.
|
* Handle a mouse button click event.
|
||||||
*
|
*
|
||||||
* @param e The event data.
|
* @param e The event data.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void CNxApplicationWindow::handleClickEvent(const NXWidgets::CWidgetEventArgs &e)
|
void CTaskbar::handleClickEvent(const NXWidgets::CWidgetEventArgs &e)
|
||||||
{
|
{
|
||||||
#warning "Missing logic"
|
#warning "Missing logic"
|
||||||
}
|
}
|
@ -49,7 +49,7 @@
|
|||||||
|
|
||||||
#include "nxconfig.hxx"
|
#include "nxconfig.hxx"
|
||||||
#include "crlepalettebitmap.hxx"
|
#include "crlepalettebitmap.hxx"
|
||||||
#include "glyphs.hxx"
|
#include "nxwmglyphs.hxx"
|
||||||
|
|
||||||
/********************************************************************************************
|
/********************************************************************************************
|
||||||
* Pre-Processor Definitions
|
* Pre-Processor Definitions
|
||||||
@ -121,7 +121,7 @@ static const nxgl_mxpixel_t g_minimizeLut[BITMAP_NLUTCODES] =
|
|||||||
# error "Unsupport pixel format"
|
# error "Unsupport pixel format"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static const struct SRlePaletteBitmapEntry g_minimizeRleEntries[] =
|
static const struct NXWidgets::SRlePaletteBitmapEntry g_minimizeRleEntries[] =
|
||||||
{
|
{
|
||||||
{ 25, 0}, /* Row 0 */
|
{ 25, 0}, /* Row 0 */
|
||||||
{ 25, 0}, /* Row 1 */
|
{ 25, 0}, /* Row 1 */
|
||||||
@ -170,7 +170,7 @@ static const struct SRlePaletteBitmapEntry g_minimizeRleEntries[] =
|
|||||||
* Public Bitmap Structure Defintions
|
* 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_BPP, // bpp - Bits per pixel
|
||||||
CONFIG_NXWIDGETS_FMT, // fmt - Color format
|
CONFIG_NXWIDGETS_FMT, // fmt - Color format
|
||||||
|
@ -49,7 +49,8 @@
|
|||||||
|
|
||||||
#include "nxconfig.hxx"
|
#include "nxconfig.hxx"
|
||||||
#include "crlepalettebitmap.hxx"
|
#include "crlepalettebitmap.hxx"
|
||||||
#include "glyphs.hxx"
|
|
||||||
|
#include "nxwmglyphs.hxx"
|
||||||
|
|
||||||
/********************************************************************************************
|
/********************************************************************************************
|
||||||
* Pre-Processor Definitions
|
* Pre-Processor Definitions
|
||||||
@ -125,7 +126,7 @@ static const nxgl_mxpixel_t g_nshLut[BITMAP_NLUTCODES] =
|
|||||||
# error "Unsupport pixel format"
|
# error "Unsupport pixel format"
|
||||||
#endif
|
#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}, { 1, 1}, { 1, 2}, { 1, 1}, { 11, 0}, /* Row 0 */
|
||||||
{ 11, 0}, { 3, 3}, { 11, 0}, /* Row 1 */
|
{ 11, 0}, { 3, 3}, { 11, 0}, /* Row 1 */
|
||||||
@ -195,7 +196,7 @@ static const struct SRlePaletteBitmapEntry g_nshRleEntries[] =
|
|||||||
* Public Bitmap Structure Defintions
|
* 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_BPP, // bpp - Bits per pixel
|
||||||
CONFIG_NXWIDGETS_FMT, // fmt - Color format
|
CONFIG_NXWIDGETS_FMT, // fmt - Color format
|
||||||
|
@ -49,7 +49,8 @@
|
|||||||
|
|
||||||
#include "nxconfig.hxx"
|
#include "nxconfig.hxx"
|
||||||
#include "crlepalettebitmap.hxx"
|
#include "crlepalettebitmap.hxx"
|
||||||
#include "glyphs.hxx"
|
|
||||||
|
#include "nxwmglyphs.hxx"
|
||||||
|
|
||||||
/********************************************************************************************
|
/********************************************************************************************
|
||||||
* Pre-Processor Definitions
|
* Pre-Processor Definitions
|
||||||
@ -125,7 +126,7 @@ static const nxgl_mxpixel_t g_startLut[BITMAP_NLUTCODES] =
|
|||||||
# error "Unsupport pixel format"
|
# error "Unsupport pixel format"
|
||||||
#endif
|
#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 */
|
{ 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 */
|
{ 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
|
* 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_BPP, // bpp - Bits per pixel
|
||||||
CONFIG_NXWIDGETS_FMT, // fmt - Color format
|
CONFIG_NXWIDGETS_FMT, // fmt - Color format
|
||||||
|
@ -49,7 +49,8 @@
|
|||||||
|
|
||||||
#include "nxconfig.hxx"
|
#include "nxconfig.hxx"
|
||||||
#include "crlepalettebitmap.hxx"
|
#include "crlepalettebitmap.hxx"
|
||||||
#include "glyphs.hxx"
|
|
||||||
|
#include "nxwmglyphs.hxx"
|
||||||
|
|
||||||
/********************************************************************************************
|
/********************************************************************************************
|
||||||
* Pre-Processor Definitions
|
* Pre-Processor Definitions
|
||||||
@ -136,7 +137,7 @@ static const nxgl_mxpixel_t g_stopLut[BITMAP_NLUTCODES] =
|
|||||||
# error "Unsupport pixel format"
|
# error "Unsupport pixel format"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static const struct SRlePaletteBitmapEntry g_stopRleEntries[] =
|
static const struct NXWidgets::SRlePaletteBitmapEntry g_stopRleEntries[] =
|
||||||
{
|
{
|
||||||
{ 25, 0}, /* Row 0 */
|
{ 25, 0}, /* Row 0 */
|
||||||
{ 25, 0}, /* Row 1 */
|
{ 25, 0}, /* Row 1 */
|
||||||
@ -208,7 +209,7 @@ static const struct SRlePaletteBitmapEntry g_stopRleEntries[] =
|
|||||||
* Public Bitmap Structure Defintions
|
* 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_BPP, // bpp - Bits per pixel
|
||||||
CONFIG_NXWIDGETS_FMT, // fmt - Color format
|
CONFIG_NXWIDGETS_FMT, // fmt - Color format
|
||||||
|
Loading…
x
Reference in New Issue
Block a user