Example #1
0
 public HexAdornmentLayerImpl(WpfHexView hexView, HexLayerKind layerKind, MetadataAndOrder <IAdornmentLayersMetadata> info)
 {
     canvas                 = new Canvas();
     HexView                = hexView ?? throw new ArgumentNullException(nameof(hexView));
     this.layerKind         = layerKind;
     Info                   = info;
     adornmentLayerElements = new List <HexAdornmentLayerElementImpl>();
 }
Example #2
0
        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);
        }
Example #3
0
        public HexAdornmentLayer GetAdornmentLayer(MetadataAndOrder <IAdornmentLayersMetadata> info)
        {
            var layer = adornmentLayers.FirstOrDefault(a => a.Info.Metadata == info.Metadata);

            if (layer is null)
            {
                layer = Create(info);
            }
            return(layer);
        }
Example #4
0
 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);
 }