int GetInsertIndex(MetadataAndOrder<IAdornmentLayersMetadata> info) {
			for (int i = 0; i < adornmentLayers.Count; i++) {
				if (info.Order < adornmentLayers[i].Info.Order)
					return i;
			}
			return adornmentLayers.Count;
		}
		AdornmentLayer Create(MetadataAndOrder<IAdornmentLayersMetadata> info) {
			var layer = new AdornmentLayer(wpfTextView, layerKind, info);
			int index = GetInsertIndex(info);
			adornmentLayers.Insert(index, layer);
			Children.Insert(index, layer);
			return layer;
		}
		HexAdornmentLayerImpl Create(MetadataAndOrder<IAdornmentLayersMetadata> info) {
			var layer = new HexAdornmentLayerImpl(wpfHexView, layerKind, info);
			int index = GetInsertIndex(info);
			adornmentLayers.Insert(index, layer);
			Children.Insert(index, layer.VisualElement);
			return layer;
		}
Beispiel #4
0
		public AdornmentLayer(IWpfTextView textView, LayerKind layerKind, MetadataAndOrder<IAdornmentLayersMetadata> info) {
			if (textView == null)
				throw new ArgumentNullException(nameof(textView));
			TextView = textView;
			this.layerKind = layerKind;
			Info = info;
			adornmentLayerElements = new List<AdornmentLayerElement>();
		}
		public HexAdornmentLayerImpl(WpfHexView hexView, HexLayerKind layerKind, MetadataAndOrder<IAdornmentLayersMetadata> info) {
			if (hexView == null)
				throw new ArgumentNullException(nameof(hexView));
			canvas = new Canvas();
			HexView = hexView;
			this.layerKind = layerKind;
			Info = info;
			adornmentLayerElements = new List<HexAdornmentLayerElementImpl>();
		}
		public IAdornmentLayer GetAdornmentLayer(MetadataAndOrder<IAdornmentLayersMetadata> info) {
			var layer = adornmentLayers.FirstOrDefault(a => a.Info.Metadata == info.Metadata);
			if (layer == null)
				layer = Create(info);
			return layer;
		}