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();
 }
Esempio n. 2
0
        protected override void OnSizeAllocated(Gdk.Rectangle allocation)
        {
            //shrink the allocation we pass to the base layout, to allow for our extra border
            if (showBorderLine)
            {
                allocation.X      += 1;
                allocation.Y      += 1;
                allocation.Height -= HScrollbar.Visible? 1 : 2;
                allocation.Width  -= VScrollbar.Visible? 1 : 2;
            }
            base.OnSizeAllocated(allocation);


            //expand the scrollbars so they render over the new border
            if (showBorderLine)
            {
                bool hasHScroll = HScrollbar.Visible;
                bool hasVScroll = VScrollbar.Visible;

                if (hasHScroll)
                {
                    var alloc = HScrollbar.Allocation;
                    alloc.X     -= 1;
                    alloc.Width += hasVScroll? 1 :2;
                    HScrollbar.SizeAllocate(alloc);
                }
                if (hasVScroll)
                {
                    var alloc = VScrollbar.Allocation;
                    alloc.Y      -= 1;
                    alloc.Height += hasHScroll? 1 : 2;
                    VScrollbar.SizeAllocate(alloc);
                }
            }
        }
Esempio n. 3
0
        /// <summary>A scroll bars to the sheet widget.</summary>
        private void Initialise()
        {
            //// Remove existing child.
            //if (sheet.Children.Length > 0)
            //    sheet.Remove(sheet.Children[0]);

            var horizontalAdjustment = new Adjustment(1, 0, 100, 1, 1, 1);

            horizontalScrollbar               = new HScrollbar(horizontalAdjustment);
            horizontalScrollbar.Value         = 0;
            horizontalScrollbar.ValueChanged += OnHorizontalScrollbarChanged;
            //horizontalScrollbar.SetSizeRequest(sheet.Width, ScrollBarWidth);

            var verticalAdjustment = new Adjustment(1, 0, 100, 1, 1, 1);

            verticalScrollbar               = new VScrollbar(verticalAdjustment);
            verticalScrollbar.Value         = 0;
            verticalScrollbar.ValueChanged += OnVerticalScrollbarChanged;
            //verticalScrollbar.SetSizeRequest(ScrollBarWidth, sheet.Height);

            var hbox = new HBox();
            var vbox = new VBox();

            hbox.PackEnd(verticalScrollbar, false, true, 0);
            hbox.PackStart(sheet, true, true, 0);

            vbox.PackEnd(horizontalScrollbar, false, true, 0);
            vbox.PackStart(hbox, true, true, 0);

            MainWidget = vbox;
        }
Esempio n. 4
0
        public SmartScrolledWindow(VScrollbar vScrollBar = null)
        {
            vScrollBar = vScrollBar ?? new VScrollbar()
            {
            };
            AddChild(vScrollBar);
            Vadjustment.ValueChanged += HandleAdjustmentChanged;

            hScrollBar = new HScrollbar();
            AddChild(hScrollBar);
            Hadjustment.ValueChanged += HandleAdjustmentChanged;
        }
Esempio n. 5
0
        public ScrolledUserControl()
            : base()
        {
            Remove(this.drawingArea);
            this.scrollbar = new HScrollbar(new Adjustment(0, 0, 100, 1, 20, 20));
            var vb = new VBox();

            vb.PackStart(this.drawingArea, true, true, 0);
            vb.PackStart(this.scrollbar, false, true, 0);
            Add(vb);
            ShowAll();
        }
        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();
        }
Esempio n. 7
0
        public MyControl()
        {
            Events = Gdk.EventMask.AllEventsMask;
            var vb         = new VBox();
            var hScrollBar = new HScrollbar(new Adjustment(1, 1, 100, 1, 20, 10));

            hScrollBar.ChangeValue += (o, args) =>
            {
                //Console.WriteLine("Arg.Value: {0}", args.Args[1]);
                Console.WriteLine("scrollBar.Value: {0}", hScrollBar.Value);
                Console.WriteLine("scrollBar.OldValue: {0}", sbOldValue);
                sbOldValue = hScrollBar.Value;
            };
            hScrollBar.ValueChanged += (o, args) =>
            {
                Console.WriteLine("scrollBar.Value: {0}", hScrollBar.Value);
            };
            vb.PackEnd(hScrollBar, false, false, 0);
            Add(vb);
            ShowAll();
        }
Esempio n. 8
0
    public ScrollBarRenderView(RenderView renderview)
        : base(2, 2, false)
    {
        this.renderview = renderview;
        Attach(renderview, 0, 1, 0, 1,
               AttachOptions.Expand | AttachOptions.Fill,
               AttachOptions.Expand | AttachOptions.Fill, 0, 0);

        Adjustment hadjustment = new Adjustment(0, -10, 10, 1, 2, 2);
        HScrollbar hscroll     = new HScrollbar(hadjustment);

        Attach(hscroll, 0, 1, 1, 2,
               AttachOptions.Expand | AttachOptions.Fill, 0, 0, 0);

        Adjustment vadjustment = new Adjustment(0, -10, 10, 1, 2, 2);
        VScrollbar vscroll     = new VScrollbar(vadjustment);

        Attach(vscroll, 1, 2, 0, 1,
               0, AttachOptions.Expand | AttachOptions.Fill, 0, 0);

        renderview.SetAdjustments(hadjustment, vadjustment);
    }
Esempio n. 9
0
        protected void Intialize()
        {
            CreateComponents();

            vAdjustment          = new Adjustment(0, 0, 0, 0, 0, 0);
            attachedVAdjustments = new Adjustment[editors.Length];
            attachedHAdjustments = new Adjustment[editors.Length];
            for (int i = 0; i < editors.Length; i++)
            {
                attachedVAdjustments[i] = new Adjustment(0, 0, 0, 0, 0, 0);
                attachedHAdjustments[i] = new Adjustment(0, 0, 0, 0, 0, 0);
            }

            foreach (var attachedAdjustment in attachedVAdjustments)
            {
                Connect(attachedAdjustment, vAdjustment);
            }

            hAdjustment = new Adjustment(0, 0, 0, 0, 0, 0);
            foreach (var attachedAdjustment in attachedHAdjustments)
            {
                Connect(attachedAdjustment, hAdjustment);
            }

            hScrollBars = new Gtk.HScrollbar[attachedHAdjustments.Length];
            for (int i = 0; i < hScrollBars.Length; i++)
            {
                hScrollBars[i] = new HScrollbar(hAdjustment);
                Add(hScrollBars[i]);
            }

            for (int i = 0; i < editors.Length; i++)
            {
                var editor = editors[i];
                Add(editor);
                editor.DoPopupMenu           += (e) => ShowPopup(editor, e);
                editor.Caret.PositionChanged += CaretPositionChanged;
                editor.FocusInEvent          += EditorFocusIn;
                editor.SetScrollAdjustments(attachedHAdjustments[i], attachedVAdjustments[i]);
            }

            if (editors.Length == 2)
            {
                editors[0].Painted += delegate(object sender, PaintEventArgs args) {
                    var myEditor = (TextArea)sender;
                    PaintEditorOverlay(myEditor, args, LeftDiff, true);
                };

                editors[1].Painted += delegate(object sender, PaintEventArgs args) {
                    var myEditor = (TextArea)sender;
                    PaintEditorOverlay(myEditor, args, LeftDiff, false);
                };

                rightDiffScrollBar = new DiffScrollbar(this, editors[1], true, true);
                Add(rightDiffScrollBar);
            }
            else
            {
                editors[0].Painted += delegate(object sender, PaintEventArgs args) {
                    var myEditor = (TextArea)sender;
                    PaintEditorOverlay(myEditor, args, LeftDiff, true);
                };
                editors[1].Painted += delegate(object sender, PaintEventArgs args) {
                    var myEditor = (TextArea)sender;
                    PaintEditorOverlay(myEditor, args, LeftDiff, false);
                    PaintEditorOverlay(myEditor, args, RightDiff, false);
                };
                editors[2].Painted += delegate(object sender, PaintEventArgs args) {
                    var myEditor = (TextArea)sender;
                    PaintEditorOverlay(myEditor, args, RightDiff, true);
                };
                rightDiffScrollBar = new DiffScrollbar(this, editors[2], false, false);
                Add(rightDiffScrollBar);
            }

            leftDiffScrollBar = new DiffScrollbar(this, editors[0], true, false);
            Add(leftDiffScrollBar);
            if (headerWidgets != null)
            {
                foreach (var widget in headerWidgets)
                {
                    Add(widget);
                }
            }

            middleAreas = new MiddleArea [editors.Length - 1];
            if (middleAreas.Length <= 0 || middleAreas.Length > 2)
            {
                throw new NotSupportedException();
            }

            middleAreas[0] = new MiddleArea(this, editors[0], MainEditor, true);
            Add(middleAreas[0]);

            if (middleAreas.Length == 2)
            {
                middleAreas[1] = new MiddleArea(this, editors[2], MainEditor, false);
                Add(middleAreas[1]);
            }
            this.MainEditor.EditorOptionsChanged += HandleMainEditorhandleEditorOptionsChanged;
        }
Esempio n. 10
0
        public ComparisonWidget(VersionControlDocumentInfo info)
        {
            vAdjustment          = new Adjustment(0, 0, 0, 0, 0, 0);
            vAdjustment.Changed += HandleAdjustmentChanged;

            vScrollBar = new VScrollbar(vAdjustment);
            AddChild(vScrollBar);
            vScrollBar.Hide();

            hAdjustment          = new Adjustment(0, 0, 0, 0, 0, 0);
            hAdjustment.Changed += HandleAdjustmentChanged;

            leftHScrollBar = new HScrollbar(hAdjustment);
            AddChild(leftHScrollBar);

            rightHScrollBar = new HScrollbar(hAdjustment);
            AddChild(rightHScrollBar);

            originalComboBox      = new DropDownBox();
            originalComboBox.Text = "Local";
            AddChild(originalComboBox);

            originalEditor = new TextEditor();
            AddChild(originalEditor);
            originalEditor.SetScrollAdjustments(hAdjustment, vAdjustment);

            diffComboBox      = new DropDownBox();
            diffComboBox.Text = "Base";
            AddChild(diffComboBox);

            diffEditor = new TextEditor();

            AddChild(diffEditor);
            diffEditor.Document.ReadOnly = true;
            diffEditor.SetScrollAdjustments(hAdjustment, vAdjustment);
            this.vAdjustment.ValueChanged += delegate {
                middleArea.QueueDraw();
            };

            overview = new OverviewRenderer(this);
            AddChild(overview);

            middleArea = new MiddleArea(this);
            AddChild(middleArea);

            prev = new Button();
            prev.Add(new Arrow(ArrowType.Up, ShadowType.None));
            AddChild(prev);
            prev.ShowAll();
            prev.Clicked += delegate {
                if (this.Diff == null)
                {
                    return;
                }
                originalEditor.GrabFocus();

                int line = originalEditor.Caret.Line;
                int max = -1, searched = -1;
                foreach (Diff.Hunk hunk in this.Diff)
                {
                    if (hunk.Same)
                    {
                        continue;
                    }
                    max = System.Math.Max(hunk.Left.Start, max);
                    if (hunk.Left.Start < line)
                    {
                        searched = System.Math.Max(hunk.Left.Start, searched);
                    }
                }
                if (max >= 0)
                {
                    originalEditor.Caret.Line = searched < 0 ? max : searched;
                    originalEditor.CenterToCaret();
                }
            };

            next             = new Button();
            next.BorderWidth = 0;
            next.Add(new Arrow(ArrowType.Down, ShadowType.None));
            next.Clicked += delegate {
                if (this.Diff == null)
                {
                    return;
                }
                originalEditor.GrabFocus();

                int line = originalEditor.Caret.Line;
                int min = Int32.MaxValue, searched = Int32.MaxValue;
                foreach (Diff.Hunk hunk in this.Diff)
                {
                    if (hunk.Same)
                    {
                        continue;
                    }
                    min = System.Math.Min(hunk.Left.Start, min);
                    if (hunk.Left.Start > line)
                    {
                        searched = System.Math.Min(hunk.Left.Start, searched);
                    }
                }
                if (min < Int32.MaxValue)
                {
                    originalEditor.Caret.Line = searched == Int32.MaxValue ? min : searched;
                    originalEditor.CenterToCaret();
                }
            };
            AddChild(next);
            next.ShowAll();

            this.DoubleBuffered         = true;
            originalEditor.ExposeEvent += HandleLeftEditorExposeEvent;
            diffEditor.ExposeEvent     += HandleRightEditorExposeEvent;
        }
Esempio n. 11
0
        public static Gtk.Window Create()
        {
            window = new Window("GtkRange");
            window.SetDefaultSize(250, 200);

            VBox box1 = new VBox(false, 0);

            window.Add(box1);

            VBox box2 = new VBox(false, 0);

            box2.BorderWidth = 10;
            box1.PackStart(box2, true, true, 0);

            Adjustment adjustment = new Adjustment(0.0, 0.0, 101.0, 0.1, 1.0, 1.0);

            HScale hscale = new HScale(adjustment);

            hscale.SetSizeRequest(150, -1);

            hscale.Digits    = 1;
            hscale.DrawValue = true;
            box2.PackStart(hscale, true, true, 0);

            HScrollbar hscrollbar = new HScrollbar(adjustment);

            box2.PackStart(hscrollbar, true, true, 0);

            hscale              = new HScale(adjustment);
            hscale.DrawValue    = true;
            hscale.FormatValue += new FormatValueHandler(reformat_value);

            box2.PackStart(hscale, true, true, 0);

            HBox   hbox   = new HBox(false, 0);
            VScale vscale = new VScale(adjustment);

            vscale.SetSizeRequest(-1, 200);
            vscale.Digits    = 2;
            vscale.DrawValue = true;
            hbox.PackStart(vscale, true, true, 0);

            vscale = new VScale(adjustment);
            vscale.SetSizeRequest(-1, 200);
            vscale.Digits            = 2;
            vscale.DrawValue         = true;
            ((Range)vscale).Inverted = true;
            hbox.PackStart(vscale, true, true, 0);

            vscale              = new VScale(adjustment);
            vscale.DrawValue    = true;
            vscale.FormatValue += new FormatValueHandler(reformat_value);
            hbox.PackStart(vscale, true, true, 0);

            box2.PackStart(hbox, true, true, 0);

            box1.PackStart(new HSeparator(), false, true, 0);

            box2             = new VBox(false, 10);
            box2.BorderWidth = 10;
            box1.PackStart(box2, false, true, 0);

            Button button = new Button(Stock.Close);

            button.Clicked += new EventHandler(Close_Button);
            box2.PackStart(button, true, true, 0);
            button.CanDefault = true;
            button.GrabDefault();

            window.ShowAll();
            return(window);
        }
Esempio n. 12
0
        public static void Main(string[] args)
        {
            Application.Initialize();

            var w = new Xwt.Window();

            w.Padding = 0;
            w.Title   = "Teststestse";
            w.Hidden += (object s, EventArgs ea) => {
                Application.Exit();
                w.Dispose();
            };

            var vb = new VBox();

            w.Content = vb;

            TooltipWindow ttw = null;
            var           b   = new Button("Show tooltip");

            b.Clicked += (object s, EventArgs ea) => {
                if (ttw != null)
                {
                    ttw.Dispose();
                }

                ttw = new TooltipWindow();
                ttw.TransientFor = w;
                ttw.Show();
            };

            vb.PackStart(b);

            b          = new Button("Hide tooltip");
            b.Clicked += (object s, EventArgs ea) => {
                if (ttw != null)
                {
                    ttw.Dispose();
                }
            };

            vb.PackStart(b);

            var mc = new MyMainComponent();

            mc.LineColor        = Colors.Green;
            mc.ExpandHorizontal = true;
            vb.PackStart(mc);

            var scr = new HScrollbar();

            scr.ExpandHorizontal = true;
            vb.PackEnd(scr);

            scr.LowerValue    = 0;
            scr.UpperValue    = 1;
            scr.PageSize      = 0.05;
            scr.PageIncrement = 0.05;


            mc = new MyMainComponent {
                LineColor = Colors.Blue, WidthRequest = 400, HeightRequest = 40
            };
            vb.PackEnd(mc);
            mc.ExpandHorizontal = true;
            mc.ExpandVertical   = true;

            scr.ValueChanged += (object o, EventArgs ea) =>
            {
                mc.modValue = scr.Value;
                mc.QueueDraw();
            };

            var button = new Button("Hello");

            mc.AddChild(button, 50, 20);

            w.Show();



            Application.Run();
            Application.Dispose();
        }