Author: mkrueger
Date: 2008-02-03 08:06:31 -0500 (Sun, 03 Feb 2008)
New Revision: 94681
Modified:
trunk/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/ChangeLog
trunk/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/ExtendibleTextEditor.cs
trunk/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs
trunk/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorWidget.cs
Log:
* MonoDevelop.SourceEditor/SourceEditorWidget.cs,
MonoDevelop.SourceEditor/ExtendibleTextEditor.cs,
MonoDevelop.SourceEditor/SourceEditorView.cs: Implemented
ISplittable.
Modified: trunk/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/ChangeLog
===================================================================
--- trunk/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/ChangeLog
2008-02-03 13:05:59 UTC (rev 94680)
+++ trunk/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/ChangeLog
2008-02-03 13:06:31 UTC (rev 94681)
@@ -1,3 +1,9 @@
+2008-02-03 Mike Krüger <[EMAIL PROTECTED]>
+
+ * MonoDevelop.SourceEditor/SourceEditorWidget.cs,
+ MonoDevelop.SourceEditor/ExtendibleTextEditor.cs,
+ MonoDevelop.SourceEditor/SourceEditorView.cs: Implemented ISplittable.
+
2008-02-02 Mike Krüger <[EMAIL PROTECTED]>
* MonoDevelop.SourceEditor/SourceEditorView.cs: Fixed code completion
bug.
Modified:
trunk/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/ExtendibleTextEditor.cs
===================================================================
---
trunk/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/ExtendibleTextEditor.cs
2008-02-03 13:05:59 UTC (rev 94680)
+++
trunk/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/ExtendibleTextEditor.cs
2008-02-03 13:06:31 UTC (rev 94681)
@@ -62,8 +62,18 @@
}
}
+ public ExtendibleTextEditor (SourceEditorView view,
Mono.TextEditor.Document doc) : base (doc)
+ {
+ Initialize (view);
+ }
+
public ExtendibleTextEditor (SourceEditorView view)
{
+ Initialize (view);
+ }
+
+ void Initialize (SourceEditorView view)
+ {
this.view = view;
this.Buffer.TextReplaced += delegate {
this.HideLanguageItemWindow ();
@@ -86,6 +96,7 @@
}
};
}
+
protected override void OptionsChanged (object sender,
EventArgs args)
{
this.ColorStyle = SyntaxModeService.GetColorStyle
(this, SourceEditorOptions.Options.ColorSheme);
Modified:
trunk/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs
===================================================================
---
trunk/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs
2008-02-03 13:05:59 UTC (rev 94680)
+++
trunk/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs
2008-02-03 13:06:31 UTC (rev 94681)
@@ -37,7 +37,7 @@
namespace MonoDevelop.SourceEditor
{
- public class SourceEditorView : AbstractViewContent, IPositionable,
IExtensibleTextEditor, IBookmarkBuffer, IClipboardHandler, ICompletionWidget,
IDocumentInformation, ICodeStyleOperations
+ public class SourceEditorView : AbstractViewContent, IPositionable,
IExtensibleTextEditor, IBookmarkBuffer, IClipboardHandler, ICompletionWidget,
IDocumentInformation, ICodeStyleOperations, ISplittable
{
SourceEditorWidget widget;
bool isDisposed = false;
@@ -398,7 +398,8 @@
if (line != null && line.IsBookmarked != mark) {
int lineNumber =
widget.TextEditor.Document.Splitter.GetLineNumberForOffset (line.Offset);
line.IsBookmarked = mark;
- widget.TextEditor.RedrawLine (lineNumber);
+ widget.TextEditor.Document.RequestUpdate (new
LineUpdate (lineNumber));
+ widget.TextEditor.Document.CommitDocumentUpdate
();
}
}
@@ -709,5 +710,38 @@
Document.EndAtomicUndo ();
}
#endregion
+#region ISplittable
+ public bool EnableSplitHorizontally {
+ get {
+ return !EnableUnsplit;
+ }
+ }
+ public bool EnableSplitVertically {
+ get {
+ return !EnableUnsplit;
+ }
+ }
+ public bool EnableUnsplit {
+ get {
+ return widget.IsSplitted;
+ }
+ }
+
+ public void SplitHorizontally ()
+ {
+ widget.Split (false);
+ }
+
+ public void SplitVertically ()
+ {
+ widget.Split (true);
+ }
+
+ public void Unsplit ()
+ {
+ widget.Unsplit ();
+ }
+
+#endregion
}
}
Modified:
trunk/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorWidget.cs
===================================================================
---
trunk/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorWidget.cs
2008-02-03 13:05:59 UTC (rev 94680)
+++
trunk/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorWidget.cs
2008-02-03 13:06:31 UTC (rev 94681)
@@ -51,9 +51,10 @@
Tooltips tips = new Tooltips ();
MonoDevelop.SourceEditor.ExtendibleTextEditor textEditor;
+ MonoDevelop.SourceEditor.ExtendibleTextEditor
splittedTextEditor;
public MonoDevelop.SourceEditor.ExtendibleTextEditor TextEditor
{
get {
- return this.textEditor;
+ return this.splittedTextEditor != null &&
this.splittedTextEditor.HasFocus ? this.splittedTextEditor : this.textEditor;
}
}
@@ -85,7 +86,7 @@
bool ITextEditorExtension.KeyPress (Gdk.Key key,
Gdk.ModifierType modifier)
{
- this.textEditor.SimulateKeyPress (key, modifier);
+ this.TextEditor.SimulateKeyPress (key, modifier);
return true;
}
#endregion
@@ -100,13 +101,13 @@
this.view = view;
this.Build();
this.textEditor = new
MonoDevelop.SourceEditor.ExtendibleTextEditor (view);
- this.mainsw.Child = this.textEditor;
+ this.mainsw.Child = this.TextEditor;
this.mainsw.ButtonPressEvent += PrepareEvent;
this.textEditor.ShowAll ();
- this.TextEditor.Caret.ModeChanged +=
CaretModeChanged;
- this.TextEditor.Caret.PositionChanged +=
CaretPositionChanged;
+ this.textEditor.Caret.ModeChanged +=
CaretModeChanged;
+ this.textEditor.Caret.PositionChanged +=
CaretPositionChanged;
// Setup the columns and column renders for the
comboboxes
@@ -289,7 +290,7 @@
if (errors.ContainsKey (info.Line))
return;
- LineSegment line = this.textEditor.Document.GetLine
(info.Line);
+ LineSegment line = this.TextEditor.Document.GetLine
(info.Line);
Error error = new Error (info, line);
errors [info.Line] = error;
error.AddToLine ();
@@ -325,6 +326,9 @@
if (splitContainer == null)
return;
+ splittedTextEditor.Destroy ();
+ splittedTextEditor = null;
+
splitContainer.Remove (mainsw);
editorBar.Remove (splitContainer);
@@ -352,8 +356,12 @@
};
ScrolledWindow secondsw = new ScrolledWindow ();
secondsw.ButtonPressEvent += PrepareEvent;
- Mono.TextEditor.TextEditor secondEditor = new
Mono.TextEditor.TextEditor (TextEditor.Document);
- secondsw.Child = secondEditor;
+ this.splittedTextEditor = new
MonoDevelop.SourceEditor.ExtendibleTextEditor (view, textEditor.Document);
+ this.splittedTextEditor.Extension =
textEditor.Extension;
+
this.splittedTextEditor.TextEditorData.Caret.ModeChanged +=
CaretModeChanged;
+
this.splittedTextEditor.TextEditorData.Caret.PositionChanged +=
CaretPositionChanged;
+
+ secondsw.Child = splittedTextEditor;
splitContainer.Add2 (secondsw);
editorBar.PackEnd (splitContainer);
this.splitContainer.Position = (vSplit ?
this.Allocation.Height : this.Allocation.Width) / 2;
@@ -436,11 +444,11 @@
void UpdateLineCol ()
{
- int offset = this.textEditor.Caret.Offset;
- if (offset < 0 || offset >=
this.textEditor.Document.Buffer.Length)
+ int offset = this.TextEditor.Caret.Offset;
+ if (offset < 0 || offset >=
this.TextEditor.Document.Buffer.Length)
return;
- char ch = this.textEditor.Document.Buffer.GetCharAt
(offset);
- DocumentLocation location =
this.textEditor.Document.LogicalToVisualLocation
(this.textEditor.Caret.Location);
+ char ch = this.TextEditor.Document.Buffer.GetCharAt
(offset);
+ DocumentLocation location =
this.TextEditor.Document.LogicalToVisualLocation
(this.TextEditor.Caret.Location);
IdeApp.Workbench.StatusBar.SetCaretPosition
(location.Line, location.Column, ch);
}
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches