home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DOS/V Power Report 1997 February
/
VPR9702A.ISO
/
FFILLY
/
NVM61028
/
NMBTN.TFY
< prev
next >
Wrap
Text File
|
1996-10-27
|
3KB
|
133 lines
// NmBtn.tfy - Button operations
#define USERMES_BUTTONDOWN 1
#define BUTTON_W 22
#define BUTTON_H 28
int nButtons;
int picButtonD[];
int picButtonB[];
int nButtonX[];
int nButtonY[];
int nButtonW[];
int nButtonH;
int picOriginalButtonD;
int picOriginalButtonB;
int nBrightButton;
int wavButton;
InitializeButton()
{
int i;
//picOriginalButtonD = LoadPic("ButtonD.bmp");
//picOriginalButtonB = LoadPic("ButtonB.bmp");
picOriginalButtonD = CreatePic(picDummy, BUTTON_W, BUTTON_H);
MovePic(picDummy, 0, 0, BUTTON_W, BUTTON_H, picOriginalButtonD);
picOriginalButtonB = CreatePic(picDummy, BUTTON_W, BUTTON_H);
MovePic(picDummy, BUTTON_W, 0, BUTTON_W, BUTTON_H, picOriginalButtonB);
nButtonH = PicHeight(picOriginalButtonD);
nBrightButton = -1;
wavButton = LoadRsc("Button.wav");
mes (MOUSEMOVE) {
i = GetCurButton(MesP2, MesP3);
if (i >= 0) {
if (nBrightButton != i) {
if (nBrightButton >= 0) {
ShowButton(nBrightButton);
}
ShowBrightButton(i);
nBrightButton = i;
}
} else {
if (nBrightButton >= 0) {
ShowButton(nBrightButton);
}
nBrightButton = -1;
}
}
mes(LBDOWN) {
if (nBrightButton >= 0) {
PlayRsc(wavButton);
PostMes(USER, USERMES_BUTTONDOWN, nBrightButton);
}
}
}
int MakeButton(str caption, int sx, int x, int y, int w)
{
int i;
i = nButtons;
picButtonD[i] = CreateButtonPic(picOriginalButtonD, caption, sx, x, y, w);
picButtonB[i] = CreateButtonPic(picOriginalButtonB, caption, sx, x, y, w);
nButtonX[i] = x;
nButtonY[i] = y;
nButtonW[i] = w;
ShowButton(i);
nButtons = nButtons + 1;
nBrightButton = -1;
return i;
}
DeleteAllButtons()
{
int i;
for (i = 0; i < nButtons; i = i + 1) {
DelPic(picButtonD[i]);
DelPic(picButtonB[i]);
}
DelArrayAll(picButtonD[]);
DelArrayAll(picButtonB[]);
DelArrayAll(nButtonX[]);
DelArrayAll(nButtonY[]);
DelArrayAll(nButtonW[]);
nButtons = 0;
}
int CreateButtonPic(int opic, str caption, int sx, int x, int y, int w)
{
int pic, pw, ph, pmw, i, p;
pw = PicWidth(opic);
ph = PicHeight(opic);
pic = CreatePic(opic, w, ph);
MovePic(opic, 0, 0, pw - 5, ph, pic);
pmw = pw - 10;
p = (w - pw - 1) / pmw + 1;
for (i = 0; i < p; i = i + 1) {
MovePic(opic, 5, 0, pmw, ph, pic, i * pmw + pw - 5, 0);
}
MovePic(opic, pw - 5, 0, 5, ph, pic, w - 5, 0);
SetFont(16,"MS Sans Serif",0,0,0,0,400,0);
TextColor(255, 255, 255);
TextWrite(caption, pic, sx, 5);
return pic;
}
ShowButton(int i)
{
MovePic(picButtonD[i], 0, 0, nButtonW[i], nButtonH,
picMainWnd, nButtonX[i], nButtonY[i], 0, 0);
}
ShowBrightButton(int i)
{
MovePic(picButtonB[i], 0, 0, nButtonW[i], nButtonH,
picMainWnd, nButtonX[i], nButtonY[i], 0, 0);
}
int GetCurButton(int x, int y)
{
int i;
for (i = 0; i < nButtons; i = i + 1) {
if (nButtonY[i] <= y && y < nButtonY[i] + nButtonH) {
if (nButtonX[i] <= x && x < nButtonX[i] + nButtonW[i]) {
break;
}
}
}
if (i >= nButtons)
i = -1;
return i;
}