reactos/rosapps/dflat32/checkbox.c
2003-06-19 02:48:13 +00:00

50 lines
1.4 KiB
C

/* -------------- checkbox.c ------------ */
#include "dflat.h"
int DfCheckBoxProc(DFWINDOW wnd, DFMESSAGE msg, DF_PARAM p1, DF_PARAM p2)
{
int rtn;
DF_CTLWINDOW *ct = DfGetControl(wnd);
if (ct != NULL) {
switch (msg) {
case DFM_SETFOCUS:
if (!(int)p1)
DfSendMessage(NULL, DFM_HIDE_CURSOR, 0, 0);
case DFM_MOVE:
rtn = DfBaseWndProc(DF_CHECKBOX, wnd, msg, p1, p2);
DfSetFocusCursor(wnd);
return rtn;
case DFM_PAINT: {
char cb[] = "[ ]";
if (ct->setting)
cb[1] = 'X';
DfSendMessage(wnd, DFM_CLEARTEXT, 0, 0);
DfSendMessage(wnd, DFM_ADDTEXT, (DF_PARAM) cb, 0);
DfSetFocusCursor(wnd);
break;
}
case DFM_KEYBOARD:
if ((int)p1 != ' ')
break;
case DFM_LEFT_BUTTON:
ct->setting ^= DF_ON;
DfSendMessage(wnd, DFM_PAINT, 0, 0);
return TRUE;
default:
break;
}
}
return DfBaseWndProc(DF_CHECKBOX, wnd, msg, p1, p2);
}
BOOL DfCheckBoxSetting(DF_DBOX *db, enum DfCommands cmd)
{
DF_CTLWINDOW *ct = DfFindCommand(db, cmd, DF_CHECKBOX);
if (ct != NULL)
return (ct->isetting == DF_ON);
return FALSE;
}
/* EOF */