home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / c / library / dos / diverses / leda / src / graphics / _win_bas.c < prev    next >
Encoding:
C/C++ Source or Header  |  1991-11-15  |  3.1 KB  |  115 lines

  1. /*******************************************************************************
  2. +
  3. +  LEDA  2.1.1                                                 11-15-1991
  4. +
  5. +
  6. +  _win_basic.c
  7. +
  8. +
  9. +  Copyright (c) 1991  by  Max-Planck-Institut fuer Informatik
  10. +  Im Stadtwald, 6600 Saarbruecken, FRG     
  11. +  All rights reserved.
  12. *******************************************************************************/
  13.  
  14.  
  15. #include <LEDA/window.h>
  16. #include "global.c"
  17.  
  18.  
  19.  
  20. static void window_error_handler(int i, char* s)
  21. { string mesg("LEDA Error(%d): %s",i,s);
  22.   if (i>0) // error
  23.   { x_draw_acknowledge(~mesg);
  24.     x_draw_end();
  25.     abort();
  26.    }
  27.   else default_error_handler(i,s);
  28.  }
  29.  
  30.  
  31. window::window(float width, float height, float xpos, float ypos)
  32. { state = 1;
  33.   x_draw_init_window(int(width),int(height),int(xpos),int(ypos),
  34.                                                         leda_version_string);
  35.   x_draw_init(0.0,100.0,0.0,0);
  36.   set_error_handler(window_error_handler);
  37.   set_flush(true); 
  38. }
  39.  
  40. window::window(float width, float height)
  41. { state = 1;
  42.   x_draw_init_window(int(width),int(height),SCREEN_WIDTH-int(width),0,
  43.                                                         leda_version_string);
  44.   x_draw_init(0.0,100.0,0.0,0);
  45.   set_error_handler(window_error_handler);
  46.   set_flush(true); 
  47. }
  48.  
  49.  
  50. void window::init(double x0,double x1,double y0,int gmode)
  51. { state = 1;
  52.   mesg_list.clear();
  53.   x_draw_init(x0,x1,y0,gmode); 
  54.  }
  55.  
  56. window::~window() 
  57. { set_error_handler(default_error_handler);
  58.   x_draw_end(); 
  59.  }
  60.  
  61. void window::set_redraw(redraw_func_ptr f) 
  62. { x_draw_set_redraw(f); }
  63.  
  64. bool window::set_font(char* s)             
  65. { return x_draw_set_font(s); }
  66.  
  67. void window::set_grid_mode(int i)     
  68. { x_draw_init(x_draw_xmin,x_draw_xmax,x_draw_ymin,i); }
  69.  
  70.  
  71. line_style window::set_line_style(line_style s) 
  72. { return (line_style)x_draw_set_line_style(s); }
  73.  
  74. int window::set_line_width(int w)    
  75. { return x_draw_set_line_width(w); }
  76.  
  77. drawing_mode window::set_mode(drawing_mode m) 
  78. { return (drawing_mode)x_draw_set_mode(m); }
  79.  
  80.  
  81. int window::set_node_width(int w)    
  82. { return x_draw_set_node_width(w); }
  83.  
  84. text_mode window::set_text_mode(text_mode m) 
  85. { return (text_mode)x_draw_set_text_mode(m); }
  86.  
  87. void  window::set_frame_label(string s) { x_draw_set_frame_label(~s); }
  88.  
  89. void  window::set_flush(bool b)       { x_draw_screen_flush = b; }
  90.  
  91. // getting parameters
  92.  
  93. int          window::get_line_width() { return x_draw_line_width;   }
  94. int          window::get_node_width() { return x_draw_node_width;   }
  95. line_style   window::get_line_style() { return x_draw_line_style;   }
  96. text_mode    window::get_text_mode()  { return x_draw_text_mode;    }
  97. drawing_mode window::get_mode()       { return x_draw_drawing_mode; }
  98.  
  99. int          window::mono()           { return (x_draw_depth==1);   }
  100.  
  101. double window::xmin() { return x_draw_xmin; }
  102. double window::xmax() { return x_draw_xmax; }
  103. double window::ymin() { return x_draw_ymin; }
  104. double window::ymax() { return x_draw_ymax; }
  105. double window::scale(){ return x_draw_scale; }
  106.  
  107. int window::xpix(double x) { return x_draw_xpix(x); }
  108. int window::ypix(double x) { return x_draw_ypix(x); }
  109.  
  110. double window::pixnum(int p){ return p/x_draw_scale; }
  111.  
  112. void window::flush() { x_draw_flush(); }
  113.  
  114.