예제 #1
0
파일: EoPromises.cs 프로젝트: zmike/efl-tmp
        public static void test_simple_task_run()
        {
            Efl.Loop    loop   = Efl.App.AppMain;
            Eina.Future future = loop.Idle();

            bool callbackCalled = false;
            int  ret_code       = 1992;

            future.Then((Eina.Value value) => {
                callbackCalled = true;
                Eina.Value v   = new Eina.Value(Eina.ValueType.Int32);
                v.Set(ret_code);
                loop.Quit(v);
                return(value);
            });
            Eina.Value ret_value = loop.Begin();

            Test.Assert(callbackCalled, "Future loop callback must have been called.");

            Test.AssertEquals(ret_value.GetValueType(), Eina.ValueType.Int32);

            int ret_from_value;

            Test.Assert(ret_value.Get(out ret_from_value));
            Test.AssertEquals(ret_from_value, ret_code);
        }
예제 #2
0
파일: EoPromises.cs 프로젝트: zmike/efl-tmp
        public static void test_simple_async()
        {
            Efl.Loop loop = Efl.App.AppMain;
            Task     t    = LoopConsumer.Consume(loop);

            loop.Begin();
            Test.Assert(t.Wait(1000), "Task should have been completed in time.");
        }
예제 #3
0
파일: Model.cs 프로젝트: mag0/efl
        public static void easy_model_extraction()
        {
            Efl.Loop loop = Efl.App.AppMain;
            Task     task = EasyModelExtractionAsync(loop);

            loop.Begin();

            task.Wait();
        }
예제 #4
0
        public static void idle_event()
        {
            Efl.Loop loop = Efl.App.AppMain;
            loop.SetName("loop");
            TestEoEvents listener = new TestEoEvents();

            listener.loop = loop;
            loop.IdleEvt += listener.callback;

            Test.Assert(!listener.called);
            Test.Assert(!listener.correct_sender);
            Test.AssertEquals("loop", loop.GetName());
            loop.Begin();
            Test.Assert(listener.called);
            Test.Assert(listener.correct_sender);
            Test.AssertEquals("loop_called", loop.GetName());
        }
예제 #5
0
    static void Main(string[] args)
    {
        Efl.All.Init();

        String border_path = "./src/examples/evas/resources/images/red.png";

        if (args.Length >= 1)
        {
            border_path = args[0];
        }

        Efl.Loop loop = new Efl.Loop();
        TestMain t    = new TestMain(border_path);

        loop.Begin();

        Efl.All.Shutdown();
    }
    static void Main(string[] args)
    {
        Efl.All.Init();

        var loop  = new Efl.Loop();
        var timer = new Efl.LoopTimer(loop, 1.0);

        TestMain listener = new TestMain(loop);

        Console.WriteLine("Starting MainLoop");

        timer.TimerTickEvent += listener.on_tick;
        timer.TimerTickEvent += listener.another_callback;
        timer.TimerTickEvent -= listener.another_callback;

        loop.Begin();

        Efl.All.Shutdown();
    }
예제 #7
0
    static void Main(string[] args)
    {
        Efl.All.Init();

        Efl.Loop loop = new Efl.Loop();


        EcoreEvas ecore_evas = new EcoreEvas();

        Efl.Canvas.Object canvas = ecore_evas.canvas;
        canvas.SetVisible(true);

        Efl.Object parent = canvas.GetParent();
        System.Diagnostics.Debug.Assert(parent.NativeHandle != IntPtr.Zero);

        Evas.Box    box  = new MyBox(canvas);
        Eina.Size2D size = new Eina.Size2D();

        size.W = 320;
        size.H = 240;

        box.SetSize(size);
        box.SetVisible(true);

        Efl.Canvas.Rectangle rect = new Efl.Canvas.Rectangle(canvas);
        rect.SetColor(0, 0, 255, 255);
        size.W = 320;
        size.H = 120;
        rect.SetSize(size);
        rect.SetVisible(true);
        box.Append(rect);

        Efl.Canvas.Rectangle rect2 = new Efl.Canvas.Rectangle(canvas);
        rect2.SetColor(0, 255, 0, 255);
        rect2.SetSize(size);
        rect2.SetVisible(true);
        box.Append(rect2);

        loop.Begin();

        Efl.All.Shutdown();
    }
예제 #8
0
    static void Main(string[] args)
    {
        int color_index = 0;

        Efl.All.Init();

        Efl.Loop  loop       = new Efl.Loop();
        EcoreEvas ecore_evas = new EcoreEvas();

        Efl.Canvas.Object canvas = ecore_evas.canvas;
        canvas.SetVisible(true);

        Efl.Object parent = canvas.GetParent();
        System.Diagnostics.Debug.Assert(parent.NativeHandle != IntPtr.Zero);

        Efl.Canvas.Rectangle rect = new Efl.Canvas.Rectangle(canvas);
        rect.SetColor(colors[0, 0], colors[0, 1], colors[0, 2], 255);
        Eina.Size2D size = new Eina.Size2D();
        size.W = 640;
        size.H = 480;
        rect.SetSize(size);
        rect.SetVisible(true);

        canvas.KeyDownEvt += (object sender, Efl.Input.InterfaceKeyDownEvt_Args e) => {
            color_index = (color_index + 1) % 3;
            Console.WriteLine("Key Down");
            Console.WriteLine("Got key obj at {0}", e.arg.NativeHandle.ToString("X"));
            Console.WriteLine("Got key_get() == [{0}]", e.arg.GetKey());
            rect.SetColor(colors[color_index, 0],
                          colors[color_index, 1],
                          colors[color_index, 2], 255);
        };

        loop.Begin();

        Efl.All.Shutdown();
    }
예제 #9
0
    static void Main(string[] args)
    {
        Efl.All.Init();

        Efl.Loop loop = new Efl.Loop();

        EcoreEvas ecore_evas = new EcoreEvas();

        Eina.Size2D     size = new Eina.Size2D();
        Eina.Position2D pos  = new Eina.Position2D();

        Efl.Canvas.Object canvas = ecore_evas.canvas;
        canvas.SetVisible(true);

        Efl.Canvas.Rectangle bg = new Efl.Canvas.Rectangle(canvas);
        bg.SetColor(255, 255, 255, 255);
        pos.X = 0;
        pos.Y = 0;
        bg.SetPosition(pos);
        size.W = WIDTH;
        size.H = HEIGHT;
        bg.SetSize(size);
        bg.SetVisible(true);

        string path = args[0];

        Evas.Image logo = new Evas.Image(canvas);
        logo.SetFillAuto(true);

        // TODO add preloaded support (depends on events)

        logo.SetFile(path, null);
        size.W = WIDTH / 2;
        size.H = HEIGHT / 2;
        logo.SetSize(size);

        // TODO add a bunch of key/mouse handlers

        logo.SetVisible(true);

        int[]         pixels    = new int[(WIDTH / 4) * (HEIGHT / 4)];
        System.Random generator = new System.Random();
        for (int i = 0; i < pixels.Length; i++)
        {
            pixels[i] = generator.Next();
        }

        Evas.Image noise_img = new Evas.Image(canvas);
        size.W = WIDTH / 4;
        size.H = HEIGHT / 4;
        noise_img.SetSize(size);
        // FIXME Add a way to set the pixels.
        // noise_img.data_set(pixels);
        noise_img.SetFillAuto(true);
        pos.X = WIDTH * 5 / 8;
        pos.Y = HEIGHT / 8;
        noise_img.SetPosition(pos);
        noise_img.SetVisible(true);
        Console.WriteLine("Creating noise image with sizez %d, %d", WIDTH / 4, HEIGHT / 4);

        Efl.Canvas.Proxy proxy_img = new Efl.Canvas.Proxy(canvas);
        proxy_img.SetSource(noise_img);
        pos.X = WIDTH / 2;
        pos.Y = HEIGHT / 2;
        proxy_img.SetPosition(pos);
        size.W = WIDTH / 2;
        size.H = HEIGHT / 2;
        proxy_img.SetSize(size);
        proxy_img.SetVisible(true);

        loop.Begin();
    }
예제 #10
0
    static void Main(string[] args)
    {
        Efl.All.Init();

        Efl.Loop loop = new Efl.Loop();

        EcoreEvas ecore_evas = new EcoreEvas();

        Eina.Size2D size = new Eina.Size2D();
        size.W = WIDTH;
        size.H = HEIGHT;

        Eina.Size2D hint = new Eina.Size2D();

        Efl.Canvas.Object canvas = ecore_evas.canvas;
        canvas.SetVisible(true);

        Efl.Object parent = canvas.GetParent();
        System.Diagnostics.Debug.Assert(parent.NativeHandle != IntPtr.Zero);

        Efl.Canvas.Rectangle bg = new Efl.Canvas.Rectangle(canvas);
        bg.SetColor(255, 255, 255, 255);
        bg.SetSize(size);
        bg.SetVisible(true);


        Evas.Table table = new Evas.Table(canvas);
        table.SetHomogeneous(Evas.ObjectTable.HomogeneousMode.None);
        table.SetPadding(0, 0);
        table.SetSize(size);
        table.SetVisible(true);

        Efl.Canvas.Rectangle rect = new Efl.Canvas.Rectangle(canvas);
        rect.SetColor(255, 0, 0, 255);
        hint.W = 100;
        hint.H = 50;
        rect.SetHintMin(hint);
        rect.SetVisible(true);
        table.Pack(rect, 1, 1, 2, 1);

        rect = new Efl.Canvas.Rectangle(canvas);
        rect.SetColor(0, 255, 0, 255);
        hint.W = 50;
        hint.H = 100;
        rect.SetHintMin(hint);
        rect.SetVisible(true);
        table.Pack(rect, 1, 2, 1, 2);

        rect = new Efl.Canvas.Rectangle(canvas);
        rect.SetColor(0, 0, 255, 255);
        hint.W = 50;
        hint.H = 50;
        rect.SetHintMin(hint);
        rect.SetVisible(true);
        table.Pack(rect, 2, 2, 1, 1);

        rect = new Efl.Canvas.Rectangle(canvas);
        rect.SetColor(255, 255, 0, 255);
        rect.SetHintMin(hint);
        rect.SetVisible(true);
        table.Pack(rect, 2, 3, 1, 1);

        loop.Begin();

        Efl.All.Shutdown();
    }
예제 #11
0
    static void Main(string[] args)
    {
        Efl.All.Init();

        Efl.Loop loop = new Efl.Loop();

        EcoreEvas ecore_evas = new EcoreEvas();

        Eina.Size2D size = new Eina.Size2D();

        Efl.Canvas.Object canvas = ecore_evas.canvas;
        canvas.SetVisible(true);

        Efl.Object parent = canvas.GetParent();
        System.Diagnostics.Debug.Assert(parent.NativeHandle != IntPtr.Zero);

        Efl.Canvas.Rectangle bg = new Efl.Canvas.Rectangle(canvas);
        bg.SetColor(255, 255, 255, 255);
        size.W = WIDTH;
        size.H = HEIGHT;
        bg.SetSize(size);
        bg.SetVisible(true);

        string valid_path = args[0];

        Evas.Image image = new Evas.Image(canvas);
        image.SetFile(valid_path, null);

        /* FIXME evas-image uses error handling code from
         * evas_object_image_load_error_get, which seems to be not available
         * Efl.image.load.State state = image.load_error_get(); */

        // FIXME missing move
        Eina.Rect rect = new Eina.Rect();

        rect.X = 0;
        rect.Y = 0;
        rect.W = WIDTH / 2;
        rect.H = HEIGHT / 2;
        image.SetFill(rect);

        size.W = WIDTH / 2;
        size.H = HEIGHT / 2;
        image.SetSize(size);
        image.SetVisible(true);

        rect    = image.GetFill();
        rect.Y -= 50;
        rect.W += 100;
        image.SetFill(rect);

        TestMain listener = new TestMain(image);

        // TODO handle key events in order to alter the image like the C
        // example. Meanwhile, just set some w fill
        /* EventListener callback = new EventListener(); */

        /* bg.key_focus_set(true); */
        /* bg.event_callback_priority_add(Evas.Callback_Type.Key_down, */
        /*         Efl.Callback_Priority.Default, */
        /*         callback, null); */

        loop.Begin();

        Efl.All.Shutdown();
    }