About the Committing ink sketches using the controls ink commands Sample
[C#]
InkSketchCommit.cs
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Runtime.InteropServices;
using ESRI.ArcGIS.Controls;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Geometry;
using ESRI.ArcGIS.SystemUI;
using ESRI.ArcGIS.ADF;
using ESRI.ArcGIS;
namespace InkSketchCommit
{
/// <summary>
/// Summary description for Form1.
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.GroupBox gpbInkSketch;
private System.Windows.Forms.GroupBox gpbReport;
private System.Windows.Forms.Label lblInfo;
private System.Windows.Forms.RadioButton radManual;
private System.Windows.Forms.RadioButton radAutoGraphic;
private System.Windows.Forms.RadioButton radAutoText;
private System.Windows.Forms.Label lbl1sec;
private System.Windows.Forms.Label lbl10sec;
private System.Windows.Forms.Label lblAutoComplete;
private System.Windows.Forms.Label lblCollectingStatus;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox tbxNumber;
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;
private System.Windows.Forms.TrackBar tbrAutoComplete;
private IMap m_pMap;
private ESRI.ArcGIS.Controls.IEngineInkEnvironment m_EngineInkEnvironment;
private IEngineInkEnvironmentEvents_OnStartEventHandler m_startInkE;
private IEngineInkEnvironmentEvents_OnStopEventHandler m_stopInkE;
private IEngineInkEnvironmentEvents_OnGestureEventHandler m_gestureInkE;
private TableLayoutPanel tableLayoutPanel1;
private AxToolbarControl axToolbarControl1;
private AxMapControl axMapControl1;
private AxLicenseControl axLicenseControl1;
///Tablet PC system metric value used by GetSystemMetrics to identify whether the application
///is running on a Tablet PC.
private const int SM_TABLETPC = 86;
/// <summary>
/// The GetSystemMetrics function retrieves system metrics and system configuration settings.
/// </summary>
public Form1()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
}
/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
ESRI.ArcGIS.ADF.COMSupport.AOUninitialize.Shutdown();
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
this.gpbInkSketch = new System.Windows.Forms.GroupBox();
this.lblAutoComplete = new System.Windows.Forms.Label();
this.lbl10sec = new System.Windows.Forms.Label();
this.lbl1sec = new System.Windows.Forms.Label();
this.tbrAutoComplete = new System.Windows.Forms.TrackBar();
this.radAutoText = new System.Windows.Forms.RadioButton();
this.radAutoGraphic = new System.Windows.Forms.RadioButton();
this.radManual = new System.Windows.Forms.RadioButton();
this.lblInfo = new System.Windows.Forms.Label();
this.gpbReport = new System.Windows.Forms.GroupBox();
this.tbxNumber = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.lblCollectingStatus = new System.Windows.Forms.Label();
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.axToolbarControl1 = new ESRI.ArcGIS.Controls.AxToolbarControl();
this.axMapControl1 = new ESRI.ArcGIS.Controls.AxMapControl();
this.axLicenseControl1 = new ESRI.ArcGIS.Controls.AxLicenseControl();
this.gpbInkSketch.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.tbrAutoComplete)).BeginInit();
this.gpbReport.SuspendLayout();
this.tableLayoutPanel1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.axToolbarControl1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.axMapControl1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.axLicenseControl1)).BeginInit();
this.SuspendLayout();
//
// gpbInkSketch
//
this.gpbInkSketch.Controls.Add(this.lblAutoComplete);
this.gpbInkSketch.Controls.Add(this.lbl10sec);
this.gpbInkSketch.Controls.Add(this.lbl1sec);
this.gpbInkSketch.Controls.Add(this.tbrAutoComplete);
this.gpbInkSketch.Controls.Add(this.radAutoText);
this.gpbInkSketch.Controls.Add(this.radAutoGraphic);
this.gpbInkSketch.Controls.Add(this.radManual);
this.gpbInkSketch.Controls.Add(this.lblInfo);
this.gpbInkSketch.Location = new System.Drawing.Point(433, 51);
this.gpbInkSketch.Name = "gpbInkSketch";
this.gpbInkSketch.Size = new System.Drawing.Size(296, 352);
this.gpbInkSketch.TabIndex = 3;
this.gpbInkSketch.TabStop = false;
this.gpbInkSketch.Text = "Ink Sketch Commit Options";
//
// lblAutoComplete
//
this.lblAutoComplete.Location = new System.Drawing.Point(24, 240);
this.lblAutoComplete.Name = "lblAutoComplete";
this.lblAutoComplete.Size = new System.Drawing.Size(263, 23);
this.lblAutoComplete.TabIndex = 7;
this.lblAutoComplete.Text = "Automatically Commit the Ink Sketch after:";
//
// lbl10sec
//
this.lbl10sec.Location = new System.Drawing.Point(216, 303);
this.lbl10sec.Name = "lbl10sec";
this.lbl10sec.Size = new System.Drawing.Size(64, 24);
this.lbl10sec.TabIndex = 6;
this.lbl10sec.Text = "(10 sec)";
//
// lbl1sec
//
this.lbl1sec.Location = new System.Drawing.Point(8, 303);
this.lbl1sec.Name = "lbl1sec";
this.lbl1sec.Size = new System.Drawing.Size(65, 24);
this.lbl1sec.TabIndex = 5;
this.lbl1sec.Text = "(1 sec)";
//
// tbrAutoComplete
//
this.tbrAutoComplete.Location = new System.Drawing.Point(8, 264);
this.tbrAutoComplete.Minimum = 1;
this.tbrAutoComplete.Name = "tbrAutoComplete";
this.tbrAutoComplete.Size = new System.Drawing.Size(264, 56);
this.tbrAutoComplete.TabIndex = 4;
this.tbrAutoComplete.Value = 1;
this.tbrAutoComplete.MouseUp += new System.Windows.Forms.MouseEventHandler(this.tbrAutoComplete_MouseUp);
//
// radAutoText
//
this.radAutoText.Location = new System.Drawing.Point(16, 167);
this.radAutoText.Name = "radAutoText";
this.radAutoText.Size = new System.Drawing.Size(272, 54);
this.radAutoText.TabIndex = 3;
this.radAutoText.Text = "Automatically Committed and Recognized as Text (Tablet PC only)";
this.radAutoText.CheckedChanged += new System.EventHandler(this.radAutoText_CheckedChanged);
//
// radAutoGraphic
//
this.radAutoGraphic.Location = new System.Drawing.Point(16, 144);
this.radAutoGraphic.Name = "radAutoGraphic";
this.radAutoGraphic.Size = new System.Drawing.Size(271, 24);
this.radAutoGraphic.TabIndex = 2;
this.radAutoGraphic.Text = "Automatically Committed to Graphic";
this.radAutoGraphic.CheckedChanged += new System.EventHandler(this.radAutoGraphic_CheckedChanged);
//
// radManual
//
this.radManual.Location = new System.Drawing.Point(16, 112);
this.radManual.Name = "radManual";
this.radManual.Size = new System.Drawing.Size(160, 24);
this.radManual.TabIndex = 1;
this.radManual.Text = "Manually Committed";
this.radManual.CheckedChanged += new System.EventHandler(this.radManual_CheckedChanged);
//
// lblInfo
//
this.lblInfo.Location = new System.Drawing.Point(16, 40);
this.lblInfo.Name = "lblInfo";
this.lblInfo.Size = new System.Drawing.Size(264, 56);
this.lblInfo.TabIndex = 0;
this.lblInfo.Text = "Ink sketches can be committed manually or automatically. Click on the buttons belo" +
"w to change the commit method.";
//
// gpbReport
//
this.gpbReport.Controls.Add(this.tbxNumber);
this.gpbReport.Controls.Add(this.label1);
this.gpbReport.Controls.Add(this.lblCollectingStatus);
this.gpbReport.Location = new System.Drawing.Point(433, 409);
this.gpbReport.Name = "gpbReport";
this.gpbReport.Size = new System.Drawing.Size(296, 112);
this.gpbReport.TabIndex = 4;
this.gpbReport.TabStop = false;
this.gpbReport.Text = "Sketch Report";
//
// tbxNumber
//
this.tbxNumber.BackColor = System.Drawing.SystemColors.Control;
this.tbxNumber.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.tbxNumber.Location = new System.Drawing.Point(176, 32);
this.tbxNumber.Name = "tbxNumber";
this.tbxNumber.Size = new System.Drawing.Size(100, 15);
this.tbxNumber.TabIndex = 2;
this.tbxNumber.Text = "0";
//
// label1
//
this.label1.Location = new System.Drawing.Point(8, 32);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(168, 23);
this.label1.TabIndex = 1;
this.label1.Text = "Number of Ink Sketches = ";
//
// lblCollectingStatus
//
this.lblCollectingStatus.Location = new System.Drawing.Point(8, 80);
this.lblCollectingStatus.Name = "lblCollectingStatus";
this.lblCollectingStatus.Size = new System.Drawing.Size(272, 16);
this.lblCollectingStatus.TabIndex = 0;
//
// tableLayoutPanel1
//
this.tableLayoutPanel1.ColumnCount = 2;
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 58.46906F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 41.53094F));
this.tableLayoutPanel1.Controls.Add(this.gpbInkSketch, 1, 1);
this.tableLayoutPanel1.Controls.Add(this.axToolbarControl1, 0, 0);
this.tableLayoutPanel1.Controls.Add(this.axMapControl1, 0, 1);
this.tableLayoutPanel1.Controls.Add(this.gpbReport, 1, 2);
this.tableLayoutPanel1.Controls.Add(this.axLicenseControl1, 0, 2);
this.tableLayoutPanel1.Location = new System.Drawing.Point(14, 8);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
this.tableLayoutPanel1.RowCount = 3;
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 11.88406F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 88.11594F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 120F));
this.tableLayoutPanel1.Size = new System.Drawing.Size(737, 527);
this.tableLayoutPanel1.TabIndex = 5;
//
// axToolbarControl1
//
this.tableLayoutPanel1.SetColumnSpan(this.axToolbarControl1, 2);
this.axToolbarControl1.Location = new System.Drawing.Point(3, 3);
this.axToolbarControl1.Name = "axToolbarControl1";
this.axToolbarControl1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axToolbarControl1.OcxState")));
this.axToolbarControl1.Size = new System.Drawing.Size(729, 28);
this.axToolbarControl1.TabIndex = 5;
//
// axMapControl1
//
this.axMapControl1.Location = new System.Drawing.Point(3, 51);
this.axMapControl1.Name = "axMapControl1";
this.axMapControl1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axMapControl1.OcxState")));
this.axMapControl1.Size = new System.Drawing.Size(423, 352);
this.axMapControl1.TabIndex = 6;
this.axMapControl1.OnAfterScreenDraw += new ESRI.ArcGIS.Controls.IMapControlEvents2_Ax_OnAfterScreenDrawEventHandler(this.axMapControl1_OnAfterScreenDraw);
//
// axLicenseControl1
//
this.axLicenseControl1.Enabled = true;
this.axLicenseControl1.Location = new System.Drawing.Point(3, 409);
this.axLicenseControl1.Name = "axLicenseControl1";
this.axLicenseControl1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axLicenseControl1.OcxState")));
this.axLicenseControl1.Size = new System.Drawing.Size(32, 32);
this.axLicenseControl1.TabIndex = 7;
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 15);
this.ClientSize = new System.Drawing.Size(767, 540);
this.Controls.Add(this.tableLayoutPanel1);
this.MaximumSize = new System.Drawing.Size(775, 580);
this.MinimumSize = new System.Drawing.Size(775, 580);
this.Name = "Form1";
this.Text = "Ink Sketch Commit";
this.Load += new System.EventHandler(this.Form1_Load);
this.gpbInkSketch.ResumeLayout(false);
this.gpbInkSketch.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.tbrAutoComplete)).EndInit();
this.gpbReport.ResumeLayout(false);
this.gpbReport.PerformLayout();
this.tableLayoutPanel1.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.axToolbarControl1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.axMapControl1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.axLicenseControl1)).EndInit();
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
if (!RuntimeManager.Bind(ProductCode.Engine))
{
if (!RuntimeManager.Bind(ProductCode.Desktop))
{
MessageBox.Show("Unable to bind to ArcGIS runtime. Application will be shut down.");
return;
}
}
Application.Run(new Form1());
}
private void Form1_Load(object sender, System.EventArgs e)
{
//Set buddy control
axToolbarControl1.SetBuddyControl(axMapControl1);
//Add items to the ToolbarControl
axToolbarControl1.AddItem("esriControls.ControlsOpenDocCommand", 0, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);
axToolbarControl1.AddItem("esriControls.ControlsSaveAsDocCommand", 0, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);
axToolbarControl1.AddItem("esriControls.ControlsInkToolbar", 0, -1, true, 0, esriCommandStyles.esriCommandStyleIconOnly);
axToolbarControl1.AddItem("esriControls.ControlsMapZoomInTool", 0, -1, true, 0, esriCommandStyles.esriCommandStyleIconOnly);
axToolbarControl1.AddItem("esriControls.ControlsMapZoomOutTool", 0, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);
axToolbarControl1.AddItem("esriControls.ControlsMapFullExtentCommand", 0, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);
axToolbarControl1.AddItem("esriControls.ControlsSelectTool", 0, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);
//Set the EngineInkEnviroment Singleton
m_EngineInkEnvironment = new EngineInkEnvironmentClass();
//Set the Ink Tool commit type to be manual
m_EngineInkEnvironment.ToolCommitType = esriEngineInkToolCommitType.esriEngineInkToolCommitTypeManual;
//Set the Form Controls
tbrAutoComplete.Enabled = false;
tbrAutoComplete.Minimum = 1;
tbrAutoComplete.Maximum = 10;
tbrAutoComplete.TickFrequency = 1;
tbrAutoComplete.TickStyle = TickStyle.BottomRight;
lblAutoComplete.Enabled = false;
lbl1sec.Enabled = false;
lbl10sec.Enabled = false;
lblCollectingStatus.Text = "Not Collecting Ink";
tbxNumber.Text = "0";
radManual.Checked = true;
//The radAutoText Radio button is only available on a Tablet PC.
//Converting ink to text requires a Recognizer which can only
//run on Windows XP Tablet PC Edition.
if (IsRunningOnTabletPC())
{
radAutoText.Enabled = true;
}
else
{
radAutoText.Enabled = false;
}
//Set the EngineInkEnvironment OnStart events
m_startInkE = new IEngineInkEnvironmentEvents_OnStartEventHandler(OnStartInk);
((IEngineInkEnvironmentEvents_Event)m_EngineInkEnvironment).OnStart += m_startInkE;
//Set the EngineInkEnvironment OnStop events
m_stopInkE = new IEngineInkEnvironmentEvents_OnStopEventHandler(OnStopInk);
((IEngineInkEnvironmentEvents_Event)m_EngineInkEnvironment).OnStop += m_stopInkE;
//Set the EngineInkEnvironment OnGesture events
m_gestureInkE = new IEngineInkEnvironmentEvents_OnGestureEventHandler(OnGestureInk);
((IEngineInkEnvironmentEvents_Event)m_EngineInkEnvironment).OnGesture += m_gestureInkE;
}
private void OnStartInk()
{
//Report to the user the mode of the Ink Collector
lblCollectingStatus.Text = "Collecting Ink Sketch";
}
private void OnStopInk()
{
//Report to the user the mode of the Ink Collector
lblCollectingStatus.Text = "Not Collecting Ink Sketch";
}
private void OnGestureInk(esriEngineInkGesture p_gesture, object p_point)
{
//Report to the user that a Gesture has been made
lblCollectingStatus.Text = "Gesture Made Sketch";
}
private bool IsRunningOnTabletPC()
{
// Check to see if the application is running on a Tablet PC
// MSDN Help GetSystemMetrics(86)
// Nonzero if the current operating system is the Windows XP Tablet PC edition,
// 0 (zero) if not.
if (Win32.GetSystemMetrics(SM_TABLETPC) != 0)
return true;
else
return false;
}
private void radManual_CheckedChanged(object sender, System.EventArgs e)
{
//Manually committed ink sketch
if (radManual.Checked)
{
tbrAutoComplete.Enabled = false;
lblAutoComplete.Enabled = false;
lbl1sec.Enabled = false;
lbl10sec.Enabled = false;
m_EngineInkEnvironment.ToolCommitType = esriEngineInkToolCommitType.esriEngineInkToolCommitTypeManual;
}
}
private void radAutoGraphic_CheckedChanged(object sender, System.EventArgs e)
{
//Automatically commit and save as ink graphic
if (radAutoGraphic.Checked)
{
tbrAutoComplete.Enabled = true;
lblAutoComplete.Enabled = true;
lbl1sec.Enabled = true;
lbl10sec.Enabled = true;
m_EngineInkEnvironment.ToolCommitType = esriEngineInkToolCommitType.esriEngineInkToolCommitTypeAutoGraphic;
m_EngineInkEnvironment.ToolCommitDelay = tbrAutoComplete.Value;
}
}
private void radAutoText_CheckedChanged(object sender, System.EventArgs e)
{
//Automatically commit and recognize as ink text
//This is only available on a Tablet PC
if (radAutoText.Checked)
{
tbrAutoComplete.Enabled = true;
lblAutoComplete.Enabled = true;
lbl1sec.Enabled = true;
lbl10sec.Enabled = true;
m_EngineInkEnvironment.ToolCommitType = esriEngineInkToolCommitType.esriEngineInkToolCommitTypeAutoText;
m_EngineInkEnvironment.ToolCommitDelay = tbrAutoComplete.Value;
}
}
private void axMapControl1_OnAfterScreenDraw(object sender, IMapControlEvents2_OnAfterScreenDrawEvent e)
{
//Report to the user the number of Ink Sketches that are present
IElement pElement;
IGraphicsContainer pContainer;
int i = 0;
m_pMap = axMapControl1.Map;
pContainer = (IGraphicsContainer)m_pMap;
pContainer.Reset();
pElement = pContainer.Next();
while (pElement != null)
{
if (pElement is InkGraphic)
i = i + 1;
pElement = pContainer.Next();
}
tbxNumber.Text = i.ToString();
}
private void tbrAutoComplete_MouseUp(object sender, MouseEventArgs e)
{
//Set the ToolCommitDelay using the value of the TrackBar
m_EngineInkEnvironment.ToolCommitDelay = tbrAutoComplete.Value;
}
}
public class Win32
{
[DllImport("user32.dll",EntryPoint="GetSystemMetrics")]
public static extern int GetSystemMetrics(int abc);
}
}
[Visual Basic .NET]
InkSketchCommit.vb
Imports ESRI.ArcGIS.Controls
Imports ESRI.ArcGIS.SystemUI
Imports ESRI.ArcGIS.ADF
Imports ESRI.ArcGIS.Geometry
Imports ESRI.ArcGIS.Carto
Imports ESRI.ArcGIS
Public Class Form1
Inherits System.Windows.Forms.Form
'Tablet PC system metric value used by GetSystemMetrics to identify whether the application
'is running on a Tablet PC.
Private Const SM_TABLETPC As Integer = 86
'The GetSystemMetrics function retrieves system metrics and system configuration settings.
Declare Function GetSystemMetrics Lib "user32" Alias "GetSystemMetrics" (ByVal nIndex As Integer) As Integer
<STAThread()> _
Shared Sub Main()
'Load runtime
If Not RuntimeManager.Bind(ProductCode.Engine) Then
If Not RuntimeManager.Bind(ProductCode.Desktop) Then
MessageBox.Show("Unable to bind to ArcGIS runtime. Application will be shut down.")
System.Environment.Exit(1) ' Force exit or other indication in the application
End If
End If
Application.Run(New Form1())
End Sub
#Region " Windows Form Designer generated code "
Public Sub New()
MyBase.New()
'This call is required by the Windows Form Designer.
InitializeComponent()
'Add any initialization after the InitializeComponent() call
End Sub
'Form overrides dispose to clean up the component list.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
ESRI.ArcGIS.ADF.COMSupport.AOUninitialize.Shutdown()
m_EngineInkEnvironment = Nothing
m_EngineInkEnvironmentEvents = Nothing
m_Map = Nothing
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer
'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
Friend WithEvents gpbInkSketch As System.Windows.Forms.GroupBox
Friend WithEvents gpbReport As System.Windows.Forms.GroupBox
Friend WithEvents lblCollectingStatus As System.Windows.Forms.Label
Friend WithEvents Label1 As System.Windows.Forms.Label
Friend WithEvents tbxNumber As System.Windows.Forms.TextBox
Friend WithEvents lblInfo As System.Windows.Forms.Label
Friend WithEvents radManual As System.Windows.Forms.RadioButton
Friend WithEvents radAutoGraphic As System.Windows.Forms.RadioButton
Friend WithEvents radAutoText As System.Windows.Forms.RadioButton
Friend WithEvents tbrAutoComplete As System.Windows.Forms.TrackBar
Friend WithEvents lblAutoComplete As System.Windows.Forms.Label
Friend WithEvents lbl1sec As System.Windows.Forms.Label
Friend WithEvents TableLayoutPanel1 As System.Windows.Forms.TableLayoutPanel
Friend WithEvents AxMapControl1 As ESRI.ArcGIS.Controls.AxMapControl
Friend WithEvents AxToolbarControl1 As ESRI.ArcGIS.Controls.AxToolbarControl
Friend WithEvents AxLicenseControl1 As ESRI.ArcGIS.Controls.AxLicenseControl
Friend WithEvents lbl10sec As System.Windows.Forms.Label
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Form1))
Me.gpbInkSketch = New System.Windows.Forms.GroupBox
Me.lbl10sec = New System.Windows.Forms.Label
Me.lbl1sec = New System.Windows.Forms.Label
Me.lblAutoComplete = New System.Windows.Forms.Label
Me.tbrAutoComplete = New System.Windows.Forms.TrackBar
Me.radAutoText = New System.Windows.Forms.RadioButton
Me.radAutoGraphic = New System.Windows.Forms.RadioButton
Me.radManual = New System.Windows.Forms.RadioButton
Me.lblInfo = New System.Windows.Forms.Label
Me.gpbReport = New System.Windows.Forms.GroupBox
Me.tbxNumber = New System.Windows.Forms.TextBox
Me.Label1 = New System.Windows.Forms.Label
Me.lblCollectingStatus = New System.Windows.Forms.Label
Me.TableLayoutPanel1 = New System.Windows.Forms.TableLayoutPanel
Me.AxMapControl1 = New ESRI.ArcGIS.Controls.AxMapControl
Me.AxToolbarControl1 = New ESRI.ArcGIS.Controls.AxToolbarControl
Me.AxLicenseControl1 = New ESRI.ArcGIS.Controls.AxLicenseControl
Me.gpbInkSketch.SuspendLayout()
CType(Me.tbrAutoComplete, System.ComponentModel.ISupportInitialize).BeginInit()
Me.gpbReport.SuspendLayout()
Me.TableLayoutPanel1.SuspendLayout()
CType(Me.AxMapControl1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.AxToolbarControl1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.AxLicenseControl1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'gpbInkSketch
'
Me.gpbInkSketch.Controls.Add(Me.lbl10sec)
Me.gpbInkSketch.Controls.Add(Me.lbl1sec)
Me.gpbInkSketch.Controls.Add(Me.lblAutoComplete)
Me.gpbInkSketch.Controls.Add(Me.tbrAutoComplete)
Me.gpbInkSketch.Controls.Add(Me.radAutoText)
Me.gpbInkSketch.Controls.Add(Me.radAutoGraphic)
Me.gpbInkSketch.Controls.Add(Me.radManual)
Me.gpbInkSketch.Controls.Add(Me.lblInfo)
Me.gpbInkSketch.Location = New System.Drawing.Point(364, 32)
Me.gpbInkSketch.Name = "gpbInkSketch"
Me.gpbInkSketch.Size = New System.Drawing.Size(250, 317)
Me.gpbInkSketch.TabIndex = 3
Me.gpbInkSketch.TabStop = False
Me.gpbInkSketch.Text = "Ink Sketch Commit Options"
'
'lbl10sec
'
Me.lbl10sec.Location = New System.Drawing.Point(173, 263)
Me.lbl10sec.Name = "lbl10sec"
Me.lbl10sec.Size = New System.Drawing.Size(54, 14)
Me.lbl10sec.TabIndex = 7
Me.lbl10sec.Text = "(10 sec)"
'
'lbl1sec
'
Me.lbl1sec.Location = New System.Drawing.Point(7, 263)
Me.lbl1sec.Name = "lbl1sec"
Me.lbl1sec.Size = New System.Drawing.Size(46, 14)
Me.lbl1sec.TabIndex = 6
Me.lbl1sec.Text = "(1 sec)"
'
'lblAutoComplete
'
Me.lblAutoComplete.Location = New System.Drawing.Point(20, 208)
Me.lblAutoComplete.Name = "lblAutoComplete"
Me.lblAutoComplete.Size = New System.Drawing.Size(220, 20)
Me.lblAutoComplete.TabIndex = 5
Me.lblAutoComplete.Text = "Automatically Commit the Ink Sketch after:"
'
'tbrAutoComplete
'
Me.tbrAutoComplete.Location = New System.Drawing.Point(7, 229)
Me.tbrAutoComplete.Minimum = 1
Me.tbrAutoComplete.Name = "tbrAutoComplete"
Me.tbrAutoComplete.Size = New System.Drawing.Size(220, 42)
Me.tbrAutoComplete.TabIndex = 4
Me.tbrAutoComplete.Value = 1
'
'radAutoText
'
Me.radAutoText.Location = New System.Drawing.Point(13, 153)
Me.radAutoText.Name = "radAutoText"
Me.radAutoText.Size = New System.Drawing.Size(220, 34)
Me.radAutoText.TabIndex = 3
Me.radAutoText.Text = "Automatically Committed and Recognized as Text (Tablet PC only)"
'
'radAutoGraphic
'
Me.radAutoGraphic.Location = New System.Drawing.Point(13, 125)
Me.radAutoGraphic.Name = "radAutoGraphic"
Me.radAutoGraphic.Size = New System.Drawing.Size(207, 21)
Me.radAutoGraphic.TabIndex = 2
Me.radAutoGraphic.Text = "Automatically Committed to Graphic"
'
'radManual
'
Me.radManual.Location = New System.Drawing.Point(13, 97)
Me.radManual.Name = "radManual"
Me.radManual.Size = New System.Drawing.Size(180, 21)
Me.radManual.TabIndex = 1
Me.radManual.Text = "Manually Committed"
'
'lblInfo
'
Me.lblInfo.Location = New System.Drawing.Point(13, 35)
Me.lblInfo.Name = "lblInfo"
Me.lblInfo.Size = New System.Drawing.Size(220, 48)
Me.lblInfo.TabIndex = 0
Me.lblInfo.Text = "Ink sketches can be committed manually or automatically. Click on the buttons belo" & _
"w to change the commit method."
'
'gpbReport
'
Me.gpbReport.Controls.Add(Me.tbxNumber)
Me.gpbReport.Controls.Add(Me.Label1)
Me.gpbReport.Controls.Add(Me.lblCollectingStatus)
Me.gpbReport.Location = New System.Drawing.Point(364, 355)
Me.gpbReport.Name = "gpbReport"
Me.gpbReport.Size = New System.Drawing.Size(246, 98)
Me.gpbReport.TabIndex = 4
Me.gpbReport.TabStop = False
Me.gpbReport.Text = "Sketch Report"
'
'tbxNumber
'
Me.tbxNumber.BackColor = System.Drawing.SystemColors.Control
Me.tbxNumber.BorderStyle = System.Windows.Forms.BorderStyle.None
Me.tbxNumber.Location = New System.Drawing.Point(147, 28)
Me.tbxNumber.Name = "tbxNumber"
Me.tbxNumber.ReadOnly = True
Me.tbxNumber.Size = New System.Drawing.Size(93, 13)
Me.tbxNumber.TabIndex = 2
Me.tbxNumber.Text = "0"
'
'Label1
'
Me.Label1.Location = New System.Drawing.Point(7, 28)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(140, 14)
Me.Label1.TabIndex = 1
Me.Label1.Text = "Number of Ink Sketches = "
'
'lblCollectingStatus
'
Me.lblCollectingStatus.Location = New System.Drawing.Point(7, 62)
Me.lblCollectingStatus.Name = "lblCollectingStatus"
Me.lblCollectingStatus.Size = New System.Drawing.Size(233, 14)
Me.lblCollectingStatus.TabIndex = 0
'
'TableLayoutPanel1
'
Me.TableLayoutPanel1.ColumnCount = 2
Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 57.85257!))
Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 42.14743!))
Me.TableLayoutPanel1.Controls.Add(Me.gpbInkSketch, 1, 1)
Me.TableLayoutPanel1.Controls.Add(Me.AxMapControl1, 0, 1)
Me.TableLayoutPanel1.Controls.Add(Me.AxToolbarControl1, 0, 0)
Me.TableLayoutPanel1.Controls.Add(Me.gpbReport, 1, 2)
Me.TableLayoutPanel1.Controls.Add(Me.AxLicenseControl1, 0, 2)
Me.TableLayoutPanel1.Location = New System.Drawing.Point(2, 2)
Me.TableLayoutPanel1.Name = "TableLayoutPanel1"
Me.TableLayoutPanel1.RowCount = 3
Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 8.275862!))
Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 91.72414!))
Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 103.0!))
Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!))
Me.TableLayoutPanel1.Size = New System.Drawing.Size(624, 456)
Me.TableLayoutPanel1.TabIndex = 5
'
'AxMapControl1
'
Me.AxMapControl1.Location = New System.Drawing.Point(3, 32)
Me.AxMapControl1.Name = "AxMapControl1"
Me.AxMapControl1.OcxState = CType(resources.GetObject("AxMapControl1.OcxState"), System.Windows.Forms.AxHost.State)
Me.AxMapControl1.Size = New System.Drawing.Size(355, 317)
Me.AxMapControl1.TabIndex = 7
'
'AxToolbarControl1
'
Me.TableLayoutPanel1.SetColumnSpan(Me.AxToolbarControl1, 2)
Me.AxToolbarControl1.Location = New System.Drawing.Point(3, 3)
Me.AxToolbarControl1.Name = "AxToolbarControl1"
Me.AxToolbarControl1.OcxState = CType(resources.GetObject("AxToolbarControl1.OcxState"), System.Windows.Forms.AxHost.State)
Me.AxToolbarControl1.Size = New System.Drawing.Size(618, 28)
Me.AxToolbarControl1.TabIndex = 6
'
'AxLicenseControl1
'
Me.AxLicenseControl1.Enabled = True
Me.AxLicenseControl1.Location = New System.Drawing.Point(3, 355)
Me.AxLicenseControl1.Name = "AxLicenseControl1"
Me.AxLicenseControl1.OcxState = CType(resources.GetObject("AxLicenseControl1.OcxState"), System.Windows.Forms.AxHost.State)
Me.AxLicenseControl1.Size = New System.Drawing.Size(32, 32)
Me.AxLicenseControl1.TabIndex = 8
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(638, 476)
Me.Controls.Add(Me.TableLayoutPanel1)
Me.MaximumSize = New System.Drawing.Size(646, 503)
Me.MinimumSize = New System.Drawing.Size(646, 503)
Me.Name = "Form1"
Me.Text = "Ink Sketch Commit"
Me.gpbInkSketch.ResumeLayout(False)
Me.gpbInkSketch.PerformLayout()
CType(Me.tbrAutoComplete, System.ComponentModel.ISupportInitialize).EndInit()
Me.gpbReport.ResumeLayout(False)
Me.gpbReport.PerformLayout()
Me.TableLayoutPanel1.ResumeLayout(False)
CType(Me.AxMapControl1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.AxToolbarControl1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.AxLicenseControl1, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
End Sub
#End Region
Private m_EngineInkEnvironment As ESRI.ArcGIS.Controls.IEngineInkEnvironment
Private WithEvents m_EngineInkEnvironmentEvents As ESRI.ArcGIS.Controls.EngineInkEnvironment
Private m_Map As IMap
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Set buddy control
AxToolbarControl1.SetBuddyControl(AxMapControl1)
'Add items to the ToolbarControl
AxToolbarControl1.AddItem("esriControls.ControlsOpenDocCommand", 0, -1, False, 0, esriCommandStyles.esriCommandStyleIconOnly)
AxToolbarControl1.AddItem("esriControls.ControlsSaveAsDocCommand", 0, -1, False, 0, esriCommandStyles.esriCommandStyleIconOnly)
AxToolbarControl1.AddItem("esriControls.ControlsInkToolbar", 0, -1, True, 0, esriCommandStyles.esriCommandStyleIconOnly)
AxToolbarControl1.AddItem("esriControls.ControlsMapZoomInTool", 0, -1, True, 0, esriCommandStyles.esriCommandStyleIconOnly)
AxToolbarControl1.AddItem("esriControls.ControlsMapZoomOutTool", 0, -1, False, 0, esriCommandStyles.esriCommandStyleIconOnly)
AxToolbarControl1.AddItem("esriControls.ControlsMapFullExtentCommand", 0, -1, False, 0, esriCommandStyles.esriCommandStyleIconOnly)
AxToolbarControl1.AddItem("esriControls.ControlsSelectTool", 0, -1, False, 0, esriCommandStyles.esriCommandStyleIconOnly)
'Set the EngineInkEnviroment Singleton
m_EngineInkEnvironment = New EngineInkEnvironmentClass
m_EngineInkEnvironmentEvents = m_EngineInkEnvironment
'Set the Ink Tool commit type to be manual
m_EngineInkEnvironment.ToolCommitType = esriEngineInkToolCommitType.esriEngineInkToolCommitTypeManual
'Set the Form Controls
tbrAutoComplete.Enabled = False
tbrAutoComplete.Minimum = 1
tbrAutoComplete.Maximum = 10
tbrAutoComplete.TickFrequency = 1
tbrAutoComplete.TickStyle = TickStyle.BottomRight
lblAutoComplete.Enabled = False
lbl1sec.Enabled = False
lbl10sec.Enabled = False
lblCollectingStatus.Text = "Not Collecting Ink"
tbxNumber.Text = "0"
radManual.Checked = True
'The radAutoText Radio button is only available on a Tablet PC.
'Converting ink to text requires a Recognizer which can only
'run on Windows XP Tablet PC Edition.
If IsRunningOnTabletPC() Then
radAutoText.Enabled = True
Else
radAutoText.Enabled = False
End If
End Sub
Private Sub tbrAutoComplete_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles tbrAutoComplete.MouseUp
'Set the ToolCommitDelay using the value of the TrackBar
m_EngineInkEnvironment.ToolCommitDelay = tbrAutoComplete.Value
End Sub
Private Sub m_EngineInkEnvironmentEvents_OnStop() Handles m_EngineInkEnvironmentEvents.OnStop
'Report to the user the mode of the Ink Collector
lblCollectingStatus.Text = "Not Collecting Ink Sketch"
End Sub
Private Sub m_EngineInkEnvironmentEvents_OnStart() Handles m_EngineInkEnvironmentEvents.OnStart
'Report to the user the mode of the Ink Collector
lblCollectingStatus.Text = "Collecting Ink Sketch"
End Sub
Private Sub m_EngineInkEnvironmentEvents_OnGesture(ByVal gestureType As ESRI.ArcGIS.Controls.esriEngineInkGesture, ByVal hotPoint As Object) Handles m_EngineInkEnvironmentEvents.OnGesture
'Report to the user that a Gesture has been made
lblCollectingStatus.Text = "Gesture Made Sketch"
End Sub
Private Sub AxMapControl1_OnAfterScreenDraw(ByVal sender As Object, ByVal e As ESRI.ArcGIS.Controls.IMapControlEvents2_OnAfterScreenDrawEvent) Handles AxMapControl1.OnAfterScreenDraw
'Report to the user the number of Ink Sketches that are present
Dim pElement As IElement
Dim pContainer As IGraphicsContainer
Dim i As Integer = 0
m_Map = AxMapControl1.Map
pContainer = m_Map
pContainer.Reset()
pElement = pContainer.Next
Do While Not pElement Is Nothing
If TypeOf pElement Is InkGraphic Then
i = i + 1
End If
pElement = pContainer.Next
Loop
tbxNumber.Text = i.ToString
End Sub
Private Sub radManual_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles radManual.CheckedChanged
'Manually committed ink sketch
If radManual.Checked Then
tbrAutoComplete.Enabled = False
lblAutoComplete.Enabled = False
lbl1sec.Enabled = False
lbl10sec.Enabled = False
m_EngineInkEnvironment.ToolCommitType = esriEngineInkToolCommitType.esriEngineInkToolCommitTypeManual
End If
End Sub
Private Sub radAutoGraphic_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles radAutoGraphic.CheckedChanged
'Automatically commit and save as ink graphic
If radAutoGraphic.Checked Then
tbrAutoComplete.Enabled = True
lblAutoComplete.Enabled = True
lbl1sec.Enabled = True
lbl10sec.Enabled = True
m_EngineInkEnvironment.ToolCommitType = esriEngineInkToolCommitType.esriEngineInkToolCommitTypeAutoGraphic
m_EngineInkEnvironment.ToolCommitDelay = tbrAutoComplete.Value
End If
End Sub
Private Sub radAutoText_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles radAutoText.CheckedChanged
'Automatically commit and recognize as ink text
'This is only available on a Tablet PC
If radAutoText.Checked Then
tbrAutoComplete.Enabled = True
lblAutoComplete.Enabled = True
lbl1sec.Enabled = True
lbl10sec.Enabled = True
m_EngineInkEnvironment.ToolCommitType = esriEngineInkToolCommitType.esriEngineInkToolCommitTypeAutoText
m_EngineInkEnvironment.ToolCommitDelay = tbrAutoComplete.Value
End If
End Sub
Private Function IsRunningOnTabletPC() As Boolean
' Check to see if the application is running on a Tablet PC
' MSDN Help GetSystemMetrics(86)
' Nonzero if the current operating system is the Windows XP Tablet PC edition,
' 0 (zero) if not.
IsRunningOnTabletPC = False
If GetSystemMetrics(SM_TABLETPC) <> 0 Then
IsRunningOnTabletPC = True
End If
End Function
End Class