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 : TREEVIEW.h
alejandroRL 0:dd702039127a 40 Purpose : TREEVIEW include
alejandroRL 0:dd702039127a 41 --------------------END-OF-HEADER-------------------------------------
alejandroRL 0:dd702039127a 42 */
alejandroRL 0:dd702039127a 43
alejandroRL 0:dd702039127a 44 #ifndef TREEVIEW_H
alejandroRL 0:dd702039127a 45 #define TREEVIEW_H
alejandroRL 0:dd702039127a 46
alejandroRL 0:dd702039127a 47 #include "WM.h"
alejandroRL 0:dd702039127a 48 #include "DIALOG_Intern.h" /* Req. for Create indirect data structure */
alejandroRL 0:dd702039127a 49 #include "WIDGET.h"
alejandroRL 0:dd702039127a 50
alejandroRL 0:dd702039127a 51 #if GUI_WINSUPPORT
alejandroRL 0:dd702039127a 52
alejandroRL 0:dd702039127a 53 #if defined(__cplusplus)
alejandroRL 0:dd702039127a 54 extern "C" { /* Make sure we have C-declarations in C++ programs */
alejandroRL 0:dd702039127a 55 #endif
alejandroRL 0:dd702039127a 56
alejandroRL 0:dd702039127a 57 /*********************************************************************
alejandroRL 0:dd702039127a 58 *
alejandroRL 0:dd702039127a 59 * Defines
alejandroRL 0:dd702039127a 60 *
alejandroRL 0:dd702039127a 61 **********************************************************************
alejandroRL 0:dd702039127a 62 */
alejandroRL 0:dd702039127a 63 /* Status- and create flags */
alejandroRL 0:dd702039127a 64 #define TREEVIEW_CF_HIDELINES (1 << 0)
alejandroRL 0:dd702039127a 65 #define TREEVIEW_CF_ROWSELECT (1 << 1)
alejandroRL 0:dd702039127a 66 #define TREEVIEW_CF_AUTOSCROLLBAR_H (1 << 2)
alejandroRL 0:dd702039127a 67 #define TREEVIEW_CF_AUTOSCROLLBAR_V (1 << 3)
alejandroRL 0:dd702039127a 68 #define TREEVIEW_SF_HIDELINES TREEVIEW_CF_HIDELINES
alejandroRL 0:dd702039127a 69 #define TREEVIEW_SF_ROWSELECT TREEVIEW_CF_ROWSELECT
alejandroRL 0:dd702039127a 70 #define TREEVIEW_SF_AUTOSCROLLBAR_H TREEVIEW_CF_AUTOSCROLLBAR_H
alejandroRL 0:dd702039127a 71 #define TREEVIEW_SF_AUTOSCROLLBAR_V TREEVIEW_CF_AUTOSCROLLBAR_V
alejandroRL 0:dd702039127a 72
alejandroRL 0:dd702039127a 73 /* Bitmap indices */
alejandroRL 0:dd702039127a 74 #define TREEVIEW_BI_CLOSED 0
alejandroRL 0:dd702039127a 75 #define TREEVIEW_BI_OPEN 1
alejandroRL 0:dd702039127a 76 #define TREEVIEW_BI_LEAF 2
alejandroRL 0:dd702039127a 77 #define TREEVIEW_BI_PLUS 3
alejandroRL 0:dd702039127a 78 #define TREEVIEW_BI_MINUS 4
alejandroRL 0:dd702039127a 79 #define TREEVIEW_BI_PM 5
alejandroRL 0:dd702039127a 80
alejandroRL 0:dd702039127a 81 /* Color indices */
alejandroRL 0:dd702039127a 82 #define TREEVIEW_CI_UNSEL 0
alejandroRL 0:dd702039127a 83 #define TREEVIEW_CI_SEL 1
alejandroRL 0:dd702039127a 84 #define TREEVIEW_CI_DISABLED 2
alejandroRL 0:dd702039127a 85
alejandroRL 0:dd702039127a 86 /* Relative positions (create) */
alejandroRL 0:dd702039127a 87 #define TREEVIEW_INSERT_ABOVE 0
alejandroRL 0:dd702039127a 88 #define TREEVIEW_INSERT_BELOW 1
alejandroRL 0:dd702039127a 89 #define TREEVIEW_INSERT_FIRST_CHILD 2
alejandroRL 0:dd702039127a 90
alejandroRL 0:dd702039127a 91 /* Relative positions (retrieve) */
alejandroRL 0:dd702039127a 92 #define TREEVIEW_GET_FIRST 0
alejandroRL 0:dd702039127a 93 #define TREEVIEW_GET_LAST 1
alejandroRL 0:dd702039127a 94 #define TREEVIEW_GET_NEXT_SIBLING 2
alejandroRL 0:dd702039127a 95 #define TREEVIEW_GET_PREV_SIBLING 3
alejandroRL 0:dd702039127a 96 #define TREEVIEW_GET_FIRST_CHILD 4
alejandroRL 0:dd702039127a 97 #define TREEVIEW_GET_PARENT 5
alejandroRL 0:dd702039127a 98
alejandroRL 0:dd702039127a 99 /* Item flags */
alejandroRL 0:dd702039127a 100 #define TREEVIEW_ITEM_TYPE_LEAF (0 << 0)
alejandroRL 0:dd702039127a 101 #define TREEVIEW_ITEM_TYPE_NODE (1 << 0)
alejandroRL 0:dd702039127a 102
alejandroRL 0:dd702039127a 103 /* Selection mode */
alejandroRL 0:dd702039127a 104 #define TREEVIEW_SELMODE_ROW 1
alejandroRL 0:dd702039127a 105 #define TREEVIEW_SELMODE_TEXT 0
alejandroRL 0:dd702039127a 106
alejandroRL 0:dd702039127a 107 /************************************************************
alejandroRL 0:dd702039127a 108 *
alejandroRL 0:dd702039127a 109 * Types
alejandroRL 0:dd702039127a 110 *
alejandroRL 0:dd702039127a 111 *************************************************************
alejandroRL 0:dd702039127a 112 */
alejandroRL 0:dd702039127a 113 typedef WM_HMEM TREEVIEW_Handle;
alejandroRL 0:dd702039127a 114 typedef WM_HMEM TREEVIEW_ITEM_Handle;
alejandroRL 0:dd702039127a 115
alejandroRL 0:dd702039127a 116 typedef struct {
alejandroRL 0:dd702039127a 117 int IsNode;
alejandroRL 0:dd702039127a 118 int IsExpanded;
alejandroRL 0:dd702039127a 119 int HasLines;
alejandroRL 0:dd702039127a 120 int HasRowSelect;
alejandroRL 0:dd702039127a 121 int Level;
alejandroRL 0:dd702039127a 122 } TREEVIEW_ITEM_INFO;
alejandroRL 0:dd702039127a 123
alejandroRL 0:dd702039127a 124 typedef struct {
alejandroRL 0:dd702039127a 125 GUI_COLOR ColorBk;
alejandroRL 0:dd702039127a 126 GUI_COLOR ColorText;
alejandroRL 0:dd702039127a 127 GUI_COLOR ColorTextBk;
alejandroRL 0:dd702039127a 128 GUI_COLOR ColorLines;
alejandroRL 0:dd702039127a 129 GUI_RECT rText;
alejandroRL 0:dd702039127a 130 TREEVIEW_ITEM_Handle hItem;
alejandroRL 0:dd702039127a 131 const GUI_FONT * pFont;
alejandroRL 0:dd702039127a 132 char * pText;
alejandroRL 0:dd702039127a 133 U8 NumLines;
alejandroRL 0:dd702039127a 134 I16 ax0[3];
alejandroRL 0:dd702039127a 135 I16 ay0[3];
alejandroRL 0:dd702039127a 136 I16 ax1[3];
alejandroRL 0:dd702039127a 137 I16 ay1[3];
alejandroRL 0:dd702039127a 138 U8 NumConnectors;
alejandroRL 0:dd702039127a 139 I16 axc[16];
alejandroRL 0:dd702039127a 140 const GUI_BITMAP * pBmPM;
alejandroRL 0:dd702039127a 141 const GUI_BITMAP * pBmOCL;
alejandroRL 0:dd702039127a 142 I16 xPosPM, xPosOCL;
alejandroRL 0:dd702039127a 143 U8 IndexPM;
alejandroRL 0:dd702039127a 144 U8 IndexOCL;
alejandroRL 0:dd702039127a 145 } TREEVIEW_ITEM_DRAW_INFO;
alejandroRL 0:dd702039127a 146
alejandroRL 0:dd702039127a 147 /*********************************************************************
alejandroRL 0:dd702039127a 148 *
alejandroRL 0:dd702039127a 149 * Create functions
alejandroRL 0:dd702039127a 150 *
alejandroRL 0:dd702039127a 151 **********************************************************************
alejandroRL 0:dd702039127a 152 */
alejandroRL 0:dd702039127a 153 TREEVIEW_Handle TREEVIEW_CreateEx (int x0, int y0, int xSize, int ySize, WM_HWIN hParent, int WinFlags, int ExFlags, int Id);
alejandroRL 0:dd702039127a 154 TREEVIEW_Handle TREEVIEW_CreateUser (int x0, int y0, int xSize, int ySize, WM_HWIN hParent, int WinFlags, int ExFlags, int Id, int NumExtraBytes);
alejandroRL 0:dd702039127a 155 TREEVIEW_Handle TREEVIEW_CreateIndirect(const GUI_WIDGET_CREATE_INFO * pCreateInfo, WM_HWIN hWinParent, int x0, int y0, WM_CALLBACK * cb);
alejandroRL 0:dd702039127a 156
alejandroRL 0:dd702039127a 157 /*********************************************************************
alejandroRL 0:dd702039127a 158 *
alejandroRL 0:dd702039127a 159 * The callback ...
alejandroRL 0:dd702039127a 160 *
alejandroRL 0:dd702039127a 161 * Do not call it directly ! It is only to be used from within an
alejandroRL 0:dd702039127a 162 * overwritten callback.
alejandroRL 0:dd702039127a 163 */
alejandroRL 0:dd702039127a 164 void TREEVIEW_Callback(WM_MESSAGE * pMsg);
alejandroRL 0:dd702039127a 165
alejandroRL 0:dd702039127a 166 /*********************************************************************
alejandroRL 0:dd702039127a 167 *
alejandroRL 0:dd702039127a 168 * Common functions
alejandroRL 0:dd702039127a 169 *
alejandroRL 0:dd702039127a 170 **********************************************************************
alejandroRL 0:dd702039127a 171 */
alejandroRL 0:dd702039127a 172 int TREEVIEW_AttachItem (TREEVIEW_Handle hObj, TREEVIEW_ITEM_Handle hItem, TREEVIEW_ITEM_Handle hItemAt, int Position);
alejandroRL 0:dd702039127a 173 void TREEVIEW_DecSel (TREEVIEW_Handle hObj);
alejandroRL 0:dd702039127a 174 TREEVIEW_ITEM_Handle TREEVIEW_GetItem (TREEVIEW_Handle hObj, TREEVIEW_ITEM_Handle hItem, int Flags);
alejandroRL 0:dd702039127a 175 TREEVIEW_ITEM_Handle TREEVIEW_GetSel (TREEVIEW_Handle hObj);
alejandroRL 0:dd702039127a 176 int TREEVIEW_GetUserData (TREEVIEW_Handle hObj, void * pDest, int NumBytes);
alejandroRL 0:dd702039127a 177 void TREEVIEW_IncSel (TREEVIEW_Handle hObj);
alejandroRL 0:dd702039127a 178 TREEVIEW_ITEM_Handle TREEVIEW_InsertItem (TREEVIEW_Handle hObj, int IsNode, TREEVIEW_ITEM_Handle hItemPrev, int Position, const char * s);
alejandroRL 0:dd702039127a 179 int TREEVIEW_OwnerDraw (const WIDGET_ITEM_DRAW_INFO * pDrawItemInfo);
alejandroRL 0:dd702039127a 180 void TREEVIEW_ScrollToSel (TREEVIEW_Handle hObj);
alejandroRL 0:dd702039127a 181 void TREEVIEW_SetAutoScrollH (TREEVIEW_Handle hObj, int State);
alejandroRL 0:dd702039127a 182 void TREEVIEW_SetAutoScrollV (TREEVIEW_Handle hObj, int State);
alejandroRL 0:dd702039127a 183 void TREEVIEW_SetBitmapOffset(TREEVIEW_Handle hObj, int Index, int xOff, int yOff);
alejandroRL 0:dd702039127a 184 void TREEVIEW_SetBkColor (TREEVIEW_Handle hObj, int Index, GUI_COLOR Color);
alejandroRL 0:dd702039127a 185 void TREEVIEW_SetFont (TREEVIEW_Handle hObj, const GUI_FONT * pFont);
alejandroRL 0:dd702039127a 186 void TREEVIEW_SetHasLines (TREEVIEW_Handle hObj, int State);
alejandroRL 0:dd702039127a 187 void TREEVIEW_SetImage (TREEVIEW_Handle hObj, int Index, const GUI_BITMAP * pBitmap);
alejandroRL 0:dd702039127a 188 int TREEVIEW_SetIndent (TREEVIEW_Handle hObj, int Indent);
alejandroRL 0:dd702039127a 189 void TREEVIEW_SetLineColor (TREEVIEW_Handle hObj, int Index, GUI_COLOR Color);
alejandroRL 0:dd702039127a 190 void TREEVIEW_SetOwnerDraw (TREEVIEW_Handle hObj, WIDGET_DRAW_ITEM_FUNC * pfDrawItem);
alejandroRL 0:dd702039127a 191 void TREEVIEW_SetSel (TREEVIEW_Handle hObj, TREEVIEW_ITEM_Handle hItem);
alejandroRL 0:dd702039127a 192 void TREEVIEW_SetSelMode (TREEVIEW_Handle hObj, int Mode);
alejandroRL 0:dd702039127a 193 void TREEVIEW_SetTextColor (TREEVIEW_Handle hObj, int Index, GUI_COLOR Color);
alejandroRL 0:dd702039127a 194 int TREEVIEW_SetTextIndent (TREEVIEW_Handle hObj, int TextIndent);
alejandroRL 0:dd702039127a 195 int TREEVIEW_SetUserData (TREEVIEW_Handle hObj, const void * pSrc, int NumBytes);
alejandroRL 0:dd702039127a 196
alejandroRL 0:dd702039127a 197
alejandroRL 0:dd702039127a 198 /*********************************************************************
alejandroRL 0:dd702039127a 199 *
alejandroRL 0:dd702039127a 200 * Treeview item related functions
alejandroRL 0:dd702039127a 201 *
alejandroRL 0:dd702039127a 202 **********************************************************************
alejandroRL 0:dd702039127a 203 */
alejandroRL 0:dd702039127a 204 void TREEVIEW_ITEM_Collapse (TREEVIEW_ITEM_Handle hItem);
alejandroRL 0:dd702039127a 205 void TREEVIEW_ITEM_CollapseAll(TREEVIEW_ITEM_Handle hItem);
alejandroRL 0:dd702039127a 206 TREEVIEW_ITEM_Handle TREEVIEW_ITEM_Create (int IsNode, const char * s, U32 UserData);
alejandroRL 0:dd702039127a 207 void TREEVIEW_ITEM_Delete (TREEVIEW_ITEM_Handle hItem);
alejandroRL 0:dd702039127a 208 void TREEVIEW_ITEM_Detach (TREEVIEW_ITEM_Handle hItem);
alejandroRL 0:dd702039127a 209 void TREEVIEW_ITEM_Expand (TREEVIEW_ITEM_Handle hItem);
alejandroRL 0:dd702039127a 210 void TREEVIEW_ITEM_ExpandAll (TREEVIEW_ITEM_Handle hItem);
alejandroRL 0:dd702039127a 211 void TREEVIEW_ITEM_GetInfo (TREEVIEW_ITEM_Handle hItem, TREEVIEW_ITEM_INFO * pInfo);
alejandroRL 0:dd702039127a 212 void TREEVIEW_ITEM_GetText (TREEVIEW_ITEM_Handle hItem, U8 * pBuffer, int MaxNumBytes);
alejandroRL 0:dd702039127a 213 U32 TREEVIEW_ITEM_GetUserData(TREEVIEW_ITEM_Handle hItem);
alejandroRL 0:dd702039127a 214 void TREEVIEW_ITEM_SetImage (TREEVIEW_ITEM_Handle hItem, int Index, const GUI_BITMAP * pBitmap);
alejandroRL 0:dd702039127a 215 TREEVIEW_ITEM_Handle TREEVIEW_ITEM_SetText (TREEVIEW_ITEM_Handle hItem, const char * s);
alejandroRL 0:dd702039127a 216 void TREEVIEW_ITEM_SetUserData(TREEVIEW_ITEM_Handle hItem, U32 UserData);
alejandroRL 0:dd702039127a 217
alejandroRL 0:dd702039127a 218 /*********************************************************************
alejandroRL 0:dd702039127a 219 *
alejandroRL 0:dd702039127a 220 * Managing default values
alejandroRL 0:dd702039127a 221 *
alejandroRL 0:dd702039127a 222 **********************************************************************
alejandroRL 0:dd702039127a 223 */
alejandroRL 0:dd702039127a 224 GUI_COLOR TREEVIEW_GetDefaultBkColor (int Index);
alejandroRL 0:dd702039127a 225 const GUI_FONT * TREEVIEW_GetDefaultFont (void);
alejandroRL 0:dd702039127a 226 GUI_COLOR TREEVIEW_GetDefaultLineColor(int Index);
alejandroRL 0:dd702039127a 227 GUI_COLOR TREEVIEW_GetDefaultTextColor(int Index);
alejandroRL 0:dd702039127a 228 void TREEVIEW_SetDefaultBkColor (int Index, GUI_COLOR Color);
alejandroRL 0:dd702039127a 229 void TREEVIEW_SetDefaultFont (const GUI_FONT * pFont);
alejandroRL 0:dd702039127a 230 void TREEVIEW_SetDefaultLineColor(int Index, GUI_COLOR Color);
alejandroRL 0:dd702039127a 231 void TREEVIEW_SetDefaultTextColor(int Index, GUI_COLOR Color);
alejandroRL 0:dd702039127a 232
alejandroRL 0:dd702039127a 233 #if defined(__cplusplus)
alejandroRL 0:dd702039127a 234 }
alejandroRL 0:dd702039127a 235 #endif
alejandroRL 0:dd702039127a 236
alejandroRL 0:dd702039127a 237 #endif // GUI_WINSUPPORT
alejandroRL 0:dd702039127a 238 #endif // TREEVIEW_H
alejandroRL 0:dd702039127a 239
alejandroRL 0:dd702039127a 240 /*************************** End of file ****************************/