From 61c17f65b9d32ddcff97ede39752cba7949b91dc Mon Sep 17 00:00:00 2001 From: clowwindy Date: Tue, 11 Nov 2014 00:44:37 +0800 Subject: [PATCH] high dpi support; close #47 --- shadowsocks-csharp/Data/ss32.ico | Bin 5430 -> 15123 bytes .../Properties/Resources.Designer.cs | 40 ++++++ shadowsocks-csharp/Properties/Resources.resx | 12 ++ shadowsocks-csharp/Resources/ss16.png | Bin 0 -> 376 bytes shadowsocks-csharp/Resources/ss20.png | Bin 0 -> 411 bytes shadowsocks-csharp/Resources/ss24.png | Bin 0 -> 492 bytes shadowsocks-csharp/Resources/ssw128.png | Bin 0 -> 1672 bytes .../View/ConfigForm.Designer.cs | 122 ++++++++++-------- shadowsocks-csharp/View/ConfigForm.cs | 28 ++++ shadowsocks-csharp/View/ConfigForm.resx | 120 ----------------- shadowsocks-csharp/app.manifest | 16 +++ shadowsocks-csharp/shadowsocks-csharp.csproj | 8 ++ shadowsocks-csharp/ssnoti.ico | Bin 1150 -> 0 bytes 13 files changed, 174 insertions(+), 172 deletions(-) create mode 100755 shadowsocks-csharp/Resources/ss16.png create mode 100755 shadowsocks-csharp/Resources/ss20.png create mode 100755 shadowsocks-csharp/Resources/ss24.png create mode 100755 shadowsocks-csharp/Resources/ssw128.png create mode 100755 shadowsocks-csharp/app.manifest delete mode 100755 shadowsocks-csharp/ssnoti.ico diff --git a/shadowsocks-csharp/Data/ss32.ico b/shadowsocks-csharp/Data/ss32.ico index c454c00cc91d33a4a175f9caa0924617685c249c..a68e4dbb9683cfb372e7cbab84e08cd500f61ca5 100755 GIT binary patch literal 15123 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 literal 5430 zcmds5du&rx7(d&PF0sj$$R7ilE8B!J22`DZFtsWw%7P>${^JW16Bk2-Adx1(ZujgS z9oqz*h&ba2FO_OY#3y~Pdvu#X*d#=_+Ju=j5p@YPQhNQJj?>-V_ICGfFcMGl@x(eT=@-__iu zL=x|8o9S-*C{pF~*H|%X#viavvU%cB{HE%%7OZ%>>f)k9tf8W~K;PXpq z=-6Xf)IP9(UB1(tHzNKH9e)OgPo^^&!(YCw#k!cBmAasqj`kt@``$fItby-W#ov1O z7!8b{;i#O3B_`;LljE$MH{`RH?66nNi7*-1mraaMim`@TPknKm9M~N6HZDEI_z_#j zqMt%cn& zIoO{!6f=tm&m4R;3$eukT1C^UyO;e3Ga>>Z5$+}w0OO?m12EGQlLidn0U zAOwhvPHR@bXgy&9{OSvEi2;M-+}&2 z&}`Qykz9&XJ0^_+x!`@7^b0_E?G!V@*cs+A!#8dvv{&{#J|; z|GJ*mRa-okq91T~Txa^ExU1=bmRq5Z$-vsK#~uvg9K?K->J*Q0Zw@kEwHWvAT-@tB zPk;7OEazSLrXt5(GyjrUN2)$@g>dPVRdI}hb{5vP+*7~Uje9!kBWj*e|A)`TavtiS zVpmmu+&-tWq3?sI*QD|t^;Ty8zUL7?MK;tXN%s=#eI0VPF*%?wqjRbBvTwfT5)0!K zWB6o5d~~9IQ|wDmTj~Chfg{lx8vG`vBNc{UZn0k0ANcr%LVW9RR4DU<>F8>D(EiI; z??m%|ck8MSHZO;9KCYp@%w&3{7(Xak&w8=uu0`#u3)* zq%!T}R5!fzzOb5GL zRwl#(&2JM+S5A@24#Z`GZHU1u%B3r(Ol607{b`?`E#;EcQQ~ek;4P1Rk-wYq?k!g* zRXueoJ5ZAyRxfdK9Lem!`B41Mo}AW1F1(LRea*}4G*8joaQ^Fe3lphs|IE3gZyKo` zJ?}lX@%C$z*MN7v;(AP8%GACHwA}!NDR4L8ao{{aX`XO{M~CDIVStrng=dm1K7(YL ui5Xzj@Puga%Rz%*4jTM}$Pjoy2oM1XW&oci2q8cOAXEZ)KnM^42>$`^=dhsw diff --git a/shadowsocks-csharp/Properties/Resources.Designer.cs b/shadowsocks-csharp/Properties/Resources.Designer.cs index d292578d..4f9edeba 100755 --- a/shadowsocks-csharp/Properties/Resources.Designer.cs +++ b/shadowsocks-csharp/Properties/Resources.Designer.cs @@ -104,5 +104,45 @@ namespace Shadowsocks.Properties { return ((byte[])(obj)); } } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap ss16 { + get { + object obj = ResourceManager.GetObject("ss16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap ss20 { + get { + object obj = ResourceManager.GetObject("ss20", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap ss24 { + get { + object obj = ResourceManager.GetObject("ss24", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap ssw128 { + get { + object obj = ResourceManager.GetObject("ssw128", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } } } diff --git a/shadowsocks-csharp/Properties/Resources.resx b/shadowsocks-csharp/Properties/Resources.resx index 14c098ec..a644b5f9 100755 --- a/shadowsocks-csharp/Properties/Resources.resx +++ b/shadowsocks-csharp/Properties/Resources.resx @@ -130,4 +130,16 @@ ..\Data\proxy.pac.txt.gz;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\Resources\ss16.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\ss20.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\ss24.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\ssw128.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/shadowsocks-csharp/Resources/ss16.png b/shadowsocks-csharp/Resources/ss16.png new file mode 100755 index 0000000000000000000000000000000000000000..eb3aaee21e5a67507e30f79d089e7709d6c84acb GIT binary patch literal 376 zcmV-;0f+vHP)7V3=fl8*2M<8b zFMw%oFf%p=3!-aww6i-8lVE>!m;k~c4WNMBv~eTM{|!VL5E>Np-_p$NJN>Vwu?aCQ&(07(=Z?>Exn#BuPs`*5ahN0n>KEQi-FVt#R^C=2n0%sia;9ogTf1o zB?d$r^x^&c{~$S#D?l{5JV*@Lumnw2)%VEZfo_L)YID!ifx#S-JG5GlWL#?$N+yIpZl=93QZLWpu|j0{&hHb-~cQQ z8c?IGb7*O50vXmot-=!&e&>l*&qRcp4?vtqtbqUl1^`wKrO{gB;UEA2002ovPDHLk FV1mKBpOOFo literal 0 HcmV?d00001 diff --git a/shadowsocks-csharp/Resources/ss24.png b/shadowsocks-csharp/Resources/ss24.png new file mode 100755 index 0000000000000000000000000000000000000000..9a155ff15e0b46cb4397460aa90a56e753c6e93c GIT binary patch literal 492 zcmV-Lhr5Eo<;fqi+C650|fg5Vqc*431XkXyul{79)#(BVHeV6H_h({OTz5r zo7rz>CyrAi&Kr%3+K9zsV)0std)+R7TdzsHe^yF-)oStg&4z%F-3|d*WyH(HfI5io>JTgW_hL3_ i(vU|Yt2Al&6<`37lT_2gRcoRE0000?LT!o#9X$X|DqxhX#0$NI$tjv4!pXB^?4$jD@!WrL6uZW5bFOJ$v8N3&Te z-=;rhlL0XQgccSOll5wWKAG+mh>^8>gZU+c!ulQR*(GT-!gZTyv-H~U?ci1kza4e2 zgpz`&a}6-8mOHNalG1*P_tIK0{VLvna-Hyy#_ag@1up5IwWi7cv;NHzqq=4I%8>T$ zOd3srX_8>n<7?@|S9mB2L2b39{2WhlS7Z17btvx(w~H$dx|JV4eFNaarlwpJ1*@)4 zG;RfPvd1uztMNQSjV+qDMdfuCGn77z<+*Id5qt*F0i@_ac8xw1oGs>B^D%t9{H6`x znpm*%WX%>S3dv4hD*_6P>Yfq9x0c`3xHwYG)q&WtrJ-kLW}*-3q$~RR40-;3*Z9QA0VRG zE9GSmdE$BKESwqEiRSsFzJ7&IayO9id`GpwIN6Sdu)EabN@LkIfU}Eg8+TZH;#WB# zghu8o4}l0_Z2ibsYK6Udja7nVXH&mKx>&C@-yGb;2D29`o4=LPXTIzw+cPh_g+FiVWl zec^T6)m(OW>xph!>9=R}l?%XeBloEfoz+Bo`wdkw`F(Y@C2^O0@8d)-^^DsdZO(4k zJF7H~x3q8onVR~#Zn!o4jILv+u?~_LU^V!#u|UT@W&e)1p??RmzapzP{#Cos zBbR%3W+(rdkejLuvV-c!St>fX_I`{Mx|lH8Zfz&YMD7S$sO%-^RWWZJMUq{f#+PE< zrVF|drBQ?lcbFSM<=5ciC);ftbpGtcQK=Kf-JQy>0q1hUtFiHbm4>iRq)#lTRguz>Z&NuSziVElAJc?KZJ1LZzCr@PpRp8 z)qYtfVN<)y*IdE?I;rh4j^GmU+~wdt3(ek|!^&C%(t)4s(QLDcaDcvP+lVRx-te=? z`@|MFs#A>nCIshZ2%5g~2uXB=?H2S!ZOgQ)=}r7yBiWg&I%Crf+Z_iBkfpsox8LTJ za!)6rt7j=r{kWjVopZ`ZhIITHP~k`$%unTH<0(*y@P#1$=YoV$UksVoHZgTCy= z2z%)M+E64Qkj(pJjGt?;(%K=9>>m`&yDOFH6MyCQW>SwC3kT+i%E6EJ2R&ii^RHYS zO8Bkm0^tY;Z1e#|p4lSZK6%PPUuU~{dLS2}u;HM^v9LHOchupDaqhbd78F~z$7VrF0z z2L5%Q`*{K%jPxWAj@iO8kUf_KLMos(xWF+SJ%*pAECParU<7e$Z7Y~HDNwDZhuWqI z1-<{5lzRj9m=7Ju8yF7&Q=e}Jln&nDxFl@2`SeoreLfS(*KGLjC!Y<5nS*_-2X*$i Qz<~7{ZGU7~BbAx|H%3DYL;wH) literal 0 HcmV?d00001 diff --git a/shadowsocks-csharp/View/ConfigForm.Designer.cs b/shadowsocks-csharp/View/ConfigForm.Designer.cs index c1187c04..6b246c66 100755 --- a/shadowsocks-csharp/View/ConfigForm.Designer.cs +++ b/shadowsocks-csharp/View/ConfigForm.Designer.cs @@ -29,7 +29,6 @@ private void InitializeComponent() { this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ConfigForm)); this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); this.RemarksTextBox = new System.Windows.Forms.TextBox(); this.label6 = new System.Windows.Forms.Label(); @@ -91,10 +90,10 @@ this.tableLayoutPanel1.Controls.Add(this.PasswordTextBox, 1, 2); this.tableLayoutPanel1.Controls.Add(this.label5, 0, 3); this.tableLayoutPanel1.Controls.Add(this.EncryptionSelect, 1, 3); - this.tableLayoutPanel1.Location = new System.Drawing.Point(8, 21); - this.tableLayoutPanel1.Margin = new System.Windows.Forms.Padding(5); + this.tableLayoutPanel1.Location = new System.Drawing.Point(12, 31); + this.tableLayoutPanel1.Margin = new System.Windows.Forms.Padding(7, 7, 7, 7); this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.Padding = new System.Windows.Forms.Padding(5); + this.tableLayoutPanel1.Padding = new System.Windows.Forms.Padding(7, 7, 7, 7); this.tableLayoutPanel1.RowCount = 6; this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); @@ -102,15 +101,16 @@ this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanel1.Size = new System.Drawing.Size(242, 167); + this.tableLayoutPanel1.Size = new System.Drawing.Size(360, 232); this.tableLayoutPanel1.TabIndex = 0; // // RemarksTextBox // this.RemarksTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); - this.RemarksTextBox.Location = new System.Drawing.Point(74, 139); + this.RemarksTextBox.Location = new System.Drawing.Point(110, 194); + this.RemarksTextBox.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); this.RemarksTextBox.Name = "RemarksTextBox"; - this.RemarksTextBox.Size = new System.Drawing.Size(160, 20); + this.RemarksTextBox.Size = new System.Drawing.Size(238, 26); this.RemarksTextBox.TabIndex = 10; this.RemarksTextBox.WordWrap = false; // @@ -118,9 +118,10 @@ // this.label6.Anchor = System.Windows.Forms.AnchorStyles.Right; this.label6.AutoSize = true; - this.label6.Location = new System.Drawing.Point(19, 142); + this.label6.Location = new System.Drawing.Point(27, 197); + this.label6.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(49, 13); + this.label6.Size = new System.Drawing.Size(73, 20); this.label6.TabIndex = 9; this.label6.Text = "Remarks"; // @@ -128,9 +129,10 @@ // this.label1.Anchor = System.Windows.Forms.AnchorStyles.Right; this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(17, 11); + this.label1.Location = new System.Drawing.Point(26, 15); + this.label1.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(51, 13); + this.label1.Size = new System.Drawing.Size(74, 20); this.label1.TabIndex = 0; this.label1.Text = "Server IP"; // @@ -138,18 +140,20 @@ // this.label2.Anchor = System.Windows.Forms.AnchorStyles.Right; this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(8, 37); + this.label2.Location = new System.Drawing.Point(12, 51); + this.label2.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(60, 13); + this.label2.Size = new System.Drawing.Size(88, 20); this.label2.TabIndex = 1; this.label2.Text = "Server Port"; // // ProxyPortTextBox // this.ProxyPortTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); - this.ProxyPortTextBox.Location = new System.Drawing.Point(74, 113); + this.ProxyPortTextBox.Location = new System.Drawing.Point(110, 158); + this.ProxyPortTextBox.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); this.ProxyPortTextBox.Name = "ProxyPortTextBox"; - this.ProxyPortTextBox.Size = new System.Drawing.Size(160, 20); + this.ProxyPortTextBox.Size = new System.Drawing.Size(238, 26); this.ProxyPortTextBox.TabIndex = 4; this.ProxyPortTextBox.WordWrap = false; // @@ -157,9 +161,10 @@ // this.label4.Anchor = System.Windows.Forms.AnchorStyles.Right; this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(13, 116); + this.label4.Location = new System.Drawing.Point(20, 161); + this.label4.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(55, 13); + this.label4.Size = new System.Drawing.Size(80, 20); this.label4.TabIndex = 3; this.label4.Text = "Proxy Port"; // @@ -167,37 +172,41 @@ // this.label3.Anchor = System.Windows.Forms.AnchorStyles.Right; this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(15, 63); + this.label3.Location = new System.Drawing.Point(22, 87); + this.label3.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(53, 13); + this.label3.Size = new System.Drawing.Size(78, 20); this.label3.TabIndex = 2; this.label3.Text = "Password"; // // IPTextBox // this.IPTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); - this.IPTextBox.Location = new System.Drawing.Point(74, 8); + this.IPTextBox.Location = new System.Drawing.Point(110, 12); + this.IPTextBox.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); this.IPTextBox.Name = "IPTextBox"; - this.IPTextBox.Size = new System.Drawing.Size(160, 20); + this.IPTextBox.Size = new System.Drawing.Size(238, 26); this.IPTextBox.TabIndex = 0; this.IPTextBox.WordWrap = false; // // ServerPortTextBox // this.ServerPortTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); - this.ServerPortTextBox.Location = new System.Drawing.Point(74, 34); + this.ServerPortTextBox.Location = new System.Drawing.Point(110, 48); + this.ServerPortTextBox.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); this.ServerPortTextBox.Name = "ServerPortTextBox"; - this.ServerPortTextBox.Size = new System.Drawing.Size(160, 20); + this.ServerPortTextBox.Size = new System.Drawing.Size(238, 26); this.ServerPortTextBox.TabIndex = 1; this.ServerPortTextBox.WordWrap = false; // // PasswordTextBox // this.PasswordTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); - this.PasswordTextBox.Location = new System.Drawing.Point(74, 60); + this.PasswordTextBox.Location = new System.Drawing.Point(110, 84); + this.PasswordTextBox.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); this.PasswordTextBox.Name = "PasswordTextBox"; this.PasswordTextBox.PasswordChar = '*'; - this.PasswordTextBox.Size = new System.Drawing.Size(160, 20); + this.PasswordTextBox.Size = new System.Drawing.Size(238, 26); this.PasswordTextBox.TabIndex = 2; this.PasswordTextBox.WordWrap = false; // @@ -205,9 +214,10 @@ // this.label5.Anchor = System.Windows.Forms.AnchorStyles.Right; this.label5.AutoSize = true; - this.label5.Location = new System.Drawing.Point(11, 90); + this.label5.Location = new System.Drawing.Point(16, 124); + this.label5.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(57, 13); + this.label5.Size = new System.Drawing.Size(84, 20); this.label5.TabIndex = 8; this.label5.Text = "Encryption"; // @@ -218,7 +228,7 @@ this.EncryptionSelect.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.EncryptionSelect.FormattingEnabled = true; this.EncryptionSelect.ImeMode = System.Windows.Forms.ImeMode.NoControl; - this.EncryptionSelect.ItemHeight = 13; + this.EncryptionSelect.ItemHeight = 20; this.EncryptionSelect.Items.AddRange(new object[] { "table", "rc4-md5", @@ -227,16 +237,15 @@ "aes-128-cfb", "bf-cfb", "rc4"}); - this.EncryptionSelect.Location = new System.Drawing.Point(74, 86); + this.EncryptionSelect.Location = new System.Drawing.Point(110, 120); + this.EncryptionSelect.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); this.EncryptionSelect.Name = "EncryptionSelect"; - this.EncryptionSelect.Size = new System.Drawing.Size(160, 21); + this.EncryptionSelect.Size = new System.Drawing.Size(238, 28); this.EncryptionSelect.TabIndex = 3; // // notifyIcon1 // - this.notifyIcon1.Icon = ((System.Drawing.Icon)(resources.GetObject("notifyIcon1.Icon"))); this.notifyIcon1.Text = "Shadowsocks"; - this.notifyIcon1.Visible = true; this.notifyIcon1.DoubleClick += new System.EventHandler(this.notifyIcon1_DoubleClick); // // panel2 @@ -244,7 +253,8 @@ this.panel2.Anchor = System.Windows.Forms.AnchorStyles.Top; this.panel2.AutoSize = true; this.panel2.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; - this.panel2.Location = new System.Drawing.Point(164, 175); + this.panel2.Location = new System.Drawing.Point(246, 263); + this.panel2.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); this.panel2.Name = "panel2"; this.panel2.Size = new System.Drawing.Size(0, 0); this.panel2.TabIndex = 1; @@ -252,9 +262,10 @@ // OKButton // this.OKButton.DialogResult = System.Windows.Forms.DialogResult.OK; - this.OKButton.Location = new System.Drawing.Point(4, 4); + this.OKButton.Location = new System.Drawing.Point(6, 6); + this.OKButton.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); this.OKButton.Name = "OKButton"; - this.OKButton.Size = new System.Drawing.Size(75, 23); + this.OKButton.Size = new System.Drawing.Size(113, 35); this.OKButton.TabIndex = 8; this.OKButton.Text = "OK"; this.OKButton.UseVisualStyleBackColor = true; @@ -263,9 +274,10 @@ // MyCancelButton // this.MyCancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.MyCancelButton.Location = new System.Drawing.Point(86, 4); + this.MyCancelButton.Location = new System.Drawing.Point(130, 6); + this.MyCancelButton.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); this.MyCancelButton.Name = "MyCancelButton"; - this.MyCancelButton.Size = new System.Drawing.Size(75, 23); + this.MyCancelButton.Size = new System.Drawing.Size(113, 35); this.MyCancelButton.TabIndex = 9; this.MyCancelButton.Text = "Cancel"; this.MyCancelButton.UseVisualStyleBackColor = true; @@ -277,10 +289,10 @@ this.panel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; this.panel1.Controls.Add(this.MyCancelButton); this.panel1.Controls.Add(this.OKButton); - this.panel1.Location = new System.Drawing.Point(313, 247); + this.panel1.Location = new System.Drawing.Point(469, 371); this.panel1.Margin = new System.Windows.Forms.Padding(0); this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(164, 30); + this.panel1.Size = new System.Drawing.Size(248, 46); this.panel1.TabIndex = 1; // // contextMenu1 @@ -373,17 +385,18 @@ this.panel3.AutoSize = true; this.panel3.Controls.Add(this.DeleteButton); this.panel3.Controls.Add(this.AddButton); - this.panel3.Location = new System.Drawing.Point(12, 220); + this.panel3.Location = new System.Drawing.Point(18, 330); this.panel3.Margin = new System.Windows.Forms.Padding(0); this.panel3.Name = "panel3"; - this.panel3.Size = new System.Drawing.Size(192, 30); + this.panel3.Size = new System.Drawing.Size(288, 46); this.panel3.TabIndex = 5; // // DeleteButton // - this.DeleteButton.Location = new System.Drawing.Point(100, 4); + this.DeleteButton.Location = new System.Drawing.Point(150, 6); + this.DeleteButton.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); this.DeleteButton.Name = "DeleteButton"; - this.DeleteButton.Size = new System.Drawing.Size(89, 23); + this.DeleteButton.Size = new System.Drawing.Size(133, 35); this.DeleteButton.TabIndex = 7; this.DeleteButton.Text = "&Delete"; this.DeleteButton.UseVisualStyleBackColor = true; @@ -391,9 +404,10 @@ // // AddButton // - this.AddButton.Location = new System.Drawing.Point(4, 4); + this.AddButton.Location = new System.Drawing.Point(6, 6); + this.AddButton.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); this.AddButton.Name = "AddButton"; - this.AddButton.Size = new System.Drawing.Size(89, 23); + this.AddButton.Size = new System.Drawing.Size(133, 35); this.AddButton.TabIndex = 6; this.AddButton.Text = "&Add"; this.AddButton.UseVisualStyleBackColor = true; @@ -402,9 +416,11 @@ // ServerGroupBox // this.ServerGroupBox.Controls.Add(this.tableLayoutPanel1); - this.ServerGroupBox.Location = new System.Drawing.Point(222, 12); + this.ServerGroupBox.Location = new System.Drawing.Point(334, 18); + this.ServerGroupBox.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); this.ServerGroupBox.Name = "ServerGroupBox"; - this.ServerGroupBox.Size = new System.Drawing.Size(255, 205); + this.ServerGroupBox.Padding = new System.Windows.Forms.Padding(5, 5, 5, 5); + this.ServerGroupBox.Size = new System.Drawing.Size(383, 307); this.ServerGroupBox.TabIndex = 6; this.ServerGroupBox.TabStop = false; this.ServerGroupBox.Text = "Server"; @@ -412,27 +428,29 @@ // ServersListBox // this.ServersListBox.FormattingEnabled = true; - this.ServersListBox.Location = new System.Drawing.Point(12, 12); + this.ServersListBox.ItemHeight = 20; + this.ServersListBox.Location = new System.Drawing.Point(18, 18); + this.ServersListBox.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); this.ServersListBox.Name = "ServersListBox"; - this.ServersListBox.Size = new System.Drawing.Size(192, 186); + this.ServersListBox.Size = new System.Drawing.Size(286, 264); this.ServersListBox.TabIndex = 5; this.ServersListBox.SelectedIndexChanged += new System.EventHandler(this.ServersListBox_SelectedIndexChanged); // // ConfigForm // this.AcceptButton = this.OKButton; - this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); + this.AutoScaleDimensions = new System.Drawing.SizeF(144F, 144F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; this.AutoSize = true; this.CancelButton = this.MyCancelButton; - this.ClientSize = new System.Drawing.Size(489, 286); + this.ClientSize = new System.Drawing.Size(733, 430); this.Controls.Add(this.ServersListBox); this.Controls.Add(this.ServerGroupBox); this.Controls.Add(this.panel1); this.Controls.Add(this.panel3); this.Controls.Add(this.panel2); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "ConfigForm"; diff --git a/shadowsocks-csharp/View/ConfigForm.cs b/shadowsocks-csharp/View/ConfigForm.cs index 2629dc13..f992222a 100755 --- a/shadowsocks-csharp/View/ConfigForm.cs +++ b/shadowsocks-csharp/View/ConfigForm.cs @@ -7,6 +7,7 @@ using System.Windows.Forms; using System.Diagnostics; using Shadowsocks.Controller; using Shadowsocks.Model; +using Shadowsocks.Properties; namespace Shadowsocks.View { @@ -23,6 +24,7 @@ namespace Shadowsocks.View public ConfigForm(ShadowsocksController controller) { InitializeComponent(); + LoadTrayIcon(); notifyIcon1.ContextMenu = contextMenu1; this.controller = controller; @@ -37,6 +39,32 @@ namespace Shadowsocks.View LoadCurrentConfiguration(); } + private void LoadTrayIcon() + { + int dpi; + Graphics graphics = this.CreateGraphics(); + dpi = (int)graphics.DpiX; + graphics.Dispose(); + Bitmap icon = null; + if (dpi < 97) + { + // dpi = 96; + icon = Resources.ss16; + } + else if (dpi < 121) + { + // dpi = 120; + icon = Resources.ss20; + } + else + { + icon = Resources.ss24; + } + notifyIcon1.Icon = Icon.FromHandle(icon.GetHicon()); + notifyIcon1.Visible = true; + this.Icon = Icon.FromHandle(Resources.ssw128.GetHicon()); + } + private void controller_ConfigChanged(object sender, EventArgs e) { LoadCurrentConfiguration(); diff --git a/shadowsocks-csharp/View/ConfigForm.resx b/shadowsocks-csharp/View/ConfigForm.resx index 2d2ffed5..dc4a77ba 100755 --- a/shadowsocks-csharp/View/ConfigForm.resx +++ b/shadowsocks-csharp/View/ConfigForm.resx @@ -120,127 +120,7 @@ 17, 17 - - - - AAABAAEAEBAAAAAAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAA - AAD///8B////Af///wH///8B////Af///wH///8BBAQIcf///wH///8B////Af///wH///8B////Af// - /wH///8B////Af///wH///8B////Af///wH///8B////ARQUF/8EBAgx////Af///wH///8B////Af// - /wH///8B////Af///wH///8B////Af///wH///8B////Af///wFycnT/Kysuz////wH///8B////Af// - /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BUlJV/zY2Oe8EBAgx////AQQE - CFEEBAifBAQIMf///wH///8B////Af///wH///8B////Af///wH///8B////AQQECGEEBAhhMjI1r3Jy - dP+xsbL/4ODg/wQECIH///8B////Af///wH///8B////Af///wEEBAgxBAQIcQQECCEVFRjv0NDR//// - //////////////////8yMjWv////Af///wH///8BBAQIIQQECI9eXmDfoaGi/8DAwf8XFxvPBAQIQWJi - Zf//////////////////////aGhr7////wH///8BBAQIgTMzNv/g4OD/////////////////7+/w/z4+ - Qc8EBAiPoaGi/////////////////6Ghov8EBAgx////Af///wEEBAhBLi4xv6Ghov////////////// - ///v7/D/WFha7wQECL/AwMH////////////g4OD/BAQIcf///wH///8B////Af///wEEBAhBLi4xv6Gh - ov////////////////9ycnT/FBQX/9DQ0f///////////zIyNa////8B////Af///wH///8B////Af// - /wEEBAhBLi4xv6Ghov///////////6Ghov8jIyf/7+/w//////9YWFrv////Af///wH///8B////Af// - /wH///8B////Af///wEEBAhBLi4xv6Ghov//////wMDB/2JiZf//////kZGT/wQECCH///8B////Af// - /wH///8B////Af///wH///8B////Af///wEEBAhBLi4xv6Ghov///////////9DQ0f8EBAhh////Af// - /wH///8B////Af///wH///8B////Af///wH///8B////Af///wEEBAhBLi4xv6Ghov//////HR0hn/// - /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wEEBAhBLi4xvygo - K9////8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// - /wEEBAhBAAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA - //8AAP//AAD//w== - - 146, 19 - - - AAABAAIAEBAAAAEAIABoBAAAJgAAACAgAAABACAAqBAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAAAAAE - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANaragwAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADCgySL165vBAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwH8cv8OG - KXsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMKD - I7jDhSej6NGuAwAAAADPnVMTxYowX925hAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADgwZEGzJdHJMOFKHLBgiLAwH8c/L99Gf/HjTU4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA06ZhB8yX - RysAAAAAxYkvhb99Gv+/fRn/v30Z/799Gf+/fRn/w4YpdwAAAAAAAAAAAAAAAOHClALHjTVDwoQlncCA - HvDAfhv8xYkub9CgVgvBgiHOv30Z/799Gf+/fRn/v30Z/8KCI7MAAAAAAAAAAM2ZSxnChCXMv30Z/799 - Gf+/fRn/v30Z/799Gf/EhyuXzptOIsGAH+e/fRn/v30Z/799Gf/AgB7u69e3AgAAAAAAAAAA161uDMWK - MHjBgSDrv30Z/799Gf+/fRn/v30Z/8KEJbrKk0FIwH8c9r99Gf+/fRn/v30Z/8qTQDAAAAAAAAAAAAAA - AAAAAAAA161uDMWJLnjBgB/rv30Z/799Gf+/fRn/wYEh1seMNHu/fhr+v30Z/799Gf/DhSdsAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAA06ZhDMSILHjBgB/rv30Z/799Gf/AgB7rxYovvr99Gf+/fRn/woMkqgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz55TDMOGKHjAgB7rv30Z/8B/HfrCgyP8v30Z/8GB - IOcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz55TDMOFJ3jAfx3rv30Z/799 - Gf+/fRn/zJdGJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAy5VEDMKD - JHjAfx3rv30Z/8SHK2QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAA0qReD8WJL3/FiS+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAA5sykA/7/AAD+fwAA/n8AAP4jAAD+AwAA8gMAAIADAAAAAQAAgAEAAOAB - AAD4AQAA/gEAAP+AAAD/4AAA//gAAP/+AAAoAAAAIAAAAEAAAAABACAAAAAAAAAQAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAANarajAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAwH8df8yXR0wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/fRl/wYIi49eubxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMB/HH+/fRn/xYownwAAAAAAAAAAAAAAAAAA - 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 - 4AH///gB///+Af///4H////g////+P////7///// - - \ No newline at end of file diff --git a/shadowsocks-csharp/app.manifest b/shadowsocks-csharp/app.manifest new file mode 100755 index 00000000..2f6c64aa --- /dev/null +++ b/shadowsocks-csharp/app.manifest @@ -0,0 +1,16 @@ + + + + + + + + + + + + + true + + + \ No newline at end of file diff --git a/shadowsocks-csharp/shadowsocks-csharp.csproj b/shadowsocks-csharp/shadowsocks-csharp.csproj index b648b831..1ad09bf6 100755 --- a/shadowsocks-csharp/shadowsocks-csharp.csproj +++ b/shadowsocks-csharp/shadowsocks-csharp.csproj @@ -58,6 +58,9 @@ ManagedMinimumRules.ruleset false + + app.manifest + @@ -116,6 +119,7 @@ QRCodeForm.cs + @@ -130,6 +134,10 @@ + + + + diff --git a/shadowsocks-csharp/ssnoti.ico b/shadowsocks-csharp/ssnoti.ico deleted file mode 100755 index ee963675c1961086e96816fe4dc7bd8207c833e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1150 zcmZQzU<5(|0R|vYV8~!$U=RbcG=LZ+qyWT>V3L8s0VszK{{R2ahzql@a1`Q_BSu_A zMEpO{3`1hnVpCI8RPtY2TkkwJIby_uf