text: /***************************************************************************//**
   * # License
   * 
   * The licensor of this software is Silicon Laboratories Inc. Your use of this
   * software is governed by the terms of Silicon Labs Master Software License
   * Agreement (MSLA) available at
   * www.silabs.com/about-us/legal/master-software-license-agreement. This
   * software is Third Party Software licensed by Silicon Labs from a third party
   * and is governed by the sections of the MSLA applicable to Third Party
   * Software and the additional terms set forth below.
   * 
   ******************************************************************************/
  
  /*********************************************************************
  *                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.34 - 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 Silicon Labs Norway, a subsidiary
  of Silicon Labs Inc. whose registered office is 400 West Cesar Chavez,
  Austin,  TX 78701, USA solely for  the purposes of creating  libraries 
  for its  ARM Cortex-M3, M4F  processor-based devices,  sublicensed and 
  distributed  under the  terms and conditions  of the  End User License  
  Agreement supplied by Silicon Labs.
  Full source code is available at: www.segger.com
  
  We appreciate your understanding and fairness.
  ----------------------------------------------------------------------
  Licensing information
  
  Licensor:                 SEGGER Software GmbH
  Licensed to:              Silicon Laboratories Norway
  Licensed SEGGER software: emWin
  License number:           GUI-00140
  License model:            See Agreement, dated 20th April 2012
  Licensed product:         - 
  Licensed platform:        Cortex M3, Cortex M4F
  Licensed number of seats: -
  ----------------------------------------------------------------------
  File        : PROGBAR_Private.h
  Purpose     : Internal header file
  ---------------------------END-OF-HEADER------------------------------
  */
  
  #ifndef PROGBAR_PRIVATE_H
  #define PROGBAR_PRIVATE_H
  
  #include "PROGBAR.h"
  #include "WIDGET.h"
  
  #if GUI_WINSUPPORT
  
  /*********************************************************************
  *
  *       Defines
  *
  **********************************************************************
  */
  #define PROGBAR_SF_HORIZONTAL PROGBAR_CF_HORIZONTAL
  #define PROGBAR_SF_VERTICAL   PROGBAR_CF_VERTICAL
  #define PROGBAR_SF_USER       PROGBAR_CF_USER
  
  /*********************************************************************
  *
  *       Types
  *
  **********************************************************************
  */
  typedef struct {
    WIDGET_DRAW_ITEM_FUNC * pfDrawSkin;
  } PROGBAR_SKIN_PRIVATE;
  
  typedef struct {
    const GUI_FONT * pFont;
    GUI_COLOR aBarColor[2];
    GUI_COLOR aTextColor[2];
    PROGBAR_SKIN_PRIVATE SkinPrivate;
  } PROGBAR_PROPS;
  
  typedef struct {
    WIDGET Widget;
    int v;
    WM_HMEM hpText;
    I16 XOff, YOff;
    I16 TextAlign;
    int Min, Max;
    PROGBAR_PROPS Props;
    WIDGET_SKIN const * pWidgetSkin;
    U8 Flags;
  } PROGBAR_Obj;
  
  /*********************************************************************
  *
  *       Macros for internal use
  *
  **********************************************************************
  */
  #if GUI_DEBUG_LEVEL >= GUI_DEBUG_LEVEL_CHECK_ALL
    #define PROGBAR_INIT_ID(p) p->Widget.DebugId = PROGBAR_ID
  #else
    #define PROGBAR_INIT_ID(p)
  #endif
  
  #if GUI_DEBUG_LEVEL >= GUI_DEBUG_LEVEL_CHECK_ALL
    PROGBAR_Obj * PROGBAR_LockH(PROGBAR_Handle h);
    #define PROGBAR_LOCK_H(h)   PROGBAR_LockH(h)
  #else
    #define PROGBAR_LOCK_H(h)   (PROGBAR_Obj *)GUI_LOCK_H(h)
  #endif
  
  /*********************************************************************
  *
  *       Public data (internal defaults)
  *
  **********************************************************************
  */
  extern PROGBAR_PROPS PROGBAR__DefaultProps;
  
  extern const WIDGET_SKIN PROGBAR__SkinClassic;
  extern       WIDGET_SKIN PROGBAR__Skin;
  
  extern WIDGET_SKIN const * PROGBAR__pSkinDefault;
  
  /*********************************************************************
  *
  *       Public functions (internal)
  *
  **********************************************************************
  */
  char * PROGBAR__GetTextLocked(const PROGBAR_Obj * pObj);
  void   PROGBAR__GetTextRect  (const PROGBAR_Obj * pObj, GUI_RECT * pRect, const char * pText);
  int    PROGBAR__Value2Pos    (const PROGBAR_Obj * pObj, int v);
  
  #endif /* GUI_WINSUPPORT */
  #endif /* PROGBAR_PRIVATE_H */
  
  /*************************** End of file ****************************/
  