GlistEngine
Loading...
Searching...
No Matches
gBaseWindow.h
Go to the documentation of this file.
1/*
2 * gBaseWindow.h
3 *
4 * Created on: May 6, 2020
5 * Author: noyan
6 */
7
8#ifndef ENGINE_BASE_GBASEWINDOW_H_
9#define ENGINE_BASE_GBASEWINDOW_H_
10
11#include "gEvent.h"
12#include "gObject.h"
13#include "gWindowEvents.h"
14#include <iostream>
15#include <signal.h>
16#include <unistd.h>
17
18class gAppManager;
19
27class gBaseWindow : public gObject {
28public:
29
32
33
35 virtual ~gBaseWindow();
36
44 virtual void initialize(int width, int height, int windowMode, bool isResizable);
45
46 virtual bool getShouldClose();
47
49
53 virtual void update();
54
58 virtual void close();
59
61 virtual void setVsync(bool vsync);
63 void enableVsync(bool vsync);
65
66 virtual void setCursor(int cursorNo);
67 virtual void setCursorMode(gCursorMode cursorMode);
69 virtual void setCursorPos(int x, int y);
70
71 virtual void setIcon(std::string pngFullpath);
72 virtual void setIcon(unsigned char* imageData, int w, int h);
73
74 virtual void setClipboardString(std::string text);
75 virtual std::string getClipboardString();
76
83 void setSize(int width, int height);
84 virtual void setWindowSize(int width, int height);
85
91 int getWidth();
92
98 int getHeight();
99
105 virtual void setTitle(const std::string& windowTitle);
106 void setTitle(std::string&& windowTitle);
107
113 const std::string& getTitle();
114
115 virtual void setWindowResizable(bool isResizable);
116 virtual void setWindowSizeLimits(int minWidth, int minHeight, int maxWidth, int maxHeight);
117
138 void setEventHandler(EventHandlerFn handler);
139
140 virtual bool isJoystickPresent(int joystickId);
141 virtual bool isGamepadButtonPressed(int joystickId, int buttonId);
142 virtual const float* getJoystickAxes(int joystickId, int* axisCountPtr);
143
144public:
145 bool vsync;
146
152 void callEvent(gEvent& event);
153
154protected:
155 void setRendering(bool rendering);
156
157 int width, height;
158 bool isrendering;
159 int scalex, scaley;
160 gCursorMode cursormode;
161 int windowmode;
162 std::string title;
163 bool isfocused;
164 EventHandlerFn eventhandler;
165
166
167 static void sighandler(int signum);
168 static std::string signalname[32];
169};
170
171#endif /* ENGINE_BASE_GBASEWINDOW_H_ */
Definition gAppManager.h:154
Definition gBaseWindow.h:27
void enableVsync()
int getWidth()
static const int WINDOWMODE_APP
Definition gBaseWindow.h:30
void setTitle(std::string &&windowTitle)
static const int CURSOR_VRESIZE
Definition gBaseWindow.h:31
virtual void setIcon(std::string pngFullpath)
static const int CURSOR_HRESIZE
Definition gBaseWindow.h:31
void setSize(int width, int height)
virtual void close()
static const int WINDOWMODE_FULLSCREENGUIAPP
Definition gBaseWindow.h:30
virtual void setCursorMode(gCursorMode cursorMode)
static const int WINDOWMODE_NONE
Definition gBaseWindow.h:30
virtual ~gBaseWindow()
virtual void setClipboardString(std::string text)
bool isVsyncEnabled()
virtual void setWindowResizable(bool isResizable)
virtual void update()
virtual void setWindowSizeLimits(int minWidth, int minHeight, int maxWidth, int maxHeight)
void disableVsync()
virtual void setWindowSize(int width, int height)
virtual void setCursor(int cursorNo)
void enableVsync(bool vsync)
int getHeight()
static const int WINDOWMODE_FULLSCREEN
Definition gBaseWindow.h:30
virtual void setTitle(const std::string &windowTitle)
static const int WINDOWMODE_GAME
Definition gBaseWindow.h:30
virtual void setIcon(unsigned char *imageData, int w, int h)
static const int CURSOR_IBEAM
Definition gBaseWindow.h:31
virtual void setCursorPos(int x, int y)
virtual void initialize(int width, int height, int windowMode, bool isResizable)
virtual std::string getClipboardString()
const std::string & getTitle()
static const int CURSOR_HAND
Definition gBaseWindow.h:31
virtual bool getShouldClose()
bool isRendering()
static const int CURSOR_CROSSHAIR
Definition gBaseWindow.h:31
static const int CURSOR_ARROW
Definition gBaseWindow.h:31
static const int WINDOWMODE_GUIAPP
Definition gBaseWindow.h:30
virtual void setVsync(bool vsync)
gCursorMode getCursorMode()
Definition gEvent.h:32
Definition gObject.h:33
std::function< void(gEvent &)> EventHandlerFn
Definition gEvent.h:47
gCursorMode
Definition gWindowEvents.h:14