sdk-hwV1.3/external/eyesee-mpp/dragonboard/include/V5CDRTP/minigui/ctrl/coolbar.h

233 lines
5.5 KiB
C
Executable File

/**
* \file coolbar.h
* \author Wei Yongming <vincent@minigui.org>
* \date 2002/01/06
*
\verbatim
This file is part of MiniGUI, a mature cross-platform windowing
and Graphics User Interface (GUI) support system for embedded systems
and smart IoT devices.
Copyright (C) 2002~2018, Beijing FMSoft Technologies Co., Ltd.
Copyright (C) 1998~2002, WEI Yongming
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Or,
As this program is a library, any link to this program must follow
GNU General Public License version 3 (GPLv3). If you cannot accept
GPLv3, you need to be licensed from FMSoft.
If you have got a commercial license of this program, please use it
under the terms and conditions of the commercial license.
For more information about the commercial license, please refer to
<http://www.minigui.com/en/about/licensing-policy/>.
\endverbatim
*/
/*
* $Id: coolbar.h 10690 2008-08-18 09:32:47Z weiym $
*
* MiniGUI for Linux/uClinux, eCos, uC/OS-II, VxWorks,
* pSOS, ThreadX, NuCleus, OSE, and Win32.
*/
#ifndef EXT_COOLBAR_H
#define EXT_COOLBAR_H
#ifdef __cplusplus
extern "C" {
#endif
/**
* \addtogroup controls
* @{
*/
/**
* \defgroup mgext_ctrl_coolbar CoolBar control
* @{
*/
/**
* \def CTRL_COOLBAR
* \brief The class name of coolbar control.
*/
#define CTRL_COOLBAR ("CoolBar")
#define TYPE_BARITEM 1
#define TYPE_BMPITEM 2
#define TYPE_TEXTITEM 3
/** Structure of the coolbar item info */
typedef struct _COOLBARITEMINFO
{
/** Reserved, do not use. */
int insPos;
/**
* Identifier of the item. When the user clicked the item, this control
* will send a notification message to the parent window
* with the notification code to be equal to this identifier.
*/
int id;
/**
* Type of the item, can be one of the following values:
* - TYPE_BARITEM
* The item is a separator (a vertical line).
* - TYPE_BMPITEM
* The item is a bitmap.
* - TYPE_TEXTITEM
* The item is text.
*/
int ItemType;
/**
* Pointer to the bitmap of the item, valid when the type is TYPE_BMPITEM.
*/
PBITMAP Bmp;
/**
* Hint text of the item, will be displayed in the tooltip window.
*/
const char *ItemHint;
/**
* Caption of the item, valid when the type is TPYE_TEXTITEM.
*/
const char *Caption;
/** Additional data of the item */
DWORD dwAddData;
} COOLBARITEMINFO;
/**
* \var typedef struct COOLBARITEMINFO *PCOOLBARITEMINFO;
* \brief Data type of the pointer to a COOLBARITEMINFO.
*/
typedef COOLBARITEMINFO *PCOOLBARITEMINFO;
/**
* \defgroup mgext_ctrl_coolbar_styles Styles of coolbar control
* @{
*/
/**
* \def CBS_BMP_16X16
* \brief The size of the item bitmap is 16x16.
*/
#define CBS_BMP_16X16 0x0000
/**
* \def CBS_BMP_32X32
* \brief The size of the item bitmap is 32x32.
*/
#define CBS_BMP_32X32 0x0001
/**
* \def CBS_BMP_CUSTOM
* \brief The item bitmap has customized size.
*
* \note For the control with this style, you should pass
* the width and the height of the item bitmap by
* the argument \a dwAddData of \a CreateWindowEx function.
*
* \code
* int item_width = 20;
* int item_height = 20;
*
* CreateWindowEx (CTRL_COOLBAR, ..., MAKELONG (item_width, item_height)));
* \endcode
*/
#define CBS_BMP_CUSTOM 0x0002
/**
* \def CBS_USEBKBMP
* \brief The control has a background bitmap.
*
* \note For a CoolBar control with this style, you should pass the bitmap file name
* by the argument \a spCaption of \a CreateWindowEx function.
*
* \code
* const char* file_bkgnd = "res/my_bkgnd.gif";
*
* CreateWindowEx (CTRL_COOLBAR, file_bkgnd, ...);
* \endcode
*/
#define CBS_USEBKBMP 0x0004
/** @} end of mgext_ctrl_coolbar_styles */
/**
* \defgroup mgext_ctrl_coolbar_msgs Messages of coolbar control
* @{
*/
/**
* \def CBM_ADDITEM
* \brief Adds a new item in a coolbar control.
*
* \code
* CBM_ADDITEM
* COOLBARITEMINFO *newIteminfo;
*
* wParam = 0;
* lParam = (LPARAM)newIteminfo;
* \endcode
*
* \param newIteminfo Pointer to the item info structure of the new item
* to be added.
*
* \return Zero when success, otherwise less than 0;
*/
#define CBM_ADDITEM 0xFE00
/**
* \def CBM_ENABLE
* \brief Sets an item to be enabled or disabled.
*
* \code
* CBM_ENABLE
* int id;
* BOOL enabled;
*
* wParam = (WPARAM)id;
* lParam = (LPARAM)enabled;
* \endcode
*
* \param id The identifier of the item to change.
* \param enabled TRUE to enable the item, FALSE to disable the item.
*
* \return Zero when success, otherwise less than 0.
*/
#define CBM_ENABLE 0xFE01
/** @} end of mgext_ctrl_coolbar_msgs */
/** @} end of mgext_ctrl_coolbar */
/** @} end of controls */
#ifdef __cplusplus
}
#endif
#endif /* EXT_COOLBAR_H */