/// <summary> /// Installs the scroll director and adds the appropriate handlers. /// </summary> /// <param name="scrollableControl"> /// The scrollable control on which this director directs. /// </param> /// <param name="view">The PCanvas that the scrollable control scrolls.</param> public virtual void Install(PScrollableControl scrollableControl, PCanvas view) { this.scrollableControl = scrollableControl; this.view = view; if (view != null) { this.camera = view.Camera; this.root = view.Root; } if (camera != null) { camera.ViewTransformChanged += new PPropertyEventHandler(camera_ViewTransformChanged); camera.BoundsChanged += new PPropertyEventHandler(camera_BoundsChanged); camera.FullBoundsChanged += new PPropertyEventHandler(camera_FullBoundsChanged); } if (root != null) { root.BoundsChanged += new PPropertyEventHandler(root_BoundsChanged); root.FullBoundsChanged += new PPropertyEventHandler(root_FullBoundsChanged); } if (scrollableControl != null) { scrollableControl.UpdateScrollbars(); } }
/// <summary> /// Uninstalls the scroll director from the scrollable control. /// </summary> public virtual void UnInstall() { scrollableControl = null; view = null; if (camera != null) { camera.ViewTransformChanged -= new PPropertyEventHandler(camera_ViewTransformChanged); camera.BoundsChanged -= new PPropertyEventHandler(camera_BoundsChanged); camera.FullBoundsChanged -= new PPropertyEventHandler(camera_FullBoundsChanged); } if (root != null) { root.BoundsChanged -= new PPropertyEventHandler(root_BoundsChanged); root.FullBoundsChanged -= new PPropertyEventHandler(root_FullBoundsChanged); } camera = null; root = null; }