2015-09-25 21:37:19 +02:00
|
|
|
// File: fevent.h
|
|
|
|
// Provides: class FEvent
|
|
|
|
//
|
|
|
|
// Inheritance diagram
|
|
|
|
// ═══════════════════
|
|
|
|
//
|
|
|
|
// ▕▔▔▔▔▔▔▔▔▔▏
|
|
|
|
// ▕ FEvent ▏
|
|
|
|
// ▕▁▁▁▁▁▁▁▁▁▏
|
|
|
|
// ▲
|
|
|
|
// │
|
|
|
|
// │ ▕▔▔▔▔▔▔▔▔▔▔▔▏
|
|
|
|
// ├─────▏FKeyEvent ▏
|
|
|
|
// │ ▕▁▁▁▁▁▁▁▁▁▁▁▏
|
|
|
|
// │
|
|
|
|
// │ ▕▔▔▔▔▔▔▔▔▔▔▔▔▔▏
|
|
|
|
// ├─────▏FMouseEvent ▏
|
|
|
|
// │ ▕▁▁▁▁▁▁▁▁▁▁▁▁▁▏
|
|
|
|
// │
|
|
|
|
// │ ▕▔▔▔▔▔▔▔▔▔▔▔▔▔▏
|
|
|
|
// ├─────▏FWheelEvent ▏
|
|
|
|
// │ ▕▁▁▁▁▁▁▁▁▁▁▁▁▁▏
|
|
|
|
// │
|
|
|
|
// │ ▕▔▔▔▔▔▔▔▔▔▔▔▔▔▏
|
|
|
|
// ├─────▏FFocusEvent ▏
|
|
|
|
// │ ▕▁▁▁▁▁▁▁▁▁▁▁▁▁▏
|
|
|
|
// │
|
|
|
|
// │ ▕▔▔▔▔▔▔▔▔▔▔▔▔▔▏
|
|
|
|
// ├─────▏FAccelEvent ▏
|
|
|
|
// │ ▕▁▁▁▁▁▁▁▁▁▁▁▁▁▏
|
|
|
|
// │
|
|
|
|
// │ ▕▔▔▔▔▔▔▔▔▔▔▔▔▔▔▏
|
|
|
|
// ├─────▏FResizeEvent ▏
|
|
|
|
// │ ▕▁▁▁▁▁▁▁▁▁▁▁▁▁▁▏
|
|
|
|
// │
|
|
|
|
// │ ▕▔▔▔▔▔▔▔▔▔▔▔▔▏
|
|
|
|
// ├─────▏FShowEvent ▏
|
|
|
|
// │ ▕▁▁▁▁▁▁▁▁▁▁▁▁▏
|
|
|
|
// │
|
|
|
|
// │ ▕▔▔▔▔▔▔▔▔▔▔▔▔▏
|
|
|
|
// ├─────▏FHideEvent ▏
|
|
|
|
// │ ▕▁▁▁▁▁▁▁▁▁▁▁▁▏
|
|
|
|
// │
|
|
|
|
// │ ▕▔▔▔▔▔▔▔▔▔▔▔▔▔▏
|
|
|
|
// ├─────▏FCloseEvent ▏
|
|
|
|
// │ ▕▁▁▁▁▁▁▁▁▁▁▁▁▁▏
|
|
|
|
// │
|
|
|
|
// │ ▕▔▔▔▔▔▔▔▔▔▔▔▔▔▏
|
|
|
|
// └─────▏FTimerEvent ▏
|
|
|
|
// ▕▁▁▁▁▁▁▁▁▁▁▁▁▁▏
|
|
|
|
|
2015-05-23 13:35:12 +02:00
|
|
|
|
2017-04-09 20:08:53 +02:00
|
|
|
#ifndef FEVENT_H
|
|
|
|
#define FEVENT_H
|
2015-05-23 13:35:12 +02:00
|
|
|
|
2017-09-17 21:32:46 +02:00
|
|
|
#include "final/fc.h"
|
|
|
|
#include "final/fpoint.h"
|
2015-05-23 13:35:12 +02:00
|
|
|
|
|
|
|
|
|
|
|
//----------------------------------------------------------------------
|
|
|
|
// class FEvent
|
|
|
|
//----------------------------------------------------------------------
|
|
|
|
|
|
|
|
#pragma pack(push)
|
|
|
|
#pragma pack(1)
|
|
|
|
|
2017-09-11 03:06:02 +02:00
|
|
|
class FEvent // event base class
|
2015-05-23 13:35:12 +02:00
|
|
|
{
|
2017-09-11 03:06:02 +02:00
|
|
|
public:
|
|
|
|
explicit FEvent(int);
|
|
|
|
virtual ~FEvent();
|
|
|
|
int type() const;
|
2015-05-23 13:35:12 +02:00
|
|
|
|
2017-09-11 03:06:02 +02:00
|
|
|
protected:
|
|
|
|
int t;
|
2015-05-23 13:35:12 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
#pragma pack(pop)
|
|
|
|
|
|
|
|
|
|
|
|
//----------------------------------------------------------------------
|
|
|
|
// class FKeyEvent
|
|
|
|
//----------------------------------------------------------------------
|
|
|
|
|
|
|
|
#pragma pack(push)
|
|
|
|
#pragma pack(1)
|
|
|
|
|
2017-09-11 03:06:02 +02:00
|
|
|
class FKeyEvent : public FEvent // keyboard event
|
2015-05-23 13:35:12 +02:00
|
|
|
{
|
2017-09-11 03:06:02 +02:00
|
|
|
public:
|
|
|
|
FKeyEvent (int, int);
|
|
|
|
~FKeyEvent();
|
|
|
|
|
|
|
|
int key() const;
|
|
|
|
bool isAccepted() const;
|
|
|
|
void accept();
|
|
|
|
void ignore();
|
|
|
|
|
|
|
|
protected:
|
|
|
|
int k;
|
|
|
|
bool accpt;
|
2015-05-23 13:35:12 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
#pragma pack(pop)
|
|
|
|
|
|
|
|
|
|
|
|
//----------------------------------------------------------------------
|
|
|
|
// class FMouseEvent
|
|
|
|
//----------------------------------------------------------------------
|
|
|
|
|
|
|
|
#pragma pack(push)
|
|
|
|
#pragma pack(1)
|
|
|
|
|
2017-09-11 03:06:02 +02:00
|
|
|
class FMouseEvent : public FEvent // mouse event
|
2015-05-23 13:35:12 +02:00
|
|
|
{
|
2017-09-11 03:06:02 +02:00
|
|
|
public:
|
|
|
|
FMouseEvent (int, const FPoint&, int);
|
|
|
|
FMouseEvent (int, const FPoint&, const FPoint&, int);
|
|
|
|
~FMouseEvent();
|
|
|
|
|
|
|
|
const FPoint& getPos() const;
|
|
|
|
const FPoint& getTermPos() const;
|
|
|
|
int getX() const;
|
|
|
|
int getY() const;
|
|
|
|
int getTermX() const;
|
|
|
|
int getTermY() const;
|
|
|
|
int getButton() const;
|
|
|
|
|
|
|
|
protected:
|
|
|
|
FPoint p;
|
|
|
|
FPoint tp;
|
|
|
|
int b;
|
2015-05-23 13:35:12 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
#pragma pack(pop)
|
|
|
|
|
2016-06-16 00:39:01 +02:00
|
|
|
|
2015-05-23 13:35:12 +02:00
|
|
|
//----------------------------------------------------------------------
|
|
|
|
// class FWheelEvent
|
|
|
|
//----------------------------------------------------------------------
|
|
|
|
|
|
|
|
#pragma pack(push)
|
|
|
|
#pragma pack(1)
|
|
|
|
|
2017-09-11 03:06:02 +02:00
|
|
|
class FWheelEvent : public FEvent // wheel event
|
2015-05-23 13:35:12 +02:00
|
|
|
{
|
2017-09-11 03:06:02 +02:00
|
|
|
public:
|
|
|
|
FWheelEvent (int, const FPoint&, int);
|
|
|
|
FWheelEvent (int, const FPoint&, const FPoint&, int);
|
|
|
|
~FWheelEvent();
|
|
|
|
|
|
|
|
const FPoint& getPos() const;
|
|
|
|
const FPoint& getTermPos() const;
|
|
|
|
int getX() const;
|
|
|
|
int getY() const;
|
|
|
|
int getTermX() const;
|
|
|
|
int getTermY() const;
|
|
|
|
int getWheel() const;
|
|
|
|
|
|
|
|
protected:
|
|
|
|
FPoint p;
|
|
|
|
FPoint tp;
|
|
|
|
int w;
|
2015-05-23 13:35:12 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
#pragma pack(pop)
|
|
|
|
|
|
|
|
|
|
|
|
//----------------------------------------------------------------------
|
|
|
|
// class FFocusEvent
|
|
|
|
//----------------------------------------------------------------------
|
|
|
|
|
|
|
|
#pragma pack(push)
|
|
|
|
#pragma pack(1)
|
|
|
|
|
2017-09-11 03:06:02 +02:00
|
|
|
class FFocusEvent : public FEvent // focus event
|
2015-05-23 13:35:12 +02:00
|
|
|
{
|
2017-09-11 03:06:02 +02:00
|
|
|
public:
|
|
|
|
explicit FFocusEvent (int);
|
|
|
|
~FFocusEvent();
|
|
|
|
|
|
|
|
bool gotFocus() const;
|
|
|
|
bool lostFocus() const;
|
|
|
|
fc::FocusTypes getFocusType() const;
|
|
|
|
void setFocusType(fc::FocusTypes);
|
|
|
|
bool isAccepted() const;
|
|
|
|
void accept();
|
|
|
|
void ignore();
|
|
|
|
protected:
|
|
|
|
bool accpt;
|
|
|
|
fc::FocusTypes focus_type;
|
2015-05-23 13:35:12 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
#pragma pack(pop)
|
|
|
|
|
|
|
|
|
|
|
|
//----------------------------------------------------------------------
|
|
|
|
// class FAccelEvent
|
|
|
|
//----------------------------------------------------------------------
|
|
|
|
|
|
|
|
#pragma pack(push)
|
|
|
|
#pragma pack(1)
|
|
|
|
|
2017-09-11 03:06:02 +02:00
|
|
|
class FAccelEvent : public FEvent // focus event
|
2015-05-23 13:35:12 +02:00
|
|
|
{
|
2017-09-11 03:06:02 +02:00
|
|
|
private:
|
|
|
|
// Disable copy constructor
|
|
|
|
FAccelEvent (const FAccelEvent&);
|
|
|
|
// Disable assignment operator (=)
|
|
|
|
FAccelEvent& operator = (const FAccelEvent&);
|
|
|
|
|
|
|
|
public:
|
|
|
|
FAccelEvent (int, void*);
|
|
|
|
~FAccelEvent();
|
|
|
|
|
|
|
|
void* focusedWidget() const;
|
|
|
|
bool isAccepted() const;
|
|
|
|
void accept();
|
|
|
|
void ignore();
|
|
|
|
|
|
|
|
protected:
|
|
|
|
bool accpt;
|
|
|
|
void* focus_widget;
|
2015-05-23 13:35:12 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
#pragma pack(pop)
|
|
|
|
|
|
|
|
|
|
|
|
//----------------------------------------------------------------------
|
|
|
|
// class FResizeEvent
|
|
|
|
//----------------------------------------------------------------------
|
|
|
|
|
2017-09-11 03:06:02 +02:00
|
|
|
class FResizeEvent : public FEvent // resize event
|
2015-05-23 13:35:12 +02:00
|
|
|
{
|
2017-09-11 03:06:02 +02:00
|
|
|
public:
|
|
|
|
explicit FResizeEvent (int);
|
|
|
|
~FResizeEvent();
|
2015-09-20 05:44:50 +02:00
|
|
|
|
2017-09-11 03:06:02 +02:00
|
|
|
bool isAccepted() const;
|
|
|
|
void accept();
|
|
|
|
void ignore();
|
2015-05-23 13:35:12 +02:00
|
|
|
|
2017-09-11 03:06:02 +02:00
|
|
|
protected:
|
|
|
|
bool accpt;
|
2015-05-23 13:35:12 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//----------------------------------------------------------------------
|
|
|
|
// class FShowEvent
|
|
|
|
//----------------------------------------------------------------------
|
|
|
|
|
2017-09-11 03:06:02 +02:00
|
|
|
class FShowEvent : public FEvent // show event
|
2015-05-23 13:35:12 +02:00
|
|
|
{
|
2017-09-11 03:06:02 +02:00
|
|
|
public:
|
|
|
|
explicit FShowEvent (int);
|
|
|
|
~FShowEvent();
|
2015-05-23 13:35:12 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//----------------------------------------------------------------------
|
|
|
|
// class FHideEvent
|
|
|
|
//----------------------------------------------------------------------
|
|
|
|
|
2017-09-11 03:06:02 +02:00
|
|
|
class FHideEvent : public FEvent // hide event
|
2015-05-23 13:35:12 +02:00
|
|
|
{
|
2017-09-11 03:06:02 +02:00
|
|
|
public:
|
|
|
|
explicit FHideEvent (int);
|
|
|
|
~FHideEvent();
|
2015-05-23 13:35:12 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//----------------------------------------------------------------------
|
|
|
|
// class FCloseEvent
|
|
|
|
//----------------------------------------------------------------------
|
|
|
|
|
2017-09-11 03:06:02 +02:00
|
|
|
class FCloseEvent : public FEvent // close event
|
2015-05-23 13:35:12 +02:00
|
|
|
{
|
2017-09-11 03:06:02 +02:00
|
|
|
public:
|
|
|
|
explicit FCloseEvent(int);
|
|
|
|
~FCloseEvent();
|
2015-09-20 05:44:50 +02:00
|
|
|
|
2017-09-11 03:06:02 +02:00
|
|
|
bool isAccepted() const;
|
|
|
|
void accept();
|
|
|
|
void ignore();
|
2015-05-23 13:35:12 +02:00
|
|
|
|
2017-09-11 03:06:02 +02:00
|
|
|
protected:
|
|
|
|
bool accpt;
|
2015-05-23 13:35:12 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//----------------------------------------------------------------------
|
|
|
|
// class FTimerEvent
|
|
|
|
//----------------------------------------------------------------------
|
|
|
|
|
|
|
|
#pragma pack(push)
|
|
|
|
#pragma pack(1)
|
|
|
|
|
2017-09-11 03:06:02 +02:00
|
|
|
class FTimerEvent : public FEvent // timer event
|
2015-05-23 13:35:12 +02:00
|
|
|
{
|
2017-09-11 03:06:02 +02:00
|
|
|
public:
|
|
|
|
FTimerEvent(int, int);
|
|
|
|
~FTimerEvent();
|
2015-09-20 05:44:50 +02:00
|
|
|
|
2017-09-11 03:06:02 +02:00
|
|
|
int timerId() const;
|
2015-05-23 13:35:12 +02:00
|
|
|
|
2017-09-11 03:06:02 +02:00
|
|
|
protected:
|
|
|
|
int id;
|
2015-05-23 13:35:12 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
#pragma pack(pop)
|
|
|
|
|
2017-04-09 20:08:53 +02:00
|
|
|
#endif // FEVENT_H
|