summaryrefslogtreecommitdiff
path: root/src/Activity.h
blob: 285e6dbb5614fac170798f1dac5d0d9fbffc36f7 (plain)
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
#pragma once

#include "gui/interface/Window.h"

class Activity
{
public:
	virtual void Exit() {}
	virtual void Show() {}
	virtual void Hide() {}
	virtual ~Activity() {}
};

class WindowActivity: public ui::Window, public Activity
{
public:
	WindowActivity(ui::Point position, ui::Point size) :
		ui::Window(position, size)
	{
		Show();
	}
	virtual void Exit()
	{
		Hide();
		SelfDestruct();
	}
	virtual void Show()
	{
		if(ui::Engine::Ref().GetWindow() != this)
		{
			ui::Engine::Ref().ShowWindow(this);
		}
	}
	virtual void Hide()
	{
		if(ui::Engine::Ref().GetWindow() == this)
		{
			ui::Engine::Ref().CloseWindow();
		}
	}
	virtual ~WindowActivity() {}
};