diff --git a/shadowsocks-csharp/View/MenuViewController.cs b/shadowsocks-csharp/View/MenuViewController.cs
index b8c9bb81..8d68a0aa 100755
--- a/shadowsocks-csharp/View/MenuViewController.cs
+++ b/shadowsocks-csharp/View/MenuViewController.cs
@@ -165,6 +165,7 @@ namespace Shadowsocks.View
this.SeperatorItem = new MenuItem("-"),
this.ConfigItem = CreateMenuItem("Edit Servers...", new EventHandler(this.Config_Click)),
CreateMenuItem("Show QRCode...", new EventHandler(this.QRCodeItem_Click)),
+ CreateMenuItem("Statistics Stategy Options", new EventHandler(StatisticsStrategyOptionsItem_Click)),
CreateMenuItem("Scan QRCode from Screen...", new EventHandler(this.ScanQRCodeItem_Click))
}),
CreateMenuGroup("PAC ", new MenuItem[] {
@@ -426,6 +427,14 @@ namespace Shadowsocks.View
qrCodeForm.Show();
}
+ private static void StatisticsStrategyOptionsItem_Click(object sender, EventArgs e)
+ {
+ //TODO: Load options
+ var statisticsStrategyOptionsForm = new StatisticsStrategyOptionsForm();
+ statisticsStrategyOptionsForm.Show();
+ //TODO: Save options
+ }
+
private void ScanQRCodeItem_Click(object sender, EventArgs e)
{
foreach (Screen screen in Screen.AllScreens)
diff --git a/shadowsocks-csharp/View/StatisticsStrategyOptionsForm.Designer.cs b/shadowsocks-csharp/View/StatisticsStrategyOptionsForm.Designer.cs
new file mode 100644
index 00000000..98232dc6
--- /dev/null
+++ b/shadowsocks-csharp/View/StatisticsStrategyOptionsForm.Designer.cs
@@ -0,0 +1,453 @@
+namespace Shadowsocks.View
+{
+ partial class StatisticsStrategyOptionsForm
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea1 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
+ System.Windows.Forms.DataVisualization.Charting.Legend legend1 = new System.Windows.Forms.DataVisualization.Charting.Legend();
+ System.Windows.Forms.DataVisualization.Charting.Series series1 = new System.Windows.Forms.DataVisualization.Charting.Series();
+ System.Windows.Forms.DataVisualization.Charting.Series series2 = new System.Windows.Forms.DataVisualization.Charting.Series();
+ System.Windows.Forms.DataVisualization.Charting.Series series3 = new System.Windows.Forms.DataVisualization.Charting.Series();
+ this.StatisticsChart = new System.Windows.Forms.DataVisualization.Charting.Chart();
+ this.checkBox1 = new System.Windows.Forms.CheckBox();
+ this.label2 = new System.Windows.Forms.Label();
+ this.label3 = new System.Windows.Forms.Label();
+ this.label4 = new System.Windows.Forms.Label();
+ this.groupBox1 = new System.Windows.Forms.GroupBox();
+ this.radioButton2 = new System.Windows.Forms.RadioButton();
+ this.radioButton1 = new System.Windows.Forms.RadioButton();
+ this.splitContainer1 = new System.Windows.Forms.SplitContainer();
+ this.splitContainer2 = new System.Windows.Forms.SplitContainer();
+ this.checkBox2 = new System.Windows.Forms.CheckBox();
+ this.numericUpDown1 = new System.Windows.Forms.NumericUpDown();
+ this.label6 = new System.Windows.Forms.Label();
+ this.splitContainer3 = new System.Windows.Forms.SplitContainer();
+ this.label1 = new System.Windows.Forms.Label();
+ this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
+ this.panel3 = new System.Windows.Forms.Panel();
+ this.label5 = new System.Windows.Forms.Label();
+ this.label7 = new System.Windows.Forms.Label();
+ this.textBox5 = new System.Windows.Forms.TextBox();
+ this.comboBox3 = new System.Windows.Forms.ComboBox();
+ this.numericUpDown2 = new System.Windows.Forms.NumericUpDown();
+ ((System.ComponentModel.ISupportInitialize)(this.StatisticsChart)).BeginInit();
+ this.groupBox1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
+ this.splitContainer1.Panel1.SuspendLayout();
+ this.splitContainer1.Panel2.SuspendLayout();
+ this.splitContainer1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit();
+ this.splitContainer2.Panel1.SuspendLayout();
+ this.splitContainer2.Panel2.SuspendLayout();
+ this.splitContainer2.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).BeginInit();
+ this.splitContainer3.Panel1.SuspendLayout();
+ this.splitContainer3.Panel2.SuspendLayout();
+ this.splitContainer3.SuspendLayout();
+ this.flowLayoutPanel1.SuspendLayout();
+ this.panel3.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).BeginInit();
+ this.SuspendLayout();
+ //
+ // StatisticsChart
+ //
+ this.StatisticsChart.BackColor = System.Drawing.Color.Transparent;
+ chartArea1.AxisX.MajorGrid.Enabled = false;
+ chartArea1.AxisY.MajorGrid.Enabled = false;
+ chartArea1.AxisY2.MajorGrid.Enabled = false;
+ chartArea1.BackColor = System.Drawing.Color.Transparent;
+ chartArea1.Name = "ChartArea";
+ this.StatisticsChart.ChartAreas.Add(chartArea1);
+ this.StatisticsChart.Dock = System.Windows.Forms.DockStyle.Fill;
+ legend1.BackColor = System.Drawing.Color.Transparent;
+ legend1.Name = "ChartLegend";
+ this.StatisticsChart.Legends.Add(legend1);
+ this.StatisticsChart.Location = new System.Drawing.Point(0, 0);
+ this.StatisticsChart.Margin = new System.Windows.Forms.Padding(4, 7, 4, 7);
+ this.StatisticsChart.Name = "StatisticsChart";
+ this.StatisticsChart.Palette = System.Windows.Forms.DataVisualization.Charting.ChartColorPalette.Pastel;
+ series1.ChartArea = "ChartArea";
+ series1.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Area;
+ series1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(204)))), ((int)(((byte)(204)))));
+ series1.Legend = "ChartLegend";
+ series1.Name = "Data Transferred";
+ series2.ChartArea = "ChartArea";
+ series2.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Bubble;
+ series2.Color = System.Drawing.Color.Red;
+ series2.Legend = "ChartLegend";
+ series2.Name = "Package Loss";
+ series2.YValuesPerPoint = 4;
+ series3.BorderWidth = 4;
+ series3.ChartArea = "ChartArea";
+ series3.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
+ series3.Legend = "ChartLegend";
+ series3.Name = "Ping";
+ this.StatisticsChart.Series.Add(series1);
+ this.StatisticsChart.Series.Add(series2);
+ this.StatisticsChart.Series.Add(series3);
+ this.StatisticsChart.Size = new System.Drawing.Size(1216, 454);
+ this.StatisticsChart.TabIndex = 2;
+ this.StatisticsChart.Click += new System.EventHandler(this.StatisticsChart_Click);
+ //
+ // checkBox1
+ //
+ this.checkBox1.AutoSize = true;
+ this.checkBox1.Location = new System.Drawing.Point(13, 16);
+ this.checkBox1.Margin = new System.Windows.Forms.Padding(4, 7, 4, 7);
+ this.checkBox1.Name = "checkBox1";
+ this.checkBox1.Size = new System.Drawing.Size(254, 25);
+ this.checkBox1.TabIndex = 5;
+ this.checkBox1.Text = "Choose strategy by geolocation";
+ this.checkBox1.UseVisualStyleBackColor = true;
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Location = new System.Drawing.Point(9, 80);
+ this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(128, 21);
+ this.label2.TabIndex = 8;
+ this.label2.Text = "Cache choice for ";
+ //
+ // label3
+ //
+ this.label3.AutoSize = true;
+ this.label3.Location = new System.Drawing.Point(144, 111);
+ this.label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+ this.label3.Name = "label3";
+ this.label3.Size = new System.Drawing.Size(66, 21);
+ this.label3.TabIndex = 9;
+ this.label3.Text = "minutes";
+ this.label3.Click += new System.EventHandler(this.label3_Click);
+ //
+ // label4
+ //
+ this.label4.AutoSize = true;
+ this.label4.Location = new System.Drawing.Point(13, 144);
+ this.label4.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+ this.label4.Name = "label4";
+ this.label4.Size = new System.Drawing.Size(41, 21);
+ this.label4.TabIndex = 10;
+ this.label4.Text = "Ping";
+ //
+ // groupBox1
+ //
+ this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.groupBox1.Controls.Add(this.radioButton2);
+ this.groupBox1.Controls.Add(this.radioButton1);
+ this.groupBox1.Location = new System.Drawing.Point(1008, 358);
+ this.groupBox1.Margin = new System.Windows.Forms.Padding(4, 7, 4, 7);
+ this.groupBox1.Name = "groupBox1";
+ this.groupBox1.Padding = new System.Windows.Forms.Padding(4, 7, 4, 7);
+ this.groupBox1.Size = new System.Drawing.Size(195, 80);
+ this.groupBox1.TabIndex = 3;
+ this.groupBox1.TabStop = false;
+ this.groupBox1.Text = "Chart Mode";
+ //
+ // radioButton2
+ //
+ this.radioButton2.AutoSize = true;
+ this.radioButton2.Location = new System.Drawing.Point(8, 47);
+ this.radioButton2.Margin = new System.Windows.Forms.Padding(4, 7, 4, 7);
+ this.radioButton2.Name = "radioButton2";
+ this.radioButton2.Size = new System.Drawing.Size(51, 25);
+ this.radioButton2.TabIndex = 1;
+ this.radioButton2.TabStop = true;
+ this.radioButton2.Text = "all";
+ this.radioButton2.UseVisualStyleBackColor = true;
+ //
+ // radioButton1
+ //
+ this.radioButton1.AutoSize = true;
+ this.radioButton1.Location = new System.Drawing.Point(8, 22);
+ this.radioButton1.Margin = new System.Windows.Forms.Padding(4, 7, 4, 7);
+ this.radioButton1.Name = "radioButton1";
+ this.radioButton1.Size = new System.Drawing.Size(62, 25);
+ this.radioButton1.TabIndex = 0;
+ this.radioButton1.TabStop = true;
+ this.radioButton1.Text = "24h";
+ this.radioButton1.UseVisualStyleBackColor = true;
+ //
+ // splitContainer1
+ //
+ this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.splitContainer1.Location = new System.Drawing.Point(0, 0);
+ this.splitContainer1.Margin = new System.Windows.Forms.Padding(4, 7, 4, 7);
+ this.splitContainer1.Name = "splitContainer1";
+ this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
+ //
+ // splitContainer1.Panel1
+ //
+ this.splitContainer1.Panel1.Controls.Add(this.splitContainer2);
+ this.splitContainer1.Panel1.Paint += new System.Windows.Forms.PaintEventHandler(this.splitContainer1_Panel1_Paint);
+ //
+ // splitContainer1.Panel2
+ //
+ this.splitContainer1.Panel2.Controls.Add(this.groupBox1);
+ this.splitContainer1.Panel2.Controls.Add(this.StatisticsChart);
+ this.splitContainer1.Size = new System.Drawing.Size(1216, 920);
+ this.splitContainer1.SplitterDistance = 459;
+ this.splitContainer1.SplitterWidth = 7;
+ this.splitContainer1.TabIndex = 12;
+ //
+ // splitContainer2
+ //
+ this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.splitContainer2.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
+ this.splitContainer2.Location = new System.Drawing.Point(0, 0);
+ this.splitContainer2.Margin = new System.Windows.Forms.Padding(4, 7, 4, 7);
+ this.splitContainer2.Name = "splitContainer2";
+ //
+ // splitContainer2.Panel1
+ //
+ this.splitContainer2.Panel1.Controls.Add(this.numericUpDown2);
+ this.splitContainer2.Panel1.Controls.Add(this.checkBox2);
+ this.splitContainer2.Panel1.Controls.Add(this.numericUpDown1);
+ this.splitContainer2.Panel1.Controls.Add(this.label6);
+ this.splitContainer2.Panel1.Controls.Add(this.label2);
+ this.splitContainer2.Panel1.Controls.Add(this.label4);
+ this.splitContainer2.Panel1.Controls.Add(this.checkBox1);
+ this.splitContainer2.Panel1.Controls.Add(this.label3);
+ //
+ // splitContainer2.Panel2
+ //
+ this.splitContainer2.Panel2.Controls.Add(this.splitContainer3);
+ this.splitContainer2.Size = new System.Drawing.Size(1216, 459);
+ this.splitContainer2.SplitterDistance = 297;
+ this.splitContainer2.TabIndex = 7;
+ //
+ // checkBox2
+ //
+ this.checkBox2.AutoSize = true;
+ this.checkBox2.Location = new System.Drawing.Point(13, 48);
+ this.checkBox2.Margin = new System.Windows.Forms.Padding(4, 7, 4, 7);
+ this.checkBox2.Name = "checkBox2";
+ this.checkBox2.Size = new System.Drawing.Size(254, 25);
+ this.checkBox2.TabIndex = 15;
+ this.checkBox2.Text = "Choose strategy by geolocation";
+ this.checkBox2.UseVisualStyleBackColor = true;
+ //
+ // numericUpDown1
+ //
+ this.numericUpDown1.Location = new System.Drawing.Point(62, 142);
+ this.numericUpDown1.Maximum = new decimal(new int[] {
+ 10,
+ 0,
+ 0,
+ 0});
+ this.numericUpDown1.Name = "numericUpDown1";
+ this.numericUpDown1.Size = new System.Drawing.Size(75, 29);
+ this.numericUpDown1.TabIndex = 14;
+ this.numericUpDown1.Value = new decimal(new int[] {
+ 4,
+ 0,
+ 0,
+ 0});
+ //
+ // label6
+ //
+ this.label6.AutoSize = true;
+ this.label6.Location = new System.Drawing.Point(143, 144);
+ this.label6.Name = "label6";
+ this.label6.Size = new System.Drawing.Size(147, 21);
+ this.label6.TabIndex = 13;
+ this.label6.Text = "packages everytime";
+ //
+ // splitContainer3
+ //
+ this.splitContainer3.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.splitContainer3.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
+ this.splitContainer3.Location = new System.Drawing.Point(0, 0);
+ this.splitContainer3.Margin = new System.Windows.Forms.Padding(4, 7, 4, 7);
+ this.splitContainer3.Name = "splitContainer3";
+ this.splitContainer3.Orientation = System.Windows.Forms.Orientation.Horizontal;
+ //
+ // splitContainer3.Panel1
+ //
+ this.splitContainer3.Panel1.Controls.Add(this.label1);
+ //
+ // splitContainer3.Panel2
+ //
+ this.splitContainer3.Panel2.Controls.Add(this.flowLayoutPanel1);
+ this.splitContainer3.Size = new System.Drawing.Size(915, 459);
+ this.splitContainer3.SplitterDistance = 34;
+ this.splitContainer3.SplitterWidth = 7;
+ this.splitContainer3.TabIndex = 6;
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(4, 9);
+ this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(192, 21);
+ this.label1.TabIndex = 0;
+ this.label1.Text = "Design evaluation method";
+ this.label1.Click += new System.EventHandler(this.label1_Click);
+ //
+ // flowLayoutPanel1
+ //
+ this.flowLayoutPanel1.AutoScroll = true;
+ this.flowLayoutPanel1.Controls.Add(this.panel3);
+ this.flowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.flowLayoutPanel1.Location = new System.Drawing.Point(0, 0);
+ this.flowLayoutPanel1.Margin = new System.Windows.Forms.Padding(4, 7, 4, 7);
+ this.flowLayoutPanel1.Name = "flowLayoutPanel1";
+ this.flowLayoutPanel1.Size = new System.Drawing.Size(915, 418);
+ this.flowLayoutPanel1.TabIndex = 1;
+ //
+ // panel3
+ //
+ this.panel3.AutoSize = true;
+ this.panel3.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
+ this.panel3.Controls.Add(this.label5);
+ this.panel3.Controls.Add(this.label7);
+ this.panel3.Controls.Add(this.textBox5);
+ this.panel3.Controls.Add(this.comboBox3);
+ this.panel3.Location = new System.Drawing.Point(4, 7);
+ this.panel3.Margin = new System.Windows.Forms.Padding(4, 7, 4, 7);
+ this.panel3.Name = "panel3";
+ this.panel3.Size = new System.Drawing.Size(437, 43);
+ this.panel3.TabIndex = 4;
+ //
+ // label5
+ //
+ this.label5.AutoSize = true;
+ this.label5.Location = new System.Drawing.Point(4, 10);
+ this.label5.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+ this.label5.Name = "label5";
+ this.label5.Size = new System.Drawing.Size(21, 21);
+ this.label5.TabIndex = 3;
+ this.label5.Text = "+";
+ //
+ // label7
+ //
+ this.label7.AutoSize = true;
+ this.label7.Location = new System.Drawing.Point(240, 10);
+ this.label7.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+ this.label7.Name = "label7";
+ this.label7.Size = new System.Drawing.Size(21, 21);
+ this.label7.TabIndex = 2;
+ this.label7.Text = "×";
+ //
+ // textBox5
+ //
+ this.textBox5.Location = new System.Drawing.Point(269, 7);
+ this.textBox5.Margin = new System.Windows.Forms.Padding(4, 7, 4, 7);
+ this.textBox5.Name = "textBox5";
+ this.textBox5.Size = new System.Drawing.Size(164, 29);
+ this.textBox5.TabIndex = 1;
+ //
+ // comboBox3
+ //
+ this.comboBox3.FormattingEnabled = true;
+ this.comboBox3.Location = new System.Drawing.Point(33, 7);
+ this.comboBox3.Margin = new System.Windows.Forms.Padding(4, 7, 4, 7);
+ this.comboBox3.Name = "comboBox3";
+ this.comboBox3.Size = new System.Drawing.Size(199, 29);
+ this.comboBox3.TabIndex = 0;
+ //
+ // numericUpDown2
+ //
+ this.numericUpDown2.Location = new System.Drawing.Point(13, 109);
+ this.numericUpDown2.Maximum = new decimal(new int[] {
+ 60,
+ 0,
+ 0,
+ 0});
+ this.numericUpDown2.Name = "numericUpDown2";
+ this.numericUpDown2.Size = new System.Drawing.Size(120, 29);
+ this.numericUpDown2.TabIndex = 16;
+ //
+ // StatisticsStrategyOptionsForm
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 21F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.AutoSize = true;
+ this.ClientSize = new System.Drawing.Size(1216, 920);
+ this.Controls.Add(this.splitContainer1);
+ this.Font = new System.Drawing.Font("Segoe UI", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.Margin = new System.Windows.Forms.Padding(4, 7, 4, 7);
+ this.MinimumSize = new System.Drawing.Size(800, 400);
+ this.Name = "StatisticsStrategyOptionsForm";
+ this.Text = "StatisticsStrategyConfigurationForm";
+ this.Load += new System.EventHandler(this.StatisticsStrategyOptionsForm_Load);
+ ((System.ComponentModel.ISupportInitialize)(this.StatisticsChart)).EndInit();
+ this.groupBox1.ResumeLayout(false);
+ this.groupBox1.PerformLayout();
+ this.splitContainer1.Panel1.ResumeLayout(false);
+ this.splitContainer1.Panel2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
+ this.splitContainer1.ResumeLayout(false);
+ this.splitContainer2.Panel1.ResumeLayout(false);
+ this.splitContainer2.Panel1.PerformLayout();
+ this.splitContainer2.Panel2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit();
+ this.splitContainer2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).EndInit();
+ this.splitContainer3.Panel1.ResumeLayout(false);
+ this.splitContainer3.Panel1.PerformLayout();
+ this.splitContainer3.Panel2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).EndInit();
+ this.splitContainer3.ResumeLayout(false);
+ this.flowLayoutPanel1.ResumeLayout(false);
+ this.flowLayoutPanel1.PerformLayout();
+ this.panel3.ResumeLayout(false);
+ this.panel3.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+ private System.Windows.Forms.DataVisualization.Charting.Chart StatisticsChart;
+ private System.Windows.Forms.CheckBox checkBox1;
+ private System.Windows.Forms.Label label2;
+ private System.Windows.Forms.Label label3;
+ private System.Windows.Forms.Label label4;
+ private System.Windows.Forms.GroupBox groupBox1;
+ private System.Windows.Forms.RadioButton radioButton2;
+ private System.Windows.Forms.RadioButton radioButton1;
+ private System.Windows.Forms.SplitContainer splitContainer1;
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.SplitContainer splitContainer2;
+ private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1;
+ private System.Windows.Forms.SplitContainer splitContainer3;
+ private System.Windows.Forms.Panel panel3;
+ private System.Windows.Forms.Label label5;
+ private System.Windows.Forms.Label label7;
+ private System.Windows.Forms.TextBox textBox5;
+ private System.Windows.Forms.ComboBox comboBox3;
+ private System.Windows.Forms.NumericUpDown numericUpDown1;
+ private System.Windows.Forms.Label label6;
+ private System.Windows.Forms.CheckBox checkBox2;
+ private System.Windows.Forms.NumericUpDown numericUpDown2;
+ }
+}
\ No newline at end of file
diff --git a/shadowsocks-csharp/View/StatisticsStrategyOptionsForm.cs b/shadowsocks-csharp/View/StatisticsStrategyOptionsForm.cs
new file mode 100644
index 00000000..ca91bf7c
--- /dev/null
+++ b/shadowsocks-csharp/View/StatisticsStrategyOptionsForm.cs
@@ -0,0 +1,56 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+namespace Shadowsocks.View
+{
+ public partial class StatisticsStrategyOptionsForm: Form
+ {
+ private static readonly int emSize = 8;
+ public StatisticsStrategyOptionsForm()
+ {
+ InitializeComponent();
+ }
+
+
+ private void chart1_Click(object sender, EventArgs e)
+ {
+
+ }
+
+ private void StatisticsChart_Click(object sender, EventArgs e)
+ {
+
+ }
+
+ private void splitContainer1_Panel1_Paint(object sender, PaintEventArgs e)
+ {
+
+ }
+
+ private void label1_Click(object sender, EventArgs e)
+ {
+
+ }
+
+ private void label5_Click(object sender, EventArgs e)
+ {
+
+ }
+
+ private void StatisticsStrategyOptionsForm_Load(object sender, EventArgs e)
+ {
+
+ }
+
+ private void label3_Click(object sender, EventArgs e)
+ {
+
+ }
+ }
+}
diff --git a/shadowsocks-csharp/View/StatisticsStrategyOptionsForm.resx b/shadowsocks-csharp/View/StatisticsStrategyOptionsForm.resx
new file mode 100644
index 00000000..1af7de15
--- /dev/null
+++ b/shadowsocks-csharp/View/StatisticsStrategyOptionsForm.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/shadowsocks-csharp/app.manifest b/shadowsocks-csharp/app.manifest
index 2f6c64aa..3cffa5a2 100755
--- a/shadowsocks-csharp/app.manifest
+++ b/shadowsocks-csharp/app.manifest
@@ -10,7 +10,7 @@
- true
+ True/PM
\ No newline at end of file
diff --git a/shadowsocks-csharp/shadowsocks-csharp.csproj b/shadowsocks-csharp/shadowsocks-csharp.csproj
index 4a4b6db7..200393d3 100644
--- a/shadowsocks-csharp/shadowsocks-csharp.csproj
+++ b/shadowsocks-csharp/shadowsocks-csharp.csproj
@@ -63,11 +63,18 @@
+
+
+
+
+
+
+
@@ -184,6 +191,12 @@
Form
+
+ Form
+
+
+ StatisticsStrategyOptionsForm.cs
+
ConfigForm.cs
Designer
@@ -199,6 +212,9 @@
QRCodeForm.cs
+
+ StatisticsStrategyOptionsForm.cs
+
Designer