Welcome to mirror list, hosted at ThFree Co, Russian Federation.

Program.cs « RxMouseServer « RxRemoteMouseMoves « Samples « NET « Rx - github.com/mono/rx.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: fe4ac77ff4785156e236e2abef43efb6566cd656 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
using System;
using System.Drawing;
using System.Reactive.Linq;
using System.Windows.Forms;

namespace RxMouseServer
{
    partial class Program
    {
        [STAThread]
        static void Main(string[] args)
        {
            Console.WriteLine("Server");

            int port;
            ParseArgs(args, out port);

            var observer = Remoting(port);

            var frm = new Form();

            frm.Load += (o, e) =>
            {
                var g = frm.CreateGraphics();

                var mme = (from mm in Observable.FromEventPattern<MouseEventArgs>(frm, "MouseMove")
                           select mm.EventArgs.Location)
                          .DistinctUntilChanged()
                          .Do(pt =>
                          {
                              g.DrawEllipse(Pens.Red, pt.X, pt.Y, 1, 1);
                          });

                mme.Subscribe(observer);
            };

            Application.Run(frm);
        }

        static void ParseArgs(string[] args, out int port)
        {
            port = 9090;

            if (args.Length == 1)
            {
                port = int.Parse(args[0]);
            }
        }
    }
}