GajuDesk/src/gmc_v.erl

45 lines
1.1 KiB
Erlang

-module(gmc_v).
-vsn("0.5.0").
-author("Craig Everett <craigeverett@qpq.swiss>").
-copyright("QPQ AG <info@qpq.swiss>").
-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.