- trying to fix issue #71 alt-enter toggle
This commit is contained in:
parent
8499d25bde
commit
d5edf6f973
|
@ -826,6 +826,31 @@ MainWindow::~MainWindow(){
|
||||||
if(SystemFlags::VERBOSE_MODE_ENABLED) printf("In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
if(SystemFlags::VERBOSE_MODE_ENABLED) printf("In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int MainWindow::getDesiredScreenWidth() {
|
||||||
|
Config &config= Config::getInstance();
|
||||||
|
return config.getInt("ScreenWidth");
|
||||||
|
}
|
||||||
|
int MainWindow::getDesiredScreenHeight() {
|
||||||
|
Config &config= Config::getInstance();
|
||||||
|
return config.getInt("ScreenHeight");
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::eventToggleFullScreen(bool isFullscreen) {
|
||||||
|
WindowGl::eventToggleFullScreen(isFullscreen);
|
||||||
|
|
||||||
|
if(isFullscreen) {
|
||||||
|
Metrics::reload(this->program->getWindow()->getScreenWidth(),
|
||||||
|
this->program->getWindow()->getScreenHeight());
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Config &config= Config::getInstance();
|
||||||
|
Metrics::reload(config.getInt("ScreenWidth"),config.getInt("ScreenHeight"));
|
||||||
|
//window->setText(config.getString("WindowTitle","MegaGlest"));
|
||||||
|
//this->mainMenu->init();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
void MainWindow::eventMouseDown(int x, int y, MouseButton mouseButton){
|
void MainWindow::eventMouseDown(int x, int y, MouseButton mouseButton){
|
||||||
const Metrics &metrics = Metrics::getInstance();
|
const Metrics &metrics = Metrics::getInstance();
|
||||||
int vx = metrics.toVirtualX(x);
|
int vx = metrics.toVirtualX(x);
|
||||||
|
|
|
@ -62,6 +62,11 @@ public:
|
||||||
bool getTriggerLanguageToggle() const { return triggerLanguageToggle; }
|
bool getTriggerLanguageToggle() const { return triggerLanguageToggle; }
|
||||||
string getTriggerLanguage() const { return triggerLanguage; }
|
string getTriggerLanguage() const { return triggerLanguage; }
|
||||||
|
|
||||||
|
virtual int getDesiredScreenWidth();
|
||||||
|
virtual int getDesiredScreenHeight();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void eventToggleFullScreen(bool isFullscreen);
|
||||||
};
|
};
|
||||||
|
|
||||||
}}//end namespace
|
}}//end namespace
|
||||||
|
|
|
@ -213,6 +213,7 @@ protected:
|
||||||
virtual void eventMenu(int menuId) {}
|
virtual void eventMenu(int menuId) {}
|
||||||
virtual void eventClose() {};
|
virtual void eventClose() {};
|
||||||
virtual void eventDestroy() {};
|
virtual void eventDestroy() {};
|
||||||
|
virtual void eventToggleFullScreen(bool isFullscreen) {};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/// needed to detect double clicks
|
/// needed to detect double clicks
|
||||||
|
|
|
@ -45,11 +45,16 @@ public:
|
||||||
SDL_Surface * getScreenSurface();
|
SDL_Surface * getScreenSurface();
|
||||||
virtual int getScreenWidth();
|
virtual int getScreenWidth();
|
||||||
virtual int getScreenHeight();
|
virtual int getScreenHeight();
|
||||||
|
virtual int getDesiredScreenWidth() { return getScreenWidth(); }
|
||||||
|
virtual int getDesiredScreenHeight() { return getScreenHeight(); }
|
||||||
|
|
||||||
virtual bool ChangeVideoMode(bool preserveContext, int resWidth, int resHeight,
|
virtual bool ChangeVideoMode(bool preserveContext, int resWidth, int resHeight,
|
||||||
bool fullscreenWindow, int colorBits, int depthBits, int stencilBits,
|
bool fullscreenWindow, int colorBits, int depthBits, int stencilBits,
|
||||||
bool hardware_acceleration, bool fullscreen_anti_aliasing,
|
bool hardware_acceleration, bool fullscreen_anti_aliasing,
|
||||||
float gammaValue);
|
float gammaValue);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void eventToggleFullScreen(bool isFullscreen);
|
||||||
};
|
};
|
||||||
|
|
||||||
}}//end namespace
|
}}//end namespace
|
||||||
|
|
|
@ -617,16 +617,8 @@ void Window::toggleFullscreen() {
|
||||||
|
|
||||||
Window::isFullScreen = !Window::isFullScreen;
|
Window::isFullScreen = !Window::isFullScreen;
|
||||||
|
|
||||||
if(GlobalStaticFlags::getIsNonGraphicalModeEnabled() == false) {
|
if(global_window) {
|
||||||
//SDL_Surface *cur_surface = SDL_GetVideoSurface();
|
global_window->eventToggleFullScreen(Window::isFullScreen);
|
||||||
if(sdlWindow != NULL) {
|
|
||||||
if(isFullScreen){
|
|
||||||
SDL_SetWindowFullscreen(sdlWindow,SDL_WINDOW_FULLSCREEN);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
SDL_SetWindowFullscreen(sdlWindow,0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if(SystemFlags::VERBOSE_MODE_ENABLED) printf("In [%s::%s %d]\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__);
|
if(SystemFlags::VERBOSE_MODE_ENABLED) printf("In [%s::%s %d]\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__);
|
||||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s %d]\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__);
|
if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s %d]\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__);
|
||||||
|
|
|
@ -96,6 +96,38 @@ void WindowGl::swapBuffersGl(){
|
||||||
context.swapBuffers();
|
context.swapBuffers();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void WindowGl::eventToggleFullScreen(bool isFullscreen) {
|
||||||
|
Window::eventToggleFullScreen(isFullscreen);
|
||||||
|
|
||||||
|
if(GlobalStaticFlags::getIsNonGraphicalModeEnabled() == false) {
|
||||||
|
//SDL_Surface *cur_surface = SDL_GetVideoSurface();
|
||||||
|
if(getScreenWindow() != NULL) {
|
||||||
|
if(getIsFullScreen()){
|
||||||
|
SDL_SetWindowFullscreen(getScreenWindow(),SDL_WINDOW_FULLSCREEN_DESKTOP);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
SDL_SetWindowFullscreen(getScreenWindow(),0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(isFullscreen) {
|
||||||
|
changeVideoModeFullScreen(isFullscreen);
|
||||||
|
ChangeVideoMode(true, getScreenWidth(), getScreenHeight(),
|
||||||
|
true,context.getColorBits(), context.getDepthBits(), context.getStencilBits(),
|
||||||
|
context.getHardware_acceleration(),context.getFullscreen_anti_aliasing(),
|
||||||
|
context.getGammaValue());
|
||||||
|
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
changeVideoModeFullScreen(false);
|
||||||
|
ChangeVideoMode(true, getDesiredScreenWidth(), getDesiredScreenHeight(),
|
||||||
|
false,context.getColorBits(), context.getDepthBits(), context.getStencilBits(),
|
||||||
|
context.getHardware_acceleration(),context.getFullscreen_anti_aliasing(),
|
||||||
|
context.getGammaValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// changes display resolution at any time
|
// changes display resolution at any time
|
||||||
bool WindowGl::ChangeVideoMode(bool preserveContext, int resWidth, int resHeight,
|
bool WindowGl::ChangeVideoMode(bool preserveContext, int resWidth, int resHeight,
|
||||||
bool fullscreenWindow,
|
bool fullscreenWindow,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user