├── .gitattributes
├── .gitignore
├── LICENSE.md
├── README.md
├── Screenshots
├── screen_01.PNG
├── screen_02.PNG
├── screen_03.PNG
├── screen_04.PNG
└── screen_05.PNG
├── TraderForPoe.sln
├── TraderForPoe
├── App.config
├── App.xaml
├── App.xaml.cs
├── Classes
│ ├── ClipboardMonitor.cs
│ ├── Hook.cs
│ ├── TradeItem.cs
│ └── Updater.cs
├── Controls
│ ├── CustMenuItem.cs
│ ├── CustomMenuItem.resx
│ ├── StashControl.xaml
│ ├── StashControl.xaml.cs
│ ├── TradeItemControl.xaml
│ └── TradeItemControl.xaml.cs
├── FodyWeavers.xml
├── FodyWeavers.xsd
├── MainWindow.xaml
├── MainWindow.xaml.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ └── Settings.settings
├── Resources
│ ├── Currency
│ │ ├── curr_alch.png
│ │ ├── curr_alt.png
│ │ ├── curr_ancient.png
│ │ ├── curr_annul.png
│ │ ├── curr_appr_carto_sextant.png
│ │ ├── curr_armour_scrap.png
│ │ ├── curr_aug.png
│ │ ├── curr_bauble.png
│ │ ├── curr_bestiary_orb.png
│ │ ├── curr_binding.png
│ │ ├── curr_black_whetstone.png
│ │ ├── curr_bless_chayula.png
│ │ ├── curr_bless_esh.png
│ │ ├── curr_bless_tul.png
│ │ ├── curr_bless_uul.png
│ │ ├── curr_bless_xoph.png
│ │ ├── curr_blessed.png
│ │ ├── curr_chance.png
│ │ ├── curr_chaos.png
│ │ ├── curr_chisel.png
│ │ ├── curr_chrom.png
│ │ ├── curr_divine.png
│ │ ├── curr_divine_vessel.png
│ │ ├── curr_engineer.png
│ │ ├── curr_eternal.png
│ │ ├── curr_ex.png
│ │ ├── curr_fuse.png
│ │ ├── curr_gcp.png
│ │ ├── curr_harbinger.png
│ │ ├── curr_horizon.png
│ │ ├── curr_impr_bestiary.png
│ │ ├── curr_jew.png
│ │ ├── curr_journ_carto_sextant.png
│ │ ├── curr_master_carto_sextant.png
│ │ ├── curr_mirror.png
│ │ ├── curr_offering_to_the_goddess.png
│ │ ├── curr_perandus_coin.png
│ │ ├── curr_port.png
│ │ ├── curr_regal.png
│ │ ├── curr_regret.png
│ │ ├── curr_sacrifice_dawn.png
│ │ ├── curr_sacrifice_dusk.png
│ │ ├── curr_sacrifice_midnight.png
│ │ ├── curr_sacrifice_noon.png
│ │ ├── curr_scour.png
│ │ ├── curr_silver.png
│ │ ├── curr_splinter_chayula.png
│ │ ├── curr_splinter_esh.png
│ │ ├── curr_splinter_tul.png
│ │ ├── curr_splinter_uul.png
│ │ ├── curr_splinter_xoph.png
│ │ ├── curr_tra.png
│ │ ├── curr_vaal.png
│ │ └── curr_wis.png
│ ├── Images
│ │ ├── account-minus.png
│ │ ├── askifinterested.png
│ │ ├── clock.png
│ │ ├── comment-question.png
│ │ ├── customMessage1.png
│ │ ├── customMessage2.png
│ │ ├── customMessage3.png
│ │ ├── customMessage4.png
│ │ ├── customerHideout.png
│ │ ├── home.png
│ │ ├── invite.png
│ │ ├── leave.png
│ │ ├── magnify.png
│ │ ├── message-text.png
│ │ ├── remove.png
│ │ ├── repeat.png
│ │ ├── thanks.png
│ │ └── trade.png
│ ├── arrowBuy.png
│ ├── arrowSell.png
│ ├── ico_Application.ico
│ └── notification.wav
├── Settings.cs
├── TFP_SIG.snk
├── TraderForPoe.csproj
├── TraderForPoe_bxf31q5j_wpftmp.csproj
├── TraderForPoe_qn2tktyp_wpftmp.csproj
├── Windows
│ ├── About.xaml
│ ├── About.xaml.cs
│ ├── StashGridHighlight.xaml
│ ├── StashGridHighlight.xaml.cs
│ ├── UserSettings.xaml
│ └── UserSettings.xaml.cs
└── packages.config
└── update
/.gitattributes:
--------------------------------------------------------------------------------
1 | ###############################################################################
2 | # Set default behavior to automatically normalize line endings.
3 | ###############################################################################
4 | * text=auto
5 |
6 | ###############################################################################
7 | # Set default behavior for command prompt diff.
8 | #
9 | # This is need for earlier builds of msysgit that does not have it on by
10 | # default for csharp files.
11 | # Note: This is only used by command line
12 | ###############################################################################
13 | #*.cs diff=csharp
14 |
15 | ###############################################################################
16 | # Set the merge driver for project and solution files
17 | #
18 | # Merging from the command prompt will add diff markers to the files if there
19 | # are conflicts (Merging from VS is not affected by the settings below, in VS
20 | # the diff markers are never inserted). Diff markers may cause the following
21 | # file extensions to fail to load in VS. An alternative would be to treat
22 | # these files as binary and thus will always conflict and require user
23 | # intervention with every merge. To do so, just uncomment the entries below
24 | ###############################################################################
25 | #*.sln merge=binary
26 | #*.csproj merge=binary
27 | #*.vbproj merge=binary
28 | #*.vcxproj merge=binary
29 | #*.vcproj merge=binary
30 | #*.dbproj merge=binary
31 | #*.fsproj merge=binary
32 | #*.lsproj merge=binary
33 | #*.wixproj merge=binary
34 | #*.modelproj merge=binary
35 | #*.sqlproj merge=binary
36 | #*.wwaproj merge=binary
37 |
38 | ###############################################################################
39 | # behavior for image files
40 | #
41 | # image files are treated as binary by default.
42 | ###############################################################################
43 | #*.jpg binary
44 | #*.png binary
45 | #*.gif binary
46 |
47 | ###############################################################################
48 | # diff behavior for common document formats
49 | #
50 | # Convert binary document formats to text before diffing them. This feature
51 | # is only available from the command line. Turn it on by uncommenting the
52 | # entries below.
53 | ###############################################################################
54 | #*.doc diff=astextplain
55 | #*.DOC diff=astextplain
56 | #*.docx diff=astextplain
57 | #*.DOCX diff=astextplain
58 | #*.dot diff=astextplain
59 | #*.DOT diff=astextplain
60 | #*.pdf diff=astextplain
61 | #*.PDF diff=astextplain
62 | #*.rtf diff=astextplain
63 | #*.RTF diff=astextplain
64 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | ## Ignore Visual Studio temporary files, build results, and
2 | ## files generated by popular Visual Studio add-ons.
3 |
4 | # User-specific files
5 | *.suo
6 | *.user
7 | *.userosscache
8 | *.sln.docstates
9 |
10 | # User-specific files (MonoDevelop/Xamarin Studio)
11 | *.userprefs
12 |
13 | # Build results
14 | [Dd]ebug/
15 | [Dd]ebugPublic/
16 | [Rr]elease/
17 | [Rr]eleases/
18 | x64/
19 | x86/
20 | bld/
21 | [Bb]in/
22 | [Oo]bj/
23 | [Ll]og/
24 |
25 | # Visual Studio 2015 cache/options directory
26 | .vs/
27 | # Uncomment if you have tasks that create the project's static files in wwwroot
28 | #wwwroot/
29 |
30 | # MSTest test Results
31 | [Tt]est[Rr]esult*/
32 | [Bb]uild[Ll]og.*
33 |
34 | # NUNIT
35 | *.VisualState.xml
36 | TestResult.xml
37 |
38 | # Build Results of an ATL Project
39 | [Dd]ebugPS/
40 | [Rr]eleasePS/
41 | dlldata.c
42 |
43 | # DNX
44 | project.lock.json
45 | project.fragment.lock.json
46 | artifacts/
47 |
48 | *_i.c
49 | *_p.c
50 | *_i.h
51 | *.ilk
52 | *.meta
53 | *.obj
54 | *.pch
55 | *.pdb
56 | *.pgc
57 | *.pgd
58 | *.rsp
59 | *.sbr
60 | *.tlb
61 | *.tli
62 | *.tlh
63 | *.tmp
64 | *.tmp_proj
65 | *.log
66 | *.vspscc
67 | *.vssscc
68 | .builds
69 | *.pidb
70 | *.svclog
71 | *.scc
72 |
73 | # Chutzpah Test files
74 | _Chutzpah*
75 |
76 | # Visual C++ cache files
77 | ipch/
78 | *.aps
79 | *.ncb
80 | *.opendb
81 | *.opensdf
82 | *.sdf
83 | *.cachefile
84 | *.VC.db
85 | *.VC.VC.opendb
86 |
87 | # Visual Studio profiler
88 | *.psess
89 | *.vsp
90 | *.vspx
91 | *.sap
92 |
93 | # TFS 2012 Local Workspace
94 | $tf/
95 |
96 | # Guidance Automation Toolkit
97 | *.gpState
98 |
99 | # ReSharper is a .NET coding add-in
100 | _ReSharper*/
101 | *.[Rr]e[Ss]harper
102 | *.DotSettings.user
103 |
104 | # JustCode is a .NET coding add-in
105 | .JustCode
106 |
107 | # TeamCity is a build add-in
108 | _TeamCity*
109 |
110 | # DotCover is a Code Coverage Tool
111 | *.dotCover
112 |
113 | # NCrunch
114 | _NCrunch_*
115 | .*crunch*.local.xml
116 | nCrunchTemp_*
117 |
118 | # MightyMoose
119 | *.mm.*
120 | AutoTest.Net/
121 |
122 | # Web workbench (sass)
123 | .sass-cache/
124 |
125 | # Installshield output folder
126 | [Ee]xpress/
127 |
128 | # DocProject is a documentation generator add-in
129 | DocProject/buildhelp/
130 | DocProject/Help/*.HxT
131 | DocProject/Help/*.HxC
132 | DocProject/Help/*.hhc
133 | DocProject/Help/*.hhk
134 | DocProject/Help/*.hhp
135 | DocProject/Help/Html2
136 | DocProject/Help/html
137 |
138 | # Click-Once directory
139 | publish/
140 |
141 | # Publish Web Output
142 | *.[Pp]ublish.xml
143 | *.azurePubxml
144 | # TODO: Comment the next line if you want to checkin your web deploy settings
145 | # but database connection strings (with potential passwords) will be unencrypted
146 | #*.pubxml
147 | *.publishproj
148 |
149 | # Microsoft Azure Web App publish settings. Comment the next line if you want to
150 | # checkin your Azure Web App publish settings, but sensitive information contained
151 | # in these scripts will be unencrypted
152 | PublishScripts/
153 |
154 | # NuGet Packages
155 | *.nupkg
156 | # The packages folder can be ignored because of Package Restore
157 | **/packages/*
158 | # except build/, which is used as an MSBuild target.
159 | !**/packages/build/
160 | # Uncomment if necessary however generally it will be regenerated when needed
161 | #!**/packages/repositories.config
162 | # NuGet v3's project.json files produces more ignoreable files
163 | *.nuget.props
164 | *.nuget.targets
165 |
166 | # Microsoft Azure Build Output
167 | csx/
168 | *.build.csdef
169 |
170 | # Microsoft Azure Emulator
171 | ecf/
172 | rcf/
173 |
174 | # Windows Store app package directories and files
175 | AppPackages/
176 | BundleArtifacts/
177 | Package.StoreAssociation.xml
178 | _pkginfo.txt
179 |
180 | # Visual Studio cache files
181 | # files ending in .cache can be ignored
182 | *.[Cc]ache
183 | # but keep track of directories ending in .cache
184 | !*.[Cc]ache/
185 |
186 | # Others
187 | ClientBin/
188 | ~$*
189 | *~
190 | *.dbmdl
191 | *.dbproj.schemaview
192 | *.jfm
193 | *.pfx
194 | *.publishsettings
195 | node_modules/
196 | orleans.codegen.cs
197 |
198 | # Since there are multiple workflows, uncomment next line to ignore bower_components
199 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
200 | #bower_components/
201 |
202 | # RIA/Silverlight projects
203 | Generated_Code/
204 |
205 | # Backup & report files from converting an old project file
206 | # to a newer Visual Studio version. Backup files are not needed,
207 | # because we have git ;-)
208 | _UpgradeReport_Files/
209 | Backup*/
210 | UpgradeLog*.XML
211 | UpgradeLog*.htm
212 |
213 | # SQL Server files
214 | *.mdf
215 | *.ldf
216 |
217 | # Business Intelligence projects
218 | *.rdl.data
219 | *.bim.layout
220 | *.bim_*.settings
221 |
222 | # Microsoft Fakes
223 | FakesAssemblies/
224 |
225 | # GhostDoc plugin setting file
226 | *.GhostDoc.xml
227 |
228 | # Node.js Tools for Visual Studio
229 | .ntvs_analysis.dat
230 |
231 | # Visual Studio 6 build log
232 | *.plg
233 |
234 | # Visual Studio 6 workspace options file
235 | *.opt
236 |
237 | # Visual Studio LightSwitch build output
238 | **/*.HTMLClient/GeneratedArtifacts
239 | **/*.DesktopClient/GeneratedArtifacts
240 | **/*.DesktopClient/ModelManifest.xml
241 | **/*.Server/GeneratedArtifacts
242 | **/*.Server/ModelManifest.xml
243 | _Pvt_Extensions
244 |
245 | # Paket dependency manager
246 | .paket/paket.exe
247 | paket-files/
248 |
249 | # FAKE - F# Make
250 | .fake/
251 |
252 | # JetBrains Rider
253 | .idea/
254 | *.sln.iml
255 |
256 | # CodeRush
257 | .cr/
258 |
259 | # Python Tools for Visual Studio (PTVS)
260 | __pycache__/
261 | *.pyc
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # TraderForPoe
2 | ## The tool is currently not in development
3 | This tool makes trading in Path of Exile easy.
4 |
5 | It parses all incoming and outgoing trade whispers and shows a notification with usefull buttons.
6 |
7 | ## Getting Started
8 |
9 | ### Features
10 | - Monitors the clipboard for trade whispers
11 | - Supports poe.trade and poeapp.com
12 | - Show ratio when trading currency
13 | - Small (1,75 MB)
14 | - Standalone
15 | - Fast startup
16 |
17 |
18 | ### Download
19 | Download here: [TraderForPoe Releases](https://github.com/hexadezi/TraderForPoe/releases)
20 |
21 | ### Screenshots
22 | 
23 |
24 | ### Prerequisites
25 |
26 | What things you need to run the sofware?
27 | - .NET Framework 4.6.1
28 | - Display mode has to be windowed or windowed fullscreen
29 |
30 | ### Installing
31 |
32 | Just download the .exe file and execute.
33 |
34 | ## License
35 |
36 | This project is licensed under the GNU GENERAL PUBLIC LICENSE 3.0 - see the [LICENSE](LICENSE.md) file for details
37 |
--------------------------------------------------------------------------------
/Screenshots/screen_01.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/Screenshots/screen_01.PNG
--------------------------------------------------------------------------------
/Screenshots/screen_02.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/Screenshots/screen_02.PNG
--------------------------------------------------------------------------------
/Screenshots/screen_03.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/Screenshots/screen_03.PNG
--------------------------------------------------------------------------------
/Screenshots/screen_04.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/Screenshots/screen_04.PNG
--------------------------------------------------------------------------------
/Screenshots/screen_05.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/Screenshots/screen_05.PNG
--------------------------------------------------------------------------------
/TraderForPoe.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 15
4 | VisualStudioVersion = 15.0.27428.2015
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TraderForPoe", "TraderForPoe\TraderForPoe.csproj", "{B3B9FBD1-137A-419F-9802-3033F37B7565}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Release|Any CPU = Release|Any CPU
12 | EndGlobalSection
13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
14 | {B3B9FBD1-137A-419F-9802-3033F37B7565}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15 | {B3B9FBD1-137A-419F-9802-3033F37B7565}.Debug|Any CPU.Build.0 = Debug|Any CPU
16 | {B3B9FBD1-137A-419F-9802-3033F37B7565}.Release|Any CPU.ActiveCfg = Release|Any CPU
17 | {B3B9FBD1-137A-419F-9802-3033F37B7565}.Release|Any CPU.Build.0 = Release|Any CPU
18 | EndGlobalSection
19 | GlobalSection(SolutionProperties) = preSolution
20 | HideSolutionNode = FALSE
21 | EndGlobalSection
22 | GlobalSection(ExtensibilityGlobals) = postSolution
23 | SolutionGuid = {6024BBE9-1D77-4B70-84CC-96D686703F93}
24 | EndGlobalSection
25 | EndGlobal
26 |
--------------------------------------------------------------------------------
/TraderForPoe/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | PLAYERNAME
15 |
16 |
17 | False
18 |
19 |
20 | True
21 |
22 |
23 |
24 |
25 |
26 | Give me one second! :) (Sent with TraderForPoe)
27 |
28 |
29 | False
30 |
31 |
32 | Already sold, sorry. :( (Sent with TraderForPoe)
33 |
34 |
35 | False
36 |
37 |
38 | Thank you very much, good luck and have a nice day. :) (Sent with TraderForPoe)
39 |
40 |
41 | False
42 |
43 |
44 | Hi, I'm busy right now. Shall I write you after? :) (Sent with TraderForPoe)
45 |
46 |
47 | False
48 |
49 |
50 | True
51 |
52 |
53 | True
54 |
55 |
56 | True
57 |
58 |
59 | 0
60 |
61 |
62 | 0
63 |
64 |
65 | False
66 |
67 |
68 | True
69 |
70 |
71 | 20
72 |
73 |
74 | Item sold? :) (Sent with TraderForPoe)
75 |
76 |
77 | I am in lab! :) (Sent with TraderForPoe)
78 |
79 |
80 | False
81 |
82 |
83 | False
84 |
85 |
86 | 1
87 |
88 |
89 |
90 |
91 |
--------------------------------------------------------------------------------
/TraderForPoe/App.xaml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/TraderForPoe/App.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Configuration;
4 | using System.Data;
5 | using System.Linq;
6 | using System.Threading;
7 | using System.Threading.Tasks;
8 | using System.Windows;
9 | using System.Xml.Linq;
10 | using TraderForPoe.Properties;
11 |
12 | namespace TraderForPoe
13 | {
14 | ///
15 | /// Interaktionslogik für "App.xaml"
16 | ///
17 | public partial class App : Application
18 | {
19 | public App()
20 | {
21 | // http://www.covingtoninnovations.com/mc/SingleInstance.html
22 |
23 | Mutex mutex = new Mutex(true, "TraderForPoe", out bool createdNew);
24 |
25 | if (!createdNew)
26 | {
27 | //app is already running! Exiting the application
28 | Current.Shutdown();
29 | }
30 |
31 | GC.KeepAlive(mutex);
32 |
33 | if (Settings.Default.UpgradeSettingsRequired)
34 | {
35 | Settings.Default.Upgrade();
36 | Settings.Default.UpgradeSettingsRequired = false;
37 | Settings.Default.Save();
38 | }
39 | }
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/TraderForPoe/Classes/ClipboardMonitor.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Runtime.InteropServices;
3 | using System.Windows.Interop;
4 |
5 | namespace TraderForPoe
6 | {
7 | public sealed class ClipboardMonitor : IDisposable
8 | {
9 | private static class NativeMethods
10 | {
11 | ///
12 | /// Places the given window in the system-maintained clipboard format listener list.
13 | ///
14 | [DllImport("user32.dll", SetLastError = true)]
15 | [return: MarshalAs(UnmanagedType.Bool)]
16 | public static extern bool AddClipboardFormatListener(IntPtr hwnd);
17 |
18 | ///
19 | /// Removes the given window from the system-maintained clipboard format listener list.
20 | ///
21 | [DllImport("user32.dll", SetLastError = true)]
22 | [return: MarshalAs(UnmanagedType.Bool)]
23 | public static extern bool RemoveClipboardFormatListener(IntPtr hwnd);
24 |
25 | ///
26 | /// Sent when the contents of the clipboard have changed.
27 | ///
28 | public const int WM_CLIPBOARDUPDATE = 0x031D;
29 |
30 | ///
31 | /// To find message-only windows, specify HWND_MESSAGE in the hwndParent parameter of the FindWindowEx function.
32 | ///
33 | public static IntPtr HWND_MESSAGE = new IntPtr(-3);
34 | }
35 |
36 | private HwndSource hwndSource = new HwndSource(0, 0, 0, 0, 0, 0, 0, null, NativeMethods.HWND_MESSAGE);
37 |
38 | public ClipboardMonitor()
39 | {
40 | hwndSource.AddHook(WndProc);
41 | NativeMethods.AddClipboardFormatListener(hwndSource.Handle);
42 | }
43 |
44 | public void Dispose()
45 | {
46 | NativeMethods.RemoveClipboardFormatListener(hwndSource.Handle);
47 | hwndSource.RemoveHook(WndProc);
48 | hwndSource.Dispose();
49 | }
50 |
51 | private IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
52 | {
53 | if (msg == NativeMethods.WM_CLIPBOARDUPDATE)
54 | {
55 | OnClipboardContentChanged?.Invoke(this, EventArgs.Empty);
56 | }
57 |
58 | return IntPtr.Zero;
59 | }
60 |
61 | ///
62 | /// Occurs when the clipboard content changes.
63 | ///
64 | public event EventHandler OnClipboardContentChanged;
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/TraderForPoe/Classes/Hook.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Runtime.InteropServices;
3 | using System.Security;
4 | using System.Security.Permissions;
5 |
6 | namespace TraderForPoe.Classes
7 | {
8 | public class Hook
9 | {
10 | public static long SWEH_CHILDID_SELF = 0;
11 |
12 | //SetWinEventHook() flags
13 | public enum SWEH_dwFlags : uint
14 | {
15 | WINEVENT_OUTOFCONTEXT = 0x0000, // Events are ASYNC
16 | WINEVENT_SKIPOWNTHREAD = 0x0001, // Don't call back for events on installer's thread
17 | WINEVENT_SKIPOWNPROCESS = 0x0002, // Don't call back for events on installer's process
18 | WINEVENT_INCONTEXT = 0x0004 // Events are SYNC, this causes your dll to be injected into every process
19 | }
20 |
21 | //SetWinEventHook() events
22 | public enum SWEH_Events : uint
23 | {
24 | EVENT_MIN = 0x00000001,
25 | EVENT_MAX = 0x7FFFFFFF,
26 | EVENT_SYSTEM_SOUND = 0x0001,
27 | EVENT_SYSTEM_ALERT = 0x0002,
28 | EVENT_SYSTEM_FOREGROUND = 0x0003,
29 | EVENT_SYSTEM_MENUSTART = 0x0004,
30 | EVENT_SYSTEM_MENUEND = 0x0005,
31 | EVENT_SYSTEM_MENUPOPUPSTART = 0x0006,
32 | EVENT_SYSTEM_MENUPOPUPEND = 0x0007,
33 | EVENT_SYSTEM_CAPTURESTART = 0x0008,
34 | EVENT_SYSTEM_CAPTUREEND = 0x0009,
35 | EVENT_SYSTEM_MOVESIZESTART = 0x000A,
36 | EVENT_SYSTEM_MOVESIZEEND = 0x000B,
37 | EVENT_SYSTEM_CONTEXTHELPSTART = 0x000C,
38 | EVENT_SYSTEM_CONTEXTHELPEND = 0x000D,
39 | EVENT_SYSTEM_DRAGDROPSTART = 0x000E,
40 | EVENT_SYSTEM_DRAGDROPEND = 0x000F,
41 | EVENT_SYSTEM_DIALOGSTART = 0x0010,
42 | EVENT_SYSTEM_DIALOGEND = 0x0011,
43 | EVENT_SYSTEM_SCROLLINGSTART = 0x0012,
44 | EVENT_SYSTEM_SCROLLINGEND = 0x0013,
45 | EVENT_SYSTEM_SWITCHSTART = 0x0014,
46 | EVENT_SYSTEM_SWITCHEND = 0x0015,
47 | EVENT_SYSTEM_MINIMIZESTART = 0x0016,
48 | EVENT_SYSTEM_MINIMIZEEND = 0x0017,
49 | EVENT_SYSTEM_DESKTOPSWITCH = 0x0020,
50 | EVENT_SYSTEM_END = 0x00FF,
51 | EVENT_OEM_DEFINED_START = 0x0101,
52 | EVENT_OEM_DEFINED_END = 0x01FF,
53 | EVENT_UIA_EVENTID_START = 0x4E00,
54 | EVENT_UIA_EVENTID_END = 0x4EFF,
55 | EVENT_UIA_PROPID_START = 0x7500,
56 | EVENT_UIA_PROPID_END = 0x75FF,
57 | EVENT_CONSOLE_CARET = 0x4001,
58 | EVENT_CONSOLE_UPDATE_REGION = 0x4002,
59 | EVENT_CONSOLE_UPDATE_SIMPLE = 0x4003,
60 | EVENT_CONSOLE_UPDATE_SCROLL = 0x4004,
61 | EVENT_CONSOLE_LAYOUT = 0x4005,
62 | EVENT_CONSOLE_START_APPLICATION = 0x4006,
63 | EVENT_CONSOLE_END_APPLICATION = 0x4007,
64 | EVENT_CONSOLE_END = 0x40FF,
65 | EVENT_OBJECT_CREATE = 0x8000, // hwnd ID idChild is created item
66 | EVENT_OBJECT_DESTROY = 0x8001, // hwnd ID idChild is destroyed item
67 | EVENT_OBJECT_SHOW = 0x8002, // hwnd ID idChild is shown item
68 | EVENT_OBJECT_HIDE = 0x8003, // hwnd ID idChild is hidden item
69 | EVENT_OBJECT_REORDER = 0x8004, // hwnd ID idChild is parent of zordering children
70 | EVENT_OBJECT_FOCUS = 0x8005, // hwnd ID idChild is focused item
71 | EVENT_OBJECT_SELECTION = 0x8006, // hwnd ID idChild is selected item (if only one), or idChild is OBJID_WINDOW if complex
72 | EVENT_OBJECT_SELECTIONADD = 0x8007, // hwnd ID idChild is item added
73 | EVENT_OBJECT_SELECTIONREMOVE = 0x8008, // hwnd ID idChild is item removed
74 | EVENT_OBJECT_SELECTIONWITHIN = 0x8009, // hwnd ID idChild is parent of changed selected items
75 | EVENT_OBJECT_STATECHANGE = 0x800A, // hwnd ID idChild is item w/ state change
76 | EVENT_OBJECT_LOCATIONCHANGE = 0x800B, // hwnd ID idChild is moved/sized item
77 | EVENT_OBJECT_NAMECHANGE = 0x800C, // hwnd ID idChild is item w/ name change
78 | EVENT_OBJECT_DESCRIPTIONCHANGE = 0x800D, // hwnd ID idChild is item w/ desc change
79 | EVENT_OBJECT_VALUECHANGE = 0x800E, // hwnd ID idChild is item w/ value change
80 | EVENT_OBJECT_PARENTCHANGE = 0x800F, // hwnd ID idChild is item w/ new parent
81 | EVENT_OBJECT_HELPCHANGE = 0x8010, // hwnd ID idChild is item w/ help change
82 | EVENT_OBJECT_DEFACTIONCHANGE = 0x8011, // hwnd ID idChild is item w/ def action change
83 | EVENT_OBJECT_ACCELERATORCHANGE = 0x8012, // hwnd ID idChild is item w/ keybd accel change
84 | EVENT_OBJECT_INVOKED = 0x8013, // hwnd ID idChild is item invoked
85 | EVENT_OBJECT_TEXTSELECTIONCHANGED = 0x8014, // hwnd ID idChild is item w? test selection change
86 | EVENT_OBJECT_CONTENTSCROLLED = 0x8015,
87 | EVENT_SYSTEM_ARRANGMENTPREVIEW = 0x8016,
88 | EVENT_OBJECT_END = 0x80FF,
89 | EVENT_AIA_START = 0xA000,
90 | EVENT_AIA_END = 0xAFFF
91 | }
92 |
93 | //SetWinEventHook() Object Ids
94 | public enum SWEH_ObjectId : long
95 | {
96 | OBJID_WINDOW = 0x00000000,
97 | OBJID_SYSMENU = 0xFFFFFFFF,
98 | OBJID_TITLEBAR = 0xFFFFFFFE,
99 | OBJID_MENU = 0xFFFFFFFD,
100 | OBJID_CLIENT = 0xFFFFFFFC,
101 | OBJID_VSCROLL = 0xFFFFFFFB,
102 | OBJID_HSCROLL = 0xFFFFFFFA,
103 | OBJID_SIZEGRIP = 0xFFFFFFF9,
104 | OBJID_CARET = 0xFFFFFFF8,
105 | OBJID_CURSOR = 0xFFFFFFF7,
106 | OBJID_ALERT = 0xFFFFFFF6,
107 | OBJID_SOUND = 0xFFFFFFF5,
108 | OBJID_QUERYCLASSNAMEIDX = 0xFFFFFFF4,
109 | OBJID_NATIVEOM = 0xFFFFFFF0
110 | }
111 |
112 | private static SWEH_dwFlags WinEventHookInternalFlags = SWEH_dwFlags.WINEVENT_OUTOFCONTEXT |
113 | SWEH_dwFlags.WINEVENT_SKIPOWNPROCESS |
114 | SWEH_dwFlags.WINEVENT_SKIPOWNTHREAD;
115 |
116 | public delegate void WinEventDelegate(IntPtr hWinEventHook,
117 | SWEH_Events eventType,
118 | IntPtr hwnd,
119 | SWEH_ObjectId idObject,
120 | long idChild,
121 | uint dwEventThread,
122 | uint dwmsEventTime);
123 |
124 | public static IntPtr WinEventHookRange(SWEH_Events _eventFrom,
125 | SWEH_Events _eventTo,
126 | WinEventDelegate _delegate,
127 | uint idProcess, uint idThread)
128 | {
129 | new UIPermission(UIPermissionWindow.AllWindows).Demand();
130 | return UnsafeNativeMethods.SetWinEventHook(_eventFrom, _eventTo,
131 | IntPtr.Zero, _delegate,
132 | idProcess, idThread,
133 | WinEventHookInternalFlags);
134 | }
135 |
136 | public static IntPtr WinEventHookOne(SWEH_Events _event, WinEventDelegate _delegate, uint idProcess, uint idThread)
137 | {
138 | new UIPermission(UIPermissionWindow.AllWindows).Demand();
139 | return UnsafeNativeMethods.SetWinEventHook(_event, _event,
140 | IntPtr.Zero, _delegate,
141 | idProcess, idThread,
142 | WinEventHookInternalFlags);
143 | }
144 |
145 | public static bool WinEventUnhook(IntPtr hWinEventHook)
146 | {
147 | return UnsafeNativeMethods.UnhookWinEvent(hWinEventHook);
148 | }
149 |
150 | public static uint GetWindowThread(IntPtr hWnd)
151 | {
152 | new UIPermission(UIPermissionWindow.AllWindows).Demand();
153 | return UnsafeNativeMethods.GetWindowThreadProcessId(hWnd, IntPtr.Zero);
154 | }
155 |
156 |
157 | }
158 |
159 | [SuppressUnmanagedCodeSecurityAttribute]
160 | internal static class UnsafeNativeMethods
161 | {
162 | [DllImport("user32.dll", SetLastError = true)]
163 | public static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint lpdwProcessId);
164 |
165 | [DllImport("user32.dll")]
166 | public static extern uint GetWindowThreadProcessId(IntPtr hWnd, IntPtr voidProcessId);
167 |
168 | [DllImport("user32.dll", SetLastError = false)]
169 | public static extern IntPtr SetWinEventHook(Hook.SWEH_Events eventMin, Hook.SWEH_Events eventMax,
170 | IntPtr hmodWinEventProc, Hook.WinEventDelegate lpfnWinEventProc,
171 | uint idProcess, uint idThread, Hook.SWEH_dwFlags dwFlags);
172 |
173 | [DllImport("user32.dll", SetLastError = false)]
174 | public static extern bool UnhookWinEvent(IntPtr hWinEventHook);
175 | }
176 | }
177 |
--------------------------------------------------------------------------------
/TraderForPoe/Classes/Updater.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Net;
6 | using System.Reflection;
7 | using System.Text;
8 | using System.Threading.Tasks;
9 | using System.Windows;
10 |
11 | namespace TraderForPoe.Classes
12 | {
13 | static class Updater
14 | {
15 | ///
16 | /// Check if a newer version is available
17 | ///
18 | /// Returns true if update is available
19 | public static bool UpdateIsAvailable()
20 | {
21 | WebClient webClient = new WebClient();
22 |
23 | string[] updateString = webClient.DownloadString("https://raw.githubusercontent.com/hexadezi/TraderForPoe/master/update").Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.None);
24 |
25 | double thisVersion = Convert.ToDouble(Assembly.GetEntryAssembly().GetName().Version.ToString().Substring(0, 3), System.Globalization.CultureInfo.InvariantCulture);
26 |
27 | double onlineVersion = Convert.ToDouble(updateString[0], System.Globalization.CultureInfo.InvariantCulture);
28 |
29 | if (onlineVersion > thisVersion)
30 | {
31 | return true;
32 | }
33 | else
34 | {
35 | return false;
36 | }
37 | }
38 |
39 | public static void StartUpdate()
40 | {
41 | WebClient webClient = new WebClient();
42 |
43 | string[] updateString = webClient.DownloadString("https://raw.githubusercontent.com/labo89/TraderForPoe/master/update").Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.None);
44 |
45 | string downloadLink = updateString[1];
46 |
47 | string newExePath = Path.GetTempPath() + "TraderForPoe.exe";
48 |
49 | using (WebClient wc = new WebClient())
50 | {
51 | wc.DownloadFileCompleted += Wc_DownloadFileCompleted;
52 | wc.DownloadFileAsync(new System.Uri(downloadLink), newExePath);
53 | }
54 | }
55 |
56 | private static void Wc_DownloadFileCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
57 | {
58 | File.Delete(Path.GetTempPath() + "TraderForPoe.bak");
59 |
60 | File.Move(Assembly.GetEntryAssembly().Location, Path.GetTempPath() + "TraderForPoe.bak");
61 |
62 | File.Move(Path.GetTempPath() + "TraderForPoe.exe", AppDomain.CurrentDomain.BaseDirectory + "TraderForPoe.exe");
63 |
64 | System.Diagnostics.Process.Start(Application.ResourceAssembly.Location);
65 |
66 | Application.Current.Shutdown();
67 | }
68 |
69 | }
70 | }
71 |
--------------------------------------------------------------------------------
/TraderForPoe/Controls/CustMenuItem.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Drawing;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 | using System.Windows.Media.Imaging;
8 | using TraderForPoe.Properties;
9 |
10 | namespace TraderForPoe.Controls
11 | {
12 | class CustMenuItem : System.Windows.Forms.ToolStripMenuItem
13 | {
14 | private static int countItems = 0;
15 |
16 | public static event EventHandler OnItemCountExceed;
17 |
18 | public TradeItemControl GetTradeItemCtrl { get; set; }
19 |
20 | public CustMenuItem(TradeItemControl tradeItemControl)
21 | {
22 | countItems++;
23 |
24 | GetTradeItemCtrl = tradeItemControl;
25 | Text = GetTradeItemCtrl.tItem.Customer + ": " + GetTradeItemCtrl.tItem.Item;
26 | if (GetTradeItemCtrl.tItem.TradeType == TradeItem.TradeTypes.BUY)
27 | {
28 | Image = Properties.Resources.arrowBuy;
29 | }
30 | else if (GetTradeItemCtrl.tItem.TradeType == TradeItem.TradeTypes.SELL)
31 | {
32 | Image = Properties.Resources.arrowSell;
33 | }
34 |
35 | if (countItems > Settings.Default.HistoryItemsCount)
36 | {
37 | if (OnItemCountExceed != null)
38 | {
39 | OnItemCountExceed(this, EventArgs.Empty);
40 | }
41 | }
42 |
43 | }
44 |
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/TraderForPoe/Controls/CustomMenuItem.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
--------------------------------------------------------------------------------
/TraderForPoe/Controls/StashControl.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
36 |
45 |
46 |
47 |
48 |
49 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/TraderForPoe/Controls/StashControl.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Windows.Controls;
2 |
3 | namespace TraderForPoe.Controls
4 | {
5 | ///
6 | /// Interaktionslogik für StashControl.xaml
7 | ///
8 | public partial class StashControl : UserControl
9 | {
10 | public StashControl(TradeItem tItemArgs)
11 | {
12 | InitializeComponent();
13 | GetTItem = tItemArgs;
14 | txt_StashName.Text = GetTItem.Stash;
15 | }
16 |
17 | public TradeItem GetTItem { get; set; }
18 |
19 | }
20 |
21 |
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/TraderForPoe/Controls/TradeItemControl.xaml:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
39 |
40 |
51 |
52 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
79 |
80 |
81 |
87 |
88 |
89 |
90 |
91 |
92 |
100 |
101 |
102 |
103 | (
104 |
105 | 1
106 |
107 |
108 | =
109 |
110 |
111 | 2
112 |
113 |
114 |
115 | )
116 |
117 |
118 |
119 |
120 |
121 |
127 |
128 |
129 | 00:00
130 |
131 |
132 |
133 |
134 |
137 |
140 |
141 |
144 |
145 |
148 |
149 |
152 |
153 |
156 |
157 |
160 |
161 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
179 |
182 |
185 |
188 |
189 |
190 |
191 |
194 |
195 |
198 |
199 |
202 |
203 |
206 |
207 |
210 |
211 |
214 |
215 |
218 |
219 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
--------------------------------------------------------------------------------
/TraderForPoe/FodyWeavers.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/TraderForPoe/FodyWeavers.xsd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks
13 |
14 |
15 |
16 |
17 | A list of assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks.
18 |
19 |
20 |
21 |
22 | A list of unmanaged 32 bit assembly names to include, delimited with line breaks.
23 |
24 |
25 |
26 |
27 | A list of unmanaged 64 bit assembly names to include, delimited with line breaks.
28 |
29 |
30 |
31 |
32 | The order of preloaded assemblies, delimited with line breaks.
33 |
34 |
35 |
36 |
37 |
38 | This will copy embedded files to disk before loading them into memory. This is helpful for some scenarios that expected an assembly to be loaded from a physical file.
39 |
40 |
41 |
42 |
43 | Controls if .pdbs for reference assemblies are also embedded.
44 |
45 |
46 |
47 |
48 | Embedded assemblies are compressed by default, and uncompressed when they are loaded. You can turn compression off with this option.
49 |
50 |
51 |
52 |
53 | As part of Costura, embedded assemblies are no longer included as part of the build. This cleanup can be turned off.
54 |
55 |
56 |
57 |
58 | Costura by default will load as part of the module initialization. This flag disables that behavior. Make sure you call CosturaUtility.Initialize() somewhere in your code.
59 |
60 |
61 |
62 |
63 | Costura will by default use assemblies with a name like 'resources.dll' as a satellite resource and prepend the output path. This flag disables that behavior.
64 |
65 |
66 |
67 |
68 | A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with |
69 |
70 |
71 |
72 |
73 | A list of assembly names to include from the default action of "embed all Copy Local references", delimited with |.
74 |
75 |
76 |
77 |
78 | A list of unmanaged 32 bit assembly names to include, delimited with |.
79 |
80 |
81 |
82 |
83 | A list of unmanaged 64 bit assembly names to include, delimited with |.
84 |
85 |
86 |
87 |
88 | The order of preloaded assemblies, delimited with |.
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 | 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.
97 |
98 |
99 |
100 |
101 | A comma-separated list of error codes that can be safely ignored in assembly verification.
102 |
103 |
104 |
105 |
106 | 'false' to turn off automatic generation of the XML Schema file.
107 |
108 |
109 |
110 |
111 |
--------------------------------------------------------------------------------
/TraderForPoe/MainWindow.xaml:
--------------------------------------------------------------------------------
1 |
22 |
23 |
24 |
25 |
49 |
50 |
51 |
52 |
53 |
54 |
59 |
60 |
63 |
64 |
65 |
66 |
72 |
81 |
82 |
83 |
84 |
85 |
--------------------------------------------------------------------------------
/TraderForPoe/MainWindow.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.IO;
3 | using System.Linq;
4 | using System.Runtime.InteropServices;
5 | using System.Text;
6 | using System.Text.RegularExpressions;
7 | using System.Threading;
8 | using System.Windows;
9 | using System.Windows.Input;
10 | using System.Windows.Interop;
11 | using System.Windows.Threading;
12 | using TraderForPoe.Classes;
13 | using TraderForPoe.Controls;
14 | using TraderForPoe.Properties;
15 | using TraderForPoe.Windows;
16 | using WindowsInput;
17 | using WindowsInput.Native;
18 |
19 | namespace TraderForPoe
20 | {
21 | public partial class MainWindow : Window
22 | {
23 | // Needed to prevent window getting focus
24 | const int GWL_EXSTYLE = -20;
25 | const int WS_EX_NOACTIVATE = 134217728;
26 | const int LSFW_LOCK = 1;
27 |
28 | // Get a handle to an application window.
29 | [DllImport("USER32.DLL", CharSet = CharSet.Unicode)]
30 | public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
31 |
32 | [DllImport("user32.dll")]
33 | private static extern IntPtr GetForegroundWindow();
34 |
35 | // Activate an application window.
36 | [DllImport("USER32.DLL")]
37 | public static extern bool SetForegroundWindow(IntPtr hWnd);
38 |
39 | // Needed to prevent Application taking focus
40 | [DllImport("user32")]
41 | public static extern bool LockSetForegroundWindow(uint UINT);
42 |
43 | [DllImport("user32")]
44 | public static extern IntPtr SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);
45 |
46 | System.Windows.Forms.NotifyIcon nIcon = new System.Windows.Forms.NotifyIcon();
47 |
48 | System.Windows.Forms.ContextMenuStrip cMenu = new System.Windows.Forms.ContextMenuStrip();
49 |
50 | System.Windows.Forms.ToolStripMenuItem itmHistory = new System.Windows.Forms.ToolStripMenuItem("History");
51 |
52 | ClipboardMonitor clipMoni = new ClipboardMonitor();
53 |
54 | bool mainWindowCollapsed = false;
55 |
56 | DispatcherTimer dispatcherTimer = new DispatcherTimer();
57 | // Variables for reading the Client.txt
58 |
59 | long initialFileSize;
60 |
61 | long lastReadLength;
62 |
63 | Regex customerJoinedRegEx = new Regex(".* : (.*) has joined the area");
64 |
65 | Regex customerLeftRegEx = new Regex(".* : (.*) has left the area");
66 |
67 |
68 | public MainWindow()
69 | {
70 | CheckForUpdates();
71 |
72 | SubscribeToEvents();
73 |
74 | InitializeComponent();
75 |
76 | CreateContextMenu();
77 |
78 | CheckForClientTxt();
79 |
80 | LoadSetting();
81 |
82 | StartFileMonitoring();
83 | }
84 |
85 |
86 |
87 | private void CheckForUpdates()
88 | {
89 | if (Settings.Default.CheckForUpdatesOnStart)
90 | {
91 | if (Updater.UpdateIsAvailable())
92 | {
93 | if (MessageBox.Show("A new version is available. Do you want to Update? Application will be restarted.", "Confirm", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
94 | {
95 | Updater.StartUpdate();
96 | }
97 | }
98 | }
99 | }
100 |
101 | private void CheckForClientTxt()
102 | {
103 | if (File.Exists(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), @"Grinding Gear Games\Path of Exile\logs\Client.txt")))
104 | {
105 | Settings.Default.PathToClientTxt = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), @"Grinding Gear Games\Path of Exile\logs\Client.txt");
106 | Settings.Default.Save();
107 | return;
108 | }
109 |
110 | if (File.Exists(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), @"Steam\steamapps\common\Path of Exile\logs\Client.txt")))
111 | {
112 | Settings.Default.PathToClientTxt = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), @"Steam\steamapps\common\Path of Exile\logs\Client.txt");
113 | Settings.Default.Save();
114 | return;
115 | }
116 |
117 | if (File.Exists(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86), @"Grinding Gear Games\Path of Exile\logs\Client.txt")))
118 | {
119 | Settings.Default.PathToClientTxt = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86), @"Grinding Gear Games\Path of Exile\logs\Client.txt");
120 | Settings.Default.Save();
121 | return;
122 | }
123 |
124 | if (File.Exists(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86), @"Steam\steamapps\common\Path of Exile\logs\Client.txt")))
125 | {
126 | Settings.Default.PathToClientTxt = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86), @"Steam\steamapps\common\Path of Exile\logs\Client.txt");
127 | Settings.Default.Save();
128 | return;
129 | }
130 | }
131 |
132 | private void SubscribeToEvents()
133 | {
134 | TradeItemControl.MoreThanThreeItems += TradeItemControl_MoreThanThreeItems;
135 | TradeItemControl.EqualThreeItems += TradeItemControl_LessThanThreeItems;
136 | CustMenuItem.OnItemCountExceed += CustMenuItem_OnItemCountExceed;
137 | }
138 |
139 | private void CustMenuItem_OnItemCountExceed(object sender, EventArgs e)
140 | {
141 | // remove the first item in history list, if limit is reached
142 | itmHistory.DropDownItems.RemoveAt(0);
143 | }
144 |
145 | private void TradeItemControl_MoreThanThreeItems(object sender, EventArgs e)
146 | {
147 | btn_collapseMainWindow.Visibility = Visibility.Visible;
148 | brd_collapseMainWindow.Visibility = Visibility.Visible;
149 | }
150 |
151 | private void TradeItemControl_LessThanThreeItems(object sender, EventArgs e)
152 | {
153 | btn_collapseMainWindow.Visibility = Visibility.Collapsed;
154 | brd_collapseMainWindow.Visibility = Visibility.Collapsed;
155 | }
156 |
157 | private void LoadSetting()
158 | {
159 | if (Settings.Default.UseClipboardMonitor == true)
160 | {
161 | clipMoni.OnClipboardContentChanged += ClipMoni_OnClipboardContentChanged;
162 | cMenu.Items[0].Text = "Stop Monitor";
163 | }
164 | else
165 | {
166 | cMenu.Items[0].Text = "Start Monitor";
167 | }
168 |
169 | // Subscribe to SetNoActiveWindow. Prevent window from focus
170 | Loaded += (object sender, RoutedEventArgs e) => SetNoActiveWindow();
171 |
172 | this.Top = Settings.Default.PosTop;
173 |
174 | this.Left = Settings.Default.PosLeft;
175 | }
176 |
177 | private string GetClipboardText()
178 | {
179 | string strClipboard = string.Empty;
180 |
181 | for (int i = 0; i < 10; i++)
182 | {
183 | try
184 | {
185 | strClipboard = Clipboard.GetText(TextDataFormat.UnicodeText);
186 | return strClipboard;
187 | }
188 | catch (System.Runtime.InteropServices.COMException ex)
189 | {
190 | //fix for OpenClipboard Failed (Exception from HRESULT: 0x800401D0 (CLIPBRD_E_CANT_OPEN))
191 | //https://stackoverflow.com/questions/12769264/openclipboard-failed-when-copy-pasting-data-from-wpf-datagrid
192 | //https://stackoverflow.com/questions/68666/clipbrd-e-cant-open-error-when-setting-the-clipboard-from-net
193 | if (ex.ErrorCode == -2147221040)
194 | {
195 | System.Threading.Thread.Sleep(10);
196 | }
197 | else
198 | {
199 | throw new Exception("Unable to get Clipboard text. Message: \n" + ex.Message);
200 | }
201 | }
202 | }
203 |
204 | return strClipboard;
205 | }
206 |
207 | private void ClipMoni_OnClipboardContentChanged(object sender, EventArgs e)
208 | {
209 | string strClipboard = GetClipboardText();
210 |
211 | if (strClipboard.StartsWith("@"))
212 | {
213 | // Get a handle to POE. The window class and window name were obtained using the Spy++ tool.
214 | IntPtr poeHandle = FindWindow("POEWindowClass", "Path of Exile");
215 | // Verify that POE is a running process.
216 | if (poeHandle == IntPtr.Zero)
217 | {
218 | // Show message box if POE is not running
219 | MessageBox.Show("Path of Exile is not running.");
220 | return;
221 | }
222 |
223 | InputSimulator iSim = new InputSimulator();
224 |
225 | // Need to press ALT because the SetForegroundWindow sometimes does not work
226 | iSim.Keyboard.KeyPress(VirtualKeyCode.MENU);
227 |
228 | // Make POE the foreground application and send input
229 | SetForegroundWindow(poeHandle);
230 |
231 | Thread.Sleep(100);
232 |
233 | iSim.Keyboard.KeyPress(VirtualKeyCode.RETURN);
234 |
235 | // Send the input
236 | iSim.Keyboard.TextEntry(strClipboard);
237 |
238 | // Send RETURN
239 | iSim.Keyboard.KeyPress(VirtualKeyCode.RETURN);
240 |
241 | iSim = null;
242 |
243 | Clipboard.Clear();
244 | }
245 | }
246 |
247 | private void CreateContextMenu()
248 | {
249 | nIcon.MouseClick += NIcon_MouseClick;
250 | nIcon.MouseDoubleClick += NIcon_MouseDoubleClick;
251 | Stream iconStream = Application.GetResourceStream(new Uri("pack://application:,,,/Resources/ico_Application.ico")).Stream;
252 | nIcon.Icon = new System.Drawing.Icon(iconStream);
253 | nIcon.Visible = true;
254 |
255 | var monitor = cMenu.Items.Add("Monitor");
256 | monitor.Click += CMenu_ClipboardMonitor;
257 |
258 | cMenu.Items.Add(itmHistory);
259 |
260 | var settings = cMenu.Items.Add("Settings");
261 | settings.Click += CMenu_Settings;
262 |
263 | var update = cMenu.Items.Add("Update");
264 | update.Click += CMenu_Update;
265 |
266 | var about = cMenu.Items.Add("About");
267 | about.Click += CMenu_About;
268 |
269 | var exit = cMenu.Items.Add("Exit");
270 | exit.Click += CMenu_Close;
271 |
272 | nIcon.ContextMenuStrip = cMenu;
273 | }
274 |
275 | private void CMenu_Update(object sender, EventArgs e)
276 | {
277 | if (Updater.UpdateIsAvailable())
278 | {
279 | if (MessageBox.Show("A new version is available. Do you want to Update? Application will be restarted.", "Confirm", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
280 | {
281 | Updater.StartUpdate();
282 | }
283 | }
284 | else
285 | {
286 | System.Windows.Forms.MessageBox.Show("No updates available", "No updates", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Information);
287 | }
288 | }
289 |
290 | private void NIcon_MouseDoubleClick(object sender, System.Windows.Forms.MouseEventArgs e)
291 | {
292 | OpenWindow();
293 | }
294 |
295 | private void CMenu_ClipboardMonitor(object sender, EventArgs e)
296 | {
297 | if (cMenu.Items[0].Text.StartsWith("Start"))
298 | {
299 | clipMoni.OnClipboardContentChanged += ClipMoni_OnClipboardContentChanged;
300 | cMenu.Items[0].Text = "Stop Monitor";
301 | }
302 | else if (cMenu.Items[0].Text.StartsWith("Stop"))
303 | {
304 | clipMoni.OnClipboardContentChanged -= ClipMoni_OnClipboardContentChanged;
305 | cMenu.Items[0].Text = "Start Monitor";
306 | }
307 | else
308 | {
309 | throw new ArgumentException("Menu item text must start with \"Start\" or \"Stop\"");
310 | }
311 | }
312 | void OpenWindow(bool topMost = false) where T : Window, new()
313 | {
314 | bool isWindowOpen = false;
315 |
316 | foreach (Window w in Application.Current.Windows)
317 | {
318 | if (w is T)
319 | {
320 | isWindowOpen = true;
321 | w.WindowState = WindowState.Normal;
322 | w.Topmost = topMost;
323 | w.Activate();
324 | }
325 | }
326 |
327 | if (!isWindowOpen)
328 | {
329 | T newwindow = new T();
330 | newwindow.Topmost = topMost;
331 | newwindow.Show();
332 | newwindow.Activate();
333 | }
334 | }
335 | private void CMenu_Settings(object sender, EventArgs e)
336 | {
337 | OpenWindow();
338 | }
339 |
340 | private void CMenu_About(object sender, EventArgs e)
341 | {
342 | OpenWindow();
343 | }
344 |
345 | private void StartFileMonitoring()
346 | {
347 | string filePath = Settings.Default.PathToClientTxt;
348 | if (!String.IsNullOrEmpty(filePath))
349 | {
350 | try
351 | {
352 | // Set variables befor Timer start
353 | initialFileSize = new FileInfo(filePath).Length;
354 |
355 | lastReadLength = initialFileSize;
356 |
357 | dispatcherTimer.Tick += new EventHandler(DispatcherTimer_Tick);
358 |
359 | dispatcherTimer.Interval = new TimeSpan(0, 0, 0, 0, 200);
360 |
361 | dispatcherTimer.Start();
362 | }
363 | catch (FileNotFoundException ex)
364 | {
365 | System.Windows.Forms.MessageBox.Show(ex.Message, "Exception", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
366 | OpenWindow();
367 | }
368 | }
369 | else
370 | {
371 | System.Windows.Forms.MessageBox.Show("No Client.txt found \nPlease set the correct path in the settings and restart the application.", "File not found", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
372 | OpenWindow();
373 | }
374 | }
375 |
376 | private void DispatcherTimer_Tick(object sender, EventArgs e)
377 | {
378 | string filePath = Settings.Default.PathToClientTxt;
379 |
380 | CheckIfPoeIsForegroundWindow();
381 |
382 | if (lastReadLength < 0)
383 | {
384 | lastReadLength = 0;
385 | }
386 |
387 | try
388 | {
389 | var fileSize = new FileInfo(filePath).Length;
390 | if (fileSize > lastReadLength)
391 | {
392 | using (var fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
393 | {
394 | fs.Seek(lastReadLength, SeekOrigin.Begin);
395 | var buffer = new byte[1024];
396 |
397 | var bytesRead = fs.Read(buffer, 0, buffer.Length);
398 | lastReadLength += bytesRead;
399 |
400 |
401 | var text = Encoding.UTF8.GetString(buffer, 0, bytesRead);
402 |
403 | using (var reader = new StringReader(text))
404 | {
405 | for (string line = reader.ReadLine(); line != null; line = reader.ReadLine())
406 | {
407 | // Check for trade whispers
408 | if (line.Contains(" @"))
409 | {
410 | // Get a handle to POE. The window class and window name were obtained using the Spy++ tool.
411 | IntPtr poeHandle = FindWindow("POEWindowClass", "Path of Exile");
412 |
413 | // Verify that POE is a running process.
414 | if (poeHandle != IntPtr.Zero)
415 | {
416 | try
417 | {
418 | TradeItem tItem = new TradeItem(line);
419 | TradeItemControl uc = new TradeItemControl(tItem);
420 | stk_MainPnl.Children.Add(uc);
421 | var customMenuItem = new CustMenuItem(uc);
422 | customMenuItem.Click += CustomMenuItem_Click;
423 | itmHistory.DropDownItems.Add(customMenuItem);
424 | }
425 | catch (NoCurrencyBitmapFoundException)
426 | {
427 | //System.Windows.Forms.MessageBox.Show(ex.Message, "Error", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
428 | }
429 | catch (NoCurrencyFoundException)
430 | {
431 | //System.Windows.Forms.MessageBox.Show(ex.Message, "Error", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
432 | }
433 | catch (NoRegExMatchException)
434 | {
435 | //System.Windows.Forms.MessageBox.Show(ex.Message, "Error", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
436 | }
437 | catch (TradeItemExistsException)
438 | {
439 | //System.Windows.Forms.MessageBox.Show(ex.Message, "Error", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
440 | }
441 | catch (Exception ex)
442 | {
443 | System.Windows.Forms.MessageBox.Show(ex.Message, "Error", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
444 | }
445 | }
446 | }
447 |
448 | // Check if customer joined or left
449 | else if (customerJoinedRegEx.IsMatch(line))
450 | {
451 | MatchCollection matches = Regex.Matches(line, customerJoinedRegEx.ToString());
452 |
453 | foreach (Match match in matches)
454 | {
455 | foreach (TradeItemControl item in stk_MainPnl.Children)
456 | {
457 | if (item.tItem.Customer == match.Groups[1].Value)
458 | {
459 | item.CustomerJoined();
460 | }
461 | }
462 | }
463 | }
464 |
465 | // Check if customer left
466 | else if (customerLeftRegEx.IsMatch(line))
467 | {
468 | MatchCollection matches = Regex.Matches(line, customerLeftRegEx.ToString());
469 |
470 | foreach (Match match in matches)
471 | {
472 | foreach (TradeItemControl item in stk_MainPnl.Children)
473 | {
474 | if (item.tItem.Customer == match.Groups[1].Value)
475 | {
476 | item.CustomerLeft();
477 | }
478 | }
479 | }
480 | }
481 |
482 | }
483 | }
484 |
485 | }
486 | }
487 | }
488 | catch (FileNotFoundException)
489 | {
490 | dispatcherTimer.Tick -= DispatcherTimer_Tick;
491 | }
492 | catch (Exception ex)
493 | {
494 | System.Windows.Forms.MessageBox.Show(ex.Message, "Error", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
495 |
496 | }
497 | }
498 |
499 | // Handle click event for the history menu item
500 | private void CustomMenuItem_Click(object sender, EventArgs e)
501 | {
502 | var s = sender as CustMenuItem;
503 |
504 | // Avoid exception by checking if the item is already in the panel
505 | if (!stk_MainPnl.Children.Contains(s.GetTradeItemCtrl))
506 | {
507 | stk_MainPnl.Children.Add(s.GetTradeItemCtrl);
508 | }
509 | }
510 |
511 | private void CheckIfPoeIsForegroundWindow()
512 | {
513 | if (Settings.Default.HideIfPoeNotForeGround)
514 | {
515 | if (GetForegroundWindow() != FindWindow("POEWindowClass", "Path of Exile"))
516 | Hide();
517 | else
518 | Show();
519 | }
520 | }
521 |
522 | private void CMenu_Close(object sender, EventArgs e)
523 | {
524 | Application.Current.Shutdown();
525 | }
526 |
527 | private void NIcon_MouseClick(object sender, System.Windows.Forms.MouseEventArgs e)
528 | {
529 |
530 | }
531 |
532 | private void SetNoActiveWindow()
533 | {
534 | WindowInteropHelper helper = new WindowInteropHelper(this);
535 | SetWindowLong(helper.Handle, GWL_EXSTYLE, WS_EX_NOACTIVATE);
536 | LockSetForegroundWindow(LSFW_LOCK);
537 | }
538 |
539 | private void Window_MouseDown(object sender, MouseButtonEventArgs e)
540 | {
541 | if (e.ChangedButton == System.Windows.Input.MouseButton.Left)
542 | this.DragMove();
543 | }
544 |
545 | private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
546 | {
547 | nIcon.Visible = false;
548 | nIcon.Dispose();
549 | System.Windows.Forms.Application.DoEvents();
550 | }
551 |
552 | private void Window_LocationChanged(object sender, EventArgs e)
553 | {
554 | Settings.Default.PosLeft = this.Left;
555 | Settings.Default.PosTop = this.Top;
556 | Settings.Default.Save();
557 | }
558 |
559 | private void ClickCollapseExpandMainwindow(object sender, RoutedEventArgs e)
560 | {
561 | if (mainWindowCollapsed == false)
562 | {
563 | btn_collapseMainWindow.Width = this.Width - (brd_collapseMainWindow.BorderThickness.Left + brd_collapseMainWindow.BorderThickness.Right + brd_collapseMainWindow.Margin.Left);
564 | btn_collapseMainWindow.Content = "⏷";
565 | stk_MainPnl.Visibility = Visibility.Collapsed;
566 | mainWindowCollapsed = true;
567 | }
568 | else
569 | {
570 | btn_collapseMainWindow.Width = btn_collapseMainWindow.MinWidth;
571 | btn_collapseMainWindow.Content = "⏶";
572 | stk_MainPnl.Visibility = Visibility.Visible;
573 | mainWindowCollapsed = false;
574 | }
575 |
576 | }
577 | }
578 | }
579 |
--------------------------------------------------------------------------------
/TraderForPoe/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Resources;
3 | using System.Runtime.CompilerServices;
4 | using System.Runtime.InteropServices;
5 | using System.Windows;
6 |
7 | // Allgemeine Informationen über eine Assembly werden über die folgenden
8 | // Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
9 | // die einer Assembly zugeordnet sind.
10 | [assembly: AssemblyTitle("TraderForPoe")]
11 | [assembly: AssemblyDescription("")]
12 | [assembly: AssemblyConfiguration("")]
13 | [assembly: AssemblyCompany("")]
14 | [assembly: AssemblyProduct("")]
15 | [assembly: AssemblyCopyright("")]
16 | [assembly: AssemblyTrademark("")]
17 | [assembly: AssemblyCulture("")]
18 |
19 | // Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly
20 | // für COM-Komponenten unsichtbar. Wenn Sie auf einen Typ in dieser Assembly von
21 | // COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen.
22 | [assembly: ComVisible(false)]
23 |
24 | //Um mit dem Erstellen lokalisierbarer Anwendungen zu beginnen, legen Sie
25 | //ImCodeVerwendeteKultur in der .csproj-Datei
26 | //in einer fest. Wenn Sie in den Quelldateien beispielsweise Deutsch
27 | //(Deutschland) verwenden, legen Sie auf \"de-DE\" fest. Heben Sie dann die Auskommentierung
28 | //des nachstehenden NeutralResourceLanguage-Attributs auf. Aktualisieren Sie "en-US" in der nachstehenden Zeile,
29 | //sodass es mit der UICulture-Einstellung in der Projektdatei übereinstimmt.
30 |
31 | //[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
32 |
33 |
34 | [assembly: ThemeInfo(
35 | ResourceDictionaryLocation.None, //Speicherort der designspezifischen Ressourcenwörterbücher
36 | //(wird verwendet, wenn eine Ressource auf der Seite nicht gefunden wird,
37 | // oder in den Anwendungsressourcen-Wörterbüchern nicht gefunden werden kann.)
38 | ResourceDictionaryLocation.SourceAssembly //Speicherort des generischen Ressourcenwörterbuchs
39 | //(wird verwendet, wenn eine Ressource auf der Seite nicht gefunden wird,
40 | // designspezifischen Ressourcenwörterbuch nicht gefunden werden kann.)
41 | )]
42 |
43 |
44 | // Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
45 | //
46 | // Hauptversion
47 | // Nebenversion
48 | // Buildnummer
49 | // Revision
50 | //
51 | // Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
52 | // übernehmen, indem Sie "*" eingeben:
53 | // [assembly: AssemblyVersion("1.0.*")]
54 | [assembly: AssemblyVersion("2.4.0.0")]
55 | [assembly: AssemblyFileVersion("2.4.0.0")]
56 |
--------------------------------------------------------------------------------
/TraderForPoe/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace TraderForPoe.Properties {
12 | using System;
13 |
14 |
15 | ///
16 | /// A strongly-typed resource class, for looking up localized strings, etc.
17 | ///
18 | // This class was auto-generated by the StronglyTypedResourceBuilder
19 | // class via a tool like ResGen or Visual Studio.
20 | // To add or remove a member, edit your .ResX file then rerun ResGen
21 | // with the /str option, or rebuild your VS project.
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | public class Resources {
26 |
27 | private static global::System.Resources.ResourceManager resourceMan;
28 |
29 | private static global::System.Globalization.CultureInfo resourceCulture;
30 |
31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
32 | internal Resources() {
33 | }
34 |
35 | ///
36 | /// Returns the cached ResourceManager instance used by this class.
37 | ///
38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
39 | public static global::System.Resources.ResourceManager ResourceManager {
40 | get {
41 | if (object.ReferenceEquals(resourceMan, null)) {
42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("TraderForPoe.Properties.Resources", typeof(Resources).Assembly);
43 | resourceMan = temp;
44 | }
45 | return resourceMan;
46 | }
47 | }
48 |
49 | ///
50 | /// Overrides the current thread's CurrentUICulture property for all
51 | /// resource lookups using this strongly typed resource class.
52 | ///
53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
54 | public static global::System.Globalization.CultureInfo Culture {
55 | get {
56 | return resourceCulture;
57 | }
58 | set {
59 | resourceCulture = value;
60 | }
61 | }
62 |
63 | ///
64 | /// Looks up a localized resource of type System.Drawing.Bitmap.
65 | ///
66 | public static System.Drawing.Bitmap arrowBuy {
67 | get {
68 | object obj = ResourceManager.GetObject("arrowBuy", resourceCulture);
69 | return ((System.Drawing.Bitmap)(obj));
70 | }
71 | }
72 |
73 | ///
74 | /// Looks up a localized resource of type System.Drawing.Bitmap.
75 | ///
76 | public static System.Drawing.Bitmap arrowSell {
77 | get {
78 | object obj = ResourceManager.GetObject("arrowSell", resourceCulture);
79 | return ((System.Drawing.Bitmap)(obj));
80 | }
81 | }
82 |
83 | ///
84 | /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
85 | ///
86 | public static System.Drawing.Icon ico_Application {
87 | get {
88 | object obj = ResourceManager.GetObject("ico_Application", resourceCulture);
89 | return ((System.Drawing.Icon)(obj));
90 | }
91 | }
92 |
93 | ///
94 | /// Looks up a localized resource of type System.IO.UnmanagedMemoryStream similar to System.IO.MemoryStream.
95 | ///
96 | public static System.IO.UnmanagedMemoryStream notification {
97 | get {
98 | return ResourceManager.GetStream("notification", resourceCulture);
99 | }
100 | }
101 | }
102 | }
103 |
--------------------------------------------------------------------------------
/TraderForPoe/Properties/Resources.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 |
122 | ..\Resources\arrowBuy.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
123 |
124 |
125 | ..\Resources\arrowSell.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
126 |
127 |
128 | ..\Resources\ico_Application.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
129 |
130 |
131 | ..\Resources\notification.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
132 |
133 |
--------------------------------------------------------------------------------
/TraderForPoe/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace TraderForPoe.Properties {
12 |
13 |
14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")]
16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
17 |
18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
19 |
20 | public static Settings Default {
21 | get {
22 | return defaultInstance;
23 | }
24 | }
25 |
26 | [global::System.Configuration.UserScopedSettingAttribute()]
27 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
28 | [global::System.Configuration.DefaultSettingValueAttribute("PLAYERNAME")]
29 | public string PlayerName {
30 | get {
31 | return ((string)(this["PlayerName"]));
32 | }
33 | set {
34 | this["PlayerName"] = value;
35 | }
36 | }
37 |
38 | [global::System.Configuration.UserScopedSettingAttribute()]
39 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
40 | [global::System.Configuration.DefaultSettingValueAttribute("False")]
41 | [global::System.Configuration.SettingsManageabilityAttribute(global::System.Configuration.SettingsManageability.Roaming)]
42 | public bool CollapsedItems {
43 | get {
44 | return ((bool)(this["CollapsedItems"]));
45 | }
46 | set {
47 | this["CollapsedItems"] = value;
48 | }
49 | }
50 |
51 | [global::System.Configuration.UserScopedSettingAttribute()]
52 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
53 | [global::System.Configuration.DefaultSettingValueAttribute("True")]
54 | [global::System.Configuration.SettingsManageabilityAttribute(global::System.Configuration.SettingsManageability.Roaming)]
55 | public bool PlayNotificationSound {
56 | get {
57 | return ((bool)(this["PlayNotificationSound"]));
58 | }
59 | set {
60 | this["PlayNotificationSound"] = value;
61 | }
62 | }
63 |
64 | [global::System.Configuration.UserScopedSettingAttribute()]
65 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
66 | [global::System.Configuration.DefaultSettingValueAttribute("")]
67 | public string PathToClientTxt {
68 | get {
69 | return ((string)(this["PathToClientTxt"]));
70 | }
71 | set {
72 | this["PathToClientTxt"] = value;
73 | }
74 | }
75 |
76 | [global::System.Configuration.UserScopedSettingAttribute()]
77 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
78 | [global::System.Configuration.DefaultSettingValueAttribute("Give me one second! :) (Sent with TraderForPoe)")]
79 | public string CustomWhisper1 {
80 | get {
81 | return ((string)(this["CustomWhisper1"]));
82 | }
83 | set {
84 | this["CustomWhisper1"] = value;
85 | }
86 | }
87 |
88 | [global::System.Configuration.UserScopedSettingAttribute()]
89 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
90 | [global::System.Configuration.DefaultSettingValueAttribute("False")]
91 | public bool CloseItemAfterCustomWhisper1 {
92 | get {
93 | return ((bool)(this["CloseItemAfterCustomWhisper1"]));
94 | }
95 | set {
96 | this["CloseItemAfterCustomWhisper1"] = value;
97 | }
98 | }
99 |
100 | [global::System.Configuration.UserScopedSettingAttribute()]
101 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
102 | [global::System.Configuration.DefaultSettingValueAttribute("Already sold, sorry. :( (Sent with TraderForPoe)")]
103 | public string CustomWhisper2 {
104 | get {
105 | return ((string)(this["CustomWhisper2"]));
106 | }
107 | set {
108 | this["CustomWhisper2"] = value;
109 | }
110 | }
111 |
112 | [global::System.Configuration.UserScopedSettingAttribute()]
113 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
114 | [global::System.Configuration.DefaultSettingValueAttribute("False")]
115 | public bool CloseItemAfterCustomWhisper2 {
116 | get {
117 | return ((bool)(this["CloseItemAfterCustomWhisper2"]));
118 | }
119 | set {
120 | this["CloseItemAfterCustomWhisper2"] = value;
121 | }
122 | }
123 |
124 | [global::System.Configuration.UserScopedSettingAttribute()]
125 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
126 | [global::System.Configuration.DefaultSettingValueAttribute("Thank you very much, good luck and have a nice day. :) (Sent with TraderForPoe)")]
127 | public string ThankYouWhisper {
128 | get {
129 | return ((string)(this["ThankYouWhisper"]));
130 | }
131 | set {
132 | this["ThankYouWhisper"] = value;
133 | }
134 | }
135 |
136 | [global::System.Configuration.UserScopedSettingAttribute()]
137 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
138 | [global::System.Configuration.DefaultSettingValueAttribute("False")]
139 | public bool CloseItemAfterThankYouWhisper {
140 | get {
141 | return ((bool)(this["CloseItemAfterThankYouWhisper"]));
142 | }
143 | set {
144 | this["CloseItemAfterThankYouWhisper"] = value;
145 | }
146 | }
147 |
148 | [global::System.Configuration.UserScopedSettingAttribute()]
149 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
150 | [global::System.Configuration.DefaultSettingValueAttribute("Hi, I\'m busy right now. Shall I write you after? :) (Sent with TraderForPoe)")]
151 | public string ImBusyWhisper {
152 | get {
153 | return ((string)(this["ImBusyWhisper"]));
154 | }
155 | set {
156 | this["ImBusyWhisper"] = value;
157 | }
158 | }
159 |
160 | [global::System.Configuration.UserScopedSettingAttribute()]
161 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
162 | [global::System.Configuration.DefaultSettingValueAttribute("False")]
163 | public bool CloseItemAfterImBusyWhisper {
164 | get {
165 | return ((bool)(this["CloseItemAfterImBusyWhisper"]));
166 | }
167 | set {
168 | this["CloseItemAfterImBusyWhisper"] = value;
169 | }
170 | }
171 |
172 | [global::System.Configuration.UserScopedSettingAttribute()]
173 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
174 | [global::System.Configuration.DefaultSettingValueAttribute("True")]
175 | public bool UseClipboardMonitor {
176 | get {
177 | return ((bool)(this["UseClipboardMonitor"]));
178 | }
179 | set {
180 | this["UseClipboardMonitor"] = value;
181 | }
182 | }
183 |
184 | [global::System.Configuration.UserScopedSettingAttribute()]
185 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
186 | [global::System.Configuration.DefaultSettingValueAttribute("True")]
187 | public bool CloseItemAfterTrade {
188 | get {
189 | return ((bool)(this["CloseItemAfterTrade"]));
190 | }
191 | set {
192 | this["CloseItemAfterTrade"] = value;
193 | }
194 | }
195 |
196 | [global::System.Configuration.UserScopedSettingAttribute()]
197 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
198 | [global::System.Configuration.DefaultSettingValueAttribute("\r\n")]
201 | public global::System.Collections.ObjectModel.ObservableCollection QuadStash {
202 | get {
203 | return ((global::System.Collections.ObjectModel.ObservableCollection)(this["QuadStash"]));
204 | }
205 | set {
206 | this["QuadStash"] = value;
207 | }
208 | }
209 |
210 | [global::System.Configuration.UserScopedSettingAttribute()]
211 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
212 | [global::System.Configuration.DefaultSettingValueAttribute("True")]
213 | public bool UpgradeSettingsRequired {
214 | get {
215 | return ((bool)(this["UpgradeSettingsRequired"]));
216 | }
217 | set {
218 | this["UpgradeSettingsRequired"] = value;
219 | }
220 | }
221 |
222 | [global::System.Configuration.UserScopedSettingAttribute()]
223 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
224 | [global::System.Configuration.DefaultSettingValueAttribute("0")]
225 | public double PosTop {
226 | get {
227 | return ((double)(this["PosTop"]));
228 | }
229 | set {
230 | this["PosTop"] = value;
231 | }
232 | }
233 |
234 | [global::System.Configuration.UserScopedSettingAttribute()]
235 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
236 | [global::System.Configuration.DefaultSettingValueAttribute("0")]
237 | public double PosLeft {
238 | get {
239 | return ((double)(this["PosLeft"]));
240 | }
241 | set {
242 | this["PosLeft"] = value;
243 | }
244 | }
245 |
246 | [global::System.Configuration.UserScopedSettingAttribute()]
247 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
248 | [global::System.Configuration.DefaultSettingValueAttribute("False")]
249 | public bool HideIfPoeNotForeGround {
250 | get {
251 | return ((bool)(this["HideIfPoeNotForeGround"]));
252 | }
253 | set {
254 | this["HideIfPoeNotForeGround"] = value;
255 | }
256 | }
257 |
258 | [global::System.Configuration.UserScopedSettingAttribute()]
259 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
260 | [global::System.Configuration.DefaultSettingValueAttribute("True")]
261 | public bool CheckForUpdatesOnStart {
262 | get {
263 | return ((bool)(this["CheckForUpdatesOnStart"]));
264 | }
265 | set {
266 | this["CheckForUpdatesOnStart"] = value;
267 | }
268 | }
269 |
270 | [global::System.Configuration.UserScopedSettingAttribute()]
271 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
272 | [global::System.Configuration.DefaultSettingValueAttribute("20")]
273 | public int HistoryItemsCount {
274 | get {
275 | return ((int)(this["HistoryItemsCount"]));
276 | }
277 | set {
278 | this["HistoryItemsCount"] = value;
279 | }
280 | }
281 |
282 | [global::System.Configuration.UserScopedSettingAttribute()]
283 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
284 | [global::System.Configuration.DefaultSettingValueAttribute("Item sold? :) (Sent with TraderForPoe)")]
285 | public string CustomWhisper3 {
286 | get {
287 | return ((string)(this["CustomWhisper3"]));
288 | }
289 | set {
290 | this["CustomWhisper3"] = value;
291 | }
292 | }
293 |
294 | [global::System.Configuration.UserScopedSettingAttribute()]
295 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
296 | [global::System.Configuration.DefaultSettingValueAttribute("I am in lab! :) (Sent with TraderForPoe)")]
297 | public string CustomWhisper4 {
298 | get {
299 | return ((string)(this["CustomWhisper4"]));
300 | }
301 | set {
302 | this["CustomWhisper4"] = value;
303 | }
304 | }
305 |
306 | [global::System.Configuration.UserScopedSettingAttribute()]
307 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
308 | [global::System.Configuration.DefaultSettingValueAttribute("False")]
309 | public bool CloseItemAfterCustomWhisper3 {
310 | get {
311 | return ((bool)(this["CloseItemAfterCustomWhisper3"]));
312 | }
313 | set {
314 | this["CloseItemAfterCustomWhisper3"] = value;
315 | }
316 | }
317 |
318 | [global::System.Configuration.UserScopedSettingAttribute()]
319 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
320 | [global::System.Configuration.DefaultSettingValueAttribute("False")]
321 | public bool CloseItemAfterCustomWhisper4 {
322 | get {
323 | return ((bool)(this["CloseItemAfterCustomWhisper4"]));
324 | }
325 | set {
326 | this["CloseItemAfterCustomWhisper4"] = value;
327 | }
328 | }
329 |
330 | [global::System.Configuration.UserScopedSettingAttribute()]
331 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
332 | [global::System.Configuration.DefaultSettingValueAttribute("1")]
333 | public float ControlOpacity {
334 | get {
335 | return ((float)(this["ControlOpacity"]));
336 | }
337 | set {
338 | this["ControlOpacity"] = value;
339 | }
340 | }
341 | }
342 | }
343 |
--------------------------------------------------------------------------------
/TraderForPoe/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | PLAYERNAME
7 |
8 |
9 | False
10 |
11 |
12 | True
13 |
14 |
15 |
16 |
17 |
18 | Give me one second! :) (Sent with TraderForPoe)
19 |
20 |
21 | False
22 |
23 |
24 | Already sold, sorry. :( (Sent with TraderForPoe)
25 |
26 |
27 | False
28 |
29 |
30 | Thank you very much, good luck and have a nice day. :) (Sent with TraderForPoe)
31 |
32 |
33 | False
34 |
35 |
36 | Hi, I'm busy right now. Shall I write you after? :) (Sent with TraderForPoe)
37 |
38 |
39 | False
40 |
41 |
42 | True
43 |
44 |
45 | True
46 |
47 |
48 | <?xml version="1.0" encoding="utf-16"?>
49 | <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
50 | xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
51 |
52 |
53 | True
54 |
55 |
56 | 0
57 |
58 |
59 | 0
60 |
61 |
62 | False
63 |
64 |
65 | True
66 |
67 |
68 | 20
69 |
70 |
71 | Item sold? :) (Sent with TraderForPoe)
72 |
73 |
74 | I am in lab! :) (Sent with TraderForPoe)
75 |
76 |
77 | False
78 |
79 |
80 | False
81 |
82 |
83 | 1
84 |
85 |
86 |
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_alch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_alch.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_alt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_alt.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_ancient.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_ancient.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_annul.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_annul.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_appr_carto_sextant.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_appr_carto_sextant.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_armour_scrap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_armour_scrap.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_aug.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_aug.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_bauble.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_bauble.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_bestiary_orb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_bestiary_orb.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_binding.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_binding.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_black_whetstone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_black_whetstone.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_bless_chayula.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_bless_chayula.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_bless_esh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_bless_esh.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_bless_tul.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_bless_tul.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_bless_uul.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_bless_uul.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_bless_xoph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_bless_xoph.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_blessed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_blessed.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_chance.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_chance.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_chaos.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_chaos.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_chisel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_chisel.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_chrom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_chrom.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_divine.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_divine.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_divine_vessel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_divine_vessel.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_engineer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_engineer.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_eternal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_eternal.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_ex.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_ex.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_fuse.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_fuse.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_gcp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_gcp.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_harbinger.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_harbinger.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_horizon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_horizon.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_impr_bestiary.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_impr_bestiary.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_jew.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_jew.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_journ_carto_sextant.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_journ_carto_sextant.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_master_carto_sextant.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_master_carto_sextant.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_mirror.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_mirror.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_offering_to_the_goddess.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_offering_to_the_goddess.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_perandus_coin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_perandus_coin.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_port.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_port.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_regal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_regal.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_regret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_regret.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_sacrifice_dawn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_sacrifice_dawn.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_sacrifice_dusk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_sacrifice_dusk.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_sacrifice_midnight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_sacrifice_midnight.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_sacrifice_noon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_sacrifice_noon.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_scour.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_scour.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_silver.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_silver.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_splinter_chayula.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_splinter_chayula.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_splinter_esh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_splinter_esh.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_splinter_tul.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_splinter_tul.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_splinter_uul.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_splinter_uul.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_splinter_xoph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_splinter_xoph.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_tra.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_tra.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_vaal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_vaal.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Currency/curr_wis.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Currency/curr_wis.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Images/account-minus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Images/account-minus.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Images/askifinterested.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Images/askifinterested.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Images/clock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Images/clock.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Images/comment-question.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Images/comment-question.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Images/customMessage1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Images/customMessage1.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Images/customMessage2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Images/customMessage2.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Images/customMessage3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Images/customMessage3.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Images/customMessage4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Images/customMessage4.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Images/customerHideout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Images/customerHideout.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Images/home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Images/home.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Images/invite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Images/invite.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Images/leave.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Images/leave.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Images/magnify.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Images/magnify.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Images/message-text.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Images/message-text.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Images/remove.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Images/remove.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Images/repeat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Images/repeat.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Images/thanks.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Images/thanks.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/Images/trade.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/Images/trade.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/arrowBuy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/arrowBuy.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/arrowSell.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/arrowSell.png
--------------------------------------------------------------------------------
/TraderForPoe/Resources/ico_Application.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/ico_Application.ico
--------------------------------------------------------------------------------
/TraderForPoe/Resources/notification.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/Resources/notification.wav
--------------------------------------------------------------------------------
/TraderForPoe/Settings.cs:
--------------------------------------------------------------------------------
1 | namespace TraderForPoe.Properties {
2 |
3 |
4 | // Diese Klasse ermöglicht die Behandlung bestimmter Ereignisse der Einstellungsklasse:
5 | // Das SettingChanging-Ereignis wird ausgelöst, bevor der Wert einer Einstellung geändert wird.
6 | // Das PropertyChanged-Ereignis wird ausgelöst, nachdem der Wert einer Einstellung geändert wurde.
7 | // Das SettingsLoaded-Ereignis wird ausgelöst, nachdem die Einstellungswerte geladen wurden.
8 | // Das SettingsSaving-Ereignis wird ausgelöst, bevor die Einstellungswerte gespeichert werden.
9 | internal sealed partial class Settings {
10 |
11 | public Settings() {
12 | // // Heben Sie die Auskommentierung der unten angezeigten Zeilen auf, um Ereignishandler zum Speichern und Ändern von Einstellungen hinzuzufügen:
13 | //
14 | // this.SettingChanging += this.SettingChangingEventHandler;
15 | //
16 | // this.SettingsSaving += this.SettingsSavingEventHandler;
17 | //
18 | }
19 |
20 | private void SettingChangingEventHandler(object sender, System.Configuration.SettingChangingEventArgs e) {
21 | // Fügen Sie hier Code zum Behandeln des SettingChangingEvent-Ereignisses hinzu.
22 | }
23 |
24 | private void SettingsSavingEventHandler(object sender, System.ComponentModel.CancelEventArgs e) {
25 | // Fügen Sie hier Code zum Behandeln des SettingsSaving-Ereignisses hinzu.
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/TraderForPoe/TFP_SIG.snk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexadezi/TraderForPoe/05b3baad0b7e3ca24b090d7abe960203bcbd0702/TraderForPoe/TFP_SIG.snk
--------------------------------------------------------------------------------
/TraderForPoe/TraderForPoe.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Debug
7 | AnyCPU
8 | {B3B9FBD1-137A-419F-9802-3033F37B7565}
9 | WinExe
10 | TraderForPoe
11 | TraderForPoe
12 | v4.8
13 | 512
14 | {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
15 | 4
16 | true
17 |
18 |
19 | publish\
20 | true
21 | Disk
22 | false
23 | Foreground
24 | 7
25 | Days
26 | false
27 | false
28 | true
29 | 0
30 | 1.0.0.%2a
31 | false
32 | false
33 | true
34 |
35 |
36 |
37 | AnyCPU
38 | true
39 | full
40 | false
41 | bin\Debug\
42 | DEBUG;TRACE
43 | prompt
44 | 4
45 |
46 |
47 | AnyCPU
48 | pdbonly
49 | true
50 | bin\Release\
51 | TRACE
52 | prompt
53 | 4
54 |
55 |
56 | Resources\ico_application.ico
57 |
58 |
59 | TraderForPoe.App
60 |
61 |
62 | true
63 |
64 |
65 | TFP_SIG.snk
66 |
67 |
68 |
69 | ..\packages\Costura.Fody.3.3.2\lib\net40\Costura.dll
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 | 4.0
83 |
84 |
85 |
86 |
87 |
88 | ..\packages\InputSimulatorPlus.1.0.6\lib\net20\WindowsInput.dll
89 |
90 |
91 |
92 |
93 | MSBuild:Compile
94 | Designer
95 |
96 |
97 |
98 |
99 |
100 | Component
101 |
102 |
103 | StashControl.xaml
104 |
105 |
106 | True
107 | True
108 | Resources.resx
109 |
110 |
111 |
112 | TradeItemControl.xaml
113 |
114 |
115 |
116 | About.xaml
117 |
118 |
119 | StashGridHighlight.xaml
120 |
121 |
122 | UserSettings.xaml
123 |
124 |
125 | Designer
126 | MSBuild:Compile
127 |
128 |
129 | MSBuild:Compile
130 | Designer
131 |
132 |
133 | App.xaml
134 | Code
135 |
136 |
137 | MainWindow.xaml
138 | Code
139 |
140 |
141 | Designer
142 | MSBuild:Compile
143 |
144 |
145 | Designer
146 | MSBuild:Compile
147 |
148 |
149 | Designer
150 | MSBuild:Compile
151 |
152 |
153 | Designer
154 | MSBuild:Compile
155 |
156 |
157 |
158 |
159 | Code
160 |
161 |
162 | True
163 | Settings.settings
164 | True
165 |
166 |
167 | PublicResXFileCodeGenerator
168 | Resources.Designer.cs
169 | Designer
170 |
171 |
172 |
173 | SettingsSingleFileGenerator
174 | Settings.Designer.cs
175 |
176 |
177 |
178 |
179 |
180 | Designer
181 |
182 |
183 |
184 |
185 | False
186 | Microsoft .NET Framework 4.6.1 %28x86 und x64%29
187 | true
188 |
189 |
190 | False
191 | .NET Framework 3.5 SP1
192 | false
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
238 |
239 |
240 |
241 |
242 |
243 |
244 |
245 |
246 |
247 |
248 |
249 |
250 |
251 |
252 |
253 |
254 |
255 |
256 |
257 |
258 |
259 |
260 |
261 |
262 |
263 |
264 |
265 |
266 |
267 |
268 |
269 |
270 |
271 |
272 |
273 |
274 |
275 |
276 |
277 |
278 |
279 |
280 |
281 |
282 |
283 |
284 |
285 |
286 |
287 |
288 |
289 |
290 |
291 |
292 |
293 |
294 |
295 |
296 |
297 |
298 |
299 |
300 |
301 |
302 |
303 |
304 |
305 |
306 |
307 |
308 |
309 |
310 |
311 |
312 |
313 |
314 |
315 |
316 |
317 |
318 |
319 |
320 |
321 |
322 |
323 |
324 |
325 |
326 | Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}".
327 |
328 |
329 |
330 |
331 |
--------------------------------------------------------------------------------
/TraderForPoe/TraderForPoe_bxf31q5j_wpftmp.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Debug
7 | AnyCPU
8 | {B3B9FBD1-137A-419F-9802-3033F37B7565}
9 | WinExe
10 | TraderForPoe
11 | TraderForPoe
12 | v4.8
13 | 512
14 | {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
15 | 4
16 | true
17 |
18 |
19 | publish\
20 | true
21 | Disk
22 | false
23 | Foreground
24 | 7
25 | Days
26 | false
27 | false
28 | true
29 | 0
30 | 1.0.0.%2a
31 | false
32 | false
33 | true
34 |
35 |
36 |
37 | AnyCPU
38 | true
39 | full
40 | false
41 | bin\Debug\
42 | DEBUG;TRACE
43 | prompt
44 | 4
45 |
46 |
47 | AnyCPU
48 | pdbonly
49 | true
50 | bin\Release\
51 | TRACE
52 | prompt
53 | 4
54 |
55 |
56 | Resources\ico_application.ico
57 |
58 |
59 | TraderForPoe.App
60 |
61 |
62 | true
63 |
64 |
65 | TFP_SIG.snk
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 | Component
75 |
76 |
77 | StashControl.xaml
78 |
79 |
80 | True
81 | True
82 | Resources.resx
83 |
84 |
85 |
86 | TradeItemControl.xaml
87 |
88 |
89 |
90 | About.xaml
91 |
92 |
93 | StashGridHighlight.xaml
94 |
95 |
96 | UserSettings.xaml
97 |
98 |
99 | App.xaml
100 | Code
101 |
102 |
103 | MainWindow.xaml
104 | Code
105 |
106 |
107 |
108 |
109 | Code
110 |
111 |
112 | True
113 | Settings.settings
114 | True
115 |
116 |
117 | PublicResXFileCodeGenerator
118 | Resources.Designer.cs
119 | Designer
120 |
121 |
122 |
123 | SettingsSingleFileGenerator
124 | Settings.Designer.cs
125 |
126 |
127 |
128 |
129 |
130 | Designer
131 |
132 |
133 |
134 |
135 | False
136 | Microsoft .NET Framework 4.6.1 %28x86 und x64%29
137 | true
138 |
139 |
140 | False
141 | .NET Framework 3.5 SP1
142 | false
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 | Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}".
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
--------------------------------------------------------------------------------
/TraderForPoe/TraderForPoe_qn2tktyp_wpftmp.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Debug
7 | AnyCPU
8 | {B3B9FBD1-137A-419F-9802-3033F37B7565}
9 | WinExe
10 | TraderForPoe
11 | TraderForPoe
12 | v4.8
13 | 512
14 | {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
15 | 4
16 | true
17 |
18 |
19 | publish\
20 | true
21 | Disk
22 | false
23 | Foreground
24 | 7
25 | Days
26 | false
27 | false
28 | true
29 | 0
30 | 1.0.0.%2a
31 | false
32 | false
33 | true
34 |
35 |
36 |
37 | AnyCPU
38 | true
39 | full
40 | false
41 | bin\Debug\
42 | DEBUG;TRACE
43 | prompt
44 | 4
45 |
46 |
47 | AnyCPU
48 | pdbonly
49 | true
50 | bin\Release\
51 | TRACE
52 | prompt
53 | 4
54 |
55 |
56 | Resources\ico_application.ico
57 |
58 |
59 | TraderForPoe.App
60 |
61 |
62 | true
63 |
64 |
65 | TFP_SIG.snk
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 | Component
75 |
76 |
77 | StashControl.xaml
78 |
79 |
80 | True
81 | True
82 | Resources.resx
83 |
84 |
85 |
86 | TradeItemControl.xaml
87 |
88 |
89 |
90 | About.xaml
91 |
92 |
93 | StashGridHighlight.xaml
94 |
95 |
96 | UserSettings.xaml
97 |
98 |
99 | App.xaml
100 | Code
101 |
102 |
103 | MainWindow.xaml
104 | Code
105 |
106 |
107 |
108 |
109 | Code
110 |
111 |
112 | True
113 | Settings.settings
114 | True
115 |
116 |
117 | PublicResXFileCodeGenerator
118 | Resources.Designer.cs
119 | Designer
120 |
121 |
122 |
123 | SettingsSingleFileGenerator
124 | Settings.Designer.cs
125 |
126 |
127 |
128 |
129 |
130 | Designer
131 |
132 |
133 |
134 |
135 | False
136 | Microsoft .NET Framework 4.6.1 %28x86 und x64%29
137 | true
138 |
139 |
140 | False
141 | .NET Framework 3.5 SP1
142 | false
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 | Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}".
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
--------------------------------------------------------------------------------
/TraderForPoe/Windows/About.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 | TraderForPoe
14 |
15 |
16 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/TraderForPoe/Windows/About.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Windows;
3 |
4 | namespace TraderForPoe.Windows
5 | {
6 | ///
7 | /// Interaktionslogik für About.xaml
8 | ///
9 | public partial class About : Window
10 | {
11 | public About()
12 | {
13 | InitializeComponent();
14 | appName.Text += " " + Assembly.GetExecutingAssembly().GetName().Version.ToString();
15 | }
16 |
17 | private void OnRequestNavigate(object sender, System.Windows.Navigation.RequestNavigateEventArgs e)
18 | {
19 | System.Diagnostics.Process.Start(e.Uri.AbsoluteUri);
20 | e.Handled = true;
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/TraderForPoe/Windows/StashGridHighlight.xaml:
--------------------------------------------------------------------------------
1 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/TraderForPoe/Windows/StashGridHighlight.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Runtime.InteropServices;
3 | using System.Windows;
4 | using System.Windows.Controls;
5 | using System.Windows.Interop;
6 | using System.Windows.Media;
7 | using System.Windows.Shapes;
8 | using System.Windows.Threading;
9 | using TraderForPoe.Classes;
10 | using TraderForPoe.Controls;
11 | using TraderForPoe.Properties;
12 |
13 | namespace TraderForPoe.Windows
14 | {
15 | ///
16 | /// Interaktionslogik für StashGridHighlight.xaml
17 | ///
18 | public partial class StashGridHighlight : Window
19 | {
20 | // Needed to prevent window getting focus
21 | const int GWL_EXSTYLE = -20;
22 | const int WS_EX_NOACTIVATE = 134217728;
23 | const int LSFW_LOCK = 1;
24 |
25 | [DllImport("user32")]
26 | public static extern bool LockSetForegroundWindow(uint UINT);
27 |
28 | [DllImport("user32")]
29 | public static extern IntPtr SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);
30 |
31 | // Get a handle to an application window.
32 | [DllImport("USER32.DLL", CharSet = CharSet.Unicode)]
33 | public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
34 |
35 | [DllImport("USER32.DLL", CharSet = CharSet.Unicode)]
36 | public static extern bool IsWindow(IntPtr hWnd);
37 |
38 | // Used to get the client area of POE and the height and widht
39 | [DllImport("user32.dll")]
40 | static extern bool GetClientRect(IntPtr hWnd, out RECT lpRect);
41 |
42 | [DllImport("user32.dll")]
43 | [return: MarshalAs(UnmanagedType.Bool)]
44 | public static extern bool GetWindowRect(IntPtr hWnd, out RECT lpRect);
45 |
46 | [StructLayout(LayoutKind.Sequential)]
47 | public struct RECT
48 | {
49 | public int Left; // x position of upper-left corner
50 | public int Top; // y position of upper-left corner
51 | public int Right; // x position of lower-right corner
52 | public int Bottom; // y position of lower-right corner
53 | }
54 |
55 | DispatcherTimer dispatcherTimer = new DispatcherTimer();
56 |
57 | IntPtr poeHandle = FindWindow("POEWindowClass", "Path of Exile");
58 |
59 | // Needed to determine if poe window location changed
60 | private IntPtr hWinEventHook;
61 | protected Hook.WinEventDelegate WinEventDelegate;
62 | uint poeProcessId;
63 |
64 | public StashGridHighlight()
65 | {
66 | CheckAndUpdate();
67 |
68 | // Verify that POE is a running process.
69 | if (poeHandle == IntPtr.Zero)
70 | {
71 | MessageBox.Show("Path of Exile is not running.");
72 | return;
73 | }
74 |
75 | InitializeComponent();
76 |
77 | Loaded += (object sender, RoutedEventArgs e) => SetNoActiveWindow();
78 |
79 | UpdateLocationAndSize();
80 |
81 | WinEventDelegate = new Hook.WinEventDelegate(WinEventCallback);
82 | }
83 |
84 | protected void WinEventCallback(IntPtr hWinEventHook, Hook.SWEH_Events eventType, IntPtr hWnd, Hook.SWEH_ObjectId idObject, long idChild, uint dwEventThread, uint dwmsEventTime)
85 | {
86 | if (hWnd == poeHandle && eventType == Hook.SWEH_Events.EVENT_OBJECT_LOCATIONCHANGE && idObject == (Hook.SWEH_ObjectId)Hook.SWEH_CHILDID_SELF)
87 | {
88 | // Occurs when POE window is moved or size changed
89 | CheckAndUpdate();
90 | UpdateLocationAndSize();
91 | }
92 | }
93 |
94 | private void UpdateLocationAndSize()
95 | {
96 | GetClientRect(poeHandle, out RECT clientRect);
97 | GetWindowRect(poeHandle, out RECT windowRect);
98 |
99 | double borderSize = (windowRect.Right - (windowRect.Left + clientRect.Right)) / 2;
100 | double titleBarSize = (windowRect.Bottom - (windowRect.Top + clientRect.Bottom)) - borderSize;
101 |
102 | double x = windowRect.Left + borderSize;
103 | double y = windowRect.Top + titleBarSize;
104 | double h = clientRect.Bottom;
105 | double w = clientRect.Right;
106 |
107 | row_1.Height = new GridLength(h * 0.02);
108 | row_2.Height = new GridLength(h * 0.035);
109 | row_3.Height = GridLength.Auto;
110 |
111 |
112 |
113 | this.Top = y + (h * 0.062);
114 |
115 | this.Height = (h * 0.585) + row_1.Height.Value + row_2.Height.Value;
116 |
117 | this.Width = (h * 0.585);
118 |
119 |
120 | if ((w / h) < 1.35)
121 | {
122 | this.Left = x + (w * 0.011);
123 | }
124 | else if ((w / h) < 1.9)
125 | {
126 | this.Left = x + (w * 0.0088);
127 | }
128 | else if ((w / h) < 1.99)
129 | {
130 | this.Left = x + (w * 0.008);
131 | }
132 |
133 | else if ((w / h) < 2.3)
134 | {
135 | this.Left = x + (w * 0.007);
136 | }
137 |
138 | else if ((w / h) < 2.58)
139 | {
140 | this.Left = x + (w * 0.006);
141 |
142 | }
143 |
144 | else if ((w / h) < 2.8)
145 | {
146 | this.Left = x + (w * 0.0055);
147 |
148 | }
149 |
150 | else if ((w / h) < 3.1)
151 | {
152 | this.Left = x + (w * 0.005);
153 | }
154 |
155 | else
156 | {
157 | this.Left = x + (w * 0.004);
158 | }
159 |
160 | front_canvas.Width = this.Width;
161 |
162 | front_canvas.Height = this.Height;
163 | }
164 |
165 | public void AddButton(TradeItem tItemArgs)
166 | {
167 | CheckAndUpdate();
168 | UpdateLocationAndSize();
169 |
170 | if (ContainsItem(tItemArgs) == false && !String.IsNullOrEmpty(tItemArgs.Stash))
171 | {
172 | StashControl sCtrl = new StashControl(tItemArgs);
173 |
174 | sCtrl.MouseEnter += MouseEnterDrawRectangle;
175 |
176 | spnl_Buttons.Children.Add(sCtrl);
177 | }
178 |
179 | }
180 |
181 | private bool ContainsItem(TradeItem tItemArgs)
182 | {
183 | foreach (StashControl item in spnl_Buttons.Children)
184 | {
185 | if (item.GetTItem.Item == tItemArgs.Item && item.GetTItem.Customer == tItemArgs.Customer && item.GetTItem.Price == tItemArgs.Price && item.GetTItem.StashPosition == tItemArgs.StashPosition)
186 | {
187 | return true;
188 | }
189 | }
190 | return false;
191 | }
192 |
193 | private void SetNoActiveWindow()
194 | {
195 | WindowInteropHelper helper = new WindowInteropHelper(this);
196 | SetWindowLong(helper.Handle, GWL_EXSTYLE, WS_EX_NOACTIVATE);
197 | LockSetForegroundWindow(LSFW_LOCK);
198 | }
199 |
200 | private void StartDispatcherTimer()
201 | {
202 | dispatcherTimer.Tick += new EventHandler(DispatcherTimer_Tick);
203 | dispatcherTimer.Interval = new TimeSpan(0, 0, 0, 5);
204 | dispatcherTimer.Start();
205 | }
206 |
207 | private void DispatcherTimer_Tick(object sender, EventArgs e)
208 | {
209 | front_canvas.Children.Clear();
210 | }
211 |
212 | private void MouseEnterDrawRectangle(object sender, System.Windows.Input.MouseEventArgs e)
213 | {
214 | // Clear canvas before drawing new rectangle
215 | front_canvas.Children.Clear();
216 |
217 | // Start timer to clear canvas after some time
218 | StartDispatcherTimer();
219 |
220 | // Cast sender as StashControl
221 | StashControl stashControl = (StashControl)sender;
222 |
223 | double x = stashControl.GetTItem.StashPosition.X;
224 |
225 | double y = stashControl.GetTItem.StashPosition.Y;
226 |
227 | // Nomber of stash columns
228 | int nbrRectStash = 12;
229 |
230 | // Set rectangle size by dividing canvas by number of columns
231 | double rectDimensionX = ((front_canvas.Width) / 12);
232 |
233 | // Check if stash is quad. If true divide rectangle size and multiply number of columns by 2
234 | if ((x > 12 && x < 25) || (y > 12 && y < 25))
235 | {
236 | rectDimensionX = rectDimensionX / 2;
237 | nbrRectStash = nbrRectStash * 2;
238 | }
239 | else
240 | {
241 | foreach (var item in Settings.Default.QuadStash)
242 | {
243 | if (item == stashControl.GetTItem.Stash)
244 | {
245 | rectDimensionX = rectDimensionX / 2;
246 | nbrRectStash = nbrRectStash * 2;
247 | }
248 | }
249 | }
250 |
251 |
252 | for (int iX = 1; iX <= nbrRectStash; iX++)
253 | {
254 | // Create the rectangle
255 | Rectangle rectangleHighlight = new Rectangle()
256 | {
257 | Width = rectDimensionX,
258 | Height = rectDimensionX,
259 | Stroke = Brushes.Red,
260 | StrokeThickness = 1,
261 | };
262 |
263 | if (iX == x)
264 | {
265 |
266 | for (int iY = 1; iY <= nbrRectStash; iY++)
267 | {
268 | if (iY == y)
269 | {
270 | front_canvas.Children.Add(rectangleHighlight);
271 | Canvas.SetLeft(rectangleHighlight, (iX - 1) * rectDimensionX);
272 | Canvas.SetTop(rectangleHighlight, (iY - 1) * rectDimensionX);
273 | }
274 |
275 | }
276 | }
277 |
278 | }
279 | }
280 |
281 | public void ClearCanvas()
282 | {
283 | this.front_canvas.Children.Clear();
284 | }
285 |
286 | internal void RemoveStashControl(TradeItem tItemArgs)
287 | {
288 | foreach (StashControl item in spnl_Buttons.Children)
289 | {
290 | if (item.GetTItem.Item == tItemArgs.Item && item.GetTItem.Customer == tItemArgs.Customer && item.GetTItem.Price == tItemArgs.Price)
291 | {
292 | spnl_Buttons.Children.Remove(item);
293 | break; //important step
294 | }
295 | }
296 | }
297 |
298 | private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
299 | {
300 | // Unhook event when closing
301 | Hook.WinEventUnhook(hWinEventHook);
302 | }
303 |
304 | private void CheckAndUpdate()
305 | {
306 | if (poeHandle == IntPtr.Zero || !IsWindow(poeHandle))
307 | {
308 | poeHandle = FindWindow("POEWindowClass", "Path of Exile");
309 | try
310 | {
311 | if (poeHandle != IntPtr.Zero)
312 | {
313 | uint TargetThreadId = Hook.GetWindowThread(poeHandle);
314 | UnsafeNativeMethods.GetWindowThreadProcessId(poeHandle, out poeProcessId);
315 | hWinEventHook = Hook.WinEventHookOne(Hook.SWEH_Events.EVENT_OBJECT_LOCATIONCHANGE,
316 | WinEventDelegate,
317 | poeProcessId,
318 | TargetThreadId);
319 | }
320 |
321 | }
322 | catch (Exception ex)
323 | {
324 | //ErrorManager.Logger(this, this.InitializeComponent(), ex.HResult, ex.Data, DateTime.Now);
325 | throw ex;
326 | }
327 | }
328 | }
329 | }
330 | }
331 |
--------------------------------------------------------------------------------
/TraderForPoe/Windows/UserSettings.xaml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
21 |
26 |
29 |
30 |
31 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
49 |
50 |
51 |
52 |
53 |
59 |
60 |
61 |
65 |
69 |
73 |
77 |
81 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
109 |
115 |
123 |
124 |
129 |
136 |
145 |
146 |
151 |
158 |
167 |
168 |
173 |
180 |
189 |
190 |
195 |
202 |
211 |
212 |
217 |
224 |
233 |
234 |
235 |
236 |
237 |
238 |
239 |
240 |
241 |
246 |
247 |
248 |
249 |
250 |
257 |
258 |
259 |
260 |
261 |
262 |
263 |
264 |
--------------------------------------------------------------------------------
/TraderForPoe/Windows/UserSettings.xaml.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.Win32;
2 | using System.Collections.ObjectModel;
3 | using System.Collections.Specialized;
4 | using System.ComponentModel;
5 | using System.IO;
6 | using System.Windows;
7 | using TraderForPoe.Properties;
8 |
9 | namespace TraderForPoe.Windows
10 | {
11 | ///
12 | /// Interaktionslogik für UserSettings.xaml
13 | ///
14 | public partial class UserSettings : Window
15 | {
16 |
17 | public UserSettings()
18 | {
19 | InitializeComponent();
20 | }
21 |
22 |
23 | private void Click_SaveSettings(object sender, RoutedEventArgs e)
24 | {
25 | Settings.Default.Save();
26 | Settings.Default.Reload();
27 | System.Windows.Forms.MessageBox.Show("Settings saved successfully.", "Success", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Information);
28 |
29 | }
30 |
31 | private void Click_RestartApp(object sender, RoutedEventArgs e)
32 | {
33 | System.Diagnostics.Process.Start(Application.ResourceAssembly.Location);
34 | System.Windows.Application.Current.Shutdown();
35 | }
36 |
37 | private void Click_DeleteQuadStash(object sender, RoutedEventArgs e)
38 | {
39 | Settings.Default.QuadStash.Remove(lsb_QuadStash.SelectedItem.ToString());
40 | }
41 |
42 | private void Click_SearchFile(object sender, RoutedEventArgs e)
43 | {
44 | OpenFileDialog openFileDialog = new OpenFileDialog
45 | {
46 | Multiselect = false,
47 | Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*"
48 | };
49 |
50 | if (openFileDialog.ShowDialog() == true)
51 | {
52 | txt_PathToClientTxt.Text = openFileDialog.FileName;
53 | txt_PathToClientTxt.Focus();
54 | txt_PathToClientTxt.CaretIndex = txt_PathToClientTxt.Text.Length;
55 | }
56 | }
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/TraderForPoe/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/update:
--------------------------------------------------------------------------------
1 | 2.4
2 | https://github.com/hexadezi/TraderForPoe/releases/download/v2.4/TraderForPoe.exe
3 |
--------------------------------------------------------------------------------