finalcut/src/fwindow.h

123 lines
3.9 KiB
C
Raw Normal View History

// File: fwindow.h
// Provides: class FWindow.h
//
// Inheritance diagram
// ═══════════════════
//
// ▕▔▔▔▔▔▔▔▔▔▏ ▕▔▔▔▔▔▔▔▔▔▏
// ▕ FObject ▏ ▕ FTerm ▏
// ▕▁▁▁▁▁▁▁▁▁▏ ▕▁▁▁▁▁▁▁▁▁▏
// ▲ ▲
// │ │
// └─────┬─────┘
// │
// ▕▔▔▔▔▔▔▔▔▔▏
// ▕ FWidget ▏
// ▕▁▁▁▁▁▁▁▁▁▏
// ▲
// │
// ▕▔▔▔▔▔▔▔▔▔▏ 1 *▕▔▔▔▔▔▔▔▔▏
// ▕ FWindow ▏-┬- - - -▕ FEvent ▏
// ▕▁▁▁▁▁▁▁▁▁▏ : ▕▁▁▁▁▁▁▁▁▏
// :
// : *▕▔▔▔▔▔▔▔▔▏
// :- - - -▕ FPoint ▏
// : ▕▁▁▁▁▁▁▁▁▏
// :
// : *▕▔▔▔▔▔▔▔▔▔▏
// └- - - -▕ FWidget ▏
// ▕▁▁▁▁▁▁▁▁▁▏
2015-05-23 13:35:12 +02:00
#ifndef _FWINDOW_H
#define _FWINDOW_H
#include "fwidget.h"
//----------------------------------------------------------------------
// class FWindow
//----------------------------------------------------------------------
#pragma pack(push)
#pragma pack(1)
class FWindow : public FWidget
{
private:
bool window_active;
private:
FWindow (const FWindow&);
FWindow& operator = (const FWindow&);
protected:
2016-06-12 11:56:06 +02:00
// Event handlers
2015-05-23 13:35:12 +02:00
bool event (FEvent*);
virtual void onWindowActive (FEvent*);
virtual void onWindowInactive (FEvent*);
virtual void onWindowRaised (FEvent*);
virtual void onWindowLowered (FEvent*);
public:
2015-09-27 16:45:28 +02:00
explicit FWindow (FWidget* = 0); // constructor
2015-05-23 13:35:12 +02:00
~FWindow (); // destructor
const char* getClassName() const;
virtual void show();
virtual void hide();
2015-10-19 00:07:07 +02:00
static FWindow* getWindowWidgetAt (const FPoint&);
static FWindow* getWindowWidgetAt (int, int);
2015-05-23 13:35:12 +02:00
static void addWindow (FWidget*);
static void delWindow (FWidget*);
static FWindow* getWindowWidget (FWidget*);
static int getWindowLayer (FWidget*);
static void swapWindow (FWidget*, FWidget*);
static bool raiseWindow (FWidget*);
bool raiseWindow ();
static bool lowerWindow (FWidget*);
bool lowerWindow ();
static void setActiveWindow (FWindow*);
static FWindow* getActiveWindow();
static void switchToPrevWindow();
2015-05-23 13:35:12 +02:00
static bool activatePrevWindow();
bool activateWindow (bool);
2015-05-23 13:35:12 +02:00
bool activateWindow();
bool deactivateWindow();
bool isActiveWindow() const;
2015-10-19 00:07:07 +02:00
bool isHiddenWindow() const;
2015-05-23 13:35:12 +02:00
};
#pragma pack(pop)
// FWindow inline functions
//----------------------------------------------------------------------
inline const char* FWindow::getClassName() const
{ return "FWindow"; }
2015-10-17 19:40:43 +02:00
//----------------------------------------------------------------------
2015-10-19 00:07:07 +02:00
inline FWindow* FWindow::getWindowWidgetAt (const FPoint& pos)
{ return getWindowWidgetAt (pos.getX(), pos.getY()); }
2015-10-17 19:40:43 +02:00
2015-05-23 13:35:12 +02:00
//----------------------------------------------------------------------
inline bool FWindow::raiseWindow()
{ return raiseWindow(this); }
//----------------------------------------------------------------------
inline bool FWindow::lowerWindow()
{ return lowerWindow(this); }
//----------------------------------------------------------------------
inline bool FWindow::activateWindow()
{ return activateWindow(true); }
//----------------------------------------------------------------------
inline bool FWindow::deactivateWindow()
{ return activateWindow(false); }
//----------------------------------------------------------------------
inline bool FWindow::isActiveWindow() const
{ return window_active; }
#endif // _FWINDOW_H