windows-nt/Source/XPSP1/NT/multimedia/media/mplayer2/tracki.h
2020-09-26 16:20:57 +08:00

112 lines
4.4 KiB
C
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*-----------------------------------------------------------------------------+
| TRACKI.H |
| |
| Contains all the useful information for a trackbar. |
| |
| (C) Copyright Microsoft Corporation 1991. All rights reserved. |
| |
| Revision History |
| Oct-1992 MikeTri Ported to WIN32 / WIN16 common code |
| |
+-----------------------------------------------------------------------------*/
#include "track.h"
static TCHAR szSTrackBarClass[] = TRACKBAR_CLASS;
typedef struct {
HWND hwnd; // our window handle
HDC hdc; // current DC
LONG lLogMin; // Logical minimum
LONG lLogMax; // Logical maximum
LONG lLogPos; // Logical position
LONG lSelStart; // Logical selection start
LONG lSelEnd; // Logical selection end
LONG lTrackStart; // Logical track start
UINT wThumbWidth; // Width of the thumb
UINT wThumbHeight; // Height of the thumb
int iSizePhys; // Size of where thumb lives
RECT rc; // track bar rect.
RECT Thumb; // Rectangle we current thumb
DWORD dwDragPos; // Logical position of mouse while dragging.
UINT Flags; // Flags for our window
int Timer; // Our timer.
UINT Cmd; // The command we're repeating.
int nTics; // number of ticks.
PDWORD pTics; // the tick marks.
} TrackBar, *PTrackBar;
// Trackbar flags
#define TBF_NOTHUMB 0x0001 // No thumb because not wide enough.
/*
useful constants.
*/
#define REPEATTIME 500 // mouse auto repeat 1/2 of a second
#define TIMER_ID 1
#define GWW_TRACKMEM 0 /* handle to track bar memory */
#define EXTRA_TB_BYTES sizeof(HLOCAL) /* Total extra bytes. */
/*
Useful defines.
*/
/* We allocate enough window words to store a pointer (not a handle), so the
definition of EXTRA_TB_BYTES is slightly bad style. Sorry. On creation
we allocate space for the TrackBar struct. On destruction we free it.
In between we just retrieve the pointer.
*/
#define CREATETRACKBAR(hwnd) SetWindowLongPtr( hwnd \
, GWW_TRACKMEM \
, AllocMem(sizeof(TrackBar)) \
)
#define DESTROYTRACKBAR(hwnd) FreeMem( (LPVOID)GetWindowLongPtr(hwnd, GWW_TRACKMEM), \
sizeof(TrackBar) )
#define GETTRACKBAR(hwnd) (PTrackBar)GetWindowLongPtr(hwnd,GWW_TRACKMEM)
/*
Function Prototypes
*/
void FAR PASCAL DoTrack(PTrackBar, int, DWORD);
UINT FAR PASCAL WTrackType(PTrackBar, LONG);
void FAR PASCAL TBTrackInit(PTrackBar, LONG);
void FAR PASCAL TBTrackEnd(PTrackBar, LONG);
void FAR PASCAL TBTrack(PTrackBar, LONG);
void FAR PASCAL DrawThumb(PTrackBar);
HBRUSH FAR PASCAL SelectColorObjects(PTrackBar, BOOL);
void FAR PASCAL SetTBCaretPos(PTrackBar);
extern DWORD FAR PASCAL muldiv32(long, long, long);
/* objects from sbutton.c */
extern HBRUSH hbrButtonFace;
extern HBRUSH hbrButtonShadow;
extern HBRUSH hbrButtonText;
extern HBRUSH hbrButtonHighLight;
extern HBRUSH hbrWindowFrame; //???
extern HBITMAP FAR PASCAL LoadUIBitmap(
HANDLE hInstance, // EXE file to load resource from
LPCTSTR szName, // name of bitmap resource
COLORREF rgbText, // color to use for "Button Text"
COLORREF rgbFace, // color to use for "Button Face"
COLORREF rgbShadow, // color to use for "Button Shadow"
COLORREF rgbHighlight, // color to use for "Button Hilight"
COLORREF rgbWindow, // color to use for "Window Color"
COLORREF rgbFrame); // color to use for "Window Frame"