summaryrefslogtreecommitdiff
path: root/NxWidgets
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-05-22 21:01:42 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-05-22 21:01:42 +0000
commit91f53fd2a857714c794e0ccc6d8c91c79f41684a (patch)
tree369773a3d67450df5cd2b670c3fcb0b5b501acc2 /NxWidgets
parent237d7e4c1c99762ee856d360eb64c3aab453c4bf (diff)
downloadpx4-nuttx-91f53fd2a857714c794e0ccc6d8c91c79f41684a.tar.gz
px4-nuttx-91f53fd2a857714c794e0ccc6d8c91c79f41684a.tar.bz2
px4-nuttx-91f53fd2a857714c794e0ccc6d8c91c79f41684a.zip
CHexCalculator fixes + back out change to CNxtkWindow
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4761 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'NxWidgets')
-rw-r--r--NxWidgets/ChangeLog.txt2
-rw-r--r--NxWidgets/libnxwidgets/src/cnxtkwindow.cxx10
-rw-r--r--NxWidgets/nxwm/include/chexcalculator.hxx6
-rw-r--r--NxWidgets/nxwm/src/chexcalculator.cxx22
4 files changed, 22 insertions, 18 deletions
diff --git a/NxWidgets/ChangeLog.txt b/NxWidgets/ChangeLog.txt
index ecee1021c..349dbac57 100644
--- a/NxWidgets/ChangeLog.txt
+++ b/NxWidgets/ChangeLog.txt
@@ -142,3 +142,5 @@
minimized.
* NxWM::CHexCalculator: Add a hexadecimal/decimal calculator
example.
+* NXWidgets::CNxTkWindow: Back out height adjustment in the getSize()
+ method. The code was correct as it was before.
diff --git a/NxWidgets/libnxwidgets/src/cnxtkwindow.cxx b/NxWidgets/libnxwidgets/src/cnxtkwindow.cxx
index b1d7be9e2..05241817c 100644
--- a/NxWidgets/libnxwidgets/src/cnxtkwindow.cxx
+++ b/NxWidgets/libnxwidgets/src/cnxtkwindow.cxx
@@ -298,15 +298,9 @@ bool CNxTkWindow::getPosition(FAR struct nxgl_point_s *pos)
bool CNxTkWindow::getSize(FAR struct nxgl_size_s *size)
{
// Get the size of the NXTK window (this will exclude the thickness of
- // the frame).
+ // the frame and the height of the toolbar, if any).
- bool ret = m_widgetControl->getWindowSize(size);
-
- // Subtract the height of the toolbar (if any) to get the size of the
- // drawable region in the window.
-
- size->h -= m_toolbarHeight;
- return ret;
+ return m_widgetControl->getWindowSize(size);
}
/**
diff --git a/NxWidgets/nxwm/include/chexcalculator.hxx b/NxWidgets/nxwm/include/chexcalculator.hxx
index d73e17faf..3ac50f71c 100644
--- a/NxWidgets/nxwm/include/chexcalculator.hxx
+++ b/NxWidgets/nxwm/include/chexcalculator.hxx
@@ -87,9 +87,9 @@ namespace NxWM
struct nxgl_size_s m_textSize; /**< The size of the calculator textbox */
struct nxgl_point_s m_keypadPos; /**< The position the calculator keypad */
struct nxgl_point_s m_textPos; /**< The position of the calculator textbox */
- uint64_t m_operand; /**< Previously entered operand */
- uint64_t m_accum; /**< The current accumulated value */
- uint64_t m_memory; /**< The current value in memory */
+ int64_t m_operand; /**< Previously entered operand */
+ int64_t m_accum; /**< The current accumulated value */
+ int64_t m_memory; /**< The current value in memory */
uint8_t m_pending; /**< The pending operation */
bool m_hexMode; /**< True if in hex mode */
diff --git a/NxWidgets/nxwm/src/chexcalculator.cxx b/NxWidgets/nxwm/src/chexcalculator.cxx
index 0217574e2..48409f4d9 100644
--- a/NxWidgets/nxwm/src/chexcalculator.cxx
+++ b/NxWidgets/nxwm/src/chexcalculator.cxx
@@ -455,7 +455,7 @@ void CHexCalculator::setGeometry(void)
// Get the size of the text box. Same width as the m_keypad
m_textSize.w = m_keypadSize.w;
- m_textSize.h = m_windowSize.h - NXWM_HEXCALCULATOR_NROWS * m_buttonSize.h;
+ m_textSize.h = m_windowSize.h - m_keypadSize.h;
// Limit the height of the text box to twice the height of a button.
@@ -594,11 +594,11 @@ void CHexCalculator::updateText(void)
if (m_hexMode)
{
- snprintf(buffer, 24, "%16lx", m_accum);
+ std::snprintf(buffer, 24, "%16llx", m_accum);
}
else
{
- snprintf(buffer, 24, "%ld", m_accum);
+ std::snprintf(buffer, 24, "%lld", m_accum);
}
// setText will perform the redraw as well
@@ -662,8 +662,16 @@ void CHexCalculator::handleActionEvent(const NXWidgets::CWidgetEventArgs &e)
case KEY_VALUE: // Key is a value
{
- m_accum <<= 4;
- m_accum |= (uint64_t)g_keyDesc[index].value;
+ if (m_hexMode)
+ {
+ m_accum <<= 4;
+ m_accum |= (uint64_t)g_keyDesc[index].value;
+ }
+ else
+ {
+ m_accum *= 10;
+ m_accum += (uint64_t)g_keyDesc[index].value;
+ }
updateText();
}
break;
@@ -766,7 +774,7 @@ void CHexCalculator::handleActionEvent(const NXWidgets::CWidgetEventArgs &e)
{
m_hexMode = false;
labelKeypad();
- m_keypad->redraw();
+ updateText();
}
}
break;
@@ -777,7 +785,7 @@ void CHexCalculator::handleActionEvent(const NXWidgets::CWidgetEventArgs &e)
{
m_hexMode = true;
labelKeypad();
- m_keypad->redraw();
+ updateText();
}
}
break;