60 lines
1.9 KiB
C++
60 lines
1.9 KiB
C++
#pragma once
|
|
|
|
#include <Windows.h>
|
|
#include <string>
|
|
|
|
#include "utils.h"
|
|
#include "EventHandler.h"
|
|
|
|
namespace eg3d {
|
|
|
|
typedef LRESULT /*CALLBACK*/ (*WinFn)(HWND, UINT, WPARAM, LPARAM);
|
|
|
|
class Window {
|
|
private:
|
|
static bool mWndClassInitialized; // már inicializálva van a window class
|
|
static void initializeWndClass(WinFn pWindowFunction); // használt window class inicializálása
|
|
|
|
//////////////
|
|
static LRESULT CALLBACK smWindowFunc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam); // window process, mely az ablakhoz lesz kötve
|
|
|
|
// TODO Epagrisnak: ezt majd még átírom
|
|
EventHandler* pmEventHandler; // eseményfeldolgozó osztály pointere
|
|
|
|
void registerRawInputDevice(); // ...
|
|
|
|
protected:
|
|
void create(); // ablak létrehozása
|
|
HWND mHWND; // ablak-handler
|
|
|
|
const WinFn pWindowFunction; // ablakkezelõ függvény pointere
|
|
static Window * pMainWindow; // fõablak
|
|
public:
|
|
static const char * sWndClassName;
|
|
|
|
explicit Window(bool show = true, WinFn pWindowFunction = smWindowFunc); // konstr.
|
|
//explicit Window(WinFn pWindowFunction = smWindowFunc); // ablakkezelõ-függvény beállítása
|
|
|
|
virtual ~Window(); // destr.
|
|
|
|
void setSize(unsigned width, unsigned height) const; // méret beállítása
|
|
SIZE getSize() const; // méret lekérése
|
|
RECT getRect() const; // ablakot leíró téglalap lekérése
|
|
RECT getClientRect() const; // felhasználható területet leíró téglalap lekérése
|
|
void setTitle(const std::string& title) const; // cím beállítása
|
|
std::string getTitle() const; // cím lekérése
|
|
void show(bool show) const; // megjelenítés vagy elrejtés
|
|
|
|
HWND getHandle() const; // lekéri a HANDLE-t
|
|
|
|
double getAspectRatio() const; // lekéri a képarányt
|
|
|
|
void setThisAsMainWindow(); // ezt az ablakot állítja be fõablaknak
|
|
|
|
void setEventHandler(EventHandler* pEH); // event handler beállítása
|
|
EventHandler * getEventHandler() const; // event handler lekérése
|
|
};
|
|
|
|
}
|
|
|