mirror of
https://github.com/Stone-Red-Code/DesktopMagic.git
synced 2026-09-04 08:56:15 +02:00
Plugin development QoL improvements
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -48,7 +48,7 @@
|
||||
<ComboBox x:Name="optionsComboBox" DockPanel.Dock="Top" Height="24" SelectedIndex="0" DisplayMemberPath="Item1" SelectionChanged="OptionsComboBox_SelectionChanged" Background="#FFECECEC" />
|
||||
<ScrollViewer Background="#FFBBBBBB">
|
||||
<Grid>
|
||||
<StackPanel x:Name="optionsPanel" Margin="3,3,3,0" Visibility="Collapsed">
|
||||
<StackPanel x:Name="optionsPanel" Margin="3,3,3,0" HorizontalAlignment="Stretch" Visibility="Collapsed" >
|
||||
</StackPanel>
|
||||
<StackPanel x:Name="musicVisualizerOptionsPanel" Margin="3,3,3,0">
|
||||
<Label Content="{DynamicResource color}" HorizontalAlignment="Left" VerticalAlignment="Top" Padding="0,1" />
|
||||
|
||||
@@ -423,9 +423,10 @@ namespace DesktopMagic
|
||||
|
||||
foreach (SettingElement settingElement in settingElements)
|
||||
{
|
||||
StackPanel stackPanel = new()
|
||||
DockPanel stackPanel = new()
|
||||
{
|
||||
Orientation = Orientation.Horizontal
|
||||
LastChildFill = true,
|
||||
HorizontalAlignment = HorizontalAlignment.Stretch
|
||||
};
|
||||
_ = optionsPanel.Children.Add(stackPanel);
|
||||
|
||||
@@ -440,30 +441,61 @@ namespace DesktopMagic
|
||||
stackPanel.UpdateLayout();
|
||||
label.UpdateLayout();
|
||||
|
||||
if (settingElement.Element is DesktopMagicPluginAPI.Inputs.Heading eHeading)
|
||||
if (settingElement.Element is DesktopMagicPluginAPI.Inputs.Label eLabel)
|
||||
{
|
||||
label.Text = eHeading.Value;
|
||||
label.Text = eLabel.Value;
|
||||
label.Margin = new Thickness(0, 5, 3, 0);
|
||||
label.FontWeight = FontWeights.Bold;
|
||||
label.Width = optionsPanel.ActualWidth;
|
||||
label.HorizontalAlignment = HorizontalAlignment.Stretch;
|
||||
label.TextWrapping = TextWrapping.WrapWithOverflow;
|
||||
eHeading.OnValueChanged += () =>
|
||||
|
||||
if (eLabel.Bold)
|
||||
{
|
||||
label.FontWeight = FontWeights.Bold;
|
||||
}
|
||||
eLabel.OnValueChanged += () =>
|
||||
{
|
||||
Dispatcher.Invoke(() =>
|
||||
{
|
||||
label.Text = eHeading.Value;
|
||||
label.Text = eLabel.Value;
|
||||
Option_ValueChanged();
|
||||
});
|
||||
};
|
||||
}
|
||||
else if (settingElement.Element is DesktopMagicPluginAPI.Inputs.Button eButton)
|
||||
{
|
||||
Button button = new()
|
||||
{
|
||||
Content = eButton.Value,
|
||||
FontSize = 10,
|
||||
Height = 20,
|
||||
Margin = new Thickness(0, 10, 0, 10),
|
||||
Padding = new Thickness(0),
|
||||
VerticalAlignment = VerticalAlignment.Center,
|
||||
HorizontalAlignment = HorizontalAlignment.Stretch
|
||||
};
|
||||
button.Click += (_s, _e) =>
|
||||
{
|
||||
eButton.Click();
|
||||
};
|
||||
eButton.OnValueChanged += () =>
|
||||
{
|
||||
Dispatcher.Invoke(() =>
|
||||
{
|
||||
button.Content = eButton.Value;
|
||||
Option_ValueChanged();
|
||||
});
|
||||
};
|
||||
|
||||
_ = stackPanel.Children.Add(button);
|
||||
}
|
||||
else if (settingElement.Element is DesktopMagicPluginAPI.Inputs.CheckBox eCheckBox)
|
||||
{
|
||||
CheckBox checkBox = new()
|
||||
{
|
||||
IsChecked = eCheckBox.Value,
|
||||
Width = optionsPanel.ActualWidth - label.ActualWidth,
|
||||
Style = (Style)FindResource("MaterialDesignDarkCheckBox"),
|
||||
VerticalAlignment = VerticalAlignment.Center
|
||||
VerticalAlignment = VerticalAlignment.Center,
|
||||
HorizontalAlignment = HorizontalAlignment.Stretch
|
||||
};
|
||||
checkBox.Click += (_s, _e) =>
|
||||
{
|
||||
@@ -486,8 +518,8 @@ namespace DesktopMagic
|
||||
{
|
||||
Text = eTextBox.Value,
|
||||
TextWrapping = TextWrapping.Wrap,
|
||||
Width = optionsPanel.ActualWidth - label.ActualWidth,
|
||||
VerticalAlignment = VerticalAlignment.Center
|
||||
VerticalAlignment = VerticalAlignment.Center,
|
||||
HorizontalAlignment = HorizontalAlignment.Stretch
|
||||
};
|
||||
textBox.TextChanged += (_s, _e) =>
|
||||
{
|
||||
@@ -510,8 +542,8 @@ namespace DesktopMagic
|
||||
Value = eIntegerUpDown.Value,
|
||||
Minimum = eIntegerUpDown.Minimum,
|
||||
Maximum = eIntegerUpDown.Maximum,
|
||||
Width = optionsPanel.ActualWidth - label.ActualWidth,
|
||||
VerticalAlignment = VerticalAlignment.Center
|
||||
VerticalAlignment = VerticalAlignment.Center,
|
||||
HorizontalAlignment = HorizontalAlignment.Stretch
|
||||
};
|
||||
integerUpDown.ValueChanged += (_s, _e) =>
|
||||
{
|
||||
@@ -536,8 +568,8 @@ namespace DesktopMagic
|
||||
Maximum = eSlider.Maximum,
|
||||
TickFrequency = 1,
|
||||
IsSnapToTickEnabled = true,
|
||||
Width = optionsPanel.ActualWidth - label.ActualWidth,
|
||||
VerticalAlignment = VerticalAlignment.Center
|
||||
VerticalAlignment = VerticalAlignment.Center,
|
||||
HorizontalAlignment = HorizontalAlignment.Stretch
|
||||
};
|
||||
slider.ValueChanged += (_s, _e) =>
|
||||
{
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -16,5 +16,5 @@ C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagic\App.xaml
|
||||
226605658444
|
||||
CalendarWindow.xaml;CpuUsageWindow.xaml;DateWindow.xaml;InputDialog.xaml;MainWindow.xaml;MusicVisualizerWindow.xaml;Plugin\PluginWindow.xaml;Resources\StringResources.de.xaml;Resources\StringResources.en.xaml;TimeWindow.xaml;
|
||||
|
||||
False
|
||||
True
|
||||
|
||||
|
||||
@@ -86,7 +86,7 @@ namespace DesktopMagic {
|
||||
return;
|
||||
}
|
||||
_contentLoaded = true;
|
||||
System.Uri resourceLocater = new System.Uri("/DesktopMagic;component/inputdialog.xaml", System.UriKind.Relative);
|
||||
System.Uri resourceLocater = new System.Uri("/DesktopMagic;V1.0.0.0;component/inputdialog.xaml", System.UriKind.Relative);
|
||||
|
||||
#line 1 "..\..\..\InputDialog.xaml"
|
||||
System.Windows.Application.LoadComponent(this, resourceLocater);
|
||||
|
||||
Binary file not shown.
@@ -1,4 +1,4 @@
|
||||
#pragma checksum "..\..\..\MainWindow.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "E2A0CEAB1CE4E799C8F11878BEEF4140351A3388"
|
||||
#pragma checksum "..\..\..\MainWindow.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "C65BB0CCBD38447F44B1617C45B72B340536B1CC"
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// Dieser Code wurde von einem Tool generiert.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#pragma checksum "..\..\..\MainWindow.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "E2A0CEAB1CE4E799C8F11878BEEF4140351A3388"
|
||||
#pragma checksum "..\..\..\MainWindow.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "C65BB0CCBD38447F44B1617C45B72B340536B1CC"
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// Dieser Code wurde von einem Tool generiert.
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,4 +1,4 @@
|
||||
#pragma checksum "..\..\..\MainWindow.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "E2A0CEAB1CE4E799C8F11878BEEF4140351A3388"
|
||||
#pragma checksum "..\..\..\MainWindow.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "C65BB0CCBD38447F44B1617C45B72B340536B1CC"
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// Dieser Code wurde von einem Tool generiert.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#pragma checksum "..\..\..\MainWindow.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "E2A0CEAB1CE4E799C8F11878BEEF4140351A3388"
|
||||
#pragma checksum "..\..\..\MainWindow.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "C65BB0CCBD38447F44B1617C45B72B340536B1CC"
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// Dieser Code wurde von einem Tool generiert.
|
||||
|
||||
Binary file not shown.
@@ -8,8 +8,11 @@ namespace DesktopMagicPlugin.Test
|
||||
{
|
||||
public class PluginScript : Plugin
|
||||
{
|
||||
[Element("Heading")]
|
||||
private Heading heading = new Heading("");
|
||||
[Element]
|
||||
private Label heading = new Label("Heading", true);
|
||||
|
||||
[Element]
|
||||
private Label label = new Label("");
|
||||
|
||||
[Element("Slider:")]
|
||||
private Slider slider = new Slider(1, 23, 4);
|
||||
@@ -17,10 +20,22 @@ namespace DesktopMagicPlugin.Test
|
||||
[Element("Text:")]
|
||||
private TextBox textBox = new TextBox("abc");
|
||||
|
||||
[Element]
|
||||
private Button button = new Button("Press me!");
|
||||
|
||||
public override int UpdateInterval { get; set; }
|
||||
|
||||
public PluginScript()
|
||||
{
|
||||
slider.OnValueChanged += Slider_OnValueChanged;
|
||||
textBox.OnValueChanged += TextBox_OnValueChanged;
|
||||
button.OnClick += Button_OnClick; ;
|
||||
}
|
||||
|
||||
private void Button_OnClick()
|
||||
{
|
||||
Debug.WriteLine("Button pressed");
|
||||
Application.UpdateWindow();
|
||||
}
|
||||
|
||||
private void TextBox_OnValueChanged()
|
||||
@@ -42,7 +57,7 @@ namespace DesktopMagicPlugin.Test
|
||||
g.Clear(Application.Color);
|
||||
g.DrawString(str, new Font("arial", 10), Brushes.Black, new PointF(0, 0));
|
||||
|
||||
heading.Value = str;
|
||||
label.Value = str;
|
||||
slider.Value++;
|
||||
|
||||
return bmp;
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,38 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DesktopMagicPluginAPI.Inputs
|
||||
{
|
||||
public class Button : Element
|
||||
{
|
||||
public event Action OnClick;
|
||||
|
||||
private string _value;
|
||||
|
||||
public string Value
|
||||
{
|
||||
get => _value;
|
||||
set
|
||||
{
|
||||
if (_value != value)
|
||||
{
|
||||
_value = value;
|
||||
ValueChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public Button(string value)
|
||||
{
|
||||
Value = value;
|
||||
}
|
||||
|
||||
public void Click()
|
||||
{
|
||||
OnClick?.Invoke();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -9,7 +9,7 @@ namespace DesktopMagicPluginAPI.Inputs
|
||||
public string Name { get; }
|
||||
public int OrderIndex { get; }
|
||||
|
||||
public ElementAttribute(string name, int orderIndex = 0)
|
||||
public ElementAttribute(string name = "", int orderIndex = 0)
|
||||
{
|
||||
Name = name;
|
||||
OrderIndex = orderIndex;
|
||||
|
||||
+5
-2
@@ -1,6 +1,6 @@
|
||||
namespace DesktopMagicPluginAPI.Inputs
|
||||
{
|
||||
public class Heading : Element
|
||||
public class Label : Element
|
||||
{
|
||||
private string _value;
|
||||
|
||||
@@ -17,9 +17,12 @@
|
||||
}
|
||||
}
|
||||
|
||||
public Heading(string value)
|
||||
public bool Bold { get; set; }
|
||||
|
||||
public Label(string value, bool bold = false)
|
||||
{
|
||||
Value = value;
|
||||
Bold = bold;
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1
-1
@@ -1 +1 @@
|
||||
3d351e819578d1d8c8cf3fc4ddef05ac96911424
|
||||
ced4ac85c0c7d0fe87e126147d10f5c33d432ea7
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1
-1
@@ -1 +1 @@
|
||||
78b084028688b20b372609aac30267390d5f6d25
|
||||
801158c4d5ba4b4a8b0e6e57ad9e67f56077c71a
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user