Exemple #1
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;
        }
		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.ButtonPressEvent += OnPopupMenu;
				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 = (TextEditor)sender;
					PaintEditorOverlay (myEditor, args, LeftDiff, true);
				};

				editors[1].Painted +=  delegate (object sender, PaintEventArgs args) {
					var myEditor = (TextEditor)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 = (TextEditor)sender;
					PaintEditorOverlay (myEditor, args, LeftDiff, true);
				};
				editors[1].Painted +=  delegate (object sender, PaintEventArgs args) {
					var myEditor = (TextEditor)sender;
					PaintEditorOverlay (myEditor, args, LeftDiff, false);
					PaintEditorOverlay (myEditor, args, RightDiff, false);
				};
				editors[2].Painted +=  delegate (object sender, PaintEventArgs args) {
					var myEditor = (TextEditor)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;
		}