From: Jean-Philippe Bruyère Date: Fri, 7 Mar 2025 18:30:10 +0000 (+0100) Subject: wip X-Git-Url: https://git.osiis.dedyn.io/?a=commitdiff_plain;h=2d0d6061d84c3e643b2fe507d3b387f0ff2aca90;p=jp%2Fcrowedit.git wip --- diff --git a/plugins/CECrowPlugin/src/CrowService.cs b/plugins/CECrowPlugin/src/CrowService.cs index 54f88e5..bd33ec7 100644 --- a/plugins/CECrowPlugin/src/CrowService.cs +++ b/plugins/CECrowPlugin/src/CrowService.cs @@ -579,6 +579,10 @@ namespace CECrowPlugin fiWidget_design_style_values = typeWidget.GetField("design_style_values"); fiWidget_design_style_locations = typeWidget.GetField("design_style_locations"); fiWidget_design_iml_values = typeWidget.GetField("design_iml_values"); + fiWidget_design_line = typeWidget.GetField("design_line"); + fiWidget_design_column = typeWidget.GetField("design_column"); + fiWidget_design_imlPath = typeWidget.GetField("design_imlPath"); + //*********************************** fiWidget_slot = typeWidget.GetField("Slot"); diff --git a/plugins/CECrowPlugin/src/DebugInterfaceWidget.cs b/plugins/CECrowPlugin/src/DebugInterfaceWidget.cs index 97a6fdb..997ab66 100644 --- a/plugins/CECrowPlugin/src/DebugInterfaceWidget.cs +++ b/plugins/CECrowPlugin/src/DebugInterfaceWidget.cs @@ -220,23 +220,19 @@ namespace CECrowPlugin if (hoverWidget != null && hoverWidget != currentWidget) { //currentWidget. RectangleD r = hoverWidget.GetScreenCoordinate() + Slot.Position + Parent.ClientRectangle.Position; - //ctx.ResetClip(); - ctx.LineWidth = 1; ctx.SetDash([1,3]); - ctx.Rectangle(r.Inflated(2)); ctx.SetSource(Colors.Yellow); - ctx.Stroke(); + ctx.Rectangle(r, 1); ctx.SetDash([]); } if (currentWidget != null) { //currentWidget. RectangleD r = currentWidget.GetScreenCoordinate() + Slot.Position + Parent.ClientRectangle.Position; //ctx.ResetClip(); - ctx.LineWidth = 1.0; //ctx.SetDash([2,3]); - ctx.Rectangle(r.Inflated(1)); ctx.SetSource(Colors.White); - ctx.Stroke(); + ctx.Rectangle(r.Inflated(1), 1); +// ctx.Stroke(); //ctx.SetDash([0]); } //crowIFaceService.UnlockRenderMutex(); diff --git a/plugins/CECrowPlugin/src/ForeignWidgetContainer.cs b/plugins/CECrowPlugin/src/ForeignWidgetContainer.cs index f45ead3..2cae562 100644 --- a/plugins/CECrowPlugin/src/ForeignWidgetContainer.cs +++ b/plugins/CECrowPlugin/src/ForeignWidgetContainer.cs @@ -20,6 +20,7 @@ namespace CECrowPlugin internal static Type typeWidget;//, typeGroup, typeContainer, typeTemplatedContainer, typeTemplatedGroup; //design mode members, present only if crow compiled with DESIGN_MODE enabled internal static FieldInfo fiWidget_design_id, fiWidget_design_style_values, fiWidget_design_iml_values, fiWidget_design_style_locations, + fiWidget_design_line, fiWidget_design_column, fiWidget_design_imlPath, fiWidget_slot; Func delGetName; Func delGetScreenCoordinates; @@ -28,7 +29,8 @@ namespace CECrowPlugin Type type; object instance; ForeignWidgetContainer parent; - string designId; + string designId, designImlPath; + int designLine, designColumn; public ForeignWidgetContainer(Type widgetType, object instance, ForeignWidgetContainer parent = null) { type = widgetType; this.instance = instance; @@ -38,7 +40,10 @@ namespace CECrowPlugin delGetScreenCoordinates = (Func)Delegate.CreateDelegate(typeof(Func), instance, type.GetMethod("ScreenCoordinates")); designId = (string)fiWidget_design_id?.GetValue(instance); - + designLine = (int)fiWidget_design_line?.GetValue(instance); + designColumn = (int)fiWidget_design_column?.GetValue(instance); + designImlPath = (string)fiWidget_design_imlPath?.GetValue(instance); + Console.WriteLine($"new ForeignWidgetContainer: {this} {parent}"); } @@ -52,6 +57,9 @@ namespace CECrowPlugin public string Icon => $"#icons.{type.FullName}.svg"; public string Name => delGetName(); public string DesignId => designId; + public string DesignPath => designImlPath; + public int DesignLine => designLine; + public int DesignColumn => designColumn; public Rectangle GetScreenCoordinate() => delGetScreenCoordinates(Slot); public Rectangle Slot => (Rectangle)fiWidget_slot?.GetValue(instance); diff --git a/plugins/CECrowPlugin/src/PropertyContainer.cs b/plugins/CECrowPlugin/src/PropertyContainer.cs index 0643336..458d678 100644 --- a/plugins/CECrowPlugin/src/PropertyContainer.cs +++ b/plugins/CECrowPlugin/src/PropertyContainer.cs @@ -46,7 +46,14 @@ namespace CECrowPlugin } public string Name => pi.Name; public object Value { - get => pi.GetValue(host.Instance); + get { + if (IsSetByIML) { + return host.ImlValues[Name]; + } else if (IsSetByStyling) { + return host.StyleValues[Name]; + } else + return pi.GetValue(host.Instance); + } set { diff --git a/plugins/CECrowPlugin/ui/winProperties.crow b/plugins/CECrowPlugin/ui/winProperties.crow index 8b19e38..fb80901 100644 --- a/plugins/CECrowPlugin/ui/winProperties.crow +++ b/plugins/CECrowPlugin/ui/winProperties.crow @@ -9,6 +9,11 @@