GajuDesk/src/gd_v.erl
Craig Everett 4b6f761ec4 history (#6)
Ugly merge

Reviewed-on: #6
Co-authored-by: Craig Everett <zxq9@zxq9.com>
Co-committed-by: Craig Everett <zxq9@zxq9.com>
2025-03-04 20:51:36 +09:00

45 lines
1.1 KiB
Erlang

-module(gd_v).
-vsn("0.5.1").
-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.