Packages

Native desktop GUI framework for Gleam, powered by Iced

Current section

Files

Jump to
plushie_gleam src plushie@prop@pointer.erl
Raw

src/plushie@prop@pointer.erl

-module(plushie@prop@pointer).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/plushie/prop/pointer.gleam").
-export([parse_pointer/1, parse_button/1]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(
" Pointer type parsing for unified pointer events.\n"
"\n"
" Provides wire-format parsing for pointer types and buttons.\n"
).
-file("src/plushie/prop/pointer.gleam", 12).
?DOC(
" Parse a pointer type from a wire string. Defaults to Mouse for\n"
" unrecognized values.\n"
).
-spec parse_pointer(binary()) -> plushie@event:pointer_type().
parse_pointer(Value) ->
case Value of
<<"mouse"/utf8>> ->
mouse;
<<"touch"/utf8>> ->
touch;
<<"pen"/utf8>> ->
pen;
_ ->
mouse
end.
-file("src/plushie/prop/pointer.gleam", 23).
?DOC(
" Parse a mouse button from a wire string. Defaults to LeftButton for\n"
" unrecognized values.\n"
).
-spec parse_button(binary()) -> plushie@event:mouse_button().
parse_button(Value) ->
case Value of
<<"left"/utf8>> ->
left_button;
<<"right"/utf8>> ->
right_button;
<<"middle"/utf8>> ->
middle_button;
<<"back"/utf8>> ->
back_button;
<<"forward"/utf8>> ->
forward_button;
_ ->
{other_button, Value}
end.