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

486 lines
12 KiB
C
Executable File

/**
* \file iconview.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: iconview.h 11576 2009-04-27 01:01:57Z dongjunjie $
*
* MiniGUI for Linux/uClinux, eCos, uC/OS-II, VxWorks,
* pSOS, ThreadX, NuCleus, OSE, and Win32.
*/
#ifndef EXT_ICONVIEW_H
#define EXT_ICONVIEW_H
#ifdef __cplusplus
extern "C" {
#endif
/**
* \addtogroup controls
* @{
*/
/**
* \defgroup mgext_ctrl_iconview IconView control
* @{
*/
/**
* \def CTRL_ICONVIEW
* \brief The class name of iconview control.
*/
#define CTRL_ICONVIEW ("IconView")
/** Iconview return value */
#define IV_OKAY 0
/** Iconview return value */
#define IV_ERR (-1)
/** Iconview return value */
#define IV_ERRSPACE (-2)
/**
* \var typedef GHANDLE HIVITEM
* \brief Icon view item handle
*/
typedef GHANDLE HIVITEM;
/**
* Structure of the iconview item info, contains information about an item.
* This structure is used for creating or retrieving an item.
*/
typedef struct _IVITEMINFO
{
/**
* The Index of the item
*/
int nItem;
/**
* The bitmap icon of the item
*/
PBITMAP bmp;
/**
* The text label of the item
*/
const char *label;
/** Attached additional data of this item */
DWORD addData;
/**
* Reserved
*/
DWORD dwFlags;
} IVITEMINFO;
typedef IVITEMINFO* PIVITEMINFO;
/** Iconview bitmap flags, reserved */
#define IVFLAG_BITMAP 0x0001
/** Iconview icon flags, reserved */
#define IVFLAG_ICON 0x0002
/**
* \fn int iconview_is_item_hilight (HWND hWnd, GHANDLE hivi)
* \brief Uses this to get an iconview item is hilighted or not.
*
* \returns TRUE when item is hilighted, or FALSE.
*/
MG_EXPORT int iconview_is_item_hilight (HWND hWnd, GHANDLE hivi);
/**
* \fn DWORD iconview_get_item_bitmap (GHANDLE hivi)
* \brief Uses this to get bitmap handle from an iconview item.
*
* \returns the bitmap handle of iconview item.
*/
MG_EXPORT PBITMAP iconview_get_item_bitmap (GHANDLE hivi);
/**
* \fn DWORD iconview_get_item_label (GHANDLE hivi)
* \brief Uses this to get text label from an iconview item.
*
* \returns the text label of iconview item.
*/
MG_EXPORT const char* iconview_get_item_label (GHANDLE hivi);
/**
* \fn DWORD iconview_get_item_adddata (GHANDLE hivi)
* \brief Uses this to get additional data from an iconview item.
*
* \returns the additional data of iconview item.
*/
MG_EXPORT DWORD iconview_get_item_adddata (GHANDLE hivi);
MG_EXPORT GHANDLE iconview_get_item(HWND hwnd, int index);
MG_EXPORT BOOL iconview_set_item_lable(GHANDLE hivi, const char* strLable);
MG_EXPORT PBITMAP iconview_set_item_bitmap(GHANDLE hivi, PBITMAP pbmp);
/**
* \defgroup mgext_ctrl_iconview_styles Styles of iconview control
* @{
*/
/* reserved */
/**
* \def IVS_NOTIFY
* \brief The notify style of iconview control
* \sa SVS_NOTIFY
*/
#define IVS_NOTIFY SVS_NOTIFY
/**
* \def IVS_UPNOTIFY
* \brief The upnotify style of iconview control
* \sa SVS_UPNOTIFY
*/
#define IVS_UPNOTIFY SVS_UPNOTIFY
/**
* \def IVS_AUTOSORT
* \brief The auto sort style of iconview control
* \sa SVS_AUTOSORT
*/
#define IVS_AUTOSORT SVS_AUTOSORT
/**
* \def IVS_LOOP
* \brief The loop style of iconview control
* \sa SVS_LOOP
*/
#define IVS_LOOP SVS_LOOP
/** @} end of mgext_ctrl_iconview_styles */
/**
* \defgroup mgext_ctrl_iconview_msgs Messages of ListView control
* @{
*/
/**
* \def IVM_ADDITEM
* \brief Adds a item to iconview.
*
* \code
* IVM_ADDITEM
* PIVITEMINFO p
*
* p =(LPARAM)lParam;
* \endcode
*
* \param p Pointes to a IVITEMINFO structure that contains the information of
* the new item to be added. nItem member of the IVITEMINFO struct speficied
* the item position in its parent item, beginning with zero.
*
* \return Returns the handle of the new item if successful, or 0 otherwise.
*/
#define IVM_ADDITEM 0xF300
/**
* \def IVM_SETITEMSIZE
* \brief Sets the item width and height of an iconview control
*
* All the items have the same item size. This message should be sent
* before you add items to iconview control.
*
* \code
* IVM_SETITEMSIZE
* int width;
* int height;
*
* wParam = width;
* lParam = height;
* \endcode
*
* \param width Width of an item.
* \param height Height of an item.
*
* \return 0.
*/
#define IVM_SETITEMSIZE 0xF436
/**
* The same common control messages as scrollview control
* \sa SVM_RESETCONTENT
*/
#define IVM_RESETCONTENT SVM_RESETCONTENT
/**
* The same common control messages as scrollview control
* \sa SVM_DELITEM
*/
#define IVM_DELITEM SVM_DELITEM
/**
* The same common control messages as scrollview control
* \sa SVM_SETITEMDRAW
*/
#define IVM_SETITEMDRAW SVM_SETITEMDRAW
/**
* The same common control messages as scrollview control
* \sa SVM_SETCONTWIDTH
*/
#define IVM_SETCONTWIDTH SVM_SETCONTWIDTH
/**
* The same common control messages as scrollview control
* \sa SVM_SETCONTHEIGHT
*/
#define IVM_SETCONTHEIGHT SVM_SETCONTHEIGHT
/**
* The same common control messages as scrollview control
* \sa SVM_SETITEMOPS
*/
#define IVM_SETITEMOPS SVM_SETITEMOPS
/**
* The same common control messages as scrollview control
* \sa SVM_GETMARGINS
*/
#define IVM_GETMARGINS SVM_GETMARGINS
/**
* The same common control messages as scrollview control
* \sa SVM_SETMARGINS
*/
#define IVM_SETMARGINS SVM_SETMARGINS
/**
* The same common control messages as scrollview control
* \sa SVM_GETLEFTMARGIN
*/
#define IVM_GETLEFTMARGIN SVM_GETLEFTMARGIN
/**
* The same common control messages as scrollview control
* \sa SVM_GETTOPMARGIN
*/
#define IVM_GETTOPMARGIN SVM_GETTOPMARGIN
/**
* The same common control messages as scrollview control
* \sa SVM_GETRIGHTMARGIN
*/
#define IVM_GETRIGHTMARGIN SVM_GETRIGHTMARGIN
/**
* The same common control messages as scrollview control
* \sa SVM_GETBOTTOMMARGIN
*/
#define IVM_GETBOTTOMMARGIN SVM_GETBOTTOMMARGIN
/**
* The same common control messages as scrollview control
* \sa SVM_GETVISIBLEWIDTH
*/
#define IVM_GETVISIBLEWIDTH SVM_GETVISIBLEWIDTH
/**
* The same common control messages as scrollview control
* \sa SVM_GETVISIBLEHEIGHT
*/
#define IVM_GETVISIBLEHEIGHT SVM_GETVISIBLEHEIGHT
/**
* The same common control messages as scrollview control
* \sa SVM_GETCONTWIDTH
*/
#define IVM_GETCONTWIDTH SVM_GETCONTWIDTH
/**
* The same common control messages as scrollview control
* \sa SVM_GETCONTHEIGHT
*/
#define IVM_GETCONTHEIGHT SVM_GETCONTHEIGHT
/**
* The same common control messages as scrollview control
* \sa SVM_SETCONTRANGE
*/
#define IVM_SETCONTRANGE SVM_SETCONTRANGE
/**
* The same common control messages as scrollview control
* \sa SVM_GETCONTENTX
*/
#define IVM_GETCONTENTX SVM_GETCONTENTX
/**
* The same common control messages as scrollview control
* \sa SVM_GETCONTENTY
*/
#define IVM_GETCONTENTY SVM_GETCONTENTY
/**
* The same common control messages as scrollview control
* \sa SVM_SETCONTPOS
*/
#define IVM_SETCONTPOS SVM_SETCONTPOS
/**
* The same common control messages as scrollview control
* \sa SVM_GETCURSEL
*/
#define IVM_GETCURSEL SVM_GETCURSEL
/**
* The same common control messages as scrollview control
* \sa SVM_SELECTITEM
*/
#define IVM_SELECTITEM SVM_SELECTITEM
/**
* The same common control messages as scrollview control
* \sa SVM_SHOWITEM
*/
#define IVM_SHOWITEM SVM_SHOWITEM
/**
* The same common control messages as scrollview control
* \sa SVM_CHOOSEITEM
*/
#define IVM_CHOOSEITEM SVM_CHOOSEITEM
/**
* The same common control messages as scrollview control
* \sa SVM_SETCURSEL
*/
#define IVM_SETCURSEL SVM_SETCURSEL
/**
* The same common control messages as scrollview control
* \sa SVM_SETITEMINIT
*/
#define IVM_SETITEMINIT SVM_SETITEMINIT
/**
* The same common control messages as scrollview control
* \sa SVM_SETITEMDESTROY
*/
#define IVM_SETITEMDESTROY SVM_SETITEMDESTROY
/**
* The same common control messages as scrollview control
* \sa SVM_SETITEMCMP
*/
#define IVM_SETITEMCMP SVM_SETITEMCMP
/**
* The same common control messages as scrollview control
* \sa SVM_MAKEPOSVISIBLE
*/
#define IVM_MAKEPOSVISIBLE SVM_MAKEPOSVISIBLE
/**
* The same common control messages as scrollview control
* \sa SVM_GETHSCROLLVAL
*/
#define IVM_GETHSCROLLVAL SVM_GETHSCROLLVAL
/**
* The same common control messages as scrollview control
* \sa SVM_GETVSCROLLVAL
*/
#define IVM_GETVSCROLLVAL SVM_GETVSCROLLVAL
/**
* The same common control messages as scrollview control
* \sa SVM_GETHSCROLLPAGEVAL
*/
#define IVM_GETHSCROLLPAGEVAL SVM_GETHSCROLLPAGEVAL
/**
* The same common control messages as scrollview control
* \sa SVM_GETVSCROLLPAGEVAL
*/
#define IVM_GETVSCROLLPAGEVAL SVM_GETVSCROLLPAGEVAL
/**
* The same common control messages as scrollview control
* \sa SVM_SETSCROLLVAL
*/
#define IVM_SETSCROLLVAL SVM_SETSCROLLVAL
/**
* The same common control messages as scrollview control
* \sa SVM_SETSCROLLPAGEVAL
*/
#define IVM_SETSCROLLPAGEVAL SVM_SETSCROLLPAGEVAL
/**
* The same common control messages as scrollview control
* \sa SVM_SORTITEMS
*/
#define IVM_SORTITEMS SVM_SORTITEMS
/**
* The same common control messages as scrollview control
* \sa SVM_GETITEMCOUNT
*/
#define IVM_GETITEMCOUNT SVM_GETITEMCOUNT
/**
* The same common control messages as scrollview control
* \sa SVM_GETITEMADDDATA
*/
#define IVM_GETITEMADDDATA SVM_GETITEMADDDATA
/**
* The same common control messages as scrollview control
* \sa SVM_SETITEMADDDATA
*/
#define IVM_SETITEMADDDATA SVM_SETITEMADDDATA
/**
* The same common control messages as scrollview control
* \sa SVM_REFRESHITEM
*/
#define IVM_REFRESHITEM SVM_REFRESHITEM
/**
* The same common control messages as scrollview control
* \sa SVM_GETFIRSTVISIBLEITEM
*/
#define IVM_GETFIRSTVISIBLEITEM SVM_GETFIRSTVISIBLEITEM
/** @} end of mgext_ctrl_iconview_msgs */
/**
* \defgroup mgext_ctrl_iconview_ncs Notification code of IconView control
* @{
*/
/**
* The notification messages as scrollview control
* \sa SVN_CLICKED
*/
#define IVN_CLICKED SVN_CLICKED
/**
* The notification messages as scrollview control
* \sa SVN_SELCHANGED
*/
#define IVN_SELCHANGED SVN_SELCHANGED
/** @} end of mgext_ctrl_iconview_ncs */
/** @} end of mgext_ctrl_iconview */
/** @} end of controls */
#ifdef __cplusplus
}
#endif
#endif /* EXT_ICONVIEW_H */