Example #1
0
 public ShapeTemplate(ShapeTemplate shapeTemplate)
   : this(shapeTemplate.Name, shapeTemplate.PropertiesFilepath)
 {
   this.Backgroud = shapeTemplate.Backgroud;
   this.Color = shapeTemplate.Color;
   this.EditableColor = shapeTemplate.EditableColor;
 }
Example #2
0
    private static void LoadBaseTemplate(DataElement node, ShapeTemplate template)
    {
      string colorStr = node.GetAttribValue("color");
      string backgroudStr = node.GetAttribValue("background");
      template.Color = Color.FromArgb(int.Parse(colorStr));
      template.Backgroud = bool.Parse(backgroudStr);

      string editableColorStr = node.GetAttribValue("editable_color");
      if(editableColorStr != null)
      {
        template.EditableColor = bool.Parse(editableColorStr);
      }
      
      DataElement circlesEl = node.GetChild("circles");
      List<ShapeCircle> allCircles = template.RootCircle.AllCircles;
      int index = 0;
      foreach(DataElement circleEl in circlesEl.CollectChildren("circle"))
      {
        string positionStr = circleEl.GetAttribValue("position");
        string radiusStr = circleEl.GetAttribValue("radius");
        string angleStr = circleEl.GetAttribValue("angle");
        ShapeCircle circle = allCircles[index];
        circle.Position = Vector2f.Parse(positionStr);
        circle.Radius = float.Parse(radiusStr);
        circle.Angle = float.Parse(angleStr);
        ++index;
      }
      
      DataElement circlesSettingsEl = node.GetChild("circles_settings");
      index = 0;
      foreach(DataElement circleSettingsEl in circlesSettingsEl.CollectChildren("settings"))
      {
        ShapeTemplate.ShapeCircleSettings settings = template.PerCircleSettings[index];
        string enableOffsetStr = circleSettingsEl.GetAttribValue("enable_offset");
        string enableRotateStr = circleSettingsEl.GetAttribValue("enable_rotate");
        settings.EnableOffset = bool.Parse(enableOffsetStr);
        settings.EnableRotate = bool.Parse(enableRotateStr);
        ++index;
      }
    }
Example #3
0
 private static void SaveBaseTemplate(DataElement node, string folder, ShapeTemplate template)
 {
   node.CreateAttribute("name", template.Name);
   node.CreateAttribute("color", template.Color.ToArgb().ToString());
   node.CreateAttribute("editable_color", template.EditableColor.ToString());
   node.CreateAttribute("background", template.Backgroud.ToString());
   DataElement circlesEl = node.CreateChild("circles");
   foreach(ShapeCircle circle in template.RootCircle.AllCircles)
   {
     DataElement circleEl = circlesEl.CreateChild("circle");
     circleEl.CreateAttribute("position", circle.Position.ToString());
     circleEl.CreateAttribute("radius", circle.Radius.ToString());
     circleEl.CreateAttribute("angle", circle.Angle.ToString());
   }
   
   DataElement circlesSettingsEl = node.CreateChild("circles_settings");
   foreach(ShapeTemplate.ShapeCircleSettings settings in template.PerCircleSettings)
   {
     DataElement circleSettingsEl = circlesSettingsEl.CreateChild("settings");
     circleSettingsEl.CreateAttribute("enable_offset", settings.EnableOffset.ToString());
     circleSettingsEl.CreateAttribute("enable_rotate", settings.EnableRotate.ToString());
   }
   
   if(!string.IsNullOrEmpty(template.PropertiesFilepath))
   {
     string relPropertiesFilepath = DirMethods.EvaluateRelativePath(folder, template.PropertiesFilepath);
     node.CreateAttribute("rel_properties_filepath", relPropertiesFilepath);
   }
 }
Example #4
0
 private void HandleTemplateChanged(ShapeTemplate sender)
 {
   InvalidateView();
 }
 private void OnActiveTemplateChanged(IEditor sender, ShapeTemplate previous)
 {
   if(previous != null)
   {
     TreeNodeEx node = this.TemplatesNode.Nodes.FindFirstByText(previous.Name);
     node.BackColor = node.BackDefaultColor;
   }
   
   if(this.ActiveTemplate != null)
   {
     TreeNodeEx node = this.TemplatesNode.Nodes.FindFirstByText(this.ActiveTemplate.Name);
     node.Select();
     node.BackColor = Color.Yellow;
   }
   else
   {
     m_TemplatesTreeView.SelectedNode = null;
   }
 }
 private void OnTemplateRemoved(ShapeTemplatesSet sender, ShapeTemplate template)
 {
   TreeNodeEx node = this.TemplatesNode.Nodes.FindFirstByText(template.Name);
   node.Remove();
 }
 private void OnTemplateAdded(ShapeTemplatesSet sender, ShapeTemplate template)
 {
   this.TemplatesNode.Nodes.Add(template.Name, template);
   if(this.SelectTemplateOnCreate)
   {
     this.ActiveTemplate = template;
   }
 }
Example #8
0
 protected ShapeCircle CloneRootCircle(ShapeTemplate owner, ISceneView sceneView)
 {
   ShapeCircle clone = new ShapeCircle(owner, this.RootCircle.Transform.Clone(), sceneView);
   foreach(ShapeCircle circle in this.RootCircle.Children)
   {
     CloneCircle(circle, clone);
   }
   
   return clone;
 }
Example #9
0
 protected ShapeCircle CloneRootCircle(ShapeTemplate owner)
 {
   return CloneRootCircle(owner, this.RootCircle.SceneView);
 }
 private void RemoveTemplate(ShapeTemplate template)
 {
   ReplaceTemplate(template, null);
 }
 private void ReplaceTemplate(ShapeTemplate template, ShapeTemplate newTemplate)
 {
   m_TemplatesListBox.Objects.Replace(template, newTemplate);
   if(this.Templates.Contains(template))
   {
     m_OldNewTemplateMap[template] = newTemplate;
   }
   else
   {
     foreach(KeyValuePair<ShapeTemplate, ShapeTemplate> kvp in m_OldNewTemplateMap)
     {
       if(kvp.Value == template)
       {
         m_OldNewTemplateMap[kvp.Key] = newTemplate;
         break;
       }
     }
   }
 }
 private void AddTemplate(ShapeTemplate template)
 {
   m_TemplatesListBox.Items.Add(template.Name, template);
   this.Template = template;
 }
 private bool RenameShapeTemplate(ShapeTemplate shapeTemplate, string name)
 {
   CheckValueCorrectnessDelegate checker = CreateTemplateNameChecker(shapeTemplate.Name);
   if(checker(name) == null)
   {
     shapeTemplate.Name = name;
     if(this.Template == shapeTemplate)
     {
       m_NameTextBox.Text = name;
       m_TemplatesListBox.SelectedItem.Text = name;
     }
     
     return true;
   }
   
   return false;
 }
Example #14
0
 private void OnActiveTemplateChanged(IEditor sender, ShapeTemplate previous)
 {
   Invalidate();
   if(this.ActiveTemplate != null)
   {
     this.SelectedShape = null;
   }
 }