Ejemplo n.º 1
0
 public IOverlay CreateOverlayInstance(IOverlayConfig config)
 {
     this.Config = config;
     this.Initialize();
     this.Overlay = new KagamiOverlay(this.Config as KagamiOverlayConfig);
     return(this.Overlay);
 }
Ejemplo n.º 2
0
        public IOverlay GetOverlay(string name, bool createIfNotExists = false)
        {
            IOverlay result = null;

            try
            {
                _context.Send(_ =>
                {
                    GMapOverlay overlay = _mapControl.Overlays.FirstOrDefault(i => i.Id == name);

                    if (overlay == null)
                    {
                        if (createIfNotExists)
                        {
                            AddOverlay(name);
                            result = GetOverlay(name);
                            return;
                        }

                        throw new ArgumentException($"Overlay {name} not found.");
                    }

                    result = new OverlayAdapter(overlay);
                }, null);
            }
            catch (Exception ex)
            {
            }

            return(result);
        }
Ejemplo n.º 3
0
        public void Attach(IntPtr windowHandle)
        {
            if (windowHandle.Equals(IntPtr.Zero))
            {
                //_logger.Error("Make sure BDO isn't initially minimized and this application is running as admin.");
                //Debug.WriteLine("could not pinvoke!");
                MessageBox.Show("Make sure BDO isn't initially minimized and this application is running as admin.", "Could not attach to BDO", MessageBoxButton.OK, MessageBoxImage.Error);
                MyApp.exit();
            }
            else
            {
                WindowHandle = windowHandle;
                var r = GetWindowArea();
                Size = new Size
                {
                    Width  = r.Width,
                    Height = r.Height
                };

                Config = ScreenConfig.LoadFromFile($"{Size.Width}x{Size.Height}");

                _overlay = new Overlay(_notifier, _container);

                _windowEventHook = new WindowObserver(windowHandle, ObservedWindowEvent);
                User32.SetForegroundWindow(windowHandle);

                _overlay.Update(r);
                _overlay.Topmost = true;
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Zオーダー修正キューに登録する
        /// </summary>
        /// <param name="overlay"></param>
        public static void SubscribeZOrderCorrector(
            this IOverlay overlay)
        {
            lock (ZOrderCorrector)
            {
                if (!ZOrderCorrector.IsEnabled)
                {
                    ZOrderCorrector.Tick -= ZOrderCorrectorOnTick;
                    ZOrderCorrector.Tick += ZOrderCorrectorOnTick;
                }

                if (overlay is Window window)
                {
                    window.Closing += (x, y) =>
                    {
                        if (x is IOverlay o)
                        {
                            o.UnsubscribeZOrderCorrector();
                        }
                    };
                }

                if (!ToCorrectOverlays.Contains(overlay))
                {
                    ToCorrectOverlays.Add(overlay);
                }

                if (ToCorrectOverlays.Any() &&
                    !ZOrderCorrector.IsEnabled)
                {
                    ZOrderCorrector.Start();
                }
            }
        }
 public void Disconnect(IOverlay overlay)
 {
     if (_overlay == overlay)
     {
         _overlay = null;
     }
 }
Ejemplo n.º 6
0
        /// <summary>
        /// FFXIVより前面にいるか?
        /// </summary>
        /// <param name="overlay"></param>
        /// <returns></returns>
        private static bool IsOverlaysGameWindow(
            this IOverlay overlay)
        {
            var xivHandle = GetGameWindowHandle();
            var handle    = overlay.GetHandle();

            if (xivHandle == IntPtr.Zero)
            {
                return(false);
            }

            while (handle != IntPtr.Zero)
            {
                // Overlayウィンドウよりも前面側にFF14のウィンドウがあった
                if (handle == xivHandle)
                {
                    return(false);
                }

                handle = NativeMethods.GetWindow(handle, NativeMethods.GW_HWNDPREV);
            }

            // 前面側にOverlayが存在する、もしくはFF14が起動していない
            return(true);
        }
 public void Bind(ObjectListView olv, IOverlay overlay)
 {
     if (this.objectListView != null)
     {
         this.Unbind();
     }
     this.objectListView = olv;
     this.Overlay        = overlay;
     this.objectListView.LocationChanged += new EventHandler(this.objectListView_LocationChanged);
     this.objectListView.SizeChanged     += new EventHandler(this.objectListView_SizeChanged);
     this.objectListView.VisibleChanged  += new EventHandler(this.objectListView_VisibleChanged);
     this.objectListView.ParentChanged   += new EventHandler(this.objectListView_ParentChanged);
     for (Control control = this.objectListView.Parent; control != null; control = control.Parent)
     {
         control.ParentChanged += new EventHandler(this.objectListView_ParentChanged);
         TabControl control2 = control as TabControl;
         if (control2 != null)
         {
             control2.Selected += new TabControlEventHandler(this.tabControl_Selected);
         }
     }
     base.Owner = this.objectListView.TopLevelControl as Form;
     if (base.Owner != null)
     {
         base.Owner.LocationChanged += new EventHandler(this.Owner_LocationChanged);
         base.Owner.SizeChanged     += new EventHandler(this.Owner_SizeChanged);
         base.Owner.ResizeBegin     += new EventHandler(this.Owner_ResizeBegin);
         base.Owner.ResizeEnd       += new EventHandler(this.Owner_ResizeEnd);
         if (base.Owner.TopMost)
         {
             BrightIdeasSoftware.NativeMethods.MakeTopMost(this);
         }
     }
     this.UpdateTransparency();
 }
Ejemplo n.º 8
0
 /// <summary>
 /// オーバーレイを登録します。
 /// </summary>
 /// <param name="overlay"></param>
 internal void RegisterOverlay(IOverlay overlay)
 {
     overlay.OnLog       += (o, e) => Logger.Log(e.Level, e.Message);
     overlay.PluginConfig = (IPluginConfig)Config;
     overlay.Start();
     this.Overlays.Add(overlay);
 }
Ejemplo n.º 9
0
        /// <summary>
        /// 登録されているオーバーレイを削除します。
        /// </summary>
        /// <param name="overlay">削除するオーバーレイ。</param>
        internal void RemoveOverlay(IOverlay overlay)
        {
            this.Overlays.Remove(overlay);
            overlay.Dispose();

            OverlaysChanged?.Invoke(this, null);
        }
 /// <summary>
 /// Replace the in-game overlay with the one provided.
 ///
 /// Note: this is not designed for fast updates (i.e. only a couple of times per second)
 /// </summary>
 /// <param name="overlay"></param>
 public void DrawOverlayInGame(IOverlay overlay)
 {
     SafeInvokeDrawOverlay(new DrawOverlayEventArgs()
     {
         Overlay = overlay
     });
 }
Ejemplo n.º 11
0
        private void AddConfigTab(IOverlay overlay)
        {
            var label = overlay.GetType().Name;

            if (overlayNames.ContainsKey(label))
            {
                label = overlayNames[label];
            }

            var tabPage = new ConfigTabPage
            {
                Name      = overlay.Name,
                Text      = label,
                IsOverlay = true,
            };

            var control = overlay.CreateConfigControl();

            if (control != null)
            {
                control.Dock      = DockStyle.Fill;
                control.BackColor = SystemColors.ControlLightLight;
                tabPage.Controls.Add(control);

                this.tabControl.TabPages.Add(tabPage);
                ((GeneralConfigTab)_generalTab.Controls[0]).SetReadmeVisible(false);
            }
        }
Ejemplo n.º 12
0
        private void takeScreenShotBtn_Click(object sender, EventArgs e)
        {
            if (tabControl.SelectedIndex < 0)
            {
                return;
            }
            var selTab = tabControl.SelectedIndex;

            if (pluginMain.Overlays.Count < 1)
            {
                return;
            }
            IOverlay selectedOverlay = pluginMain.Overlays[selTab];

            try
            {
                selectedOverlay.TakeScreenShot(
                    new ScreenshotConfig
                {
                    SavePath            = config.ScreenShotSavePath,
                    AutoClipping        = config.ScreenShotAutoClipping,
                    BackgroundImagePath = config.ScreenShotBackgroundPath,
                    BackgroundMode      = (ScreenshotBackgroundMode)config.ScreenShotBackgroundMode,
                    Margin = config.ScreenShotMargin,
                });
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.GetBaseException().ToString());
            }
        }
Ejemplo n.º 13
0
        /// <summary>
        /// Zオーダー修正キューに登録する
        /// </summary>
        /// <param name="overlay"></param>
        public static void SubscribeZOrderCorrector(
            this IOverlay overlay)
        {
            lock (ZOrderLocker)
            {
                if (overlay is Window window)
                {
                    window.Closing += (x, y) =>
                    {
                        if (x is IOverlay o)
                        {
                            o.UnsubscribeZOrderCorrector();
                        }
                    };
                }

                if (!ToCorrectOverlays.Contains(overlay))
                {
                    ToCorrectOverlays.Add(overlay);
                }

                isCorrecting = 0;
                LazyZOrderCorrector.Value.Start();
            }
        }
Ejemplo n.º 14
0
 /// <summary>
 /// オーバーレイとして隠す
 /// </summary>
 /// <param name="overlay">overlay</param>
 public static void HideOverlay(
     this IOverlay overlay)
 {
     if (overlay is Window w)
     {
         w.Opacity = 0;
     }
 }
Ejemplo n.º 15
0
        /// <summary>
        /// Somewhere the parent of the bound OLV has changed. Update
        /// our events.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void objectListView_ParentChanged(object sender, EventArgs e)
        {
            ObjectListView olv     = this.objectListView;
            IOverlay       overlay = this.Overlay;

            this.Unbind();
            this.Bind(olv, overlay);
        }
Ejemplo n.º 16
0
        /// <summary>
        /// オーバーレイを登録します。
        /// </summary>
        /// <param name="overlay"></param>
        internal void RegisterOverlay(IOverlay overlay)
        {
            overlay.OnLog += (o, e) => _logger.Log(e.Level, e.Message);
            overlay.Start();
            this.Overlays.Add(overlay);

            OverlaysChanged?.Invoke(this, null);
        }
Ejemplo n.º 17
0
        /// <summary>
        /// Somewhere the parent of the bound OLV has changed. Update
        /// our events.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void objectListView_ParentChanged(object sender, EventArgs e)
        {
            ObjectListView olv     = objectListView;
            IOverlay       overlay = Overlay;

            Unbind();
            Bind(olv, overlay);
        }
Ejemplo n.º 18
0
 public OverlayTile(IOverlay overlay, TileBase backgroundTile)
 {
     overlays = new List <IOverlay>()
     {
         overlay
     };
     this.backgroundTile = backgroundTile;
 }
Ejemplo n.º 19
0
 /// <summary>
 /// Draws an <see cref="IOverlay"/> over an <see cref="Image"/>.
 /// </summary>
 public static void Draw(this IOverlay overlay, Image img, Point Offset = default(Point))
 {
     if (img != null)
     {
         using (var g = Graphics.FromImage(img))
             overlay.Draw(g, Offset);
     }
 }
Ejemplo n.º 20
0
        private static RequestManager InitRequestManager(SessionManager sessionManager, IOverlay overlay)
        {
            var context = new DriverContext();
            var manager = new RequestManager(sessionManager);
            var utils = new Utils();
            var winUserWrap = new WinUserWrap();
            var keyboard = new Keyboard(new KeyboardWrap(), new KeyInteropWrap(), winUserWrap);
            IMouse mouse = new Mouse(winUserWrap);
            var wireKeyboard = new WireKeyboard(keyboard);

            // TODO circular dependency, bad smell?
            IUIAutomation uiAutomation = new UIAutomation();
            IElementFactory elementFactory = new ElementFactory();
            ((UIAutomation)uiAutomation).SetElementFactory(elementFactory);
            ((ElementFactory)elementFactory).SetUIAutomation(uiAutomation);
            IElementSearcher elementSearcher = new ElementSearcher(uiAutomation, elementFactory);

            var uacHandler = new UACPromptHandler(uiAutomation, keyboard);
            var windowFactory = new WindowFactory(uiAutomation, keyboard, winUserWrap);
            var windowUtils = new WindowUtils(uiAutomation, windowFactory);

            manager.AddHandler(new ActiveElementHandler(uiAutomation, overlay));
            manager.AddHandler(new ButtonUpHandler(mouse));
            manager.AddHandler(new ButtonDownHandler(mouse));
            manager.AddHandler(new ClearTextHandler(elementFactory));
            manager.AddHandler(new ClickElementHandler(mouse, overlay, elementFactory));
            manager.AddHandler(new ClickHandler(mouse));
            manager.AddHandler(new CloseWindowHandler(windowUtils));
            manager.AddHandler(new DeleteSessionHandler(sessionManager));
            manager.AddHandler(new DoubleClickHandler(mouse));
            manager.AddHandler(new FindElementHandler(uiAutomation, overlay, elementFactory, elementSearcher));
            manager.AddHandler(new FindElementsHandler(uiAutomation, overlay, elementFactory, elementSearcher));
            manager.AddHandler(new GetElementAttributeHandler(elementFactory));
            manager.AddHandler(new GetElementLocationHandler(elementFactory));
            manager.AddHandler(new GetElementLocationInViewHandler(elementFactory));
            manager.AddHandler(new GetElementSizeHandler(elementFactory));
            manager.AddHandler(new GetElementTagNameHandler());
            manager.AddHandler(new GetElementTextHandler());
            manager.AddHandler(new GetCurrentWindowHandler(uiAutomation));
            manager.AddHandler(new GetSourceHandler(uiAutomation));
            manager.AddHandler(new GetTitleHandler(uiAutomation));
            manager.AddHandler(new GetWindowLocationHandler(windowFactory, windowUtils));
            manager.AddHandler(new GetWindowsHandler(windowUtils));
            manager.AddHandler(new GetWindowSizeHandler(windowFactory, windowUtils));
            manager.AddHandler(new ImplicitWaitHandler());
            manager.AddHandler(new IsElementDisplayedHandler());
            manager.AddHandler(new IsElementEnabledHandler());
            manager.AddHandler(new IsElementSelectedHandler());
            manager.AddHandler(new MoveToHandler(mouse, overlay, elementFactory));
            manager.AddHandler(new NewSessionHandler(context, sessionManager, uacHandler, utils));
            manager.AddHandler(new SameElementHandler());
            manager.AddHandler(new ScreenshotHandler());
            manager.AddHandler(new SendKeysHandler(wireKeyboard));
            manager.AddHandler(new SetElementValueHandler(wireKeyboard, elementFactory));
            manager.AddHandler(new SwitchToWindowHandler(uiAutomation, windowFactory, windowUtils));

            return manager;
        }
Ejemplo n.º 21
0
    // Update is called once per frame
    void Update()
    {
        if (VersionManager.Instance().GetMergeWorker() != null)
        {
            selectClosestPreview();
            if (currentlySelectedObject != null && Input.GetKeyDown(KeyCode.P))
            {
                VersionManager.Instance().GetMergeWorker().PickObject(currentlySelectedObject);
            }
        }
        else
        {
            selectVersionable();
            if (currentlySelectedObject != null && Input.GetKeyDown(KeyCode.Q))
            {
                VersionController versionController = currentlySelectedObject.GetComponentInParent <VersionController>();
                if (VersionManager.Instance().IsObjectStaged(versionController))
                {
                    VersionManager.Instance().Unstage(versionController);
                }
                else
                {
                    VersionManager.Instance().Add(versionController);
                }
                Debug.Log(currentlySelectedObject == gameObject ? "Adding player" : "Adding closest object");
                Debug.Log(currentlySelectedObject);
            }
            else if (Input.GetKeyDown(KeyCode.R))
            {
                VersionManager.Instance().ResetToHead();
            }
            else if (Input.GetKeyDown(KeyCode.J))
            {
                if (!VersionManager.Instance().HasBranch("demo"))
                {
                    VersionManager.Instance().CreateBranch("demo");
                }
                VersionManager.Instance().Checkout("demo");
            }
            else if (Input.GetKeyDown(KeyCode.K))
            {
                VersionManager.Instance().Checkout("master");
            }
        }

        if (Input.GetKeyDown(KeyCode.O))
        {
            if (overlay != null)
            {
                overlay.Destroy();
                overlay = null;
            }
            else
            {
                overlay = new Overlay(VersionManager.Instance().GetHead(), Color.red);
            }
        }
    }
 public FindElementHandler(
     IUIAutomation uiAutomation, IOverlay overlay, IElementFactory elementFactory,
     IElementSearcher searcher)
 {
     this.uiAutomation = uiAutomation;
     this.overlay = overlay;
     this.elementFactory = elementFactory;
     this.searcher = searcher;
 }
Ejemplo n.º 23
0
 public FindElementHandler(
     IUIAutomation uiAutomation, IOverlay overlay, IElementFactory elementFactory,
     IElementSearcher searcher)
 {
     this.uiAutomation   = uiAutomation;
     this.overlay        = overlay;
     this.elementFactory = elementFactory;
     this.searcher       = searcher;
 }
Ejemplo n.º 24
0
        private IOverlay CreateAndRegisterOverlay(IOverlay overlay)
        {
            _config.Overlays.Add(overlay.Config);
            _pluginMain.RegisterOverlay(overlay);

            AddConfigTab(overlay);

            return(overlay);
        }
Ejemplo n.º 25
0
 /// <summary>
 /// Windowを最前面に持ってくる
 /// </summary>
 /// <param name="overlay"></param>
 public static void EnsureTopMost(
     this IOverlay overlay)
 {
     NativeMethods.SetWindowPos(
         overlay.GetHandle(),
         NativeMethods.HWND_TOPMOST,
         0, 0, 0, 0,
         NativeMethods.SWP_NOSIZE | NativeMethods.SWP_NOMOVE | NativeMethods.SWP_NOACTIVATE);
 }
Ejemplo n.º 26
0
 /// <summary>
 /// オーバーレイとして隠す
 /// </summary>
 /// <param name="overlay">overlay</param>
 public static void HideOverlay(
     this IOverlay overlay)
 {
     if (overlay is Window w)
     {
         w.Opacity = 0;
         w.Topmost = false;
     }
 }
Ejemplo n.º 27
0
        private void cbPreset_SelectedIndexChanged(object sender, EventArgs e)
        {
            var preset = (IOverlayPreset)cbPreset.SelectedItem;

            if (preset.Url == "special:custom")
            {
                lblType.Visible              = true;
                cbType.Visible               = true;
                lblTypeDesc.Visible          = true;
                lblPresetDescription.Visible = false;

                if (preview != null)
                {
                    preview.Visible = false;
                }
            }
            else
            {
                lblType.Visible              = false;
                cbType.Visible               = false;
                lblTypeDesc.Visible          = false;
                lblPresetDescription.Visible = true;

                if (preview != null)
                {
                    preview.Dispose();
                }

                switch (preset.Type)
                {
                case "MiniParse":
#if DEBUG
                    var resourcesPath = "file:///" + PluginMain.PluginDirectory.Replace('\\', '/') + "/libs/resources";
#else
                    var resourcesPath = "file:///" + PluginMain.PluginDirectory.Replace('\\', '/') + "/resources";
#endif
                    var config = new Overlays.MiniParseOverlayConfig(Resources.OverlayPreviewName)
                    {
                        ActwsCompatibility = preset.Supports.Count == 1 && preset.Supports.Contains("actws"),
                        Size     = new Size(preset.Size[0], preset.Size[1]),
                        IsLocked = preset.Locked,
                    };

                    var overlay = new Overlays.MiniParseOverlay(config, config.Name);
                    overlay.Preview = true;
                    overlay.Navigate(preset.Url.Replace("%%", resourcesPath));

                    preview = overlay;
                    break;

                default:
                    Registry.Resolve <ILogger>().Log(LogLevel.Error, string.Format(Resources.PresetUsesUnsupportedType, preset.Name, preset.Type));
                    break;
                }
            }
        }
Ejemplo n.º 28
0
        private void OnProcessExited(object sender, EventArgs e)
        {
            Process  process = sender as Process;
            IOverlay overlay = this.overlays.FirstOrDefault(o => o.Process.Id == process.Id);

            if (process != null && overlay != null)
            {
                dispatcher.Invoke((ThreadStart)(() => this.DestroyOverlay(overlay)));
            }
        }
Ejemplo n.º 29
0
 /// <summary>
 /// オーバーレイとして表示させる
 /// </summary>
 /// <param name="overlay">overlay</param>
 public static void ShowOverlay(
     this IOverlay overlay,
     double opacity = 1.0d)
 {
     if (overlay is Window w)
     {
         w.Opacity = opacity;
         w.Topmost = true;
     }
 }
Ejemplo n.º 30
0
        /// <summary>
        /// Creates a new instance of <see cref="MouseKeyHook"/>.
        /// </summary>
        public MouseKeyOverlay(IMouseKeyHook Hook,
                               MouseClickSettings MouseClickSettings,
                               KeymapViewModel Keymap,
                               string FileName,
                               Func <TimeSpan> Elapsed)
        {
            _keymap = Keymap;

            _hook = Hook;
            _mouseClickOverlay = new MouseClickOverlay(_hook, MouseClickSettings);
            _scrollOverlay     = new ScrollOverlay(_hook, MouseClickSettings);
        }
Ejemplo n.º 31
0
        private void Setup()
        {
            //IBaseFilter ibf = new VideoRendererDefault() as IBaseFilter;
            //IBaseFilter ibf = new VideoMixingRenderer() as IBaseFilter;
            //IBaseFilter ibf = new VideoMixingRenderer9() as IBaseFilter;
            IBaseFilter ibf = new OverlayMixer() as IBaseFilter;

            IPin pPin;

            pPin = DsFindPin.ByDirection(ibf, PinDirection.Input, 0);
            m_io = pPin as IOverlay;
        }
Ejemplo n.º 32
0
        private void Initialize(IOverlay overlay)
        {
            if (overlay == null)
            {
                return;
            }
            if (Math.Abs(ActualWidth) < Double.Epsilon || Math.Abs(ActualHeight) < Double.Epsilon)
            {
                return;
            }
            foreach (UIElement child in this.Children)
            {
                child.MouseEnter       -= PathOnMouseEnter;
                child.PreviewMouseDown -= ChildOnPreviewMouseDown;
            }
            this.Children.Clear();


            var puzzle = overlay as Puzzle;

            var piceSize = new Point(100, 100);
            var amountX  = ActualWidth / piceSize.X;
            var amountY  = ActualHeight / piceSize.Y;

            for (double y = 0; y < amountY * piceSize.Y; y += piceSize.Y)
            {
                for (double x = 0; x < amountX * piceSize.X; x += piceSize.X)
                {
                    var position = PiecePosition.None;
                    if (Math.Abs(y) < Double.Epsilon)
                    {
                        position = position | PiecePosition.Top;
                    }
                    if (Math.Abs(x) < Double.Epsilon)
                    {
                        position = position | PiecePosition.Left;
                    }

                    var path = puzzle.GetPath(position);
                    path.MouseEnter       += PathOnMouseEnter;
                    path.PreviewMouseDown += ChildOnPreviewMouseDown;
                    path.RenderTransform   = new TransformGroup()
                    {
                        Children = new TransformCollection()
                        {
                            new TranslateTransform(x, y),
                            new ScaleTransform(1, 1)
                        }
                    };
                    this.Children.Add(path);
                }
            }
        }
Ejemplo n.º 33
0
        private void AddConfigTab(IOverlay overlay)
        {
            var tabPage = new TabPage
            {
                Name = overlay.Name,
                Text = overlay.Name
            };

            var addon = pluginMain.Addons.FirstOrDefault(x => x.OverlayType == overlay.GetType());
            if (addon != null)
            {
                var control = addon.CreateOverlayConfigControlInstance(overlay);
                if (control != null)
                {
                    control.Dock = DockStyle.Fill;
                    tabPage.Controls.Add(control);

                    this.tabControl.TabPages.Add(tabPage);
                }
            }
        }
        /// <summary>
        /// Attach this form to the given ObjectListView
        /// </summary>        
        public void Bind(ObjectListView olv, IOverlay overlay) {
            if (this.objectListView != null)
                this.Unbind();

            this.objectListView = olv;
            this.Overlay = overlay;
            this.mdiClient = null;
            this.mdiOwner = null;

            // NOTE: If you listen to any events here, you *must* stop listening in Unbind()
            this.objectListView.Disposed += new EventHandler(objectListView_Disposed);
            this.objectListView.LocationChanged += new EventHandler(objectListView_LocationChanged);
            this.objectListView.SizeChanged += new EventHandler(objectListView_SizeChanged);
            this.objectListView.VisibleChanged += new EventHandler(objectListView_VisibleChanged);
            this.objectListView.ParentChanged += new EventHandler(objectListView_ParentChanged);

            Control parent = this.objectListView.Parent;
            while (parent != null) {
                parent.ParentChanged += new EventHandler(objectListView_ParentChanged);
                TabControl tabControl = parent as TabControl;
                if (tabControl != null) {
                    tabControl.Selected += new TabControlEventHandler(tabControl_Selected);
                }
                parent = parent.Parent;
            }
            this.Owner = this.objectListView.FindForm();
            this.myOwner = this.Owner;
            if (this.Owner != null) {
                this.Owner.LocationChanged += new EventHandler(Owner_LocationChanged);
                this.Owner.SizeChanged += new EventHandler(Owner_SizeChanged);
                this.Owner.ResizeBegin += new EventHandler(Owner_ResizeBegin);
                this.Owner.ResizeEnd += new EventHandler(Owner_ResizeEnd);
                if (this.Owner.TopMost) {
                    // We can't do this.TopMost = true; since that will activate the panel,
                    // taking focus away from the owner of the listview
                    NativeMethods.MakeTopMost(this);
                }

                // We need special code to handle MDI
                this.mdiOwner = this.Owner.MdiParent;
                if (this.mdiOwner != null) {
                    this.mdiOwner.LocationChanged += new EventHandler(Owner_LocationChanged);
                    this.mdiOwner.SizeChanged += new EventHandler(Owner_SizeChanged);
                    this.mdiOwner.ResizeBegin += new EventHandler(Owner_ResizeBegin);
                    this.mdiOwner.ResizeEnd += new EventHandler(Owner_ResizeEnd);

                    // Find the MDIClient control, which houses all MDI children
                    foreach (Control c in this.mdiOwner.Controls) {
                        this.mdiClient = c as MdiClient;
                        if (this.mdiClient != null) {
                            break;
                        }
                    }
                    if (this.mdiClient != null) {
                        this.mdiClient.ClientSizeChanged += new EventHandler(myMdiClient_ClientSizeChanged);
                    }
                }
            }

            this.UpdateTransparency();
        }
Ejemplo n.º 35
0
 public System.Windows.Forms.Control CreateOverlayConfigControlInstance(IOverlay overlay)
 {
     return new AddonExampleOverlayConfigPanel();
 }
Ejemplo n.º 36
0
 /// <summary>
 /// Remove the given overlay to those on this list
 /// </summary>
 /// <param name="overlay">The overlay</param>
 public virtual void RemoveOverlay(IOverlay overlay)
 {
     if (overlay == null)
         return;
     this.Overlays.Remove(overlay);
     GlassPanelForm glassPanel = this.FindGlassPanelForOverlay(overlay);
     if (glassPanel != null) {
         this.glassPanels.Remove(glassPanel);
         glassPanel.Unbind();
         glassPanel.Dispose();
     }
 }
Ejemplo n.º 37
0
 public System.Windows.Forms.Control CreateOverlayConfigControlInstance(IOverlay overlay)
 {
     return new SpellTimerConfigPanel((SpellTimerOverlay)overlay);
 }
Ejemplo n.º 38
0
 private static Color ApplyOverlay(IOverlay overlay, Color baseColor)
 {
     int newR = baseColor.R + Convert.ToInt32(overlay.R * overlay.Alpha);
     int newG = baseColor.G + Convert.ToInt32(overlay.G * overlay.Alpha);
     int newB = baseColor.B + Convert.ToInt32(overlay.B * overlay.Alpha);
     return new Color(newR, newG, newB);
 }
Ejemplo n.º 39
0
 public System.Windows.Forms.Control CreateOverlayConfigControlInstance(IOverlay overlay) => new EnmityOverlayConfigPanel((EnmityOverlay)overlay);
Ejemplo n.º 40
0
 /// <summary>
 /// Is the given overlay shown on this list?
 /// </summary>
 /// <param name="overlay">The overlay</param>
 public virtual bool HasOverlay(IOverlay overlay)
 {
     return this.Overlays.Contains(overlay);
 }
 public ClickElementHandler(IMouse mouse, IOverlay overlay, IElementFactory elementFactory)
 {
     this.mouse = mouse;
     this.overlay = overlay;
     this.elementFactory = elementFactory;
 }
 public ActiveElementHandler(IUIAutomation uiAutomation, IOverlay overlay)
 {
     this.uiAutomation = uiAutomation;
     this.overlay = overlay;
 }
Ejemplo n.º 43
0
 public System.Windows.Forms.Control CreateOverlayConfigControlInstance(IOverlay overlay)
 {
     return new LabelOverlayConfigPanel((LabelOverlay)overlay);
 }
Ejemplo n.º 44
0
 /// <summary>
 /// Add the given overlay to those on this list and make it appear
 /// </summary>
 /// <param name="overlay">The overlay</param>
 public virtual void AddOverlay(IOverlay overlay)
 {
     if (overlay == null)
         return;
     this.Overlays.Add(overlay);
     this.Invalidate();
 }
Ejemplo n.º 45
0
 public System.Windows.Forms.Control CreateOverlayConfigControlInstance(IOverlay overlay)
 {
     return new MiniParseConfigPanel((MiniParseOverlay)overlay);
 }
Ejemplo n.º 46
0
 /// <summary>
 /// Refresh the display of just one overlays
 /// </summary>
 public virtual void RefreshOverlay(IOverlay overlay)
 {
     GlassPanelForm glassPanel = this.FindGlassPanelForOverlay(overlay);
     if (glassPanel != null)
         glassPanel.Invalidate();
 }
Ejemplo n.º 47
0
        private bool ReCreateOverlay(IOverlay overlay)
        {
            this.DestroyOverlay(overlay);

            if (!overlay.Process.HasExited)
            {
                this.CreateOverlay(overlay.Process);

                return true;
            }

            return false;
        }
Ejemplo n.º 48
0
 private GlassPanelForm FindGlassPanelForOverlay(IOverlay overlay)
 {
     return this.glassPanels.Find(delegate(GlassPanelForm x) { return x.Overlay == overlay; });
 }
Ejemplo n.º 49
0
        private bool DestroyOverlay(IOverlay overlay)
        {
            if (this.overlays.Contains(overlay))
            {
                overlay.Process.Exited -= this.OnProcessExited;

                overlay.PositionChanged -= this.OnOverlayRelativePositionChangedChanged;
                overlay.DisplayModeChanged -= this.OnOverlayDisplayModeChanged;

                this.log.Write(LogLevel.Trace, string.Format("Destroying overlay for process {0}.", overlay.Process.Id));

                overlay.Close();

                return this.overlays.Remove(overlay);
            }

            return false;
        }