File: WindowSet.h

package info (click to toggle)
glgrib 1.0-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,861,496 kB
  • sloc: cpp: 20,811; ansic: 6,530; perl: 2,902; sh: 513; makefile: 147; python: 58; sql: 18
file content (50 lines) | stat: -rw-r--r-- 957 bytes parent folder | download | duplicates (2)
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;
};


}