diff options
| author | jpbruyere <jp.bruyere@hotmail.com> | 2016-03-20 22:04:14 +0100 |
|---|---|---|
| committer | jpbruyere <jp.bruyere@hotmail.com> | 2016-03-20 22:04:14 +0100 |
| commit | 8d7b17fdacb9dde5d5775115303b9e095a0631d1 (patch) | |
| tree | b526dd1c39ed7f7fa016078cf60d0c7208c2740c /MonoDevelop.GOLib/src/CrowView.cs | |
| parent | 356bfaaed4f46a727ae033f37f362b062c8c32d9 (diff) | |
try update monodevelop addin, workin progressmonodevelop
Diffstat (limited to 'MonoDevelop.GOLib/src/CrowView.cs')
| -rw-r--r-- | MonoDevelop.GOLib/src/CrowView.cs | 155 |
1 files changed, 155 insertions, 0 deletions
diff --git a/MonoDevelop.GOLib/src/CrowView.cs b/MonoDevelop.GOLib/src/CrowView.cs new file mode 100644 index 00000000..abdac98a --- /dev/null +++ b/MonoDevelop.GOLib/src/CrowView.cs @@ -0,0 +1,155 @@ +// +// ImageViewer.cs +// +// Author: +// Jean-Philippe Bruyère <jp.bruyere@hotmail.com> +// +// Copyright (c) 2015 jp +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. + +// +// HexEditorView.cs +// +// Author: +// Mike Krüger <mkrueger@novell.com> +// +// Copyright (c) 2009 Novell, Inc (http://www.novell.com) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +using System; +using System.IO; +using Crow; +using MonoDevelop.DesignerSupport; +using MonoDevelop.SourceEditor; + +namespace MonoDevelop.Crow +{ + class CustomVPaned : Gtk.VPaned, IPropertyPadProvider + { + #region IPropertyPadProvider implementation + public object GetActiveComponent () + { + return this.Child1 == null ? this as object: (this.Child1 as XwtContainer).CrowInterface.activeWidget as object; + } + public object GetProvider () + { + return null; + //throw new NotImplementedException (); + } + public void OnEndEditing (object obj) + { + //throw new NotImplementedException (); + } + public void OnChanged (object obj) + { + //throw new NotImplementedException (); + } + #endregion + + } + class CrowView : SourceEditorView + { + XwtContainer gtkCrowHost; + CustomVPaned gtkCrowWidget; + + + double zoom = 1.0; + + public override Gtk.Widget Control { + get { + return gtkCrowWidget; + } + } + + public CrowView () : base() + { + gtkCrowHost = new XwtContainer (); + gtkCrowWidget = new CustomVPaned (); + gtkCrowWidget.CanFocus = true; + gtkCrowWidget.Name = "vpaned1"; + gtkCrowWidget.Add (gtkCrowHost); + gtkCrowWidget.Add (base.Control); + gtkCrowWidget.SizeAllocated += GtkGOMLWidget_SizeAllocated; + + this.Document.DocumentUpdated += Document_DocumentUpdated; + //this.DirtyChanged += GOLibView_DirtyChanged; + } + + void Document_DocumentUpdated (object sender, EventArgs e) + { + reloadGOML (); + } + + void GOLibView_DirtyChanged (object sender, EventArgs e) + { + + } + + void reloadGOML() + { + using (MemoryStream stream = new MemoryStream ()) { + using (StreamWriter writer = new StreamWriter (stream)) { + writer.Write (this.Document.Text); + writer.Flush (); + + stream.Position = 0; + gtkCrowHost.CrowInterface.LoadInterface (stream); + } + } + } + + void GtkGOMLWidget_SizeAllocated (object o, Gtk.SizeAllocatedArgs args) + { + gtkCrowHost.SetSizeRequest (-1, args.Allocation.Height / 2); + } + + public override void Load (string fileName) + { + gtkCrowHost.CrowInterface.LoadInterface (fileName); + //ContentName = fileName; + //this.IsDirty = false; + gtkCrowWidget.ShowAll (); + gtkCrowWidget.Show (); + + base.Load (fileName); + } +// public override bool CanReuseView (string fileName) +// { +// return base.CanReuseView (fileName); +// } +// public override void RedrawContent () +// { +// base.RedrawContent (); +// } + + } +} |