mirror of
https://github.com/reactos/reactos.git
synced 2024-11-20 14:30:57 +00:00
50 lines
1.3 KiB
C
50 lines
1.3 KiB
C
|
/* -------------- checkbox.c ------------ */
|
||
|
|
||
|
#include "dflat.h"
|
||
|
|
||
|
int CheckBoxProc(DFWINDOW wnd, DFMESSAGE msg, PARAM p1, PARAM p2)
|
||
|
{
|
||
|
int rtn;
|
||
|
CTLWINDOW *ct = GetControl(wnd);
|
||
|
if (ct != NULL) {
|
||
|
switch (msg) {
|
||
|
case SETFOCUS:
|
||
|
if (!(int)p1)
|
||
|
DfSendMessage(NULL, HIDE_CURSOR, 0, 0);
|
||
|
case MOVE:
|
||
|
rtn = BaseWndProc(CHECKBOX, wnd, msg, p1, p2);
|
||
|
SetFocusCursor(wnd);
|
||
|
return rtn;
|
||
|
case PAINT: {
|
||
|
char cb[] = "[ ]";
|
||
|
if (ct->setting)
|
||
|
cb[1] = 'X';
|
||
|
DfSendMessage(wnd, CLEARTEXT, 0, 0);
|
||
|
DfSendMessage(wnd, ADDTEXT, (PARAM) cb, 0);
|
||
|
SetFocusCursor(wnd);
|
||
|
break;
|
||
|
}
|
||
|
case KEYBOARD:
|
||
|
if ((int)p1 != ' ')
|
||
|
break;
|
||
|
case LEFT_BUTTON:
|
||
|
ct->setting ^= ON;
|
||
|
DfSendMessage(wnd, PAINT, 0, 0);
|
||
|
return TRUE;
|
||
|
default:
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
return BaseWndProc(CHECKBOX, wnd, msg, p1, p2);
|
||
|
}
|
||
|
|
||
|
BOOL CheckBoxSetting(DBOX *db, enum commands cmd)
|
||
|
{
|
||
|
CTLWINDOW *ct = FindCommand(db, cmd, CHECKBOX);
|
||
|
if (ct != NULL)
|
||
|
return (ct->isetting == ON);
|
||
|
return FALSE;
|
||
|
}
|
||
|
|
||
|
/* EOF */
|