From 7b8ff62e3ee75e19d9eeeabd31bedef371215554 Mon Sep 17 00:00:00 2001 From: jpbruyere Date: Mon, 27 Apr 2015 14:58:27 +0200 Subject: Layouting queue --- src/LayoutingQueueItem.cs | 70 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 src/LayoutingQueueItem.cs (limited to 'src/LayoutingQueueItem.cs') diff --git a/src/LayoutingQueueItem.cs b/src/LayoutingQueueItem.cs new file mode 100644 index 00000000..4005f71e --- /dev/null +++ b/src/LayoutingQueueItem.cs @@ -0,0 +1,70 @@ +// +// LayoutingQueueItem.cs +// +// Author: +// Jean-Philippe Bruyère +// +// Copyright (c) 2015 jp +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +using System; +using System.Diagnostics; + +namespace go +{ + public enum LayoutingType + { + X, + Y, + Width, + Height, + PositionChildren + } + + public class LayoutingQueueItem + { + + public ILayoutable GraphicObject; + public LayoutingType LayoutType; + + public LayoutingQueueItem (LayoutingType _layoutType, ILayoutable _graphicObject) + { + LayoutType = _layoutType; + GraphicObject = _graphicObject; + } + public void ProcessLayouting() + { + Debug.WriteLine ("Layouting => " + this.ToString ()); + try { + GraphicObject.UpdateLayout (LayoutType); + } catch (Exception ex) { + Debug.WriteLine ("Layouting error: " + ex.ToString ()); + } + } + + public static implicit operator GraphicObject(LayoutingQueueItem queueItem) + { + return queueItem.GraphicObject as GraphicObject; + } + public static implicit operator LayoutingType(LayoutingQueueItem lqi) + { + return lqi.LayoutType; + } + public override string ToString () + { + return string.Format ("{0}->{1}", LayoutType,GraphicObject.ToString()); + } + } +} + -- cgit v1.3.1-4-g156e