You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
286 lines
11 KiB
286 lines
11 KiB
/////////////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Copyright (c) 1997 Active Voice Corporation. All Rights Reserved.
|
|
//
|
|
// Active Agent(r) and Unified Communications(tm) are trademarks of Active Voice Corporation.
|
|
//
|
|
// Other brand and product names used herein are trademarks of their respective owners.
|
|
//
|
|
// The entire program and user interface including the structure, sequence, selection,
|
|
// and arrangement of the dialog, the exclusively "yes" and "no" choices represented
|
|
// by "1" and "2," and each dialog message are protected by copyrights registered in
|
|
// the United States and by international treaties.
|
|
//
|
|
// Protected by one or more of the following United States patents: 5,070,526, 5,488,650,
|
|
// 5,434,906, 5,581,604, 5,533,102, 5,568,540, 5,625,676, 5,651,054.
|
|
//
|
|
// Active Voice Corporation
|
|
// Seattle, Washington
|
|
// USA
|
|
//
|
|
/////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
////
|
|
// tmeter.h - TrackMeter custom control
|
|
////
|
|
|
|
////
|
|
// public
|
|
////
|
|
|
|
//#if 0
|
|
//#include "winlocal.h"
|
|
//#else
|
|
#ifndef STRICT
|
|
#define STRICT
|
|
#endif
|
|
#include <windows.h>
|
|
#include <windowsx.h>
|
|
#define DLLEXPORT __declspec(dllexport)
|
|
#define DECLARE_HANDLE32 DECLARE_HANDLE
|
|
//#endif
|
|
|
|
#include <commctrl.h>
|
|
|
|
// control styles
|
|
//
|
|
#define TMS_HORZ TBS_HORZ
|
|
#define TMS_VERT TBS_VERT
|
|
#define TMS_NOTHUMB TBS_NOTHUMB
|
|
|
|
// control messages
|
|
//
|
|
#define TMM_GETPOS TBM_GETPOS
|
|
#define TMM_SETPOS TBM_SETPOS
|
|
#define TMM_GETRANGEMIN TBM_GETRANGEMIN
|
|
#define TMM_SETRANGEMIN TBM_SETRANGEMIN
|
|
#define TMM_GETRANGEMAX TBM_GETRANGEMAX
|
|
#define TMM_SETRANGEMAX TBM_SETRANGEMAX
|
|
#define TMM_SETRANGE TBM_SETRANGE
|
|
|
|
#define TMM_GETLEVEL (WM_USER + 100)
|
|
#define TMM_SETLEVEL (WM_USER + 101)
|
|
#define TMM_GETCOLOR (WM_USER + 102)
|
|
#define TMM_SETCOLOR (WM_USER + 103)
|
|
|
|
#define TRACKMETER_MODULE TEXT("avMeter.dll")
|
|
#define TRACKMETER_CLASS TEXT("TrackMeterClass")
|
|
#define TRACKMETER_CLASS_A "TrackMeterClass"
|
|
|
|
// TrackMeter_Init - initialize control library
|
|
// <lpLibFileName> (i) address of filename of executable module
|
|
// <hInst> (i) module handle used to get library path
|
|
// NULL use module used to create calling process
|
|
// <dwFlags> (i) reserved; must be zero
|
|
// returns HMODULE of control library, NULL if error
|
|
//
|
|
#ifdef __LOADLIB_H__
|
|
#define TrackMeter_Init(hInst, dwFlags) \
|
|
(HMODULE) LoadLibraryPath(TRACKMETER_MODULE, hInst, dwFlags)
|
|
#else
|
|
#define TrackMeter_Init(hInst, dwFlags) \
|
|
(HMODULE) LoadLibrary(TRACKMETER_MODULE)
|
|
#endif
|
|
|
|
// TrackMeter_Term - shuts down control library
|
|
// <hModule> (i) handle returned from TrackMeter_Init
|
|
// returns non-zero if success
|
|
//
|
|
#define TrackMeter_Term(hModule) \
|
|
(BOOL) FreeLibrary(hModule)
|
|
|
|
// TrackMeter_Create - create TrackMeter control
|
|
// <dwStyle> (i) style flags
|
|
// TMS_HORZ horizontal control (default)
|
|
// TMS_VERT vertical control $FIXUP - not supported yet
|
|
// TMS_NOTHUMB do not display thumb
|
|
// WS_CHILD | WS_VISIBLE and other standard window styles
|
|
// <x> (i) horizontal position of control
|
|
// <y> (i) vertical position of control
|
|
// <cx> (i) width of control
|
|
// <cy> (i) height of control
|
|
// <hwndParent> (i) handle to parent of control
|
|
// <hInst> (i) instance of module associated with control
|
|
// returns hwnd of control, NULL if error
|
|
//
|
|
#define TrackMeter_Create(dwStyle, x, y, cx, cy, hwndParent, hInst) \
|
|
(HWND) CreateWindowEx(0L, TRACKMETER_CLASS, TEXT(""), \
|
|
dwStyle, x, y, cx, cy, hwndParent, NULL, hInst, NULL)
|
|
|
|
// TrackMeter_Destroy - destroy TrackMeter control
|
|
// <hwnd> (i) handle returned by TrackMeter_Create
|
|
// returns non-zero if success
|
|
//
|
|
#define TrackMeter_Destroy(hwnd) \
|
|
(BOOL) DestroyWindow(hwnd)
|
|
|
|
// TrackMeter_GetPos - get current position of slider
|
|
// <hwnd> (i) handle returned by TrackMeter_Create
|
|
// returns 32-bit slider position
|
|
//
|
|
#define TrackMeter_GetPos(hwnd) \
|
|
(LONG)(DWORD) SNDMSG(hwnd, TMM_GETPOS, 0, 0)
|
|
/* LONG Cls_OnTMMGetPos(HWND hwnd) */
|
|
#define HANDLE_TMM_GETPOS(hwnd, wParam, lParam, fn) \
|
|
(LRESULT)(DWORD)(long)(fn)(hwnd)
|
|
#define FORWARD_TMM_GETPOS(hwnd, fn) \
|
|
(LONG)(DWORD)(fn)((hwnd), TMM_GETPOS, 0L, 0L)
|
|
|
|
// TrackMeter_SetPos - set current position of slider
|
|
// <hwnd> (i) handle returned by TrackMeter_Create
|
|
// <lPosition> (i) new position for slider
|
|
// <fRedraw> (i) redraw control at new position if TRUE
|
|
// returns nothing
|
|
//
|
|
#define TrackMeter_SetPos(hwnd, lPosition, fRedraw) \
|
|
(void) SNDMSG(hwnd, TMM_SETPOS, (WPARAM) fRedraw, (LPARAM) lPosition)
|
|
/* void Cls_OnTMMSetPos(HWND hwnd, LONG lPosition, BOOL fRedraw) */
|
|
#define HANDLE_TMM_SETPOS(hwnd, wParam, lParam, fn) \
|
|
((fn)((hwnd), (LONG)(lParam), (BOOL)(wParam)), 0L)
|
|
#define FORWARD_TMM_SETPOS(hwnd, lPosition, fRedraw, fn) \
|
|
(void)(fn)((hwnd), TMM_SETPOS, (WPARAM)(BOOL)(fRedraw), (LPARAM)(LONG)(lPosition))
|
|
|
|
// TrackMeter_GetRangeMin - get minimum position of slider
|
|
// <hwnd> (i) handle returned by TrackMeter_Create
|
|
// returns 32-bit slider minimum position
|
|
//
|
|
#define TrackMeter_GetRangeMin(hwnd) \
|
|
(LONG)(DWORD) SNDMSG(hwnd, TMM_GETRANGEMIN, 0, 0)
|
|
/* LONG Cls_OnTMMGetRangeMin(HWND hwnd) */
|
|
#define HANDLE_TMM_GETRANGEMIN(hwnd, wParam, lParam, fn) \
|
|
(LRESULT)(DWORD)(long)(fn)(hwnd)
|
|
#define FORWARD_TMM_GETRANGEMIN(hwnd, fn) \
|
|
(LONG)(DWORD)(fn)((hwnd), TMM_GETRANGEMIN, 0L, 0L)
|
|
|
|
// TrackMeter_SetRangeMin - set minimum position of slider
|
|
// <hwnd> (i) handle returned by TrackMeter_Create
|
|
// <lMinimum> (i) new minimum position for slider
|
|
// <fRedraw> (i) redraw control if TRUE
|
|
// returns nothing
|
|
//
|
|
#define TrackMeter_SetRangeMin(hwnd, lMinimum, fRedraw) \
|
|
(void) SNDMSG(hwnd, TMM_SETRANGEMIN, (WPARAM) fRedraw, (LPARAM) lMinimum)
|
|
/* void Cls_OnTMMSetRangeMin(HWND hwnd, LONG lMinimum, BOOL fRedraw) */
|
|
#define HANDLE_TMM_SETRANGEMIN(hwnd, wParam, lParam, fn) \
|
|
((fn)((hwnd), (LONG)(lParam), (BOOL)(wParam)), 0L)
|
|
#define FORWARD_TMM_SETRANGEMIN(hwnd, lMinimum, fRedraw, fn) \
|
|
(void)(fn)((hwnd), TMM_SETRANGEMIN, (WPARAM)(BOOL)(fRedraw), (LPARAM)(LONG)(lMinimum))
|
|
|
|
// TrackMeter_GetRangeMax - get maximum position of slider
|
|
// <hwnd> (i) handle returned by TrackMeter_Create
|
|
// returns 32-bit slider maximum position
|
|
//
|
|
#define TrackMeter_GetRangeMax(hwnd) \
|
|
(LONG)(DWORD) SNDMSG(hwnd, TMM_GETRANGEMAX, 0, 0)
|
|
/* LONG Cls_OnTMMGetRangeMax(HWND hwnd) */
|
|
#define HANDLE_TMM_GETRANGEMAX(hwnd, wParam, lParam, fn) \
|
|
(LRESULT)(DWORD)(long)(fn)(hwnd)
|
|
#define FORWARD_TMM_GETRANGEMAX(hwnd, fn) \
|
|
(LONG)(DWORD)(fn)((hwnd), TMM_GETRANGEMAX, 0L, 0L)
|
|
|
|
// TrackMeter_SetRangeMax - set maximum position of slider
|
|
// <hwnd> (i) handle returned by TrackMeter_Create
|
|
// <lMaximum> (i) new maximum position for slider
|
|
// <fRedraw> (i) redraw control if TRUE
|
|
// returns nothing
|
|
//
|
|
#define TrackMeter_SetRangeMax(hwnd, lMaximum, fRedraw) \
|
|
(void) SNDMSG(hwnd, TMM_SETRANGEMAX, (WPARAM) fRedraw, (LPARAM) lMaximum)
|
|
/* void Cls_OnTMMSetRangeMax(HWND hwnd, LONG lMaximum, BOOL fRedraw) */
|
|
#define HANDLE_TMM_SETRANGEMAX(hwnd, wParam, lParam, fn) \
|
|
((fn)((hwnd), (LONG)(lParam), (BOOL)(wParam)), 0L)
|
|
#define FORWARD_TMM_SETRANGEMAX(hwnd, lMaximum, fRedraw, fn) \
|
|
(void)(fn)((hwnd), TMM_SETRANGEMAX, (WPARAM)(BOOL)(fRedraw), (LPARAM)(LONG)(lMaximum))
|
|
|
|
// TrackMeter_SetRange - set minimum and maximum positions of slider
|
|
// <hwnd> (i) handle returned by TrackMeter_Create
|
|
// <lMinimum> (i) new minimum position for slider
|
|
// <lMaximum> (i) new maximum position for slider
|
|
// <fRedraw> (i) redraw control if TRUE
|
|
// returns nothing
|
|
//
|
|
#define TrackMeter_SetRange(hwnd, lMinimum, lMaximum, fRedraw) \
|
|
(void) SNDMSG(hwnd, TMM_SETRANGE, (WPARAM) fRedraw, \
|
|
(LPARAM) MAKELONG(lMinimum, lMaximum))
|
|
/* void Cls_OnTMMSetRange(HWND hwnd, LONG lMinimum, LONG lMaximum, BOOL fRedraw) */
|
|
#define HANDLE_TMM_SETRANGE(hwnd, wParam, lParam, fn) \
|
|
((fn)((hwnd), (LONG)LOWORD(lParam), (LONG)HIWORD(lParam), (BOOL)(wParam)), 0L)
|
|
#define FORWARD_TMM_SETRANGE(hwnd, lMinimum, lMaximum, fRedraw, fn) \
|
|
(void)(fn)((hwnd), TMM_SETRANGE, (WPARAM)(BOOL)(fRedraw), (LPARAM)MAKELONG(lMinimum, lMaximum))
|
|
|
|
// TrackMeter_GetLevel - get current level of meter
|
|
// <hwnd> (i) handle returned by TrackMeter_Create
|
|
// returns 32-bit meter level
|
|
//
|
|
#define TrackMeter_GetLevel(hwnd) \
|
|
(LONG)(DWORD) SNDMSG(hwnd, TMM_GETLEVEL, 0, 0)
|
|
/* LONG Cls_OnTMMGetLevel(HWND hwnd) */
|
|
#define HANDLE_TMM_GETLEVEL(hwnd, wParam, lParam, fn) \
|
|
(LRESULT)(DWORD)(long)(fn)(hwnd)
|
|
#define FORWARD_TMM_GETLEVEL(hwnd, fn) \
|
|
(LONG)(DWORD)(fn)((hwnd), TMM_GETLEVEL, 0L, 0L)
|
|
|
|
// TrackMeter_SetLevel - set current level of meter
|
|
// <hwnd> (i) handle returned by TrackMeter_Create
|
|
// <lLevel> (i) new level for meter
|
|
// <fRedraw> (i) redraw control at new level if TRUE
|
|
// returns nothing
|
|
//
|
|
#define TrackMeter_SetLevel(hwnd, lLevel, fRedraw) \
|
|
(void) SNDMSG(hwnd, TMM_SETLEVEL, (WPARAM) fRedraw, (LPARAM) lLevel)
|
|
/* void Cls_OnTMMSetLevel(HWND hwnd, LONG lLevel, BOOL fRedraw) */
|
|
#define HANDLE_TMM_SETLEVEL(hwnd, wParam, lParam, fn) \
|
|
((fn)((hwnd), (LONG)(lParam), (BOOL)(wParam)), 0L)
|
|
#define FORWARD_TMM_SETLEVEL(hwnd, lLevel, fRedraw, fn) \
|
|
(void)(fn)((hwnd), TMM_SETLEVEL, (WPARAM)(BOOL)(fRedraw), (LPARAM)(LONG)(lLevel))
|
|
|
|
// TrackMeter_GetColor - get current color for control element
|
|
// <hwnd> (i) handle returned by TrackMeter_Create
|
|
// <elem> (i) which element color to get
|
|
// see TMCR_ #defines below
|
|
// returns 32-bit COLORREF
|
|
//
|
|
#define TrackMeter_GetColor(hwnd, elem) \
|
|
(COLORREF)(DWORD) SNDMSG(hwnd, TMM_GETCOLOR, (WPARAM) 0, \
|
|
(LPARAM) MAKELONG(elem, 0))
|
|
/* COLORREF Cls_OnTMMGetColor(HWND hwnd, UINT elem) */
|
|
#define HANDLE_TMM_GETCOLOR(hwnd, wParam, lParam, fn) \
|
|
(LRESULT)(DWORD)(long)(fn)(hwnd, (UINT)LOWORD(lParam))
|
|
#define FORWARD_TMM_GETCOLOR(hwnd, fn) \
|
|
(COLORREF)(DWORD)(fn)((hwnd), TMM_GETCOLOR, (WAPRAM) 0L, \
|
|
(LPARAM)MAKELONG((UINT)(elem), 0))
|
|
|
|
// TrackMeter_SetColor - set color for control element
|
|
// <hwnd> (i) handle returned by TrackMeter_Create
|
|
// <cr> (i) COLORREF for specified element
|
|
// <elem> (i) which element gets the specified color
|
|
// see TMCR_ #defines below
|
|
// <fRedraw> (i) redraw control if TRUE
|
|
// returns nothing
|
|
//
|
|
#define TrackMeter_SetColor(hwnd, cr, elem, fRedraw) \
|
|
(void) SNDMSG(hwnd, TMM_SETCOLOR, (WPARAM) cr, \
|
|
(LPARAM) MAKELONG(elem, fRedraw))
|
|
/* void Cls_OnTMMSetColor(HWND hwnd, COLORREF cr, UINT elem, BOOL fRedraw) */
|
|
#define HANDLE_TMM_SETCOLOR(hwnd, wParam, lParam, fn) \
|
|
((fn)((hwnd), (COLORREF)(wParam), (UINT)LOWORD(lParam), (BOOL)HIWORD(lParam)), 0L)
|
|
#define FORWARD_TMM_SETCOLOR(hwnd, cr, elem, fRedraw, fn) \
|
|
(void)(fn)((hwnd), TMM_SETCOLOR, (WPARAM)(COLORREF)(cr), \
|
|
(LPARAM)MAKELONG((UINT)(elem), (BOOL)(fRedraw)))
|
|
|
|
// <elem> values for ThumbTrack_GetColor and ThumbTrack_SetColor
|
|
//
|
|
#define TMCR_CTRLBACKGROUND 1
|
|
#define TMCR_FOCUSBACKGROUND 2
|
|
#define TMCR_TRACKBACKGROUND 3
|
|
#define TMCR_TRACKLIGHT 4
|
|
#define TMCR_TRACKSHADOW 5
|
|
#define TMCR_TRACKDKSHADOW 6
|
|
#define TMCR_LEVEL 7
|
|
#define TMCR_THUMBFACE 8
|
|
#define TMCR_THUMBFACEPRESSED 9
|
|
#define TMCR_THUMBLIGHT 10
|
|
#define TMCR_THUMBSHADOW 11
|
|
#define TMCR_THUMBDKSHADOW 12
|
|
#define TMCR_MAX 32
|
|
|