diff options
| author | j-p <jp.bruyere@live.be> | 2015-05-02 09:22:03 +0200 |
|---|---|---|
| committer | j-p <jp.bruyere@live.be> | 2015-05-02 09:22:03 +0200 |
| commit | 2a48f25993b48535eb84f0e83e4dd7c064ed6e49 (patch) | |
| tree | 809bc55854f13cb031d26129e7db24076119bca0 /src/LayoutingQueueItem.cs | |
| parent | 79224ffe3efe06a99cb5dfb183f16a5427504b2a (diff) | |
| parent | 40392cc3bcaee5b67d85b0aabfd42d2881823bd6 (diff) | |
Merge pull request #3 from jpbruyere/LayoutingQueue
Layouting queue
Diffstat (limited to 'src/LayoutingQueueItem.cs')
| -rw-r--r-- | src/LayoutingQueueItem.cs | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/src/LayoutingQueueItem.cs b/src/LayoutingQueueItem.cs new file mode 100644 index 00000000..b028fb83 --- /dev/null +++ b/src/LayoutingQueueItem.cs @@ -0,0 +1,72 @@ +// +// LayoutingQueueItem.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 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 <http://www.gnu.org/licenses/>. +using System; +using System.Diagnostics; + +namespace go +{ + public enum LayoutingType + { + X = 0x01, + Y = 0x02, + Width = 0x04, + Height = 0x08, + Sizing = 0x0C, + PositionChildren = 0x10, + All = 0xFF + } + + 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 ("{1}->{0}", LayoutType,GraphicObject.ToString()); + } + } +} + |