summaryrefslogtreecommitdiff
path: root/NxWidgets/nxwm/include
diff options
context:
space:
mode:
Diffstat (limited to 'NxWidgets/nxwm/include')
-rw-r--r--NxWidgets/nxwm/include/cnxconsole.hxx131
-rw-r--r--NxWidgets/nxwm/include/cstartwindow.hxx4
-rw-r--r--NxWidgets/nxwm/include/iapplication.hxx6
-rw-r--r--NxWidgets/nxwm/include/nxwmconfig.hxx22
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