fixed #3838: If Windows in tablet mode then show close button in region capture toolbar

This commit is contained in:
Jaex 2018-12-29 11:17:44 +03:00
parent 3992add566
commit 8c4b4d5c1e
3 changed files with 40 additions and 11 deletions

View file

@ -1364,5 +1364,22 @@ public static bool TryFixHandCursor()
return false;
}
}
public static bool IsTabletMode()
{
//int state = NativeMethods.GetSystemMetrics(SystemMetric.SM_CONVERTIBLESLATEMODE);
//return state == 0;
try
{
int result = (int)Registry.GetValue(@"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\ImmersiveShell", "TabletMode", 0);
return result > 0;
}
catch
{
}
return false;
}
}
}

View file

@ -599,7 +599,9 @@ public enum SystemMetric
/// <summary>
/// Windows XP (v5.1+) This system metric is used in a Terminal Services environment. Its value is nonzero if the current session is remotely controlled; zero otherwise
/// </summary>
SM_REMOTECONTROL = 0x2001
SM_REMOTECONTROL = 0x2001,
SM_CONVERTIBLESLATEMODE = 0x2003,
SM_SYSTEMDOCKED = 0x2004
}
/// <summary>

View file

@ -137,17 +137,17 @@ internal void CreateToolbar()
if (Form.Mode == RegionCaptureMode.TaskEditor)
{
ToolStripButton tsbClose = new ToolStripButton(Resources.ShapeManager_CreateToolbar_ContinueTaskSpaceOrRightClick);
tsbClose.DisplayStyle = ToolStripItemDisplayStyle.Image;
tsbClose.Image = Resources.control;
tsbClose.Click += (sender, e) => Form.CloseWindow(RegionResult.AnnotateContinueTask);
tsMain.Items.Add(tsbClose);
ToolStripButton tsbContinueTask = new ToolStripButton(Resources.ShapeManager_CreateToolbar_ContinueTaskSpaceOrRightClick);
tsbContinueTask.DisplayStyle = ToolStripItemDisplayStyle.Image;
tsbContinueTask.Image = Resources.control;
tsbContinueTask.Click += (sender, e) => Form.CloseWindow(RegionResult.AnnotateContinueTask);
tsMain.Items.Add(tsbContinueTask);
ToolStripButton tsbCloseCancel = new ToolStripButton(Resources.ShapeManager_CreateToolbar_CancelTaskEsc);
tsbCloseCancel.DisplayStyle = ToolStripItemDisplayStyle.Image;
tsbCloseCancel.Image = Resources.cross;
tsbCloseCancel.Click += (sender, e) => Form.CloseWindow(RegionResult.AnnotateCancelTask);
tsMain.Items.Add(tsbCloseCancel);
ToolStripButton tsbCancelTask = new ToolStripButton(Resources.ShapeManager_CreateToolbar_CancelTaskEsc);
tsbCancelTask.DisplayStyle = ToolStripItemDisplayStyle.Image;
tsbCancelTask.Image = Resources.cross;
tsbCancelTask.Click += (sender, e) => Form.CloseWindow(RegionResult.AnnotateCancelTask);
tsMain.Items.Add(tsbCancelTask);
tsMain.Items.Add(new ToolStripSeparator());
}
@ -186,6 +186,16 @@ internal void CreateToolbar()
#endregion Editor mode
}
else if (Helpers.IsTabletMode())
{
ToolStripButton tsbClose = new ToolStripButton("Close (Esc)");
tsbClose.DisplayStyle = ToolStripItemDisplayStyle.Image;
tsbClose.Image = Resources.cross;
tsbClose.Click += (sender, e) => Form.CloseWindow();
tsMain.Items.Add(tsbClose);
tsMain.Items.Add(new ToolStripSeparator());
}
#region Tools