home *** CD-ROM | disk | FTP | other *** search
/ BUG 4 / BUGCD1997_05.BIN / aplic / clip4win / clip4win.exe / C4W30E.HUF / SOURCE / DBG.PRG < prev    next >
Text File  |  1995-04-27  |  7KB  |  228 lines

  1.  
  2. #ifndef    WIN_DEBUG
  3. #define    WIN_DEBUG
  4. #endif
  5.  
  6. #define    WIN_WANT_CLIPBOARD
  7. #define    WIN_WANT_ALL
  8. #include "windows.ch"
  9.  
  10.  
  11. static    aLog := {}
  12.  
  13.  
  14. static function asString(x)
  15. local    v := valtype(x)
  16.  
  17. do case
  18. case v == "C"
  19. case v == "N"
  20.     return ltrim(str(x))
  21. case v == "L"
  22.     return iif(x, ".T.", ".F.")
  23. case v == "D"
  24.     return "date"
  25. case v == "U"
  26.     return "NIL"
  27. case v == "A"
  28.     v = "{"
  29.     aeval(x, {|e, i| v += iif(i == 1, "", ", ") + asString(e)})
  30.     v += "}"
  31.     return v
  32. case v == "O"
  33.     return "<Object " + x:classname() + ">"
  34. case v == "B"
  35.     return "<Block>"
  36. otherwise
  37.     return "<Valtype " + v + ">"
  38. end case
  39.  
  40. return x
  41.  
  42.  
  43. procedure DbgTrace(p1, p2, p3, p4, p5, p6, p7, p8)
  44. local    i, c, cBuf := "", n := pcount(), a := {p1, p2, p3, p4, p5, p6, p7, p8}
  45.  
  46. for i=1 to n
  47.     c = AsString(a[i])
  48.     cBuf += iif(i == 1, c, chr(9) + c)
  49. next i
  50. aadd(aLog, cBuf)
  51. return
  52.  
  53.  
  54. static function asMsg(nMsg)
  55. static    aMsg :=                            ;
  56. {                                ;
  57.     {WM_COMPACTING,        "WM_COMPACTING"},        ;
  58.     {WM_WININICHANGE,    "WM_WININICHANGE"},        ;
  59.     {WM_SYSCOLORCHANGE,    "WM_SYSCOLORCHANGE"},        ;
  60.     {WM_QUERYNEWPALETTE,    "WM_QUERYNEWPALETTE"},        ;
  61.     {WM_PALETTEISCHANGING,    "WM_PALETTEISCHANGING"},    ;
  62.     {WM_PALETTECHANGED,    "WM_PALETTECHANGED"},        ;
  63.     {WM_FONTCHANGE,        "WM_FONTCHANGE"},        ;
  64.     {WM_SPOOLERSTATUS,    "WM_SPOOLERSTATUS"},        ;
  65.     {WM_DEVMODECHANGE,    "WM_DEVMODECHANGE"},        ;
  66.     {WM_TIMECHANGE,        "WM_TIMECHANGE"},        ;
  67.     {WM_NULL,        "WM_NULL"},            ;
  68.     {WM_USER,        "WM_USER"},            ;
  69.     {WM_PENWINFIRST,    "WM_PENWINFIRST"},        ;
  70.     {WM_PENWINLAST,        "WM_PENWINLAST"},        ;
  71.     {WM_COALESCE_FIRST,    "WM_COALESCE_FIRST"},        ;
  72.     {WM_COALESCE_LAST,    "WM_COALESCE_LAST"},        ;
  73.     {WM_POWER,        "WM_POWER"},            ;
  74.     {WM_QUERYENDSESSION,    "WM_QUERYENDSESSION"},        ;
  75.     {WM_ENDSESSION,        "WM_ENDSESSION"},        ;
  76.     {WM_QUIT,        "WM_QUIT"},            ;
  77.     {WM_SYSTEMERROR,    "WM_SYSTEMERROR"},        ;
  78.     {WM_CREATE,        "WM_CREATE"},            ;
  79.     {WM_DESTROY,        "WM_DESTROY"},            ;
  80.     {WM_NCCREATE,        "WM_NCCREATE"},            ;
  81.     {WM_NCDESTROY,        "WM_NCDESTROY"},        ;
  82.     {WM_SHOWWINDOW,        "WM_SHOWWINDOW"},        ;
  83.     {WM_SETREDRAW,        "WM_SETREDRAW"},        ;
  84.     {WM_ENABLE,        "WM_ENABLE"},            ;
  85.     {WM_SETTEXT,        "WM_SETTEXT"},            ;
  86.     {WM_GETTEXT,        "WM_GETTEXT"},            ;
  87.     {WM_GETTEXTLENGTH,    "WM_GETTEXTLENGTH"},        ;
  88.     {WM_WINDOWPOSCHANGING,    "WM_WINDOWPOSCHANGING"},    ;
  89.     {WM_WINDOWPOSCHANGED,    "WM_WINDOWPOSCHANGED"},        ;
  90.     {WM_MOVE,        "WM_MOVE"},            ;
  91.     {WM_SIZE,        "WM_SIZE"},            ;
  92.     {WM_QUERYOPEN,        "WM_QUERYOPEN"},        ;
  93.     {WM_CLOSE,        "WM_CLOSE"},            ;
  94.     {WM_GETMINMAXINFO,    "WM_GETMINMAXINFO"},        ;
  95.     {WM_PAINT,        "WM_PAINT"},            ;
  96.     {WM_ERASEBKGND,        "WM_ERASEBKGND"},        ;
  97.     {WM_ICONERASEBKGND,    "WM_ICONERASEBKGND"},        ;
  98.     {WM_NCPAINT,        "WM_NCPAINT"},            ;
  99.     {WM_NCCALCSIZE,        "WM_NCCALCSIZE"},        ;
  100.     {WM_NCHITTEST,        "WM_NCHITTEST"},        ;
  101.     {WM_QUERYDRAGICON,    "WM_QUERYDRAGICON"},        ;
  102.     {WM_DROPFILES,        "WM_DROPFILES"},        ;
  103.     {WM_ACTIVATE,        "WM_ACTIVATE"},            ;
  104.     {WM_ACTIVATEAPP,    "WM_ACTIVATEAPP"},        ;
  105.     {WM_NCACTIVATE,        "WM_NCACTIVATE"},        ;
  106.     {WM_SETFOCUS,        "WM_SETFOCUS"},            ;
  107.     {WM_KILLFOCUS,        "WM_KILLFOCUS"},        ;
  108.     {WM_KEYDOWN,        "WM_KEYDOWN"},            ;
  109.     {WM_KEYUP,        "WM_KEYUP"},            ;
  110.     {WM_CHAR,        "WM_CHAR"},            ;
  111.     {WM_DEADCHAR,        "WM_DEADCHAR"},            ;
  112.     {WM_SYSKEYDOWN,        "WM_SYSKEYDOWN"},        ;
  113.     {WM_SYSKEYUP,        "WM_SYSKEYUP"},            ;
  114.     {WM_SYSCHAR,        "WM_SYSCHAR"},            ;
  115.     {WM_SYSDEADCHAR,    "WM_SYSDEADCHAR"},        ;
  116.     {WM_KEYFIRST,        "WM_KEYFIRST"},            ;
  117.     {WM_KEYLAST,        "WM_KEYLAST"},            ;
  118.     {WM_MOUSEMOVE,        "WM_MOUSEMOVE"},        ;
  119.     {WM_LBUTTONDOWN,    "WM_LBUTTONDOWN"},        ;
  120.     {WM_LBUTTONUP,        "WM_LBUTTONUP"},        ;
  121.     {WM_LBUTTONDBLCLK,    "WM_LBUTTONDBLCLK"},        ;
  122.     {WM_RBUTTONDOWN,    "WM_RBUTTONDOWN"},        ;
  123.     {WM_RBUTTONUP,        "WM_RBUTTONUP"},        ;
  124.     {WM_RBUTTONDBLCLK,    "WM_RBUTTONDBLCLK"},        ;
  125.     {WM_MBUTTONDOWN,    "WM_MBUTTONDOWN"},        ;
  126.     {WM_MBUTTONUP,        "WM_MBUTTONUP"},        ;
  127.     {WM_MBUTTONDBLCLK,    "WM_MBUTTONDBLCLK"},        ;
  128.     {WM_MOUSEFIRST,        "WM_MOUSEFIRST"},        ;
  129.     {WM_MOUSELAST,        "WM_MOUSELAST"},        ;
  130.     {WM_NCMOUSEMOVE,    "WM_NCMOUSEMOVE"},        ;
  131.     {WM_NCLBUTTONDOWN,    "WM_NCLBUTTONDOWN"},        ;
  132.     {WM_NCLBUTTONUP,    "WM_NCLBUTTONUP"},        ;
  133.     {WM_NCLBUTTONDBLCLK,    "WM_NCLBUTTONDBLCLK"},        ;
  134.     {WM_NCRBUTTONDOWN,    "WM_NCRBUTTONDOWN"},        ;
  135.     {WM_NCRBUTTONUP,    "WM_NCRBUTTONUP"},        ;
  136.     {WM_NCRBUTTONDBLCLK,    "WM_NCRBUTTONDBLCLK"},        ;
  137.     {WM_NCMBUTTONDOWN,    "WM_NCMBUTTONDOWN"},        ;
  138.     {WM_NCMBUTTONUP,    "WM_NCMBUTTONUP"},        ;
  139.     {WM_NCMBUTTONDBLCLK,    "WM_NCMBUTTONDBLCLK"}        ;
  140. }
  141. // these 2 arrays are separate because some Clipper compiler
  142. // versions fail with Memory Overbooked or other errors
  143. static    aMsg2 :=                        ;
  144. {                                ;
  145.     {WM_MOUSEACTIVATE,    "WM_MOUSEACTIVATE"},        ;
  146.     {WM_CANCELMODE,        "WM_CANCELMODE"},        ;
  147.     {WM_TIMER,        "WM_TIMER"},            ;
  148.     {WM_INITMENU,        "WM_INITMENU"},            ;
  149.     {WM_INITMENUPOPUP,    "WM_INITMENUPOPUP"},        ;
  150.     {WM_MENUSELECT,        "WM_MENUSELECT"},        ;
  151.     {WM_MENUCHAR,        "WM_MENUCHAR"},            ;
  152.     {WM_COMMAND,        "WM_COMMAND"},            ;
  153.     {WM_HSCROLL,        "WM_HSCROLL"},            ;
  154.     {WM_VSCROLL,        "WM_VSCROLL"},            ;
  155.     {WM_SETCURSOR,        "WM_SETCURSOR"},        ;
  156.     {WM_SYSCOMMAND,        "WM_SYSCOMMAND"},        ;
  157.     {WM_MDICREATE,        "WM_MDICREATE"},        ;
  158.     {WM_MDIDESTROY,        "WM_MDIDESTROY"},        ;
  159.     {WM_MDIACTIVATE,    "WM_MDIACTIVATE"},        ;
  160.     {WM_MDIRESTORE,        "WM_MDIRESTORE"},        ;
  161.     {WM_MDINEXT,        "WM_MDINEXT"},            ;
  162.     {WM_MDIMAXIMIZE,    "WM_MDIMAXIMIZE"},        ;
  163.     {WM_MDITILE,        "WM_MDITILE"},            ;
  164.     {WM_MDICASCADE,        "WM_MDICASCADE"},        ;
  165.     {WM_MDIICONARRANGE,    "WM_MDIICONARRANGE"},        ;
  166.     {WM_MDIGETACTIVE,    "WM_MDIGETACTIVE"},        ;
  167.     {WM_MDISETMENU,        "WM_MDISETMENU"},        ;
  168.     {WM_CHILDACTIVATE,    "WM_CHILDACTIVATE"},        ;
  169.     {WM_INITDIALOG,        "WM_INITDIALOG"},        ;
  170.     {WM_NEXTDLGCTL,        "WM_NEXTDLGCTL"},        ;
  171.     {WM_PARENTNOTIFY,    "WM_PARENTNOTIFY"},        ;
  172.     {WM_ENTERIDLE,        "WM_ENTERIDLE"},        ;
  173.     {WM_GETDLGCODE,        "WM_GETDLGCODE"},        ;
  174.     {WM_CTLCOLOR,        "WM_CTLCOLOR"},            ;
  175.     {WM_SETFONT,        "WM_SETFONT"},            ;
  176.     {WM_GETFONT,        "WM_GETFONT"},            ;
  177.     {WM_DRAWITEM,        "WM_DRAWITEM"},            ;
  178.     {WM_MEASUREITEM,    "WM_MEASUREITEM"},        ;
  179.     {WM_DELETEITEM,        "WM_DELETEITEM"},        ;
  180.     {WM_COMPAREITEM,    "WM_COMPAREITEM"},        ;
  181.     {WM_VKEYTOITEM,        "WM_VKEYTOITEM"},        ;
  182.     {WM_CHARTOITEM,        "WM_CHARTOITEM"},        ;
  183.     {WM_QUEUESYNC,        "WM_QUEUESYNC"},        ;
  184.     {WM_COMMNOTIFY,        "WM_COMMNOTIFY"},        ;
  185.     {WM_CUT,        "WM_CUT"},            ;
  186.     {WM_COPY,        "WM_COPY"},            ;
  187.     {WM_PASTE,        "WM_PASTE"},            ;
  188.     {WM_CLEAR,        "WM_CLEAR"},            ;
  189.     {WM_UNDO,        "WM_UNDO"},            ;
  190.     {WM_RENDERFORMAT,    "WM_RENDERFORMAT"},        ;
  191.     {WM_RENDERALLFORMATS,    "WM_RENDERALLFORMATS"},        ;
  192.     {WM_DESTROYCLIPBOARD,    "WM_DESTROYCLIPBOARD"},        ;
  193.     {WM_DRAWCLIPBOARD,    "WM_DRAWCLIPBOARD"},        ;
  194.     {WM_PAINTCLIPBOARD,    "WM_PAINTCLIPBOARD"},        ;
  195.     {WM_SIZECLIPBOARD,    "WM_SIZECLIPBOARD"},        ;
  196.     {WM_VSCROLLCLIPBOARD,    "WM_VSCROLLCLIPBOARD"},        ;
  197.     {WM_HSCROLLCLIPBOARD,    "WM_HSCROLLCLIPBOARD"},        ;
  198.     {WM_ASKCBFORMATNAME,    "WM_ASKCBFORMATNAME"},        ;
  199.     {WM_CHANGECBCHAIN,    "WM_CHANGECBCHAIN"},        ;
  200.     {WM_VBXFIREEVENT,    "WM_VBXFIREEVENT"}        ;
  201. }
  202. static    lNotDone := .t.
  203. local    i, n := len(aMsg), cRet := alltrim(str(nMsg))
  204.  
  205. if lNotDone
  206.     aeval(aMsg2, {|a| aadd(aMsg, a)})
  207.     lNotDone := .f.
  208. endif
  209. for i = 1 to n
  210.     if aMsg[i, 1] == nMsg
  211.         cRet = aMsg[i, 2]
  212.         exit
  213.     endif
  214. next i
  215. return cRet
  216.  
  217.  
  218. function DbgPadMsg(nMsg)
  219. local    c := asMsg(nMsg)
  220. return iif(len(c) < 16, padr(c, 16), c)
  221.  
  222.  
  223. procedure DbgShow()
  224. aChoice(5, 5, 15, 55, aLog)
  225. return
  226.  
  227.  
  228.