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; }