-module(gd_v). -vsn("0.5.1"). -author("Craig Everett "). -copyright("QPQ AG "). -license("GPL-3.0-or-later"). -export([safe_size/2]). -callback to_front(Window) -> ok when Window :: wx:wx_object(). -spec safe_size(Frame, Prefs) -> ok when Frame :: wx:wx_object(), Prefs :: map(). safe_size(Frame, Prefs) -> case safe_size(Prefs) of {pref, max} -> wxTopLevelWindow:maximize(Frame); {pref, WSize} -> wxFrame:setSize(Frame, WSize); {center, WSize} -> ok = wxFrame:setSize(Frame, WSize), wxFrame:center(Frame) end. safe_size(Prefs) -> Display = wxDisplay:new(), GSize = wxDisplay:getGeometry(Display), ok = wxDisplay:destroy(Display), case maps:find(geometry, Prefs) of {ok, none} -> {X, Y, _, _} = GSize, {center, {X, Y, 700, 500}}; {ok, G} -> {pref, G}; error -> {X, Y, _, _} = GSize, {center, {X, Y, 700, 500}} end.