text: /*********************************************************************
  *                    SEGGER Microcontroller GmbH                     *
  *        Solutions for real time microcontroller applications        *
  **********************************************************************
  *                                                                    *
  *        (c) 1996 - 2019  SEGGER Microcontroller GmbH                *
  *                                                                    *
  *        Internet: www.segger.com    Support:  support@segger.com    *
  *                                                                    *
  **********************************************************************
  
  ** emWin V5.50 - Graphical user interface for embedded applications **
  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  a license  and should  not be  re-
  distributed in any way. We appreciate your understanding and fairness.
  ----------------------------------------------------------------------
  Licensing information
  Licensor:                 SEGGER Software GmbH
  Licensed to:              Renesas Electronics Europe GmbH, Arcadiastrasse 10, 40472 Duesseldorf, Germany
  Licensed SEGGER software: emWin
  License number:           GUI-00678
  License model:            License and Service Agreement, signed December 16th, 2016 and Amendment No. 1, signed May 16th, 2019
  License valid for:        RX65N, RX651, RX72M, RX72N, RX661, RX66N
  ----------------------------------------------------------------------
  Support and Update Agreement (SUA)
  SUA period:               2016-12-22 - 2019-12-31
  Contact to extend SUA:    sales@segger.com
  ----------------------------------------------------------------------
  File        : ROTARY.h
  Purpose     : ROTARY include
  --------------------END-OF-HEADER-------------------------------------
  */
  
  #ifndef ROTARY_H
  #define ROTARY_H
  
  #include "WM.h"
  #include "DIALOG_Type.h"      // Req. for Create indirect data structure
  #include "WIDGET.h"
  
  #if (GUI_SUPPORT_MEMDEV && GUI_WINSUPPORT)
  
  #if defined(__cplusplus)
    extern "C" {                  // Make sure we have C-declarations in C++ programs
  #endif
  
  /*********************************************************************
  *
  *       Public Types
  *
  **********************************************************************
  */
  typedef WM_HMEM ROTARY_Handle;
  
  /*********************************************************************
  *
  *       Create functions
  *
  **********************************************************************
  */
  ROTARY_Handle ROTARY_CreateEx      (int x0, int y0, int xSize, int ySize, WM_HWIN hParent, int WinFlags, int Id);
  ROTARY_Handle ROTARY_CreateUser    (int x0, int y0, int xSize, int ySize, WM_HWIN hParent, int WinFlags, int Id, int NumExtraBytes);
  ROTARY_Handle ROTARY_CreateIndirect(const GUI_WIDGET_CREATE_INFO * pCreateInfo, WM_HWIN hWinParent, int x0, int y0, WM_CALLBACK * cb);
  
  /*********************************************************************
  *
  *       The callback ...
  *
  * Do not call it directly ! It is only to be used from within an
  * overwritten callback.
  */
  void ROTARY_Callback(WM_MESSAGE * pMsg);
  
  /*********************************************************************
  *
  *       Member functions
  *
  **********************************************************************
  */
  void ROTARY_AddValue     (ROTARY_Handle hObj, I32 Delta);
  void ROTARY_AddAngle     (ROTARY_Handle hObj, I32 Delta);
  I32  ROTARY_GetAngle     (ROTARY_Handle hObj);
  int  ROTARY_GetUserData  (ROTARY_Handle hObj, void * pDest, int NumBytes);
  I32  ROTARY_GetValue     (ROTARY_Handle hObj);
  void ROTARY_SetAngle     (ROTARY_Handle hObj, I32 Pos);
  void ROTARY_SetBitmap    (ROTARY_Handle hObj, const GUI_BITMAP * pBitmap);
  void ROTARY_SetBitmapObj (ROTARY_Handle hObj, GUI_DRAW_HANDLE hDrawObj);
  void ROTARY_SetDoRotate  (ROTARY_Handle hObj, U8 DoRotate);
  void ROTARY_SetMarker    (ROTARY_Handle hObj, const GUI_BITMAP * pBitmap, int Radius, I32 AngleOffset, U8 DoRotate);
  void ROTARY_SetMarkerObj (ROTARY_Handle hObj, GUI_DRAW_HANDLE hDrawObjMarker, GUI_DRAW_HANDLE hDrawObjMarkerHR, int Radius, I32 Offset, U8 DoRotate);
  void ROTARY_SetOffset    (ROTARY_Handle hObj, int Offset);
  void ROTARY_SetPeriod    (ROTARY_Handle hObj, I32 Period);
  void ROTARY_SetRadius    (ROTARY_Handle hObj, int Radius);
  void ROTARY_SetRange     (ROTARY_Handle hObj, U32 AngPositiv, U32 AngNegativ);
  void ROTARY_SetSnap      (ROTARY_Handle hObj, I32 Snap);
  void ROTARY_SetTickSize  (ROTARY_Handle hObj, I32 TickSize);
  int  ROTARY_SetUserData  (ROTARY_Handle hObj, const void * pSrc, int NumBytes);
  void ROTARY_SetValue     (ROTARY_Handle hObj, I32 Value);
  int  ROTARY_SetValueRange(ROTARY_Handle hObj, I32 Min, I32 Max);
  
  /*********************************************************************
  *
  *       Global functions
  *
  **********************************************************************
  */
  
  #if defined(__cplusplus)
    }
  #endif
  
  #endif  // (GUI_SUPPORT_MEMDEV && GUI_WINSUPPORT)
  #endif  // ROTARY_H
  
  /*************************** End of file ****************************/
  