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

Reply via email to