Skip to content

Commit 101955f

Browse files
committed
- Adjust JsonRPCplugin Panel Layout
- Adjust System Plugin Setting Panel Margin
1 parent ef04819 commit 101955f

File tree

3 files changed

+105
-53
lines changed

3 files changed

+105
-53
lines changed

Flow.Launcher.Core/Plugin/JsonRPCPlugin.cs

Lines changed: 54 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -340,36 +340,46 @@ public virtual async Task InitAsync(PluginInitContext context)
340340
this.context = context;
341341
await InitSettingAsync();
342342
}
343-
private static readonly Thickness settingControlMargin = new(10, 4, 10, 4);
344-
private static readonly Thickness settingPanelMargin = new(15, 20, 15, 20);
345-
private static readonly Thickness settingTextBlockMargin = new(10, 4, 10, 4);
343+
private static readonly Thickness settingControlMargin = new(0, 6, 0, 6);
344+
private static readonly Thickness settingPanelMargin = new(70, 18, 18, 18);
345+
private static readonly Thickness settingTextBlockMargin = new(0, 6, 0, 6);
346+
private static readonly Thickness settingLabelMargin = new(0, 0, 18, 0);
346347
private JsonRpcConfigurationModel _settingsTemplate;
347348

348349
public Control CreateSettingPanel()
349350
{
350351
if (Settings == null)
351352
return new();
352353
var settingWindow = new UserControl();
353-
var mainPanel = new StackPanel
354+
var mainPanel = new Grid
354355
{
355-
Margin = settingPanelMargin, Orientation = Orientation.Vertical
356+
Margin = settingPanelMargin
356357
};
358+
ColumnDefinition gridCol1 = new ColumnDefinition() { Width = GridLength.Auto };
359+
ColumnDefinition gridCol2 = new ColumnDefinition();
360+
gridCol2.Width = new GridLength(75, GridUnitType.Star);
361+
mainPanel.ColumnDefinitions.Add(gridCol1);
362+
mainPanel.ColumnDefinitions.Add(gridCol2);
363+
357364
settingWindow.Content = mainPanel;
358-
365+
int rowCount = 0;
359366
foreach (var (type, attribute) in _settingsTemplate.Body)
360367
{
361-
var panel = new StackPanel
362-
{
363-
Orientation = Orientation.Horizontal, Margin = settingControlMargin
364-
};
368+
//var panel = new StackPanel
369+
//{
370+
//Orientation = Orientation.Horizontal, Margin = settingControlMargin
371+
//};
372+
RowDefinition gridRow = new RowDefinition();
373+
mainPanel.RowDefinitions.Add(gridRow);
365374
var name = new TextBlock()
366375
{
367376
Text = attribute.Label,
368-
Width = 120,
369377
VerticalAlignment = VerticalAlignment.Center,
370-
Margin = settingControlMargin,
378+
Margin = settingLabelMargin,
371379
TextWrapping = TextWrapping.WrapWithOverflow
372380
};
381+
Grid.SetColumn(name, 0);
382+
Grid.SetRow(name, rowCount);
373383

374384
FrameworkElement contentControl;
375385

@@ -381,10 +391,15 @@ public Control CreateSettingPanel()
381391
{
382392
Text = attribute.Description.Replace("\\r\\n", "\r\n"),
383393
Margin = settingTextBlockMargin,
384-
MaxWidth = 500,
394+
VerticalAlignment = VerticalAlignment.Center,
395+
HorizontalAlignment = HorizontalAlignment.Left,
396+
TextAlignment = TextAlignment.Left,
385397
TextWrapping = TextWrapping.WrapWithOverflow
386398
};
387-
break;
399+
Grid.SetColumn(contentControl, 0);
400+
Grid.SetColumnSpan(contentControl, 2);
401+
Grid.SetRow(contentControl, rowCount);
402+
break;
388403
}
389404
case "input":
390405
{
@@ -393,14 +408,17 @@ public Control CreateSettingPanel()
393408
Width = 300,
394409
Text = Settings[attribute.Name] as string ?? string.Empty,
395410
Margin = settingControlMargin,
411+
HorizontalAlignment = HorizontalAlignment.Left,
396412
ToolTip = attribute.Description
397413
};
398414
textBox.TextChanged += (_, _) =>
399415
{
400416
Settings[attribute.Name] = textBox.Text;
401417
};
402418
contentControl = textBox;
403-
break;
419+
Grid.SetColumn(contentControl, 1);
420+
Grid.SetRow(contentControl, rowCount);
421+
break;
404422
}
405423
case "textarea":
406424
{
@@ -411,6 +429,7 @@ public Control CreateSettingPanel()
411429
Margin = settingControlMargin,
412430
TextWrapping = TextWrapping.WrapWithOverflow,
413431
AcceptsReturn = true,
432+
HorizontalAlignment = HorizontalAlignment.Left,
414433
Text = Settings[attribute.Name] as string ?? string.Empty,
415434
ToolTip = attribute.Description
416435
};
@@ -419,7 +438,9 @@ public Control CreateSettingPanel()
419438
Settings[attribute.Name] = ((TextBox)sender).Text;
420439
};
421440
contentControl = textBox;
422-
break;
441+
Grid.SetColumn(contentControl, 1);
442+
Grid.SetRow(contentControl, rowCount);
443+
break;
423444
}
424445
case "passwordBox":
425446
{
@@ -429,14 +450,17 @@ public Control CreateSettingPanel()
429450
Margin = settingControlMargin,
430451
Password = Settings[attribute.Name] as string ?? string.Empty,
431452
PasswordChar = attribute.passwordChar == default ? '*' : attribute.passwordChar,
453+
HorizontalAlignment = HorizontalAlignment.Left,
432454
ToolTip = attribute.Description
433455
};
434456
passwordBox.PasswordChanged += (sender, _) =>
435457
{
436458
Settings[attribute.Name] = ((PasswordBox)sender).Password;
437459
};
438460
contentControl = passwordBox;
439-
break;
461+
Grid.SetColumn(contentControl, 1);
462+
Grid.SetRow(contentControl, rowCount);
463+
break;
440464
}
441465
case "dropdown":
442466
{
@@ -445,36 +469,45 @@ public Control CreateSettingPanel()
445469
ItemsSource = attribute.Options,
446470
SelectedItem = Settings[attribute.Name],
447471
Margin = settingControlMargin,
472+
HorizontalAlignment = HorizontalAlignment.Left,
448473
ToolTip = attribute.Description
449474
};
450475
comboBox.SelectionChanged += (sender, _) =>
451476
{
452477
Settings[attribute.Name] = (string)((ComboBox)sender).SelectedItem;
453478
};
454479
contentControl = comboBox;
455-
break;
480+
Grid.SetColumn(contentControl, 1);
481+
Grid.SetRow(contentControl, rowCount);
482+
break;
456483
}
457484
case "checkbox":
458485
var checkBox = new CheckBox
459486
{
460487
IsChecked = Settings[attribute.Name] is bool isChecked ? isChecked : bool.Parse(attribute.DefaultValue),
461488
Margin = settingControlMargin,
489+
HorizontalAlignment = HorizontalAlignment.Left,
462490
ToolTip = attribute.Description
463491
};
464492
checkBox.Click += (sender, _) =>
465493
{
466494
Settings[attribute.Name] = ((CheckBox)sender).IsChecked;
467495
};
468496
contentControl = checkBox;
497+
Grid.SetColumn(contentControl, 1);
498+
Grid.SetRow(contentControl, rowCount);
469499
break;
470500
default:
471501
continue;
472502
}
473503
if (type != "textBlock")
474504
_settingControls[attribute.Name] = contentControl;
475-
panel.Children.Add(name);
476-
panel.Children.Add(contentControl);
477-
mainPanel.Children.Add(panel);
505+
//panel.Children.Add(name);
506+
//panel.Children.Add(contentControl);
507+
//mainPanel.Children.Add(panel);
508+
mainPanel.Children.Add(name);
509+
mainPanel.Children.Add(contentControl);
510+
rowCount++;
478511
}
479512
return settingWindow;
480513
}
Lines changed: 38 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,39 @@
1-
<UserControl x:Class="Flow.Launcher.Plugin.Sys.SysSettings"
2-
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3-
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4-
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
5-
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
6-
mc:Ignorable="d"
7-
d:DesignHeight="300" d:DesignWidth="300">
8-
<Grid Margin="10">
9-
<ListView x:Name="lbxCommands" Grid.Row="0" Style="{StaticResource {x:Static GridView.GridViewStyleKey}}"
10-
BorderBrush="DarkGray"
11-
BorderThickness="1"
12-
Margin="7 15 0 25">
13-
<ListView.View>
14-
<GridView>
15-
<GridViewColumn Header="{DynamicResource flowlauncher_plugin_sys_command}" Width="150">
16-
<GridViewColumn.CellTemplate>
17-
<DataTemplate>
18-
<TextBlock Text="{Binding Title}"/>
19-
</DataTemplate>
20-
</GridViewColumn.CellTemplate>
21-
</GridViewColumn>
22-
<GridViewColumn Header="{DynamicResource flowlauncher_plugin_sys_desc}" Width="379">
23-
<GridViewColumn.CellTemplate>
24-
<DataTemplate>
25-
<TextBlock Text="{Binding SubTitle}"/>
26-
</DataTemplate>
27-
</GridViewColumn.CellTemplate>
28-
</GridViewColumn>
29-
</GridView>
30-
</ListView.View>
31-
</ListView>
32-
</Grid>
1+
<UserControl
2+
x:Class="Flow.Launcher.Plugin.Sys.SysSettings"
3+
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
4+
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
5+
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
6+
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
7+
d:DesignHeight="300"
8+
d:DesignWidth="300"
9+
mc:Ignorable="d">
10+
<Grid Margin="70,18,18,18">
11+
<ListView
12+
x:Name="lbxCommands"
13+
Grid.Row="0"
14+
Margin="0"
15+
BorderBrush="DarkGray"
16+
BorderThickness="1"
17+
SizeChanged="ListView_SizeChanged"
18+
Style="{StaticResource {x:Static GridView.GridViewStyleKey}}">
19+
<ListView.View>
20+
<GridView>
21+
<GridViewColumn Width="150" Header="{DynamicResource flowlauncher_plugin_sys_command}">
22+
<GridViewColumn.CellTemplate>
23+
<DataTemplate>
24+
<TextBlock Text="{Binding Title}" TextTrimming="CharacterEllipsis" />
25+
</DataTemplate>
26+
</GridViewColumn.CellTemplate>
27+
</GridViewColumn>
28+
<GridViewColumn Width="379" Header="{DynamicResource flowlauncher_plugin_sys_desc}">
29+
<GridViewColumn.CellTemplate>
30+
<DataTemplate>
31+
<TextBlock Text="{Binding SubTitle}" TextTrimming="CharacterEllipsis" />
32+
</DataTemplate>
33+
</GridViewColumn.CellTemplate>
34+
</GridViewColumn>
35+
</GridView>
36+
</ListView.View>
37+
</ListView>
38+
</Grid>
3339
</UserControl>

Plugins/Flow.Launcher.Plugin.Sys/SysSettings.xaml.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System.Collections.Generic;
2+
using System.Windows;
23
using System.Windows.Controls;
34

45
namespace Flow.Launcher.Plugin.Sys
@@ -14,5 +15,17 @@ public SysSettings(List<Result> Results)
1415
lbxCommands.Items.Add(Result);
1516
}
1617
}
18+
private void ListView_SizeChanged(object sender, SizeChangedEventArgs e)
19+
{
20+
ListView listView = sender as ListView;
21+
GridView gView = listView.View as GridView;
22+
23+
var workingWidth = listView.ActualWidth - SystemParameters.VerticalScrollBarWidth; // take into account vertical scrollbar
24+
var col1 = 0.3;
25+
var col2 = 0.7;
26+
27+
gView.Columns[0].Width = workingWidth * col1;
28+
gView.Columns[1].Width = workingWidth * col2;
29+
}
1730
}
1831
}

0 commit comments

Comments
 (0)