public MouseButtonHidButton(CustomInputControl parent, Classes.CustomInput.CustomInputControl controlDesc) : base(parent, controlDesc) { this.CanHold = true; this.Image = Properties.Resources.mouse; this.DownImage = Properties.Resources.mouse_down; this.SelectedImage = Properties.Resources.mouse_sel; }
public HidButton(CustomInputControl parent, Classes.CustomInput.CustomInputControl controlDesc) { _parent = parent; _controlDesc = controlDesc; this.CatchKey = controlDesc.CatchKey; this.ModifierState = controlDesc.ModifierState; this.ButtonClick += new EventHandler(HidButton_ButtonClick); this.ButtonDoubleClick += new EventHandler(HidButton_ButtonClick); this.ButtonDown += new EventHandler(HidButton_ButtonDown); this.ButtonUp += new EventHandler(HidButton_ButtonUp); this.ButtonHold += new EventHandler(HidButton_ButtonHold); }
public ContainerPanel(CustomInputControl parent, Classes.CustomInput.CustomInputControl controlDesc) { _desc = controlDesc; this.Width = controlDesc.Width; this.Height = controlDesc.Height; this.Left = controlDesc.Left; this.Top = controlDesc.Top; this.Anchor = controlDesc.Anchor; this.Dock = controlDesc.Dock; ParseChildren(parent, controlDesc.Controls, this.Controls); }
public static void ParseChildren(CustomInputControl parent, List<Classes.CustomInput.CustomInputControl> controls, ControlCollection controlContainer) { Bitmap image_down = Properties.Resources.Custom_Button_Down; Bitmap image_up = Properties.Resources.Custom_Button_Up; foreach (Classes.CustomInput.CustomInputControl controlDesc in controls) { HidButton imageButton = null; Control control = imageButton; switch (controlDesc.InputType) { case Classes.CustomInputType.Container: { control = new ContainerPanel(parent, controlDesc); } break; case Classes.CustomInputType.KeyCombination: case Classes.CustomInputType.VirtualKey: case Classes.CustomInputType.ScanCode: { control = imageButton = new KeyboardHidButton(parent, controlDesc); if (!string.IsNullOrEmpty(controlDesc.Image)) { imageButton.Image = GetBitmap(controlDesc.Image); } else { imageButton.Image = BuildCustomBitmap(image_up, controlDesc.InputDisplay, parent.Font, Color.Black); } if (!string.IsNullOrEmpty(controlDesc.DownImage)) { imageButton.DownImage = GetBitmap(controlDesc.DownImage); } else { imageButton.DownImage = BuildCustomBitmap(image_down, controlDesc.InputDisplay, parent.Font, Color.White); } imageButton.SelectedImage = imageButton.DownImage; imageButton.TransparentBackground = controlDesc.TransparentBackground; imageButton.BackColor = parent.BackColor; imageButton.CanHold = false; } break; case Classes.CustomInputType.ShiftKey: case Classes.CustomInputType.AltKey: case Classes.CustomInputType.WinKey: { } break; case Classes.CustomInputType.LeftMouseButton: { imageButton = new MouseButtonHidButton(parent, controlDesc); } break; case Classes.CustomInputType.RightMouseButton: { imageButton = new MouseButtonHidButton(parent, controlDesc); } break; case Classes.CustomInputType.MouseDPad: { // add a control here to map dpad to mouse } break; case Classes.CustomInputType.Accelerometer: { // add a control here to map accelerometer to mouse } break; case Classes.CustomInputType.TouchPad: case Classes.CustomInputType.TouchPadWithScroll: { control = new TouchControl(); ((TouchControl)control).HidWriter = parent.HidWriter; } break; default: { // why are we here? } break; } control.Width = controlDesc.Width; control.Height = controlDesc.Height; control.Left = controlDesc.Left; control.Top = controlDesc.Top; control.Tag = controlDesc; if (!(control is ContainerPanel)) { control.Anchor = controlDesc.Anchor; control.Dock = controlDesc.Dock; } controlContainer.Add(control); } }
public KeyboardHidButton(CustomInputControl parent, Classes.CustomInput.CustomInputControl controlDesc) : base(parent, controlDesc) { this.CanHold = false; }
public static void ParseChildren(CustomInputControl parent, List <Classes.CustomInput.CustomInputControl> controls, ControlCollection controlContainer) { Bitmap image_down = Properties.Resources.Custom_Button_Down; Bitmap image_up = Properties.Resources.Custom_Button_Up; foreach (Classes.CustomInput.CustomInputControl controlDesc in controls) { HidButton imageButton = null; Control control = imageButton; switch (controlDesc.InputType) { case Classes.CustomInputType.Container: { control = new ContainerPanel(parent, controlDesc); } break; case Classes.CustomInputType.KeyCombination: case Classes.CustomInputType.VirtualKey: case Classes.CustomInputType.ScanCode: { control = imageButton = new KeyboardHidButton(parent, controlDesc); if (!string.IsNullOrEmpty(controlDesc.Image)) { imageButton.Image = GetBitmap(controlDesc.Image); } else { imageButton.Image = BuildCustomBitmap(image_up, controlDesc.InputDisplay, parent.Font, Color.Black); } if (!string.IsNullOrEmpty(controlDesc.DownImage)) { imageButton.DownImage = GetBitmap(controlDesc.DownImage); } else { imageButton.DownImage = BuildCustomBitmap(image_down, controlDesc.InputDisplay, parent.Font, Color.White); } imageButton.SelectedImage = imageButton.DownImage; imageButton.TransparentBackground = controlDesc.TransparentBackground; imageButton.BackColor = parent.BackColor; imageButton.CanHold = false; } break; case Classes.CustomInputType.ShiftKey: case Classes.CustomInputType.AltKey: case Classes.CustomInputType.WinKey: { } break; case Classes.CustomInputType.LeftMouseButton: { imageButton = new MouseButtonHidButton(parent, controlDesc); } break; case Classes.CustomInputType.RightMouseButton: { imageButton = new MouseButtonHidButton(parent, controlDesc); } break; case Classes.CustomInputType.MouseDPad: { // add a control here to map dpad to mouse } break; case Classes.CustomInputType.Accelerometer: { // add a control here to map accelerometer to mouse } break; case Classes.CustomInputType.TouchPad: case Classes.CustomInputType.TouchPadWithScroll: { control = new TouchControl(); ((TouchControl)control).HidWriter = parent.HidWriter; } break; default: { // why are we here? } break; } control.Width = controlDesc.Width; control.Height = controlDesc.Height; control.Left = controlDesc.Left; control.Top = controlDesc.Top; control.Tag = controlDesc; if (!(control is ContainerPanel)) { control.Anchor = controlDesc.Anchor; control.Dock = controlDesc.Dock; } controlContainer.Add(control); } }