summaryrefslogtreecommitdiff
path: root/NxWidgets/nxwm
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-11-09 14:54:29 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-11-09 14:54:29 +0000
commit42a56e78dda5561d301ec2e61a0bac17e7342525 (patch)
tree5dec10051ddb12ddf1d6d7f02c69d09ad2a27895 /NxWidgets/nxwm
parent2b35c03044dc6acfe720522f943ee07df1b65897 (diff)
downloadnuttx-42a56e78dda5561d301ec2e61a0bac17e7342525.tar.gz
nuttx-42a56e78dda5561d301ec2e61a0bac17e7342525.tar.bz2
nuttx-42a56e78dda5561d301ec2e61a0bac17e7342525.zip
Several patches from Petteri Aimonen (mostly NxWidgets)
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5324 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'NxWidgets/nxwm')
-rw-r--r--NxWidgets/nxwm/src/capplicationwindow.cxx30
-rw-r--r--NxWidgets/nxwm/src/chexcalculator.cxx2
-rw-r--r--NxWidgets/nxwm/src/cstartwindow.cxx2
-rw-r--r--NxWidgets/nxwm/src/ctaskbar.cxx19
4 files changed, 41 insertions, 12 deletions
diff --git a/NxWidgets/nxwm/src/capplicationwindow.cxx b/NxWidgets/nxwm/src/capplicationwindow.cxx
index 65de1b1a4..d2e044298 100644
--- a/NxWidgets/nxwm/src/capplicationwindow.cxx
+++ b/NxWidgets/nxwm/src/capplicationwindow.cxx
@@ -241,6 +241,7 @@ bool CApplicationWindow::open(void)
m_stopImage->addWidgetEventHandler(this);
}
+#ifndef CONFIG_NXWM_DISABLE_MINIMIZE
// Create MINIMIZE application bitmap container
m_minimizeBitmap = new NXWidgets::CRlePaletteBitmap(&g_minimizeBitmap);
@@ -289,6 +290,7 @@ bool CApplicationWindow::open(void)
m_minimizeImage->setBorderless(true);
m_minimizeImage->addWidgetEventHandler(this);
+#endif
// The rest of the toolbar will hold the left-justified application label
// Create the default font instance
@@ -364,12 +366,16 @@ void CApplicationWindow::redraw(void)
m_stopImage->setRaisesEvents(true);
}
- // Draw the minimize image
-
- m_minimizeImage->enableDrawing();
- m_minimizeImage->redraw();
- m_minimizeImage->setRaisesEvents(true);
+ // Draw the minimize image (which may not be present if this is a
+ // mimimization is disabled)
+ if (m_minimizeImage)
+ {
+ m_minimizeImage->enableDrawing();
+ m_minimizeImage->redraw();
+ m_minimizeImage->setRaisesEvents(true);
+ }
+
// And finally draw the window label
m_windowLabel->enableDrawing();
@@ -392,11 +398,15 @@ void CApplicationWindow::hide(void)
m_stopImage->setRaisesEvents(false);
}
- // Disable the minimize image
-
- m_minimizeImage->disableDrawing();
- m_minimizeImage->setRaisesEvents(false);
+ // Disable the minimize image(which may not be present if this is a
+ // mimimization is disabled)
+ if (m_minimizeImage)
+ {
+ m_minimizeImage->disableDrawing();
+ m_minimizeImage->setRaisesEvents(false);
+ }
+
// Disable the window label
m_windowLabel->disableDrawing();
@@ -570,7 +580,7 @@ void CApplicationWindow::handleActionEvent(const NXWidgets::CWidgetEventArgs &e)
// Check the minimize image (only if the stop application image is not pressed)
- else if (m_minimizeImage->isClicked())
+ else if (m_minimizeImage && m_minimizeImage->isClicked())
{
// Notify the controlling logic that the application should be miminsed
diff --git a/NxWidgets/nxwm/src/chexcalculator.cxx b/NxWidgets/nxwm/src/chexcalculator.cxx
index f8f1bb246..eeb0b1d1d 100644
--- a/NxWidgets/nxwm/src/chexcalculator.cxx
+++ b/NxWidgets/nxwm/src/chexcalculator.cxx
@@ -191,6 +191,8 @@ namespace NxWM
* CHexCalculator Method Implementations
********************************************************************************************/
+extern const struct NXWidgets::SRlePaletteBitmap CONFIG_NXWM_HEXCALCULATOR_ICON;
+
using namespace NxWM;
/**
diff --git a/NxWidgets/nxwm/src/cstartwindow.cxx b/NxWidgets/nxwm/src/cstartwindow.cxx
index 5c54cba3a..a99e81d88 100644
--- a/NxWidgets/nxwm/src/cstartwindow.cxx
+++ b/NxWidgets/nxwm/src/cstartwindow.cxx
@@ -71,6 +71,8 @@ FAR const char *NxWM::g_startWindowMqName = CONFIG_NXWM_STARTWINDOW_MQNAME;
* CStartWindow Method Implementations
********************************************************************************************/
+extern const struct NXWidgets::SRlePaletteBitmap CONFIG_NXWM_STARTWINDOW_ICON;
+
using namespace NxWM;
/**
diff --git a/NxWidgets/nxwm/src/ctaskbar.cxx b/NxWidgets/nxwm/src/ctaskbar.cxx
index c494fcba3..23d2d23b5 100644
--- a/NxWidgets/nxwm/src/ctaskbar.cxx
+++ b/NxWidgets/nxwm/src/ctaskbar.cxx
@@ -991,6 +991,7 @@ bool CTaskbar::createBackgroundWindow(void)
bool CTaskbar::createBackgroundImage(void)
{
+#ifndef CONFIG_NXWM_DISABLE_BACKGROUND_IMAGE
// Get the size of the display
struct nxgl_size_s windowSize;
@@ -1054,6 +1055,8 @@ bool CTaskbar::createBackgroundImage(void)
m_backImage->setBorderless(true);
m_backImage->setRaisesEvents(false);
+#endif
+
return true;
}
@@ -1128,6 +1131,10 @@ bool CTaskbar::redrawTaskbarWindow(void)
image->disableDrawing();
image->setRaisesEvents(false);
+ // Highlight the icon for the top-most window
+
+ image->highlight(m_slots.at(i).app == m_topApp);
+
// Get the size of the icon image
NXWidgets::CRect rect;
@@ -1302,8 +1309,12 @@ bool CTaskbar::redrawBackgroundWindow(void)
// Then re-draw the background image on the window
- m_backImage->enableDrawing();
- m_backImage->redraw();
+ if (m_backImage)
+ {
+ m_backImage->enableDrawing();
+ m_backImage->redraw();
+ }
+
return true;
}
@@ -1330,6 +1341,10 @@ bool CTaskbar::redrawApplicationWindow(IApplication *app)
raiseTopApplication();
+ // Redraw taskbar
+
+ redrawTaskbarWindow();
+
// Every application provides a method to obtain its application window
IApplicationWindow *appWindow = app->getWindow();