aboutsummaryrefslogtreecommitdiffstatsci
path: root/Samples/CrowIDE/src/DesignInterface.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Samples/CrowIDE/src/DesignInterface.cs')
-rw-r--r--Samples/CrowIDE/src/DesignInterface.cs190
1 files changed, 0 insertions, 190 deletions
diff --git a/Samples/CrowIDE/src/DesignInterface.cs b/Samples/CrowIDE/src/DesignInterface.cs
deleted file mode 100644
index 82c604c8..00000000
--- a/Samples/CrowIDE/src/DesignInterface.cs
+++ /dev/null
@@ -1,190 +0,0 @@
-//
-// DesignInterface.cs
-//
-// Author:
-// Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
-//
-// Copyright (c) 2013-2017 Jean-Philippe Bruyère
-//
-// 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.Threading;
-using System.Collections.Generic;
-using System.IO;
-
-
-namespace Crow.Coding
-{
- public class DesignInterface : Interface, IValueChange
- {
- #region IValueChange implementation
- /// <summary>
- /// Raise to notify that the value of a property has changed, the binding system
- /// rely mainly on this event. the member name may not be present in the class, this is
- /// used in **propertyless** bindings, this allow to raise custom named events without needing
- /// to create an new one in the class or a new property.
- /// </summary>
- public event EventHandler<ValueChangeEventArgs> ValueChanged;
- /// <summary>
- /// Helper function to raise the value changed event
- /// </summary>
- public virtual void NotifyValueChanged(string MemberName, object _value)
- {
- //Debug.WriteLine ("Value changed: {0}->{1} = {2}", this, MemberName, _value);
- ValueChanged.Raise(this, new ValueChangeEventArgs(MemberName, _value));
- }
- #endregion
-
- public DesignInterface (vkvg.Device dev) : base(dev)
- {
- }
-
- public ProjectFile ProjFile;
-
-
-
- public override Widget CreateInstance (string path)
- {
- ProjectFile pi;
-
- if (ProjFile.Project.solution.GetProjectFileFromPath (path, out pi))
- return CreateITorFromIMLFragment (pi.Source).CreateInstance();
-
- return null;
- }
- public override Stream GetStreamFromPath (string path)
- {
- ProjectFile pi;
- if (ProjFile.Project.solution.GetProjectFileFromPath (path, out pi)) {
- return new FileStream (pi.AbsolutePath, FileMode.Open);
- }
- throw new Exception ($"In Design File not found: {path}");
- }
-
-
- public override bool ProcessMouseMove (int x, int y)
- {
- int deltaX = x - Mouse.X;
- int deltaY = y - Mouse.Y;
- Mouse.X = x;
- Mouse.Y = y;
- MouseMoveEventArgs e = new MouseMoveEventArgs (x, y, deltaX, deltaY);
- e.Mouse = Mouse;
-
- if (ActiveWidget != null) {
- //TODO, ensure object is still in the graphic tree
- //send move evt even if mouse move outside bounds
- ActiveWidget.onMouseMove (this, e);
- if (!ActiveWidget.IsDragged)//if active is dragged, process mouse move as it was not visible.
- return true;
- }
-
- if (HoverWidget != null) {
-
- //check topmost graphicobject first
- Widget tmp = HoverWidget;
- Widget topc = null;
- while (tmp is Widget) {
- topc = tmp;
- tmp = tmp.LogicalParent as Widget;
- }
- int idxhw = GraphicTree.IndexOf (topc);
- if (idxhw != 0) {
- int i = 0;
- while (i < idxhw) {
- if (GraphicTree [i].localLogicalParentIsNull) {
- if (GraphicTree [i].MouseIsIn (e.Position)) {
- while (HoverWidget != null) {
- HoverWidget.onMouseLeave (HoverWidget, e);
- HoverWidget = HoverWidget.LogicalParent as Widget;
- }
-
- GraphicTree [i].checkHoverWidget (e);
- return true;
- }
- }
- i++;
- }
- }
-
- if (HoverWidget.MouseIsIn (e.Position)) {
- if (!(HoverWidget is TemplatedControl))
- HoverWidget.checkHoverWidget (e);
- return true;
- } else {
- HoverWidget.onMouseLeave (HoverWidget, e);
- //seek upward from last focused graph obj's
- while (HoverWidget.LogicalParent as Widget != null) {
- HoverWidget = HoverWidget.LogicalParent as Widget;
- if (HoverWidget.MouseIsIn (e.Position)) {
- HoverWidget.checkHoverWidget (e);
- return true;
- } else
- HoverWidget.onMouseLeave (HoverWidget, e);
- }
- }
- }
-
- //top level graphic obj's parsing
- lock (GraphicTree) {
- for (int i = 0; i < GraphicTree.Count; i++) {
- Widget g = GraphicTree [i];
- if (g.MouseIsIn (e.Position)) {
- if (!(HoverWidget is TemplatedControl))
- g.checkHoverWidget (e);
- if (g is Window)
- PutOnTop (g);
- return true;
- }
- }
- }
- HoverWidget = null;
- return false;
- }
-
- protected override void processLayouting ()
- {
- #if MEASURE_TIME
- layoutingMeasure.StartCycle();
- #endif
-
- if (Monitor.TryEnter (LayoutMutex)) {
- DiscardQueue = new Queue<LayoutingQueueItem> ();
- LayoutingQueueItem lqi;
- while (LayoutingQueue.Count > 0) {
- lqi = LayoutingQueue.Dequeue ();
- //Console.WriteLine (lqi.ToString ());
- #if DEBUG_LAYOUTING
- currentLQI = lqi;
- curLQIsTries.Add(currentLQI);
- #endif
- lqi.ProcessLayouting ();
- }
- LayoutingQueue = DiscardQueue;
- Monitor.Exit (LayoutMutex);
- DiscardQueue = null;
- }
-
- #if MEASURE_TIME
- layoutingMeasure.StopCycle();
- #endif
- }
- }
-}
-