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 UVIDEODEVICE_HPP
00029
#define UVIDEODEVICE_HPP
00030
00031
#include "uobject.hpp"
00032
#include "util/upoint.hpp"
00033
#include "util/udimension.hpp"
00034
#include "signals/usignal.hpp"
00035
00036
namespace ufo {
00037
00038
class UXFrame;
00039
00046 class UFO_EXPORT UVideoDevice :
public UObject {
00047 UFO_DECLARE_ABSTRACT_CLASS(UVideoDevice)
00048
public:
00049
virtual void setSize(
int w,
int h) = 0;
00050
virtual UDimension getSize()
const = 0;
00051
00052
virtual void setLocation(
int x,
int y) = 0;
00053
virtual UPoint getLocation()
const = 0;
00054
00055
virtual void setTitle(
const std::string & title) = 0;
00056
virtual std::string getTitle()
const = 0;
00057
00058
virtual void setDepth(
int depth) = 0;
00059
virtual int getDepth()
const = 0;
00060
00061
virtual void swapBuffers() = 0;
00065
virtual void makeContextCurrent() = 0;
00066
00067
virtual bool show() = 0;
00068
virtual void hide() = 0;
00069
00073
virtual void setFrameStyle(uint32_t frameStyle) = 0;
00074
virtual uint32_t getFrameStyle()
const = 0;
00075
00080
virtual void setInitialFrameState(uint32_t frameState) = 0;
00084
virtual uint32_t getFrameState()
const = 0;
00085
00086
public:
00087
virtual void setFrame(
UXFrame * frame) = 0;
00097
virtual void notify(uint32_t type,
int arg1,
int arg2,
int arg3,
int arg4) = 0;
00098
00099
public:
00100 USignal1<UVideoDevice*> & sigMoved();
00101 USignal1<UVideoDevice*> & sigResized();
00102
private:
00103 USignal1<UVideoDevice*> m_sigMoved;
00104 USignal1<UVideoDevice*> m_sigResized;
00105 };
00106
00107
00108
00109
00110
00111
inline USignal1<UVideoDevice*> &
00112 UVideoDevice::sigMoved() {
00113
return m_sigMoved;
00114 }
00115
00116
inline USignal1<UVideoDevice*> &
00117 UVideoDevice::sigResized() {
00118
return m_sigResized;
00119 }
00120
00121 }
00122
00123
#endif // UVIDEODEVICE_HPP