From 80ea35c67df70b6fd4f444c6f932b355ee245396 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Sun, 11 Jul 2010 12:04:48 +0200 Subject: Migrated from erl_interface to Eva --- src/core/ephraim_gui.erl | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/core/ephraim_gui.erl (limited to 'src/core/ephraim_gui.erl') diff --git a/src/core/ephraim_gui.erl b/src/core/ephraim_gui.erl new file mode 100644 index 0000000..79433e0 --- /dev/null +++ b/src/core/ephraim_gui.erl @@ -0,0 +1,28 @@ +-module(ephraim_gui). +-compile([debug_info, export_all]). + +-spec init() -> ok. +init() -> + Port = open_port({spawn_executable, "ephraim-gtk"}, [binary, nouse_stdio, {packet, 4}]), + ephraim ! {register_ui, self()}, + loop(Port), + ephraim ! {unregister_ui, self()}. + +-spec loop(port()) -> ok. +loop(Port) -> + receive + stop -> + ok; + {Port, {data, Data}} -> + Msg = binary_to_term(Data), + case Msg of + stop -> + ok; + _ -> + ephraim ! Msg, + loop(Port) + end; + Msg -> + Port ! {self(), {command, term_to_binary(Msg)}}, + loop(Port) + end. -- cgit v1.2.3