home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
mmpm21tk.zip
/
TK
/
H
/
SW.H
< prev
Wrap
Text File
|
1993-01-25
|
32KB
|
566 lines
/****************************************************************************/
/* */
/* Module Name: SW.H */
/* */
/* This is the multimedia include file that has the typedefs, defines and */
/* function prototyes for Multimedia Applets. */
/* */
/* Copyright (c) International Business Machines Corporation 1990, 1991 */
/* All Rights Reserved */
/* */
/****************************************************************************/
/* The folowing symbols are used in this file for conditional sections. */
/* */
/* #define: To include: */
/* */
/* INCL_SECONDARYWINDOW Secondary Window */
/* INCL_GRAPHICBUTTON Graphic Buttons */
/* INCL_CIRCULARSLIDER Circular Slider */
/* */
/* */
/****************************************************************************/
#ifndef __SW_H
#define __SW_H
#ifdef INCL_SECONDARYWINDOW
#define MAX_SMBDTEXT 35
#define MB_ICONCUSTOM 0x0001
#define SC_DEFAULTSIZE 0xc000 /* WM_COMMAND from SysMenu */
#define WM_INITSECONDARYWINDOW 0x0519 /* MP1: NULL, MP2: CreateParams */
#define QS_FRAME 0x1 /* Flag set to query frame */
#define QS_DIALOG 0x2 /* Flag set to query dialog */
#pragma pack(4)
typedef struct _SMBD
{
CHAR achText[MAX_SMBDTEXT + 1]; /* Text of the button. eg. "~Cancel" */
ULONG idButton; /* Button ID returned when user chooses */
/* button */
LONG flStyle; /* Button style or'ed with internal */
/* styles */
} SMBD;
typedef SMBD * PSMBD;
typedef struct _SMBINFO
{
HPOINTER hIcon; /* Icon handle */
ULONG cButtons; /* Number of buttons */
ULONG flStyle; /* Icon style flags (MB_ICONQUESTION, etc...)*/
HWND hwndNotify; /* Reserved */
PSMBD psmbd; /* Array of button definitions */
} SMBINFO;
typedef SMBINFO * PSMBINFO;
#pragma pack()
/* Analogous to WinDlgBox */
ULONG EXPENTRY WinSecondaryWindow(HWND hwndParent,
HWND hwndOwner,
PFNWP pfnDlgProc,
HMODULE hmod,
ULONG idDlg,
PVOID pCreateParams);
/* Analogous to WinLoadDlg */
HWND EXPENTRY WinLoadSecondaryWindow(HWND hwndParent,
HWND hwndOwner,
PFNWP pfnDlgProc,
HMODULE hmod,
ULONG idDlg,
PVOID pCreateParams);
/* Analogous to WinProcessDlg */
ULONG EXPENTRY WinProcessSecondaryWindow(HWND hwndSW);
/* Analogous to WinCreateDlg */
HWND EXPENTRY WinCreateSecondaryWindow(HWND hwndParent,
HWND hwndOwner,
PFNWP pfnDlgProc,
PDLGTEMPLATE pdlgt, /* requires INCL_WINDIALOGS */
PVOID pCreateParams);
BOOL EXPENTRY WinDefaultSize(HWND hwnd);
BOOL EXPENTRY WinInsertDefaultSize(HWND hwnd, PSZ pszDefaultSize);
HWND EXPENTRY WinQuerySecondaryHWND(HWND hwnd, ULONG ulFlag);
/************************************************************************/
/* WinSecondaryMessageBox */
/* */
/* Parameters: HWND hwndParent - handle of the parent window. */
/* HWND hwndOwner - handle of the owner window. */
/* PSZ pszText - message text. */
/* PSZ pszCaption - title of the message box. */
/* ULONG idWindow - Message box id */
/* PSMBINFO psmbinfo - pointer to button/icon info */
/************************************************************************/
ULONG EXPENTRY WinSecondaryMessageBox(HWND hwndParent,
HWND hwndOwner,
PSZ pszText,
PSZ pszCaption,
ULONG idWindow,
PSMBINFO psmbinfo);
/************************************************************************/
/* WinDismissSecondaryWindow */
/* */
/* This function should be called from within the dlg proc. The hwnd */
/* passed in MUST be the handle to the actual dialog. */
/************************************************************************/
BOOL EXPENTRY WinDismissSecondaryWindow(HWND hwndDlg, ULONG ulResult);
/************************************************************************/
/* The parameter hwnd can be either the secondary window or the actual */
/* dialog. */
/************************************************************************/
BOOL EXPENTRY WinDestroySecondaryWindow(HWND hwnd);
MRESULT EXPENTRY WinDefSecondaryWindowProc(HWND hwnd, ULONG msg, MPARAM mp1,
MPARAM mp2);
#endif /* ifdef INCL_SECONDARYWINDOW */
#ifdef INCL_GRAPHICBUTTON
/************************************************************************/
/* Graphic Buttons */
/************************************************************************/
/************************************************************************/
/* Notes on Using GraphicButtons */
/* */
/* GraphicButton CONTROL DATA */
/* */
/* The format of the control data for GraphicButtons is */
/* "button Text, number of bitmaps, bitmap resource id's ..." */
/* */
/* */
/* Following are two example window templates of GraphicButtons: */
/* */
/* 1) CONTROL "", IDD_MP_REV, 120, 10, TS_PB_WIDTH, TS_PB_HEIGHT,*/
/* WC_GRAPHICBUTTON, */
/* GBS_TWOSTATE | GBS_HILITEBITMAP | */
/* WS_VISIBLE | WS_TABSTOP */
/* CTLDATA GB_RESOURCE,"~REV", 2, ID_MP_REV1, ID_MP_REV0*/
/* */
/* The above graphicbutton has id IDD_MP_REV and is of type */
/* GBS_TWOSTATE and GBS_HILITEBITMAP. The GBS_HILITEBITMAP allows */
/* a different bitmap to be displayed when the button is in the */
/* hilite state. The graphicbutton will be displayed with text */
/* "REV" and has "R" as the mnemonic. It has 2 bitmaps associated */
/* with it. Their resource id are ID_MP_REV1 and ID_MP_REV0. */
/* */
/* */
/* 2) CONTROL "", IDD_MP_PLAY, 175, 10, TS_PB_WIDTH, */
/* TS_PB_HEIGHT, WC_GRAPHICBUTTON, */
/* GBS_AUTOTWOSTATE | GBS_AUTOANIMATION | */
/* WS_VISIBLE | WS_TABSTOP */
/* CTLDATA GB_RESOURCE, "~PLAY", 9, */
/* ID_MP_STOP0, ID_MP_PLAY1, ID_MP_PLAY2,*/
/* ID_MP_PLAY3, ID_MP_PLAY4, ID_MP_PLAY5,*/
/* ID_MP_PLAY6, ID_MP_PLAY7, ID_MP_REV1 */
/* */
/* The above graphicbutton has id IDD_MP_PLAY and is of type */
/* GBS_AUTOTWOSTATE and GBS_AUTOANIMATE. When clicked upon, */
/* the button will automatically toggle the state and animation. */
/* The graphicbutton will be displayed with text "PLAY" */
/* and mnemonic "P". It has 9 bitmaps associated with it. */
/* */
/* */
/* */
/* GraphicButton Painting */
/* */
/* Due to the PM design, whenever a graphicbutton is clicked, */
/* it is sent a BN_PAINT (to paint a non-hilite state) and then */
/* BN_CLICKED. Thus, for GBS_AUTO* style graphicbuttons, a paint */
/* request is generated before the button has a chance to change */
/* its state (BN_CLICKED). To avoid this premature painting, */
/* code was inserted to delay the painting of graphicbuttons */
/* GB_PAINT_RESOLUTION milliseconds whenever the button is switching */
/* FROM the hilite paint state. */
/* */
/************************************************************************/
BOOL EXPENTRY WinRegisterGraphicButton(VOID);
#define WC_GRAPHICBUTTON ((PSZ)0xffff0040L)
/************************************************************************/
/* GraphicButton Animation/TwoState constants */
/************************************************************************/
/************************************************************************/
/* Graphic Button Style bits */
/************************************************************************/
#define GBS_TWOSTATE 0x1000 /* indicates TwoState button */
#define GBS_AUTOTWOSTATE 0X2000 /* will auto toggle state up/down */
#define GBS_ANIMATION 0x4000 /* indicates Animatable button */
#define GBS_AUTOANIMATION 0x8000 /* will auto toggle anim. on/off */
#define GBS_DISABLEBITMAP 0x0010 /* allows a diff. bitmap when */
/* disabled */
#define GBS_HILITEBITMAP 0x0020 /* allows a diff. bitmap when */
/* hilited */
#define GBS_3D_TEXTRECESSED 0x0040 /* display text in 3-D recessed */
#define GBS_3D_TEXTRAISED 0x0080 /* display text in 3-D raised */
/************************************************************************/
/* Graphic Button User Constants */
/************************************************************************/
/************************************************************************/
/* Codes to reference allowed GraphicButton states (or paint states) */
/************************************************************************/
#define GB_ERROR -1 /* GraphicButton Error */
#define GB_UP 1 /* GraphicButton up (and paint) */
/* state */
#define GB_DOWN 2 /* GraphicButton down (and paint) */
/* state */
#define GB_DISABLE 3 /* GraphicButton disabled state */
#define GB_HILITE 4 /* GraphicButton paint state only */
#define GB_OUTOFHILITE 5 /* Changing out of hilite paint */
/* state */
/************************************************************************/
/* Codes for various GraphicButton message function parameters */
/************************************************************************/
#define GB_TOGGLE 10 /* GraphicButton toggle */
#define GB_CURRENTSTATE 11 /* GraphicButton's current state */
#define GB_ANIMATIONBEGIN 12 /* when refering to index of anim */
/* start */
#define GB_ANIMATIONEND 13 /* when refering to index of anim */
/* end */
#define GB_MAXINDEX 14 /* GraphicButton max. index */
/************************************************************************/
/* Codes to set/query text position relative to the bitmap */
/************************************************************************/
#define GB_TEXTBELOW 1 /* place text below bitmap */
#define GB_TEXTABOVE 2 /* place text above bitmap */
/************************************************************************/
/* Codes used to set the animation frame with message GBM_SETBITMAPINDEX*/
/************************************************************************/
#define GB_INDEX_FORWARD -1 /* advance one frame foward */
#define GB_INDEX_BACKWARD -2 /* advance one frame backwards */
#define GB_INDEX_FIRST -3 /* set to first frame of sequence */
#define GB_INDEX_LAST -4 /* set to last frame of sequence */
#pragma pack(1)
typedef struct _GBTNCDATA
{
USHORT usReserved;
PSZ pszText;
HMODULE hmod;
USHORT cBitmaps;
USHORT aidBitmap[1];
} GBTNCDATA;
typedef GBTNCDATA *PGBTNCDATA;
#pragma pack()
#define GB_RESOURCE 1
#define GB_STRUCTURE 0
/************************************************************************/
/* Notification Messages received by GraphicButton Parent */
/***********************************************************************/
/************************************************************************/
/* GBN_BUTTONDOWN, GBN_BUTTONUP, and GBN_BUTTONHILITE */
/* */
/* The notification messages are passed as part of the WM_CONTROL */
/* message. */
/* */
/* msg = WM_CONTROL */
/* mp1 = MPFROM2SHORT(gpb_id, button_state) */
/* gpd_id = identity of the displayed graphic pushbutton */
/* button_state = GBN_BUTTONUP, GBN_BUTTONDOWN, or */
/* GBN_BUTTONHILITE */
/* */
/************************************************************************/
#define GBN_BUTTONUP 0x0524
#define GBN_BUTTONDOWN 0x0525
#define GBN_BUTTONHILITE 0x0526
/************************************************************************/
/* Messages to GraphicButton Windows */
/************************************************************************/
/************************************************************************/
/* GBM_SETGRAPHICDATA */
/************************************************************************/
/* mp1 = MPFROMP((PGBTNCDATA)&gbtncdata); Graphic button control data*/
/* mp2 = NULL; not used */
/* */
/* WARNING: This message resets all button parameters. */
/* */
/************************************************************************/
#define GBM_SETGRAPHICDATA 0x052A
/************************************************************************/
/* GBM_ANIMATE */
/************************************************************************/
/* mp1 = MPFROMSHORT(fStart) TRUE to start animation, FALSE to stop*/
/* mp2 = MPFROMSHORT(fContinue) TRUE continue anim. at currently */
/* displayed bitmap, FALSE restart at */
/* the beginning. */
/* */
/* Returns TRUE on Success */
/* FALSE on Failure */
/* */
/************************************************************************/
#define GBM_ANIMATE 0x052B
/************************************************************************/
/* GBM_SETANIMATIONRATE */
/************************************************************************/
/* mp1 = MPFROMSHORT(ULmIL); Animation rate in milliseconds */
/* mp2 = NULL not used */
/* */
/* */
/* Returns TRUE on Success */
/* FALSE on Failure */
/* */
/************************************************************************/
#define GBM_SETANIMATIONRATE 0x052C
/************************************************************************/
/* GBM_QUERYANIMATIONACTIVE */
/************************************************************************/
/* mp1 = NULL; not used */
/* mp2 = NULL; not used */
/* */
/* */
/* Returns TRUE if animation is active, else GB_ERROR */
/* */
/* */
/************************************************************************/
#define GBM_QUERYANIMATIONACTIVE 0x052D
/************************************************************************/
/* GBM_QUERYANIMATIONRATE */
/************************************************************************/
/* mp1 = NULL; not used */
/* mp2 = NULL; not used */
/* */
/* */
/* Returns ULONG sepcifying animation rate in milliseconds */
/* */
/* */
/************************************************************************/
#define GBM_QUERYANIMATIONRATE 0x052E
/************************************************************************/
/* GBM_SETBITMAPINDEX */
/************************************************************************/
/* mp1 = MPFROMSHORT(usGB_State) Bitmap index to change */
/* GB_UP, */
/* GB_DOWN, */
/* GB_DISABLE, */
/* GB_HILITE, */
/* GB_ANIMATIONBEGIN, */
/* GB_ANIMATIONEND, */
/* or GB_CURRENTSTATE chng current state (up or down) bitmap*/
/* mp2 = MPFROMSHORT(sFrameCode) Set according to code or frame desire */
/* GB_INDEX_FORWARD, chng to next bitmap in circular array */
/* GB_INDEX_BACKWARD, " " prev " " " " */
/* GB_INDEX_FIRST, " " first " " " " */
/* GB_INDEX_LAST, " " last " " " " */
/* or desired_bitmap otherwise desired bmp index specified */
/* */
/* Returns TRUE on Success, otherwise FALSE */
/* */
/************************************************************************/
#define GBM_SETBITMAPINDEX 0x052F
/************************************************************************/
/* GBM_QUERYBITMAPINDEX */
/************************************************************************/
/* mp1 = MPFROMSHORT(usGB_State) Query bitmap index */
/* GB_UP, */
/* GB_DOWN, */
/* GB_DISABLE, */
/* GB_HILITE, */
/* GB_ANIMATIONBEGIN, */
/* GB_ANIMATIONEND, */
/* or GB_CURRENTSTATE query current state (up or down) bitmap */
/* mp2 = NULL; not used */
/* */
/* Returns USHORT specifying the index */
/* */
/* */
/************************************************************************/
#define GBM_QUERYBITMAPINDEX 0x0530
/************************************************************************/
/* GBM_SETSTATE */
/************************************************************************/
/* mp1 = MPFROMSHORT(usStateCode) Set twostate button to specified */
/* state */
/* GB_UP, */
/* GB_DOWN, */
/* or GB_TOGGLE toggle (up/down) to (down/up) */
/* mp2 = MPFROMBOOL(fRepaint) TRUE - state changed and displayed */
/* FALSE - state changed, not displayed */
/* */
/* Returns TRUE on Success */
/* FALSE on Failure */
/* */
/* */
/************************************************************************/
#define GBM_SETSTATE 0x0531
/************************************************************************/
/* GBM_QUERYSTATE */
/************************************************************************/
/* */
/* mp1 = NULL not used */
/* mp2 = NULL not used */
/* */
/* Returns the state (GB_UP or GB_DOWN) else GB_ERROR. */
/* */
/* */
/************************************************************************/
#define GBM_QUERYSTATE 0x0532
/************************************************************************/
/* GBM_SETTEXTPOSITION */
/************************************************************************/
/* mp1 = MPFROMSHORT(usTextPos) How to position text relative to */
/* bitmap */
/* GB_TEXTBELOW, */
/* or GB_TEXTABOVE */
/* mp2 = NULL not used */
/* */
/* Returns TRUE on Success, otherwise FALSE */
/* */
/************************************************************************/
#define GBM_SETTEXTPOSITION 0x0533
/************************************************************************/
/* GBM_QUERYTEXTPOSITION */
/************************************************************************/
/* */
/* mp1 = NULL not used */
/* mp2 = NULL not used */
/* */
/* Returns GB_TEXTBELOW, GB_TEXTABOVE, GB_TEXTRIGHT, GB_TEXTLEFT */
/* on success, otherwise FALSE */
/* */
/************************************************************************/
#define GBM_QUERYTEXTPOSITION 0x0534
/************************************************************************/
/* GraphicButton END */
/************************************************************************/
#endif /* ifdef INCL_GRAPHICBUTTON */
/**********************************************************************/
/* DIAL CONTROL - CIRCULAR SLIDER */
/**********************************************************************/
#ifdef INCL_STPMPAGE
#define MM_TABHELP 0x054C
#endif /* INCL_STPMPAGE */
#ifdef INCL_DIAL
#define INCL_CIRCULARSLIDER
#endif /* INCL_DIAL */
#ifdef INCL_CIRCULARSLIDER
BOOL EXPENTRY WinRegisterCircularSlider(VOID);
#define WC_CIRCULARSLIDER ((PSZ)0xffff0041L)
typedef struct _CSBITMAPDATA
{
HBITMAP hbmLeftUp;
HBITMAP hbmLeftDown;
HBITMAP hbmRightUp;
HBITMAP hbmRightDown;
} CSBITMAPDATA;
typedef CSBITMAPDATA *PCSBITMAPDATA;
/* Messages */
#define CSM_QUERYRANGE 0x053D /* mp1: PSHORT pLow mp2: PSHORT pHigh */
#define CSM_SETRANGE 0x053E /* mp1: SHORT Low mp2: SHORT High */
#define CSM_QUERYVALUE 0x053F /* mp1: PSHORT pValue mp2: NULL */
#define CSM_SETVALUE 0x0540 /* mp1: SHORT Value mp2: NULL */
#define CSM_QUERYRADIUS 0x0541 /* mp1: PUSHORT uRadius */
#define CSM_SETINCREMENT 0x0542 /* mp1: USHORT ButtonIncr mp2: USHORT TickIncr */
#define CSM_QUERYINCREMENT 0x0543 /* mp1: PUSHORT pButtonIncr mp2: PUSHORT pTickIncr */
#define CSM_SETBITMAPDATA 0x0544 /* mp1: PDIALBITMAPDATA */
#define CSN_SETFOCUS 0x0548 /* mp2: BOOL fSetFocus */
#define CSN_CHANGED 0x0549 /* mp2: SHORT Value */
#define CSN_TRACKING 0x054A /* mp2: SHORT Value */
#define CSN_QUERYBACKGROUNDCOLOR 0x054B /* mp2: NULL return: CLR_ */
#define WS_NOBUTTON 0x1 /* Style bits */
#define WS_NOTEXT 0x2
#define WS_NONUMBER 0x4
#define WS_POINTSELECT 0x8
#define WS_360 0x10
#define WS_MIDPOINT 0x20
#define CSS_NOBUTTON WS_NOBUTTON /* Style bits */
#define CSS_NOTEXT WS_NOTEXT
#define CSS_NONUMBER WS_NONUMBER
#define CSS_POINTSELECT WS_POINTSELECT
#define CSS_360 WS_360
#define CSS_MIDPOINT WS_MIDPOINT
#define CSS_PROPORTIONALTICKS 0x40
#endif /* INCL_CIRCULARSLIDER */
#endif /* ifndef __SW_H */