private void CameraControlMouseDown(object sender, MouseEventArgs e)
{
_lastClicked = _pnlCameras;
if (Resizing) return;
var cameraControl = (CameraWindow)sender;
cameraControl.Focus();
switch (e.Button)
{
case MouseButtons.Left:
cameraControl.Camobject.x = e.X;
cameraControl.Camobject.y = e.Y;
cameraControl.BringToFront();
cameraControl.VolumeControl?.BringToFront();
break;
case MouseButtons.Right:
ContextTarget = cameraControl;
pluginCommandsToolStripMenuItem.Visible = false;
_recordNowToolStripMenuItem.Visible = false;
_listenToolStripMenuItem.Visible = false;
_recordNowToolStripMenuItem.Visible = false;
_takePhotoToolStripMenuItem.Visible = false;
_viewMediaOnAMobileDeviceToolStripMenuItem.Visible = _viewMediaToolStripMenuItem.Visible = Helper.HasFeature(Enums.Features.Access_Media);
_applyScheduleToolStripMenuItem1.Visible = true;
_resetRecordingCounterToolStripMenuItem.Visible = true;
openWebInterfaceToolStripMenuItem.Visible = cameraControl.SupportsWebInterface;
_resetRecordingCounterToolStripMenuItem.Text =
$"{LocRm.GetString("ResetRecordingCounter")} ({cameraControl.Camobject.newrecordingcount})";
pTZToolStripMenuItem.Visible = false;
//switches
switchToolStripMenuItem.Visible = true;
onToolStripMenuItem.Visible = !cameraControl.Camobject.settings.active;
offToolStripMenuItem.Visible = cameraControl.Camobject.settings.active;
alertsOnToolStripMenuItem1.Visible = !cameraControl.Camobject.alerts.active;
alertsOffToolStripMenuItem.Visible = cameraControl.Camobject.alerts.active;
scheduleOnToolStripMenuItem.Visible = !cameraControl.Camobject.schedule.active;
scheduleOffToolStripMenuItem.Visible = cameraControl.Camobject.schedule.active;
pTZScheduleOnToolStripMenuItem.Visible = !cameraControl.Camobject.ptzschedule.active;
pTZScheduleOffToolStripMenuItem.Visible = cameraControl.Camobject.ptzschedule.active;
if (cameraControl.Camobject.settings.active)
{
if (Helper.HasFeature(Enums.Features.Recording))
{
_recordNowToolStripMenuItem.Visible = true;
_takePhotoToolStripMenuItem.Visible = true;
}
if (Helper.HasFeature(Enums.Features.Save_Frames))
_takePhotoToolStripMenuItem.Visible = true;
if (cameraControl.Camobject.ptz > -1)
{
pTZToolStripMenuItem.Visible = true;
while (pTZToolStripMenuItem.DropDownItems.Count > 1)
pTZToolStripMenuItem.DropDownItems.RemoveAt(1);
PTZSettings2Camera ptz = PTZs.SingleOrDefault(p => p.id == cameraControl.Camobject.ptz);
if (ptz?.ExtendedCommands?.Command != null)
{
foreach (var extcmd in ptz.ExtendedCommands.Command)
{
ToolStripItem tsi = new ToolStripMenuItem
{
Text = extcmd.Name,
Tag =
cameraControl.Camobject.id + "|" + extcmd.Value
};
tsi.Click += TsiClick;
pTZToolStripMenuItem.DropDownItems.Add(tsi);
}
}
}
if (cameraControl.Camera?.Plugin != null)
{
pluginCommandsToolStripMenuItem.Visible = true;
while (pluginCommandsToolStripMenuItem.DropDownItems.Count > 1)
pluginCommandsToolStripMenuItem.DropDownItems.RemoveAt(1);
var pc = cameraControl.PluginCommands;
if (pc != null)
{
foreach (var c in pc)
{
ToolStripItem tsi = new ToolStripMenuItem
{
Text = c,
Tag =
cameraControl.Camobject.id + "|" + c
};
tsi.Click += PCClick;
pluginCommandsToolStripMenuItem.DropDownItems.Add(tsi);
}
}
}
}
_recordNowToolStripMenuItem.Text =
LocRm.GetString(cameraControl.Recording ? "StopRecording" : "StartRecording");
ctxtMnu.Show(cameraControl, new Point(e.X, e.Y));
break;
}
}