Diff for /np2/win9x/trace.cpp between versions 1.18 and 1.19

version 1.18, 2007/12/16 14:58:24 version 1.19, 2008/02/17 01:29:17
Line 1 Line 1
 #include        "compiler.h"  #include        "compiler.h"
 #include        <stdarg.h>  #include        <stdarg.h>
   #include        "resource.h"
 #include        "strres.h"  #include        "strres.h"
 #include        "textfile.h"  #include        "textfile.h"
 #include        "oemtext.h"  #include        "oemtext.h"
 #include        "dosio.h"  #include        "dosio.h"
 #include        "ini.h"  #include        "ini.h"
   #include        "menu.h"
   
 #ifdef TRACE  #ifdef TRACE
   
Line 22 Line 23
 #define VIEW_TEXT               "£Í£Ó ¥´¥·¥Ã¥¯"  #define VIEW_TEXT               "£Í£Ó ¥´¥·¥Ã¥¯"
 #define VIEW_SIZE               12  #define VIEW_SIZE               12
   
 typedef struct {  typedef struct
   {
         UINT8           en;          UINT8           en;
         TEXTFILEH       tf;          TEXTFILEH       tf;
         HWND            hwnd;          HWND            hwnd;
Line 37  typedef struct { Line 39  typedef struct {
   
 extern  HINSTANCE       g_hInstance;  extern  HINSTANCE       g_hInstance;
   
 enum {  
         IDM_TRACE1              = 3300,  
         IDM_TRACE2,  
         IDM_TRACEEN,  
         IDM_TRACEFH,  
         IDM_TRACECL  
 };  
   
 static const TCHAR ProgTitle[] = _T("console");  static const TCHAR ProgTitle[] = _T("console");
 static const TCHAR ClassName[] = _T("TRACE-console");  static const TCHAR ClassName[] = _T("TRACE-console");
 static const TCHAR ClassEdit[] = _T("EDIT");  static const TCHAR ClassEdit[] = _T("EDIT");
 static const TCHAR viewfont[] = _T(VIEW_TEXT);  static const TCHAR viewfont[] = _T(VIEW_TEXT);
 static const TCHAR trace1[] = _T("TRACE");  
 static const TCHAR trace2[] = _T("VERBOSE");  
 static const TCHAR traceen[] = _T("Enable");  
 static const TCHAR tracefh[] = _T("File out");  
 static const TCHAR tracecl[] = _T("Clear");  
 static const OEMCHAR crlf[] = OEMTEXT("\r\n");  static const OEMCHAR crlf[] = OEMTEXT("\r\n");
   
 static  TRACEWIN        tracewin;  static  TRACEWIN        tracewin;
 static  HWND            hView = NULL;  static  HWND            s_hView = NULL;
 static  HFONT           hfView = NULL;  static  HFONT           s_hfView = NULL;
 static  HBRUSH          hBrush = NULL;  static  HBRUSH          s_hBrush = NULL;
 static  int                     viewpos;  static  int                     viewpos;
 static  int                     viewleng;  static  int                     viewleng;
 static  TCHAR           viewbuf[VIEW_BUFFERSIZE * 2];  static  TCHAR           viewbuf[VIEW_BUFFERSIZE * 2];
Line 89  static void View_ClrString(void) { Line 79  static void View_ClrString(void) {
         viewpos = 0;          viewpos = 0;
         viewleng = 0;          viewleng = 0;
         viewbuf[0] = '\0';          viewbuf[0] = '\0';
         SetWindowText(hView, viewbuf);          SetWindowText(s_hView, viewbuf);
 }  }
   
 static void View_AddString(const OEMCHAR *string) {  static void View_AddString(const OEMCHAR *string) {
Line 135  static void View_AddString(const OEMCHAR Line 125  static void View_AddString(const OEMCHAR
         viewbuf[vpos + vlen + 1] = '\n';          viewbuf[vpos + vlen + 1] = '\n';
         viewbuf[vpos + vlen + 2] = '\0';          viewbuf[vpos + vlen + 2] = '\0';
         viewleng = vlen + 2;          viewleng = vlen + 2;
         SetWindowText(hView, viewbuf + vpos);          SetWindowText(s_hView, viewbuf + vpos);
         View_ScrollToBottom(hView);          View_ScrollToBottom(s_hView);
 }  }
   
   
 // ----  // ----
   
 static LRESULT CALLBACK traceproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) {  static LRESULT onCreate(HWND hWnd)
   {
           HMENU   hMenu;
         RECT    rc;          RECT    rc;
         HMENU   hmenu;  
   
         switch (msg) {          hMenu = GetSystemMenu(hWnd, FALSE);
                 case WM_CREATE:          menu_addmenures(hMenu, 0, IDR_TRACE, FALSE);
                         hmenu = GetSystemMenu(hWnd, FALSE);  
                         InsertMenu(hmenu, 0, MF_BYPOSITION | MF_STRING,  
                                                                                                                 IDM_TRACE1, trace1);  
                         InsertMenu(hmenu, 1, MF_BYPOSITION | MF_STRING,  
                                                                                                                 IDM_TRACE2, trace2);  
                         InsertMenu(hmenu, 2, MF_BYPOSITION | MF_SEPARATOR, 0, NULL);  
                         InsertMenu(hmenu, 3, MF_BYPOSITION | MF_STRING,  
                                                                                                                 IDM_TRACEEN, traceen);  
                         InsertMenu(hmenu, 4, MF_BYPOSITION | MF_STRING,  
                                                                                                                 IDM_TRACEFH, tracefh);  
                         InsertMenu(hmenu, 5, MF_BYPOSITION | MF_STRING,  
                                                                                                                 IDM_TRACECL, tracecl);  
                         InsertMenu(hmenu, 6, MF_BYPOSITION | MF_SEPARATOR, 0, NULL);  
   
                         CheckMenuItem(hmenu, IDM_TRACE1,          CheckMenuItem(hMenu, IDM_TRACE_TRACE,
                                                                 (tracewin.en & 1)?MF_CHECKED:MF_UNCHECKED);                                                                  (tracewin.en & 1)?MF_CHECKED:MF_UNCHECKED);
                         CheckMenuItem(hmenu, IDM_TRACE2,          CheckMenuItem(hMenu, IDM_TRACE_VERBOSE,
                                                                 (tracewin.en & 2)?MF_CHECKED:MF_UNCHECKED);                                                                  (tracewin.en & 2)?MF_CHECKED:MF_UNCHECKED);
                         CheckMenuItem(hmenu, IDM_TRACEEN,          CheckMenuItem(hMenu, IDM_TRACE_ENABLE,
                                                                 (tracewin.en & 4)?MF_CHECKED:MF_UNCHECKED);                                                                  (tracewin.en & 4)?MF_CHECKED:MF_UNCHECKED);
   
                         GetClientRect(hWnd, &rc);          GetClientRect(hWnd, &rc);
                         hView = CreateWindowEx(WS_EX_CLIENTEDGE,          s_hView = CreateWindowEx(WS_EX_CLIENTEDGE,
                                                         ClassEdit, NULL,                                                          ClassEdit, NULL,
                                                         WS_CHILD | WS_VISIBLE | ES_READONLY | ES_LEFT |                                                          WS_CHILD | WS_VISIBLE | ES_READONLY | ES_LEFT |
                                                         ES_MULTILINE | WS_VSCROLL | ES_AUTOVSCROLL,                                                          ES_MULTILINE | WS_VSCROLL | ES_AUTOVSCROLL,
                                                         0, 0, rc.right, rc.bottom,                                                          0, 0, rc.right, rc.bottom,
                                                         hWnd, (HMENU)IDC_VIEW, g_hInstance, NULL);                                                          hWnd, (HMENU)IDC_VIEW, g_hInstance, NULL);
                         if (!hView) {          SendMessage(s_hView, EM_SETLIMITTEXT, (WPARAM)VIEW_BUFFERSIZE, 0);
                                 break;  
                         }  
                         SendMessage(hView, EM_SETLIMITTEXT, (WPARAM)VIEW_BUFFERSIZE, 0);  
   
                         hfView = CreateFont(VIEW_SIZE, 0, 0, 0, 0, 0, 0, 0,           s_hfView = CreateFont(VIEW_SIZE, 0, 0, 0, 0, 0, 0, 0, 
                                         SHIFTJIS_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,                                          SHIFTJIS_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,
                                         DEFAULT_QUALITY, FIXED_PITCH, viewfont);                                          DEFAULT_QUALITY, FIXED_PITCH, viewfont);
                         if (!hfView) {          if (s_hfView)
                                 break;          {
                         }                  SendMessage(s_hView, WM_SETFONT, (WPARAM)s_hfView,
                         SendMessage(hView, WM_SETFONT, (WPARAM)hfView,  
                                                                                                 MAKELPARAM(TRUE, 0));                                                                                                  MAKELPARAM(TRUE, 0));
                         hBrush = CreateSolidBrush(VIEW_BGCOLOR);          }
                         SetFocus(hView);  
                         return(TRUE);  
   
                 case WM_SYSCOMMAND:          s_hBrush = CreateSolidBrush(VIEW_BGCOLOR);
                         switch(wp) {          SetFocus(s_hView);
                                 case IDM_TRACE1:  
                                         tracewin.en ^= 1;          return TRUE;
                                         hmenu = GetSystemMenu(hWnd, FALSE);  }
                                         CheckMenuItem(hmenu, IDM_TRACE1,  
   static LRESULT onSysCommand(HWND hWnd, WPARAM wParam, LPARAM lParam)
   {
           HMENU   hMenu;
   
           hMenu = GetSystemMenu(hWnd, FALSE);
           switch(wParam)
           {
                   case IDM_TRACE_TRACE:
                           tracewin.en ^= 1;
                           CheckMenuItem(hMenu, IDM_TRACE_TRACE,
                                                                 (tracewin.en & 1)?MF_CHECKED:MF_UNCHECKED);                                                                  (tracewin.en & 1)?MF_CHECKED:MF_UNCHECKED);
                                         break;                          break;
   
                                 case IDM_TRACE2:                  case IDM_TRACE_VERBOSE:
                                         tracewin.en ^= 2;                          tracewin.en ^= 2;
                                         hmenu = GetSystemMenu(hWnd, FALSE);                          CheckMenuItem(hMenu, IDM_TRACE_VERBOSE,
                                         CheckMenuItem(hmenu, IDM_TRACE2,  
                                                                 (tracewin.en & 2)?MF_CHECKED:MF_UNCHECKED);                                                                  (tracewin.en & 2)?MF_CHECKED:MF_UNCHECKED);
                                         break;                          break;
   
                                 case IDM_TRACEEN:                  case IDM_TRACE_ENABLE:
                                         tracewin.en ^= 4;                          tracewin.en ^= 4;
                                         hmenu = GetSystemMenu(hWnd, FALSE);                          CheckMenuItem(hMenu, IDM_TRACE_ENABLE,
                                         CheckMenuItem(hmenu, IDM_TRACEEN,  
                                                                 (tracewin.en & 4)?MF_CHECKED:MF_UNCHECKED);                                                                  (tracewin.en & 4)?MF_CHECKED:MF_UNCHECKED);
                                         break;                          break;
   
                                 case IDM_TRACEFH:                  case IDM_TRACE_FILEOUT:
                                         if (tracewin.tf != NULL) {                          if (tracewin.tf != NULL)
                                                 textfile_close(tracewin.tf);                          {
                                                 tracewin.tf = NULL;                                  textfile_close(tracewin.tf);
                                         }                                  tracewin.tf = NULL;
                                         else {                          }
                                                 tracewin.tf = textfile_create(OEMTEXT("traceout.txt"),                          else
                                                                                                                                                 0x800);                          {
                                         }                                  tracewin.tf = textfile_create(OEMTEXT("traceout.txt"),
                                         hmenu = GetSystemMenu(hWnd, FALSE);                                                                                                                                  0x800);
                                         CheckMenuItem(hmenu, IDM_TRACEFH,                          }
                           CheckMenuItem(hMenu, IDM_TRACE_FILEOUT,
                                                                         (tracewin.tf)?MF_CHECKED:MF_UNCHECKED);                                                                          (tracewin.tf)?MF_CHECKED:MF_UNCHECKED);
                                         break;                          break;
   
                                 case IDM_TRACECL:  
                                         View_ClrString();  
                                         break;  
   
                                 default:                  case IDM_TRACE_CLEAR:
                                         return(DefWindowProc(hWnd, msg, wp, lp));                          View_ClrString();
                         }  
                         break;                          break;
   
                   default:
                           return DefWindowProc(hWnd, WM_SYSCOMMAND, wParam, lParam);
           }
           return FALSE;
   }
   
   static LRESULT CALLBACK traceproc(HWND hWnd, UINT uMsg,
                                                                                                   WPARAM wParam, LPARAM lParam)
   {
           RECT    rc;
   
           switch(uMsg)
           {
                   case WM_CREATE:
                           return onCreate(hWnd);
   
                   case WM_SYSCOMMAND:
                           return onSysCommand(hWnd, wParam, lParam);
   
                 case WM_MOVE:                  case WM_MOVE:
                         if (!(GetWindowLong(hWnd, GWL_STYLE) &                          if (!(GetWindowLong(hWnd, GWL_STYLE) &
                                                                                         (WS_MAXIMIZE | WS_MINIMIZE))) {                                                                                          (WS_MAXIMIZE | WS_MINIMIZE)))
                           {
                                 GetWindowRect(hWnd, &rc);                                  GetWindowRect(hWnd, &rc);
                                 tracecfg.posx = rc.left;                                  tracecfg.posx = rc.left;
                                 tracecfg.posy = rc.top;                                  tracecfg.posy = rc.top;
Line 251  static LRESULT CALLBACK traceproc(HWND h Line 246  static LRESULT CALLBACK traceproc(HWND h
   
                 case WM_SIZE:                                                   // window resize                  case WM_SIZE:                                                   // window resize
                         if (!(GetWindowLong(hWnd, GWL_STYLE) &                          if (!(GetWindowLong(hWnd, GWL_STYLE) &
                                                                                 (WS_MAXIMIZE | WS_MINIMIZE))) {                                                                                  (WS_MAXIMIZE | WS_MINIMIZE)))
                           {
                                 GetWindowRect(hWnd, &rc);                                  GetWindowRect(hWnd, &rc);
                                 tracecfg.width = rc.right - rc.left;                                  tracecfg.width = rc.right - rc.left;
                                 tracecfg.height = rc.bottom - rc.top;                                  tracecfg.height = rc.bottom - rc.top;
                         }                          }
                         MoveWindow(hView, 0, 0, LOWORD(lp), HIWORD(lp), TRUE);                          MoveWindow(s_hView, 0, 0, LOWORD(lParam), HIWORD(lParam), TRUE);
                         View_ScrollToBottom(hView);                          View_ScrollToBottom(s_hView);
                         break;                          break;
   
                 case WM_SETFOCUS:                  case WM_SETFOCUS:
                         SetFocus(hView);                          SetFocus(s_hView);
                         return(0L);                          return(0L);
   
                 case WM_CTLCOLORSTATIC:                  case WM_CTLCOLORSTATIC:
                 case WM_CTLCOLOREDIT:                  case WM_CTLCOLOREDIT:
                         SetTextColor((HDC)wp, VIEW_FGCOLOR);                          SetTextColor((HDC)wParam, VIEW_FGCOLOR);
                         SetBkColor((HDC)wp, VIEW_BGCOLOR);                          SetBkColor((HDC)wParam, VIEW_BGCOLOR);
                         return((LRESULT)hBrush);                          return((LRESULT)s_hBrush);
   
                 case WM_CLOSE:                  case WM_CLOSE:
                         break;                          break;
   
                 case WM_DESTROY:                  case WM_DESTROY:
                         if (hBrush) {                          if (s_hBrush)
                                 DeleteObject(hBrush);                          {
                         }                                  DeleteObject(s_hBrush);
                         if (hfView) {                          }
                                 DeleteObject(hfView);                          if (s_hfView)
                           {
                                   DeleteObject(s_hfView);
                         }                          }
                         break;                          break;
 #if 0  #if 0
Line 287  static LRESULT CALLBACK traceproc(HWND h Line 285  static LRESULT CALLBACK traceproc(HWND h
                         break;                          break;
   
                 case WM_MOVING:                  case WM_MOVING:
                         winloc_movingproc((RECT *)lp);                          winloc_movingproc((RECT *)lParam);
                         break;                          break;
   
                 case WM_ERASEBKGND:                  case WM_ERASEBKGND:
                         return(FALSE);                          return FALSE;
 #endif  #endif
                 default:                  default:
                         return(DefWindowProc(hWnd, msg, wp, lp));                          return DefWindowProc(hWnd, uMsg, wParam, lParam);
         }          }
         return(0L);          return FALSE;
 }  }
   
   
Line 381  void trace_fmt(const char *fmt, ...) { Line 379  void trace_fmt(const char *fmt, ...) {
                 vsprintf(buf, fmt, ap);                  vsprintf(buf, fmt, ap);
 #endif  #endif
                 va_end(ap);                  va_end(ap);
                 if ((tracewin.en & 4) && (hView)) {                  if ((tracewin.en & 4) && (s_hView)) {
                         View_AddString(buf);                          View_AddString(buf);
                 }                  }
                 if (tracewin.tf != NULL) {                  if (tracewin.tf != NULL) {
Line 410  void trace_fmt2(const char *fmt, ...) { Line 408  void trace_fmt2(const char *fmt, ...) {
                 vsprintf(buf, fmt, ap);                  vsprintf(buf, fmt, ap);
 #endif  #endif
                 va_end(ap);                  va_end(ap);
                 if ((tracewin.en & 4) && (hView)) {                  if ((tracewin.en & 4) && (s_hView)) {
                         View_AddString(buf);                          View_AddString(buf);
                 }                  }
                 if (tracewin.tf != FILEH_INVALID) {                  if (tracewin.tf != FILEH_INVALID) {
Line 432  void trace_char(char c) { Line 430  void trace_char(char c) {
 #else  #else
                         const OEMCHAR *pdevstr = devstr;                          const OEMCHAR *pdevstr = devstr;
 #endif  #endif
                         if ((tracewin.en & 4) && (hView)) {                          if ((tracewin.en & 4) && (s_hView))
                           {
                                 View_AddString(pdevstr);                                  View_AddString(pdevstr);
                         }                          }
                         if (tracewin.tf != NULL) {                          if (tracewin.tf != NULL) {

Removed from v.1.18  
changed lines
  Added in v.1.19


RetroPC.NET-CVS <cvs@retropc.net>