RT1050 GUI demo using emWin library

Committer:
alejandroRL
Date:
Thu Sep 20 19:16:34 2018 +0000
Revision:
0:dd702039127a
emWin GUI Demo for RT1050

Who changed what in which revision?

UserRevisionLine numberNew contents of line
alejandroRL 0:dd702039127a 1 /*********************************************************************
alejandroRL 0:dd702039127a 2 * SEGGER Microcontroller GmbH & Co. KG *
alejandroRL 0:dd702039127a 3 * Solutions for real time microcontroller applications *
alejandroRL 0:dd702039127a 4 **********************************************************************
alejandroRL 0:dd702039127a 5 * *
alejandroRL 0:dd702039127a 6 * (c) 1996 - 2016 SEGGER Microcontroller GmbH & Co. KG *
alejandroRL 0:dd702039127a 7 * *
alejandroRL 0:dd702039127a 8 * Internet: www.segger.com Support: support@segger.com *
alejandroRL 0:dd702039127a 9 * *
alejandroRL 0:dd702039127a 10 **********************************************************************
alejandroRL 0:dd702039127a 11
alejandroRL 0:dd702039127a 12 ** emWin V5.38 - Graphical user interface for embedded applications **
alejandroRL 0:dd702039127a 13 All Intellectual Property rights in the Software belongs to SEGGER.
alejandroRL 0:dd702039127a 14 emWin is protected by international copyright laws. Knowledge of the
alejandroRL 0:dd702039127a 15 source code may not be used to write a similar product. This file may
alejandroRL 0:dd702039127a 16 only be used in accordance with the following terms:
alejandroRL 0:dd702039127a 17
alejandroRL 0:dd702039127a 18 The software has been licensed to NXP Semiconductors USA, Inc. whose
alejandroRL 0:dd702039127a 19 registered office is situated at 411 E. Plumeria Drive, San Jose,
alejandroRL 0:dd702039127a 20 CA 95134, USA solely for the purposes of creating libraries for
alejandroRL 0:dd702039127a 21 NXPs M0, M3/M4 and ARM7/9 processor-based devices, sublicensed and
alejandroRL 0:dd702039127a 22 distributed under the terms and conditions of the NXP End User License
alejandroRL 0:dd702039127a 23 Agreement.
alejandroRL 0:dd702039127a 24 Full source code is available at: www.segger.com
alejandroRL 0:dd702039127a 25
alejandroRL 0:dd702039127a 26 We appreciate your understanding and fairness.
alejandroRL 0:dd702039127a 27 ----------------------------------------------------------------------
alejandroRL 0:dd702039127a 28 Licensing information
alejandroRL 0:dd702039127a 29
alejandroRL 0:dd702039127a 30 Licensor: SEGGER Microcontroller Systems LLC
alejandroRL 0:dd702039127a 31 Licensed to: NXP Semiconductors, 1109 McKay Dr, M/S 76, San Jose, CA 95131, USA
alejandroRL 0:dd702039127a 32 Licensed SEGGER software: emWin
alejandroRL 0:dd702039127a 33 License number: GUI-00186
alejandroRL 0:dd702039127a 34 License model: emWin License Agreement, dated August 20th 2011
alejandroRL 0:dd702039127a 35 Licensed product: -
alejandroRL 0:dd702039127a 36 Licensed platform: NXP's ARM 7/9, Cortex-M0,M3,M4
alejandroRL 0:dd702039127a 37 Licensed number of seats: -
alejandroRL 0:dd702039127a 38 ----------------------------------------------------------------------
alejandroRL 0:dd702039127a 39 File : WIDGET.h
alejandroRL 0:dd702039127a 40 Purpose : Widget interface
alejandroRL 0:dd702039127a 41 ---------------------------END-OF-HEADER------------------------------
alejandroRL 0:dd702039127a 42 */
alejandroRL 0:dd702039127a 43
alejandroRL 0:dd702039127a 44 #ifndef WIDGET_H /* Avoid multiple inclusion */
alejandroRL 0:dd702039127a 45 #define WIDGET_H
alejandroRL 0:dd702039127a 46
alejandroRL 0:dd702039127a 47 #if defined(__cplusplus)
alejandroRL 0:dd702039127a 48 extern "C" { /* Make sure we have C-declarations in C++ programs */
alejandroRL 0:dd702039127a 49 #endif
alejandroRL 0:dd702039127a 50
alejandroRL 0:dd702039127a 51 #include "WM_Intern.h" /* Window manager, including some internals, which speed things up */
alejandroRL 0:dd702039127a 52
alejandroRL 0:dd702039127a 53 #if GUI_WINSUPPORT
alejandroRL 0:dd702039127a 54
alejandroRL 0:dd702039127a 55 /*********************************************************************
alejandroRL 0:dd702039127a 56 *
alejandroRL 0:dd702039127a 57 * Typedefs
alejandroRL 0:dd702039127a 58 *
alejandroRL 0:dd702039127a 59 **********************************************************************
alejandroRL 0:dd702039127a 60 */
alejandroRL 0:dd702039127a 61 typedef struct {
alejandroRL 0:dd702039127a 62 WM_HWIN hWin;
alejandroRL 0:dd702039127a 63 int Cmd; /* WIDGET_ITEM_GET_XSIZE, WIDGET_ITEM_GET_YSIZE, WIDGET_ITEM_DRAW, */
alejandroRL 0:dd702039127a 64 int ItemIndex;
alejandroRL 0:dd702039127a 65 int Col;
alejandroRL 0:dd702039127a 66 int x0, y0, x1, y1;
alejandroRL 0:dd702039127a 67 void * p;
alejandroRL 0:dd702039127a 68 } WIDGET_ITEM_DRAW_INFO;
alejandroRL 0:dd702039127a 69
alejandroRL 0:dd702039127a 70 typedef int WIDGET_DRAW_ITEM_FUNC(const WIDGET_ITEM_DRAW_INFO * pDrawItemInfo);
alejandroRL 0:dd702039127a 71 typedef void WIDGET_PAINT (WM_HWIN hObj);
alejandroRL 0:dd702039127a 72 typedef void WIDGET_CREATE (WM_HWIN hObj);
alejandroRL 0:dd702039127a 73
alejandroRL 0:dd702039127a 74 typedef struct {
alejandroRL 0:dd702039127a 75 WIDGET_PAINT * pfPaint;
alejandroRL 0:dd702039127a 76 WIDGET_CREATE * pfCreate;
alejandroRL 0:dd702039127a 77 void * pSkinPrivate;
alejandroRL 0:dd702039127a 78 } WIDGET_SKIN;
alejandroRL 0:dd702039127a 79
alejandroRL 0:dd702039127a 80 /*********************************************************************
alejandroRL 0:dd702039127a 81 *
alejandroRL 0:dd702039127a 82 * Important: WIDGET_DRAW_ITEM_FUNC needs to be defined
alejandroRL 0:dd702039127a 83 * in SCROLLBAR.h!
alejandroRL 0:dd702039127a 84 *
alejandroRL 0:dd702039127a 85 **********************************************************************
alejandroRL 0:dd702039127a 86 */
alejandroRL 0:dd702039127a 87 #include "SCROLLBAR.h"
alejandroRL 0:dd702039127a 88
alejandroRL 0:dd702039127a 89 /*********************************************************************
alejandroRL 0:dd702039127a 90 *
alejandroRL 0:dd702039127a 91 * Defines
alejandroRL 0:dd702039127a 92 *
alejandroRL 0:dd702039127a 93 **********************************************************************
alejandroRL 0:dd702039127a 94 */
alejandroRL 0:dd702039127a 95 /*********************************************************************
alejandroRL 0:dd702039127a 96 *
alejandroRL 0:dd702039127a 97 * Unique widget id's
alejandroRL 0:dd702039127a 98 */
alejandroRL 0:dd702039127a 99 #define BUTTON_ID 0x42555454UL /* BUTT */
alejandroRL 0:dd702039127a 100 #define CHECKBOX_ID 0x43484543UL /* CHEC */
alejandroRL 0:dd702039127a 101 #define DROPDOWN_ID 0x44524f50UL /* DROP */
alejandroRL 0:dd702039127a 102 #define EDIT_ID 0x45444954UL /* EDIT */
alejandroRL 0:dd702039127a 103 #define FRAMEWIN_ID 0x4652414dUL /* FRAM */
alejandroRL 0:dd702039127a 104 #define FRAMECLNT_ID 0x46524143UL /* FRAC */
alejandroRL 0:dd702039127a 105 #define GRAPH_ID 0x47524150UL /* GRAP */
alejandroRL 0:dd702039127a 106 #define HEADER_ID 0x48454144UL /* HEAD */
alejandroRL 0:dd702039127a 107 #define LISTBOX_ID 0x4C495342UL /* LISB */
alejandroRL 0:dd702039127a 108 #define LISTVIEW_ID 0x4C495356UL /* LISV */
alejandroRL 0:dd702039127a 109 #define LISTWHEEL_ID 0x4C495357UL /* LISW */
alejandroRL 0:dd702039127a 110 #define MENU_ID 0x4d454e55UL /* MENU */
alejandroRL 0:dd702039127a 111 #define MULTIEDIT_ID 0x4d554c45UL /* MULE */
alejandroRL 0:dd702039127a 112 #define MULTIPAGE_ID 0x4d554c50UL /* MULP */
alejandroRL 0:dd702039127a 113 #define MPAGECLNT_ID 0x4d50434CUL /* MPCL */
alejandroRL 0:dd702039127a 114 #define PROGBAR_ID 0x50524f47UL /* PROG */
alejandroRL 0:dd702039127a 115 #define RADIO_ID 0x52414449UL /* RADI */
alejandroRL 0:dd702039127a 116 #define SCROLLBAR_ID 0x5343524fUL /* SCRO */
alejandroRL 0:dd702039127a 117 #define SLIDER_ID 0x534c4944UL /* SLID */
alejandroRL 0:dd702039127a 118 #define SWIPELIST_ID 0x53574950UL /* SWIP */
alejandroRL 0:dd702039127a 119 #define TEXT_ID 0x54455854UL /* TEXT */
alejandroRL 0:dd702039127a 120 #define TREEVIEW_ID 0x54524545UL /* TREE */
alejandroRL 0:dd702039127a 121 #define ICONVIEW_ID 0x49434f4eUL /* ICON */
alejandroRL 0:dd702039127a 122 #define IMAGE_ID 0x494d4147UL /* IMAG */
alejandroRL 0:dd702039127a 123 #define SPINBOX_ID 0x5350494eUL /* SPIN */
alejandroRL 0:dd702039127a 124 #define KNOB_ID 0x4b4e4f42UL /* KNOB */
alejandroRL 0:dd702039127a 125 #define WINDOW_ID 0x57494e44UL /* WIND */
alejandroRL 0:dd702039127a 126
alejandroRL 0:dd702039127a 127 #define WIDGET_LOCK(hWin) ((WIDGET*)GUI_LOCK_H(hWin))
alejandroRL 0:dd702039127a 128
alejandroRL 0:dd702039127a 129 /*********************************************************************
alejandroRL 0:dd702039127a 130 *
alejandroRL 0:dd702039127a 131 * Config switches
alejandroRL 0:dd702039127a 132 */
alejandroRL 0:dd702039127a 133
alejandroRL 0:dd702039127a 134 #ifndef WIDGET_USE_PARENT_EFFECT
alejandroRL 0:dd702039127a 135 #define WIDGET_USE_PARENT_EFFECT 0
alejandroRL 0:dd702039127a 136 #endif
alejandroRL 0:dd702039127a 137 #ifndef WIDGET_USE_FLEX_SKIN
alejandroRL 0:dd702039127a 138 #define WIDGET_USE_FLEX_SKIN 1
alejandroRL 0:dd702039127a 139 #endif
alejandroRL 0:dd702039127a 140 #if !defined(WIDGET_USE_SCHEME_SMALL) && !defined(WIDGET_USE_SCHEME_MEDIUM) && !defined(WIDGET_USE_SCHEME_LARGE)
alejandroRL 0:dd702039127a 141 #define WIDGET_USE_SCHEME_SMALL 1
alejandroRL 0:dd702039127a 142 #define WIDGET_USE_SCHEME_MEDIUM 0
alejandroRL 0:dd702039127a 143 #define WIDGET_USE_SCHEME_LARGE 0
alejandroRL 0:dd702039127a 144 #endif
alejandroRL 0:dd702039127a 145 #ifndef WIDGET_USE_SCHEME_SMALL
alejandroRL 0:dd702039127a 146 #define WIDGET_USE_SCHEME_SMALL 0
alejandroRL 0:dd702039127a 147 #endif
alejandroRL 0:dd702039127a 148 #ifndef WIDGET_USE_SCHEME_MEDIUM
alejandroRL 0:dd702039127a 149 #define WIDGET_USE_SCHEME_MEDIUM 0
alejandroRL 0:dd702039127a 150 #endif
alejandroRL 0:dd702039127a 151 #ifndef WIDGET_USE_SCHEME_LARGE
alejandroRL 0:dd702039127a 152 #define WIDGET_USE_SCHEME_LARGE 0
alejandroRL 0:dd702039127a 153 #endif
alejandroRL 0:dd702039127a 154 #if (WIDGET_USE_SCHEME_SMALL + WIDGET_USE_SCHEME_MEDIUM + WIDGET_USE_SCHEME_LARGE) > 1
alejandroRL 0:dd702039127a 155 #error Only one scheme can be selected!
alejandroRL 0:dd702039127a 156 #endif
alejandroRL 0:dd702039127a 157
alejandroRL 0:dd702039127a 158 /*********************************************************************
alejandroRL 0:dd702039127a 159 *
alejandroRL 0:dd702039127a 160 * States
alejandroRL 0:dd702039127a 161 */
alejandroRL 0:dd702039127a 162
alejandroRL 0:dd702039127a 163 #define WIDGET_STATE_FOCUS (1 << 0)
alejandroRL 0:dd702039127a 164 #define WIDGET_STATE_VERTICAL (1 << 3)
alejandroRL 0:dd702039127a 165 #define WIDGET_STATE_FOCUSSABLE (1 << 4)
alejandroRL 0:dd702039127a 166
alejandroRL 0:dd702039127a 167 #define WIDGET_STATE_USER0 (1 << 8) /* Freely available for derived widget */
alejandroRL 0:dd702039127a 168 #define WIDGET_STATE_USER1 (1 << 9) /* Freely available for derived widget */
alejandroRL 0:dd702039127a 169 #define WIDGET_STATE_USER2 (1 << 10) /* Freely available for derived widget */
alejandroRL 0:dd702039127a 170
alejandroRL 0:dd702039127a 171 /*********************************************************************
alejandroRL 0:dd702039127a 172 *
alejandroRL 0:dd702039127a 173 * Skinning message identifiers
alejandroRL 0:dd702039127a 174 */
alejandroRL 0:dd702039127a 175 #define WIDGET_ITEM_CREATE 0
alejandroRL 0:dd702039127a 176 #define WIDGET_ITEM_DRAW 1
alejandroRL 0:dd702039127a 177 #define WIDGET_ITEM_DRAW_ARROW 2
alejandroRL 0:dd702039127a 178 #define WIDGET_ITEM_DRAW_ARROW_L 3
alejandroRL 0:dd702039127a 179 #define WIDGET_ITEM_DRAW_ARROW_R 4
alejandroRL 0:dd702039127a 180 #define WIDGET_ITEM_DRAW_BACKGROUND 5
alejandroRL 0:dd702039127a 181 #define WIDGET_ITEM_DRAW_BITMAP 6
alejandroRL 0:dd702039127a 182 #define WIDGET_ITEM_DRAW_BUTTON 7
alejandroRL 0:dd702039127a 183 #define WIDGET_ITEM_DRAW_BUTTON_L 8
alejandroRL 0:dd702039127a 184 #define WIDGET_ITEM_DRAW_BUTTON_R 9
alejandroRL 0:dd702039127a 185 #define WIDGET_ITEM_DRAW_FOCUS 10
alejandroRL 0:dd702039127a 186 #define WIDGET_ITEM_DRAW_FRAME 11
alejandroRL 0:dd702039127a 187 #define WIDGET_ITEM_DRAW_OVERLAP 12
alejandroRL 0:dd702039127a 188 #define WIDGET_ITEM_DRAW_OVERLAY 13
alejandroRL 0:dd702039127a 189 #define WIDGET_ITEM_DRAW_SEP 14
alejandroRL 0:dd702039127a 190 #define WIDGET_ITEM_DRAW_SHAFT 15
alejandroRL 0:dd702039127a 191 #define WIDGET_ITEM_DRAW_SHAFT_L 16
alejandroRL 0:dd702039127a 192 #define WIDGET_ITEM_DRAW_SHAFT_R 17
alejandroRL 0:dd702039127a 193 #define WIDGET_ITEM_DRAW_TEXT 18
alejandroRL 0:dd702039127a 194 #define WIDGET_ITEM_DRAW_THUMB 19
alejandroRL 0:dd702039127a 195 #define WIDGET_ITEM_DRAW_TICKS 20
alejandroRL 0:dd702039127a 196 #define WIDGET_ITEM_GET_BORDERSIZE_B 21
alejandroRL 0:dd702039127a 197 #define WIDGET_ITEM_GET_BORDERSIZE_L 22
alejandroRL 0:dd702039127a 198 #define WIDGET_ITEM_GET_BORDERSIZE_R 23
alejandroRL 0:dd702039127a 199 #define WIDGET_ITEM_GET_BORDERSIZE_T 24
alejandroRL 0:dd702039127a 200 #define WIDGET_ITEM_GET_BUTTONSIZE 25
alejandroRL 0:dd702039127a 201 #define WIDGET_ITEM_GET_XSIZE 26
alejandroRL 0:dd702039127a 202 #define WIDGET_ITEM_GET_YSIZE 27
alejandroRL 0:dd702039127a 203 #define WIDGET_ITEM_GET_RADIUS 28
alejandroRL 0:dd702039127a 204 #define WIDGET_ITEM_APPLY_PROPS 29 // Not to be documented. Use this message identifier to update the
alejandroRL 0:dd702039127a 205 // properties of attached widgets from <WIDGET>_DrawSkinFlex().
alejandroRL 0:dd702039127a 206
alejandroRL 0:dd702039127a 207 #define WIDGET_DRAW_OVERLAY WIDGET_ITEM_DRAW_OVERLAY
alejandroRL 0:dd702039127a 208 #define WIDGET_DRAW_BACKGROUND WIDGET_ITEM_DRAW_BACKGROUND
alejandroRL 0:dd702039127a 209
alejandroRL 0:dd702039127a 210 /*********************************************************************
alejandroRL 0:dd702039127a 211 *
alejandroRL 0:dd702039127a 212 * Messages
alejandroRL 0:dd702039127a 213 */
alejandroRL 0:dd702039127a 214
alejandroRL 0:dd702039127a 215 #define WM_WIDGET_SET_EFFECT (WM_WIDGET + 0)
alejandroRL 0:dd702039127a 216
alejandroRL 0:dd702039127a 217 /*********************************************************************
alejandroRL 0:dd702039127a 218 *
alejandroRL 0:dd702039127a 219 * Create flags
alejandroRL 0:dd702039127a 220 */
alejandroRL 0:dd702039127a 221
alejandroRL 0:dd702039127a 222 #define WIDGET_CF_VERTICAL WIDGET_STATE_VERTICAL
alejandroRL 0:dd702039127a 223
alejandroRL 0:dd702039127a 224 /*********************************************************************
alejandroRL 0:dd702039127a 225 *
alejandroRL 0:dd702039127a 226 * Widget object
alejandroRL 0:dd702039127a 227 *
alejandroRL 0:dd702039127a 228 * The widget object is the base class for most widgets
alejandroRL 0:dd702039127a 229 */
alejandroRL 0:dd702039127a 230 typedef struct {
alejandroRL 0:dd702039127a 231 int EffectSize;
alejandroRL 0:dd702039127a 232 void (* pfDrawUp) (void);
alejandroRL 0:dd702039127a 233 void (* pfDrawUpRect) (const GUI_RECT * pRect);
alejandroRL 0:dd702039127a 234 void (* pfDrawDown) (void);
alejandroRL 0:dd702039127a 235 void (* pfDrawDownRect)(const GUI_RECT * pRect);
alejandroRL 0:dd702039127a 236 void (* pfDrawFlat) (void);
alejandroRL 0:dd702039127a 237 void (* pfDrawFlatRect)(const GUI_RECT * pRect);
alejandroRL 0:dd702039127a 238 } WIDGET_EFFECT;
alejandroRL 0:dd702039127a 239
alejandroRL 0:dd702039127a 240 typedef struct {
alejandroRL 0:dd702039127a 241 WM_Obj Win;
alejandroRL 0:dd702039127a 242 const WIDGET_EFFECT* pEffect;
alejandroRL 0:dd702039127a 243 I16 Id;
alejandroRL 0:dd702039127a 244 U16 State;
alejandroRL 0:dd702039127a 245 #if GUI_DEBUG_LEVEL > 1
alejandroRL 0:dd702039127a 246 U32 DebugId;
alejandroRL 0:dd702039127a 247 #endif
alejandroRL 0:dd702039127a 248 } WIDGET;
alejandroRL 0:dd702039127a 249
alejandroRL 0:dd702039127a 250
alejandroRL 0:dd702039127a 251 /*********************************************************************
alejandroRL 0:dd702039127a 252 *
alejandroRL 0:dd702039127a 253 * GUI_DRAW
alejandroRL 0:dd702039127a 254 *
alejandroRL 0:dd702039127a 255 * The GUI_DRAW object is used as base class for selfdrawing,
alejandroRL 0:dd702039127a 256 * non-windows objects. They are used as content of different widgets,
alejandroRL 0:dd702039127a 257 * such as the bitmap or header widgets.
alejandroRL 0:dd702039127a 258 */
alejandroRL 0:dd702039127a 259 /* Declare Object struct */
alejandroRL 0:dd702039127a 260 typedef struct GUI_DRAW GUI_DRAW;
alejandroRL 0:dd702039127a 261 typedef void GUI_DRAW_SELF_CB (WM_HWIN hWin);
alejandroRL 0:dd702039127a 262 typedef WM_HMEM GUI_DRAW_HANDLE;
alejandroRL 0:dd702039127a 263
alejandroRL 0:dd702039127a 264 /* Declare Object constants (member functions etc) */
alejandroRL 0:dd702039127a 265 typedef struct {
alejandroRL 0:dd702039127a 266 void (* pfDraw) (GUI_DRAW_HANDLE hDrawObj, WM_HWIN hObj, int x, int y);
alejandroRL 0:dd702039127a 267 int (* pfGetXSize)(GUI_DRAW_HANDLE hDrawObj);
alejandroRL 0:dd702039127a 268 int (* pfGetYSize)(GUI_DRAW_HANDLE hDrawObj);
alejandroRL 0:dd702039127a 269 } GUI_DRAW_CONSTS;
alejandroRL 0:dd702039127a 270
alejandroRL 0:dd702039127a 271 /* Declare Object */
alejandroRL 0:dd702039127a 272 struct GUI_DRAW {
alejandroRL 0:dd702039127a 273 const GUI_DRAW_CONSTS* pConsts;
alejandroRL 0:dd702039127a 274 union {
alejandroRL 0:dd702039127a 275 const void * pData;
alejandroRL 0:dd702039127a 276 GUI_DRAW_SELF_CB* pfDraw;
alejandroRL 0:dd702039127a 277 } Data;
alejandroRL 0:dd702039127a 278 I16 xOff, yOff;
alejandroRL 0:dd702039127a 279 };
alejandroRL 0:dd702039127a 280
alejandroRL 0:dd702039127a 281 /* GUI_DRAW_ API */
alejandroRL 0:dd702039127a 282 void GUI_DRAW__Draw (GUI_DRAW_HANDLE hDrawObj, WM_HWIN hObj, int x, int y);
alejandroRL 0:dd702039127a 283 int GUI_DRAW__GetXSize(GUI_DRAW_HANDLE hDrawObj);
alejandroRL 0:dd702039127a 284 int GUI_DRAW__GetYSize(GUI_DRAW_HANDLE hDrawObj);
alejandroRL 0:dd702039127a 285
alejandroRL 0:dd702039127a 286 /* GUI_DRAW_ Constructurs for different objects */
alejandroRL 0:dd702039127a 287 WM_HMEM GUI_DRAW_BITMAP_Create (const GUI_BITMAP* pBitmap, int x, int y);
alejandroRL 0:dd702039127a 288 WM_HMEM GUI_DRAW_BMP_Create (const void* pBMP, int x, int y);
alejandroRL 0:dd702039127a 289 WM_HMEM GUI_DRAW_STREAMED_Create(const GUI_BITMAP_STREAM * pBitmap, int x, int y);
alejandroRL 0:dd702039127a 290 WM_HMEM GUI_DRAW_SELF_Create(GUI_DRAW_SELF_CB* pfDraw, int x, int y);
alejandroRL 0:dd702039127a 291
alejandroRL 0:dd702039127a 292 /*********************************************************************
alejandroRL 0:dd702039127a 293 *
alejandroRL 0:dd702039127a 294 * Global data
alejandroRL 0:dd702039127a 295 *
alejandroRL 0:dd702039127a 296 **********************************************************************
alejandroRL 0:dd702039127a 297 */
alejandroRL 0:dd702039127a 298
alejandroRL 0:dd702039127a 299 extern const WIDGET_EFFECT WIDGET_Effect_3D;
alejandroRL 0:dd702039127a 300 extern const WIDGET_EFFECT WIDGET_Effect_3D1L;
alejandroRL 0:dd702039127a 301 extern const WIDGET_EFFECT WIDGET_Effect_3D2L;
alejandroRL 0:dd702039127a 302 extern const WIDGET_EFFECT WIDGET_Effect_None;
alejandroRL 0:dd702039127a 303 extern const WIDGET_EFFECT WIDGET_Effect_Simple;
alejandroRL 0:dd702039127a 304
alejandroRL 0:dd702039127a 305 /*********************************************************************
alejandroRL 0:dd702039127a 306 *
alejandroRL 0:dd702039127a 307 * Internal API routines
alejandroRL 0:dd702039127a 308 *
alejandroRL 0:dd702039127a 309 **********************************************************************
alejandroRL 0:dd702039127a 310 */
alejandroRL 0:dd702039127a 311
alejandroRL 0:dd702039127a 312 void WIDGET__DrawFocusRect (WIDGET * pWidget, const GUI_RECT * pRect, int Dist);
alejandroRL 0:dd702039127a 313 void WIDGET__DrawHLine (WIDGET * pWidget, int y, int x0, int x1);
alejandroRL 0:dd702039127a 314 void WIDGET__DrawTriangle (WIDGET * pWidget, int x, int y, int Size, int Inc);
alejandroRL 0:dd702039127a 315 void WIDGET__DrawVLine (WIDGET * pWidget, int x, int y0, int y1);
alejandroRL 0:dd702039127a 316 void WIDGET__EFFECT_DrawDownRect(WIDGET * pWidget, GUI_RECT * pRect);
alejandroRL 0:dd702039127a 317 void WIDGET__EFFECT_DrawDown (WIDGET * pWidget);
alejandroRL 0:dd702039127a 318 void WIDGET__EFFECT_DrawUpRect (WIDGET * pWidget, GUI_RECT * pRect);
alejandroRL 0:dd702039127a 319 void WIDGET__FillRectEx (WIDGET * pWidget, const GUI_RECT * pRect);
alejandroRL 0:dd702039127a 320 int WIDGET__GetWindowSizeX (WM_HWIN hWin);
alejandroRL 0:dd702039127a 321 GUI_COLOR WIDGET__GetBkColor (WM_HWIN hObj);
alejandroRL 0:dd702039127a 322 int WIDGET__GetXSize (const WIDGET * pWidget);
alejandroRL 0:dd702039127a 323 int WIDGET__GetYSize (const WIDGET * pWidget);
alejandroRL 0:dd702039127a 324 void WIDGET__GetClientRect (WIDGET * pWidget, GUI_RECT * pRect);
alejandroRL 0:dd702039127a 325 void WIDGET__GetInsideRect (WIDGET * pWidget, GUI_RECT * pRect);
alejandroRL 0:dd702039127a 326 void WIDGET__Init (WIDGET * pWidget, int Id, U16 State);
alejandroRL 0:dd702039127a 327 void WIDGET__RotateRect90 (WIDGET * pWidget, GUI_RECT * pDest, const GUI_RECT * pRect);
alejandroRL 0:dd702039127a 328 void WIDGET__SetScrollState (WM_HWIN hWin, const WM_SCROLL_STATE * pVState, const WM_SCROLL_STATE * pState);
alejandroRL 0:dd702039127a 329 void WIDGET__FillStringInRect (const char * pText, const GUI_RECT * pFillRect, const GUI_RECT * pTextRectMax, const GUI_RECT * pTextRectAct);
alejandroRL 0:dd702039127a 330
alejandroRL 0:dd702039127a 331 /*********************************************************************
alejandroRL 0:dd702039127a 332 *
alejandroRL 0:dd702039127a 333 * API routines
alejandroRL 0:dd702039127a 334 *
alejandroRL 0:dd702039127a 335 **********************************************************************
alejandroRL 0:dd702039127a 336 */
alejandroRL 0:dd702039127a 337 void WIDGET_SetState (WM_HWIN hObj, int State);
alejandroRL 0:dd702039127a 338 void WIDGET_AndState (WM_HWIN hObj, int State);
alejandroRL 0:dd702039127a 339 void WIDGET_OrState (WM_HWIN hObj, int State);
alejandroRL 0:dd702039127a 340 int WIDGET_HandleActive (WM_HWIN hObj, WM_MESSAGE* pMsg);
alejandroRL 0:dd702039127a 341 int WIDGET_GetState (WM_HWIN hObj);
alejandroRL 0:dd702039127a 342 int WIDGET_SetWidth (WM_HWIN hObj, int Width);
alejandroRL 0:dd702039127a 343
alejandroRL 0:dd702039127a 344 void WIDGET_EFFECT_3D_DrawUp(void);
alejandroRL 0:dd702039127a 345
alejandroRL 0:dd702039127a 346 const WIDGET_EFFECT* WIDGET_SetDefaultEffect(const WIDGET_EFFECT* pEffect);
alejandroRL 0:dd702039127a 347
alejandroRL 0:dd702039127a 348 void WIDGET_SetEffect (WM_HWIN hObj, const WIDGET_EFFECT* pEffect);
alejandroRL 0:dd702039127a 349
alejandroRL 0:dd702039127a 350 const WIDGET_EFFECT* WIDGET_GetDefaultEffect(void);
alejandroRL 0:dd702039127a 351
alejandroRL 0:dd702039127a 352 void WIDGET_EFFECT_3D_SetColor (unsigned Index, GUI_COLOR Color);
alejandroRL 0:dd702039127a 353 void WIDGET_EFFECT_3D1L_SetColor (unsigned Index, GUI_COLOR Color);
alejandroRL 0:dd702039127a 354 void WIDGET_EFFECT_3D2L_SetColor (unsigned Index, GUI_COLOR Color);
alejandroRL 0:dd702039127a 355 void WIDGET_EFFECT_Simple_SetColor(unsigned Index, GUI_COLOR Color);
alejandroRL 0:dd702039127a 356
alejandroRL 0:dd702039127a 357 GUI_COLOR WIDGET_EFFECT_3D_GetColor (unsigned Index);
alejandroRL 0:dd702039127a 358 GUI_COLOR WIDGET_EFFECT_3D1L_GetColor (unsigned Index);
alejandroRL 0:dd702039127a 359 GUI_COLOR WIDGET_EFFECT_3D2L_GetColor (unsigned Index);
alejandroRL 0:dd702039127a 360 GUI_COLOR WIDGET_EFFECT_Simple_GetColor(unsigned Index);
alejandroRL 0:dd702039127a 361
alejandroRL 0:dd702039127a 362 int WIDGET_EFFECT_3D_GetNumColors(void);
alejandroRL 0:dd702039127a 363 int WIDGET_EFFECT_3D1L_GetNumColors(void);
alejandroRL 0:dd702039127a 364 int WIDGET_EFFECT_3D2L_GetNumColors(void);
alejandroRL 0:dd702039127a 365 int WIDGET_EFFECT_Simple_GetNumColors(void);
alejandroRL 0:dd702039127a 366
alejandroRL 0:dd702039127a 367 /*********************************************************************
alejandroRL 0:dd702039127a 368 *
alejandroRL 0:dd702039127a 369 * Compatibility macros
alejandroRL 0:dd702039127a 370 *
alejandroRL 0:dd702039127a 371 **********************************************************************
alejandroRL 0:dd702039127a 372 */
alejandroRL 0:dd702039127a 373 #define WIDGET_SetDefaultEffect_3D() WIDGET_SetDefaultEffect(&WIDGET_Effect_3D)
alejandroRL 0:dd702039127a 374 #define WIDGET_SetDefaultEffect_3D1L() WIDGET_SetDefaultEffect(&WIDGET_Effect_3D1L)
alejandroRL 0:dd702039127a 375 #define WIDGET_SetDefaultEffect_3D2L() WIDGET_SetDefaultEffect(&WIDGET_Effect_3D2L)
alejandroRL 0:dd702039127a 376 #define WIDGET_SetDefaultEffect_None() WIDGET_SetDefaultEffect(&WIDGET_Effect_None)
alejandroRL 0:dd702039127a 377 #define WIDGET_SetDefaultEffect_Simple() WIDGET_SetDefaultEffect(&WIDGET_Effect_Simple)
alejandroRL 0:dd702039127a 378
alejandroRL 0:dd702039127a 379 #endif /* GUI_WINSUPPORT */
alejandroRL 0:dd702039127a 380
alejandroRL 0:dd702039127a 381 #if defined(__cplusplus)
alejandroRL 0:dd702039127a 382 }
alejandroRL 0:dd702039127a 383 #endif
alejandroRL 0:dd702039127a 384
alejandroRL 0:dd702039127a 385 #endif /* SLIDER_H */
alejandroRL 0:dd702039127a 386
alejandroRL 0:dd702039127a 387
alejandroRL 0:dd702039127a 388
alejandroRL 0:dd702039127a 389