-module(demo).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/demo.gleam").
-export([main/0]).
-file("src/demo.gleam", 46).
-spec start_error_to_string(minigui:start_error()) -> binary().
start_error_to_string(E) ->
case E of
{ensure_port_failed, Msg} ->
Msg;
{open_port_failed, Msg@1} ->
Msg@1;
{handshake_failed, Msg@2} ->
Msg@2
end.
-file("src/demo.gleam", 5).
-spec main() -> nil.
main() ->
gleam_stdlib:println(<<"Starting minigui demo…"/utf8>>),
case minigui:start() of
{error, E} ->
gleam_stdlib:println(
<<"Error starting: "/utf8, (start_error_to_string(E))/binary>>
);
{ok, Gui} ->
_ = minigui:create_window(Gui, <<"MiniGUI demo"/utf8>>),
_ = minigui:set_label(Gui, <<"Hello from minigui"/utf8>>),
_ = minigui:set_text(Gui, <<"Type here…"/utf8>>),
_ = minigui:add_button(Gui, 1, <<"Click"/utf8>>),
gleam_stdlib:println(
<<"Calling minigui.run(). Close the window to finish."/utf8>>
),
_ = minigui:run(Gui, fun(Ev) -> case Ev of
{button_clicked, Id} ->
gleam_stdlib:println(
<<<<"Event: ButtonClicked("/utf8,
(erlang:integer_to_binary(Id))/binary>>/binary,
")"/utf8>>
);
{text_changed, Text} ->
gleam_stdlib:println(
<<<<"Event: TextChanged("/utf8, Text/binary>>/binary,
")"/utf8>>
);
{key_down, Key} ->
gleam_stdlib:println(
<<<<"Event: KeyDown("/utf8,
(erlang:integer_to_binary(Key))/binary>>/binary,
")"/utf8>>
);
{log, Msg} ->
gleam_stdlib:println(<<"LOG: "/utf8, Msg/binary>>);
{port_error, Msg@1} ->
gleam_stdlib:println(
<<"ERROR: "/utf8, Msg@1/binary>>
);
closed ->
gleam_stdlib:println(<<"Event: Closed"/utf8>>)
end end),
nil
end.