70 lines
3.7 KiB
C
Executable File
70 lines
3.7 KiB
C
Executable File
/** \file
|
|
* \brief iupmatrix control
|
|
* scrolling.
|
|
*
|
|
* See Copyright Notice in "iup.h"
|
|
*/
|
|
|
|
#ifndef __IUPMAT_SCROLL_H
|
|
#define __IUPMAT_SCROLL_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
int iupMatrixScroll_CB(Ihandle* ih, int action, float posx, float posy);
|
|
|
|
void iupMatrixScrollToVisible(Ihandle* ih, int lin, int col);
|
|
|
|
typedef void(*iupMatrixScrollMoveFunc)(Ihandle* ih, int mode, int m);
|
|
void iupMatrixScrollMove(iupMatrixScrollMoveFunc func, Ihandle* ih, int mode, int m);
|
|
|
|
/* Used only by the macros below */
|
|
void iupMatrixScrollHomeFunc(Ihandle* ih, int, int);
|
|
void iupMatrixScrollEndFunc(Ihandle* ih, int, int);
|
|
void iupMatrixScrollLeftUpFunc(Ihandle* ih, int, int);
|
|
void iupMatrixScrollRightDownFunc(Ihandle* ih, int, int);
|
|
void iupMatrixScrollPgLeftUpFunc(Ihandle* ih, int, int);
|
|
void iupMatrixScrollPgRightDownFunc(Ihandle* ih, int, int);
|
|
void iupMatrixScrollPosFunc(Ihandle* ih, int, int);
|
|
void iupMatrixScrollCrFunc(Ihandle* ih, int, int);
|
|
|
|
/* Mode used to "walk" inside the matrix.
|
|
It shows if the movement request was from the scrollbar or from a key.
|
|
Possible values for the "mode" parameter of the iupMatrixScrollMove function.
|
|
*/
|
|
#define IMAT_SCROLLBAR 0
|
|
#define IMAT_SCROLLKEY 1
|
|
|
|
/* Macros to help during the call of iupMatrixScrollMove function */
|
|
|
|
/* used in the keyboard processing module */
|
|
#define iupMATRIX_ScrollKeyHome(ih) iupMatrixScrollMove(iupMatrixScrollHomeFunc , ih, IMAT_SCROLLKEY, 0)
|
|
#define iupMATRIX_ScrollKeyEnd(ih) iupMatrixScrollMove(iupMatrixScrollEndFunc , ih, IMAT_SCROLLKEY, 0)
|
|
#define iupMATRIX_ScrollKeyPgUp(ih) iupMatrixScrollMove(iupMatrixScrollPgLeftUpFunc , ih, IMAT_SCROLLKEY, IMAT_PROCESS_LIN)
|
|
#define iupMATRIX_ScrollKeyPgDown(ih) iupMatrixScrollMove(iupMatrixScrollPgRightDownFunc, ih, IMAT_SCROLLKEY, IMAT_PROCESS_LIN)
|
|
#define iupMATRIX_ScrollKeyDown(ih) iupMatrixScrollMove(iupMatrixScrollRightDownFunc , ih, IMAT_SCROLLKEY, IMAT_PROCESS_LIN)
|
|
#define iupMATRIX_ScrollKeyRight(ih) iupMatrixScrollMove(iupMatrixScrollRightDownFunc , ih, IMAT_SCROLLKEY, IMAT_PROCESS_COL)
|
|
#define iupMATRIX_ScrollKeyUp(ih) iupMatrixScrollMove(iupMatrixScrollLeftUpFunc , ih, IMAT_SCROLLKEY, IMAT_PROCESS_LIN)
|
|
#define iupMATRIX_ScrollKeyLeft(ih) iupMatrixScrollMove(iupMatrixScrollLeftUpFunc , ih, IMAT_SCROLLKEY, IMAT_PROCESS_COL)
|
|
#define iupMATRIX_ScrollKeyCr(ih) iupMatrixScrollMove(iupMatrixScrollCrFunc , ih, IMAT_SCROLLKEY, 0)
|
|
|
|
/* Used by the scrollbar callback only */
|
|
#define iupMATRIX_ScrollUp(ih) iupMatrixScrollMove(iupMatrixScrollLeftUpFunc , ih, IMAT_SCROLLBAR, IMAT_PROCESS_LIN)
|
|
#define iupMATRIX_ScrollLeft(ih) iupMatrixScrollMove(iupMatrixScrollLeftUpFunc , ih, IMAT_SCROLLBAR, IMAT_PROCESS_COL)
|
|
#define iupMATRIX_ScrollDown(ih) iupMatrixScrollMove(iupMatrixScrollRightDownFunc , ih, IMAT_SCROLLBAR, IMAT_PROCESS_LIN)
|
|
#define iupMATRIX_ScrollRight(ih) iupMatrixScrollMove(iupMatrixScrollRightDownFunc , ih, IMAT_SCROLLBAR, IMAT_PROCESS_COL)
|
|
#define iupMATRIX_ScrollPgUp(ih) iupMatrixScrollMove(iupMatrixScrollPgLeftUpFunc , ih, IMAT_SCROLLBAR, IMAT_PROCESS_LIN)
|
|
#define iupMATRIX_ScrollPgLeft(ih) iupMatrixScrollMove(iupMatrixScrollPgLeftUpFunc , ih, IMAT_SCROLLBAR, IMAT_PROCESS_COL)
|
|
#define iupMATRIX_ScrollPgDown(ih) iupMatrixScrollMove(iupMatrixScrollPgRightDownFunc, ih, IMAT_SCROLLBAR, IMAT_PROCESS_LIN)
|
|
#define iupMATRIX_ScrollPgRight(ih) iupMatrixScrollMove(iupMatrixScrollPgRightDownFunc, ih, IMAT_SCROLLBAR, IMAT_PROCESS_COL)
|
|
#define iupMATRIX_ScrollPosVer(ih, y) iupMatrixScrollMove(iupMatrixScrollPosFunc , ih, IMAT_SCROLLBAR, IMAT_PROCESS_LIN)
|
|
#define iupMATRIX_ScrollPosHor(ih, x) iupMatrixScrollMove(iupMatrixScrollPosFunc , ih, IMAT_SCROLLBAR, IMAT_PROCESS_COL)
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|