Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/ui/ui-drv/qt/fractalwidget.h
blob: 8fcdd8f41868e738c6be52889ca01dbde19ef8ef (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#ifndef FRACTALWIDGET_H
#define FRACTALWIDGET_H

#include <QWidget>

class QImage;
class QPoint;

class FractalWidget : public QWidget
{
    Q_OBJECT

private:
    QImage *m_image[2];
    int m_activeImage;
    QPoint m_mousePosition;
    Qt::MouseButtons m_mouseButtons;
    Qt::KeyboardModifiers m_keyboardModifiers;
    int m_keyCombination;
    QSize m_sizeHint;

    void updateMouse(QMouseEvent *event);

protected:
    void mousePressEvent(QMouseEvent *event);
    void mouseReleaseEvent(QMouseEvent *event);
    void mouseMoveEvent(QMouseEvent *event);
    void wheelEvent(QWheelEvent *event);
    void keyPressEvent(QKeyEvent *event);
    void keyReleaseEvent(QKeyEvent *event);
    void paintEvent (QPaintEvent *event);
    void resizeEvent(QResizeEvent *event);

public:
    FractalWidget();

    void createImages();
    void destroyImages();

    char *imageBuffer1();
    char *imageBuffer2();
    int imageBytesPerLine();
    QSize imageSize();

    void switchActiveImage();

    QPoint mousePosition();
    int mouseButtons();
    int keyCombination();

    void setCursorType(int type);

    QSize sizeHint() const;
    void setSizeHint(const QSize &size);
};

#endif // FRACTALWIDGET_H