private void connect(IVisio.Shape a, IVisio.Shape b, bool a_arrow, bool b_arrow) { var page = a.ContainingPage; var connectors_stencil = page.Application.Documents.OpenStencil("connec_u.vss"); var connectors_masters = connectors_stencil.Masters; var dcm = connectors_masters["Dynamic Connector"]; var c1 = page.Drop(dcm, new VA.Drawing.Point(-2, -2)); VACXN.ConnectorHelper.ConnectShapes(a, b, c1); //a.AutoConnect(b, connect_dir_none, null); if (a_arrow || b_arrow) { var update = new VA.ShapeSheet.Update(); if (a_arrow) { update.SetFormula(c1.ID16, VA.ShapeSheet.SRCConstants.BeginArrow, "13"); } if (b_arrow) { update.SetFormula(c1.ID16, VA.ShapeSheet.SRCConstants.EndArrow, "13"); } update.Execute(page); } }
public void SetSize(IList <IVisio.Shape> target_shapes, double?w, double?h) { this.AssertApplicationAvailable(); this.AssertDocumentAvailable(); var shapes = GetTargetShapes(target_shapes); if (shapes.Count < 1) { return; } var shapeids = shapes.Select(s => s.ID).ToList(); var update = new VA.ShapeSheet.Update(); foreach (int shapeid in shapeids) { if (w.HasValue && w.Value >= 0) { update.SetFormula((short)shapeid, VA.ShapeSheet.SRCConstants.Width, w.Value); } if (h.HasValue && h.Value >= 0) { update.SetFormula((short)shapeid, VA.ShapeSheet.SRCConstants.Height, h.Value); } } var application = this.Client.VisioApplication; using (var undoscope = new VA.Application.UndoScope(this.Client.VisioApplication, "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 VA.ShapeSheet.Update(); foreach (var shape_id in shapeids) { foreach (var cellrec in this.Cells) { if (!cellrec.MatchesCategory(category)) { continue; } var sidsrc = new VA.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 Set(IVisio.Shape shape, string name, string value, string prompt) { if (shape == null) { throw new System.ArgumentNullException("shape"); } CheckValidName(name); if (Contains(shape, name)) { string full_prop_name = GetRowName(name); if (value != null) { string value_cell_name = full_prop_name; var cell = shape.CellsU[value_cell_name]; string value_formula = Convert.StringToFormulaString(value); cell.FormulaU = value_formula; } if (prompt != null) { string prompt_cell_name = full_prop_name + ".Prompt"; var cell = shape.CellsU[prompt_cell_name]; var prompt_formula = Convert.StringToFormulaString(prompt); cell.FormulaU = prompt_formula; } return; } short row = shape.AddNamedRow( _userdefinedcell_section, name, (short)IVisio.VisRowIndices.visRowUser); var update = new VA.ShapeSheet.Update(); if (value != null) { string value_formula = Convert.StringToFormulaString(value); var src = new VA.ShapeSheet.SRC(_userdefinedcell_section, row, (short)IVisio.VisCellIndices.visUserValue); update.SetFormula(src, value_formula); } if (prompt != null) { string prompt_formula = Convert.StringToFormulaString(prompt); var src = new VA.ShapeSheet.SRC(_userdefinedcell_section, row, (short)IVisio.VisCellIndices.visUserPrompt); update.SetFormula(src, prompt_formula); } update.Execute(shape); }
public static void SetTabStops(IVisio.Shape shape, IList <TabStop> stops) { if (shape == null) { throw new System.ArgumentNullException("shape"); } if (stops == null) { throw new System.ArgumentNullException("stops"); } 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[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 = GetTabTagForStops(stops.Count); shape.RowType[tab_section, (short)IVisio.VisRowIndices.visRowTab] = (short)tagtab; // add tab properties for each stop var update = new VA.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 VA.ShapeSheet.SRC(tab_section, row, (short)(i + 1)); var src_tabalign = new VA.ShapeSheet.SRC(tab_section, row, (short)(i + 2)); var src_tabother = new VA.ShapeSheet.SRC(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 SetPageSize(IVisio.Page page, VA.Drawing.Size size) { if (page == null) { throw new System.ArgumentNullException("page"); } var page_sheet = page.PageSheet; var update = new VA.ShapeSheet.Update(2); update.SetFormula(VA.ShapeSheet.SRCConstants.PageWidth, size.Width); update.SetFormula(VA.ShapeSheet.SRCConstants.PageHeight, size.Height); update.Execute(page_sheet); }
/// <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("shape"); } int num_existing_tabstops = GetTabStopCount(shape); if (num_existing_tabstops < 1) { return; } var cell_tabstopcount = shape.CellsSRC[src_tabstopcount.Section, src_tabstopcount.Row, src_tabstopcount.Cell]; cell_tabstopcount.FormulaForce = "0"; const string formula = "0"; var update = new VA.ShapeSheet.Update(); for (int i = 1; i < num_existing_tabstops * 3; i++) { var src = new VA.ShapeSheet.SRC(tab_section, (short)IVisio.VisRowIndices.visRowTab, (short)i); update.SetFormula(src, formula); } update.Execute(shape); }
public void SetSize(VA.Drawing.Size new_size) { this.AssertApplicationAvailable(); this.AssertDocumentAvailable(); var application = this.Client.VisioApplication; using (var undoscope = new VA.Application.UndoScope(this.Client.VisioApplication, "Set Page Size")) { var active_page = application.ActivePage; var page_sheet = active_page.PageSheet; var update = new VA.ShapeSheet.Update(2); update.SetFormula(VA.ShapeSheet.SRCConstants.PageWidth, new_size.Width); update.SetFormula(VA.ShapeSheet.SRCConstants.PageHeight, new_size.Height); update.Execute(page_sheet); } }
public static void FitShapeToText(IVisio.Page page, IEnumerable <IVisio.Shape> shapes) { if (page == null) { throw new System.ArgumentNullException("page"); } if (shapes == null) { throw new System.ArgumentNullException("shapes"); } var shapeids = shapes.Select(s => s.ID).ToList(); // Calculate the new sizes for each shape var new_sizes = new List <VA.Drawing.Size>(shapeids.Count); foreach (var shape in shapes) { var text_bounding_box = shape.GetBoundingBox(IVisio.VisBoundingBoxArgs.visBBoxUprightText).Size; var wh_bounding_box = shape.GetBoundingBox(IVisio.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 VA.Drawing.Size(max_w, max_h); new_sizes.Add(max_size); } var src_width = VA.ShapeSheet.SRCConstants.Width; var src_height = VA.ShapeSheet.SRCConstants.Height; var update = new VA.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(page); }
public void PasteSize(IList <IVisio.Shape> target_shapes, bool paste_width, bool paste_height) { this.AssertApplicationAvailable(); this.AssertDocumentAvailable(); var shapes = this.GetTargetShapes(target_shapes); if (shapes.Count < 1) { return; } if ((!cached_size_width.HasValue) && (!cached_size_height.HasValue)) { return; } var update = new VA.ShapeSheet.Update(); var shapeids = shapes.Select(s => s.ID).ToList(); foreach (var shapeid in shapeids) { if (paste_width) { update.SetFormula((short)shapeid, VA.ShapeSheet.SRCConstants.Width, cached_size_width.Value); } if (paste_height) { update.SetFormula((short)shapeid, VA.ShapeSheet.SRCConstants.Height, cached_size_height.Value); } } var application = this.Client.VisioApplication; var active_page = application.ActivePage; update.Execute(active_page); }
public void MoveTextToBottom(IList <IVisio.Shape> target_shapes) { this.AssertApplicationAvailable(); this.AssertDocumentAvailable(); var shapes = GetTargetShapes(target_shapes); if (shapes.Count < 1) { return; } var update = new VA.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.VisioApplication; var shapeids = shapes.Select(s => s.ID); foreach (int shapeid in shapeids) { update.SetFormula((short)shapeid, VA.ShapeSheet.SRCConstants.TxtHeight, "Height*0"); update.SetFormula((short)shapeid, VA.ShapeSheet.SRCConstants.TxtPinY, "Height*0"); update.SetFormula((short)shapeid, VA.ShapeSheet.SRCConstants.VerticalAlign, "0"); } var active_page = application.ActivePage; update.Execute(active_page); }
public void SetOrientation(VA.Pages.PrintPageOrientation orientation) { this.AssertApplicationAvailable(); this.AssertDocumentAvailable(); var application = this.Client.VisioApplication; var active_page = application.ActivePage; if (orientation != VA.Pages.PrintPageOrientation.Landscape && orientation != VA.Pages.PrintPageOrientation.Portrait) { throw new System.ArgumentOutOfRangeException("orientation", "must be either Portrait or Landscape"); } var old_orientation = 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 VA.ShapeSheet.Update(3); update.SetFormula(VA.ShapeSheet.SRCConstants.PageWidth, new_width); update.SetFormula(VA.ShapeSheet.SRCConstants.PageHeight, new_height); update.SetFormula(VA.ShapeSheet.SRCConstants.PrintPageOrientation, (int)orientation); using (var undoscope = new VA.Application.UndoScope(this.Client.VisioApplication, "Set Page Orientation")) { update.Execute(active_page.PageSheet); } }
public void ResetOrigin(IVisio.Page page) { this.AssertApplicationAvailable(); this.AssertDocumentAvailable(); var application = this.Client.VisioApplication; if (page == null) { page = application.ActivePage; } var update = new VA.ShapeSheet.Update(); update.SetFormula(VA.ShapeSheet.SRCConstants.XGridOrigin, "0.0"); update.SetFormula(VA.ShapeSheet.SRCConstants.YGridOrigin, "0.0"); update.SetFormula(VA.ShapeSheet.SRCConstants.XRulerOrigin, "0.0"); update.SetFormula(VA.ShapeSheet.SRCConstants.YRulerOrigin, "0.0"); using (var undoscope = new VA.Application.UndoScope(this.Client.VisioApplication, "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 VA.ShapeSheet.Update(); foreach (int shapeid in shapeids) { update.SetFormula((short)shapeid, VA.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 VA.ShapeSheet.Update(); foreach (int shapeid in shapeids) { update.SetFormula((short)shapeid, VA.ShapeSheet.SRCConstants.TxtWidth, formula); } update.Execute(page); }
public void CheckHomogenousUpdates_FormulasResults() { var update1 = new VA.ShapeSheet.Update(); update1.SetResult(src_pinx, 5.0, IVisio.VisUnitCodes.visNumber); bool caught1 = false; try { update1.SetFormula(src_pinx, "5.0"); } catch (VA.AutomationException) { caught1 = true; } if (!caught1) { Assert.Fail(); } }
public void CheckHomogenousUpdates_FormulasResults() { var update1 = new VA.ShapeSheet.Update(); update1.SetResult(ShapeSheet_Update_Tests.src_pinx, 5.0, IVisio.VisUnitCodes.visNumber); bool caught1 = false; try { update1.SetFormula(ShapeSheet_Update_Tests.src_pinx, "5.0"); } catch (VA.AutomationException) { caught1 = true; } if (!caught1) { Assert.Fail(); } }
public void ShapeSheet_Update_Formulas_MultipleShapes() { var page1 = this.GetNewPage(); var shape1 = page1.DrawRectangle(-1, -1, 0, 0); var shape2 = page1.DrawRectangle(-1, -1, 0, 0); var shape3 = page1.DrawRectangle(-1, -1, 0, 0); // Set the formulas var update = new VA.ShapeSheet.Update(); update.SetFormula(shape1.ID16, ShapeSheet_Update_Tests.src_pinx, 0.5); update.SetFormula(shape1.ID16, ShapeSheet_Update_Tests.src_piny, 0.5); update.SetFormula(shape2.ID16, ShapeSheet_Update_Tests.src_pinx, 1.5); update.SetFormula(shape2.ID16, ShapeSheet_Update_Tests.src_piny, 1.5); update.SetFormula(shape3.ID16, ShapeSheet_Update_Tests.src_pinx, 2.5); update.SetFormula(shape3.ID16, ShapeSheet_Update_Tests.src_piny, 2.5); update.Execute(page1); // Verify that the formulas were set var query = new VA.ShapeSheet.Query.CellQuery(); var col_pinx = query.AddCell(ShapeSheet_Update_Tests.src_pinx, "PinX"); var col_piny = query.AddCell(ShapeSheet_Update_Tests.src_piny, "PinY"); var shapeids = new[] { shape1.ID, shape2.ID, shape3.ID }; var rf = query.GetFormulas(page1, shapeids); var rr = query.GetResults <double>(page1, shapeids); AssertVA.AreEqual("0.5 in", 0.5, rf[0][col_pinx], rr[0][col_pinx]); AssertVA.AreEqual("0.5 in", 0.5, rf[0][col_piny], rr[0][col_piny]); AssertVA.AreEqual("1.5 in", 1.5, rf[1][col_pinx], rr[1][col_pinx]); AssertVA.AreEqual("1.5 in", 1.5, rf[1][col_piny], rr[1][col_piny]); AssertVA.AreEqual("2.5 in", 2.5, rf[2][col_pinx], rr[2][col_pinx]); AssertVA.AreEqual("2.5 in", 2.5, rf[2][col_piny], rr[2][col_piny]); page1.Delete(0); }
public void ShapeSheet_Update_Formulas_MultipleShapes() { var page1 = this.GetNewPage(); var shape1 = page1.DrawRectangle(-1, -1, 0, 0); var shape2 = page1.DrawRectangle(-1, -1, 0, 0); var shape3 = page1.DrawRectangle(-1, -1, 0, 0); // Set the formulas var update = new VA.ShapeSheet.Update(); update.SetFormula(shape1.ID16, ShapeSheet_Update_Tests.src_pinx, 0.5); update.SetFormula(shape1.ID16, ShapeSheet_Update_Tests.src_piny, 0.5); update.SetFormula(shape2.ID16, ShapeSheet_Update_Tests.src_pinx, 1.5); update.SetFormula(shape2.ID16, ShapeSheet_Update_Tests.src_piny, 1.5); update.SetFormula(shape3.ID16, ShapeSheet_Update_Tests.src_pinx, 2.5); update.SetFormula(shape3.ID16, ShapeSheet_Update_Tests.src_piny, 2.5); update.Execute(page1); // Verify that the formulas were set var query = new VA.ShapeSheet.Query.CellQuery(); var col_pinx = query.AddCell(ShapeSheet_Update_Tests.src_pinx, "PinX"); var col_piny = query.AddCell(ShapeSheet_Update_Tests.src_piny, "PinY"); var shapeids = new[] { shape1.ID, shape2.ID, shape3.ID }; var rf = query.GetFormulas(page1, shapeids); var rr = query.GetResults<double>(page1, shapeids); AssertVA.AreEqual("0.5 in", 0.5, rf[0][col_pinx], rr[0][col_pinx]); AssertVA.AreEqual("0.5 in", 0.5, rf[0][col_piny], rr[0][col_piny]); AssertVA.AreEqual("1.5 in", 1.5, rf[1][col_pinx], rr[1][col_pinx]); AssertVA.AreEqual("1.5 in", 1.5, rf[1][col_piny], rr[1][col_piny]); AssertVA.AreEqual("2.5 in", 2.5, rf[2][col_pinx], rr[2][col_pinx]); AssertVA.AreEqual("2.5 in", 2.5, rf[2][col_piny], rr[2][col_piny]); page1.Delete(0); }
public void PasteSize(IList<IVisio.Shape> target_shapes, bool paste_width, bool paste_height) { this.AssertApplicationAvailable(); this.AssertDocumentAvailable(); var shapes = this.GetTargetShapes(target_shapes); if (shapes.Count < 1) { return; } if ((!cached_size_width.HasValue) && (!cached_size_height.HasValue)) { return; } var update = new VA.ShapeSheet.Update(); var shapeids = shapes.Select(s => s.ID).ToList(); foreach (var shapeid in shapeids) { if (paste_width) { update.SetFormula((short)shapeid, VA.ShapeSheet.SRCConstants.Width, cached_size_width.Value); } if (paste_height) { update.SetFormula((short)shapeid, VA.ShapeSheet.SRCConstants.Height, cached_size_height.Value); } } var application = this.Client.VisioApplication; var active_page = application.ActivePage; update.Execute(active_page); }
public void MoveTextToBottom(IList<IVisio.Shape> target_shapes) { this.AssertApplicationAvailable(); this.AssertDocumentAvailable(); var shapes = GetTargetShapes(target_shapes); if (shapes.Count < 1) { return ; } var update = new VA.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.VisioApplication; var shapeids = shapes.Select(s=>s.ID); foreach (int shapeid in shapeids) { update.SetFormula((short)shapeid, VA.ShapeSheet.SRCConstants.TxtHeight, "Height*0"); update.SetFormula((short)shapeid, VA.ShapeSheet.SRCConstants.TxtPinY, "Height*0"); update.SetFormula((short)shapeid, VA.ShapeSheet.SRCConstants.VerticalAlign, "0"); } 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 VA.ShapeSheet.Update(); foreach (var shape_id in shapeids) { foreach (var cellrec in this.Cells) { if (!cellrec.MatchesCategory(category)) { continue; } var sidsrc = new VA.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 SetSize(IList<IVisio.Shape> target_shapes, double? w, double? h) { this.AssertApplicationAvailable(); this.AssertDocumentAvailable(); var shapes = GetTargetShapes(target_shapes); if (shapes.Count < 1) { return; } var shapeids = shapes.Select(s=>s.ID).ToList(); var update = new VA.ShapeSheet.Update(); foreach (int shapeid in shapeids) { if (w.HasValue && w.Value>=0) { update.SetFormula((short)shapeid, VA.ShapeSheet.SRCConstants.Width, w.Value); } if (h.HasValue && h.Value >= 0) { update.SetFormula((short)shapeid, VA.ShapeSheet.SRCConstants.Height, h.Value); } } var application = this.Client.VisioApplication; using (var undoscope = new VA.Application.UndoScope(this.Client.VisioApplication,"Set Shape Size")) { var active_page = application.ActivePage; update.Execute(active_page); } }
public static void SetTabStops(IVisio.Shape shape, IList<TabStop> stops) { if (shape == null) { throw new System.ArgumentNullException("shape"); } if (stops == null) { throw new System.ArgumentNullException("stops"); } 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[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 = GetTabTagForStops(stops.Count); shape.RowType[tab_section, (short)IVisio.VisRowIndices.visRowTab] = (short)tagtab; // add tab properties for each stop var update = new VA.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 VA.ShapeSheet.SRC(tab_section, row, (short)(i + 1)); var src_tabalign = new VA.ShapeSheet.SRC(tab_section, row, (short)(i + 2)); var src_tabother = new VA.ShapeSheet.SRC(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 SetFormula( IList <IVisio.Shape> target_shapes, IList <VA.ShapeSheet.SRC> srcs, IList <string> formulas, IVisio.VisGetSetArgs flags) { this.AssertApplicationAvailable(); this.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("srcs"); } if (formulas == null) { throw new System.ArgumentNullException("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 = string.Format("SetFormula: Must have the same number of srcs ({0}) and formulas ({1})", srcs.Count, formulas.Count); throw new System.ArgumentException(msg); } var shapeids = shapes.Select(s => s.ID).ToList(); int num_formulas = formulas.Count; var update = new VA.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.Draw.GetDrawingSurfaceSafe(); using (var undoscope = new VA.Application.UndoScope(this.Client.VisioApplication, "Set ShapeSheet Formulas")) { update.Execute(surface); } }
public void SetSize(VA.Drawing.Size new_size) { this.AssertApplicationAvailable(); this.AssertDocumentAvailable(); var application = this.Client.VisioApplication; using (var undoscope = new VA.Application.UndoScope(this.Client.VisioApplication,"Set Page Size")) { var active_page = application.ActivePage; var page_sheet = active_page.PageSheet; var update = new VA.ShapeSheet.Update(2); update.SetFormula(VA.ShapeSheet.SRCConstants.PageWidth, new_size.Width); update.SetFormula(VA.ShapeSheet.SRCConstants.PageHeight, new_size.Height); update.Execute(page_sheet); } }
public void SetOrientation(VA.Pages.PrintPageOrientation orientation) { this.AssertApplicationAvailable(); this.AssertDocumentAvailable(); var application = this.Client.VisioApplication; var active_page = application.ActivePage; if (orientation != VA.Pages.PrintPageOrientation.Landscape && orientation != VA.Pages.PrintPageOrientation.Portrait) { throw new System.ArgumentOutOfRangeException("orientation", "must be either Portrait or Landscape"); } var old_orientation = 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 VA.ShapeSheet.Update(3); update.SetFormula(VA.ShapeSheet.SRCConstants.PageWidth, new_width); update.SetFormula(VA.ShapeSheet.SRCConstants.PageHeight, new_height); update.SetFormula(VA.ShapeSheet.SRCConstants.PrintPageOrientation, (int)orientation); using (var undoscope = new VA.Application.UndoScope(this.Client.VisioApplication,"Set Page Orientation")) { update.Execute(active_page.PageSheet); } }
public void ResetOrigin(IVisio.Page page) { this.AssertApplicationAvailable(); this.AssertDocumentAvailable(); var application = this.Client.VisioApplication; if (page == null) { page = application.ActivePage; } var update = new VA.ShapeSheet.Update(); update.SetFormula(VA.ShapeSheet.SRCConstants.XGridOrigin, "0.0"); update.SetFormula(VA.ShapeSheet.SRCConstants.YGridOrigin, "0.0"); update.SetFormula(VA.ShapeSheet.SRCConstants.XRulerOrigin, "0.0"); update.SetFormula(VA.ShapeSheet.SRCConstants.YRulerOrigin, "0.0"); using (var undoscope = new VA.Application.UndoScope(this.Client.VisioApplication,"Reset Page Origin")) { update.Execute(page.PageSheet); } }
public static void Set(IVisio.Shape shape, string name, string value, string prompt) { if (shape == null) { throw new System.ArgumentNullException("shape"); } CheckValidName(name); if (Contains(shape, name)) { string full_prop_name = GetRowName(name); if (value != null) { string value_cell_name = full_prop_name; var cell = shape.CellsU[value_cell_name]; string value_formula = Convert.StringToFormulaString(value); cell.FormulaU = value_formula; } if (prompt != null) { string prompt_cell_name = full_prop_name+".Prompt"; var cell = shape.CellsU[prompt_cell_name]; var prompt_formula = Convert.StringToFormulaString(prompt); cell.FormulaU = prompt_formula; } return; } short row = shape.AddNamedRow( _userdefinedcell_section, name, (short)IVisio.VisRowIndices.visRowUser); var update = new VA.ShapeSheet.Update(); if (value != null) { string value_formula = Convert.StringToFormulaString(value); var src = new VA.ShapeSheet.SRC(_userdefinedcell_section, row, (short)IVisio.VisCellIndices.visUserValue); update.SetFormula(src, value_formula); } if (prompt != null) { string prompt_formula = Convert.StringToFormulaString(prompt); var src = new VA.ShapeSheet.SRC(_userdefinedcell_section, row, (short)IVisio.VisCellIndices.visUserPrompt); update.SetFormula(src, prompt_formula); } update.Execute(shape); }