00001
#ifndef CAMPANEL_HPP
00002
#define CAMPANEL_HPP
00003
00004
#if HAVE_CONFIG_H
00005
#include <config.h>
00006
#endif
00007
00008
#include <qdialog.h>
00009
#include <qimage.h>
00010
#include <qobject.h>
00011
#include <qpainter.h>
00012
#include <qpopupmenu.h>
00013
#include <qsize.h>
00014
#include <qwidget.h>
00015
00016 class CCamPanel:
public QWidget
00017 {
00018 Q_OBJECT
00019
private:
00020
00021 QSize ImgSize, VisSize;
00022 QString Name, Description;
00023 QImage ImgNull;
00024
bool Drawable;
00025
int Usage;
00026
int PanelType;
00027
00028
void CallIntg(
int n, uchar *dst, uchar *src);
00029
00030
protected:
00032 int image_w;
00034 int image_h;
00036 int half_w;
00038 int half_h;
00039
00041 QImage
ImgRGB;
00043 QImage
ImgY;
00045 QImage
ImgU;
00047 QImage
ImgV;
00049 QPixmap
PixGraph;
00050
00051 QPopupMenu *
pMenu;
00052 bool MenuVisible;
00053
00054
CCamPanel(
const QString &new_name,
const QString &new_description,
int panel_type,
bool draw = TRUE, QWidget *parent = 0,
const char *name = 0);
00055
void SetImageSize(
const QSize &new_size);
00056
void SetVisibleSize(
const QSize &new_size);
00057
void CreateImages();
00058
00059
void ConnectUsage(
CCamPanel *parent);
00060
void ConnectResizes(
CCamPanel *parent);
00061
00062
public:
00066 enum PanelTypes {
00067
None,
00068
RGB,
00069
YUV420,
00070
Graph,
00071 };
00072
00073
virtual ~CCamPanel();
00074
00075 QString
GetName() const;
00076 QString GetDescription() const;
00077
int GetPanelType() const;
00078 QSize GetImageSize() const;
00079 QSize GetVisibleSize() const;
00080
bool IsDrawable();
00081
int IsUsed();
00082
00083
00084 virtual const QImage &GetImage(
int n = 0);
00085 const QPixmap &GetPixmap() const;
00086
00087 virtual QDialog *GetPropertiesDialog() const;
00088
00089
00090 const
CCamPanel ©(const
CCamPanel &src);
00091 const
CCamPanel &operator += (const
CCamPanel &add);
00092
CCamPanel &operator -= (const
CCamPanel &minus);
00093
00094
00095 virtual QSize sizeHint() const;
00096 virtual QSizePolicy sizePolicy() const;
00097 virtual
void paintEvent(QPaintEvent *);
00098
00099 public slots:
00100 virtual
void SetSize(const QSize &new_size);
00101
00102
void IncrementUse();
00103
void DecrementUse();
00104
00105 virtual
void RightClick(const QPoint &pos);
00106
00107 signals:
00109
void ChangedImageSize(const QSize &new_size);
00111
void ChangedVisibleSize(const QSize &new_size);
00113
void ChangedVisibility(
bool new_visibility);
00115
void ChangedToVisible();
00117
void ChangedToHidden();
00119
void ChangedUsage(
int new_usage);
00121
void ChangedToUsed();
00123
void ChangedToUnused();
00125
void Updated();
00126 };
00127
00128 #endif