mirror of
https://github.com/reactos/reactos.git
synced 2024-08-20 18:35:32 +00:00
76 lines
1.9 KiB
C
76 lines
1.9 KiB
C
/* ------------ log .c ------------ */
|
|
|
|
#include "dflat.h"
|
|
|
|
#ifdef INCLUDE_LOGGING
|
|
|
|
static char *message[] = {
|
|
#undef DFlatMsg
|
|
#define DFlatMsg(m) " " #m,
|
|
#include "dflatmsg.h"
|
|
NULL
|
|
};
|
|
|
|
static FILE *logfile = NULL;
|
|
extern DF_DBOX Log;
|
|
|
|
void DfLogMessages (DFWINDOW wnd, DFMESSAGE msg, DF_PARAM p1, DF_PARAM p2)
|
|
{
|
|
if (logfile != NULL && message[msg][0] != ' ')
|
|
fprintf(logfile,
|
|
"%-20.20s %-12.12s %-20.20s, %5.5ld, %5.5ld\n",
|
|
wnd ? (DfGetTitle(wnd) ? DfGetTitle(wnd) : "") : "",
|
|
wnd ? DfClassNames[DfGetClass(wnd)] : "",
|
|
message[msg]+1, p1, p2);
|
|
}
|
|
|
|
static int LogProc(DFWINDOW wnd, DFMESSAGE msg, DF_PARAM p1, DF_PARAM p2)
|
|
{
|
|
DFWINDOW cwnd = DfControlWindow(&Log, DF_ID_LOGLIST);
|
|
char **mn = message;
|
|
switch (msg) {
|
|
case DFM_INITIATE_DIALOG:
|
|
DfAddAttribute(cwnd, DF_MULTILINE | DF_VSCROLLBAR);
|
|
while (*mn) {
|
|
DfSendMessage(cwnd, DFM_ADDTEXT, (DF_PARAM) (*mn), 0);
|
|
mn++;
|
|
}
|
|
DfSendMessage(cwnd, DFM_SHOW_WINDOW, 0, 0);
|
|
break;
|
|
case DFM_COMMAND:
|
|
if ((int) p1 == DF_ID_OK) {
|
|
int item;
|
|
int tl = DfGetTextLines(cwnd);
|
|
for (item = 0; item < tl; item++)
|
|
if (DfItemSelected(cwnd, item))
|
|
mn[item][0] = DF_LISTSELECTOR;
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
return DfDefaultWndProc(wnd, msg, p1, p2);
|
|
}
|
|
|
|
void DfMessageLog(DFWINDOW wnd)
|
|
{
|
|
if (DfDialogBox(wnd, &Log, TRUE, LogProc))
|
|
{
|
|
if (DfCheckBoxSetting(&Log, DF_ID_LOGGING))
|
|
{
|
|
logfile = fopen("DFLAT.LOG", "wt");
|
|
DfSetCommandToggle(&DfMainMenu, DF_ID_LOG);
|
|
}
|
|
else if (logfile != NULL)
|
|
{
|
|
fclose(logfile);
|
|
logfile = NULL;
|
|
DfClearCommandToggle(&DfMainMenu, DF_ID_LOG);
|
|
}
|
|
}
|
|
}
|
|
|
|
#endif
|
|
|
|
/* EOF */
|