summaryrefslogtreecommitdiffstats
path: root/test/test_ecore_pipe-native.rb
diff options
context:
space:
mode:
authorMarius Hanne <marius.hanne@sourceagency.org>2013-02-23 20:32:50 +0100
committerMarius Hanne <marius.hanne@sourceagency.org>2013-02-23 20:49:45 +0100
commit08de292b856e0e182db831ee7a6348695a19c103 (patch)
treea58cf76c782c7c3a13457347fa362b60a66184b6 /test/test_ecore_pipe-native.rb
parentc26b2ad177a6636ebdcea9b89c52017de8089fca (diff)
downloadffi-efl-08de292b856e0e182db831ee7a6348695a19c103.zip
ffi-efl-08de292b856e0e182db831ee7a6348695a19c103.tar.gz
examples for Ecore pipe. Thanks to jeremyz for the original -native version!
Diffstat (limited to 'test/test_ecore_pipe-native.rb')
-rw-r--r--test/test_ecore_pipe-native.rb52
1 files changed, 52 insertions, 0 deletions
diff --git a/test/test_ecore_pipe-native.rb b/test/test_ecore_pipe-native.rb
new file mode 100644
index 0000000..7dc095a
--- /dev/null
+++ b/test/test_ecore_pipe-native.rb
@@ -0,0 +1,52 @@
+#! /usr/bin/env ruby
+# -*- coding: UTF-8 -*-
+#
+require 'efl/native/ecore'
+require 'efl/native/elm/elm_win'
+require 'efl/native/elm/elm_bg'
+require 'efl/native/elm/elm_label'
+require 'efl/native/elm/elm_object'
+#
+include Efl::Native
+#
+elm_init 0, FFI::MemoryPointer::NULL
+#
+win_del = Proc.new { |data,evas_object,event_info| elm_exit() }
+#
+win = elm_win_add nil, "App name", :elm_win_basic
+elm_win_title_set win, "Window title"
+evas_object_smart_callback_add win, "delete,request", win_del, nil
+#
+bg = elm_bg_add win
+evas_object_size_hint_weight_set bg, 1.0, 1.0
+elm_win_resize_object_add win, bg
+evas_object_show bg
+#
+lb = elm_label_add win
+elm_object_part_text_set lb, nil, "Hello World"
+evas_object_size_hint_weight_set lb, 1.0, 1.0
+elm_win_resize_object_add win, lb
+evas_object_show lb
+#
+evas_object_move win, 300, 300
+evas_object_resize win, 200, 100
+#
+evas_object_show win
+#
+pipe_cb = Proc.new { |date,buffer,n|
+ elm_object_part_text_set lb, nil, buffer.read_string[0..n-1]
+}
+#
+pipe = ecore_pipe_add pipe_cb, nil
+#
+pid = fork {
+ ecore_pipe_read_close(pipe);
+ [ "hello", "dying", "old", "planet", "earth"].each do |w|
+ sleep 1
+ ecore_pipe_write pipe, w, w.length
+ end
+}
+#
+elm_run
+ecore_pipe_del pipe
+elm_shutdown