Adding option to reverse screen. That's useful to avoid having to set our
hardware the correct way up.
1.1 --- a/App.config Tue Aug 05 22:11:08 2014 +0200
1.2 +++ b/App.config Mon Aug 11 23:18:45 2014 +0200
1.3 @@ -22,6 +22,9 @@
1.4 <setting name="DisplayConnectOnStartup" serializeAs="String">
1.5 <value>False</value>
1.6 </setting>
1.7 + <setting name="DisplayReverseScreen" serializeAs="String">
1.8 + <value>False</value>
1.9 + </setting>
1.10 </SharpDisplayManager.Properties.Settings>
1.11 </userSettings>
1.12 </configuration>
1.13 \ No newline at end of file
2.1 --- a/MainForm.Designer.cs Tue Aug 05 22:11:08 2014 +0200
2.2 +++ b/MainForm.Designer.cs Mon Aug 11 23:18:45 2014 +0200
2.3 @@ -31,6 +31,12 @@
2.4 this.components = new System.ComponentModel.Container();
2.5 this.tabControl = new System.Windows.Forms.TabControl();
2.6 this.tabPageDisplay = new System.Windows.Forms.TabPage();
2.7 + this.checkBoxReverseScreen = new System.Windows.Forms.CheckBox();
2.8 + this.checkBoxConnectOnStartup = new System.Windows.Forms.CheckBox();
2.9 + this.panelDisplay = new System.Windows.Forms.Panel();
2.10 + this.tableLayoutPanel = new System.Windows.Forms.TableLayoutPanel();
2.11 + this.marqueeLabelTop = new SharpDisplayManager.MarqueeLabel();
2.12 + this.marqueeLabelBottom = new SharpDisplayManager.MarqueeLabel();
2.13 this.checkBoxShowBorders = new System.Windows.Forms.CheckBox();
2.14 this.trackBarBrightness = new System.Windows.Forms.TrackBar();
2.15 this.buttonFill = new System.Windows.Forms.Button();
2.16 @@ -47,17 +53,12 @@
2.17 this.toolStripStatusLabelSpring = new System.Windows.Forms.ToolStripStatusLabel();
2.18 this.toolStripStatusLabelPower = new System.Windows.Forms.ToolStripStatusLabel();
2.19 this.toolStripStatusLabelFps = new System.Windows.Forms.ToolStripStatusLabel();
2.20 - this.panelDisplay = new System.Windows.Forms.Panel();
2.21 - this.tableLayoutPanel = new System.Windows.Forms.TableLayoutPanel();
2.22 - this.checkBoxConnectOnStartup = new System.Windows.Forms.CheckBox();
2.23 - this.marqueeLabelTop = new SharpDisplayManager.MarqueeLabel();
2.24 - this.marqueeLabelBottom = new SharpDisplayManager.MarqueeLabel();
2.25 this.tabControl.SuspendLayout();
2.26 this.tabPageDisplay.SuspendLayout();
2.27 + this.panelDisplay.SuspendLayout();
2.28 + this.tableLayoutPanel.SuspendLayout();
2.29 ((System.ComponentModel.ISupportInitialize)(this.trackBarBrightness)).BeginInit();
2.30 this.statusStrip.SuspendLayout();
2.31 - this.panelDisplay.SuspendLayout();
2.32 - this.tableLayoutPanel.SuspendLayout();
2.33 this.SuspendLayout();
2.34 //
2.35 // tabControl
2.36 @@ -75,6 +76,7 @@
2.37 //
2.38 // tabPageDisplay
2.39 //
2.40 + this.tabPageDisplay.Controls.Add(this.checkBoxReverseScreen);
2.41 this.tabPageDisplay.Controls.Add(this.checkBoxConnectOnStartup);
2.42 this.tabPageDisplay.Controls.Add(this.panelDisplay);
2.43 this.tabPageDisplay.Controls.Add(this.checkBoxShowBorders);
2.44 @@ -93,6 +95,146 @@
2.45 this.tabPageDisplay.Text = "Display";
2.46 this.tabPageDisplay.UseVisualStyleBackColor = true;
2.47 //
2.48 + // checkBoxReverseScreen
2.49 + //
2.50 + this.checkBoxReverseScreen.AutoSize = true;
2.51 + this.checkBoxReverseScreen.Location = new System.Drawing.Point(113, 298);
2.52 + this.checkBoxReverseScreen.Name = "checkBoxReverseScreen";
2.53 + this.checkBoxReverseScreen.Size = new System.Drawing.Size(101, 17);
2.54 + this.checkBoxReverseScreen.TabIndex = 14;
2.55 + this.checkBoxReverseScreen.Text = "Reverse screen";
2.56 + this.checkBoxReverseScreen.UseVisualStyleBackColor = true;
2.57 + this.checkBoxReverseScreen.CheckedChanged += new System.EventHandler(this.checkBoxReverseScreen_CheckedChanged);
2.58 + //
2.59 + // checkBoxConnectOnStartup
2.60 + //
2.61 + this.checkBoxConnectOnStartup.AutoSize = true;
2.62 + this.checkBoxConnectOnStartup.Location = new System.Drawing.Point(113, 321);
2.63 + this.checkBoxConnectOnStartup.Name = "checkBoxConnectOnStartup";
2.64 + this.checkBoxConnectOnStartup.Size = new System.Drawing.Size(119, 17);
2.65 + this.checkBoxConnectOnStartup.TabIndex = 13;
2.66 + this.checkBoxConnectOnStartup.Text = "Connect on stratup ";
2.67 + this.checkBoxConnectOnStartup.UseVisualStyleBackColor = true;
2.68 + this.checkBoxConnectOnStartup.CheckedChanged += new System.EventHandler(this.checkBoxConnectOnStartup_CheckedChanged);
2.69 + //
2.70 + // panelDisplay
2.71 + //
2.72 + this.panelDisplay.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
2.73 + this.panelDisplay.Controls.Add(this.tableLayoutPanel);
2.74 + this.panelDisplay.Location = new System.Drawing.Point(181, 151);
2.75 + this.panelDisplay.Margin = new System.Windows.Forms.Padding(0);
2.76 + this.panelDisplay.Name = "panelDisplay";
2.77 + this.panelDisplay.Size = new System.Drawing.Size(258, 66);
2.78 + this.panelDisplay.TabIndex = 12;
2.79 + //
2.80 + // tableLayoutPanel
2.81 + //
2.82 + this.tableLayoutPanel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
2.83 + | System.Windows.Forms.AnchorStyles.Left)
2.84 + | System.Windows.Forms.AnchorStyles.Right)));
2.85 + this.tableLayoutPanel.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.Single;
2.86 + this.tableLayoutPanel.ColumnCount = 1;
2.87 + this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
2.88 + this.tableLayoutPanel.Controls.Add(this.marqueeLabelTop, 0, 0);
2.89 + this.tableLayoutPanel.Controls.Add(this.marqueeLabelBottom, 0, 1);
2.90 + this.tableLayoutPanel.Location = new System.Drawing.Point(0, 0);
2.91 + this.tableLayoutPanel.Margin = new System.Windows.Forms.Padding(0);
2.92 + this.tableLayoutPanel.Name = "tableLayoutPanel";
2.93 + this.tableLayoutPanel.RowCount = 2;
2.94 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
2.95 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
2.96 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.97 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.98 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.99 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.100 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.101 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.102 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.103 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.104 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.105 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.106 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.107 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.108 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.109 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.110 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.111 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.112 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.113 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.114 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.115 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.116 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.117 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.118 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.119 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.120 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.121 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.122 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.123 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.124 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.125 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.126 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.127 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.128 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.129 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.130 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.131 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.132 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.133 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.134 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.135 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.136 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.137 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.138 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.139 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.140 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.141 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.142 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.143 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.144 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.145 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.146 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.147 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.148 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.149 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.150 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.151 + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.152 + this.tableLayoutPanel.Size = new System.Drawing.Size(256, 64);
2.153 + this.tableLayoutPanel.TabIndex = 5;
2.154 + //
2.155 + // marqueeLabelTop
2.156 + //
2.157 + this.marqueeLabelTop.AutoEllipsis = true;
2.158 + this.marqueeLabelTop.BackColor = System.Drawing.Color.Transparent;
2.159 + this.marqueeLabelTop.Dock = System.Windows.Forms.DockStyle.Fill;
2.160 + this.marqueeLabelTop.Location = new System.Drawing.Point(1, 1);
2.161 + this.marqueeLabelTop.Margin = new System.Windows.Forms.Padding(0);
2.162 + this.marqueeLabelTop.Name = "marqueeLabelTop";
2.163 + this.marqueeLabelTop.OwnTimer = false;
2.164 + this.marqueeLabelTop.PixelsPerSecond = 64;
2.165 + this.marqueeLabelTop.Separator = "|";
2.166 + this.marqueeLabelTop.Size = new System.Drawing.Size(254, 30);
2.167 + this.marqueeLabelTop.TabIndex = 2;
2.168 + this.marqueeLabelTop.Text = "ABCDEFGHIJKLMNOPQRST-0123456789";
2.169 + this.marqueeLabelTop.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
2.170 + this.marqueeLabelTop.UseCompatibleTextRendering = true;
2.171 + //
2.172 + // marqueeLabelBottom
2.173 + //
2.174 + this.marqueeLabelBottom.AutoEllipsis = true;
2.175 + this.marqueeLabelBottom.Dock = System.Windows.Forms.DockStyle.Fill;
2.176 + this.marqueeLabelBottom.Location = new System.Drawing.Point(1, 32);
2.177 + this.marqueeLabelBottom.Margin = new System.Windows.Forms.Padding(0);
2.178 + this.marqueeLabelBottom.Name = "marqueeLabelBottom";
2.179 + this.marqueeLabelBottom.OwnTimer = false;
2.180 + this.marqueeLabelBottom.PixelsPerSecond = 64;
2.181 + this.marqueeLabelBottom.Separator = null;
2.182 + this.marqueeLabelBottom.Size = new System.Drawing.Size(254, 31);
2.183 + this.marqueeLabelBottom.TabIndex = 3;
2.184 + this.marqueeLabelBottom.Text = "abcdefghijklmnopqrst-0123456789";
2.185 + this.marqueeLabelBottom.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
2.186 + this.marqueeLabelBottom.UseCompatibleTextRendering = true;
2.187 + //
2.188 // checkBoxShowBorders
2.189 //
2.190 this.checkBoxShowBorders.AutoSize = true;
2.191 @@ -233,135 +375,6 @@
2.192 this.toolStripStatusLabelFps.Size = new System.Drawing.Size(26, 17);
2.193 this.toolStripStatusLabelFps.Text = "FPS";
2.194 //
2.195 - // panelDisplay
2.196 - //
2.197 - this.panelDisplay.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
2.198 - this.panelDisplay.Controls.Add(this.tableLayoutPanel);
2.199 - this.panelDisplay.Location = new System.Drawing.Point(181, 151);
2.200 - this.panelDisplay.Margin = new System.Windows.Forms.Padding(0);
2.201 - this.panelDisplay.Name = "panelDisplay";
2.202 - this.panelDisplay.Size = new System.Drawing.Size(258, 66);
2.203 - this.panelDisplay.TabIndex = 12;
2.204 - //
2.205 - // tableLayoutPanel
2.206 - //
2.207 - this.tableLayoutPanel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
2.208 - | System.Windows.Forms.AnchorStyles.Left)
2.209 - | System.Windows.Forms.AnchorStyles.Right)));
2.210 - this.tableLayoutPanel.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.Single;
2.211 - this.tableLayoutPanel.ColumnCount = 1;
2.212 - this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
2.213 - this.tableLayoutPanel.Controls.Add(this.marqueeLabelTop, 0, 0);
2.214 - this.tableLayoutPanel.Controls.Add(this.marqueeLabelBottom, 0, 1);
2.215 - this.tableLayoutPanel.Location = new System.Drawing.Point(0, 0);
2.216 - this.tableLayoutPanel.Margin = new System.Windows.Forms.Padding(0);
2.217 - this.tableLayoutPanel.Name = "tableLayoutPanel";
2.218 - this.tableLayoutPanel.RowCount = 2;
2.219 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
2.220 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
2.221 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.222 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.223 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.224 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.225 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.226 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.227 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.228 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.229 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.230 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.231 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.232 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.233 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.234 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.235 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.236 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.237 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.238 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.239 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.240 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.241 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.242 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.243 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.244 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.245 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.246 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.247 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.248 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.249 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.250 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.251 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.252 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.253 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.254 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.255 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.256 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.257 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.258 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.259 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.260 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.261 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.262 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.263 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.264 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.265 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.266 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.267 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.268 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.269 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.270 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.271 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.272 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.273 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.274 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.275 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.276 - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
2.277 - this.tableLayoutPanel.Size = new System.Drawing.Size(256, 64);
2.278 - this.tableLayoutPanel.TabIndex = 5;
2.279 - //
2.280 - // checkBoxConnectOnStartup
2.281 - //
2.282 - this.checkBoxConnectOnStartup.AutoSize = true;
2.283 - this.checkBoxConnectOnStartup.Location = new System.Drawing.Point(113, 321);
2.284 - this.checkBoxConnectOnStartup.Name = "checkBoxConnectOnStartup";
2.285 - this.checkBoxConnectOnStartup.Size = new System.Drawing.Size(119, 17);
2.286 - this.checkBoxConnectOnStartup.TabIndex = 13;
2.287 - this.checkBoxConnectOnStartup.Text = "Connect on stratup ";
2.288 - this.checkBoxConnectOnStartup.UseVisualStyleBackColor = true;
2.289 - this.checkBoxConnectOnStartup.CheckedChanged += new System.EventHandler(this.checkBoxConnectOnStartup_CheckedChanged);
2.290 - //
2.291 - // marqueeLabelTop
2.292 - //
2.293 - this.marqueeLabelTop.AutoEllipsis = true;
2.294 - this.marqueeLabelTop.BackColor = System.Drawing.Color.Transparent;
2.295 - this.marqueeLabelTop.Dock = System.Windows.Forms.DockStyle.Fill;
2.296 - this.marqueeLabelTop.Location = new System.Drawing.Point(1, -901);
2.297 - this.marqueeLabelTop.Margin = new System.Windows.Forms.Padding(0);
2.298 - this.marqueeLabelTop.Name = "marqueeLabelTop";
2.299 - this.marqueeLabelTop.OwnTimer = false;
2.300 - this.marqueeLabelTop.PixelsPerSecond = 64;
2.301 - this.marqueeLabelTop.Separator = "|";
2.302 - this.marqueeLabelTop.Size = new System.Drawing.Size(254, 20);
2.303 - this.marqueeLabelTop.TabIndex = 2;
2.304 - this.marqueeLabelTop.Text = "ABCDEFGHIJKLMNOPQRST-0123456789";
2.305 - this.marqueeLabelTop.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
2.306 - this.marqueeLabelTop.UseCompatibleTextRendering = true;
2.307 - //
2.308 - // marqueeLabelBottom
2.309 - //
2.310 - this.marqueeLabelBottom.AutoEllipsis = true;
2.311 - this.marqueeLabelBottom.Dock = System.Windows.Forms.DockStyle.Fill;
2.312 - this.marqueeLabelBottom.Location = new System.Drawing.Point(1, -481);
2.313 - this.marqueeLabelBottom.Margin = new System.Windows.Forms.Padding(0);
2.314 - this.marqueeLabelBottom.Name = "marqueeLabelBottom";
2.315 - this.marqueeLabelBottom.OwnTimer = false;
2.316 - this.marqueeLabelBottom.PixelsPerSecond = 64;
2.317 - this.marqueeLabelBottom.Separator = null;
2.318 - this.marqueeLabelBottom.Size = new System.Drawing.Size(254, 20);
2.319 - this.marqueeLabelBottom.TabIndex = 3;
2.320 - this.marqueeLabelBottom.Text = "abcdefghijklmnopqrst-0123456789";
2.321 - this.marqueeLabelBottom.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
2.322 - this.marqueeLabelBottom.UseCompatibleTextRendering = true;
2.323 - //
2.324 // MainForm
2.325 //
2.326 this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
2.327 @@ -377,11 +390,11 @@
2.328 this.tabControl.ResumeLayout(false);
2.329 this.tabPageDisplay.ResumeLayout(false);
2.330 this.tabPageDisplay.PerformLayout();
2.331 + this.panelDisplay.ResumeLayout(false);
2.332 + this.tableLayoutPanel.ResumeLayout(false);
2.333 ((System.ComponentModel.ISupportInitialize)(this.trackBarBrightness)).EndInit();
2.334 this.statusStrip.ResumeLayout(false);
2.335 this.statusStrip.PerformLayout();
2.336 - this.panelDisplay.ResumeLayout(false);
2.337 - this.tableLayoutPanel.ResumeLayout(false);
2.338 this.ResumeLayout(false);
2.339 this.PerformLayout();
2.340
2.341 @@ -412,6 +425,7 @@
2.342 private MarqueeLabel marqueeLabelTop;
2.343 private MarqueeLabel marqueeLabelBottom;
2.344 private System.Windows.Forms.CheckBox checkBoxConnectOnStartup;
2.345 + private System.Windows.Forms.CheckBox checkBoxReverseScreen;
2.346 }
2.347 }
2.348
3.1 --- a/MainForm.cs Tue Aug 05 22:11:08 2014 +0200
3.2 +++ b/MainForm.cs Mon Aug 11 23:18:45 2014 +0200
3.3 @@ -34,6 +34,7 @@
3.4 marqueeLabelBottom.Font = Properties.Settings.Default.DisplayFont;
3.5 checkBoxShowBorders.Checked = Properties.Settings.Default.DisplayShowBorders;
3.6 checkBoxConnectOnStartup.Checked = Properties.Settings.Default.DisplayConnectOnStartup;
3.7 + checkBoxReverseScreen.Checked = Properties.Settings.Default.DisplayReverseScreen;
3.8 //
3.9 tableLayoutPanel.CellBorderStyle = (checkBoxShowBorders.Checked ? TableLayoutPanelCellBorderStyle.Single : TableLayoutPanelCellBorderStyle.None);
3.10 //We have a bug when drawing minimized and reusing our bitmap
3.11 @@ -139,6 +140,32 @@
3.12 }
3.13 }
3.14
3.15 +
3.16 + public delegate int CoordinateTranslationDelegate(System.Drawing.Bitmap aBmp, int aInt);
3.17 +
3.18 +
3.19 + public static int ScreenReversedX(System.Drawing.Bitmap aBmp, int aX)
3.20 + {
3.21 + return aBmp.Width - aX - 1;
3.22 + }
3.23 +
3.24 + public int ScreenReversedY(System.Drawing.Bitmap aBmp, int aY)
3.25 + {
3.26 + return iBmp.Height - aY - 1;
3.27 + }
3.28 +
3.29 + public int ScreenX(System.Drawing.Bitmap aBmp, int aX)
3.30 + {
3.31 + return aX;
3.32 + }
3.33 +
3.34 + public int ScreenY(System.Drawing.Bitmap aBmp, int aY)
3.35 + {
3.36 + return aY;
3.37 + }
3.38 +
3.39 +
3.40 + //This is our timer tick responsible to perform our render
3.41 private void timer_Tick(object sender, EventArgs e)
3.42 {
3.43 //Update our animations
3.44 @@ -159,9 +186,23 @@
3.45 }
3.46 tableLayoutPanel.DrawToBitmap(iBmp, tableLayoutPanel.ClientRectangle);
3.47 //iBmp.Save("D:\\capture.png");
3.48 +
3.49 + //Select proper coordinate translation functions
3.50 + //We used delegate/function pointer to support reverse screen without doing an extra test on each pixels
3.51 + CoordinateTranslationDelegate screenX;
3.52 + CoordinateTranslationDelegate screenY;
3.53 +
3.54 + if (Properties.Settings.Default.DisplayReverseScreen)
3.55 + {
3.56 + screenX = ScreenReversedX;
3.57 + screenY = ScreenReversedY;
3.58 + }
3.59 + else
3.60 + {
3.61 + screenX = ScreenX;
3.62 + screenY = ScreenY;
3.63 + }
3.64
3.65 - //iBmp.
3.66 -
3.67 //Send it to our display
3.68 for (int i = 0; i < iBmp.Width; i++)
3.69 {
3.70 @@ -172,7 +213,7 @@
3.71 uint color = (uint)iBmp.GetPixel(i, j).ToArgb();
3.72 //For some reason when the app is minimized in the task bar only the alpha of our color is set.
3.73 //Thus that strange test for rendering to work both when the app is in the task bar and when it isn't.
3.74 - iDisplay.SetPixel(i, j, Convert.ToInt32(!(color != 0xFF000000)));
3.75 + iDisplay.SetPixel(screenX(iBmp, i), screenY(iBmp, j), Convert.ToInt32(!(color != 0xFF000000)));
3.76 }
3.77 }
3.78 }
3.79 @@ -263,6 +304,7 @@
3.80
3.81 private void checkBoxShowBorders_CheckedChanged(object sender, EventArgs e)
3.82 {
3.83 + //Save our show borders setting
3.84 tableLayoutPanel.CellBorderStyle = (checkBoxShowBorders.Checked ? TableLayoutPanelCellBorderStyle.Single : TableLayoutPanelCellBorderStyle.None);
3.85 Properties.Settings.Default.DisplayShowBorders = checkBoxShowBorders.Checked;
3.86 Properties.Settings.Default.Save();
3.87 @@ -270,10 +312,18 @@
3.88
3.89 private void checkBoxConnectOnStartup_CheckedChanged(object sender, EventArgs e)
3.90 {
3.91 + //Save our connect on startup setting
3.92 Properties.Settings.Default.DisplayConnectOnStartup = checkBoxConnectOnStartup.Checked;
3.93 Properties.Settings.Default.Save();
3.94 }
3.95
3.96 + private void checkBoxReverseScreen_CheckedChanged(object sender, EventArgs e)
3.97 + {
3.98 + //Save our reverse screen setting
3.99 + Properties.Settings.Default.DisplayReverseScreen = checkBoxReverseScreen.Checked;
3.100 + Properties.Settings.Default.Save();
3.101 + }
3.102 +
3.103 private void MainForm_Resize(object sender, EventArgs e)
3.104 {
3.105 if (WindowState == FormWindowState.Minimized)
4.1 --- a/Properties/Settings.Designer.cs Tue Aug 05 22:11:08 2014 +0200
4.2 +++ b/Properties/Settings.Designer.cs Mon Aug 11 23:18:45 2014 +0200
4.3 @@ -70,5 +70,17 @@
4.4 this["DisplayConnectOnStartup"] = value;
4.5 }
4.6 }
4.7 +
4.8 + [global::System.Configuration.UserScopedSettingAttribute()]
4.9 + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
4.10 + [global::System.Configuration.DefaultSettingValueAttribute("False")]
4.11 + public bool DisplayReverseScreen {
4.12 + get {
4.13 + return ((bool)(this["DisplayReverseScreen"]));
4.14 + }
4.15 + set {
4.16 + this["DisplayReverseScreen"] = value;
4.17 + }
4.18 + }
4.19 }
4.20 }
5.1 --- a/Properties/Settings.settings Tue Aug 05 22:11:08 2014 +0200
5.2 +++ b/Properties/Settings.settings Mon Aug 11 23:18:45 2014 +0200
5.3 @@ -14,5 +14,8 @@
5.4 <Setting Name="DisplayConnectOnStartup" Type="System.Boolean" Scope="User">
5.5 <Value Profile="(Default)">False</Value>
5.6 </Setting>
5.7 + <Setting Name="DisplayReverseScreen" Type="System.Boolean" Scope="User">
5.8 + <Value Profile="(Default)">False</Value>
5.9 + </Setting>
5.10 </Settings>
5.11 </SettingsFile>
5.12 \ No newline at end of file
6.1 --- a/SharpDisplayManager.csproj Tue Aug 05 22:11:08 2014 +0200
6.2 +++ b/SharpDisplayManager.csproj Mon Aug 11 23:18:45 2014 +0200
6.3 @@ -55,9 +55,7 @@
6.4 <Compile Include="MainForm.Designer.cs">
6.5 <DependentUpon>MainForm.cs</DependentUpon>
6.6 </Compile>
6.7 - <Compile Include="MarqueeLabel.cs">
6.8 - <SubType>Component</SubType>
6.9 - </Compile>
6.10 + <Compile Include="MarqueeLabel.cs" />
6.11 <Compile Include="Program.cs" />
6.12 <Compile Include="Properties\AssemblyInfo.cs" />
6.13 <Compile Include="Win32API.cs" />