protected override void OnDestroyed()
 {
     if (Child != null)
     {
         Child.Destroy();
     }
     if (vAdjustment != null)
     {
         vAdjustment.Changed -= HandleAdjustmentChanged;
         vAdjustment.Destroy();
         vAdjustment = null;
     }
     if (hAdjustment != null)
     {
         hAdjustment.Changed -= HandleAdjustmentChanged;
         hAdjustment.Destroy();
         hAdjustment = null;
     }
     if (vScrollBar != null)
     {
         vScrollBar.Destroy();
         vScrollBar = null;
     }
     if (hScrollBar != null)
     {
         hScrollBar.Destroy();
         hScrollBar = null;
     }
     foreach (var c in children)
     {
         c.Child.Destroy();
     }
     base.OnDestroyed();
 }
示例#2
0
 protected override void SetScrollAdjustments(ScrollAdjustment horizontal, ScrollAdjustment vertical)
 {
     base.SetScrollAdjustments(horizontal, vertical);
     hAdgustment = horizontal;
     hAdgustment.ValueChanged += OnScroll;
     vAdgustment = vertical;
     vAdgustment.ValueChanged += OnScroll;
 }
示例#3
0
 protected override void SetScrollAdjustments(ScrollAdjustment horizontal, ScrollAdjustment vertical)
 {
     this.hadj = horizontal;
     this.vadj = vertical;
     if (this.vadj != null)
     {
         this.vadj.ValueChanged += (sender, e) => QueueDraw();
     }
     base.SetScrollAdjustments(horizontal, vertical);
 }
示例#4
0
 protected void DetachEvents()
 {
     if (vAdjustment == null)
     {
         return;
     }
     vAdjustment.ValueChanged -= HandleEditorVAdjustmentValueChanged;
     hAdjustment.ValueChanged -= HandleEditorHAdjustmentValueChanged;
     vAdjustment = null;
     hAdjustment = null;
 }
示例#5
0
 void UnregisterAdjustments()
 {
     if (vAdjustement != null)
     {
         vAdjustement.ValueChanged -= HandleAdjustmentValueChange;
     }
     if (hAdjustement != null)
     {
         hAdjustement.ValueChanged -= HandleAdjustmentValueChange;
     }
     vAdjustement = null;
     hAdjustement = null;
 }
示例#6
0
        protected void ListenToEvents()
        {
            if (vAdjustment == null)
            {
                vAdjustment = editor.VAdjustment;
                hAdjustment = editor.HAdjustment;

                vAdjustment.ValueChanged += HandleEditorVAdjustmentValueChanged;
                hAdjustment.ValueChanged += HandleEditorHAdjustmentValueChanged;
            }
            vValue = vAdjustment.Value;
            hValue = hAdjustment.Value;
        }
示例#7
0
        public void SetScrollAdjustments(ScrollAdjustment horizontal, ScrollAdjustment vertical)
        {
            hscroll = horizontal;
            vscroll = vertical;

            OnBoundsChanged();

            Action <object, EventArgs> changed = (s, e) => {
                base.ClipOrigin = new Point(hscroll.Value, vscroll.Value);
                Backend.QueueDraw();
            };

            hscroll.UpperValue    = Math.Ceiling(DataSize.Width);
            hscroll.ValueChanged += (s, e) => changed(s, e);
            vscroll.UpperValue    = Math.Ceiling(DataSize.Height);
            vscroll.ValueChanged += (s, e) => changed(s, e);
        }
        public SmartScrolledWindow(Widget vScrollBar = null)
        {
            GtkWorkarounds.FixContainerLeak(this);

            vAdjustment = new ScrollAdjustment();
            vAdjustment.ValueChanged += HandleAdjustmentChanged;

            this.vScrollBar        = vScrollBar ?? new VScrollbar(vAdjustment);
            this.vScrollBar.Parent = this;
            this.vScrollBar.Show();

            hAdjustment = new ScrollAdjustment();
            hAdjustment.ValueChanged += HandleAdjustmentChanged;

            hScrollBar        = new HScrollbar(hAdjustment);
            hScrollBar.Parent = this;
            hScrollBar.Show();
        }
示例#9
0
        protected override void SetScrollAdjustments(ScrollAdjustment hAdjustement, ScrollAdjustment vAdjustement)
        {
            UnregisterAdjustments();
            this.vAdjustement = vAdjustement;
            this.hAdjustement = hAdjustement;
            base.SetScrollAdjustments(hAdjustement, vAdjustement);
            textArea.SetScrollAdjustmentsInternal(hAdjustement, vAdjustement);
            if (hAdjustement != null)
            {
                hAdjustement.ValueChanged += HandleAdjustmentValueChange;
            }

            if (vAdjustement != null)
            {
                vAdjustement.ValueChanged += HandleAdjustmentValueChange;
            }
            OnScrollAdjustmentsSet();
        }
示例#10
0
        protected override void SetScrollAdjustments(ScrollAdjustment horizontal, ScrollAdjustment vertical)
        {
            hscroll = horizontal;
            vscroll = vertical;

            hscroll.UpperValue    = imageSize;
            hscroll.PageIncrement = Bounds.Width;
            hscroll.PageSize      = Bounds.Width;
            hscroll.ValueChanged += delegate {
                QueueDraw();
            };

            vscroll.UpperValue    = imageSize;
            vscroll.PageIncrement = Bounds.Height;
            vscroll.PageSize      = Bounds.Height;
            vscroll.ValueChanged += delegate {
                QueueDraw();
            };
        }
示例#11
0
        protected override void SetScrollAdjustments(ScrollAdjustment horizontal, ScrollAdjustment vertical)
        {
            hscroll = horizontal;
            vscroll = vertical;

            hscroll.UpperValue    = ImageSize.Width;
            hscroll.PageIncrement = Bounds.Width;
            hscroll.PageSize      = Bounds.Width;
            hscroll.ValueChanged += delegate {
                VisibleRect = new Rectangle(hscroll.Value, vscroll.Value, hscroll.PageSize, vscroll.PageSize);
                Func <Rectangle> visrect2 = () => (Parent as ScrollView).VisibleRect;
                QueueDraw();
            };

            vscroll.UpperValue    = ImageSize.Height;
            vscroll.PageIncrement = Bounds.Height;
            vscroll.PageSize      = Bounds.Height;
            vscroll.ValueChanged += delegate {
                VisibleRect = new Rectangle(hscroll.Value, vscroll.Value, hscroll.PageSize, vscroll.PageSize);
                QueueDraw();
            };
        }
示例#12
0
        protected override void SetScrollAdjustments(ScrollAdjustment hAdjustement, ScrollAdjustment vAdjustement)
        {
            if (HexEditorData.HAdjustment != null)
            {
                HexEditorData.HAdjustment.ValueChanged -= HAdjustmentValueChanged;
            }
            if (HexEditorData.VAdjustment != null)
            {
                HexEditorData.VAdjustment.ValueChanged -= VAdjustmentValueChanged;
            }

            HexEditorData.HAdjustment = hAdjustement;
            HexEditorData.VAdjustment = vAdjustement;

            if (hAdjustement == null || vAdjustement == null)
            {
                return;
            }

            HexEditorData.HAdjustment.ValueChanged += HAdjustmentValueChanged;
            HexEditorData.VAdjustment.ValueChanged += VAdjustmentValueChanged;
        }
示例#13
0
 public HexEditorData()
 {
     Caret       = new Caret(this);
     VAdjustment = new ScrollAdjustment();
     HAdjustment = new ScrollAdjustment();
 }
示例#14
0
 public static void AddValueClamped(this ScrollAdjustment adj, double value)
 {
     adj.Value = Math.Max(adj.LowerValue, Math.Min(adj.Value + value, adj.UpperValue - adj.PageSize));
 }
示例#15
0
 protected override void SetScrollAdjustments(ScrollAdjustment horizontal, ScrollAdjustment vertical)
 {
     //base.SetScrollAdjustments(horizontal, vertical);
     ScrollHorizontal = horizontal;
     ScrollVertical   = vertical;
 }