home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 mARCH / PCWK3A99.iso / Linux / DDD331 / DDD-3_1_.000 / DDD-3_1_ / ddd-3.1.1 / ddd / ddd.vsl.m4 < prev    next >
Text File  |  1998-12-04  |  6KB  |  217 lines

  1. // $Id: ddd.vsl.m4,v 1.9.4.1 1998/12/04 15:20:10 zeller Exp $ -*- c++ -*-
  2. // VSL functions for DDD graph display
  3. include(ifdef(`srcdir',srcdir()/colors.m4,colors.m4))dnl
  4. DDD_VSL_WARNING
  5.  
  6. // Copyright (C) 1995-1998 Technische Universitaet Braunschweig, Germany.
  7. // Written by Andreas Zeller <zeller@ips.cs.tu-bs.de>.
  8. // 
  9. // This file is part of DDD.
  10. // 
  11. // DDD is free software; you can redistribute it and/or
  12. // modify it under the terms of the GNU General Public
  13. // License as published by the Free Software Foundation; either
  14. // version 2 of the License, or (at your option) any later version.
  15. // 
  16. // DDD is distributed in the hope that it will be useful,
  17. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  18. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  19. // See the GNU General Public License for more details.
  20. // 
  21. // You should have received a copy of the GNU General Public
  22. // License along with DDD -- see the file COPYING.
  23. // If not, write to the Free Software Foundation, Inc.,
  24. // 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  25. // 
  26. // DDD is the data display debugger.
  27. // For details, see the DDD World-Wide-Web page, 
  28. // `http://www.cs.tu-bs.de/softech/ddd/',
  29. // or send a mail to the DDD developers <ddd@ips.cs.tu-bs.de>.
  30.  
  31. // Includes
  32. #include <std.vsl>
  33. #include <tab.vsl>
  34. #include <fonts.vsl>
  35. #include <colors.vsl>
  36.  
  37. // Font settings
  38. #pragma replace stdfontfamily
  39. stdfontfamily() = family_typewriter();
  40. small(...) = rm(...);
  41.  
  42. // Colors
  43. display_color(box)   = color(box, "FOREGROUND_COLOR", "DISPLAY_COLOR");
  44. title_color(box)     = color(box, "FOREGROUND_COLOR");
  45. disabled_color(box)  = color(box, "DISPLAY_COLOR", "DISABLED_COLOR");
  46. simple_color(box)    = color(box, "FOREGROUND_COLOR");
  47. text_color(box)      = color(box, "FOREGROUND_COLOR");
  48. pointer_color(box)   = color(box, "DATA_COLOR");
  49. struct_color(box)    = color(box, "FOREGROUND_COLOR");
  50. list_color(box)      = color(box, "FOREGROUND_COLOR");
  51. array_color(box)     = color(box, "DATA_COLOR");
  52. reference_color(box) = color(box, "DATA_COLOR");
  53. changed_color(box)   = color(box, "FOREGROUND_COLOR", "CHANGED_COLOR");
  54. shadow_color(box)    = color(box, "SHADOW_COLOR");
  55.  
  56. // Shadow effects
  57. shadow(box, thickness) =
  58.   box & (square(thickness) | shadow_color(vrule(thickness)))
  59. | square(thickness) & shadow_color(hrule(thickness));
  60. shadow(box) = shadow(box, 1);
  61.  
  62. // Non-expanding alignments
  63. fixed_hlist(_) = hnull();
  64. fixed_hlist(_, head) = hfix(head);
  65. fixed_hlist(sep, head, ...) = hfix(head) & sep & fixed_hlist(sep, ...);
  66.  
  67. fixed_vlist(_) = vnull();
  68. fixed_vlist(_, head) = vfix(head);
  69. fixed_vlist(sep, head, ...) = vfix(head) | sep | fixed_vlist(sep, ...);
  70.  
  71. // The title
  72. title (disp_nr, name) -> 
  73.   title_color(rm(disp_nr & ": ") & bf(name) & hfill());
  74. title (name) -> 
  75.   title_color(bf(name) & hfill());
  76.  
  77. // The annotation
  78. annotation (name) ->
  79.   small(name);
  80.  
  81. // The "disabled" string
  82. disabled () -> 
  83.   disabled_color(vcenter(it("(Disabled)") & hfill()));
  84.  
  85. // No value
  86. none () -> "";
  87.  
  88. // Ordinary values
  89. simple_value (value) -> 
  90.   simple_color(vcenter(value & hfill()));
  91. numeric_value (value) -> 
  92.   simple_color(vcenter(hfill() & value));
  93.  
  94. // Collapsed ordinary values
  95. collapsed_simple_value () -> 
  96.   simple_color(vcenter(rm("...") & hfill()));
  97.  
  98. // Info texts: single lines
  99. text_line (line) -> 
  100.   text_color(rm(line) & hfill());
  101.  
  102. // Multiple lines
  103. text_value (...) -> valign(...);
  104.  
  105. // Collapsed ordinary values
  106. collapsed_text_value () -> 
  107.   text_color(rm("...") & hfill());
  108.  
  109. // Ordinary pointers
  110. pointer_value (value) -> 
  111.   pointer_color(vcenter(value & hfill()));
  112.  
  113. // Collapsed pointers
  114. collapsed_pointer_value () -> 
  115.   pointer_color(vcenter(rm("...") & hfill()));
  116.  
  117. // Dereferenced pointers
  118. dereferenced_pointer_value (value) -> 
  119.   pointer_color(vcenter(bf(value)) & hfill());
  120.  
  121. // Collapsed array
  122. collapsed_array () -> 
  123.   array_color(vcenter(rm("\133...\135") & hfill()));
  124.  
  125. // Empty array
  126. empty_array () -> 
  127.   array_color(vcenter(rm("\133\135") & hfill()));
  128.  
  129. // Vertical array
  130. vertical_array (...) -> 
  131.   array_color(frame(indent(vlist(hwhite() | hrule() | hwhite(), ...))));
  132.  
  133. // Horizontal array
  134. horizontal_array (...) -> 
  135.   array_color(frame(indent(fixed_hlist(vwhite() & vrule() & vwhite(), ...))) 
  136.           & hfill());
  137.  
  138. // Two-dimensional arrays
  139. twodim_array (...) -> 
  140.   array_color(dtab(...));
  141. twodim_array_elem (...) -> 
  142.   rm(...);
  143.  
  144. // Struct value
  145. struct_value (...) -> 
  146.   struct_color(frame(indent(valign(...))));
  147.  
  148. // Collapsed struct
  149. collapsed_struct_value () -> 
  150.   struct_color(vcenter(rm("{...}") & hfill()));
  151.  
  152. // Empty struct
  153. empty_struct_value () ->
  154.   struct_color(vcenter(rm("{}") & hfill()));
  155.  
  156. // Struct member name
  157. struct_member_name (name) -> 
  158.   struct_color(rm(name));
  159.  
  160. // Struct member
  161. struct_member (name, sep, value, name_width) -> 
  162.   vcenter(rm(name) | hspace(name_width)) 
  163.   & vcenter(rm(sep)) & rm(value);
  164.  
  165. // List value
  166. list_value (...) -> 
  167.   list_color(valign(...));
  168.  
  169. // Collapsed list
  170. collapsed_list_value () -> 
  171.   list_color(vcenter(rm("...") & hfill()));
  172.  
  173. // Empty list
  174. empty_list_value () -> 
  175.   list_color(vcenter(rm("") & hfill()));
  176.  
  177. // List member name
  178. list_member_name (name) -> 
  179.   list_color(rm(name));
  180.  
  181. // List member
  182. list_member (name, sep, value, name_width) -> 
  183.   vcenter(rm(name) | hspace(name_width)) 
  184.   & vcenter(rm(sep)) & rm(value) & hfill();
  185.  
  186. // Sequence
  187. sequence_value (...) -> 
  188.   simple_color(fixed_hlist(vwhite(), ...) & hfill());
  189.  
  190. // Collapsed sequence
  191. collapsed_sequence_value () -> 
  192.   collapsed_simple_value();
  193.  
  194. // Reference
  195. reference_value (ref, value) -> 
  196.   reference_color(vcenter(rm(ref & ": ")) & value & hfill());
  197.  
  198. // Collapsed reference
  199. collapsed_reference_value () -> 
  200.   reference_color(vcenter(rm("...") & hfill()));
  201.  
  202. // Changed value
  203. changed_value (value) -> 
  204.   changed_color(it(value));
  205.  
  206. // A value that is repeated N times
  207. repeated_value (value, n) ->
  208.   value & vcenter(rm(" <" & dec(n) & "\327>"));
  209.  
  210. // The entire box
  211. display_box (title, value) -> 
  212.   shadow(display_color(frame(title | hrule() | hwhite () | rm(value))));
  213.  
  214. // The entire box, but without title
  215. display_box (value) -> 
  216.   shadow(display_color(frame(rm(value))));
  217.