1119 lines
24 KiB
C
Executable File
1119 lines
24 KiB
C
Executable File
/**
|
|
* \file scrollview.h
|
|
* \author Wei Yongming <vincent@minigui.org>
|
|
* \date 2001/12/29
|
|
*
|
|
\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: scrollview.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 _MGUI_CTRL_SCROLLVIEW_H
|
|
#define _MGUI_CTRL_SCROLLVIEW_H
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif /* __cplusplus */
|
|
|
|
/**
|
|
* \addtogroup controls
|
|
* @{
|
|
*/
|
|
|
|
/**
|
|
* \defgroup ctrl_scrollview ScrollView control
|
|
* @{
|
|
*
|
|
* Scrollview control is a scrollable window, which has a visible area and
|
|
* normally a larger content area, user can browse content area using scrollbar.
|
|
* Contents of the content area is totally user-defined, you can add controls in it,
|
|
* add customed listed items, or anything you want.
|
|
*
|
|
* In fact, you can build a control needing scrolled window support on scrollview.
|
|
*/
|
|
|
|
/**
|
|
* \def CTRL_SCROLLVIEW
|
|
* \brief The class name of scrollview control, uses this name to create a scrollable
|
|
* window that consists of items.
|
|
*
|
|
*/
|
|
#define CTRL_SCROLLVIEW ("scrollview")
|
|
|
|
/**
|
|
* \def CTRL_SCROLLWND
|
|
* \brief The class name of scrollwnd control, uses this name to create a scrollable
|
|
* window to which you can add controls.
|
|
*
|
|
*/
|
|
#define CTRL_SCROLLWND ("scrollwnd")
|
|
|
|
/** Default container window procedure
|
|
* \sa DefaultDialogProc
|
|
*/
|
|
MG_EXPORT LRESULT GUIAPI DefaultContainerProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
|
|
|
|
/** Scrollview item object, use this handle to access a scrollview item */
|
|
typedef GHANDLE HSVITEM;
|
|
|
|
/**
|
|
* Structure which defines a container.
|
|
*/
|
|
typedef struct _CONTAINERINFO
|
|
{
|
|
#if 0
|
|
DWORD dwStyle; /** style of the container */
|
|
DWORD dwExStyle; /** extended style of the container */
|
|
int x, y, w, h; /** position and size of the container */
|
|
#endif
|
|
/** User-defined window procedure of the container */
|
|
WNDPROC user_proc;
|
|
/** Number of controls */
|
|
int controlnr;
|
|
/** Pointer to control array */
|
|
PCTRLDATA controls;
|
|
/** Additional data */
|
|
DWORD dwAddData;
|
|
} CONTAINERINFO;
|
|
/** Data type of pointer to a CONTAINERINFO */
|
|
typedef CONTAINERINFO* PCONTAINERINFO;
|
|
|
|
/**
|
|
* \fn DWORD mglist_get_item_adddata (GHANDLE hi)
|
|
* \brief Use this to get additional data from a list item in a control, such as
|
|
* scrollview and iconview.
|
|
*/
|
|
MG_EXPORT DWORD mglist_get_item_adddata (GHANDLE hi);
|
|
|
|
/**
|
|
* \fn DWORD scrollview_get_item_adddata (HSVITEM hsvi)
|
|
* \brief Use this to get additional data from scrollview item
|
|
*/
|
|
MG_EXPORT DWORD scrollview_get_item_adddata (HSVITEM hsvi);
|
|
|
|
/**
|
|
* \fn int scrollview_get_item_index (HWND hWnd, HSVITEM hsvi);
|
|
* \brief To get item index
|
|
*/
|
|
MG_EXPORT int scrollview_get_item_index (HWND hWnd, HSVITEM hsvi);
|
|
|
|
/**
|
|
* \fn int scrollview_is_item_hilight (HWND hWnd, HSVITEM hsvi)
|
|
* \brief To decide whether an item is the current hilighted item
|
|
*/
|
|
MG_EXPORT BOOL scrollview_is_item_hilight (HWND hWnd, HSVITEM hsvi);
|
|
|
|
/**
|
|
* \fn int scrollview_is_item_selected (HSVITEM hsvi)
|
|
* \brief To decide whether an item is a selected
|
|
*/
|
|
MG_EXPORT BOOL scrollview_is_item_selected (HSVITEM hsvi);
|
|
|
|
/**
|
|
* \fn int scrollview_set_item_height (HWND hWnd, HSVITEM hsvi, int height)
|
|
* \brief Sets the height of an item
|
|
*/
|
|
MG_EXPORT int scrollview_set_item_height (HWND hWnd, HSVITEM hsvi, int height);
|
|
|
|
/**
|
|
* \var typedef void (* SVITEM_INITFUNC)(HWND hWnd, HSVITEM hsvi)
|
|
* \brief Type of the scrollview item initialization callback procedure.
|
|
*
|
|
* \param hWnd Handle of the scrollview control .
|
|
* \param hsvi Scrollview item handle.
|
|
*
|
|
* \return Zero on success; otherwise -1.
|
|
*/
|
|
typedef int (*SVITEM_INITFUNC) (HWND hWnd, HSVITEM hsvi);
|
|
|
|
/**
|
|
* \var typedef void (* SVITEM_DESTROYFUNC)(HWND hWnd, HSVITEM hsvi)
|
|
* \brief Type of the scrollview item destroy callback procedure.
|
|
*
|
|
* \param hWnd Handle of the scrollview control .
|
|
* \param hsvi Scrollview item handle.
|
|
*/
|
|
typedef void (*SVITEM_DESTROYFUNC) (HWND hWnd, HSVITEM hsvi);
|
|
|
|
/**
|
|
* \var typedef void (*SVITEM_DRAWFUNC)(HWND hWnd, HSVITEM hsvi, HDC hdc, RECT *rcDraw)
|
|
* \brief Type of the scrollview item drawing callback procedure.
|
|
*
|
|
* \param hWnd Handle of the scrollview control.
|
|
* \param hsvi Scrollview item handle.
|
|
* \param hdc Drawing device context.
|
|
* \param rcDraw Drawing rect area.
|
|
*/
|
|
typedef void (*SVITEM_DRAWFUNC) (HWND hWnd, HSVITEM hsvi, HDC hdc, RECT *rcDraw);
|
|
|
|
/**
|
|
* \var typedef int (*SVITEM_CMP) (HSVITEM hsvi1, HSVITEM hsvi2)
|
|
* \brief Type of the scrollview item compare function
|
|
*/
|
|
typedef int (*SVITEM_CMP) (HSVITEM hsvi1, HSVITEM hsvi2);
|
|
|
|
/** Structure of item operations */
|
|
typedef struct _svitem_operations
|
|
{
|
|
/** Called when an scrollview item is created */
|
|
SVITEM_INITFUNC initItem;
|
|
/** Called when an item is destroied */
|
|
SVITEM_DESTROYFUNC destroyItem;
|
|
/** Call this to draw an item */
|
|
SVITEM_DRAWFUNC drawItem;
|
|
} SVITEMOPS;
|
|
/** Data type of pointer to a SVITEMOPS */
|
|
typedef SVITEMOPS* PSVITEMOPS;
|
|
|
|
/** Structure of the scrollview item info */
|
|
typedef struct _SCROLLVIEWITEMINFO
|
|
{
|
|
/** Index of item */
|
|
int nItem;
|
|
/** Height of an item */
|
|
int nItemHeight;
|
|
/** Item additional data */
|
|
DWORD addData;
|
|
} SVITEMINFO;
|
|
/** Data type of pointer to a SVITEMINFO */
|
|
typedef SVITEMINFO* PSVITEMINFO;
|
|
|
|
/**
|
|
* \defgroup ctrl_scrollview_styles Styles of scrollview control
|
|
* @{
|
|
*/
|
|
|
|
/**
|
|
* \def SVS_UPNOTIFY
|
|
* \brief Sends the notification messages to parent window when the keys is up.
|
|
*/
|
|
#define SVS_UPNOTIFY 0x0001L
|
|
|
|
/**
|
|
* \def SVS_NOTIFY
|
|
* \brief reserved.
|
|
*/
|
|
#define SVS_NOTIFY 0x0002L
|
|
|
|
/**
|
|
* \def SVS_AUTOSORT
|
|
* \brief Automatically sorts strings entered in the scrollview control.
|
|
*/
|
|
#define SVS_AUTOSORT 0x0004L
|
|
|
|
/**
|
|
* \def SVS_LOOP
|
|
* \brief Loops the item automatically when user select item with down or up key.
|
|
*/
|
|
#define SVS_LOOP 0x0008L
|
|
|
|
/** @} end of ctrl_scrollview_styles */
|
|
|
|
/**
|
|
* \defgroup ctrl_scrollview_msgs Messages of scrollview control
|
|
* @{
|
|
*/
|
|
|
|
/**
|
|
* \def SVM_ADDITEM
|
|
* \brief Adds an item in the scrollview.
|
|
*
|
|
* \code
|
|
* SVM_ADDITEM
|
|
* SVITEMINFO svii;
|
|
* HSVITEM *phsvi;
|
|
*
|
|
* wParam = (WPARAM)phsvi;
|
|
* lParam = (LPARAM)&svii;
|
|
* \endcode
|
|
*
|
|
* \param &svii Pointer to a scrollview item information structure.
|
|
* \param phsvi Pointer to a HSVITEM var, used to store the item handle
|
|
* returned.
|
|
*
|
|
* \return Index of the scrollview item on success; otherwise -1.
|
|
*/
|
|
#define SVM_ADDITEM 0xF300
|
|
|
|
/**
|
|
* \def SVM_DELITEM
|
|
* \brief Deletes an item from the scrollview.
|
|
*
|
|
* \code
|
|
* SVM_DELITEM
|
|
* int nItem;
|
|
* HSVITEM hsvi;
|
|
*
|
|
* wParam = (WPARAM)nItem;
|
|
* lParam = (LPARAM)hsvi;
|
|
* \endcode
|
|
*
|
|
* \param nItem Scrollview item index to delete.
|
|
* If hsvi is not zero, nItem will be ignored.
|
|
* \param hsvi Scrollview item handle to delete.
|
|
*
|
|
* \return Zero on success; otherwise -1.
|
|
*/
|
|
#define SVM_DELITEM 0xF301
|
|
|
|
/**
|
|
* \def SVM_SETITEMDRAW
|
|
* \brief Sets the drawing operation of an item.
|
|
*
|
|
* Scrollview item drawing function will be called when doing with MSG_PAINT message,
|
|
* scrollview window should define this function if it want to draw an customed item.
|
|
*
|
|
* \code
|
|
* SVM_SETITEMDRAW
|
|
* SVITEM_DRAWFUNC pfn;
|
|
*
|
|
* wParam = 0;
|
|
* lParam = (LPARAM)pfn;
|
|
* \endcode
|
|
*
|
|
* \param pfn Scrollview item drawing function.
|
|
*
|
|
* \return Old drawing function pointer; otherwise 0.
|
|
*/
|
|
#define SVM_SETITEMDRAW 0xF302
|
|
|
|
/**
|
|
* \def SVM_ADDCTRLS
|
|
* \brief Adds controls to the scrollview.
|
|
*
|
|
* \code
|
|
* SVM_ADDCTRLS
|
|
* int itemNr;
|
|
* PCTRLDATA pctrls;
|
|
*
|
|
* wParam = (WPARAM)itemNr;
|
|
* lParam = (LPARAM)pctrls;
|
|
* \endcode
|
|
*
|
|
* \param ctrlNr Control number in the pctrls control array.
|
|
* \param pctrls Points to a CTRLDATA array that defines controls.
|
|
*
|
|
* \return Zero on success; otherwise -1.
|
|
*/
|
|
#define SVM_ADDCTRLS 0xF303
|
|
|
|
/**
|
|
* \def SVM_SETCONTWIDTH
|
|
* \brief Sets the scrollview content area (scrollable area) width.
|
|
*
|
|
* Scrollable area of a scrolled window is always larger than the visible area.
|
|
*
|
|
* \code
|
|
* SVM_SETCONTWIDTH
|
|
* int cont_w;
|
|
*
|
|
* wParam = (WPARAM)cont_w;
|
|
* lParam = 0;
|
|
* \endcode
|
|
*
|
|
* \param cont_w Scrollview content width.
|
|
*
|
|
* \return Zero on success; otherwise -1.
|
|
*/
|
|
#define SVM_SETCONTWIDTH 0xF306
|
|
|
|
/**
|
|
* \def SVM_SETCONTHEIGHT
|
|
* \brief Sets the scrollview content area (scrollable area) height.
|
|
*
|
|
* Scrollable area of a scrolled window is always larger than the visible area.
|
|
*
|
|
* \code
|
|
* SVM_SETCONTHEIGHT
|
|
* int cont_h;
|
|
*
|
|
* wParam = (WPARAM)cont_h;
|
|
* lParam = 0;
|
|
* \endcode
|
|
*
|
|
* \param cont_h Scrollview content height.
|
|
*
|
|
* \return Zero on success; otherwise -1.
|
|
*/
|
|
#define SVM_SETCONTHEIGHT 0xF307
|
|
|
|
/**
|
|
* \def SVM_GETCTRL
|
|
* \brief Gets the control handle in the scrollview window by control id.
|
|
*
|
|
* \code
|
|
* SVM_GETCTRL
|
|
* int id;
|
|
*
|
|
* wParam = (WPARAM)id;
|
|
* lParam = 0;
|
|
* \endcode
|
|
*
|
|
* \param id Control id.
|
|
*
|
|
* \return Control window handle on success; otherwise 0.
|
|
*/
|
|
#define SVM_GETCTRL 0xF308
|
|
|
|
/**
|
|
* \def SVM_RESETCONTENT
|
|
* \brief Clears all the controls and the items added to the scrollview window.
|
|
*
|
|
* \code
|
|
* SVM_RESETCONTENT
|
|
*
|
|
* wParam = 0;
|
|
* lParam = 0;
|
|
* \endcode
|
|
*
|
|
* \return Zero on success; otherwise -1.
|
|
*/
|
|
#define SVM_RESETCONTENT 0xF309
|
|
|
|
/**
|
|
* \def SVM_SETITEMOPS
|
|
* \brief Sets the item operations of the items in the scrollview.
|
|
*
|
|
* Normally item operations should be set before adding items.
|
|
*
|
|
* \code
|
|
* SVM_SETITEMOPS
|
|
* SVITEMOPS *iop;
|
|
*
|
|
* wParam = 0;
|
|
* lParam = (LPARAM)iop;
|
|
* \endcode
|
|
*
|
|
* \param iop Points to a SVITEMOPS structure that defines item operations
|
|
*
|
|
* \return Zero on success; otherwise -1.
|
|
*/
|
|
#define SVM_SETITEMOPS 0xF30a
|
|
|
|
/**
|
|
* \def SVM_GETMARGINS
|
|
* \brief Gets the margin values of the scrollview.
|
|
*
|
|
* Application should use a RECT structure to get left, top, right, and bottom margins.
|
|
*
|
|
* \code
|
|
* SVM_GETMARGINS
|
|
* RECT rcMargin;
|
|
*
|
|
* wParam = 0;
|
|
* lParam = (LPARAM)&rcMargin;
|
|
* \endcode
|
|
*
|
|
* \param rcMargin A RECT for storing 4 margin values.
|
|
*
|
|
* \return 0 on success.
|
|
*/
|
|
#define SVM_GETMARGINS 0xF30b
|
|
|
|
/**
|
|
* \def SVM_SETMARGINS
|
|
* \brief Sets the margin values of the scrollview.
|
|
*
|
|
* Application should use a RECT structure to give left, top, right, and bottom margins.
|
|
* If you want to change a margin value, give a value large than zero, or else -1.
|
|
*
|
|
* \code
|
|
* SVM_SETMARGINS
|
|
* RECT *rcMargin;
|
|
*
|
|
* wParam = 0;
|
|
* lParam = (LPARAM)rcMargin;
|
|
* \endcode
|
|
*
|
|
* \param rcMargin A RECT Containing 4 margin values.
|
|
*
|
|
* \return 0 on success.
|
|
*/
|
|
#define SVM_SETMARGINS 0xF311
|
|
|
|
/**
|
|
* \def SVM_GETLEFTMARGIN
|
|
* \brief Gets the left margin value of the scrollview.
|
|
*
|
|
* \code
|
|
* SVM_GETLEFTMARGIN
|
|
*
|
|
* wParam = 0;
|
|
* lParam = 0;
|
|
* \endcode
|
|
*
|
|
* \return Left margin value on success, otherwise -1.
|
|
*/
|
|
#define SVM_GETLEFTMARGIN 0xF312
|
|
|
|
/**
|
|
* \def SVM_GETTOPMARGIN
|
|
* \brief Gets the top margin value of the scrollview.
|
|
*
|
|
* \code
|
|
* SVM_GETTOPMARGIN
|
|
*
|
|
* wParam = 0;
|
|
* lParam = 0;
|
|
* \endcode
|
|
*
|
|
* \return Top margin value on success, otherwise -1.
|
|
*/
|
|
#define SVM_GETTOPMARGIN 0xF313
|
|
|
|
/**
|
|
* \def SVM_GETRIGHTMARGIN
|
|
* \brief Gets the right margin value of the scrollview.
|
|
*
|
|
* \code
|
|
* SVM_GETRIGHTMARGIN
|
|
*
|
|
* wParam = 0;
|
|
* lParam = 0;
|
|
* \endcode
|
|
*
|
|
* \return Right margin value on success, otherwise -1.
|
|
*/
|
|
#define SVM_GETRIGHTMARGIN 0xF314
|
|
|
|
/**
|
|
* \def SVM_GETBOTTOMMARGIN
|
|
* \brief Gets the bottom margin value of the scrollview.
|
|
*
|
|
* \code
|
|
* SVM_GETBOTTOMMARGIN
|
|
*
|
|
* wParam = 0;
|
|
* lParam = 0;
|
|
* \endcode
|
|
*
|
|
* \return Bottom margin value on success, otherwise -1.
|
|
*/
|
|
#define SVM_GETBOTTOMMARGIN 0xF315
|
|
|
|
/**
|
|
* \def SVM_GETVISIBLEWIDTH
|
|
* \brief Gets the width of the visible content area.
|
|
*
|
|
* \code
|
|
* SVM_GETVISIBLEWIDTH
|
|
*
|
|
* wParam = 0;
|
|
* lParam = 0;
|
|
* \endcode
|
|
*
|
|
* \return Width of the visible content area on success, otherwise -1.
|
|
*/
|
|
#define SVM_GETVISIBLEWIDTH 0xF316
|
|
|
|
/**
|
|
* \def SVM_GETVISIBLEHEIGHT
|
|
* \brief Gets the height of the visible content area.
|
|
*
|
|
* \code
|
|
* SVM_GETVISIBLEHEIGHT
|
|
*
|
|
* wParam = 0;
|
|
* lParam = 0;
|
|
* \endcode
|
|
*
|
|
* \return Height of the visible content area on success, otherwise -1.
|
|
*/
|
|
#define SVM_GETVISIBLEHEIGHT 0xF317
|
|
|
|
/**
|
|
* \def SVM_GETCONTWIDTH
|
|
* \brief Gets the width of the content area.
|
|
*
|
|
* \code
|
|
* SVM_GETCONTWIDTH
|
|
*
|
|
* wParam = 0;
|
|
* lParam = 0;
|
|
* \endcode
|
|
*
|
|
* \return Width of the content area on success, otherwise -1.
|
|
*/
|
|
#define SVM_GETCONTWIDTH 0xF318
|
|
|
|
/**
|
|
* \def SVM_GETCONTHEIGHT
|
|
* \brief Gets the height of the content area.
|
|
*
|
|
* \code
|
|
* SVM_GETCONTHEIGHT
|
|
*
|
|
* wParam = 0;
|
|
* lParam = 0;
|
|
* \endcode
|
|
*
|
|
* \return Height of the content area on success, otherwise -1.
|
|
*/
|
|
#define SVM_GETCONTHEIGHT 0xF319
|
|
|
|
/**
|
|
* \def SVM_SETCONTRANGE
|
|
* \brief Sets the width and height of the content area.
|
|
*
|
|
* If you want to change width and height, give a value large than zero.
|
|
* If you give -1, this value will remain untouched.
|
|
*
|
|
* \code
|
|
* SVM_SETCONTRANGE
|
|
* int cont_w, cont_h;
|
|
*
|
|
* wParam = (WPARAM)cont_w;
|
|
* lParam = (LPARAM)cont_h;
|
|
* \endcode
|
|
*
|
|
* \param cont_w Width of the content area.
|
|
* \param cont_h Height of the content area.
|
|
*
|
|
* \return 0 on success, otherwise -1.
|
|
*/
|
|
#define SVM_SETCONTRANGE 0xF31a
|
|
|
|
/**
|
|
* \def SVM_GETCONTENTX
|
|
* \brief Gets the content x offset in the viewport.
|
|
*
|
|
* \code
|
|
* SVM_GETCONTENTX
|
|
*
|
|
* wParam = 0;
|
|
* lParam = 0;
|
|
* \endcode
|
|
*
|
|
* \return Content x coordinate in the viewport on success, otherwise -1.
|
|
*/
|
|
#define SVM_GETCONTENTX 0xF31b
|
|
|
|
/**
|
|
* \def SVM_GETCONTENTY
|
|
* \brief Gets the content y offset in the viewport.
|
|
*
|
|
* \code
|
|
* SVM_GETCONTENTY
|
|
*
|
|
* wParam = 0;
|
|
* lParam = 0;
|
|
* \endcode
|
|
*
|
|
* \return Content y coordinate in the viewport on success, otherwise -1.
|
|
*/
|
|
#define SVM_GETCONTENTY 0xF31c
|
|
|
|
/**
|
|
* \def SVM_SETCONTPOS
|
|
* \brief Sets the content offset position in the viewport.
|
|
*
|
|
* \code
|
|
* SVM_SETCONTPOS
|
|
* int cont_x, cont_y;
|
|
*
|
|
* wParam = (WPARAM)cont_x;
|
|
* lParam = (LPARAM)cont_y;
|
|
* \endcode
|
|
*
|
|
* \param cont_x New content x offset
|
|
* \param cont_y New content y offset
|
|
*
|
|
* \return 0 on success, otherwise -1.
|
|
*/
|
|
#define SVM_SETCONTPOS 0xF31d
|
|
|
|
/**
|
|
* \def SVM_GETCURSEL
|
|
* \brief Gets the index of the current hilighted scrollview item.
|
|
*
|
|
* An application sends an this message to a scrollview window to get the index of
|
|
* the currently selected item, if there is one, in a single-selection scrollview.
|
|
* For multiple-selection case, appliction send this message to a scrollview
|
|
* to get the index of the current highlighted item.
|
|
*
|
|
* \code
|
|
* SVM_GETCURSEL
|
|
*
|
|
* wParam = 0;
|
|
* lParam = 0;
|
|
* \endcode
|
|
*
|
|
* \return Index of current hilighted item.
|
|
*/
|
|
#define SVM_GETCURSEL 0xF31e
|
|
|
|
/**
|
|
* \def SVM_SELECTITEM
|
|
* \brief Selects or unselects an item in the scrollview item.
|
|
*
|
|
* \code
|
|
* SVM_SELECTITEM
|
|
* int nItem;
|
|
*
|
|
* wParam = (WPARAM)nItem;
|
|
* lParam = (LPARAM)bSel;
|
|
* \endcode
|
|
*
|
|
* \param nItem Index of the item to select or unselect.
|
|
* \param bSel To select or unselect.
|
|
*
|
|
* \return 0 on success, otherwise -1.
|
|
*/
|
|
#define SVM_SELECTITEM 0xF31f
|
|
|
|
/**
|
|
* \def SVM_SHOWITEM
|
|
* \brief Makes an item visible in the scrollview item.
|
|
*
|
|
* \code
|
|
* SVM_SHOWITEM
|
|
* int nItem;
|
|
* HSVITEM hsvi;
|
|
*
|
|
* wParam = (WPARAM)nItem;
|
|
* lParam = (LPARAM)hsvi;
|
|
* \endcode
|
|
*
|
|
* \param nItem Item index. Be useful when hsvi is zero.
|
|
* \param hsvi Item handle.
|
|
*
|
|
* \return 0 on success, otherwise -1.
|
|
*/
|
|
#define SVM_SHOWITEM 0xF320
|
|
|
|
/**
|
|
* \def SVM_CHOOSEITEM
|
|
* \brief Makes an item selected and visible in the scrollview item.
|
|
*
|
|
* \code
|
|
* SVM_CHOOSEITEM
|
|
* int nItem;
|
|
* HSVITEM hsvi;
|
|
*
|
|
* wParam = (WPARAM)nItem;
|
|
* lParam = (LPARAM)hsvi;
|
|
* \endcode
|
|
*
|
|
* \param nItem Item index. Be useful when hsvi is zero.
|
|
* \param hsvi Item handle.
|
|
*
|
|
* \return 0 on success, otherwise -1.
|
|
*/
|
|
#define SVM_CHOOSEITEM 0xF321
|
|
|
|
/**
|
|
* \def SVM_SETCURSEL
|
|
* \brief Makes an item as the current hilighted item in the scrollview item.
|
|
*
|
|
* \code
|
|
* SVM_SETCURSEL
|
|
* int nItem;
|
|
* BOOL bVisible;
|
|
*
|
|
* wParam = (WPARAM)nItem;
|
|
* lParam = (LPARAM)bVisible;
|
|
* \endcode
|
|
*
|
|
* \param nitem Item index.
|
|
* \param bVisible If bVisible is TRUE, this item wille be made visible.
|
|
*
|
|
* \return old hilighted item index on success, otherwise -1.
|
|
*/
|
|
#define SVM_SETCURSEL 0xF322
|
|
|
|
/**
|
|
* \def SVM_SETITEMINIT
|
|
* \brief Sets the init operation of the items in the scrollview.
|
|
*
|
|
* Normally item operations should be set before adding items.
|
|
* The initialization callback function will be called when adding an item.
|
|
*
|
|
* \code
|
|
* SVM_SETITEMINIT
|
|
* SVITEM_INITFUNC *pfn;
|
|
*
|
|
* wParam = 0;
|
|
* lParam = (LPARAM)pfn;
|
|
* \endcode
|
|
*
|
|
* \param pfn Item init operation function
|
|
*
|
|
* \return Old function on success; otherwise NULL.
|
|
*/
|
|
#define SVM_SETITEMINIT 0xF323
|
|
|
|
/**
|
|
* \def SVM_SETITEMDESTROY
|
|
* \brief Sets the destroy operation of the items in the scrollview.
|
|
*
|
|
* Normally item operations should be set before adding items.
|
|
* The destroy callback function will be called when deleting an item
|
|
*
|
|
* \code
|
|
* SVM_SETITEMDESTROY
|
|
* SVITEM_DESTROYFUNC *pfn;
|
|
*
|
|
* wParam = 0;
|
|
* lParam = (LPARAM)pfn;
|
|
* \endcode
|
|
*
|
|
* \param pfn Item destroy operation function
|
|
*
|
|
* \return Old function on success; otherwise NULL.
|
|
*/
|
|
#define SVM_SETITEMDESTROY 0xF324
|
|
|
|
/**
|
|
* \def SVM_SETITEMCMP
|
|
* \brief Sets the item compare function.
|
|
*
|
|
* \code
|
|
* SVM_SETITEMCMP
|
|
* SVITEM_CMP *pfn;
|
|
*
|
|
* wParam = 0;
|
|
* lParam = (LPARAM)pfn;
|
|
* \endcode
|
|
*
|
|
* \param pfn New item compare function
|
|
*
|
|
* \return Old function on success; otherwise NULL.
|
|
*/
|
|
#define SVM_SETITEMCMP 0xF327
|
|
|
|
/**
|
|
* \def SVM_MAKEPOSVISIBLE
|
|
* \brief Makes a position in the content area visible.
|
|
*
|
|
* \code
|
|
* SVM_MAKEPOSVISIBLE
|
|
* int pos_x, pos_y;
|
|
*
|
|
* wParam = (WPARAM)pos_x;
|
|
* lParam = (LPARAM)pos_y;
|
|
* \endcode
|
|
*
|
|
* \param pos_x X coordinate of the position to be made visible
|
|
* \param pos_y Y coordinate of the position to be made visible
|
|
*/
|
|
#define SVM_MAKEPOSVISIBLE 0xF328
|
|
|
|
/**
|
|
* \def SVM_SETCONTAINERPROC
|
|
* \brief Sets the window procedure of the container window in the scrollview.
|
|
*
|
|
* \code
|
|
* SVM_SETCONTAINERPROC
|
|
* WNDPROC pfn;
|
|
*
|
|
* wParam = 0;
|
|
* lParam = (LPARAM)pfn;
|
|
* \endcode
|
|
*
|
|
* \param pfn New container procedure function.
|
|
*
|
|
* \return Old container procedure.
|
|
*/
|
|
#define SVM_SETCONTAINERPROC 0xF329
|
|
|
|
/**
|
|
* \def SVM_GETFOCUSCHILD
|
|
* \brief Gets the focus control in the scrollview.
|
|
*
|
|
* \code
|
|
* SVM_GETFOCUSCHILD
|
|
*
|
|
* wParam = 0;
|
|
* lParam = 0;
|
|
* \endcode
|
|
*
|
|
* \return Handle of the focus control.
|
|
*/
|
|
#define SVM_GETFOCUSCHILD 0xF32a
|
|
|
|
/**
|
|
* \def SVM_GETHSCROLLVAL
|
|
* \brief Gets the horizontal scroll value.
|
|
*
|
|
* \code
|
|
* SVM_GETHSCROLLVAL
|
|
*
|
|
* wParam = 0;
|
|
* lParam = 0;
|
|
* \endcode
|
|
*
|
|
* \return Current horizontal scroll value.
|
|
*/
|
|
#define SVM_GETHSCROLLVAL 0xF32b
|
|
|
|
/**
|
|
* \def SVM_GETVSCROLLVAL
|
|
* \brief Gets the vertical scroll value.
|
|
*
|
|
* \code
|
|
* SVM_GETVSCROLLVAL
|
|
*
|
|
* wParam = 0;
|
|
* lParam = 0;
|
|
* \endcode
|
|
*
|
|
* \return Current vertical scroll value.
|
|
*/
|
|
#define SVM_GETVSCROLLVAL 0xF32c
|
|
|
|
/**
|
|
* \def SVM_GETHSCROLLPAGEVAL
|
|
* \brief Gets the horizontal page scroll value.
|
|
*
|
|
* \code
|
|
* SVM_GETHSCROLLPAGEVAL
|
|
*
|
|
* wParam = 0;
|
|
* lParam = 0;
|
|
* \endcode
|
|
*
|
|
* \return Current horizontal page scroll value.
|
|
*/
|
|
#define SVM_GETHSCROLLPAGEVAL 0xF32d
|
|
|
|
/**
|
|
* \def SVM_GETVSCROLLPAGEVAL
|
|
* \brief Gets the vertical page scroll value.
|
|
*
|
|
* \code
|
|
* SVM_GETVSCROLLPAGEVAL
|
|
*
|
|
* wParam = 0;
|
|
* lParam = 0;
|
|
* \endcode
|
|
*
|
|
* \return Current vertical page scroll value.
|
|
*/
|
|
#define SVM_GETVSCROLLPAGEVAL 0xF32e
|
|
|
|
/**
|
|
* \def SVM_SETSCROLLVAL
|
|
* \brief Sets the horizontal and vertical scroll value.
|
|
*
|
|
* \code
|
|
* SVM_SETSCROLLVAL
|
|
* int hval, vval;
|
|
*
|
|
* wParam = (WPARAM)hval;
|
|
* lParam = (LPARAM)vval;
|
|
* \endcode
|
|
*
|
|
* \param hval New horizontal scroll value.
|
|
* \param vval New vertical scroll value.
|
|
*
|
|
* \return Zero.
|
|
*/
|
|
#define SVM_SETSCROLLVAL 0xF32f
|
|
|
|
/**
|
|
* \def SVM_SETSCROLLPAGEVAL
|
|
* \brief Sets the horizontal and vertical page value.
|
|
*
|
|
* \code
|
|
* SVM_SETSCROLLPAGEVAL
|
|
* int hval, vval;
|
|
*
|
|
* wParam = (WPARAM)hval;
|
|
* lParam = (WPARAM)vval;
|
|
* \endcode
|
|
*
|
|
* \param hval New horizontal page value.
|
|
* \param vval New vertical page value.
|
|
*
|
|
* \return Zero.
|
|
*/
|
|
#define SVM_SETSCROLLPAGEVAL 0xF330
|
|
|
|
/**
|
|
* \def SVM_SORTITEMS
|
|
* \brief Sorts the items according to a specified comparision function.
|
|
*
|
|
* \code
|
|
* SVM_SORTITEMS
|
|
* SVITEM_CMP pfn;
|
|
*
|
|
* lParam = pfn;
|
|
* \endcode
|
|
*
|
|
* \param pfn Comparision function.
|
|
*
|
|
* \return Zero.
|
|
*/
|
|
#define SVM_SORTITEMS 0xF331
|
|
|
|
/**
|
|
* \def SVM_GETITEMCOUNT
|
|
* \brief Gets the total number of the items.
|
|
*
|
|
* \return Number of the items.
|
|
*/
|
|
#define SVM_GETITEMCOUNT 0xF332
|
|
|
|
/**
|
|
* \def SVM_GETITEMADDDATA
|
|
* \brief Gets the additional data of the item
|
|
*
|
|
* \code
|
|
* SVM_GETITEMADDDATA
|
|
* int nItem;
|
|
* HSVITEM hsvi;
|
|
*
|
|
* wParam = (WPARAM)nItem;
|
|
* lParam = (LPARAM)hsvi;
|
|
* \endcode
|
|
*
|
|
* \param nItem Scrollview item index to access.
|
|
* If hsvi is not zero, nItem will be ignored.
|
|
* \param hsvi Scrollview item handle to access.
|
|
*
|
|
* \return Item additional data.
|
|
*/
|
|
#define SVM_GETITEMADDDATA 0xF333
|
|
|
|
/**
|
|
* \def SVM_SETITEMADDDATA
|
|
* \brief Sets the additional data of the item
|
|
*
|
|
* \code
|
|
* SVM_SETITEMADDDATA
|
|
* int nitem;
|
|
* int addData;
|
|
*
|
|
* wParam = (WPARAM)nitem;
|
|
* lParam = (LPARAM)addData;
|
|
* \endcode
|
|
*
|
|
* \param nitem Item index.
|
|
* \param addData Additional data
|
|
*
|
|
* \return Old item additional data.
|
|
*/
|
|
#define SVM_SETITEMADDDATA 0xF334
|
|
|
|
/**
|
|
* \def SVM_REFRESHITEM
|
|
* \brief Refresh the item
|
|
*
|
|
* \code
|
|
* SVM_REFRESHITEM
|
|
* int nitem;
|
|
* HSVITEM hsvi;
|
|
*
|
|
* wParam = (WPARAM)nitem;
|
|
* lParam = (LPARAM)hsvi;
|
|
* \endcode
|
|
*
|
|
* \param nitem Item index. If hsvi is not zero, nItem will be ignored.
|
|
* \param hsvi Item handle.
|
|
*
|
|
* \return Returns 0.
|
|
*/
|
|
#define SVM_REFRESHITEM 0xF335
|
|
|
|
/**
|
|
* \def SVM_SETITEMHEIGHT
|
|
* \brief Sets the height of an item
|
|
*
|
|
* \code
|
|
* SVM_SETITEMHEIGHT
|
|
* int nitem;
|
|
* int height;
|
|
*
|
|
* wParam = (WPARAM)nitem;
|
|
* lParam = (LPARAM)height;
|
|
* \endcode
|
|
*
|
|
* \param nitem Item index.
|
|
* \param height New height of the item
|
|
*
|
|
* \return Old item height.
|
|
*/
|
|
#define SVM_SETITEMHEIGHT 0xF336
|
|
|
|
/**
|
|
* \def SVM_GETFIRSTVISIBLEITEM
|
|
* \brief Gets the index of the first visible item
|
|
*
|
|
* \code
|
|
* SVM_GETFIRSTVISIBLEITEM
|
|
* \endcode
|
|
*
|
|
* \return Item index.
|
|
*/
|
|
#define SVM_GETFIRSTVISIBLEITEM 0xF337
|
|
|
|
|
|
/** @} end of ctrl_scrollview_msgs */
|
|
|
|
/**
|
|
* \defgroup ctrl_scrollview_ncs Notification codes of scrollview control
|
|
* @{
|
|
*/
|
|
|
|
/** Indicates clicking on the item */
|
|
#define SVN_CLICKED 1
|
|
|
|
/** Indicates the hilighted item changed */
|
|
#define SVN_SELCHANGED 2
|
|
|
|
/** Indicates the hilighted item changing */
|
|
#define SVN_SELCHANGING 4
|
|
|
|
/** @} end of ctrl_scrollview_ncs */
|
|
|
|
/** @} end of ctrl_scrollview */
|
|
|
|
/** @} end of controls */
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif /* __cplusplus */
|
|
|
|
#endif /* _MGUI_CTRL_SCROLLVIEW_H */
|
|
|