00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
#ifndef UXFRAME_HPP
00029
#define UXFRAME_HPP
00030
00031
#include "../uobject.hpp"
00032
00033
#include "../util/urectangle.hpp"
00034
#include "../signals/ufo_signals.hpp"
00035
00036
namespace ufo {
00037
00038
class UXContext;
00039
class UXDisplay;
00040
class URootPane;
00041
class UWidget;
00042
class UVideoDevice;
00043
00055 class UFO_EXPORT UXFrame :
public UObject {
00056 UFO_DECLARE_DYNAMIC_CLASS(UXFrame)
00057
friend class UXDisplay;
00058
protected:
00059 UXFrame(
UVideoDevice * device);
00060
public:
00061
virtual ~UXFrame();
00062
00063
public:
00065
void swapBuffers();
00067
void makeContextCurrent();
00068
00069
UVideoDevice * getVideoDevice()
const;
00070
00071
public:
00072
UXContext * getContext()
const;
00073
00074
URootPane * getRootPane()
const;
00075
UWidget * getContentPane()
const;
00076
00082
virtual void repaint(
bool force =
false);
00083
00084
public:
00085
void setVisible(
bool vis);
00086
bool isVisible();
00087
00088
void setDepth(
int depth);
00089
int getDepth()
const;
00090
00091
00092
00093
00094
00096
void setTitle(std::string title);
00098 std::string getTitle();
00099
00100
void setFullScreened(
bool b);
00101
bool isFullScreened()
const;
00102
00106
void setFrameStyle(uint32_t frameStyle);
00107 FrameStyle getFrameStyle()
const;
00108
00109
void setResizable(
bool b);
00110
bool isResizable()
const;
00111
00116
void setInitialFrameState(uint32_t initialState);
00120 FrameState getFrameState()
const;
00121
00122
00123
00124
00125
00130
void pack();
00131
00132
void setSize(
int w,
int h);
00133
void setSize(
const UDimension & d);
00135
UDimension getSize()
const;
00136
00137
void setLocation(
int x,
int y);
00138
void setLocation(
const UPoint & d);
00141
UPoint getLocation()
const;
00142
00143
void setBounds(
int x,
int y,
int w,
int h);
00144
void setBounds(
const URectangle & rect);
00146
URectangle getBounds()
const;
00147
00152
void makeScreenShot(std::string fileNameA);
00153
00154
public:
00155 USignal1<UXFrame*> & sigMoved();
00156 USignal1<UXFrame*> & sigResized();
00157
00158
protected:
00159
void openContext();
00160
void closeContext();
00161
00162
private:
00163
void deviceMoved(
UVideoDevice * videoDevice);
00164
void deviceResized(
UVideoDevice * videoDevice);
00165
00166
private:
00167
UVideoDevice * m_videoDevice;
00168
UXContext * m_context;
00169
00170
bool m_isVisible;
00171
private:
00172 USignal1<UXFrame*> m_sigMoved;
00173 USignal1<UXFrame*> m_sigResized;
00174 };
00175
00176
00177
00178
00179
00180
inline USignal1<UXFrame*> &
00181 UXFrame::sigMoved() {
00182
return m_sigMoved;
00183 }
00184
00185
inline USignal1<UXFrame*> &
00186 UXFrame::sigResized() {
00187
return m_sigResized;
00188 }
00189
00190 }
00191
00192
#endif // UXFRAME_HPP