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 / SlopeBox.C < prev    next >
C/C++ Source or Header  |  1998-11-23  |  3KB  |  136 lines

  1. // $Id: SlopeBox.C,v 1.11 1998/11/23 17:43:34 zeller Exp $
  2. // Slope boxes
  3.  
  4. // Copyright (C) 1995 Technische Universitaet Braunschweig, Germany.
  5. // Written by Andreas Zeller <zeller@ips.cs.tu-bs.de>.
  6. // 
  7. // This file is part of DDD.
  8. // 
  9. // DDD is free software; you can redistribute it and/or
  10. // modify it under the terms of the GNU General Public
  11. // License as published by the Free Software Foundation; either
  12. // version 2 of the License, or (at your option) any later version.
  13. // 
  14. // DDD is distributed in the hope that it will be useful,
  15. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  17. // See the GNU General Public License for more details.
  18. // 
  19. // You should have received a copy of the GNU General Public
  20. // License along with DDD -- see the file COPYING.
  21. // If not, write to the Free Software Foundation, Inc.,
  22. // 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  23. // 
  24. // DDD is the data display debugger.
  25. // For details, see the DDD World-Wide-Web page, 
  26. // `http://www.cs.tu-bs.de/softech/ddd/',
  27. // or send a mail to the DDD developers <ddd@ips.cs.tu-bs.de>.
  28.  
  29. char SlopeBox_rcsid[] = 
  30.     "$Id: SlopeBox.C,v 1.11 1998/11/23 17:43:34 zeller Exp $";
  31.  
  32. #ifdef __GNUG__
  33. #pragma implementation
  34. #endif
  35.  
  36. #include "SlopeBox.h"
  37. #include "printBox.h"
  38.  
  39. #include <X11/Xlib.h>
  40. #include <X11/Intrinsic.h>
  41.  
  42. DEFINE_TYPE_INFO_1(SlopeBox, LineBox)
  43. DEFINE_TYPE_INFO_1(FallBox, SlopeBox)
  44. DEFINE_TYPE_INFO_1(RiseBox, SlopeBox)
  45.  
  46.  
  47. // FallBox
  48.  
  49. // Draw
  50. void FallBox::__draw(Widget w, 
  51.              const BoxRegion& r, 
  52.              const BoxRegion&, 
  53.              GC gc,
  54.              bool) const
  55. {
  56.     BoxSize space   = r.space();
  57.     BoxPoint origin = r.origin();
  58.  
  59.     XDrawLine(XtDisplay(w), XtWindow(w), gc, origin[X], origin[Y],
  60.     origin[X] + space[X], origin[Y] + space[Y]);
  61. }
  62.  
  63. // Print
  64. void FallBox::_print(ostream& os, 
  65.              const BoxRegion& region, 
  66.              const PrintGC& gc) const
  67. {
  68.     BoxPoint origin = region.origin() ;
  69.     BoxPoint space = region.space();
  70.  
  71.     if (gc.isFig()) {
  72.     os << LINEHEAD1 ;
  73.     os << linethickness() << LINEHEAD2 ;
  74.     os << origin[X] << " " << origin[Y] << " " ;
  75.     os << origin[X] + space[X] << " " ;
  76.     os << origin[Y] + space[Y] << " " ;
  77.     os << "9999 9999\n" ;
  78.     } else if (gc.isPostScript()) {
  79.     os << origin[X] << " " << origin[Y] << " " ;
  80.     os << origin[X] + space[X] << " " ;
  81.     os << origin[Y] + space[Y] << " " ;
  82.     os << linethickness() << " line*\n";
  83.     }
  84. }
  85.  
  86.  
  87.  
  88. void FallBox::dump(ostream& s) const
  89. {
  90.     s << "fall()";
  91. }
  92.  
  93.  
  94.  
  95. // RiseBox
  96.  
  97. // Draw
  98. void RiseBox::__draw(Widget w, 
  99.              const BoxRegion& r, 
  100.              const BoxRegion&, 
  101.              GC gc,
  102.              bool) const
  103. {
  104.     BoxSize space   = r.space();
  105.     BoxPoint origin = r.origin();
  106.  
  107.     XDrawLine(XtDisplay(w), XtWindow(w), gc, origin[X], origin[Y] + space[Y],
  108.     origin[X] + space[X], origin[Y]);
  109. }
  110.  
  111. // Print
  112. void RiseBox::_print(ostream& os, 
  113.              const BoxRegion& region, 
  114.              const PrintGC& gc) const
  115. {
  116.     BoxPoint origin = region.origin();
  117.     BoxPoint space  = region.space();
  118.     
  119.     if (gc.isFig()) {
  120.     os << LINEHEAD1 ;
  121.     os << linethickness() << LINEHEAD2 ;
  122.     os << origin[X] << " " << origin[Y] + space[Y] << " " ;
  123.     os << origin[X] + space[X] << " " << origin[Y] << " " ;
  124.     os << "9999 9999\n" ;
  125.     } else if (gc.isPostScript()) {
  126.     os << origin[X] << " " << origin[Y] + space[Y] << " " ;
  127.     os << origin[X] + space[X] << " " << origin[Y] << " " ;
  128.     os << linethickness() << " line*\n";
  129.     }
  130. }
  131.     
  132. void RiseBox::dump(ostream& s) const
  133. {
  134.     s << "rise()";
  135. }
  136.