135 lines
3.7 KiB
C
135 lines
3.7 KiB
C
#ifndef H__selbox
|
||
#define H__selbox
|
||
|
||
/* SelBoxInit( hInst ) will register window classes and should only be called
|
||
at the beginning of a program.
|
||
*/
|
||
VOID FAR PASCAL SelBoxInit( HANDLE );
|
||
|
||
/*
|
||
SelBoxSetupStart( hWnd, title, noEntryMsg, numCols, lFlags );
|
||
|
||
SelBoxSetupStart() gets passed a window handle that is the parent
|
||
of this window and "numCols".
|
||
|
||
"title" will be displayed in the caption for the user
|
||
|
||
"noEntryMsg" will be display in the window when there are no
|
||
entries
|
||
|
||
If numCols is 0, SelBox() routines will determine the
|
||
optimum # to display on the screen. Otherwise, SelBox() routines
|
||
will use the number you pass.
|
||
|
||
"lFlags" can be one of the following:
|
||
SBSTYLE_RADIO_BUTTONS otherwise check-box style
|
||
SBSTYLE_RETURN_ON_SELECTION otherwise wait for OK
|
||
SBSTYLE_SORT_ENTRIES otherwise put in order of calls
|
||
SBSTYLE_ENTRIES_PRESORTED put in order but knows that
|
||
they're sorted
|
||
|
||
|
||
*/
|
||
VOID FAR PASCAL SelBoxSetupStart( HWND, PSTR, PSTR, int, LONG );
|
||
|
||
/*
|
||
|
||
BOOL SelBoxAddEntry( string, value, wFlags )
|
||
|
||
SelBoxAddEntry() gets passed a string a value and flags. If the user
|
||
clicks on this string, "value" is returned by SelBoxUserSelect().
|
||
|
||
The wFlags are:
|
||
SBENTRY_DISABLED
|
||
SBENTRY_SELECTED
|
||
|
||
Return is FALSE for out of memory errors
|
||
|
||
*/
|
||
BOOL FAR PASCAL SelBoxAddEntry( LPSTR, LONG, WORD );
|
||
|
||
/* SelBoxUserSelect( hInst, lButtons, vPosition, nFixed ) actually
|
||
displays the strings set up by SelBoxAddEntry(). The box is displayed
|
||
at the vertical screen position specified by "vPosition"
|
||
|
||
"lButtons" specifies which of the following buttons should be
|
||
enabled:
|
||
SB_BUTTON_NEW
|
||
SB_BUTTON_MODIFY
|
||
SB_BUTTON_DELETE
|
||
SB_BUTTON_CANCEL
|
||
SB_BUTTON_OK
|
||
|
||
and returns one of the buttons:
|
||
|
||
SB_BUTTON_OK
|
||
SB_BUTTON_CANCEL
|
||
SB_BUTTON_NEW
|
||
SB_BUTTON_MODIFY
|
||
SB_BUTTON_DELETE
|
||
|
||
"nFixed" is set to 0 to allow free-format lengths. If nFixed is non-zero,
|
||
the sizes for the entries are fixed at the length specified by nFixed.
|
||
|
||
*/
|
||
LONG FAR PASCAL SelBoxUserSelect( HANDLE, LONG, int, int );
|
||
|
||
/* SelBoxUserSelection() will return the handle of a sellist (hMem).
|
||
Use
|
||
SelListNumSelections( hMem )
|
||
SelListGetSelection( hMem, n )
|
||
SelListFree( hMem )
|
||
*/
|
||
HANDLE FAR PASCAL SelBoxUserSelection( void );
|
||
|
||
/*
|
||
SelBoxCancel() simulates the user hitting the cancel button
|
||
|
||
NOTE: It IS OK to call this routine when no selection box is displayed
|
||
|
||
*/
|
||
VOID FAR PASCAL SelBoxCancel( void );
|
||
|
||
|
||
/*
|
||
SelBoxDoneOK( lButton ) simulates the user hitting one of the other buttons
|
||
|
||
NOTE: It IS OK to call this routine when no selection box is displayed
|
||
|
||
*/
|
||
VOID FAR PASCAL SelBoxDoneOK( LONG );
|
||
|
||
#define SBSTYLE_RADIO_BUTTONS 0x00000001L
|
||
#define SBSTYLE_RETURN_ON_SELECTION 0x00000002L
|
||
#define SBSTYLE_SORT_ENTRIES 0x00000004L
|
||
#define SBSTYLE_ENTRIES_PRESORTED 0x00000008L
|
||
|
||
#define SBENTRY_DISABLED 0x0001
|
||
#define SBENTRY_SELECTED 0x0002
|
||
#define SBENTRY_LABEL 0x0004
|
||
|
||
/** If you add an entry here, be sure to add the button name, etc.
|
||
to the "buttonList" in selbox.c
|
||
**/
|
||
#define SB_BUTTON_NEW 0x00000001L
|
||
#define SB_BUTTON_MODIFY 0x00000002L
|
||
#define SB_BUTTON_DELETE 0x00000004L
|
||
#define SB_BUTTON_CANCEL 0x00000010L
|
||
#define SB_BUTTON_OK 0x00000020L
|
||
|
||
#define SB_BUTTON_NORMAL (SB_BUTTON_CANCEL | SB_BUTTON_OK)
|
||
#define SB_BUTTON_ALL (0xFFL)
|
||
|
||
/*
|
||
Selection list manipulation routines
|
||
*/
|
||
int FAR PASCAL SelListNumSelections( HANDLE );
|
||
LONG FAR PASCAL SelListGetSelection( HANDLE, int );
|
||
VOID FAR PASCAL SelListFree( HANDLE );
|
||
HANDLE FAR PASCAL SelListCreate( int, WORD );
|
||
VOID FAR PASCAL SelListSetSelection( HANDLE, int, LONG );
|
||
BOOL FAR PASCAL SelListIsInList( HANDLE, LONG );
|
||
HANDLE FAR PASCAL SelListCopy( HANDLE );
|
||
|
||
#endif
|