diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2012-05-01 14:52:54 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2012-05-01 14:52:54 +0000 |
commit | 990276740afafeb69f64b01050a99f113bb89fa6 (patch) | |
tree | 80c3626717d9db8bc4b3b6726149aff19dbb446c /NxWidgets/nxwm/include | |
parent | 2812a9f1df22438f8ccd30dd5e5dc48dc3465b3f (diff) | |
download | px4-nuttx-990276740afafeb69f64b01050a99f113bb89fa6.tar.gz px4-nuttx-990276740afafeb69f64b01050a99f113bb89fa6.tar.bz2 px4-nuttx-990276740afafeb69f64b01050a99f113bb89fa6.zip |
Add beginning of NxWM NxConsole application
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4681 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'NxWidgets/nxwm/include')
-rw-r--r-- | NxWidgets/nxwm/include/cnxconsole.hxx | 131 | ||||
-rw-r--r-- | NxWidgets/nxwm/include/cstartwindow.hxx | 4 | ||||
-rw-r--r-- | NxWidgets/nxwm/include/iapplication.hxx | 6 | ||||
-rw-r--r-- | NxWidgets/nxwm/include/nxwmconfig.hxx | 22 |
4 files changed, 134 insertions, 29 deletions
diff --git a/NxWidgets/nxwm/include/cnxconsole.hxx b/NxWidgets/nxwm/include/cnxconsole.hxx index 4009eb8b9..99a9b92f2 100644 --- a/NxWidgets/nxwm/include/cnxconsole.hxx +++ b/NxWidgets/nxwm/include/cnxconsole.hxx @@ -42,7 +42,13 @@ #include <nuttx/config.h> +#include <sys/types.h> +#include <nuttx/nx/nxtk.h> +#include <nuttx/nx/nxconsole.h> + #include "iapplication.hxx" +#include "capplicationwindow.hxx" +#include "ctaskbar.hxx" /**************************************************************************** * Pre-Processor Definitions @@ -57,36 +63,109 @@ namespace NxWM { /** + * One time NSH initialization. This function must be called exactly + * once during the boot-up sequence to initialize the NSH library. + * + * @return True on successful initialization + */ + + bool nshlibInitialize(void); + + /** * This class implements the NxConsole application. */ - class CNxConsole : public IApplication + class CNxConsole : public IApplication, private IApplicationCallback { - protected: - /** - * CNxConsole destructor - */ - - ~CNxConsole(void); - - public: - /** - * CNxConsole constructor - * - * @param window. The application window - */ - - CNxConsole(NXWidgets::INxWindow *window); - - /** - * Get the icon associated with the application - * - * @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::IBitmap *getIcon(void); + protected: + CTaskbar *m_taskbar; /**< Reference to the "parent" taskbar */ + CApplicationWindow *m_window; /**< Reference to the application window */ + NXCONSOLE m_nxcon; /**< NxConsole handle */ + pid_t m_pid; /**< Task ID of the NxConsole thread */ + + /** + * Called when the window minimize button is pressed. + */ + + void minimize(void); + + /** + * Called when the window minimize close is pressed. + */ + + void close(void); + + /** + * CNxConsole destructor + */ + + ~CNxConsole(void); + + public: + /** + * CNxConsole constructor + * + * @param window. The application window + * + * @param taskbar. A pointer to the parent task bar instance + * @param window. The window to be used by this application. + */ + + CNxConsole(CTaskbar *taskbar, CApplicationWindow *window); + + /** + * Each implementation of IApplication must provide a method to recover + * the contained CApplicationWindow instance. + */ + + CApplicationWindow *getWindow(void) const; + + /** + * Get the icon associated with the application + * + * @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::IBitmap *getIcon(void); + + /** + * Get the name string associated with the application + * + * @return A copy if CNxString that contains the name of the application. + */ + + NXWidgets::CNxString getName(void); + + /** + * Start the application (perhaps in the minimized state). + * + * @return True if the application was successfully started. + */ + + bool run(void); + + /** + * Stop the application. + */ + + void stop(void); + + /** + * The application window is hidden (either it is minimized or it is + * maximized, but not at the top of the hierarchy + */ + + void hide(void); + + /** + * Redraw the entire window. The application has been maximized or + * otherwise moved to the top of the hierarchy. This method is call from + * CTaskbar when the application window must be displayed + */ + + void redraw(void); }; } #endif // __cplusplus diff --git a/NxWidgets/nxwm/include/cstartwindow.hxx b/NxWidgets/nxwm/include/cstartwindow.hxx index fca886e8d..ab6b6f926 100644 --- a/NxWidgets/nxwm/include/cstartwindow.hxx +++ b/NxWidgets/nxwm/include/cstartwindow.hxx @@ -160,9 +160,11 @@ namespace NxWM /** * Start the application. + * + * @return True if the application was successfully started. */ - void run(void); + bool run(void); /** * Stop the application. diff --git a/NxWidgets/nxwm/include/iapplication.hxx b/NxWidgets/nxwm/include/iapplication.hxx index 885b85710..be9a96fe5 100644 --- a/NxWidgets/nxwm/include/iapplication.hxx +++ b/NxWidgets/nxwm/include/iapplication.hxx @@ -99,10 +99,12 @@ namespace NxWM virtual NXWidgets::CNxString getName(void) = 0; /** - * Start the application (pehaps in the minimized state). + * Start the application (perhaps in the minimized state). + * + * @return True if the application was successfully started. */ - virtual void run(void) = 0; + virtual bool run(void) = 0; /** * Stop the application. diff --git a/NxWidgets/nxwm/include/nxwmconfig.hxx b/NxWidgets/nxwm/include/nxwmconfig.hxx index cdbcee564..a683dbd5f 100644 --- a/NxWidgets/nxwm/include/nxwmconfig.hxx +++ b/NxWidgets/nxwm/include/nxwmconfig.hxx @@ -198,4 +198,26 @@ # define CONFIG_NXWM_STARTWINDOW_HSPACING (2) #endif +/* NxConsole Window *********************************************************/ + +#ifndef CONFIG_NXWM_NXCONSOLE_PRIO +# define CONFIG_NXWM_NXCONSOLE_PRIO SCHED_PRIORITY_DEFAULT +#endif + +#ifndef CONFIG_NXWM_NXCONSOLE_STACKSIZE +# define CONFIG_NXWM_NXCONSOLE_STACKSIZE 2048 +#endif + +#ifndef CONFIG_NXWM_NXCONSOLE_WCOLOR +# define CONFIG_NXWM_NXCONSOLE_WCOLOR MKRGB(192,192,192) +#endif + +#ifndef CONFIG_NXWM_NXCONSOLE_FONTCOLOR +# define CONFIG_NXWM_NXCONSOLE_FONTCOLOR MKRGB(0,0,0) +#endif + +#ifndef CONFIG_NXWM_NXCONSOLE_FONTID +# define CONFIG_NXWM_NXCONSOLE_FONTID CONFIG_NXWM_DEFAULT_FONTID +#endif + #endif // __INCLUDE_NXWMCONFIG_HXX |