diff --git a/src/WallpaperEngine/Application/CApplicationContext.cpp b/src/WallpaperEngine/Application/CApplicationContext.cpp index 5eb3e17..8d3b475 100644 --- a/src/WallpaperEngine/Application/CApplicationContext.cpp +++ b/src/WallpaperEngine/Application/CApplicationContext.cpp @@ -25,6 +25,8 @@ struct option long_options [] = { {"list-properties", no_argument, nullptr, 'l'}, {"set-property", required_argument, nullptr, 'o'}, {"class", required_argument, nullptr, 'x'}, + {"width", required_argument, nullptr, 'w'}, + {"height", required_argument, nullptr, 't'}, {nullptr, 0, nullptr, 0} }; @@ -51,6 +53,8 @@ CApplicationContext::CApplicationContext (int argc, char* argv[]) : audioEnabled (true), onlyListProperties (false), window_class (""), + window_width(1280), + window_height(720) { int c; @@ -116,6 +120,13 @@ CApplicationContext::CApplicationContext (int argc, char* argv[]) : case 'x': this->window_class = optarg; break; + case 'w': + this->window_width = atoi(optarg); + break; + + case 't': + this->window_height = atoi(optarg); + break; } } @@ -203,4 +214,6 @@ void CApplicationContext::printHelp (const char* route) sLog.out ("\t--list-properties\t\t\tList all the available properties and their possible values"); sLog.out ("\t--set-property \tOverrides the default value of the given property"); sLog.out ("\t--class \t\t\tSets X11 window class"); + sLog.out ("\t--width \t\t\tSets the window width"); + sLog.out ("\t--height \t\t\tSets the window height"); } \ No newline at end of file diff --git a/src/WallpaperEngine/Application/CApplicationContext.h b/src/WallpaperEngine/Application/CApplicationContext.h index 86afbf7..910dac4 100644 --- a/src/WallpaperEngine/Application/CApplicationContext.h +++ b/src/WallpaperEngine/Application/CApplicationContext.h @@ -25,6 +25,8 @@ namespace WallpaperEngine::Application bool onlyListProperties; FREE_IMAGE_FORMAT screenshotFormat; std::string window_class; + int window_width; + int window_height; private: void validatePath (); diff --git a/src/WallpaperEngine/Application/CWallpaperApplication.cpp b/src/WallpaperEngine/Application/CWallpaperApplication.cpp index d72de44..2422f7e 100644 --- a/src/WallpaperEngine/Application/CWallpaperApplication.cpp +++ b/src/WallpaperEngine/Application/CWallpaperApplication.cpp @@ -272,4 +272,9 @@ void CWallpaperApplication::show () void CWallpaperApplication::signal (int signal) { g_KeepRunning = false; +} + +const CApplicationContext& CWallpaperApplication::get_context () const +{ + return this->m_context; } \ No newline at end of file diff --git a/src/WallpaperEngine/Application/CWallpaperApplication.h b/src/WallpaperEngine/Application/CWallpaperApplication.h index 55e9d18..07f49fe 100644 --- a/src/WallpaperEngine/Application/CWallpaperApplication.h +++ b/src/WallpaperEngine/Application/CWallpaperApplication.h @@ -22,6 +22,7 @@ namespace WallpaperEngine::Application void show (); void signal (int signal); + const CApplicationContext& get_context () const; private: void setupContainer (); diff --git a/src/WallpaperEngine/Render/CRenderContext.cpp b/src/WallpaperEngine/Render/CRenderContext.cpp index 4f8439d..e886219 100644 --- a/src/WallpaperEngine/Render/CRenderContext.cpp +++ b/src/WallpaperEngine/Render/CRenderContext.cpp @@ -12,8 +12,6 @@ #include "CRenderContext.h" #include "CVideo.h" -#define DEFAULT_WINDOW_WIDTH 1280 -#define DEFAULT_WINDOW_HEIGHT 720 using namespace WallpaperEngine::Render; @@ -81,7 +79,7 @@ void CRenderContext::initialize () void CRenderContext::setupWindow () { this->m_driver.showWindow (); - this->m_driver.resizeWindow ({DEFAULT_WINDOW_WIDTH, DEFAULT_WINDOW_HEIGHT}); + this->m_driver.resizeWindow ({this->m_app.get_context().window_width, this->m_app.get_context().window_height}); } void CRenderContext::setupScreens ()