aboutsummaryrefslogtreecommitdiffstatsci
path: root/src/GraphicObjects/TemplatedControl.cs
diff options
context:
space:
mode:
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>2018-12-10 18:48:30 +0100
committerJean-Philippe Bruyère <jp_bruyere@hotmail.com>2018-12-10 18:48:30 +0100
commit3c6887e62dcce8d3e1c9693eaf580932521b4014 (patch)
tree5cf08a7589dce289d8dca6d60e328b32935a63a5 /src/GraphicObjects/TemplatedControl.cs
parentfd3cf7597b2c3084c41993fe2043a484466c4fa9 (diff)
netcore support
Diffstat (limited to 'src/GraphicObjects/TemplatedControl.cs')
-rw-r--r--src/GraphicObjects/TemplatedControl.cs158
1 files changed, 0 insertions, 158 deletions
diff --git a/src/GraphicObjects/TemplatedControl.cs b/src/GraphicObjects/TemplatedControl.cs
deleted file mode 100644
index a1a11b22..00000000
--- a/src/GraphicObjects/TemplatedControl.cs
+++ /dev/null
@@ -1,158 +0,0 @@
-//
-// TemplatedControl.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.Xml.Serialization;
-using System.ComponentModel;
-using System.IO;
-using System.Xml;
-using System.Diagnostics;
-using System.Linq;
-using System.Collections.Generic;
-using System.Text;
-using System.Reflection;
-using Cairo;
-
-namespace Crow
-{
- /// <summary>
- /// Base class for all templated widget
- /// </summary>
- public abstract class TemplatedControl : PrivateContainer
- {
- #if DESIGN_MODE
- public bool design_inlineTemplate = false;
- public override void getIML (System.Xml.XmlDocument doc, System.Xml.XmlNode parentElem)
- {
- if (this.design_isTGItem)
- return;
- base.getIML (doc, parentElem);
- if (child == null || !design_inlineTemplate)
- return;
- XmlElement xe = doc.CreateElement("Template");
- child.getIML (doc, xe);
- parentElem.LastChild.AppendChild (xe);
- }
- #endif
- #region CTOR
- protected TemplatedControl() : base(){}
- public TemplatedControl (Interface iface) : base(iface){}
- #endregion
-
- string _template;
- string caption;
-
- /// <summary>
- /// Template path
- /// </summary>
- //TODO: this property should be renamed 'TemplatePath'
- [DefaultValue(null)]
- public string Template {
- get { return _template; }
- set {
- if (Template == value)
- return;
- _template = value;
-
- if (string.IsNullOrEmpty(_template))
- loadTemplate ();
- else
- loadTemplate (IFace.Load (_template));
- }
- }
- /// <summary>
- /// a caption being recurrent need in templated widget, it is declared here.
- /// </summary>
- [DefaultValue("Templated Control")]
- public virtual string Caption {
- get { return caption; }
- set {
- if (caption == value)
- return;
- caption = value;
- NotifyValueChanged ("Caption", caption);
- }
- }
-
- #region GraphicObject overrides
-
- public override void Initialize ()
- {
- loadTemplate ();
- base.Initialize ();
- }
- /// <summary>
- /// override search method from GraphicObject to prevent
- /// searching inside template
- /// </summary>
- /// <returns>widget identified by name, or null if not found</returns>
- /// <param name="nameToFind">widget's name to find</param>
- public override GraphicObject FindByName (string nameToFind)
- {
- //prevent name searching in template
- return nameToFind == this.Name ? this : null;
- }
- /// <summary>
- ///onDraw is overrided to prevent default drawing of background, template top container
- ///may have a binding to root background or a fixed one.
- ///this allow applying root background to random template's component
- /// </summary>
- /// <param name="gr">Backend context</param>
- protected override void onDraw (Context gr)
- {
- gr.Save ();
-
- if (ClipToClientRect) {
- //clip to client zone
- CairoHelpers.CairoRectangle (gr, ClientRectangle, CornerRadius);
- gr.Clip ();
- }
-
- if (child != null)
- child.Paint (ref gr);
- gr.Restore ();
- }
- #endregion
-
- /// <summary>
- /// Loads the template.
- /// </summary>
- /// <param name="template">Optional template instance</param>
- protected virtual void loadTemplate(GraphicObject template = null)
- {
- if (this.child != null)//template change, bindings has to be reset
- this.ClearTemplateBinding();
-
- if (template == null) {
- if (!IFace.DefaultTemplates.ContainsKey (this.GetType ().FullName))
- throw new Exception (string.Format ("No default template found for '{0}'", this.GetType ().FullName));
- this.SetChild (IFace.Load (IFace.DefaultTemplates[this.GetType ().FullName]));
- }else
- this.SetChild (template);
- }
- }
-}
-