1 /* ------------ log .c ------------ */
3 #include "dflat32/dflat.h"
7 static char *message
[] = {
9 #define DFlatMsg(m) " " #m,
10 #include "dflat32/dflatmsg.h"
14 static FILE *logfile
= NULL
;
17 void LogMessages (DFWINDOW wnd
, DFMESSAGE msg
, PARAM p1
, PARAM p2
)
19 if (logfile
!= NULL
&& message
[msg
][0] != ' ')
21 "%-20.20s %-12.12s %-20.20s, %5.5ld, %5.5ld\n",
22 wnd
? (GetTitle(wnd
) ? GetTitle(wnd
) : "") : "",
23 wnd
? ClassNames
[GetClass(wnd
)] : "",
24 message
[msg
]+1, p1
, p2
);
27 static int LogProc(DFWINDOW wnd
, DFMESSAGE msg
, PARAM p1
, PARAM p2
)
29 DFWINDOW cwnd
= ControlWindow(&Log
, ID_LOGLIST
);
33 AddAttribute(cwnd
, MULTILINE
| VSCROLLBAR
);
35 DfSendMessage(cwnd
, ADDTEXT
, (PARAM
) (*mn
), 0);
38 DfSendMessage(cwnd
, SHOW_WINDOW
, 0, 0);
41 if ((int) p1
== ID_OK
) {
43 int tl
= GetTextLines(cwnd
);
44 for (item
= 0; item
< tl
; item
++)
45 if (ItemSelected(cwnd
, item
))
46 mn
[item
][0] = LISTSELECTOR
;
52 return DefaultWndProc(wnd
, msg
, p1
, p2
);
55 void MessageLog(DFWINDOW wnd
)
57 if (DfDialogBox(wnd
, &Log
, TRUE
, LogProc
))
59 if (CheckBoxSetting(&Log
, ID_LOGGING
))
61 logfile
= fopen("DFLAT.LOG", "wt");
62 SetCommandToggle(&MainMenu
, ID_LOG
);
64 else if (logfile
!= NULL
)
68 ClearCommandToggle(&MainMenu
, ID_LOG
);