home *** CD-ROM | disk | FTP | other *** search
- /* ------------ log .c ------------ */
-
- #include "dflat.h"
-
- #ifdef INCLUDE_LOGGING
-
- static char *message[] = {
- #undef DFlatMsg
- #define DFlatMsg(m) " " #m,
- #include "dflatmsg.h"
- NULL
- };
-
- static FILE *log = NULL;
- extern DBOX Log;
-
- void LogMessages (WINDOW wnd, MESSAGE msg, PARAM p1, PARAM p2)
- {
- if (log != NULL && message[msg][0] != ' ')
- fprintf(log,
- "%-20.20s %-12.12s %-20.20s, %5.5ld, %5.5ld\n",
- wnd ? (GetTitle(wnd) ? GetTitle(wnd) : "") : "",
- wnd ? ClassNames[GetClass(wnd)] : "",
- message[msg]+1, p1, p2);
- }
-
- static int LogProc(WINDOW wnd, MESSAGE msg, PARAM p1, PARAM p2)
- {
- WINDOW cwnd = ControlWindow(&Log, ID_LOGLIST);
- char **mn = message;
- switch (msg) {
- case INITIATE_DIALOG:
- AddAttribute(cwnd, MULTILINE | VSCROLLBAR);
- while (*mn) {
- SendMessage(cwnd, ADDTEXT, (PARAM) (*mn), 0);
- mn++;
- }
- SendMessage(cwnd, SHOW_WINDOW, 0, 0);
- break;
- case COMMAND:
- if ((int) p1 == ID_OK) {
- int item;
- int tl = GetTextLines(cwnd);
- for (item = 0; item < tl; item++)
- if (ItemSelected(cwnd, item))
- mn[item][0] = LISTSELECTOR;
- }
- break;
- default:
- break;
- }
- return DefaultWndProc(wnd, msg, p1, p2);
- }
-
- void MessageLog(WINDOW wnd)
- {
- if (DialogBox(wnd, &Log, TRUE, LogProc)) {
- if (CheckBoxSetting(&Log, ID_LOGGING)) {
- log = fopen("DFLAT.LOG", "wt");
- SetCommandToggle(&MainMenu, ID_LOG);
- }
- else if (log != NULL) {
- fclose(log);
- log = NULL;
- ClearCommandToggle(&MainMenu, ID_LOG);
- }
- }
- }
-
- #endif