NxWM::CCalibration: Add an option to provide some instructions in the center of the calibration screen
This commit is contained in:
parent
c62e1b5cc4
commit
1393518ba7
@ -380,3 +380,8 @@
|
||||
Petteri Aimonen (2013-6-4).
|
||||
|
||||
1.9 2013-xx-xx Gregory Nutt <gnutt@nuttx.org>
|
||||
|
||||
* NxWM::CCalibration.cxx/hxx: If CONFIG_NXWM_CALIBRATION_MESSAGES is
|
||||
defined then CCalibration will provide some instructions in the center
|
||||
of the display (2013-10-14).
|
||||
|
||||
|
40
Kconfig
40
Kconfig
@ -718,6 +718,17 @@ endif
|
||||
|
||||
comment "Calibration display settings"
|
||||
|
||||
config NXWM_CALIBRATION_MARGIN
|
||||
int "Calibration Margin"
|
||||
default 40
|
||||
---help---
|
||||
The Calbration display consists of a target press offset from the edges
|
||||
of the display by this number of pixels (in the horizontal direction)
|
||||
or rows (in the vertical). The closer that you can comfortabley
|
||||
position the press positions to the edge, the more accurate will be the
|
||||
linear interpolation (provide that the hardware provides equally good
|
||||
measurements near the edges).
|
||||
|
||||
config NXWM_CALIBRATION_CUSTOM_COLORS
|
||||
bool "Custom Calibration Colors"
|
||||
default n
|
||||
@ -754,6 +765,35 @@ config NXWM_CALIBRATION_TOUCHEDCOLOR
|
||||
the touch is recorder. Default: RGB(255, 255, 96) (very light yellow)
|
||||
endif
|
||||
|
||||
config NXWM_CALIBRATION_MESSAGES
|
||||
bool "Add Instructions in Center"
|
||||
default n
|
||||
---help---
|
||||
By default, the calibration screen is clear excecpt for the
|
||||
calibratino touchpoints. If this options are enabled, then
|
||||
instructions when to touch and when to release the touch will
|
||||
be added in the center of the display,
|
||||
|
||||
if NXWM_CALIBRATION_MESSAGES
|
||||
|
||||
config NXWM_CALIBRATION_CUSTOM_FONTID
|
||||
bool "Use a Custom Font in Calibration Display"
|
||||
default n
|
||||
---help---
|
||||
Set to override the system default font id (NXFONT_DEFAULT).
|
||||
|
||||
if NXWM_CALIBRATION_CUSTOM_FONTID
|
||||
|
||||
config NXWM_CALIBRATION_FONTID
|
||||
int "Calibration Font ID"
|
||||
default 0
|
||||
---help---
|
||||
Use this default NxWidgets font ID instead of the system font ID
|
||||
(NXFONT_DEFAULT). Default: 0
|
||||
|
||||
endif
|
||||
endif
|
||||
|
||||
config NXWM_CUSTOM_CALIBRATION_ICON
|
||||
bool "Custom Calibration Icon"
|
||||
default n
|
||||
|
@ -73,7 +73,7 @@
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
#include <stdint.h>
|
||||
@ -88,11 +88,11 @@
|
||||
/****************************************************************************
|
||||
* Pre-Processor Definitions
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
/****************************************************************************
|
||||
* Implementation Classes
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
#if defined(__cplusplus)
|
||||
|
||||
namespace NXWidgets
|
||||
@ -150,7 +150,7 @@ namespace NXWidgets
|
||||
*
|
||||
* @see redraw()
|
||||
*/
|
||||
|
||||
|
||||
virtual void drawContents(CGraphicsPort *port);
|
||||
|
||||
/**
|
||||
@ -240,7 +240,7 @@ namespace NXWidgets
|
||||
*/
|
||||
|
||||
virtual void setTextAlignmentVert(TextAlignmentVert alignment);
|
||||
|
||||
|
||||
/**
|
||||
* Set the horizontal alignment of text within the label.
|
||||
*
|
||||
@ -262,7 +262,7 @@ namespace NXWidgets
|
||||
{
|
||||
return m_vAlignment;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns the string shown in the label.
|
||||
*
|
||||
|
@ -74,7 +74,7 @@
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
#include <sys/types.h>
|
||||
@ -122,7 +122,7 @@ namespace NXWidgets
|
||||
{
|
||||
private:
|
||||
friend class CStringIterator;
|
||||
|
||||
|
||||
int m_stringLength; /**< Number of characters in the string */
|
||||
int m_allocatedSize; /**< Number of bytes allocated for this string */
|
||||
int m_growAmount; /**< Number of chars that the string grows by
|
||||
|
@ -70,7 +70,7 @@
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
#include <sys/types.h>
|
||||
@ -119,7 +119,7 @@ CLabel::CLabel(CWidgetControl *pWidgetControl,
|
||||
m_vAlignment = TEXT_ALIGNMENT_VERT_CENTER;
|
||||
|
||||
// The border thickness is 1 pixel
|
||||
|
||||
|
||||
m_borderSize.top = 1;
|
||||
m_borderSize.right = 1;
|
||||
m_borderSize.bottom = 1;
|
||||
@ -272,7 +272,7 @@ void CLabel::setFont(CNxFont *font)
|
||||
*
|
||||
* @see redraw()
|
||||
*/
|
||||
|
||||
|
||||
void CLabel::drawContents(CGraphicsPort *port)
|
||||
{
|
||||
// Get the drawing area (excluding the border)
|
||||
@ -318,7 +318,7 @@ void CLabel::drawContents(CGraphicsPort *port)
|
||||
CNxFont* font = getFont();
|
||||
int height = font->getHeight();
|
||||
int width = font->getStringWidth(m_text);
|
||||
|
||||
|
||||
// Draw the background (excluding the border and the text area)
|
||||
|
||||
port->drawFilledRect(rect.getX(), rect.getY(),
|
||||
@ -393,7 +393,7 @@ void CLabel::calculateTextPositionVertical(void)
|
||||
case TEXT_ALIGNMENT_VERT_TOP:
|
||||
m_align.y = 0;
|
||||
break;
|
||||
|
||||
|
||||
case TEXT_ALIGNMENT_VERT_BOTTOM:
|
||||
m_align.y = height - getFont()->getHeight();
|
||||
break;
|
||||
@ -409,7 +409,7 @@ void CLabel::calculateTextPositionHorizontal(void)
|
||||
{
|
||||
CRect rect;
|
||||
getClientRect(rect);
|
||||
|
||||
|
||||
nxgl_coord_t width = rect.getWidth();
|
||||
|
||||
switch (m_hAlignment)
|
||||
|
@ -32,7 +32,7 @@
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
#ifndef __INCLUDE_CCALIBRATION_HXX
|
||||
#define __INCLUDE_CCALIBRATION_HXX
|
||||
|
||||
@ -48,6 +48,8 @@
|
||||
#include "cnxstring.hxx"
|
||||
#include "cwidgeteventhandler.hxx"
|
||||
#include "cwidgetcontrol.hxx"
|
||||
#include "clabel.hxx"
|
||||
#include "cnxfont.hxx"
|
||||
|
||||
#include "ctaskbar.hxx"
|
||||
#include "iapplication.hxx"
|
||||
@ -146,6 +148,10 @@ namespace NxWM
|
||||
CTaskbar *m_taskbar; /**< The taskbar (used to terminate calibration) */
|
||||
CFullScreenWindow *m_window; /**< The window for the calibration display */
|
||||
CTouchscreen *m_touchscreen; /**< The touchscreen device */
|
||||
#ifdef CONFIG_NXWM_CALIBRATION_MESSAGES
|
||||
NXWidgets::CLabel *m_text; /**< Calibration message */
|
||||
NXWidgets::CNxFont *m_font; /**< The font used in the message */
|
||||
#endif
|
||||
pthread_t m_thread; /**< The calibration thread ID */
|
||||
struct SCalibScreenInfo m_screenInfo; /**< Describes the current calibration display */
|
||||
struct nxgl_point_s m_touchPos; /**< This is the last touch position */
|
||||
|
@ -39,7 +39,7 @@
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
#include <nuttx/input/touchscreen.h>
|
||||
@ -116,7 +116,7 @@
|
||||
*
|
||||
* CONFIG_NXWM_DEFAULT_BACKGROUNDCOLOR - Normal background color. Default:
|
||||
* MKRGB(148,189,215)
|
||||
* CONFIG_NXWM_DEFAULT_SELECTEDBACKGROUNDCOLOR - Select background color.
|
||||
* CONFIG_NXWM_DEFAULT_SELECTEDBACKGROUNDCOLOR - Select background color.
|
||||
* Default: MKRGB(206,227,241)
|
||||
* CONFIG_NXWM_DEFAULT_SHINEEDGECOLOR - Color of the bright edge of a border.
|
||||
* Default: MKRGB(255,255,255)
|
||||
@ -265,7 +265,7 @@
|
||||
* CONFIG_NXWM_STARTWINDOW_HSPACING - Horizontal spacing. Default: 4 rows
|
||||
* CONFIG_NXWM_STARTWINDOW_ICON - The glyph to use as the start window icon
|
||||
* CONFIG_NXWM_STARTWINDOW_MQNAME - The well known name of the message queue
|
||||
* Used to communicated from CWindowMessenger to the start window thread.
|
||||
* Used to communicated from CWindowMessenger to the start window thread.
|
||||
* Default: "/dev/nxwm"
|
||||
* CONFIG_NXWM_STARTWINDOW_MXMSGS - The maximum number of messages to queue
|
||||
* before blocking. Defualt 32
|
||||
@ -465,8 +465,10 @@
|
||||
* CONFIG_NXWM_CALIBRATION_CIRCLECOLOR - The color of the circle in the
|
||||
* touchscreen calibration display. Default: MKRGB(255, 255, 255) (white)
|
||||
* CONFIG_NXWM_CALIBRATION_TOUCHEDCOLOR - The color of the circle in the
|
||||
* touchscreen calibration display after the touch is recorder. Default:
|
||||
* touchscreen calibration display after the touch is recorder. Default:
|
||||
* MKRGB(255, 255, 96) (very light yellow)
|
||||
* CONFIG_NXWM_CALIBRATION_FONTID - Use this default NxWidgets font ID
|
||||
* instead of the system font ID (NXFONT_DEFAULT).
|
||||
* CONFIG_NXWM_CALIBRATION_ICON - The ICON to use for the touchscreen
|
||||
* calibration application. Default: NxWM::g_calibrationBitmap
|
||||
* CONFIG_NXWM_CALIBRATION_SIGNO - The realtime signal used to wake up the
|
||||
@ -475,6 +477,13 @@
|
||||
* thread. Default: SCHED_PRIORITY_DEFAULT
|
||||
* CONFIG_NXWM_CALIBRATION_LISTENERSTACK - Calibration listener thread stack
|
||||
* size. Default 2048
|
||||
* CONFIG_NXWM_CALIBRATION_MARGIN
|
||||
* The Calbration display consists of a target press offset from the edges
|
||||
* of the display by this number of pixels (in the horizontal direction)
|
||||
* or rows (in the vertical). The closer that you can comfortabley
|
||||
* position the press positions to the edge, the more accurate will be the
|
||||
* linear interpolation (provide that the hardware provides equally good
|
||||
* measurements near the edges).
|
||||
*/
|
||||
|
||||
#ifndef CONFIG_NXWM_CALIBRATION_BACKGROUNDCOLOR
|
||||
@ -493,6 +502,10 @@
|
||||
# define CONFIG_NXWM_CALIBRATION_TOUCHEDCOLOR MKRGB(255, 255, 96)
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_NXWM_CALIBRATION_FONTID
|
||||
# define CONFIG_NXWM_CALIBRATION_FONTID NXFONT_DEFAULT
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_NXWM_CALIBRATION_ICON
|
||||
# define CONFIG_NXWM_CALIBRATION_ICON NxWM::g_calibrationBitmap
|
||||
#endif
|
||||
@ -509,6 +522,10 @@
|
||||
# define CONFIG_NXWM_CALIBRATION_LISTENERSTACK 2048
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_NXWM_CALIBRATION_MARGIN
|
||||
# define CONFIG_NXWM_CALIBRATION_MARGIN 40
|
||||
#endif
|
||||
|
||||
/* Hexcalculator applications ***********************************************/
|
||||
/**
|
||||
* Calibration display settings:
|
||||
|
@ -64,20 +64,30 @@
|
||||
* Positional/size data for the calibration lines and circles
|
||||
*/
|
||||
|
||||
#define CALIBRATION_LEFTX 40
|
||||
#define CALIBRATION_RIGHTX (windowSize.w - 41)
|
||||
#define CALIBRATION_TOPY 40
|
||||
#define CALIBRATION_BOTTOMY (windowSize.h - 41)
|
||||
#define CALIBRATION_LEFTX CONFIG_NXWM_CALIBRATION_MARGIN
|
||||
#define CALIBRATION_RIGHTX (windowSize.w - CONFIG_NXWM_CALIBRATION_MARGIN + 1)
|
||||
#define CALIBRATION_TOPY CONFIG_NXWM_CALIBRATION_MARGIN
|
||||
#define CALIBRATION_BOTTOMY (windowSize.h - CONFIG_NXWM_CALIBRATION_MARGIN + 1)
|
||||
|
||||
#define CALIBRATION_CIRCLE_RADIUS 16
|
||||
#define CALIBRATION_LINE_THICKNESS 2
|
||||
|
||||
/****************************************************************************
|
||||
* CCalibration Implementation Classes
|
||||
* Private Data
|
||||
****************************************************************************/
|
||||
|
||||
using namespace NxWM;
|
||||
|
||||
#ifdef CONFIG_NXWM_CALIBRATION_MESSAGES
|
||||
static const char g_touchmsg[] = "Touch";
|
||||
static const char g_againmsg[] = "Again";
|
||||
static const char g_okmsg[] = "OK";
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
* CCalibration Implementation Classes
|
||||
****************************************************************************/
|
||||
|
||||
/**
|
||||
* CCalibration Constructor
|
||||
*
|
||||
@ -99,6 +109,14 @@ CCalibration::CCalibration(CTaskbar *taskbar, CFullScreenWindow *window,
|
||||
m_calthread = CALTHREAD_NOTRUNNING;
|
||||
m_calphase = CALPHASE_NOT_STARTED;
|
||||
m_touched = false;
|
||||
|
||||
// Nullify widgets that will be instantiated when the calibration thread
|
||||
// is started
|
||||
|
||||
#ifdef CONFIG_NXWM_CALIBRATION_MESSAGES
|
||||
m_text = (NXWidgets::CLabel *)0;
|
||||
m_font = (NXWidgets::CNxFont *)0;
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
@ -180,7 +198,7 @@ void CCalibration::stop(void)
|
||||
|
||||
if (m_thread != 0)
|
||||
{
|
||||
// Is the calibration thread running?
|
||||
// Is the calibration thread running?
|
||||
|
||||
if (isRunning())
|
||||
{
|
||||
@ -191,10 +209,15 @@ void CCalibration::stop(void)
|
||||
m_calthread = CALTHREAD_STOPREQUESTED;
|
||||
|
||||
// Try to wake up the calibration thread so that it will see our
|
||||
// terminatin request
|
||||
// termination request
|
||||
|
||||
gvdbg("Stopping calibration: m_calthread=%d\n", (int)m_calthread);
|
||||
gvdbg("Stopping calibration: m_calthread=%d\n", (int)m_calthread);
|
||||
(void)pthread_kill(m_thread, CONFIG_NXWM_CALIBRATION_SIGNO);
|
||||
|
||||
// Wait for the calibration thread to exit
|
||||
|
||||
FAR pthread_addr_t value;
|
||||
(void)pthread_join(m_thread, &value);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -328,6 +351,9 @@ void CCalibration::touchscreenInput(struct touch_sample_s &sample)
|
||||
if (!m_touched)
|
||||
{
|
||||
m_screenInfo.circleFillColor = CONFIG_NXWM_CALIBRATION_TOUCHEDCOLOR;
|
||||
#ifdef CONFIG_NXWM_CALIBRATION_MESSAGES
|
||||
m_text->setText(g_okmsg);
|
||||
#endif
|
||||
showCalibration();
|
||||
m_touched = true;
|
||||
}
|
||||
@ -361,8 +387,11 @@ void CCalibration::touchscreenInput(struct touch_sample_s &sample)
|
||||
else
|
||||
{
|
||||
// No... restore the un-highlighted circle
|
||||
|
||||
|
||||
m_screenInfo.circleFillColor = CONFIG_NXWM_CALIBRATION_CIRCLECOLOR;
|
||||
#ifdef CONFIG_NXWM_CALIBRATION_MESSAGES
|
||||
m_text->setText("");
|
||||
#endif
|
||||
showCalibration();
|
||||
}
|
||||
}
|
||||
@ -415,10 +444,6 @@ bool CCalibration::startCalibration(enum ECalThreadState initialState)
|
||||
return false;
|
||||
}
|
||||
|
||||
// Detach from the pthread so that we do not have any memory leaks
|
||||
|
||||
(void)pthread_detach(m_thread);
|
||||
|
||||
gvdbg("Calibration thread m_calthread=%d\n", (int)m_calthread);
|
||||
return true;
|
||||
}
|
||||
@ -436,12 +461,87 @@ FAR void *CCalibration::calibration(FAR void *arg)
|
||||
CCalibration *This = (CCalibration *)arg;
|
||||
bool stalled = true;
|
||||
|
||||
#ifdef CONFIG_NXWM_CALIBRATION_MESSAGES
|
||||
// Create widgets that will be used in the calibration display
|
||||
// Select a font for the calculator
|
||||
|
||||
This->m_font = new NXWidgets::
|
||||
CNxFont((nx_fontid_e)CONFIG_NXWM_CALIBRATION_FONTID,
|
||||
CONFIG_NXWM_DEFAULT_FONTCOLOR, CONFIG_NXWM_TRANSPARENT_COLOR);
|
||||
if (!This->m_font)
|
||||
{
|
||||
gdbg("ERROR failed to create font\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
// Recover the window instance contained in the application window
|
||||
|
||||
NXWidgets::INxWindow *window = This->m_window->getWindow();
|
||||
|
||||
// Get the size of the window
|
||||
|
||||
struct nxgl_size_s windowSize;
|
||||
if (!window->getSize(&windowSize))
|
||||
{
|
||||
gdbg("ERROR: Failed to get window size\n");
|
||||
delete This->m_font;
|
||||
This->m_font = (NXWidgets::CNxFont *)0;
|
||||
return false;
|
||||
}
|
||||
|
||||
// How big can the label be?
|
||||
|
||||
struct nxgl_size_s labelSize;
|
||||
labelSize.w = (windowSize.w - 2*CONFIG_NXWM_CALIBRATION_MARGIN - 20);
|
||||
labelSize.h = This->m_font->getHeight() + 2*4;
|
||||
|
||||
// Where should the label be?
|
||||
|
||||
struct nxgl_point_s labelPos;
|
||||
labelPos.x = ((windowSize.w - labelSize.w) / 2);
|
||||
labelPos.y = ((windowSize.h - labelSize.h) / 2);
|
||||
|
||||
// Get the widget control associated with the application window
|
||||
|
||||
NXWidgets::CWidgetControl *control = This->m_window->getWidgetControl();
|
||||
|
||||
// Create a label to show the calibration message.
|
||||
|
||||
This->m_text = new NXWidgets::
|
||||
CLabel(control, labelPos.x, labelPos.y, labelSize.w, labelSize.h, "");
|
||||
|
||||
if (!This->m_text)
|
||||
{
|
||||
gdbg("ERROR: Failed to create CLabel\n");
|
||||
delete This->m_font;
|
||||
This->m_font = (NXWidgets::CNxFont *)0;
|
||||
return false;
|
||||
}
|
||||
|
||||
// No border
|
||||
|
||||
This->m_text->setBorderless(true);
|
||||
|
||||
// Center text
|
||||
|
||||
This->m_text->setTextAlignmentHoriz(NXWidgets::CLabel::TEXT_ALIGNMENT_HORIZ_CENTER);
|
||||
|
||||
// Disable drawing and events until we are asked to redraw the window
|
||||
|
||||
This->m_text->disableDrawing();
|
||||
This->m_text->setRaisesEvents(false);
|
||||
|
||||
// Select the font
|
||||
|
||||
This->m_text->setFont(This->m_font);
|
||||
#endif
|
||||
|
||||
// The calibration thread is now running
|
||||
|
||||
This->m_calthread = CALTHREAD_RUNNING;
|
||||
This->m_calphase = CALPHASE_NOT_STARTED;
|
||||
gvdbg("Started: m_calthread=%d\n", (int)This->m_calthread);
|
||||
|
||||
|
||||
// Loop until calibration completes or we have been requested to terminate
|
||||
|
||||
while (This->m_calthread != CALTHREAD_STOPREQUESTED &&
|
||||
@ -468,7 +568,7 @@ FAR void *CCalibration::calibration(FAR void *arg)
|
||||
}
|
||||
|
||||
// The calibration thread will stall if has been asked to hide the
|
||||
// display. While stalled, we will just sleep for a bit abd test
|
||||
// display. While stalled, we will just sleep for a bit and test
|
||||
// the state again. If we are re-awakened by a redraw(), then we
|
||||
// will be given a signal which will wake us up immediately.
|
||||
//
|
||||
@ -494,14 +594,33 @@ FAR void *CCalibration::calibration(FAR void *arg)
|
||||
if (This->m_calthread == CALTHREAD_RUNNING)
|
||||
{
|
||||
This->touchscreenInput(sample);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Hide the message
|
||||
|
||||
#ifdef CONFIG_NXWM_CALIBRATION_MESSAGES
|
||||
This->m_text->setText("");
|
||||
This->m_text->enableDrawing();
|
||||
This->m_text->redraw();
|
||||
This->m_text->disableDrawing();
|
||||
#endif
|
||||
|
||||
// Perform the final steps of calibration
|
||||
|
||||
This->finishCalibration();
|
||||
|
||||
// Destroy widgets
|
||||
|
||||
#ifdef CONFIG_NXWM_CALIBRATION_MESSAGES
|
||||
delete This->m_text;
|
||||
This->m_text = (NXWidgets::CLabel *)0;
|
||||
|
||||
delete This->m_font;
|
||||
This->m_font = (NXWidgets::CNxFont *)0;
|
||||
#endif
|
||||
|
||||
gvdbg("Terminated: m_calthread=%d\n", (int)This->m_calthread);
|
||||
return (FAR void *)0;
|
||||
}
|
||||
@ -552,6 +671,9 @@ void CCalibration::stateMachine(void)
|
||||
m_screenInfo.pos.y = CALIBRATION_TOPY;
|
||||
m_screenInfo.lineColor = CONFIG_NXWM_CALIBRATION_LINECOLOR;
|
||||
m_screenInfo.circleFillColor = CONFIG_NXWM_CALIBRATION_CIRCLECOLOR;
|
||||
#ifdef CONFIG_NXWM_CALIBRATION_MESSAGES
|
||||
m_text->setText(g_touchmsg);
|
||||
#endif
|
||||
showCalibration();
|
||||
|
||||
// Then set up the current state
|
||||
@ -568,7 +690,7 @@ void CCalibration::stateMachine(void)
|
||||
m_calibData[CALIB_UPPER_LEFT_INDEX].x = m_touchPos.x;
|
||||
m_calibData[CALIB_UPPER_LEFT_INDEX].y = m_touchPos.y;
|
||||
|
||||
// Clear the previous screen by re-drawing it using the backgro9und
|
||||
// Clear the previous screen by re-drawing it using the background
|
||||
// color. That is much faster than clearing the whole display
|
||||
|
||||
m_screenInfo.lineColor = CONFIG_NXWM_CALIBRATION_BACKGROUNDCOLOR;
|
||||
@ -581,6 +703,9 @@ void CCalibration::stateMachine(void)
|
||||
m_screenInfo.pos.y = CALIBRATION_TOPY;
|
||||
m_screenInfo.lineColor = CONFIG_NXWM_CALIBRATION_LINECOLOR;
|
||||
m_screenInfo.circleFillColor = CONFIG_NXWM_CALIBRATION_CIRCLECOLOR;
|
||||
#ifdef CONFIG_NXWM_CALIBRATION_MESSAGES
|
||||
m_text->setText(g_touchmsg);
|
||||
#endif
|
||||
showCalibration();
|
||||
|
||||
// Then set up the current state
|
||||
@ -610,6 +735,9 @@ void CCalibration::stateMachine(void)
|
||||
m_screenInfo.pos.y = CALIBRATION_BOTTOMY;
|
||||
m_screenInfo.lineColor = CONFIG_NXWM_CALIBRATION_LINECOLOR;
|
||||
m_screenInfo.circleFillColor = CONFIG_NXWM_CALIBRATION_CIRCLECOLOR;
|
||||
#ifdef CONFIG_NXWM_CALIBRATION_MESSAGES
|
||||
m_text->setText(g_touchmsg);
|
||||
#endif
|
||||
showCalibration();
|
||||
|
||||
// Then set up the current state
|
||||
@ -639,6 +767,9 @@ void CCalibration::stateMachine(void)
|
||||
m_screenInfo.pos.y = CALIBRATION_BOTTOMY;
|
||||
m_screenInfo.lineColor = CONFIG_NXWM_CALIBRATION_LINECOLOR;
|
||||
m_screenInfo.circleFillColor = CONFIG_NXWM_CALIBRATION_CIRCLECOLOR;
|
||||
#ifdef CONFIG_NXWM_CALIBRATION_MESSAGES
|
||||
m_text->setText(g_touchmsg);
|
||||
#endif
|
||||
showCalibration();
|
||||
|
||||
// Then set up the current state
|
||||
@ -660,6 +791,9 @@ void CCalibration::stateMachine(void)
|
||||
|
||||
m_screenInfo.lineColor = CONFIG_NXWM_CALIBRATION_BACKGROUNDCOLOR;
|
||||
m_screenInfo.circleFillColor = CONFIG_NXWM_CALIBRATION_BACKGROUNDCOLOR;
|
||||
#ifdef CONFIG_NXWM_CALIBRATION_MESSAGES
|
||||
m_text->setText(g_touchmsg);
|
||||
#endif
|
||||
showCalibration();
|
||||
|
||||
// Inform any waiter that calibration is complete
|
||||
@ -711,14 +845,22 @@ void CCalibration::showCalibration(void)
|
||||
m_screenInfo.circleFillColor);
|
||||
|
||||
/* Draw horizontal line */
|
||||
|
||||
|
||||
port->drawFilledRect(0, m_screenInfo.pos.y, windowSize.w, CALIBRATION_LINE_THICKNESS,
|
||||
m_screenInfo.lineColor);
|
||||
|
||||
/* Draw vertical line */
|
||||
|
||||
|
||||
port->drawFilledRect(m_screenInfo.pos.x, 0, CALIBRATION_LINE_THICKNESS, windowSize.h,
|
||||
m_screenInfo.lineColor);
|
||||
|
||||
/* Show the touchscreen message */
|
||||
|
||||
#ifdef CONFIG_NXWM_CALIBRATION_MESSAGES
|
||||
m_text->enableDrawing();
|
||||
m_text->redraw();
|
||||
m_text->disableDrawing();
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
@ -733,7 +875,7 @@ void CCalibration::finishCalibration(void)
|
||||
if (m_calphase == CALPHASE_COMPLETE)
|
||||
{
|
||||
// Yes... Get the final Calibration data
|
||||
|
||||
|
||||
struct SCalibrationData caldata;
|
||||
if (createCalibrationData(caldata))
|
||||
{
|
||||
@ -773,7 +915,7 @@ bool CCalibration::createCalibrationData(struct SCalibrationData &data)
|
||||
struct nxgl_size_s windowSize;
|
||||
if (!window->getSize(&windowSize))
|
||||
{
|
||||
gdbg("NXWidgets::INxWindow::getSize failed\n");
|
||||
gdbg("NXWidgets::INxWindow::getSize failed\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user