Index: src/window.cpp =================================================================== --- src/window.cpp (revision 27146) +++ src/window.cpp (working copy) @@ -87,12 +87,10 @@ char *_windows_file; /** Window description constructor. */ -WindowDesc::WindowDesc(WindowPosition def_pos, const char *ini_key, int16 def_width, int16 def_height, +WindowDesc::WindowDesc(WindowPosition def_pos, const char *ini_key, int16 def_width_trad, int16 def_height_trad, WindowClass window_class, WindowClass parent_class, uint32 flags, const NWidgetPart *nwid_parts, int16 nwid_length, HotkeyList *hotkeys) : default_pos(def_pos), - default_width(def_width), - default_height(def_height), cls(window_class), parent_cls(parent_class), ini_key(ini_key), @@ -102,7 +100,9 @@ hotkeys(hotkeys), pref_sticky(false), pref_width(0), - pref_height(0) + pref_height(0), + default_width_trad(def_width_trad), + default_height_trad(def_height_trad) { if (_window_descs == NULL) _window_descs = new SmallVector(); *_window_descs->Append() = this; @@ -113,6 +113,16 @@ _window_descs->Erase(_window_descs->Find(this)); } +int16 WindowDesc::GetDefaultWidth() const +{ + return this->pref_width != 0 ? this->pref_width : ScaleGUITrad(this->default_width_trad); +} + +int16 WindowDesc::GetDefaultHeight() const +{ + return this->pref_height != 0 ? this->pref_height : ScaleGUITrad(this->default_height_trad); +} + /** * Load all WindowDesc settings from _windows_file. */ Index: src/window_gui.h =================================================================== --- src/window_gui.h (revision 27146) +++ src/window_gui.h (working copy) @@ -167,15 +167,13 @@ */ struct WindowDesc : ZeroedMemoryAllocator { - WindowDesc(WindowPosition default_pos, const char *ini_key, int16 def_width, int16 def_height, + WindowDesc(WindowPosition default_pos, const char *ini_key, int16 def_width_trad, int16 def_height_trad, WindowClass window_class, WindowClass parent_class, uint32 flags, const NWidgetPart *nwid_parts, int16 nwid_length, HotkeyList *hotkeys = NULL); ~WindowDesc(); WindowPosition default_pos; ///< Preferred position of the window. @see WindowPosition() - int16 default_width; ///< Preferred initial width of the window. - int16 default_height; ///< Preferred initial height of the window. WindowClass cls; ///< Class of the window, @see WindowClass. WindowClass parent_cls; ///< Class of the parent window. @see WindowClass const char *ini_key; ///< Key to store window defaults in openttd.cfg. \c NULL if nothing shall be stored. @@ -188,13 +186,16 @@ int16 pref_width; ///< User-preferred width of the window. Zero if unset. int16 pref_height; ///< User-preferred height of the window. Zero if unset. - int16 GetDefaultWidth() const { return this->pref_width != 0 ? this->pref_width : this->default_width; } - int16 GetDefaultHeight() const { return this->pref_height != 0 ? this->pref_height : this->default_height; } + int16 GetDefaultWidth() const; + int16 GetDefaultHeight() const; static void LoadFromConfig(); static void SaveToConfig(); private: + int16 default_width_trad; ///< Preferred initial width of the window (pixels at 1x zoom). + int16 default_height_trad; ///< Preferred initial height of the window (pixels at 1x zoom). + /** * Dummy private copy constructor to prevent compilers from * copying the structure, which fails due to _window_descs.