예제 #1
0
        public DialogResult ShowDialog(MobileRemoteUI parentForm, WaitHandle waitResult, AddressSelector.BluetoothDevice device, BluetoothHidWriter hidWriter)
        {
            _statusLabel.Text = "Connecting...";
            _hidWriter        = hidWriter;
            _waitResult       = waitResult;
            if (device.Address > 0)
            {
                _existingMachine.Dock    = DockStyle.Fill;
                _existingMachine.Visible = true;
                _newMachineLabel.Visible = false;
            }
            else
            {
                _newMachineLabel.Dock    = DockStyle.Fill;
                _newMachineLabel.Visible = true;
                _existingMachine.Visible = false;
            }

            timer1.Enabled = true;

            if (waitResult.WaitOne(1000, false))
            {
                //return DialogResult.OK;
            }

            try
            {
                return(base.ShowDialog(parentForm));
            }
            finally
            {
                timer1.Enabled = false;
            }
        }
예제 #2
0
 public ConnectThreadClass(BluetoothHidWriter hidWriter, UInt64 bluetoothAddress)
 {
     _hidWriter        = hidWriter;
     _bluetoothAddress = bluetoothAddress;
 }
예제 #3
0
        public MobileRemoteUI()
        {
            this.IsLoaded = false;
            Properties.Settings.Load();
            L2CAPAPI.BthGetMode(out _initialRadioMode);
            _instance      = this;
            this.Load     += new EventHandler(MobileRemoteUI_Load);
            this.GotFocus += new EventHandler(MobileRemoteUI_GotFocus);
            _inputs        = new List <InputInterfaceControl>(
                new InputInterfaceControl[]
            {
                new InputInterfaceControl("Keyboard", _keyboardControl, Properties.Resources.keyboard, Properties.Resources.keyboard_down, Properties.Resources.keyboard_sel),
                new InputInterfaceControl("Mouse", _mouseControl, Properties.Resources.mouse, Properties.Resources.mouse_down, Properties.Resources.mouse_sel),
                new InputInterfaceControl("TouchPad", _touchPanel, Properties.Resources.touch, Properties.Resources.touch_down, Properties.Resources.touch_sel),
                //new InputInterfaceControl("Media", _mediaControl, Properties.Resources.media, Properties.Resources.media_down, Properties.Resources.media_sel),
                //new InputInterfaceControl("Present", _presentControl, Properties.Resources.present, Properties.Resources.present_down, Properties.Resources.present_sel)
            }
                );
            InitializeComponent();

            _hidWriter               = new BluetoothHidWriter();
            _hidWriter.Connected    += new EventHandler(_hidWriter_Connected);
            _hidWriter.Disconnected += new EventHandler(_hidWriter_Disconnected);

            //_presentControl.HidWriter = _hidWriter;
            //_mediaControl.HidWriter = _hidWriter;
            _mouseControl.HidWriter    = _hidWriter;
            _touchPanel.HidWriter      = _hidWriter;
            _keyboardControl.HidWriter = _hidWriter;
            _connectButton.HidWriter   = _hidWriter;

            XmlSerializer xs = new XmlSerializer(typeof(Classes.CustomInput));

            foreach (string customInput in Directory.GetFiles(Path.Combine(Utils.GetWorkingDirectory(), "CustomInputs")))
            {
                using (StreamReader fs = File.OpenText(customInput))
                {
                    Classes.CustomInput ci = (Classes.CustomInput)xs.Deserialize(fs);
                    ci.ScaleToResolution();

                    CustomInputControl    input            = new CustomInputControl(ci, _hidWriter);
                    InputInterfaceControl interfaceControl = new InputInterfaceControl
                                                             (
                        ci.Name, input,
                        CustomInputControl.GetBitmap(ci.Image),
                        CustomInputControl.GetBitmap(ci.DownImage),
                        CustomInputControl.GetBitmap(ci.SelectedImage)
                                                             );

                    _inputs.Add(interfaceControl);
                }
            }

            Menu menu = null;

            if (!Platform.IsWindowsMobileClassic)
            {
                int totalButtonsVisible = (buttonPanel1.Width / buttonPanel1.Height) - 2;

                if (_inputs.Count < totalButtonsVisible)
                {
                    // great...
                    buttonPanel1.Controls.Remove(_inputsButton);
                }
                else
                {
                    totalButtonsVisible--;
                }

                int count = 0;
                foreach (InputInterfaceControl control in _inputs)
                {
                    PushButton button = new PushButton();
                    button.DownImage     = control.Down;
                    button.Image         = control.Up;
                    button.Name          = control.Text;
                    button.Text          = control.Text;
                    button.SelectedImage = control.Sel;
                    button.Size          = new System.Drawing.Size(buttonPanel1.Height, buttonPanel1.Height);
                    button.TabIndex      = 11;
                    button.Dock          = DockStyle.Left;
                    button.Click        += new EventHandler(button_Click);
                    button.RightClick   += new EventHandler(_controlSettingsMenu_Click);

                    if (_inputList.Count < totalButtonsVisible)
                    {
                    }
                    else
                    {
                        button.Visible = false;
                    }
                    buttonPanel1.Controls.Add(button);
                    buttonPanel1.Controls.SetChildIndex(button, count++);

                    control.Click = button_Click;
                    control.Tag   = button;

                    _inputList.Add(button, control);
                }
                ((PushButton)_inputs[0].Tag).IsSelected = true;

                menu = _mainContextMenu;
            }
            else
            {
                this.buttonPanel1.Visible = false;

                _leftMenu      = new MenuItem();
                _leftMenu.Text = "";

                MenuItem rightMenu = new MenuItem();
                rightMenu.Text = "Menu";

                _mainMenu.MenuItems.Add(_leftMenu);
                _mainMenu.MenuItems.Add(rightMenu);

                int i = 0;
                foreach (InputInterfaceControl control in _inputs)
                {
                    if (!control.Control.RequiresTouchscreen)
                    {
                        MenuItem menuItem = new MenuItem();
                        menuItem.Text   = String.Format("&{1}", i++, control.Text);
                        menuItem.Click += new EventHandler(menuItem_Click);
                        rightMenu.MenuItems.Add(menuItem);

                        control.Click = menuItem_Click;
                        control.Tag   = menuItem;

                        _inputList.Add(menuItem, control);
                    }
                }
                ((MenuItem)_inputs[0].Tag).Checked = true;

                MenuItem seperatorMenu1 = new MenuItem();
                seperatorMenu1.Text = "-";
                rightMenu.MenuItems.Add(seperatorMenu1);

                this.Menu = _mainMenu;
                menu      = rightMenu;
            }


            MenuItem connectionSettingsMenu = new MenuItem();

            connectionSettingsMenu.Text   = "Connection &Settings";
            connectionSettingsMenu.Click += new EventHandler(connectionSettingsMenu_Click);

            _controlSettingsMenu.Text   = "Control Settings";
            _controlSettingsMenu.Click += new EventHandler(_controlSettingsMenu_Click);

            MenuItem recorderMenu = new MenuItem();

            recorderMenu.Text = "&Recorder";

            _startRecorder.Text   = "&Create Recording";
            _startRecorder.Click += new EventHandler(startRecorder_Click);

            _stopRecorder.Text    = "&Stop Recording";
            _stopRecorder.Enabled = false;
            _stopRecorder.Click  += new EventHandler(stopRecorder_Click);

            _loadRecorder.Text    = "&Load Recording";
            _loadRecorder.Enabled = true;
            _loadRecorder.Popup  += new EventHandler(_loadRecorder_Popup);

            MenuItem nullMenuItem = new MenuItem();

            nullMenuItem.Text = "--No Saved Recordings--";
            _loadRecorder.MenuItems.Add(nullMenuItem);

            recorderMenu.MenuItems.Add(_loadRecorder);
            recorderMenu.MenuItems.Add(_startRecorder);
            recorderMenu.MenuItems.Add(_stopRecorder);

            _connectionMenuItem.Text   = "&Connect";
            _connectionMenuItem.Click += new EventHandler(connect_Click);

            _registerMenu.Text   = "Re&gister";
            _registerMenu.Click += new EventHandler(_registerMenu_Click);

            MenuItem aboutMenuItem = new MenuItem();

            aboutMenuItem.Text   = "&About";
            aboutMenuItem.Click += new EventHandler(aboutMenuItem_Click);

            MenuItem exitMenu = new MenuItem();

            exitMenu.Text   = "E&xit";
            exitMenu.Click += new EventHandler(exitMenu_Click);

            menu.MenuItems.Add(recorderMenu);
            menu.MenuItems.Add(_connectionMenuItem);
            menu.MenuItems.Add(connectionSettingsMenu);
            menu.MenuItems.Add(_controlSettingsMenu);
            menu.MenuItems.Add(_registerMenu);
            menu.MenuItems.Add(aboutMenuItem);
            menu.MenuItems.Add(exitMenu);

            SetActivePanel(_inputs[0]);
            this.Closing += new CancelEventHandler(MobileRemoteUI_Closing);
            this.IsLoaded = true;
        }