Add support for themed scene operation icons
- Issue MatterHackers/MCCentral#5501 Pinch/curve/fit icons use theme.InvertIcons
This commit is contained in:
parent
c0b7f39fd5
commit
8ef1102e87
8 changed files with 51 additions and 53 deletions
|
|
@ -66,7 +66,7 @@ namespace MatterHackers.MatterControl
|
|||
|
||||
public string Title => this.TitleResolver?.Invoke();
|
||||
|
||||
public ImageBuffer Icon { get; set; }
|
||||
public Func<bool, ImageBuffer> Icon { get; set; }
|
||||
}
|
||||
|
||||
public static class NamedActionExtensions
|
||||
|
|
|
|||
|
|
@ -327,7 +327,7 @@ namespace MatterHackers.MatterControl
|
|||
&& (nodeOperation.IsVisible?.Invoke(selectedItem) != false)
|
||||
&& nodeOperation.IsEnabled?.Invoke(selectedItem) != false)
|
||||
{
|
||||
var subMenuItem = modifyMenu.CreateMenuItem(nodeOperation.Title, nodeOperation.IconCollector?.Invoke(menuTheme));
|
||||
var subMenuItem = modifyMenu.CreateMenuItem(nodeOperation.Title, nodeOperation.IconCollector?.Invoke(menuTheme.InvertIcons));
|
||||
subMenuItem.Click += (s2, e2) =>
|
||||
{
|
||||
nodeOperation.Operation(selectedItem, scene).ConfigureAwait(false);
|
||||
|
|
@ -347,7 +347,7 @@ namespace MatterHackers.MatterControl
|
|||
&& (nodeOperation.IsVisible?.Invoke(selectedItem) != false)
|
||||
&& nodeOperation.IsEnabled?.Invoke(selectedItem) != false)
|
||||
{
|
||||
menuItem = popupMenu.CreateMenuItem(nodeOperation.Title, nodeOperation.IconCollector?.Invoke(menuTheme));
|
||||
menuItem = popupMenu.CreateMenuItem(nodeOperation.Title, nodeOperation.IconCollector?.Invoke(menuTheme.InvertIcons));
|
||||
menuItem.Click += (s2, e2) =>
|
||||
{
|
||||
nodeOperation.Operation(selectedItem, scene).ConfigureAwait(false);
|
||||
|
|
@ -589,13 +589,13 @@ namespace MatterHackers.MatterControl
|
|||
|
||||
public MainViewWidget MainView;
|
||||
|
||||
private Dictionary<string, List<LibraryAction>> registeredLibraryActions = new Dictionary<string, List<LibraryAction>>();
|
||||
private readonly Dictionary<string, List<LibraryAction>> registeredLibraryActions = new Dictionary<string, List<LibraryAction>>();
|
||||
|
||||
private List<SceneSelectionOperation> registeredSceneOperations;
|
||||
|
||||
public ThumbnailsConfig Thumbnails { get; }
|
||||
|
||||
private void RebuildSceneOperations(ThemeConfig theme)
|
||||
private void BuildSceneOperations()
|
||||
{
|
||||
registeredSceneOperations = new List<SceneSelectionOperation>()
|
||||
{
|
||||
|
|
@ -637,7 +637,7 @@ namespace MatterHackers.MatterControl
|
|||
IsEnabled = (scene) => scene.SelectedItem != null
|
||||
&& scene.SelectedItem is SelectionGroupObject3D
|
||||
&& scene.SelectedItem.Children.Count > 1,
|
||||
Icon = AggContext.StaticData.LoadIcon("group.png", 16, 16).SetPreMultiply(),
|
||||
Icon = (invertIcon) => AggContext.StaticData.LoadIcon("group.png", 16, 16).SetPreMultiply(),
|
||||
},
|
||||
new SceneSelectionOperation()
|
||||
{
|
||||
|
|
@ -646,7 +646,7 @@ namespace MatterHackers.MatterControl
|
|||
IsEnabled = (scene) =>
|
||||
{
|
||||
var selectedItem = scene.SelectedItem;
|
||||
if(selectedItem != null)
|
||||
if (selectedItem != null)
|
||||
{
|
||||
return selectedItem is GroupObject3D
|
||||
|| selectedItem.GetType() == typeof(Object3D)
|
||||
|
|
@ -655,7 +655,7 @@ namespace MatterHackers.MatterControl
|
|||
|
||||
return false;
|
||||
},
|
||||
Icon = AggContext.StaticData.LoadIcon("ungroup.png", 16, 16).SetPreMultiply(),
|
||||
Icon = (invertIcon) => AggContext.StaticData.LoadIcon("ungroup.png", 16, 16).SetPreMultiply(),
|
||||
},
|
||||
new SceneSelectionSeparator(),
|
||||
new SceneSelectionOperation()
|
||||
|
|
@ -663,14 +663,14 @@ namespace MatterHackers.MatterControl
|
|||
TitleResolver = () => "Duplicate".Localize(),
|
||||
Action = (sceneContext) => sceneContext.DuplicateItem(5),
|
||||
IsEnabled = (scene) => scene.SelectedItem != null,
|
||||
Icon = AggContext.StaticData.LoadIcon("duplicate.png").SetPreMultiply(),
|
||||
Icon = (invertIcon) => AggContext.StaticData.LoadIcon("duplicate.png").SetPreMultiply(),
|
||||
},
|
||||
new SceneSelectionOperation()
|
||||
{
|
||||
TitleResolver = () => "Remove".Localize(),
|
||||
Action = (sceneContext) => sceneContext.Scene.DeleteSelection(),
|
||||
IsEnabled = (scene) => scene.SelectedItem != null,
|
||||
Icon = AggContext.StaticData.LoadIcon("remove.png").SetPreMultiply(),
|
||||
Icon = (invertIcon) => AggContext.StaticData.LoadIcon("remove.png").SetPreMultiply(),
|
||||
},
|
||||
new SceneSelectionSeparator(),
|
||||
new SceneSelectionOperation()
|
||||
|
|
@ -684,7 +684,7 @@ namespace MatterHackers.MatterControl
|
|||
var align = new AlignObject3D();
|
||||
align.AddSelectionAsChildren(scene, selectedItem);
|
||||
},
|
||||
Icon = AggContext.StaticData.LoadIcon("align_left_dark.png", 16, 16, theme.InvertIcons).SetPreMultiply(),
|
||||
Icon = (invertIcon) => AggContext.StaticData.LoadIcon("align_left_dark.png", 16, 16, invertIcon).SetPreMultiply(),
|
||||
IsEnabled = (scene) => scene.SelectedItem is SelectionGroupObject3D,
|
||||
},
|
||||
new SceneSelectionOperation()
|
||||
|
|
@ -700,7 +700,7 @@ namespace MatterHackers.MatterControl
|
|||
}
|
||||
},
|
||||
IsEnabled = (scene) => scene.SelectedItem != null,
|
||||
Icon = AggContext.StaticData.LoadIcon("lay_flat.png", 16, 16).SetPreMultiply(),
|
||||
Icon = (invertIcon) => AggContext.StaticData.LoadIcon("lay_flat.png", 16, 16).SetPreMultiply(),
|
||||
},
|
||||
new SceneSelectionSeparator(),
|
||||
new SceneSelectionOperation()
|
||||
|
|
@ -708,7 +708,7 @@ namespace MatterHackers.MatterControl
|
|||
OperationType = typeof(CombineObject3D_2),
|
||||
TitleResolver = () => "Combine".Localize(),
|
||||
Action = (sceneContext) => new CombineObject3D_2().WrapSelectedItemAndSelect(sceneContext.Scene),
|
||||
Icon = AggContext.StaticData.LoadIcon("combine.png").SetPreMultiply(),
|
||||
Icon = (invertIcon) => AggContext.StaticData.LoadIcon("combine.png").SetPreMultiply(),
|
||||
IsEnabled = (scene) =>
|
||||
{
|
||||
var selectedItem = scene.SelectedItem;
|
||||
|
|
@ -720,7 +720,7 @@ namespace MatterHackers.MatterControl
|
|||
OperationType = typeof(SubtractObject3D_2),
|
||||
TitleResolver = () => "Subtract".Localize(),
|
||||
Action = (sceneContext) => new SubtractObject3D_2().WrapSelectedItemAndSelect(sceneContext.Scene),
|
||||
Icon = AggContext.StaticData.LoadIcon("subtract.png").SetPreMultiply(),
|
||||
Icon = (invertIcon) => AggContext.StaticData.LoadIcon("subtract.png").SetPreMultiply(),
|
||||
IsEnabled = (scene) =>
|
||||
{
|
||||
var selectedItem = scene.SelectedItem;
|
||||
|
|
@ -732,7 +732,7 @@ namespace MatterHackers.MatterControl
|
|||
OperationType = typeof(IntersectionObject3D_2),
|
||||
TitleResolver = () => "Intersect".Localize(),
|
||||
Action = (sceneContext) => new IntersectionObject3D_2().WrapSelectedItemAndSelect(sceneContext.Scene),
|
||||
Icon = AggContext.StaticData.LoadIcon("intersect.png"),
|
||||
Icon = (invertIcon) => AggContext.StaticData.LoadIcon("intersect.png"),
|
||||
IsEnabled = (scene) =>
|
||||
{
|
||||
var selectedItem = scene.SelectedItem;
|
||||
|
|
@ -744,7 +744,7 @@ namespace MatterHackers.MatterControl
|
|||
OperationType = typeof(SubtractAndReplaceObject3D_2),
|
||||
TitleResolver = () => "Subtract & Replace".Localize(),
|
||||
Action = (sceneContext) => new SubtractAndReplaceObject3D_2().WrapSelectedItemAndSelect(sceneContext.Scene),
|
||||
Icon = AggContext.StaticData.LoadIcon("subtract_and_replace.png").SetPreMultiply(),
|
||||
Icon = (invertIcon) => AggContext.StaticData.LoadIcon("subtract_and_replace.png").SetPreMultiply(),
|
||||
IsEnabled = (scene) =>
|
||||
{
|
||||
var selectedItem = scene.SelectedItem;
|
||||
|
|
@ -761,7 +761,7 @@ namespace MatterHackers.MatterControl
|
|||
var array = new ArrayLinearObject3D();
|
||||
array.AddSelectionAsChildren(sceneContext.Scene, sceneContext.Scene.SelectedItem);
|
||||
},
|
||||
Icon = AggContext.StaticData.LoadIcon("array_linear.png").SetPreMultiply(),
|
||||
Icon = (invertIcon) => AggContext.StaticData.LoadIcon("array_linear.png").SetPreMultiply(),
|
||||
IsEnabled = (scene) => scene.SelectedItem != null && !(scene.SelectedItem is SelectionGroupObject3D),
|
||||
},
|
||||
new SceneSelectionOperation()
|
||||
|
|
@ -773,7 +773,7 @@ namespace MatterHackers.MatterControl
|
|||
var array = new ArrayRadialObject3D();
|
||||
array.AddSelectionAsChildren(sceneContext.Scene, sceneContext.Scene.SelectedItem);
|
||||
},
|
||||
Icon = AggContext.StaticData.LoadIcon("array_radial.png").SetPreMultiply(),
|
||||
Icon = (invertIcon) => AggContext.StaticData.LoadIcon("array_radial.png").SetPreMultiply(),
|
||||
IsEnabled = (scene) => scene.SelectedItem != null && !(scene.SelectedItem is SelectionGroupObject3D),
|
||||
},
|
||||
new SceneSelectionOperation()
|
||||
|
|
@ -785,7 +785,7 @@ namespace MatterHackers.MatterControl
|
|||
var array = new ArrayAdvancedObject3D();
|
||||
array.AddSelectionAsChildren(sceneContext.Scene, sceneContext.Scene.SelectedItem);
|
||||
},
|
||||
Icon = AggContext.StaticData.LoadIcon("array_advanced.png").SetPreMultiply(),
|
||||
Icon = (invertIcon) => AggContext.StaticData.LoadIcon("array_advanced.png").SetPreMultiply(),
|
||||
IsEnabled = (scene) => scene.SelectedItem != null && !(scene.SelectedItem is SelectionGroupObject3D),
|
||||
},
|
||||
new SceneSelectionSeparator(),
|
||||
|
|
@ -798,7 +798,7 @@ namespace MatterHackers.MatterControl
|
|||
var pinch = new PinchObject3D_2();
|
||||
pinch.WrapSelectedItemAndSelect(sceneContext.Scene);
|
||||
},
|
||||
Icon = AggContext.StaticData.LoadIcon("pinch.png", 16, 16, theme.InvertIcons),
|
||||
Icon = (invertIcon) => AggContext.StaticData.LoadIcon("pinch.png", 16, 16, invertIcon),
|
||||
IsEnabled = (scene) => scene.SelectedItem != null,
|
||||
},
|
||||
new SceneSelectionOperation()
|
||||
|
|
@ -810,7 +810,7 @@ namespace MatterHackers.MatterControl
|
|||
var curve = new CurveObject3D_2();
|
||||
curve.WrapSelectedItemAndSelect(sceneContext.Scene);
|
||||
},
|
||||
Icon = AggContext.StaticData.LoadIcon("curve.png", 16, 16, theme.InvertIcons),
|
||||
Icon = (invertIcon) => AggContext.StaticData.LoadIcon("curve.png", 16, 16, invertIcon),
|
||||
IsEnabled = (scene) => scene.SelectedItem != null,
|
||||
},
|
||||
new SceneSelectionOperation()
|
||||
|
|
@ -822,7 +822,7 @@ namespace MatterHackers.MatterControl
|
|||
var curve = new TwistObject3D();
|
||||
curve.WrapSelectedItemAndSelect(sceneContext.Scene);
|
||||
},
|
||||
Icon = AggContext.StaticData.LoadIcon("twist.png", 16, 16, theme.InvertIcons),
|
||||
Icon = (invertIcon) => AggContext.StaticData.LoadIcon("twist.png", 16, 16, invertIcon),
|
||||
IsEnabled = (scene) => scene.SelectedItem != null,
|
||||
},
|
||||
new SceneSelectionOperation()
|
||||
|
|
@ -841,7 +841,7 @@ namespace MatterHackers.MatterControl
|
|||
scene.UndoBuffer.AddAndDo(new ReplaceCommand(new[] { selectedItem }, new[] { fit }));
|
||||
}
|
||||
},
|
||||
Icon = AggContext.StaticData.LoadIcon("fit.png", 16, 16, theme.InvertIcons),
|
||||
Icon = (invertIcon) => AggContext.StaticData.LoadIcon("fit.png", 16, 16, invertIcon),
|
||||
IsEnabled = (scene) => scene.SelectedItem != null && !(scene.SelectedItem is SelectionGroupObject3D),
|
||||
},
|
||||
#if DEBUG
|
||||
|
|
@ -861,33 +861,33 @@ namespace MatterHackers.MatterControl
|
|||
scene.UndoBuffer.AddAndDo(new ReplaceCommand(new[] { selectedItem }, new[] { fit }));
|
||||
}
|
||||
},
|
||||
Icon = AggContext.StaticData.LoadIcon("fit.png", 16, 16, theme.InvertIcons),
|
||||
Icon = (invertIcon) => AggContext.StaticData.LoadIcon("fit.png", 16, 16, invertIcon),
|
||||
IsEnabled = (scene) => scene.SelectedItem != null && !(scene.SelectedItem is SelectionGroupObject3D),
|
||||
},
|
||||
#endif
|
||||
};
|
||||
|
||||
var operationIconsByType = new Dictionary<Type, Func<ImageBuffer>>();
|
||||
var operationIconsByType = new Dictionary<Type, Func<bool, ImageBuffer>>();
|
||||
|
||||
foreach (var operation in registeredSceneOperations)
|
||||
{
|
||||
if (operation.OperationType != null)
|
||||
{
|
||||
operationIconsByType.Add(operation.OperationType, () => operation.Icon);
|
||||
operationIconsByType.Add(operation.OperationType, operation.Icon);
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: Use custom selection group icon if reusing group icon seems incorrect
|
||||
//
|
||||
// Explicitly register SelectionGroup icon
|
||||
if (operationIconsByType.TryGetValue(typeof(GroupObject3D), out Func<ImageBuffer> groupIconSource))
|
||||
if (operationIconsByType.TryGetValue(typeof(GroupObject3D), out Func<bool, ImageBuffer> groupIconSource))
|
||||
{
|
||||
operationIconsByType.Add(typeof(SelectionGroupObject3D), groupIconSource);
|
||||
}
|
||||
|
||||
this.Thumbnails.OperationIcons = operationIconsByType;
|
||||
|
||||
operationIconsByType.Add(typeof(ImageObject3D), () => AggContext.StaticData.LoadIcon("140.png", 16, 16, theme.InvertIcons));
|
||||
operationIconsByType.Add(typeof(ImageObject3D), (invertIcon) => AggContext.StaticData.LoadIcon("140.png", 16, 16, invertIcon));
|
||||
}
|
||||
|
||||
public void OpenIntoNewTab(IEnumerable<ILibraryItem> selectedLibraryItems)
|
||||
|
|
@ -1139,7 +1139,7 @@ namespace MatterHackers.MatterControl
|
|||
//_activePrinters = new List<PrinterConfig>();
|
||||
};
|
||||
|
||||
this.RebuildSceneOperations(this.Theme);
|
||||
this.BuildSceneOperations();
|
||||
|
||||
this.Extensions = new ExtensionsConfig(this.Library);
|
||||
this.Extensions.Register(new ImageEditor());
|
||||
|
|
@ -1210,7 +1210,7 @@ namespace MatterHackers.MatterControl
|
|||
|
||||
return Task.CompletedTask;
|
||||
},
|
||||
IconCollector = (theme) => AggContext.StaticData.LoadIcon("noun_479927.png", theme.InvertIcons)
|
||||
IconCollector = (invertIcon) => AggContext.StaticData.LoadIcon("noun_479927.png", invertIcon)
|
||||
});
|
||||
|
||||
this.Graph.RegisterOperation(
|
||||
|
|
@ -1231,7 +1231,7 @@ namespace MatterHackers.MatterControl
|
|||
|
||||
return Task.CompletedTask;
|
||||
},
|
||||
IconCollector = (theme) => AggContext.StaticData.LoadIcon(Path.Combine("ViewTransformControls", "translate.png"), 16, 16, theme.InvertIcons)
|
||||
IconCollector = (invertIcon) => AggContext.StaticData.LoadIcon(Path.Combine("ViewTransformControls", "translate.png"), 16, 16, invertIcon)
|
||||
});
|
||||
|
||||
this.Graph.RegisterOperation(
|
||||
|
|
@ -1252,7 +1252,7 @@ namespace MatterHackers.MatterControl
|
|||
|
||||
return Task.CompletedTask;
|
||||
},
|
||||
IconCollector = (theme) => AggContext.StaticData.LoadIcon(Path.Combine("ViewTransformControls", "rotate.png"), 16, 16, theme.InvertIcons)
|
||||
IconCollector = (invertIcon) => AggContext.StaticData.LoadIcon(Path.Combine("ViewTransformControls", "rotate.png"), 16, 16, invertIcon)
|
||||
});
|
||||
|
||||
this.Graph.RegisterOperation(
|
||||
|
|
@ -1272,7 +1272,7 @@ namespace MatterHackers.MatterControl
|
|||
}
|
||||
return Task.CompletedTask;
|
||||
},
|
||||
IconCollector = (theme) => AggContext.StaticData.LoadIcon("scale_32x32.png", 16, 16, theme.InvertIcons)
|
||||
IconCollector = (invertIcon) => AggContext.StaticData.LoadIcon("scale_32x32.png", 16, 16, invertIcon)
|
||||
});
|
||||
|
||||
this.Graph.RegisterOperation(
|
||||
|
|
@ -1326,7 +1326,7 @@ namespace MatterHackers.MatterControl
|
|||
|
||||
return Task.CompletedTask;
|
||||
},
|
||||
IconCollector = (theme) => AggContext.StaticData.LoadIcon("140.png", 16, 16, theme.InvertIcons)
|
||||
IconCollector = (invertIcon) => AggContext.StaticData.LoadIcon("140.png", 16, 16, invertIcon)
|
||||
});
|
||||
|
||||
this.Graph.RegisterOperation(
|
||||
|
|
@ -1343,7 +1343,7 @@ namespace MatterHackers.MatterControl
|
|||
|
||||
return Task.CompletedTask;
|
||||
},
|
||||
IconCollector = (theme) => AggContext.StaticData.LoadIcon("mirror_32x32.png", 16, 16, theme.InvertIcons)
|
||||
IconCollector = (invertIcon) => AggContext.StaticData.LoadIcon("mirror_32x32.png", 16, 16, invertIcon)
|
||||
});
|
||||
|
||||
this.Graph.RegisterOperation(
|
||||
|
|
@ -1391,7 +1391,7 @@ namespace MatterHackers.MatterControl
|
|||
&& sceneItem.Parent.Parent == null
|
||||
&& sceneItem.DescendantsAndSelf().All(d => !(d is ComponentObject3D));
|
||||
},
|
||||
IconCollector = (theme) => AggContext.StaticData.LoadIcon("scale_32x32.png", 16, 16, theme.InvertIcons)
|
||||
IconCollector = (invertIcon) => AggContext.StaticData.LoadIcon("scale_32x32.png", 16, 16, invertIcon)
|
||||
});
|
||||
|
||||
this.Graph.RegisterOperation(
|
||||
|
|
@ -1422,7 +1422,7 @@ namespace MatterHackers.MatterControl
|
|||
&& sceneItem is ComponentObject3D componentObject
|
||||
&& componentObject.Finalized;
|
||||
},
|
||||
IconCollector = (theme) => AggContext.StaticData.LoadIcon("scale_32x32.png", 16, 16, theme.InvertIcons)
|
||||
IconCollector = (invertIcon) => AggContext.StaticData.LoadIcon("scale_32x32.png", 16, 16, invertIcon)
|
||||
});
|
||||
|
||||
this.Graph.RegisterOperation(
|
||||
|
|
@ -1452,7 +1452,7 @@ namespace MatterHackers.MatterControl
|
|||
|
||||
return Task.CompletedTask;
|
||||
},
|
||||
IconCollector = (theme) => AggContext.StaticData.LoadIcon("noun_84751.png", theme.InvertIcons)
|
||||
IconCollector = (invertIcon) => AggContext.StaticData.LoadIcon("noun_84751.png", invertIcon)
|
||||
});
|
||||
|
||||
this.Graph.RegisterOperation(
|
||||
|
|
@ -1481,7 +1481,7 @@ namespace MatterHackers.MatterControl
|
|||
|
||||
return Task.CompletedTask;
|
||||
},
|
||||
IconCollector = (theme) => AggContext.StaticData.LoadIcon("noun_simplify_340976_000000.png", 16, 16, theme.InvertIcons)
|
||||
IconCollector = (invertIcon) => AggContext.StaticData.LoadIcon("noun_simplify_340976_000000.png", 16, 16, invertIcon)
|
||||
});
|
||||
|
||||
this.Graph.RegisterOperation(
|
||||
|
|
@ -1510,7 +1510,7 @@ namespace MatterHackers.MatterControl
|
|||
|
||||
return Task.CompletedTask;
|
||||
},
|
||||
IconCollector = (theme) => AggContext.StaticData.LoadIcon("noun_expand_1823853_000000.png", 16, 16, theme.InvertIcons)
|
||||
IconCollector = (invertIcon) => AggContext.StaticData.LoadIcon("noun_expand_1823853_000000.png", 16, 16, invertIcon)
|
||||
});
|
||||
|
||||
this.Graph.RegisterOperation(
|
||||
|
|
@ -1546,7 +1546,7 @@ namespace MatterHackers.MatterControl
|
|||
return Task.CompletedTask;
|
||||
},
|
||||
IsVisible = (sceneItem) => sceneItem.Children.Any((i) => i is IPathObject),
|
||||
IconCollector = (theme) => AggContext.StaticData.LoadIcon("noun_55060.png", theme.InvertIcons)
|
||||
IconCollector = (invertIcon) => AggContext.StaticData.LoadIcon("noun_55060.png", invertIcon)
|
||||
});
|
||||
|
||||
this.InitializeLibrary();
|
||||
|
|
@ -2198,8 +2198,7 @@ namespace MatterHackers.MatterControl
|
|||
/// <param name="printItemAction">The action to register</param>
|
||||
public void RegisterLibraryAction(string section, LibraryAction printItemAction)
|
||||
{
|
||||
List<LibraryAction> items;
|
||||
if (!registeredLibraryActions.TryGetValue(section, out items))
|
||||
if (!registeredLibraryActions.TryGetValue(section, out List<LibraryAction> items))
|
||||
{
|
||||
items = new List<LibraryAction>();
|
||||
registeredLibraryActions.Add(section, items);
|
||||
|
|
@ -2215,8 +2214,7 @@ namespace MatterHackers.MatterControl
|
|||
/// <returns></returns>
|
||||
public IEnumerable<LibraryAction> RegisteredLibraryActions(string section)
|
||||
{
|
||||
List<LibraryAction> items;
|
||||
if (registeredLibraryActions.TryGetValue(section, out items))
|
||||
if (registeredLibraryActions.TryGetValue(section, out List<LibraryAction> items))
|
||||
{
|
||||
return items;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ namespace MatterHackers.MatterControl
|
|||
{
|
||||
}
|
||||
|
||||
public Dictionary<Type, Func<ImageBuffer>> OperationIcons { get; internal set; }
|
||||
public Dictionary<Type, Func<bool, ImageBuffer>> OperationIcons { get; internal set; }
|
||||
|
||||
public ImageBuffer DefaultThumbnail() => AggContext.StaticData.LoadIcon("cube.png", 16, 16, theme.InvertIcons);
|
||||
|
||||
|
|
|
|||
|
|
@ -92,7 +92,7 @@ namespace MatterHackers.MatterControl.Plugins.Lithophane
|
|||
},
|
||||
IsEnabled = (sceneItem) => true,
|
||||
IsVisible = (sceneItem) => true,
|
||||
IconCollector = (theme) => AggContext.StaticData.LoadIcon("lithophane.png", 16, 16, theme.InvertIcons)
|
||||
IconCollector = (invertIcon) => AggContext.StaticData.LoadIcon("lithophane.png", 16, 16, invertIcon)
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ namespace MatterHackers.MatterControl.Library
|
|||
|
||||
public Func<IObject3D, bool> IsVisible { get; set; }
|
||||
|
||||
public Func<ThemeConfig, ImageBuffer> IconCollector { get; set; }
|
||||
public Func<bool, ImageBuffer> IconCollector { get; set; }
|
||||
|
||||
public Type ResultType { get; set; }
|
||||
}
|
||||
|
|
@ -79,7 +79,7 @@ namespace MatterHackers.MatterControl.Library
|
|||
|
||||
if (!thumbnails.OperationIcons.ContainsKey(resultType))
|
||||
{
|
||||
thumbnails.OperationIcons.Add(resultType, () => nodeOperation.IconCollector(applicationController.Theme));
|
||||
thumbnails.OperationIcons.Add(resultType, nodeOperation.IconCollector);
|
||||
}
|
||||
|
||||
this.Operations.Add(nodeOperation.OperationID, nodeOperation);
|
||||
|
|
|
|||
|
|
@ -101,10 +101,10 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
keyValues.Add(item.Source, node);
|
||||
|
||||
// Check for operation resulting in the given type
|
||||
if (ApplicationController.Instance.Thumbnails.OperationIcons.TryGetValue(item.Source.GetType(), out Func<ImageBuffer> iconSource))
|
||||
if (ApplicationController.Instance.Thumbnails.OperationIcons.TryGetValue(item.Source.GetType(), out Func<bool, ImageBuffer> iconSource))
|
||||
{
|
||||
// If exists, use the operation icon
|
||||
node.Image = iconSource?.Invoke();
|
||||
node.Image = iconSource?.Invoke(theme.InvertIcons);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
|
|
@ -214,7 +214,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
foreach(var primaryAction in primaryActions)
|
||||
{
|
||||
// TODO: Run visible/enable rules on actions, conditionally add/enable as appropriate
|
||||
var button = new IconButton(primaryAction.IconCollector(theme), theme)
|
||||
var button = new IconButton(primaryAction.IconCollector(theme.InvertIcons), theme)
|
||||
{
|
||||
//Name = namedAction.Title + " Button",
|
||||
ToolTipText = primaryAction.Title,
|
||||
|
|
|
|||
|
|
@ -465,7 +465,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
this.AddChild(CreateSupportButton(theme));
|
||||
}
|
||||
|
||||
button = new IconButton(namedAction.Icon, theme)
|
||||
button = new IconButton(namedAction.Icon(theme.InvertIcons), theme)
|
||||
{
|
||||
Name = namedAction.Title + " Button",
|
||||
ToolTipText = namedAction.Title,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue