.. _program_listing_file_PrismEngine_src_windowResource.h: Program Listing for File windowResource.h ========================================= |exhale_lsh| :ref:`Return to documentation for file ` (``PrismEngine/src/windowResource.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #pragma once #include #include #include namespace prism { namespace scene { class WindowResource { public: // === Конструкторы === WindowResource(const char* title, int width, int height); WindowResource(const char* title, int width, int height, Uint32 sdlFlags); WindowResource(const char* title, int x, int y, int width, int height); WindowResource(const char* title, int width, int height, const std::string& iconPath); WindowResource(const char* title, int width, int height, int minWidth, int minHeight, int maxWidth, int maxHeight); // Специальные конструкторы static WindowResource CreateCentered(const char* title, int width, int height); // === Управление окном === const char* getTitle() const; void setTitle(const char* title); int getWidth(); int getHeight(); void getSize(int* width, int* height); void setWidth(int width); void setHeight(int height); void setSize(int width, int height); // === Режимы окна === void setFullscreen(bool enabled); void setBorderless(bool enabled); void setResizable(bool enabled); void setGrabMouse(bool enabled); bool isFullscreen() const; bool isBorderless() const; bool isResizable() const; bool isGrabMouse() const; // === Позиция и размер === void setPosition(int x, int y); void getPosition(int* x, int* y) ; void centerWindow(); void setMinSize(int minWidth, int minHeight); void setMaxSize(int maxWidth, int maxHeight); // === События и рендеринг === bool isClose() const; void close(); SDL_Window* getSDLWindow() const; std::shared_ptr sdlWindowPtr; bool windowResized = false; bool windowMinimized = false; // состояния private: // Внутренний конструктор для делегирования WindowResource(const char* title, int x, int y, int width, int height, Uint32 sdlFlags); }; } }