// // Extensions.cs // // Author: // Jean-Philippe Bruyère // // Copyright (c) 2016 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.Collections.Generic; namespace Crow { public static class Extensions { public static List GetChildren(this GraphicObject go){ Type goType = go.GetType(); if (typeof (Group).IsAssignableFrom (goType)) return (go as Group).Children; if (typeof(Container).IsAssignableFrom (goType)) return new List( new GraphicObject[] { (go as Container).Child }); if (typeof(TemplatedContainer).IsAssignableFrom (goType)) return new List( new GraphicObject[] { (go as TemplatedContainer).Content }); if (typeof(TemplatedGroup).IsAssignableFrom (goType)) return (go as TemplatedGroup).Items; return new List(); } } }