Ejemplo n.º 1
0
        /// <summary>
        /// Creates a new BatteryMeterApplicationContext instance using the specified BatteryStatusPoller.
        /// </summary>
        /// <param name="poller">The BatteryStatusPoller that will query battery status.</param>
        public BatteryMeterApplicationContext(BatteryStatusPoller poller)
        {
            // Set up the poller values.
            _poller = poller;
            poller.ControllerConnected    += Controller_Connected;
            poller.ControllerDisconnected += Controller_Disconnected;
            poller.ControllerBatteryLow   += Controller_BatteryLow;
            poller.ControllerBatteryInformationUpdated += Controller_BatteryInformationUpdated;

            // Set up the Notification icon.
            _notifyIcon = new NotifyIcon
            {
                Icon        = Resources.AppIcon,
                ContextMenu = new ContextMenu(),
                Visible     = true,
                Text        = Resources.AppName
            };

            _notifyIcon.ContextMenu.Popup += ContextMenu_Popup;

            foreach (var controller in _poller.Controllers)
            {
                var mainMenuItem = new MenuItem {
                    Name = $"Controller{controller.UserIndex}_Main"
                };
                var batteryTypeMenuItem = new MenuItem {
                    Enabled = false, Name = $"Controller{controller.UserIndex}_BatteryType"
                };
                var batteryLevelMenuItem = new MenuItem {
                    Enabled = false, Name = $"Controller{controller.UserIndex}_BatteryLevel"
                };
                mainMenuItem.Click += MainMenuItem_Click;

                UpdateControllerStatus(controller, ref mainMenuItem, ref batteryTypeMenuItem, ref batteryLevelMenuItem);

                _notifyIcon.ContextMenu.MenuItems.Add(mainMenuItem);
                _notifyIcon.ContextMenu.MenuItems.Add(batteryTypeMenuItem);
                _notifyIcon.ContextMenu.MenuItems.Add(batteryLevelMenuItem);
                _notifyIcon.ContextMenu.MenuItems.Add("-");
            }

            var aboutItem = new MenuItem(Resources.AboutMenuItem, About_Clicked)
            {
                Name = "About"
            };
            var exitItem = new MenuItem(Resources.ExitMenuItem, Exit_Clicked)
            {
                Name = "Exit"
            };

            _notifyIcon.ContextMenu.MenuItems.Add(aboutItem);
            _notifyIcon.ContextMenu.MenuItems.Add(exitItem);

            UpdateActiveController();
        }
Ejemplo n.º 2
0
        public static void Main()
        {
            Console.WriteLine(@"Initializing.");

            var xinput13 = IsLibraryInstalled("xinput1_3.dll");

            //var xinput910 = IsLibraryInstalled("xinput9_1_0.dll");

            if (!xinput13)
            {
                MessageBox.Show(Resources.XInputNotFoundText, Resources.XInputNotFoundCaption, MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
            }
            else
            {
                var poller = new BatteryStatusPoller();

                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new BatteryMeterApplicationContext(poller));
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Creates a new BatteryMeterApplicationContext instance using the specified BatteryStatusPoller.
        /// </summary>
        /// <param name="poller">The BatteryStatusPoller that will query battery status.</param>
        public BatteryMeterApplicationContext(BatteryStatusPoller poller)
        {
            // Set up the poller values.
            _poller = poller;
            poller.ControllerConnected    += Controller_Connected;
            poller.ControllerDisconnected += Controller_Disconnected;
            poller.ControllerBatteryLow   += Controller_BatteryLow;
            poller.ControllerBatteryInformationUpdated += Controller_BatteryInformationUpdated;

            // Set up the Notification icon.
            _notifyIcon = new NotifyIcon
            {
                Icon             = Resources.AppIcon,
                ContextMenuStrip = new ContextMenuStrip(),
                Visible          = true,
                Text             = Resources.AppName
            };

            _notifyIcon.ContextMenuStrip.Opening += new CancelEventHandler(ContextMenu_Opening);

            foreach (var controller in _poller.Controllers)
            {
                var mainMenuItem = new ToolStripMenuItem {
                    Name = $"Controller{controller.UserIndex}_Main"
                };
                var batteryTypeMenuItem = new ToolStripMenuItem {
                    Enabled = false, Name = $"Controller{controller.UserIndex}_BatteryType"
                };
                var batteryLevelMenuItem = new ToolStripMenuItem {
                    Enabled = false, Name = $"Controller{controller.UserIndex}_BatteryLevel"
                };
                mainMenuItem.Click += MainMenuItem_Click;

                var updateMethod = (MethodInvoker) delegate { UpdateControllerStatus(controller, ref mainMenuItem, ref batteryTypeMenuItem, ref batteryLevelMenuItem); };
                if (_notifyIcon.ContextMenuStrip.InvokeRequired)
                {
                    _notifyIcon.ContextMenuStrip.Invoke(updateMethod);
                }
                else
                {
                    updateMethod();
                }

                _notifyIcon.ContextMenuStrip.Items.Add(mainMenuItem);
                _notifyIcon.ContextMenuStrip.Items.Add(batteryTypeMenuItem);
                _notifyIcon.ContextMenuStrip.Items.Add(batteryLevelMenuItem);
                _notifyIcon.ContextMenuStrip.Items.Add("-");
            }

            var aboutItem = new ToolStripMenuItem(Resources.AboutMenuItem, null, About_Clicked)
            {
                Name = "About"
            };
            var exitItem = new ToolStripMenuItem(Resources.ExitMenuItem, null, Exit_Clicked)
            {
                Name = "Exit"
            };

            _notifyIcon.ContextMenuStrip.Items.Add(aboutItem);
            _notifyIcon.ContextMenuStrip.Items.Add(exitItem);

            UpdateActiveController();

            AutoUpdaterDotNET.AutoUpdater.Start(_primaryUpdateUrl);
        }