Example #1
0
        /// <summary>
        /// Finds all the available providers in the
        /// current directory, instantiates them, adds
        /// them to a list, and returns them.
        /// </summary>
        /// <returns>List of status providers in the
        /// current directory.</returns>
        public static IList <EXT.IStatusProvider> FindAllProviders()
        {
            List <EXT.IStatusProvider> retVal = new List <EXT.IStatusProvider>();
            List <string> files = new List <string>();

            files.AddRange(Directory.GetFiles(".", "*.dll"));
            files.AddRange(Directory.GetFiles(".", "*.exe"));
            // Try every file
            foreach (string file in files)
            {
                try
                {
                    // Load the assembly.  Try each type
                    Assembly a = Assembly.LoadFile(Path.GetFullPath(file));
                    foreach (System.Type t in a.GetTypes())
                    {
                        // See if this type is a status provider
                        System.Type iFace = t.GetInterface(typeof(EXT.IStatusProvider).Name);
                        if (iFace != null)
                        {
                            // Instantiate it and add it to the list
                            EXT.IStatusProvider plugin =
                                a.CreateInstance(t.FullName) as EXT.IStatusProvider;
                            retVal.Add(plugin);
                        }
                    }
                }
                catch
                {
                    // Silence load errors.
                }
            }

            return(retVal);
        }
Example #2
0
        /// <summary>
        /// Adds all the providers to the given menu
        /// </summary>
        /// <param name="root">Root menu item</param>
        /// <param name="side">Which side we're on</param>
        /// <param name="current">Current status provider on this side</param>
        void AddMenuItems(
            ToolStripMenuItem root,
            MenuTag.DisplaySide side,
            EXT.IStatusProvider current)
        {
            foreach (EXT.IStatusProvider provider in _providers)
            {
                ToolStripMenuItem item = new ToolStripMenuItem(provider.Name, provider.Image);
                item.Tag     = new MenuTag(side, provider);
                item.Checked = ReferenceEquals(current, provider);
                item.Enabled = !item.Checked;
                item.Click  += OnProviderToolStripItemClick;

                root.DropDownItems.Add(item);
            }
        }
Example #3
0
        /// <summary>
        /// Adds all the providers to the given menu
        /// </summary>
        /// <param name="root">Root menu item</param>
        /// <param name="side">Which side we're on</param>
        /// <param name="current">Current status provider on this side</param>
        void AddMenuItems(
            MenuItem root,
            MenuTag.DisplaySide side,
            EXT.IStatusProvider current)
        {
            foreach (EXT.IStatusProvider provider in _providers)
            {
                MenuItem item = new MenuItem(provider.Name);
                item.Tag     = new MenuTag(side, provider);
                item.Checked = ReferenceEquals(current, provider);
                item.Enabled = !ReferenceEquals(current, provider);
                item.Click  += OnProviderMenuItemClick;

                root.MenuItems.Add(item);
            }
        }
Example #4
0
        /// <summary>
        /// Handles the switch of a provider
        /// </summary>
        /// <param name="tag">Information about the requested new provider</param>
        void HandleProviderSwitch(MenuTag tag)
        {
            if (tag.Side == MenuTag.DisplaySide.Left)
            {
                _left    = tag.Provider;
                _leftMax = _left.Type == EXT.StatusType.Percentage ?
                           100 : 10;
                _prefs.LeftProvider = _left.GetType().FullName;
            }
            else
            {
                _right    = tag.Provider;
                _rightMax = _right.Type == EXT.StatusType.Percentage ?
                            100 : 10;
                _prefs.RightProvider = _right.GetType().FullName;
            }

            UpdatePreferences();
        }
Example #5
0
        /// <summary>
        /// Finds the active providers based on the preferences object.
        /// </summary>
        void FindActiveProviders()
        {
            foreach (EXT.IStatusProvider provider in _providers)
            {
                if (provider.GetType().FullName == _prefs.LeftProvider)
                {
                    _left = provider;
                }
                if (provider.GetType().FullName == _prefs.RightProvider)
                {
                    _right = provider;
                }
            }

            // Handle the case of a provider missing
            if (_left == null)
            {
                _left = _providers[0];
            }
            if (_right == null)
            {
                _right = _providers[1];
            }
        }
Example #6
0
 public MenuTag(DisplaySide side, EXT.IStatusProvider provider)
 {
     _side     = side;
     _provider = provider;
 }
Example #7
0
 public MenuTag(DisplaySide side, EXT.IStatusProvider provider)
 {
     _side = side;
     _provider = provider;
 }
Example #8
0
        /// <summary>
        /// Handles the switch of a provider
        /// </summary>
        /// <param name="tag">Information about the requested new provider</param>
        void HandleProviderSwitch(MenuTag tag)
        {
            if (tag.Side == MenuTag.DisplaySide.Left)
            {
                _left = tag.Provider;
                _leftMax = _left.Type == EXT.StatusType.Percentage ?
                   100 : 10;
                _prefs.LeftProvider = _left.GetType().FullName;
            }
            else
            {
                _right = tag.Provider;
                _rightMax = _right.Type == EXT.StatusType.Percentage ?
                   100 : 10;
                _prefs.RightProvider = _right.GetType().FullName;
            }

            UpdatePreferences();
        }
Example #9
0
        /// <summary>
        /// Finds the active providers based on the preferences object.
        /// </summary>
        void FindActiveProviders()
        {
            foreach (EXT.IStatusProvider provider in _providers)
            {
                if (provider.GetType().FullName == _prefs.LeftProvider)
                {
                    _left = provider;
                }
                if (provider.GetType().FullName == _prefs.RightProvider)
                {
                    _right = provider;
                }

            }

            // Handle the case of a provider missing
            if (_left == null)
            {
                _left = _providers[0];
            }
            if (_right == null)
            {
                _right = _providers[1];
            }
        }