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
|
#pragma once
#include "glGrib/Render.h"
#include "glGrib/Shell.h"
#include "glGrib/Options.h"
namespace glGrib
{
class WindowSet : public std::set<Render*>
{
public:
explicit WindowSet (const Options &, bool = true);
virtual ~WindowSet () {}
virtual void run (Shell * = nullptr);
virtual void updateWindows ();
Render * getWindowById (int);
Render * getFirstWindow ()
{
WindowSet::iterator it = begin ();
if (it != end ())
return *it;
else
return nullptr;
}
void close ();
virtual Render * createWindow (const Options &);
void runShell (Shell * shell, bool render = true)
{
runShell (&shell, render);
}
void runShell (Shell **, bool = true);
void handleMasterWindow ();
static WindowSet * create (const glGrib::Options &);
const Options & getOptions ()
{
return opts;
}
const Options & getOptions () const
{
return opts;
}
private:
Options opts;
};
}
|