Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: emwin/emWin_header/SPINBOX_Private.h
- Revision:
- 0:dd702039127a
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emwin/emWin_header/SPINBOX_Private.h Thu Sep 20 19:16:34 2018 +0000 @@ -0,0 +1,156 @@ +/********************************************************************* +* SEGGER Microcontroller GmbH & Co. KG * +* Solutions for real time microcontroller applications * +********************************************************************** +* * +* (c) 1996 - 2016 SEGGER Microcontroller GmbH & Co. KG * +* * +* Internet: www.segger.com Support: support@segger.com * +* * +********************************************************************** + +** emWin V5.38 - Graphical user interface for embedded applications ** +All Intellectual Property rights in the Software belongs to SEGGER. +emWin is protected by international copyright laws. Knowledge of the +source code may not be used to write a similar product. This file may +only be used in accordance with the following terms: + +The software has been licensed to NXP Semiconductors USA, Inc. whose +registered office is situated at 411 E. Plumeria Drive, San Jose, +CA 95134, USA solely for the purposes of creating libraries for +NXPs M0, M3/M4 and ARM7/9 processor-based devices, sublicensed and +distributed under the terms and conditions of the NXP End User License +Agreement. +Full source code is available at: www.segger.com + +We appreciate your understanding and fairness. +---------------------------------------------------------------------- +Licensing information + +Licensor: SEGGER Microcontroller Systems LLC +Licensed to: NXP Semiconductors, 1109 McKay Dr, M/S 76, San Jose, CA 95131, USA +Licensed SEGGER software: emWin +License number: GUI-00186 +License model: emWin License Agreement, dated August 20th 2011 +Licensed product: - +Licensed platform: NXP's ARM 7/9, Cortex-M0,M3,M4 +Licensed number of seats: - +---------------------------------------------------------------------- +File : SPINBOX_Private.h +Purpose : Private SPINBOX include +--------------------END-OF-HEADER------------------------------------- +*/ + +#ifndef SPINBOX_PRIVATE_H +#define SPINBOX_PRIVATE_H + +#include "SPINBOX.h" +#include "EDIT.h" +#include "GUI_Private.h" + +#if GUI_WINSUPPORT + +/********************************************************************* +* +* Private config defaults +* +********************************************************************** +*/ + +/********************************************************************* +* +* Object definition +* +********************************************************************** +*/ +typedef struct { + WIDGET_DRAW_ITEM_FUNC * pfDrawSkin; +} SPINBOX_SKIN_PRIVATE; + +typedef struct { + GUI_COLOR aButtonBkColor[3]; // Button background color for the states (disabled, pressed, unpressed). + GUI_COLOR aButtonUpperColor[3]; // Upper color for the button states (disabled, pressed, unpressed). + GUI_COLOR aButtonLowerColor[3]; // Lower color for the button states (disabled, pressed, unpressed). + GUI_COLOR aButtonOuterColor[3]; // Outer color for the button states (disabled, pressed, unpressed). + GUI_COLOR aTriangleColor[3]; // Color of the triangle for the button states (disabled, pressed, unpressed). + GUI_COLOR aBkColor[2]; // Background color for the states (enabled, disabled). + GUI_COLOR aTextColor[2]; // Text color for the states (enabled, disabled). + I32 Min; // Minimum allowed value. + I32 Max; // Maximum allowed value. + U16 Step; // Value will be increased/decreased by this amount when a button is clicked. + U16 ButtonSize; // Size of the button depending on the orientation. + U8 Edge; // Buttons reside on the left or right edge of the widget. + SPINBOX_SKIN_PRIVATE SkinPrivate; // Structure containing a pointer to the used DrawSkin-function. +} SPINBOX_PROPS; + +typedef struct { + WIDGET Widget; + SPINBOX_PROPS Props; + const WIDGET_SKIN * pWidgetSkin; + EDIT_Handle hEdit; + GUI_TIMER_HANDLE hTimer; + I8 TimerButton; + I8 LastButton; + I8 NoAction; + U8 State; // Pressed state +} SPINBOX_OBJ; + +/********************************************************************* +* +* Macros for internal use +* +********************************************************************** +*/ +#if GUI_DEBUG_LEVEL >= GUI_DEBUG_LEVEL_CHECK_ALL + #define SPINBOX_INIT_ID(p) (p->Widget.DebugId = SPINBOX_ID) +#else + #define SPINBOX_INIT_ID(p) +#endif + +#if GUI_DEBUG_LEVEL >= GUI_DEBUG_LEVEL_CHECK_ALL + SPINBOX_OBJ * SPINBOX_LockH(SPINBOX_Handle h); + #define SPINBOX_LOCK_H(h) SPINBOX_LockH(h) +#else + #define SPINBOX_LOCK_H(h) (SPINBOX_OBJ *)GUI_LOCK_H(h) +#endif + +#define SPINBOX_BUTTON_NONE -1 +#define SPINBOX_BUTTON_0 0 +#define SPINBOX_BUTTON_1 1 + +#define SPINBOX_TIMER_ID 1234 + +/********************************************************************* +* +* Private function prototypes +* +********************************************************************** +*/ +void SPINBOX__ApplyProps (SPINBOX_Handle hObj, SPINBOX_SKINFLEX_PROPS * const * ppProps); +void SPINBOX__DrawBk (SPINBOX_Handle hObj, GUI_COLOR Color); +void SPINBOX__GetButtonRect (SPINBOX_Handle hObj, GUI_RECT * pButtonRect, U8 ButtonIndex); +void SPINBOX__GetButtonRectEx(SPINBOX_Handle hObj, WIDGET_ITEM_DRAW_INFO * ItemInfo); +int SPINBOX__GetDefaultMax (void); +int SPINBOX__GetDefaultMin (void); + +/********************************************************************* +* +* Module internal data +* +********************************************************************** +*/ +/********************************************************************* +* +* Public data (internal defaults) +* +********************************************************************** +*/ +extern SPINBOX_PROPS SPINBOX__DefaultProps; +extern const WIDGET_SKIN SPINBOX__SkinClassic; +extern WIDGET_SKIN SPINBOX__Skin; +extern const WIDGET_SKIN * SPINBOX__pSkinDefault; + +#endif // GUI_WINSUPPORT +#endif // SPINBOX_PRIVATE_H + +/*************************** End of file ****************************/