Skip to content

Commit 05e9b5f

Browse files
LightLight
authored andcommitted
Try to extract part of the string.
1 parent 6317145 commit 05e9b5f

File tree

12 files changed

+231
-62
lines changed

12 files changed

+231
-62
lines changed

Build/Build.cmd

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
call "%VS100COMNTOOLS%\vsvars32.bat"
2-
"c:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe" Build.xml
1+
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars32.bat"
2+
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe" Build.xml

SmartSystemMenu/EnumWindows.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,23 +12,26 @@ static class EnumWindows
1212
private static IntPtr[] _filterHandles;
1313
private static IList<Window> _windows;
1414
private static MenuItems _menuItems;
15+
private static MenuLanguage _menuLanguage;
1516

16-
public static IList<Window> EnumAllWindows(MenuItems menuItems, params string[] filterTitles)
17+
public static IList<Window> EnumAllWindows(MenuItems menuItems, MenuLanguage MenuLanguage, params string[] filterTitles)
1718
{
1819
_filterTitles = filterTitles ?? new string[0];
1920
_filterHandles = new IntPtr[0];
2021
_windows = new List<Window>();
2122
_menuItems = menuItems;
23+
_menuLanguage = MenuLanguage;
2224
NativeMethods.EnumWindows(EnumWindowCallback, 0);
2325
return _windows;
2426
}
2527

26-
public static IList<Window> EnumProcessWindows(int processId, IntPtr[] filterHandles, MenuItems menuItems, params string[] filterTitles)
28+
public static IList<Window> EnumProcessWindows(int processId, IntPtr[] filterHandles, MenuItems menuItems, MenuLanguage menuLanguage, params string[] filterTitles)
2729
{
2830
_filterTitles = filterTitles ?? new string[0];
2931
_filterHandles = filterHandles ?? new IntPtr[0];
3032
_windows = new List<Window>();
3133
_menuItems = menuItems;
34+
_menuLanguage = menuLanguage;
3235
foreach (ProcessThread thread in Process.GetProcessById(processId).Threads)
3336
{
3437
NativeMethods.EnumThreadWindows(thread.Id, EnumWindowCallback, 0);
@@ -53,7 +56,7 @@ private static bool EnumWindowCallback(IntPtr hwnd, int lParam)
5356

5457
if (!isAdd) return true;
5558

56-
var window = new Window(hwnd, _menuItems);
59+
var window = new Window(hwnd, _menuItems, _menuLanguage);
5760

5861
if (!window.Menu.Exists)
5962
{

SmartSystemMenu/Forms/MainForm.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ protected override void OnLoad(EventArgs e)
7979
_systemTrayMenu.MenuItemExit.Click += MenuItemExitClick;
8080
_systemTrayMenu.MenuItemAutoStart.Checked = AutoStarter.IsAutoStartByRegisterEnabled(AssemblyUtils.AssemblyProductName, AssemblyUtils.AssemblyLocation);
8181
#endif
82-
_windows = EnumWindows.EnumAllWindows(_settings.MenuItems, new string[] { SHELL_WINDOW_NAME }).ToList();
82+
_windows = EnumWindows.EnumAllWindows(_settings.MenuItems, _settings.MenuLanguage, new string[] { SHELL_WINDOW_NAME }).ToList();
8383

8484
foreach (var window in _windows)
8585
{
@@ -256,14 +256,14 @@ private void MenuItemExitClick(object sender, EventArgs e)
256256

257257
private void WindowCreated(object sender, WindowEventArgs e)
258258
{
259-
if (e.Handle != IntPtr.Zero && new SystemMenu(e.Handle, _settings.MenuItems).Exists && !_windows.Any(w => w.Handle == e.Handle))
259+
if (e.Handle != IntPtr.Zero && new SystemMenu(e.Handle, _settings.MenuItems, _settings.MenuLanguage).Exists && !_windows.Any(w => w.Handle == e.Handle))
260260
{
261261
int processId;
262262
NativeMethods.GetWindowThreadProcessId(e.Handle, out processId);
263263
IList<Window> windows = new List<Window>();
264264
try
265265
{
266-
windows = EnumWindows.EnumProcessWindows(processId, _windows.Select(w => w.Handle).ToArray(), _settings.MenuItems, new string[] { SHELL_WINDOW_NAME });
266+
windows = EnumWindows.EnumProcessWindows(processId, _windows.Select(w => w.Handle).ToArray(), _settings.MenuItems, _settings.MenuLanguage, new string[] { SHELL_WINDOW_NAME });
267267
}
268268
catch
269269
{
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
using System.Collections.Generic;
2+
3+
namespace SmartSystemMenu.Settings
4+
{
5+
/// <summary>
6+
/// Add language class
7+
/// 2020.3.25
8+
/// pana
9+
/// </summary>
10+
public class MenuLanguage
11+
{
12+
public IList<MenuTitleString> MenuTitleString { get; set; }
13+
14+
public MenuLanguage()
15+
{
16+
MenuTitleString = new List<MenuTitleString>();
17+
}
18+
19+
public string GetStringValue(string title_stirng)
20+
{
21+
for (int i = 0; i < MenuTitleString.Count; i++)
22+
{
23+
if (title_stirng == MenuTitleString[i].Title)
24+
{
25+
return MenuTitleString[i].StringValue;
26+
}
27+
}
28+
29+
return "";
30+
}
31+
}
32+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
namespace SmartSystemMenu.Settings
2+
{
3+
/// <summary>
4+
/// Add language item class
5+
/// 2020.3.25
6+
/// pana
7+
/// </summary>
8+
public class MenuTitleString
9+
{
10+
public string Title { get; set; }
11+
12+
public string StringValue { get; set; }
13+
}
14+
}

SmartSystemMenu/Settings/SmartSystemMenuSettings.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,13 @@ public class SmartSystemMenuSettings : ICloneable
1414

1515
public MenuItems MenuItems { get; set; }
1616

17+
public MenuLanguage MenuLanguage { get; set; }
18+
1719
public SmartSystemMenuSettings()
1820
{
1921
ProcessExclusions = new List<string>();
2022
MenuItems = new MenuItems();
23+
MenuLanguage = new MenuLanguage();
2124
}
2225

2326
public object Clone()
@@ -34,6 +37,11 @@ public object Clone()
3437
settings.MenuItems.StartProgramItems.Add(new StartProgramItem { Title = menuItem.Title, FileName = menuItem.FileName, Arguments = menuItem.Arguments });
3538
}
3639

40+
foreach (var menuTitleStringItem in MenuLanguage.MenuTitleString)
41+
{
42+
settings.MenuLanguage.MenuTitleString.Add(new MenuTitleString { Title = menuTitleStringItem.Title, StringValue = menuTitleStringItem.StringValue });
43+
}
44+
3745
return settings;
3846
}
3947

@@ -130,6 +138,15 @@ public static SmartSystemMenuSettings Read(string fileName)
130138
})
131139
.ToList();
132140

141+
settings.MenuLanguage.MenuTitleString = document
142+
.XPathSelectElements("/smartSystemMenu/menuLanguage/menuTitleString/cn/stringItem")
143+
.Select(x => new MenuTitleString
144+
{
145+
Title = x.Attribute("title") != null ? x.Attribute("title").Value : "",
146+
StringValue = x.Attribute("stringValue") != null ? x.Attribute("stringValue").Value : "",
147+
})
148+
.ToList();
149+
133150
return settings;
134151
}
135152

SmartSystemMenu/SmartSystemMenu.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,9 @@
9494
<Compile Include="Forms\SettingsForm.Designer.cs">
9595
<DependentUpon>SettingsForm.cs</DependentUpon>
9696
</Compile>
97+
<Compile Include="Settings\MenuLanguage.cs" />
9798
<Compile Include="Settings\MenuItems.cs" />
99+
<Compile Include="Settings\MenuTitleString.cs" />
98100
<Compile Include="Settings\StartProgramItem.cs" />
99101
<Compile Include="Settings\SmartSystemMenuSettings.cs" />
100102
<Compile Include="Utils\AssemblyUtils.cs" />

SmartSystemMenu/SmartSystemMenu.xml

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,104 @@
11
<?xml version="1.0" encoding="utf-8" ?>
22
<smartSystemMenu>
3+
<!-- Add language string -->
4+
<menuLanguage>
5+
<menuTitleString>
6+
<en>
7+
<stringItem title="information" stringValue="Information" />
8+
<stringItem title="roll_up" stringValue="Roll Up" />
9+
<stringItem title="aero_glass" stringValue="Aero Glass" />
10+
<stringItem title="always_on_top" stringValue="Always On Top" />
11+
<stringItem title="send_to_bottom" stringValue="Send To Bottom" />
12+
<stringItem title="save_screenshot" stringValue="Save Screenshot" />
13+
<stringItem title="open_file_in_explorer" stringValue="Open File In Explorer" />
14+
<stringItem title="copy_text_to_clipboard" stringValue="Copy Text To ClipBoard" />
15+
<stringItem title="drag_by_mouse" stringValue="Drag By Mouse" />
16+
<stringItem title="size" stringValue="Resize" />
17+
<stringItem title="size_default" stringValue="Default" />
18+
<stringItem title="size_custom" stringValue="Custom..." />
19+
<stringItem title="move_to" stringValue="Move To" />
20+
<stringItem title="monitor" stringValue="Monitor " />
21+
<stringItem title="alignment" stringValue="Alignment" />
22+
<stringItem title="align_top_left" stringValue="top-left" />
23+
<stringItem title="align_top_center" stringValue="top-center" />
24+
<stringItem title="align_top_right" stringValue="top-right" />
25+
<stringItem title="align_middle_left" stringValue="middle-left" />
26+
<stringItem title="align_middle_center" stringValue="middle-center" />
27+
<stringItem title="align_middle_right" stringValue="middle-right" />
28+
<stringItem title="align_bottom_left" stringValue="bottom-left" />
29+
<stringItem title="align_bottom_center" stringValue="bottom-center" />
30+
<stringItem title="align_bottom_right" stringValue="bottom-right" />
31+
<stringItem title="align_default" stringValue="Default" />
32+
<stringItem title="align_custom" stringValue="Custom..." />
33+
<stringItem title="transparency" stringValue="Transparency" />
34+
<stringItem title="trans_opaque" stringValue=" (opaque)" />
35+
<stringItem title="trans_invisible" stringValue=" (invisible)" />
36+
<stringItem title="trans_default" stringValue="Default" />
37+
<stringItem title="trans_custom" stringValue="Custom..." />
38+
<stringItem title="priority" stringValue="Priority" />
39+
<stringItem title="priority_real_time" stringValue="Real Time: 24" />
40+
<stringItem title="priority_high" stringValue="High: 13" />
41+
<stringItem title="priority_above_normal" stringValue="Above Normal: 10" />
42+
<stringItem title="priority_normal" stringValue="Normal: 8" />
43+
<stringItem title="priority_below_normal" stringValue="Below Normal: 6" />
44+
<stringItem title="priority_idle" stringValue="Idle: 4" />
45+
<stringItem title="system_tray" stringValue="System Tray" />
46+
<stringItem title="minimize_to_systemtray" stringValue="Minimize To Tray" />
47+
<stringItem title="minimize_always_to_systemtray" stringValue="Minimize To Tray Always" />
48+
<stringItem title="other_windows" stringValue="Other Windows" />
49+
<stringItem title="minimize_other_windows" stringValue="Minimize" />
50+
<stringItem title="close_other_windows" stringValue="Close" />
51+
<stringItem title="start_program" stringValue="Start Program" />
52+
</en>
53+
<cn>
54+
<stringItem title="information" stringValue="信息" />
55+
<stringItem title="roll_up" stringValue="卷起" />
56+
<stringItem title="aero_glass" stringValue="玻璃效果" />
57+
<stringItem title="always_on_top" stringValue="始终在最前面" />
58+
<stringItem title="send_to_bottom" stringValue="移至最底层" />
59+
<stringItem title="save_screenshot" stringValue="保存窗口截图" />
60+
<stringItem title="open_file_in_explorer" stringValue="在资源管理器中打开文件" />
61+
<stringItem title="copy_text_to_clipboard" stringValue="将文本复制到剪贴板" />
62+
<stringItem title="drag_by_mouse" stringValue="通过鼠标拖动" />
63+
<stringItem title="size" stringValue="调整窗口大小" />
64+
<stringItem title="size_default" stringValue="默认" />
65+
<stringItem title="size_custom" stringValue="自定义..." />
66+
<stringItem title="move_to" stringValue="移动到" />
67+
<stringItem title="monitor" stringValue="显示器 " />
68+
<stringItem title="alignment" stringValue="对齐" />
69+
<stringItem title="align_top_left" stringValue="左上角" />
70+
<stringItem title="align_top_center" stringValue="顶部中心" />
71+
<stringItem title="align_top_right" stringValue="右上角" />
72+
<stringItem title="align_middle_left" stringValue="中间左侧" />
73+
<stringItem title="align_middle_center" stringValue="正中央" />
74+
<stringItem title="align_middle_right" stringValue="中间右侧" />
75+
<stringItem title="align_bottom_left" stringValue="左下角" />
76+
<stringItem title="align_bottom_center" stringValue="底部中心" />
77+
<stringItem title="align_bottom_right" stringValue="右下角" />
78+
<stringItem title="align_default" stringValue="默认" />
79+
<stringItem title="align_custom" stringValue="自定义..." />
80+
<stringItem title="transparency" stringValue="透明度" />
81+
<stringItem title="trans_opaque" stringValue=" (不透明)" />
82+
<stringItem title="trans_invisible" stringValue=" (不可见)" />
83+
<stringItem title="trans_default" stringValue="默认" />
84+
<stringItem title="trans_custom" stringValue="自定义..." />
85+
<stringItem title="priority" stringValue="优先级" />
86+
<stringItem title="priority_real_time" stringValue="实时: 24" />
87+
<stringItem title="priority_high" stringValue="高: 13" />
88+
<stringItem title="priority_above_normal" stringValue="高于标准: 10" />
89+
<stringItem title="priority_normal" stringValue="标准: 8" />
90+
<stringItem title="priority_below_normal" stringValue="低于标准: 6" />
91+
<stringItem title="priority_idle" stringValue="空闲: 4" />
92+
<stringItem title="system_tray" stringValue="系统托盘" />
93+
<stringItem title="minimize_to_systemtray" stringValue="最小化到托盘" />
94+
<stringItem title="minimize_always_to_systemtray" stringValue="始终最小化到托盘" />
95+
<stringItem title="other_windows" stringValue="其他窗口" />
96+
<stringItem title="minimize_other_windows" stringValue="最小化" />
97+
<stringItem title="close_other_windows" stringValue="关闭" />
98+
<stringItem title="start_program" stringValue="启动程序" />
99+
</cn>
100+
</menuTitleString>
101+
</menuLanguage>
3102
<processExclusions>
4103
<processName>discord.exe</processName>
5104
<processName>slack.exe</processName>
2.5 KB
Binary file not shown.

0 commit comments

Comments
 (0)