diff --git a/Flow.Launcher.Core/ExternalPlugins/UserPlugin.cs b/Flow.Launcher.Core/ExternalPlugins/UserPlugin.cs
index f98815c1a..bb1279b2c 100644
--- a/Flow.Launcher.Core/ExternalPlugins/UserPlugin.cs
+++ b/Flow.Launcher.Core/ExternalPlugins/UserPlugin.cs
@@ -1,4 +1,6 @@
-namespace Flow.Launcher.Core.ExternalPlugins
+using System;
+
+namespace Flow.Launcher.Core.ExternalPlugins
{
public record UserPlugin
{
@@ -12,5 +14,8 @@
public string UrlDownload { get; set; }
public string UrlSourceCode { get; set; }
public string IcoPath { get; set; }
+ public DateTime LatestReleaseDate { get; set; }
+ public DateTime DateAdded { get; set; }
+
}
}
diff --git a/Flow.Launcher.Infrastructure/UserSettings/Settings.cs b/Flow.Launcher.Infrastructure/UserSettings/Settings.cs
index 211bc1798..27afff5b6 100644
--- a/Flow.Launcher.Infrastructure/UserSettings/Settings.cs
+++ b/Flow.Launcher.Infrastructure/UserSettings/Settings.cs
@@ -41,6 +41,10 @@ namespace Flow.Launcher.Infrastructure.UserSettings
public bool UseGlyphIcons { get; set; } = true;
public bool UseAnimation { get; set; } = true;
public bool UseSound { get; set; } = true;
+ public bool UseClock { get; set; } = true;
+ public bool UseDate { get; set; } = false;
+ public string TimeFormat { get; set; } = "hh:mm tt";
+ public string DateFormat { get; set; } = "MM'/'dd ddd";
public bool FirstLaunch { get; set; } = true;
public double SettingWindowWidth { get; set; } = 1000;
@@ -199,7 +203,7 @@ namespace Flow.Launcher.Infrastructure.UserSettings
}
public bool LeaveCmdOpen { get; set; }
public bool HideWhenDeactive { get; set; } = true;
- public bool RememberLastLaunchLocation { get; set; }
+ public SearchWindowPositions SearchWindowPosition { get; set; } = SearchWindowPositions.MouseScreenCenter;
public bool IgnoreHotkeysOnFullscreen { get; set; }
public HttpProxy Proxy { get; set; } = new HttpProxy();
@@ -225,4 +229,12 @@ namespace Flow.Launcher.Infrastructure.UserSettings
Light,
Dark
}
+ public enum SearchWindowPositions
+ {
+ RememberLastLaunchLocation,
+ MouseScreenCenter,
+ MouseScreenCenterTop,
+ MouseScreenLeftTop,
+ MouseScreenRightTop
+ }
}
diff --git a/Flow.Launcher/Converters/BoolToVisibilityConverter.cs b/Flow.Launcher/Converters/BoolToVisibilityConverter.cs
new file mode 100644
index 000000000..ad474d693
--- /dev/null
+++ b/Flow.Launcher/Converters/BoolToVisibilityConverter.cs
@@ -0,0 +1,43 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+
+namespace Flow.Launcher.Converters
+{
+ public class BoolToVisibilityConverter : IValueConverter
+ {
+ public object Convert(object value, System.Type targetType, object parameter, CultureInfo culture)
+ {
+ if (parameter != null)
+ {
+ if (value is true)
+ {
+ return Visibility.Collapsed;
+ }
+
+ else
+ {
+ return Visibility.Visible;
+ }
+ }
+ else {
+ if (value is true)
+ {
+ return Visibility.Visible;
+ }
+
+ else {
+ return Visibility.Collapsed;
+ }
+ }
+ }
+
+ public object ConvertBack(object value, System.Type targetType, object parameter, CultureInfo culture) => throw new System.InvalidOperationException();
+ }
+}
diff --git a/Flow.Launcher/Converters/TextConverter.cs b/Flow.Launcher/Converters/TextConverter.cs
new file mode 100644
index 000000000..90d445776
--- /dev/null
+++ b/Flow.Launcher/Converters/TextConverter.cs
@@ -0,0 +1,32 @@
+using System;
+using System.Globalization;
+using System.Windows.Data;
+using Flow.Launcher.Core.Resource;
+using Flow.Launcher.ViewModel;
+
+namespace Flow.Launcher.Converters
+{
+ public class TextConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ var ID = value.ToString();
+ switch(ID)
+ {
+ case PluginStoreItemViewModel.NewRelease:
+ return InternationalizationManager.Instance.GetTranslation("pluginStore_NewRelease");
+ case PluginStoreItemViewModel.RecentlyUpdated:
+ return InternationalizationManager.Instance.GetTranslation("pluginStore_RecentlyUpdated");
+ case PluginStoreItemViewModel.None:
+ return InternationalizationManager.Instance.GetTranslation("pluginStore_None");
+ case PluginStoreItemViewModel.Installed:
+ return InternationalizationManager.Instance.GetTranslation("pluginStore_Installed");
+ default:
+ return ID;
+ }
+
+ }
+
+ public object ConvertBack(object value, System.Type targetType, object parameter, CultureInfo culture) => throw new System.InvalidOperationException();
+ }
+}
diff --git a/Flow.Launcher/Helper/HotKeyMapper.cs b/Flow.Launcher/Helper/HotKeyMapper.cs
index a3ad20f77..b9ac6afb3 100644
--- a/Flow.Launcher/Helper/HotKeyMapper.cs
+++ b/Flow.Launcher/Helper/HotKeyMapper.cs
@@ -17,7 +17,7 @@ namespace Flow.Launcher.Helper
internal static void Initialize(MainViewModel mainVM)
{
mainViewModel = mainVM;
- settings = mainViewModel._settings;
+ settings = mainViewModel.Settings;
SetHotkey(settings.Hotkey, OnToggleHotkey);
LoadCustomPluginHotkey();
diff --git a/Flow.Launcher/Languages/da.xaml b/Flow.Launcher/Languages/da.xaml
index 7ec94fed1..25bd195dd 100644
--- a/Flow.Launcher/Languages/da.xaml
+++ b/Flow.Launcher/Languages/da.xaml
@@ -77,13 +77,13 @@
Søgetid:
| Version
Website
- Uninstall
+ Uninstall
Plugin Store
Refresh
- Install
+ Install
Tema
diff --git a/Flow.Launcher/Languages/de.xaml b/Flow.Launcher/Languages/de.xaml
index a1b0b3b9b..ebd549adf 100644
--- a/Flow.Launcher/Languages/de.xaml
+++ b/Flow.Launcher/Languages/de.xaml
@@ -77,13 +77,13 @@
Abfragezeit:
Version
Webseite
- Deinstallieren
+ Deinstallieren
Erweiterungen laden
Aktualisieren
- Installieren
+ Installieren
Design
diff --git a/Flow.Launcher/Languages/en.xaml b/Flow.Launcher/Languages/en.xaml
index 824201f7d..0eff97f4a 100644
--- a/Flow.Launcher/Languages/en.xaml
+++ b/Flow.Launcher/Languages/en.xaml
@@ -23,6 +23,8 @@
Text
Game Mode
Suspend the use of Hotkeys.
+ Position Reset
+ Reset search window position
Flow Launcher Settings
@@ -33,7 +35,13 @@
Error setting launch on startup
Hide Flow Launcher when focus is lost
Do not show new version notifications
+ Search Window Position
Remember last launch location
+ Remember Last Location
+ Mouse Focused Screen - Center
+ Mouse Focused Screen - Center Top
+ Mouse Focused Screen - Left Top
+ Mouse Focused Screen - Right Top
Language
Last Query Style
Show/Hide previous results when Flow Launcher is reactivated.
@@ -84,13 +92,24 @@
Query time:
| Version
Website
- Uninstall
Plugin Store
+ New Release
+ Recently Updated
+ Plugins
+ Installed
Refresh
- Install
+ Install
+ Uninstall
+ Update
+ Plug-in already installed
+ New Version
+ This plug-in has been updated within the last 7 days
+ New Update is Available
+
+
Theme
@@ -113,6 +132,8 @@
Play a small sound when the search window opens
Animation
Use Animation in UI
+ Clock
+ Date
Hotkey
diff --git a/Flow.Launcher/Languages/es-419.xaml b/Flow.Launcher/Languages/es-419.xaml
index 84a492d15..a410f4b32 100644
--- a/Flow.Launcher/Languages/es-419.xaml
+++ b/Flow.Launcher/Languages/es-419.xaml
@@ -77,13 +77,13 @@
Tiempo de consulta:
| Versión
Sitio web
- Uninstall
+ Uninstall
Tienda de Plugins
Recargar
- Instalar
+ Instalar
Tema
diff --git a/Flow.Launcher/Languages/fr.xaml b/Flow.Launcher/Languages/fr.xaml
index 141d868a2..edc5e4f07 100644
--- a/Flow.Launcher/Languages/fr.xaml
+++ b/Flow.Launcher/Languages/fr.xaml
@@ -77,13 +77,13 @@
Utilisation :
| Version
Website
- Désinstaller
+ Désinstaller
Plugin Store
Refresh
- Install
+ Install
Thèmes
diff --git a/Flow.Launcher/Languages/it.xaml b/Flow.Launcher/Languages/it.xaml
index 4304aead8..30a401875 100644
--- a/Flow.Launcher/Languages/it.xaml
+++ b/Flow.Launcher/Languages/it.xaml
@@ -77,13 +77,13 @@
Tempo ricerca:
| Versione
Sito Web
- Disinstalla
+ Disinstalla
Negozio dei Plugin
Aggiorna
- Installa
+ Installa
Tema
diff --git a/Flow.Launcher/Languages/ja.xaml b/Flow.Launcher/Languages/ja.xaml
index 8c1386371..a2dcfb6a0 100644
--- a/Flow.Launcher/Languages/ja.xaml
+++ b/Flow.Launcher/Languages/ja.xaml
@@ -77,13 +77,13 @@
クエリ時間:
| バージョン
ウェブサイト
- アンインストール
+ アンインストール
プラグインストア
Refresh
- Install
+ Install
テーマ
diff --git a/Flow.Launcher/Languages/ko.xaml b/Flow.Launcher/Languages/ko.xaml
index 809c5ccf8..acb68cb4f 100644
--- a/Flow.Launcher/Languages/ko.xaml
+++ b/Flow.Launcher/Languages/ko.xaml
@@ -77,13 +77,13 @@
쿼리 시간:
| 버전
웹사이트
- 제거
+ 제거
플러그인 스토어
새로고침
- 설치
+ 설치
테마
diff --git a/Flow.Launcher/Languages/nb.xaml b/Flow.Launcher/Languages/nb.xaml
index e90a32347..0848e9d64 100644
--- a/Flow.Launcher/Languages/nb.xaml
+++ b/Flow.Launcher/Languages/nb.xaml
@@ -77,13 +77,13 @@
Query time:
| Version
Website
- Uninstall
+ Uninstall
Plugin Store
Refresh
- Install
+ Install
Theme
diff --git a/Flow.Launcher/Languages/nl.xaml b/Flow.Launcher/Languages/nl.xaml
index 77a8e9e29..e398afa51 100644
--- a/Flow.Launcher/Languages/nl.xaml
+++ b/Flow.Launcher/Languages/nl.xaml
@@ -77,13 +77,13 @@
Query tijd:
| Versie
Website
- Uninstall
+ Uninstall
Plugin Winkel
Vernieuwen
- Installeren
+ Installeren
Thema
diff --git a/Flow.Launcher/Languages/pl.xaml b/Flow.Launcher/Languages/pl.xaml
index bd7acd4e8..fc5badd69 100644
--- a/Flow.Launcher/Languages/pl.xaml
+++ b/Flow.Launcher/Languages/pl.xaml
@@ -77,13 +77,13 @@
Czas zapytania:
| Version
Website
- Odinstalowywanie
+ Odinstalowywanie
Plugin Store
Refresh
- Install
+ Install
Skórka
diff --git a/Flow.Launcher/Languages/pt-br.xaml b/Flow.Launcher/Languages/pt-br.xaml
index 28ed30916..f6fc062c6 100644
--- a/Flow.Launcher/Languages/pt-br.xaml
+++ b/Flow.Launcher/Languages/pt-br.xaml
@@ -77,13 +77,13 @@
Tempo de consulta:
| Version
Website
- Desinstalar
+ Desinstalar
Plugin Store
Refresh
- Install
+ Install
Tema
diff --git a/Flow.Launcher/Languages/pt-pt.xaml b/Flow.Launcher/Languages/pt-pt.xaml
index e7179e6e8..b19fc9924 100644
--- a/Flow.Launcher/Languages/pt-pt.xaml
+++ b/Flow.Launcher/Languages/pt-pt.xaml
@@ -77,13 +77,13 @@
Tempo de consulta:
| Versão
Site
- Desinstalar
+ Desinstalar
Loja de plugins
Recarregar
- Instalar
+ Instalar
Tema
diff --git a/Flow.Launcher/Languages/ru.xaml b/Flow.Launcher/Languages/ru.xaml
index 2c8ca9fa3..87b3dd4ef 100644
--- a/Flow.Launcher/Languages/ru.xaml
+++ b/Flow.Launcher/Languages/ru.xaml
@@ -77,13 +77,13 @@
Запрос:
| Version
Website
- Удалить
+ Удалить
Plugin Store
Refresh
- Install
+ Install
Тема
diff --git a/Flow.Launcher/Languages/sk.xaml b/Flow.Launcher/Languages/sk.xaml
index c4d5de6bf..ee703bcf8 100644
--- a/Flow.Launcher/Languages/sk.xaml
+++ b/Flow.Launcher/Languages/sk.xaml
@@ -77,13 +77,13 @@
Trvanie dopytu:
| Verzia
Webstránka
- Odinštalovať
+ Odinštalovať
Repozitár pluginov
Obnoviť
- Inštalovať
+ Inštalovať
Motív
diff --git a/Flow.Launcher/Languages/sr.xaml b/Flow.Launcher/Languages/sr.xaml
index 61f619fd0..e805860dc 100644
--- a/Flow.Launcher/Languages/sr.xaml
+++ b/Flow.Launcher/Languages/sr.xaml
@@ -77,13 +77,13 @@
Vreme upita:
| Version
Website
- Uninstall
+ Uninstall
Plugin Store
Refresh
- Install
+ Install
Tema
diff --git a/Flow.Launcher/Languages/tr.xaml b/Flow.Launcher/Languages/tr.xaml
index fb8e1d6f6..4a016ced8 100644
--- a/Flow.Launcher/Languages/tr.xaml
+++ b/Flow.Launcher/Languages/tr.xaml
@@ -77,13 +77,13 @@
Sorgu Süresi:
Sürüm
İnternet Sitesi
- Kaldır
+ Kaldır
Eklenti Mağazası
Yenile
- İndir
+ İndir
Temalar
diff --git a/Flow.Launcher/Languages/uk-UA.xaml b/Flow.Launcher/Languages/uk-UA.xaml
index 8115a5dd1..a34ed4e8b 100644
--- a/Flow.Launcher/Languages/uk-UA.xaml
+++ b/Flow.Launcher/Languages/uk-UA.xaml
@@ -77,13 +77,13 @@
Запит:
| Версія
Сайт
- Uninstall
+ Uninstall
Магазин плагінів
Оновити
- Встановити
+ Встановити
Тема
diff --git a/Flow.Launcher/Languages/zh-cn.xaml b/Flow.Launcher/Languages/zh-cn.xaml
index d80bfdaf6..b62736d16 100644
--- a/Flow.Launcher/Languages/zh-cn.xaml
+++ b/Flow.Launcher/Languages/zh-cn.xaml
@@ -77,13 +77,13 @@
查询耗时:
| 版本
官方网站
- 卸载
+ 卸载
插件商店
刷新
- 安装
+ 安装
主题
diff --git a/Flow.Launcher/Languages/zh-tw.xaml b/Flow.Launcher/Languages/zh-tw.xaml
index 71cc887cf..69abbe401 100644
--- a/Flow.Launcher/Languages/zh-tw.xaml
+++ b/Flow.Launcher/Languages/zh-tw.xaml
@@ -77,13 +77,13 @@
查詢耗時:
| 版本
官方網站
- 解除安裝
+ 解除安裝
外掛商店
重新整理
- 安裝
+ 安裝
主題
diff --git a/Flow.Launcher/MainWindow.xaml b/Flow.Launcher/MainWindow.xaml
index cc605edc9..6f3915076 100644
--- a/Flow.Launcher/MainWindow.xaml
+++ b/Flow.Launcher/MainWindow.xaml
@@ -1,5 +1,4 @@
-
+ mc:Ignorable="d">
+
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+ Command="{Binding IncreaseWidthCommand}"
+ Modifiers="Control" />
+ Command="{Binding DecreaseWidthCommand}"
+ Modifiers="Control" />
+ Command="{Binding IncreaseMaxResultCommand}"
+ Modifiers="Control" />
+ Command="{Binding DecreaseMaxResultCommand}"
+ Modifiers="Control" />
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
+
+
+
-
-
+
-
-
-
-
+
+
+
-
-
+
+
+
+
+
+
+
+
-
+
\ No newline at end of file
diff --git a/Flow.Launcher/MainWindow.xaml.cs b/Flow.Launcher/MainWindow.xaml.cs
index 1c6845623..630daf42e 100644
--- a/Flow.Launcher/MainWindow.xaml.cs
+++ b/Flow.Launcher/MainWindow.xaml.cs
@@ -20,8 +20,8 @@ using Flow.Launcher.Infrastructure;
using System.Windows.Media;
using Flow.Launcher.Infrastructure.Hotkey;
using Flow.Launcher.Plugin.SharedCommands;
+using System.Windows.Threading;
using System.Windows.Data;
-using System.Diagnostics;
namespace Flow.Launcher
{
@@ -45,7 +45,9 @@ namespace Flow.Launcher
DataContext = mainVM;
_viewModel = mainVM;
_settings = settings;
+
InitializeComponent();
+ InitializePosition();
animationSound.Open(new Uri(AppDomain.CurrentDomain.BaseDirectory + "Resources\\open.wav"));
}
@@ -53,6 +55,7 @@ namespace Flow.Launcher
{
InitializeComponent();
}
+
private void OnCopy(object sender, ExecutedRoutedEventArgs e)
{
if (QueryTextBox.SelectionLength == 0)
@@ -108,7 +111,6 @@ namespace Flow.Launcher
animationSound.Position = TimeSpan.Zero;
animationSound.Play();
}
-
UpdatePosition();
Activate();
QueryTextBox.Focus();
@@ -161,6 +163,7 @@ namespace Flow.Launcher
_viewModel.QueryTextCursorMovedToEnd = false;
}
break;
+
}
};
_settings.PropertyChanged += (o, e) =>
@@ -176,17 +179,51 @@ namespace Flow.Launcher
case nameof(Settings.Hotkey):
UpdateNotifyIconText();
break;
+ case nameof(Settings.WindowLeft):
+ Left = _settings.WindowLeft;
+ break;
+ case nameof(Settings.WindowTop):
+ Top = _settings.WindowTop;
+ break;
}
};
}
+ private void InitializePosition()
+ {
+ switch (_settings.SearchWindowPosition)
+ {
+ case SearchWindowPositions.RememberLastLaunchLocation:
+ Top = _settings.WindowTop;
+ Left = _settings.WindowLeft;
+ break;
+ case SearchWindowPositions.MouseScreenCenter:
+ Left = HorizonCenter();
+ Top = VerticalCenter();
+ break;
+ case SearchWindowPositions.MouseScreenCenterTop:
+ Left = HorizonCenter();
+ Top = 10;
+ break;
+ case SearchWindowPositions.MouseScreenLeftTop:
+ Left = 10;
+ Top = 10;
+ break;
+ case SearchWindowPositions.MouseScreenRightTop:
+ Left = HorizonRight();
+ Top = 10;
+ break;
+ }
+ }
+
private void UpdateNotifyIconText()
{
var menu = contextMenu;
((MenuItem)menu.Items[1]).Header = InternationalizationManager.Instance.GetTranslation("iconTrayOpen") + " (" + _settings.Hotkey + ")";
((MenuItem)menu.Items[2]).Header = InternationalizationManager.Instance.GetTranslation("GameMode");
- ((MenuItem)menu.Items[3]).Header = InternationalizationManager.Instance.GetTranslation("iconTraySettings");
- ((MenuItem)menu.Items[4]).Header = InternationalizationManager.Instance.GetTranslation("iconTrayExit");
+ ((MenuItem)menu.Items[3]).Header = InternationalizationManager.Instance.GetTranslation("PositionReset");
+ ((MenuItem)menu.Items[4]).Header = InternationalizationManager.Instance.GetTranslation("iconTraySettings");
+ ((MenuItem)menu.Items[5]).Header = InternationalizationManager.Instance.GetTranslation("iconTrayExit");
}
private void InitializeNotifyIcon()
@@ -212,6 +249,10 @@ namespace Flow.Launcher
{
Header = InternationalizationManager.Instance.GetTranslation("GameMode")
};
+ var positionreset = new MenuItem
+ {
+ Header = InternationalizationManager.Instance.GetTranslation("PositionReset")
+ };
var settings = new MenuItem
{
Header = InternationalizationManager.Instance.GetTranslation("iconTraySettings")
@@ -223,12 +264,15 @@ namespace Flow.Launcher
open.Click += (o, e) => _viewModel.ToggleFlowLauncher();
gamemode.Click += (o, e) => ToggleGameMode();
+ positionreset.Click += (o, e) => PositionReset();
settings.Click += (o, e) => App.API.OpenSettingDialog();
exit.Click += (o, e) => Close();
contextMenu.Items.Add(header);
contextMenu.Items.Add(open);
gamemode.ToolTip = InternationalizationManager.Instance.GetTranslation("GameModeToolTip");
+ positionreset.ToolTip = InternationalizationManager.Instance.GetTranslation("PositionResetToolTip");
contextMenu.Items.Add(gamemode);
+ contextMenu.Items.Add(positionreset);
contextMenu.Items.Add(settings);
contextMenu.Items.Add(exit);
@@ -275,10 +319,17 @@ namespace Flow.Launcher
_viewModel.GameModeStatus = true;
}
}
+ private async void PositionReset()
+ {
+ _viewModel.Show();
+ await Task.Delay(300); // If don't give a time, Positioning will be weird.
+ Left = HorizonCenter();
+ Top = VerticalCenter();
+ }
private void InitProgressbarAnimation()
{
var da = new DoubleAnimation(ProgressBar.X2, ActualWidth + 150,
- new Duration(new TimeSpan(0, 0, 0, 0, 1600)));
+ new Duration(new TimeSpan(0, 0, 0, 0, 1600)));
var da1 = new DoubleAnimation(ProgressBar.X1, ActualWidth + 50, new Duration(new TimeSpan(0, 0, 0, 0, 1600)));
Storyboard.SetTargetProperty(da, new PropertyPath("(Line.X2)"));
Storyboard.SetTargetProperty(da1, new PropertyPath("(Line.X1)"));
@@ -382,6 +433,8 @@ namespace Flow.Launcher
private async void OnDeactivated(object sender, EventArgs e)
{
+ _settings.WindowLeft = Left;
+ _settings.WindowTop = Top;
//This condition stops extra hide call when animator is on,
// which causes the toggling to occasional hide instead of show.
if (_viewModel.MainWindowVisibilityStatus)
@@ -403,24 +456,14 @@ namespace Flow.Launcher
{
if (_animating)
return;
-
- if (_settings.RememberLastLaunchLocation)
- {
- Left = _settings.WindowLeft;
- Top = _settings.WindowTop;
- }
- else
- {
- Left = WindowLeft();
- Top = WindowTop();
- }
+ InitializePosition();
}
private void OnLocationChanged(object sender, EventArgs e)
{
if (_animating)
return;
- if (_settings.RememberLastLaunchLocation)
+ if (_settings.SearchWindowPosition == SearchWindowPositions.RememberLastLaunchLocation)
{
_settings.WindowLeft = Left;
_settings.WindowTop = Top;
@@ -439,17 +482,8 @@ namespace Flow.Launcher
_viewModel.Show();
}
}
-
- private void InitializePosition()
- {
- if (!_settings.RememberLastLaunchLocation)
- {
- Left = WindowLeft();
- Top = WindowTop();
- }
- }
- public double WindowLeft()
+ public double HorizonCenter()
{
var screen = Screen.FromPoint(System.Windows.Forms.Cursor.Position);
var dip1 = WindowsInteropHelper.TransformPixelsToDIP(this, screen.WorkingArea.X, 0);
@@ -458,7 +492,7 @@ namespace Flow.Launcher
return left;
}
- public double WindowTop()
+ public double VerticalCenter()
{
var screen = Screen.FromPoint(System.Windows.Forms.Cursor.Position);
var dip1 = WindowsInteropHelper.TransformPixelsToDIP(this, 0, screen.WorkingArea.Y);
@@ -467,6 +501,15 @@ namespace Flow.Launcher
return top;
}
+ public double HorizonRight()
+ {
+ var screen = Screen.FromPoint(System.Windows.Forms.Cursor.Position);
+ var dip1 = WindowsInteropHelper.TransformPixelsToDIP(this, screen.WorkingArea.X, 0);
+ var dip2 = WindowsInteropHelper.TransformPixelsToDIP(this, screen.WorkingArea.Width, 0);
+ var left = (dip2.X - ActualWidth) - 10;
+ return left;
+ }
+
///
/// Register up and down key
/// todo: any way to put this in xaml ?
diff --git a/Flow.Launcher/SettingWindow.xaml b/Flow.Launcher/SettingWindow.xaml
index 3e8a4f0a1..808531765 100644
--- a/Flow.Launcher/SettingWindow.xaml
+++ b/Flow.Launcher/SettingWindow.xaml
@@ -7,7 +7,6 @@
xmlns:flowlauncher="clr-namespace:Flow.Launcher"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:scm="clr-namespace:System.ComponentModel;assembly=WindowsBase"
- xmlns:svgc="http://sharpvectors.codeplex.com/svgc/"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:ui="http://schemas.modernwpf.com/2019"
xmlns:userSettings="clr-namespace:Flow.Launcher.Infrastructure.UserSettings;assembly=Flow.Launcher.Infrastructure"
@@ -40,6 +39,8 @@
+
+
@@ -685,12 +686,25 @@
-
+
-
+
-
+
+
+
+
@@ -1317,7 +1331,7 @@
FontSize="11"
Foreground="{DynamicResource PluginInfoColor}"
MouseUp="OnExternalPluginUninstallClick"
- Text="{DynamicResource plugin_uninstall}"
+ Text="{DynamicResource uninstallbtn}"
TextDecorations="Underline" />
+
+
+
+
+
+
+
-
-
-
-
-
+ Background="#45BD59"
+ CornerRadius="36"
+ ToolTip="{DynamicResource LabelUpdateToolTip}"
+ Visibility="{Binding LabelUpdate, Converter={StaticResource BoolToVisibilityConverter}}" />
+ Text="{Binding Description, Mode=OneWay}" />
@@ -1667,25 +1690,45 @@
Foreground="{DynamicResource Color04B}"
NavigateUri="{Binding Website}"
RequestNavigate="OnRequestNavigate">
-
+
-
-
+ Orientation="Horizontal">
+
+
+
+
+
+
@@ -1766,8 +1809,11 @@
IsReadOnly="True"
Style="{DynamicResource QueryBoxStyle}"
Text="{DynamicResource hiThere}" />
-
+
+
+
+