private void _UpdateFilterPositionDataForFilter(FilterShape filterShape) { FilterSetupFormShapePosition position = new FilterSetupFormShapePosition(); position.xPositionProportion = (double)filterShape.X / _previousDiagramWidth; position.yPosition = filterShape.Y; _applicationData.FilterSetupFormShapePositions[filterShape.FilterInstance.InstanceId] = position; }
private void _ResizeAndPositionFilterShapes(int oldDiagramWidth, int newDiagramWidth) { diagramDisplay.DoSuspendUpdate(); double defaultXPositionProportion = 0.5; int y = SHAPE_Y_TOP; foreach (FilterShape filterShape in _filterShapes) { filterShape.Width = SHAPE_FILTERS_WIDTH; filterShape.Height = SHAPE_FILTERS_HEIGHT; FilterSetupFormShapePosition position = null; bool updatePosition = true; // if the filtershape is unpositioned, it's either first load (nothing positioned yet), or maybe new? // look it up in the application data for a position, otherwise default it. // (same if there's no old diagram width given; we'd have nothing to proportion from!) if ((filterShape.X <= 0 && filterShape.Y <= 0) || oldDiagramWidth <= 0) { if (_applicationData.FilterSetupFormShapePositions.TryGetValue(filterShape.FilterInstance.InstanceId, out position)) { updatePosition = false; } else { position = new FilterSetupFormShapePosition(); position.xPositionProportion = defaultXPositionProportion; position.yPosition = y; // because we've used a default position, increment the default Y position y += filterShape.Height + SHAPE_VERTICAL_SPACING; } } else { position = new FilterSetupFormShapePosition(); position.xPositionProportion = (double)filterShape.X / oldDiagramWidth; position.yPosition = filterShape.Y; } filterShape.X = (int)(newDiagramWidth * position.xPositionProportion); filterShape.Y = position.yPosition; if (updatePosition) { _applicationData.FilterSetupFormShapePositions[filterShape.FilterInstance.InstanceId] = position; } } _previousDiagramWidth = newDiagramWidth; diagramDisplay.DoResumeUpdate(); }
public IEnumerable <FilterShape> DuplicateFilterInstancesToShapes( IEnumerable <IOutputFilterModuleInstance> sourceInstances, int numberOfCopies, Point?startPosition = null, double horizontalPositionProportion = 0.5 ) { if (sourceInstances == null) { return(null); } Point pos; if (startPosition == null) { pos = new Point(); int shapesWidth = diagramDisplay.Width - (2 * diagramDisplay.GetDiagramPosition().X); pos.X = (int)(shapesWidth * horizontalPositionProportion); pos.Y = diagramDisplay.GetDiagramOffset().Y + (diagramDisplay.Height / 4); } else { pos = (Point)startPosition; } List <FilterShape> result = new List <FilterShape>(); for (int i = 0; i < numberOfCopies; i++) { foreach (IOutputFilterModuleInstance instance in sourceInstances) { FilterShape newShape = _CreateNewFilterInstanceAndShape(instance.TypeId, false, instance.ModuleData); newShape.ModuleDataUpdated(); newShape.X = pos.X; newShape.Y = pos.Y; pos.Y += newShape.Height + SHAPE_VERTICAL_SPACING; // save the new shape position in the application data references FilterSetupFormShapePosition position = new FilterSetupFormShapePosition(); position.xPositionProportion = (double)newShape.X / _previousDiagramWidth; position.yPosition = newShape.Y; _applicationData.FilterSetupFormShapePositions[newShape.FilterInstance.InstanceId] = position; result.Add(newShape); } } //assume we made changes since we added shapes _changesMade = true; return(result); }
public void ReadData(int dataVersion, XElement rootElement) { if (dataVersion > DATA_FORMAT_VERSION_NUMBER) { Logging.Error("VixenApplication: error reading application data; given data version was too high: " + dataVersion); return; } // recent sequences: in all data formats XElement recentSequences = rootElement.Element("RecentSequences"); if (recentSequences != null) { RecentSequences = new List <string>(); foreach (XElement element in recentSequences.Elements("SequenceFile")) { RecentSequences.Add(element.Value); } } // filter shape positions: in data versions 2+ if (dataVersion >= 2) { XElement filterShapePositionsElement = rootElement.Element("FilterShapePositions"); if (filterShapePositionsElement != null) { FilterSetupFormShapePositions = new Dictionary <Guid, FilterSetupFormShapePosition>(); foreach (XElement element in filterShapePositionsElement.Elements("FilterPosition")) { FilterSetupFormShapePosition position = new FilterSetupFormShapePosition(); position.xPositionProportion = double.Parse(element.Element("xPositionProportion").Value); position.yPosition = int.Parse(element.Element("yPosition").Value); FilterSetupFormShapePositions.Add((Guid)element.Attribute("FilterId"), position); } } } // filter setup form HQ rendering added in data v3 if (dataVersion >= 3) { XElement element = rootElement.Element("FilterSetupFormHighQualityRendering"); if (element != null) { FilterSetupFormHighQualityRendering = Boolean.Parse(element.Attribute("value").Value); } } }
public void ReadData(int dataVersion, XElement rootElement) { if (dataVersion > DATA_FORMAT_VERSION_NUMBER) { Logging.Error("VixenApplication: error reading application data; given data version was too high: " + dataVersion); return; } // recent sequences: in all data formats XElement recentSequences = rootElement.Element("RecentSequences"); if (recentSequences != null) { RecentSequences = new List<string>(); foreach (XElement element in recentSequences.Elements("SequenceFile")) { RecentSequences.Add(element.Value); } } // filter shape positions: in data versions 2+ if (dataVersion >= 2) { XElement filterShapePositionsElement = rootElement.Element("FilterShapePositions"); if (filterShapePositionsElement != null) { FilterSetupFormShapePositions = new Dictionary<Guid, FilterSetupFormShapePosition>(); foreach (XElement element in filterShapePositionsElement.Elements("FilterPosition")) { FilterSetupFormShapePosition position = new FilterSetupFormShapePosition(); position.xPositionProportion = double.Parse(element.Element("xPositionProportion").Value); position.yPosition = int.Parse(element.Element("yPosition").Value); FilterSetupFormShapePositions.Add((Guid) element.Attribute("FilterId"), position); } } } // filter setup form HQ rendering added in data v3 if (dataVersion >= 3) { XElement element = rootElement.Element("FilterSetupFormHighQualityRendering"); if (element != null) { FilterSetupFormHighQualityRendering = Boolean.Parse(element.Attribute("value").Value); } } }
public IEnumerable<FilterShape> DuplicateFilterInstancesToShapes( IEnumerable<IOutputFilterModuleInstance> sourceInstances, int numberOfCopies, Point? startPosition = null, double horizontalPositionProportion = 0.5 ) { if (sourceInstances == null) return null; Point pos; if (startPosition == null) { pos = new Point(); int shapesWidth = diagramDisplay.Width - (2 * diagramDisplay.GetDiagramPosition().X); pos.X = (int)(shapesWidth * horizontalPositionProportion); pos.Y = diagramDisplay.GetDiagramOffset().Y + (diagramDisplay.Height / 4); } else { pos = (Point)startPosition; } List<FilterShape> result = new List<FilterShape>(); for (int i = 0; i < numberOfCopies; i++) { foreach (IOutputFilterModuleInstance instance in sourceInstances) { FilterShape newShape = _CreateNewFilterInstanceAndShape(instance.TypeId, false, instance.ModuleData); newShape.ModuleDataUpdated(); newShape.X = pos.X; newShape.Y = pos.Y; pos.Y += newShape.Height + SHAPE_VERTICAL_SPACING; // save the new shape position in the application data references FilterSetupFormShapePosition position = new FilterSetupFormShapePosition(); position.xPositionProportion = (double)newShape.X / _previousDiagramWidth; position.yPosition = newShape.Y; _applicationData.FilterSetupFormShapePositions[newShape.FilterInstance.InstanceId] = position; result.Add(newShape); } } //assume we made changes since we added shapes _changesMade = true; return result; }