00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _unatwin_hpp_
00022 #define _unatwin_hpp_
00023
00024 #include <ubit/unatgraph.hpp>
00025 namespace ubit {
00026
00027
00030 class UNatWin {
00031 public:
00032 enum {
00033 NONE = 0,
00034 BUFFER = 1<<0,
00035 EXTERNAL = 1<<1,
00036 FRAME = 1<<2,
00037 MAINFRAME, DIALOG, MENU, CHILDWIN
00038 };
00039
00040 ~UNatWin();
00041 UNatWin();
00042 UNatWin(UNatDisp*, unsigned short _wintype);
00043 UNatWin(const UNatWin&);
00044 UNatWin& operator=(const UNatWin&);
00045
00046 static UNatWin* createBuffer(UNatDisp*, int width, int height);
00047
00048 bool isRealized() const {return (sys_win != USysNull);}
00049 USysWin getSysWin() const {return sys_win;}
00050 USysScreen getSysScreen() const {return sys_screen;}
00051 USysDisp getSysDisp() const;
00052
00053 void setTitle(const UStr&);
00054 void show(bool);
00055 void toBack();
00056 void toFront();
00057
00058 void setPos(int x_screen_x, int y_screen);
00059 void getPos(int& x_screen_x, int& y_screen);
00060
00061 void setSize(int width, int height);
00062 void getSize(int& width, int& height);
00063
00064
00065
00066 private:
00067 friend class UDisp;
00068 friend class UGraph;
00069 friend class UNatGraph;
00070 friend class UNatDisp;
00071 friend class UHardWinImpl;
00072
00073 unsigned short wintype;
00074 bool own_sys_win;
00075 USysWin sys_win;
00076 USysScreen sys_screen;
00077
00078 USysWin createWinImpl(UNatDisp*, unsigned short _wintype);
00079 void reshapeCB(UNatDisp*, UWin*);
00080 };
00081
00082 }
00083 #endif
00084
00085