aboutsummaryrefslogtreecommitdiffstatsci
path: root/Samples/CrowIDE/src/Extensions.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Samples/CrowIDE/src/Extensions.cs')
-rw-r--r--Samples/CrowIDE/src/Extensions.cs45
1 files changed, 45 insertions, 0 deletions
diff --git a/Samples/CrowIDE/src/Extensions.cs b/Samples/CrowIDE/src/Extensions.cs
new file mode 100644
index 00000000..86c5834f
--- /dev/null
+++ b/Samples/CrowIDE/src/Extensions.cs
@@ -0,0 +1,45 @@
+//
+// Extensions.cs
+//
+// Author:
+// Jean-Philippe Bruyère <jp.bruyere@hotmail.com>
+//
+// 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 <http://www.gnu.org/licenses/>.
+using System;
+using System.Collections.Generic;
+
+namespace Crow
+{
+ public static partial class Extensions
+ {
+ public static string GetIcon(this Widget go){
+ return "#CrowIDE.icons.toolbox." + go.GetType().FullName + ".svg";
+ }
+ public static List<Widget> GetChildren(this Widget go){
+ Type goType = go.GetType();
+ if (typeof (Group).IsAssignableFrom (goType))
+ return (go as Group).Children;
+ if (typeof(Container).IsAssignableFrom (goType))
+ return new List<Widget>( new Widget[] { (go as Container).Child });
+ if (typeof(TemplatedContainer).IsAssignableFrom (goType))
+ return new List<Widget>( new Widget[] { (go as TemplatedContainer).Content });
+ if (typeof(TemplatedGroup).IsAssignableFrom (goType))
+ return (go as TemplatedGroup).Items;
+
+ return new List<Widget>();
+ }
+ }
+}