using System;
using System.Drawing;
using System.Windows.Forms;
namespace CSharpSample
{
class Program
{
static void Main()
{
Tobii.InteractionLib.IInteractionLib intlib =
Tobii.InteractionLib.InteractionLibFactory.CreateInteractionLib(
Tobii.InteractionLib.FieldOfUse.Interactive);
foreach (var area in DisplayEnumerationHelper.DisplayEnumerationHelper.EnumerateDisplayAreas())
{
intlib.CoordinateTransformAddOrUpdateDisplayArea(
area.wVirtual, area.hVirtual,
area.wVirtual, area.hVirtual,
area.xVirtual, area.yVirtual,
area.monitorId);
}
var form = new Form();
form.Text = "Interactor Window";
form.Move += (sender, e) =>
{
var offset = form.PointToScreen(new Point(0, 0));
intlib.CoordinateTransformSetOriginOffset(offset.X, offset.Y);
};
void AddOrUpdateInteractor(Size clientSize)
{
var rect = new Tobii.InteractionLib.Rectangle(0, 0, clientSize.Width, clientSize.Height);
intlib.BeginInteractorUpdates();
intlib.AddOrUpdateInteractor(0, rect, 0);
intlib.CommitInteractorUpdates();
};
form.Resize += (sender, e) => AddOrUpdateInteractor(form.ClientSize);
intlib.GazeFocusEvent += e => form.BackColor = e.hasFocus ?
SystemColors.Highlight :
SystemColors.Window;
var closed = false;
form.Closed += (sender, e) => closed = true;
form.Show();
AddOrUpdateInteractor(form.ClientSize);
while (!closed)
{
Application.DoEvents();
intlib.Update();
}
intlib.Dispose();
}
}
}