This repository has been archived on 2025-02-28. You can view files and clone it, but cannot push or open issues or pull requests.
controller-hd/User/lib/lcd/gui/Widget/FRAMEWIN_Private.h

120 lines
3.6 KiB
C

/*
*********************************************************************************************************
* uC/GUI
* Universal graphic software for embedded applications
*
* (c) Copyright 2002, Micrium Inc., Weston, FL
* (c) Copyright 2002, SEGGER Microcontroller Systeme GmbH
*
* µC/GUI 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 redistributed
* in any way. We appreciate your understanding and fairness.
*
----------------------------------------------------------------------
File : FRAMEWIN_Private.h
Purpose : FRAMEWIN private header file
--------------------END-OF-HEADER-------------------------------------
*/
#ifndef FRAMEWIN_PRIVATE_H
#define FRAMEWIN_PRIVATE_H
#include "WM.h"
#include "FRAMEWIN.h"
#include "WIDGET.h"
#include "GUI_HOOK.h"
#if GUI_WINSUPPORT
/*********************************************************************
*
* Object definition
*
**********************************************************************
*/
typedef struct {
const GUI_FONT GUI_UNI_PTR * pFont;
GUI_COLOR aBarColor[2];
GUI_COLOR aTextColor[2];
GUI_COLOR ClientColor;
I16 TitleHeight;
I16 BorderSize;
I16 IBorderSize;
} FRAMEWIN_PROPS;
typedef struct {
WIDGET Widget;
FRAMEWIN_PROPS Props;
WM_CALLBACK* cb;
WM_HWIN hClient;
WM_HWIN hMenu;
WM_HWIN hText;
GUI_RECT rRestore;
I16 TextAlign;
U16 Flags;
WM_HWIN hFocussedChild; /* Handle to focussed child .. default none (0) */
WM_DIALOG_STATUS* pDialogStatus;
GUI_HOOK* pFirstHook;
} FRAMEWIN_Obj;
/*********************************************************************
*
* Types
*
**********************************************************************
*/
typedef struct {
I16 TitleHeight;
I16 MenuHeight;
GUI_RECT rClient;
GUI_RECT rTitleText;
} POSITIONS;
/*********************************************************************
*
* Macros for internal use
*
**********************************************************************
*/
#define FRAMEWIN_H2P(h) (FRAMEWIN_Obj*) GUI_ALLOC_h2p(h)
/*********************************************************************
*
* public data (internal defaults)
*
**********************************************************************
*/
extern FRAMEWIN_PROPS FRAMEWIN__DefaultProps;
/*********************************************************************
*
* public functions (internal)
*
**********************************************************************
*/
void FRAMEWIN__CalcPositions (FRAMEWIN_Obj* pObj, POSITIONS* pPos);
int FRAMEWIN__CalcTitleHeight (FRAMEWIN_Obj* pObj);
void FRAMEWIN__UpdatePositions (FRAMEWIN_Obj* pObj);
void FRAMEWIN__UpdateButtons (FRAMEWIN_Obj* pObj, int OldHeight);
/*********************************************************************
*
* public functions
*
**********************************************************************
*/
const GUI_FONT GUI_UNI_PTR * FRAMEWIN_GetFont (FRAMEWIN_Handle hObj);
int FRAMEWIN_GetTitleHeight (FRAMEWIN_Handle hObj);
void FRAMEWIN_MinButtonSetState(WM_HWIN hButton, int State);
void FRAMEWIN_MaxButtonSetState(WM_HWIN hButton, int State);
#endif /* GUI_WINSUPPORT */
#endif /* FRAMEWIN_H */