NuMaker emWin HMI

Revision:
1:c0f972361605
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emWin/Include/ICONVIEW_Private.h	Wed Feb 27 14:34:09 2019 +0800
@@ -0,0 +1,138 @@
+/*********************************************************************
+*                 SEGGER Software GmbH                               *
+*        Solutions for real time microcontroller applications        *
+**********************************************************************
+*                                                                    *
+*        (c) 1996 - 2018  SEGGER Microcontroller GmbH                *
+*                                                                    *
+*        Internet: www.segger.com    Support:  support@segger.com    *
+*                                                                    *
+**********************************************************************
+
+** emWin V5.48 - 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 by SEGGER Software GmbH to Nuvoton Technology Corporationat the address: No. 4, Creation Rd. III, Hsinchu Science Park, Taiwan
+for the purposes  of  creating  libraries  for its 
+Arm Cortex-M and  Arm9 32-bit microcontrollers, commercialized and distributed by Nuvoton Technology Corporation
+under  the terms and conditions  of  an  End  User  
+License  Agreement  supplied  with  the libraries.
+Full source code is available at: www.segger.com
+
+We appreciate your understanding and fairness.
+----------------------------------------------------------------------
+Licensing information
+Licensor:                 SEGGER Software GmbH
+Licensed to:              Nuvoton Technology Corporation, No. 4, Creation Rd. III, Hsinchu Science Park, 30077 Hsinchu City, Taiwan
+Licensed SEGGER software: emWin
+License number:           GUI-00735
+License model:            emWin License Agreement, signed February 27, 2018
+Licensed platform:        Cortex-M and ARM9 32-bit series microcontroller designed and manufactured by or for Nuvoton Technology Corporation
+----------------------------------------------------------------------
+Support and Update Agreement (SUA)
+SUA period:               2018-03-26 - 2019-03-27
+Contact to extend SUA:    sales@segger.com
+----------------------------------------------------------------------
+File        : ICONVIEW_Private.h
+Purpose     : ICONVIEW private header file
+--------------------END-OF-HEADER-------------------------------------
+*/
+
+#ifndef ICONVIEW_PRIVATE_H
+#define ICONVIEW_PRIVATE_H
+
+#include "WM.h"
+#include "GUI_ARRAY.h"
+#include "ICONVIEW.h"
+
+#if GUI_WINSUPPORT
+
+#if defined(__cplusplus)
+  extern "C" {             // Make sure we have C-declarations in C++ programs
+#endif
+
+/*********************************************************************
+*
+*       Types
+*
+**********************************************************************
+*/
+typedef struct {
+  const GUI_FONT * pFont;
+  GUI_COLOR        aBkColor[3];
+  GUI_COLOR        aTextColor[3];
+  int              FrameX, FrameY;
+  int              SpaceX, SpaceY;
+  int              TextAlign;
+  int              IconAlign;
+  GUI_WRAPMODE     WrapMode;
+} ICONVIEW_PROPS;
+
+typedef struct {
+  WIDGET                  Widget;
+  WM_SCROLL_STATE         ScrollStateV;
+  WM_SCROLL_STATE         ScrollStateH;
+  ICONVIEW_PROPS          Props;
+  GUI_ARRAY               ItemArray;
+  int                     xSizeItems;
+  int                     ySizeItems;
+  int                     Sel;
+  U16                     Flags;
+  WIDGET_DRAW_ITEM_FUNC * pfDrawItem;
+  int                     ReleasedItem;
+} ICONVIEW_OBJ;
+
+typedef void tDrawImage    (const void * pData, GUI_GET_DATA_FUNC * pfGetData, int xPos, int yPos);
+typedef void tDrawText     (ICONVIEW_OBJ * pObj, GUI_RECT * pRect, const char * s);
+typedef void tGetImageSizes(const void * pData, GUI_GET_DATA_FUNC * pfGetData, int * xSize, int * ySize);
+
+typedef struct {
+  tDrawImage        * pfDrawImage;
+  tDrawText         * pfDrawText;
+  tGetImageSizes    * pfGetImageSizes;
+  GUI_GET_DATA_FUNC * pfGetData;
+  const void        * pData;
+  U32                 UserData;
+  int                 SizeOfData;
+  char                acText[1];
+} ICONVIEW_ITEM;
+
+/*********************************************************************
+*
+*       Macros for internal use
+*
+**********************************************************************
+*/
+#if GUI_DEBUG_LEVEL >= GUI_DEBUG_LEVEL_CHECK_ALL
+  #define ICONVIEW_INIT_ID(p) (p->Widget.DebugId = ICONVIEW_ID)
+#else
+  #define ICONVIEW_INIT_ID(p)
+#endif
+
+#if GUI_DEBUG_LEVEL >= GUI_DEBUG_LEVEL_CHECK_ALL
+  ICONVIEW_OBJ * ICONVIEW_LockH(ICONVIEW_Handle h);
+  #define ICONVIEW_LOCK_H(h)   ICONVIEW_LockH(h)
+#else
+  #define ICONVIEW_LOCK_H(h)   (ICONVIEW_OBJ *)GUI_LOCK_H(h)
+#endif
+
+/*********************************************************************
+*
+*       Private functions
+*
+**********************************************************************
+*/
+void ICONVIEW__DrawText        (ICONVIEW_OBJ    * pObj, GUI_RECT * pRect, const char * pText);
+void ICONVIEW__ManageAutoScroll(ICONVIEW_Handle   hObj);
+
+#if defined(__cplusplus)
+  }
+#endif
+
+#endif  // GUI_WINSUPPORT
+#endif  // ICONVIEW_H
+
+/*************************** End of file ****************************/