public void SetSize(IList <IVisio.Shape> target_shapes, double?w, double?h) { this.Client.Application.AssertApplicationAvailable(); this.Client.Document.AssertDocumentAvailable(); var shapes = this.GetTargetShapes(target_shapes); if (shapes.Count < 1) { return; } var shapeids = shapes.Select(s => s.ID).ToList(); var update = new ShapeSheet.Update(); foreach (int shapeid in shapeids) { if (w.HasValue && w.Value >= 0) { update.SetFormula((short)shapeid, ShapeSheet.SRCConstants.Width, w.Value); } if (h.HasValue && h.Value >= 0) { update.SetFormula((short)shapeid, ShapeSheet.SRCConstants.Height, h.Value); } } var application = this.Client.Application.Get(); using (var undoscope = this.Client.Application.NewUndoScope("Set Shape Size")) { var active_page = application.ActivePage; update.Execute(active_page); } }
public void PasteFormat(IVisio.Page page, IList <int> shapeids, FormatCategory category, bool applyformulas) { var update = new ShapeSheet.Update(); foreach (var shape_id in shapeids) { foreach (var cellrec in this.Cells) { if (!cellrec.MatchesCategory(category)) { continue; } var sidsrc = new ShapeSheet.SIDSRC((short)shape_id, cellrec.SRC); if (applyformulas) { update.SetFormula(sidsrc, cellrec.Formula); } else { if (cellrec.Result != null) { update.SetFormula(sidsrc, cellrec.Result); } } } } update.Execute(page); }
public static void SetTabStops(IVisio.Shape shape, IList <TabStop> stops) { if (shape == null) { throw new System.ArgumentNullException(nameof(shape)); } if (stops == null) { throw new System.ArgumentNullException(nameof(stops)); } TextFormat.ClearTabStops(shape); if (stops.Count < 1) { return; } const short row = 0; var invariant_culture = System.Globalization.CultureInfo.InvariantCulture; var vis_tab_stop_count = (short)IVisio.VisCellIndices.visTabStopCount; var tabstopcountcell = shape.CellsSRC[TextFormat.tab_section, row, vis_tab_stop_count]; tabstopcountcell.FormulaU = stops.Count.ToString(invariant_culture); // set the number of tab stobs allowed for the shape var tagtab = TextFormat.GetTabTagForStops(stops.Count); shape.RowType[TextFormat.tab_section, (short)IVisio.VisRowIndices.visRowTab] = (short)tagtab; // add tab properties for each stop var update = new ShapeSheet.Update(); for (int stop_index = 0; stop_index < stops.Count; stop_index++) { int i = stop_index * 3; var alignment = ((int)stops[stop_index].Alignment).ToString(invariant_culture); var position = ((int)stops[stop_index].Position).ToString(invariant_culture); var src_tabpos = new ShapeSheet.SRC(TextFormat.tab_section, row, (short)(i + 1)); var src_tabalign = new ShapeSheet.SRC(TextFormat.tab_section, row, (short)(i + 2)); var src_tabother = new ShapeSheet.SRC(TextFormat.tab_section, row, (short)(i + 3)); update.SetFormula(src_tabpos, position); // tab position update.SetFormula(src_tabalign, alignment); // tab alignment update.SetFormula(src_tabother, "0"); // tab unknown } update.Execute(shape); }
public static void Set(IVisio.Shape shape, string name, ShapeSheet.FormulaLiteral value, ShapeSheet.FormulaLiteral prompt) { if (shape == null) { throw new System.ArgumentNullException(nameof(shape)); } UserDefinedCellsHelper.CheckValidName(name); if (UserDefinedCellsHelper.Contains(shape, name)) { string full_prop_name = UserDefinedCellsHelper.GetRowName(name); if (value.HasValue) { string value_cell_name = full_prop_name; var cell = shape.CellsU[value_cell_name]; cell.FormulaU = value.Encode(); } if (prompt.HasValue) { string prompt_cell_name = full_prop_name + ".Prompt"; var cell = shape.CellsU[prompt_cell_name]; cell.FormulaU = prompt.Encode(); } return; } short row = shape.AddNamedRow( UserDefinedCellsHelper._userdefinedcell_section, name, (short)IVisio.VisRowIndices.visRowUser); var update = new ShapeSheet.Update(); if (value.HasValue) { var src = new ShapeSheet.SRC(UserDefinedCellsHelper._userdefinedcell_section, row, (short)IVisio.VisCellIndices.visUserValue); update.SetFormula(src, value.Encode()); } if (prompt.HasValue) { var src = new ShapeSheet.SRC(UserDefinedCellsHelper._userdefinedcell_section, row, (short)IVisio.VisCellIndices.visUserPrompt); update.SetFormula(src, prompt.Encode()); } update.Execute(shape); }
/// <summary> /// Remove all tab stops on the shape /// </summary> /// <param name="shape"></param> private static void ClearTabStops(IVisio.Shape shape) { if (shape == null) { throw new System.ArgumentNullException(nameof(shape)); } int num_existing_tabstops = TextFormat.GetTabStopCount(shape); if (num_existing_tabstops < 1) { return; } var cell_tabstopcount = shape.CellsSRC[TextFormat.src_tabstopcount.Section, TextFormat.src_tabstopcount.Row, TextFormat.src_tabstopcount.Cell]; cell_tabstopcount.FormulaForce = "0"; const string formula = "0"; var update = new ShapeSheet.Update(); for (int i = 1; i < num_existing_tabstops * 3; i++) { var src = new ShapeSheet.SRC(TextFormat.tab_section, (short)IVisio.VisRowIndices.visRowTab, (short)i); update.SetFormula(src, formula); } update.Execute(shape); }
public void SetSize(Drawing.Size new_size) { this.Client.Application.AssertApplicationAvailable(); this.Client.Document.AssertDocumentAvailable(); var application = this.Client.Application.Get(); using (var undoscope = this.Client.Application.NewUndoScope("Set Page Size")) { var active_page = application.ActivePage; var page_sheet = active_page.PageSheet; var update = new ShapeSheet.Update(2); update.SetFormula(ShapeSheet.SRCConstants.PageWidth, new_size.Width); update.SetFormula(ShapeSheet.SRCConstants.PageHeight, new_size.Height); update.Execute(page_sheet); } }
public void FitShapeToText(IList <IVisio.Shape> target_shapes) { this.Client.Application.AssertApplicationAvailable(); this.Client.Document.AssertDocumentAvailable(); var shapes = this.GetTargetShapes2D(target_shapes); if (shapes.Count < 1) { return; } var application = this.Client.Application.Get(); var active_page = application.ActivePage; var shapeids = shapes.Select(s => s.ID).ToList(); using (var undoscope = this.Client.Application.NewUndoScope("FitShapeToText")) { // Calculate the new sizes for each shape var new_sizes = new List <Drawing.Size>(shapeids.Count); foreach (var shape in shapes) { var text_bounding_box = shape.GetBoundingBox(Microsoft.Office.Interop.Visio.VisBoundingBoxArgs.visBBoxUprightText).Size; var wh_bounding_box = shape.GetBoundingBox(Microsoft.Office.Interop.Visio.VisBoundingBoxArgs.visBBoxUprightWH).Size; double max_w = System.Math.Max(text_bounding_box.Width, wh_bounding_box.Width); double max_h = System.Math.Max(text_bounding_box.Height, wh_bounding_box.Height); var max_size = new Drawing.Size(max_w, max_h); new_sizes.Add(max_size); } var src_width = ShapeSheet.SRCConstants.Width; var src_height = ShapeSheet.SRCConstants.Height; var update = new ShapeSheet.Update(); for (int i = 0; i < new_sizes.Count; i++) { var shapeid = shapeids[i]; var new_size = new_sizes[i]; update.SetFormula((short)shapeid, src_width, new_size.Width); update.SetFormula((short)shapeid, src_height, new_size.Height); } update.Execute(active_page); } }
public void SetOrientation(Pages.PrintPageOrientation orientation) { this.Client.Application.AssertApplicationAvailable(); this.Client.Document.AssertDocumentAvailable(); var app = this.Client.Application.Get(); var application = app; var active_page = application.ActivePage; if (orientation != Pages.PrintPageOrientation.Landscape && orientation != Pages.PrintPageOrientation.Portrait) { throw new System.ArgumentOutOfRangeException(nameof(orientation), "must be either Portrait or Landscape"); } var old_orientation = PageCommands.GetOrientation(active_page); if (old_orientation == orientation) { // don't need to do anything return; } var old_size = this.GetSize(); double new_height = old_size.Width; double new_width = old_size.Height; var update = new ShapeSheet.Update(3); update.SetFormula(ShapeSheet.SRCConstants.PageWidth, new_width); update.SetFormula(ShapeSheet.SRCConstants.PageHeight, new_height); update.SetFormula(ShapeSheet.SRCConstants.PrintPageOrientation, (int)orientation); using (var undoscope = this.Client.Application.NewUndoScope("Set Page Orientation")) { update.Execute(active_page.PageSheet); } }
public void PasteSize(IList <IVisio.Shape> target_shapes, bool paste_width, bool paste_height) { this.Client.Application.AssertApplicationAvailable(); this.Client.Document.AssertDocumentAvailable(); var shapes = this.GetTargetShapes(target_shapes); if (shapes.Count < 1) { return; } if ((!this.cached_size_width.HasValue) && (!this.cached_size_height.HasValue)) { return; } var update = new ShapeSheet.Update(); var shapeids = shapes.Select(s => s.ID).ToList(); foreach (var shapeid in shapeids) { if (paste_width) { update.SetFormula((short)shapeid, ShapeSheet.SRCConstants.Width, this.cached_size_width.Value); } if (paste_height) { update.SetFormula((short)shapeid, ShapeSheet.SRCConstants.Height, this.cached_size_height.Value); } } var application = this.Client.Application.Get(); var active_page = application.ActivePage; update.Execute(active_page); }
public void MoveTextToBottom(IList <IVisio.Shape> target_shapes) { this.Client.Application.AssertApplicationAvailable(); this.Client.Document.AssertDocumentAvailable(); var shapes = this.GetTargetShapes(target_shapes); if (shapes.Count < 1) { return; } var update = new ShapeSheet.Update(); foreach (var shape in shapes) { if (0 == shape.RowExists[ (short)IVisio.VisSectionIndices.visSectionObject, (short)IVisio.VisRowIndices.visRowTextXForm, (short)IVisio.VisExistsFlags.visExistsAnywhere]) { shape.AddRow((short)IVisio.VisSectionIndices.visSectionObject, (short)IVisio.VisRowIndices.visRowTextXForm, (short)IVisio.VisRowTags.visTagDefault); } } var application = this.Client.Application.Get(); var shapeids = shapes.Select(s => s.ID); foreach (int shapeid in shapeids) { update.SetFormula((short)shapeid, ShapeSheet.SRCConstants.TxtHeight, "Height*0"); update.SetFormula((short)shapeid, ShapeSheet.SRCConstants.TxtPinY, "Height*0"); update.SetFormula((short)shapeid, ShapeSheet.SRCConstants.VerticalAlign, "0"); } var active_page = application.ActivePage; update.Execute(active_page); }
public static void Set(IVisio.Shape shape, string name, ShapeSheet.FormulaLiteral value, ShapeSheet.FormulaLiteral prompt) { if (shape == null) { throw new System.ArgumentNullException(nameof(shape)); } UserDefinedCellsHelper.CheckValidName(name); if (UserDefinedCellsHelper.Contains(shape, name)) { string full_prop_name = UserDefinedCellsHelper.GetRowName(name); if (value.HasValue) { string value_cell_name = full_prop_name; var cell = shape.CellsU[value_cell_name]; cell.FormulaU = value.Encode(); } if (prompt.HasValue) { string prompt_cell_name = full_prop_name+".Prompt"; var cell = shape.CellsU[prompt_cell_name]; cell.FormulaU = prompt.Encode(); } return; } short row = shape.AddNamedRow( UserDefinedCellsHelper._userdefinedcell_section, name, (short)IVisio.VisRowIndices.visRowUser); var update = new ShapeSheet.Update(); if (value.HasValue) { var src = new ShapeSheet.SRC(UserDefinedCellsHelper._userdefinedcell_section, row, (short)IVisio.VisCellIndices.visUserValue); update.SetFormula(src, value.Encode()); } if (prompt.HasValue) { var src = new ShapeSheet.SRC(UserDefinedCellsHelper._userdefinedcell_section, row, (short)IVisio.VisCellIndices.visUserPrompt); update.SetFormula(src, prompt.Encode()); } update.Execute(shape); }
public void ResetOrigin(IVisio.Page page) { this.Client.Application.AssertApplicationAvailable(); this.Client.Document.AssertDocumentAvailable(); var application = this.Client.Application.Get(); if (page == null) { page = application.ActivePage; } var update = new ShapeSheet.Update(); update.SetFormula(ShapeSheet.SRCConstants.XGridOrigin, "0.0"); update.SetFormula(ShapeSheet.SRCConstants.YGridOrigin, "0.0"); update.SetFormula(ShapeSheet.SRCConstants.XRulerOrigin, "0.0"); update.SetFormula(ShapeSheet.SRCConstants.YRulerOrigin, "0.0"); using (var undoscope = this.Client.Application.NewUndoScope("Reset Page Origin")) { update.Execute(page.PageSheet); } }
public static void set_text_wrapping(IVisio.Page page, IList<int> shapeids, bool wrap) { const string formula_wrap = "WIDTH*1"; const string formula_no_wrap = "TEXTWIDTH(TheText)"; string formula = wrap ? formula_wrap : formula_no_wrap; var update = new ShapeSheet.Update(); foreach (int shapeid in shapeids) { update.SetFormula((short)shapeid, ShapeSheet.SRCConstants.TxtWidth, formula); } update.Execute(page); }
public static void set_text_wrapping(IVisio.Page page, IList <int> shapeids, bool wrap) { const string formula_wrap = "WIDTH*1"; const string formula_no_wrap = "TEXTWIDTH(TheText)"; string formula = wrap ? formula_wrap : formula_no_wrap; var update = new ShapeSheet.Update(); foreach (int shapeid in shapeids) { update.SetFormula((short)shapeid, ShapeSheet.SRCConstants.TxtWidth, formula); } update.Execute(page); }
public void PasteFormat(IVisio.Page page, IList<int> shapeids, FormatCategory category, bool applyformulas) { var update = new ShapeSheet.Update(); foreach (var shape_id in shapeids) { foreach (var cellrec in this.Cells) { if (!cellrec.MatchesCategory(category)) { continue; } var sidsrc = new ShapeSheet.SIDSRC((short)shape_id, cellrec.SRC); if (applyformulas) { update.SetFormula(sidsrc, cellrec.Formula); } else { if (cellrec.Result != null) { update.SetFormula(sidsrc, cellrec.Result); } } } } update.Execute(page); }
public void MoveTextToBottom(IList<IVisio.Shape> target_shapes) { this.Client.Application.AssertApplicationAvailable(); this.Client.Document.AssertDocumentAvailable(); var shapes = this.GetTargetShapes(target_shapes); if (shapes.Count < 1) { return ; } var update = new ShapeSheet.Update(); foreach (var shape in shapes) { if (0 == shape.RowExists[ (short) IVisio.VisSectionIndices.visSectionObject, (short) IVisio.VisRowIndices.visRowTextXForm, (short) IVisio.VisExistsFlags.visExistsAnywhere]) { shape.AddRow((short)IVisio.VisSectionIndices.visSectionObject, (short)IVisio.VisRowIndices.visRowTextXForm, (short)IVisio.VisRowTags.visTagDefault); } } var application = this.Client.Application.Get(); var shapeids = shapes.Select(s=>s.ID); foreach (int shapeid in shapeids) { update.SetFormula((short)shapeid, ShapeSheet.SRCConstants.TxtHeight, "Height*0"); update.SetFormula((short)shapeid, ShapeSheet.SRCConstants.TxtPinY, "Height*0"); update.SetFormula((short)shapeid, ShapeSheet.SRCConstants.VerticalAlign, "0"); } var active_page = application.ActivePage; update.Execute(active_page); }
/// <summary> /// Remove all tab stops on the shape /// </summary> /// <param name="shape"></param> private static void ClearTabStops(IVisio.Shape shape) { if (shape == null) { throw new System.ArgumentNullException(nameof(shape)); } int num_existing_tabstops = TextFormat.GetTabStopCount(shape); if (num_existing_tabstops < 1) { return; } var cell_tabstopcount = shape.CellsSRC[TextFormat.src_tabstopcount.Section, TextFormat.src_tabstopcount.Row, TextFormat.src_tabstopcount.Cell]; cell_tabstopcount.FormulaForce = "0"; const string formula = "0"; var update = new ShapeSheet.Update(); for (int i = 1; i < num_existing_tabstops * 3; i++) { var src = new ShapeSheet.SRC(TextFormat.tab_section, (short)IVisio.VisRowIndices.visRowTab, (short)i); update.SetFormula(src, formula); } update.Execute(shape); }
public static void SetTabStops(IVisio.Shape shape, IList<TabStop> stops) { if (shape == null) { throw new System.ArgumentNullException(nameof(shape)); } if (stops == null) { throw new System.ArgumentNullException(nameof(stops)); } TextFormat.ClearTabStops(shape); if (stops.Count < 1) { return; } const short row = 0; var invariant_culture = System.Globalization.CultureInfo.InvariantCulture; var vis_tab_stop_count = (short)IVisio.VisCellIndices.visTabStopCount; var tabstopcountcell = shape.CellsSRC[TextFormat.tab_section, row, vis_tab_stop_count]; tabstopcountcell.FormulaU = stops.Count.ToString(invariant_culture); // set the number of tab stobs allowed for the shape var tagtab = TextFormat.GetTabTagForStops(stops.Count); shape.RowType[TextFormat.tab_section, (short)IVisio.VisRowIndices.visRowTab] = (short)tagtab; // add tab properties for each stop var update = new ShapeSheet.Update(); for (int stop_index = 0; stop_index < stops.Count; stop_index++) { int i = stop_index * 3; var alignment = ((int)stops[stop_index].Alignment).ToString(invariant_culture); var position = ((int)stops[stop_index].Position).ToString(invariant_culture); var src_tabpos = new ShapeSheet.SRC(TextFormat.tab_section, row, (short)(i + 1)); var src_tabalign = new ShapeSheet.SRC(TextFormat.tab_section, row, (short)(i + 2)); var src_tabother = new ShapeSheet.SRC(TextFormat.tab_section, row, (short)(i + 3)); update.SetFormula(src_tabpos, position); // tab position update.SetFormula(src_tabalign, alignment); // tab alignment update.SetFormula(src_tabother, "0"); // tab unknown } update.Execute(shape); }
public void SetSize(Drawing.Size new_size) { this.Client.Application.AssertApplicationAvailable(); this.Client.Document.AssertDocumentAvailable(); var application = this.Client.Application.Get(); using (var undoscope = this.Client.Application.NewUndoScope("Set Page Size")) { var active_page = application.ActivePage; var page_sheet = active_page.PageSheet; var update = new ShapeSheet.Update(2); update.SetFormula(ShapeSheet.SRCConstants.PageWidth, new_size.Width); update.SetFormula(ShapeSheet.SRCConstants.PageHeight, new_size.Height); update.Execute(page_sheet); } }
public void ResetOrigin(IVisio.Page page) { this.Client.Application.AssertApplicationAvailable(); this.Client.Document.AssertDocumentAvailable(); var application = this.Client.Application.Get(); if (page == null) { page = application.ActivePage; } var update = new ShapeSheet.Update(); update.SetFormula(ShapeSheet.SRCConstants.XGridOrigin, "0.0"); update.SetFormula(ShapeSheet.SRCConstants.YGridOrigin, "0.0"); update.SetFormula(ShapeSheet.SRCConstants.XRulerOrigin, "0.0"); update.SetFormula(ShapeSheet.SRCConstants.YRulerOrigin, "0.0"); using (var undoscope = this.Client.Application.NewUndoScope("Reset Page Origin")) { update.Execute(page.PageSheet); } }
public void SetOrientation(Pages.PrintPageOrientation orientation) { this.Client.Application.AssertApplicationAvailable(); this.Client.Document.AssertDocumentAvailable(); var app = this.Client.Application.Get(); var application = app; var active_page = application.ActivePage; if (orientation != Pages.PrintPageOrientation.Landscape && orientation != Pages.PrintPageOrientation.Portrait) { throw new System.ArgumentOutOfRangeException(nameof(orientation), "must be either Portrait or Landscape"); } var old_orientation = PageCommands.GetOrientation(active_page); if (old_orientation == orientation) { // don't need to do anything return; } var old_size = this.GetSize(); double new_height = old_size.Width; double new_width = old_size.Height; var update = new ShapeSheet.Update(3); update.SetFormula(ShapeSheet.SRCConstants.PageWidth, new_width); update.SetFormula(ShapeSheet.SRCConstants.PageHeight, new_height); update.SetFormula(ShapeSheet.SRCConstants.PrintPageOrientation, (int)orientation); using (var undoscope = this.Client.Application.NewUndoScope("Set Page Orientation")) { update.Execute(active_page.PageSheet); } }
public void FitShapeToText(IList<IVisio.Shape> target_shapes) { this.Client.Application.AssertApplicationAvailable(); this.Client.Document.AssertDocumentAvailable(); var shapes = this.GetTargetShapes2D(target_shapes); if (shapes.Count < 1) { return; } var application = this.Client.Application.Get(); var active_page = application.ActivePage; var shapeids = shapes.Select(s => s.ID).ToList(); using (var undoscope = this.Client.Application.NewUndoScope("FitShapeToText")) { // Calculate the new sizes for each shape var new_sizes = new List<Drawing.Size>(shapeids.Count); foreach (var shape in shapes) { var text_bounding_box = shape.GetBoundingBox(Microsoft.Office.Interop.Visio.VisBoundingBoxArgs.visBBoxUprightText).Size; var wh_bounding_box = shape.GetBoundingBox(Microsoft.Office.Interop.Visio.VisBoundingBoxArgs.visBBoxUprightWH).Size; double max_w = System.Math.Max(text_bounding_box.Width, wh_bounding_box.Width); double max_h = System.Math.Max(text_bounding_box.Height, wh_bounding_box.Height); var max_size = new Drawing.Size(max_w, max_h); new_sizes.Add(max_size); } var src_width = ShapeSheet.SRCConstants.Width; var src_height = ShapeSheet.SRCConstants.Height; var update = new ShapeSheet.Update(); for (int i = 0; i < new_sizes.Count; i++) { var shapeid = shapeids[i]; var new_size = new_sizes[i]; update.SetFormula((short)shapeid, src_width, new_size.Width); update.SetFormula((short)shapeid, src_height, new_size.Height); } update.Execute(active_page); } }
public void SetFormula( IList <IVisio.Shape> target_shapes, IList <ShapeSheet.SRC> srcs, IList <string> formulas, IVisio.VisGetSetArgs flags) { this.Client.Application.AssertApplicationAvailable(); this.Client.Document.AssertDocumentAvailable(); var shapes = this.GetTargetShapes(target_shapes); if (shapes.Count < 1) { this.Client.WriteVerbose("SetFormula: Zero Shapes. Not performing Operation"); return; } if (srcs == null) { throw new System.ArgumentNullException(nameof(srcs)); } if (formulas == null) { throw new System.ArgumentNullException(nameof(formulas)); } if (formulas.Any(f => f == null)) { this.Client.WriteVerbose("SetFormula: One of the Input Formulas is a NULL value"); throw new System.ArgumentException("Formulas contains a null value"); } this.Client.WriteVerbose("SetFormula: src count= {0} and formula count = {1}", srcs.Count, formulas.Count); if (formulas.Count != srcs.Count) { string msg = $"SetFormula: Must have the same number of srcs ({srcs.Count}) and formulas ({formulas.Count})"; throw new System.ArgumentException(msg, nameof(formulas)); } var shapeids = shapes.Select(s => s.ID).ToList(); int num_formulas = formulas.Count; var update = new ShapeSheet.Update(shapes.Count * num_formulas); update.BlastGuards = ((short)flags & (short)IVisio.VisGetSetArgs.visSetBlastGuards) != 0; update.TestCircular = ((short)flags & (short)IVisio.VisGetSetArgs.visSetTestCircular) != 0; foreach (var shapeid in shapeids) { for (int i = 0; i < num_formulas; i++) { var src = srcs[i]; var formula = formulas[i]; update.SetFormula((short)shapeid, src, formula); } } var surface = this.Client.ShapeSheet.GetShapeSheetSurface(); var application = this.Client.Application.Get(); using (var undoscope = this.Client.Application.NewUndoScope("Set ShapeSheet Formulas")) { update.Execute(surface); } }
public void SetSize(IList<IVisio.Shape> target_shapes, double? w, double? h) { this.Client.Application.AssertApplicationAvailable(); this.Client.Document.AssertDocumentAvailable(); var shapes = this.GetTargetShapes(target_shapes); if (shapes.Count < 1) { return; } var shapeids = shapes.Select(s=>s.ID).ToList(); var update = new ShapeSheet.Update(); foreach (int shapeid in shapeids) { if (w.HasValue && w.Value>=0) { update.SetFormula((short)shapeid, ShapeSheet.SRCConstants.Width, w.Value); } if (h.HasValue && h.Value >= 0) { update.SetFormula((short)shapeid, ShapeSheet.SRCConstants.Height, h.Value); } } var application = this.Client.Application.Get(); using (var undoscope = this.Client.Application.NewUndoScope("Set Shape Size")) { var active_page = application.ActivePage; update.Execute(active_page); } }
public void PasteSize(IList<IVisio.Shape> target_shapes, bool paste_width, bool paste_height) { this.Client.Application.AssertApplicationAvailable(); this.Client.Document.AssertDocumentAvailable(); var shapes = this.GetTargetShapes(target_shapes); if (shapes.Count < 1) { return; } if ((!this.cached_size_width.HasValue) && (!this.cached_size_height.HasValue)) { return; } var update = new ShapeSheet.Update(); var shapeids = shapes.Select(s => s.ID).ToList(); foreach (var shapeid in shapeids) { if (paste_width) { update.SetFormula((short)shapeid, ShapeSheet.SRCConstants.Width, this.cached_size_width.Value); } if (paste_height) { update.SetFormula((short)shapeid, ShapeSheet.SRCConstants.Height, this.cached_size_height.Value); } } var application = this.Client.Application.Get(); var active_page = application.ActivePage; update.Execute(active_page); }