2
/******************************************************************************
4
* DESCRIPTION: Abstract window class
5
* COPYRIGHT : (C) 1999 Joris van der Hoeven
6
*******************************************************************************
7
* This software falls under the GNU general public license and comes WITHOUT
8
* ANY WARRANTY WHATSOEVER. See the file $TEXMACS_PATH/LICENSE for more details.
9
* If you don't have this file, write to the Free Software Foundation, Inc.,
10
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
11
******************************************************************************/
15
#include "ps_device.hpp"
16
#include "display.hpp"
18
class window_rep: virtual public ps_device_rep {
22
inline window_rep (display dis);
23
inline virtual ~window_rep ();
24
inline int get_type ();
26
virtual void set_name (string name) = 0;
27
virtual void map () = 0;
28
virtual void unmap () = 0;
29
virtual void full_screen (bool flag) = 0;
30
virtual void get_position (SI& x, SI& y) = 0;
31
virtual void get_size (SI& w, SI& h) = 0;
32
virtual void move (SI x, SI y) = 0;
33
virtual void resize (SI w, SI h) = 0;
34
virtual void set_keyboard_focus (widget wid) = 0;
36
virtual void clip (SI x1, SI y1, SI x2, SI y2) = 0;
37
virtual void unclip () = 0;
38
virtual void translate (SI x1, SI y1, SI x2, SI y2, SI dx, SI dy) = 0;
39
virtual void invalidate (SI x1, SI y1, SI x2, SI y2) = 0;
40
virtual bool repainted () = 0;
41
virtual ps_device window_to_shadow (SI x1, SI y1, SI x2, SI y2) = 0;
42
virtual void shadow_to_window (SI x1, SI y1, SI x2, SI y2) = 0;
45
inline window_rep::window_rep (display dis2): dis (dis2) {}
46
inline window_rep::~window_rep () {}
47
inline int window_rep::get_type () { return PS_DEVICE_SCREEN; }
49
window plain_window (widget w, char* name, SI ww=0, SI hh=0, SI x=0, SI y=0);
50
window popup_window (widget w, SI x, SI y);
52
#endif // defined WINDOW_H