From 9c31cf53bee2fda60abe5b3687c3a8ed8b5e5e5c Mon Sep 17 00:00:00 2001 From: AShifter Date: Sat, 14 Oct 2017 21:45:59 -0600 Subject: [PATCH] Finish Skinning and Serialize Current Skin Almost fixed the contect button glitch and i'm using Newtonsoft.JSON to save skins! --- .vs/ShiftOS/v15/sqlite3/storage.ide | Bin 843776 -> 901120 bytes ShiftOS.Engine/ShiftOS.Engine.csproj | 3 ++ ShiftOS.Engine/WindowManager/ShiftSkinData.cs | 3 ++ .../WindowManager/ShiftWindow.Designer.cs | 6 ---- ShiftOS.Engine/WindowManager/ShiftWindow.cs | 31 ++++++++---------- ShiftOS.Engine/packages.config | 1 + ShiftOS.Main/ShiftOS.Main.csproj | 4 +++ .../ShiftOS/Apps/ShifterStuff/SelectColor.cs | 6 ++-- .../Apps/ShifterStuff/Shifter.Designer.cs | 23 ++++++++++--- .../ShiftOS/Apps/ShifterStuff/Shifter.cs | 29 ++++++++++++++++ ShiftOS.Main/packages.config | 4 +++ 11 files changed, 79 insertions(+), 31 deletions(-) create mode 100644 ShiftOS.Main/packages.config diff --git a/.vs/ShiftOS/v15/sqlite3/storage.ide b/.vs/ShiftOS/v15/sqlite3/storage.ide index 4a9442158601d30622736f530ae0561e5e72753d..6ac0af0abb9ebe7a91357eb7ec4a7b9529051658 100644 GIT binary patch delta 42140 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 JM9c=#{{f<|ur~kz delta 11267 zcmd6N2Ut{B*X}uIX3or^`8A%Z0aX@jEllBoG~D1w5BhEcXH ziaoXnwz0QF3>po#*o`&CXkv**gXOL@%%Gz8|Gww{@4e66JZsK+*Is+=wb$NfpIs;@ z2q-w%Wv(sD?x!f~1??XI+M(1CNG-C_96|N@B z&+ryxXf)?RYQ}Na+LL|cmf7d-&T?}IcX!r)Tyt+cckgiE!d%^{dcKp~`-C7XrOc^k zl=1}iOz5dxXc8^_D4QpXmWtR$Hjj;v+>vaNL`syRL!wGzKTB{SbNvNtGIEw+r?Cfb z!zZ3icqnW37BQxhGz?EcyqKCbX1%N=u4GK*b-*Ptl_kUU9OiUbFJtNMT`e75BSv0Q zk3B5vRXnbw3uKpcYSwl~-r1;M-mh7|#I(f3Ak$g+39}iZsTAzYR8Y0*TC)6t!4;Km zL!}Ty6R#Y|41F)EBXfi*vyk`1O*z6ev*7o{<+&jCXf4*+}(MghYtFV zC>ULCWziguDc%&-8e@EfPbm|KM_DHK5Og$5%an=L{9pQg!$nTlgD|AW0A<3hjHq5FuY-r& z^l}Y%A(LNOG4p@$Ia*k&=&{9iS=Lm$E=KMs`st@<`;{u&y~>~o0hhB zKV6}+eBEzbm&om3mp@t2_ls@P5$Ow-JSgwKzD?!rPKy@In7-R3=K1aVqrt;dJCU%* z-JB1LvX$OxT_>>aXY^td;T%$@z?1cMw<5Z@o)22!<3g3dY!Ca8oSf( zMrE}$c*)M0QMy0GoPuV$1dt{P=fX@3AS#w?$E*n;WFY6tTnZrj2XZcwwt*C7LSCr_ zNBMXN?J$65Br{pCk;x<|m>Wns58@n|V}WGoAkLnlyOYd8oE;O?om9ZnDYrXCv7m>E zl?+eKOH)%arn&4I$diy)$%2&zO;qPrOd zkx`58&it)sBPst&9w_pzyiPVpDtvh;*&ph17gMF?+U!I(GW0PgabSB!`*!o`!peGP zre~$5sdLz(P`yu}S34=RYF>tDo352pPHjieoIrvu#`+B6OoU02{v?3lHkO7YHQO?$Xu;LqV>s; zIJ5(Y7XsmP5s;o~5s=1RLI}C)FW5EDWIY1}yU-r3Uv9vd1X(zx6m@{v(Ino)TX@cw z@iCl_{H3UaOprH7zLU?FPL&SO+1Bzm>A+%jagug!L2(@ZjMC06jsZp=?irno;eI*N z=I8IW)(r5eo%Pv)r=K;M2UJv(fw$z=nlVtF{oi8E^Q^M%ZV$ifv+wy=E>Yg?{z53s3*#5JfkI(!uUtW2!tD95Q`eNHd z&-x}d%-tDK!oPGoaDn+^V2Pd4k@6l!N2XQ$rOW(gMZMbyGHCCBi4~e&OMlp7oMJfe z<-TmwGKkgRuPj78$w-W1?TDux+UB*rbsp3XA@vCeKLk2x^5(eK}(OjtpK71dlbtMR+ ztY>^Wb5yZ^=D4Mot-hHhJ<;{E+tp(pHf21!qoBK9U9j=R%DQdqF2rx0MFrnqbvG=_ zTXt@0$I_6aN9PP)`}c)qM^x2559n?cfjwOB1Wi`hkqrT>3JNo8z15#g{xer@GqeO`i3j#DIlf02#5|@*)DFR#4kJTv z%LC}eWa3`Il`bM*>=j&?pG4&T4#9=)NG|OayqHN+5~dSeBx_+F5Ol>mg)&;~1?vtH zS|!*CZoLv)K5-W0fKDJJe7B$+IBEWSIA}-I7;{ytQ+2KCvMk zb_>>wx0WRMD{K+ijsmydOl3iQL(7Vy1H6Z=F}7s7y%x&gOg1yr*cM@*sYyWe+TYmI zE`!HMr<#|oR*fcQTEXt)5l~{qU&|Fo)N7=d*7~(S|2SGSZ@JVo_tcCgR}W>Cu-;NT zaqaQ51NH^2+PE^u z7AaS|TBy%AH&dqj@@KgPO}ft)hDbI_@B?CcgA3w|##iCu0B6ME#OVgtJarPyT)|w~ zZTNV#Dg&lJm3wNQI-NM|5;_pmUBYnk_%RphU8=Rf?&m?QI z6&N#jh}BTj?R&2nmO$>hpKfq-=w5Ch&$mcz88?VAaZEO4#waM+J$Vy1O;{zpVp1p1 zsqrJBhofOy@O}>&-|cMa&2rvV0=fUK}Sb3?bKsaiduNb7^}~ zPm(>H3n2%GaqU=sl2H)D@>$aM%&%`}rh}ji1u+b-Ch5bu2rOkwG{d+!+E#B;R}jNZ z=S1exQA8TgIf-S_vTU7iJhz_J4h?q@CyNXFqX7$&HIDOXu9MywFD{H|k@jPFtu}jD z`>LpRbo_U^Bw$fHNn!s@T}gsD7pV_n^;urlX2RJt^YBxI$R)LYWm% zn1RPx5kJPgfiNGFJbFvKJxO>Utw{7;F<3gS9c0 z3fLG_Sdda#fH7#Ok9Zm|#$FBrTm~3>5ffr9V2l|i#47+B7rlr#0EU+gA`1xxdqIFf zLd?R`_qgI6N_7J_m+y$YMe)0LBr639&g~siA(ozy<`ysH1`# zU}Fmr`|1k-0|{{;;I}LM2(U2%m>&ZeD+Isv`lA6GJ1G=oiGT%M4`M<=CJ2nf264W@ z0OsRMHU$eHfP{DkU}F~{u56_rM($tb?KJ2U`hljA&LRuU!bYL9SPmP3dDt;nt_}7uD&ow9if%xt*bxYw=>UWd z;F!jIKOl4vhal>;2SS7Rj-W#xKv~(gN=(6Z5%9CyoFQ%(O8vww3)TW}*hX4L~v(?6GQ-UEky*oh9*uZwOUy+cXSX;g`@9#BRUrT~YOCO!4 z-R2ysq8#seW|sDuAT}Ga_Uvip1o4jIDO0aMnp`yTqw;U|$4Y)3rkmt6>tfk4-yPjP zv(zP=nd~&8HYPUGVz$Yn{cP=}=ZlO;_Su|J1Fz-+?P32B#r7k zD`Ml9I%@^@8ADf*xdP`y)8r65m@Jmm1#l`-6Tm5%>w3_c9zuqja9;EQQfR_;ru|4A zKGu*MCY(1cZj?%R%pxI5&VzX&C#g!#lgZ_XGLUOeb}P9aY&DEb8AWV^IVZD#*8M;R z26J1?{9B84$`CG*(cp*(qI**U&tK$M^Vxg|FISvXELWr}x+^5yDeg-ymFvdQ@)Pof za<$x7_EOd$n=ea{c}t&5k1+k2HqtMopU{)(-qMcj6ZQ~0n;pfv(l_W$l82Igk}_th zBu3&SzAxS-E)hqG?M1(dwu=fygG4sW9j1=bMuyi{7YQtRG+eMES--=IF0w?h)pK+W zIdG7(Aq8Uv8cthsN0;uy1+|o~Br5%!J$n-CSnp)5VK*VQ;;6RqP za7o!9tNjBiW{RL)dd?rY_)^fzD1ux)_aks`eCD8`)iXgM)W}={hK_7*tI6~?yt6)T z<)Hd0NJ$oQ>yh*M73#b+9ct2ZpJG%^LwH-VzJ=>k3bF^qP+}THubGSN53O(f4a(lc zTs>zsL$IZL6W zLAwEw_+LQ(F6tu(U9OBU?Dh1+BDM^4aObB-<$&mjW)Jqi#ovrjfTey=P(MuE%F%EO z91T$Gm}JPTd=y7L;r`sWx+hm*(x0YA4m*Z)TSp-8h3is*>@d1pSAM5@H3e|77wj(wShz# z4#;rfaO?i`hBMPGd;T@L+aLD#^23&WQSq>&&!M&^jf4Gc`j9}0a zh+B%_Z06fKoMcpr@U5map!q&aOjYCm_p~@XvZ>~e>5&)uUz}7O>ldAQnVq`-`Qq2}F6BI|Yx~Ll;A@vBIs_Cf zKJ{?stve^Imbdj_Z%5@8l)&tQ7u$IN@`K_(Ybb4yl$nY^9@oYwvv&WU`5fp)^wdi z6sH+G(L#z7`N3hgav_%_@{?=i1KES@Y|$f83cODh9~@5B%Tv#9AGqg-@f%LOqJG`i zxa90#-v56Lr=iB-MBW)rGUsbQHxH*U{c!q7lGUjpH|F7-&h83wC2qmTKjLtDB8y!& z*12zhemG5OJ)ClRYSSi%r8&C{!)X%?r%^DRriadG8BQO)8BQy!zn0=~S{%IL`~PY< zNdjTdASVf%_@Z_-NT5(L+h>6D4_F!0Tx5n@SVZxJCSZ%|#YspwNpa+r0S3l$N zXY9Ro$GiQweo9=^uLnwkjVk5;GOFw?PPi8M@xQ7x+}Aayi*M|VHd#3>lr6Dn(eyBC z9{=LZ@4i-_xa=`oZzf$j)gt0!#q|%(inx0@J1?St-mPOd2h_}Nx9$&XU&j-pmX93L zX3Ortr>hp_B#)R}@{@=C35SuriXGRCn+uZyP0r;CmNdU3K^O$bs+mGtT27)eh4yga zQDk(D~FCjHUm7q#ir=(`2;tiH6 zB{N6mo|vDPmzmLJY|pgRq>1jTgp6b;pi)oDQ)l3bq6#j!#%CtKua~4rQo}`9#yGH< zlA43pUpeFQ)72Sys>~Es-sCJe8E)|-DKkGUS(T`UD)XU&4hcDG)#S{4ReEY}ZnKGe z{WBSE%aZa^KUJ&1wFGcCH&>mWm^K-1(o)np>Wn0HSV#5{?f$vXRCmpP(z?%mr~Vgh zYR*mi_YJ}NAcpTWBIJM63etO*;7G@k>`Fy1?dG=T4#S`~aqEoFfk1kuMSv&f!5SHS ztJ(in|N8xh{rg7m15wfZKj~k%9Tnpr4sRs=8U+K=e5OTHGD#c&3=KZ@v3gGc8CX_E z%UGEdEy!dt`F}rrUG?G9{QLK#SrPR<5WoLv_+Z5U2k*!KK7J4eh^9y zPXHP3htHdw8g0CG?$=YHbhx>%->~luD^f@J?7xe3{|r$~JY%->SE~l&)&5dY5{P|- zFi>aV#YZtZ3pbu+V7uv{T^J9W*9ge64m@mpUqY5of*o$in{`qX ztY8yZ7s}gfzf1u2Fy4V=b_7+}+S*hl+Tp&hS+jd02t#=XZ8|WpgLWWc9-xQ2Ep20> zUG+Z(J$VxB*5HOu??OltZm1oI(i2o4^aGWeBs_>p<=Xg4wJf;2gRGSJMP~gS$g+{4?N+kh_jY z1v`+deFfZIeJ*Y$?R)UhxjFQNWX>M4Wj0wiTfynxY-itAduDcfXYS( z@ffx2AifJ}><)s%ARytvz&%AyzgKn(=54DnGcFiJ`Xh(g!C*_jJv{^*M9h{v1ufj> z+Y%4h&Fc>zJ_!LWpXZQSg(5uHID#UK7Ksn#S@J3bEY_ZE4md0VvGPL(loAREg45jV zix6EuVaPj)XlP#p8ipY&=wm?sVW@fEfF>Ye`vo7i79C<9XM=uB(*m2jga7;m&97Fjg2|5t9b;C=h}LpNH> z4$NMv5ia>tLo0qe!g$qQ-`)29hi9ah6$N!`=MuG+&Ta1-G1wwt~@xBKmjfd`=ppRXK zP80%<`q(%DZ$VHAfdn$JGOXZtgHdz@ZWcPX=jPG+e^r&N1AKC;>A`0vx)-l_DXkN! IgqO ..\packages\Magick.NET-Q16-AnyCPU.7.0.7.300\lib\net40\Magick.NET-Q16-AnyCPU.dll + + ..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll + diff --git a/ShiftOS.Engine/WindowManager/ShiftSkinData.cs b/ShiftOS.Engine/WindowManager/ShiftSkinData.cs index 2c03123..9f4bf45 100644 --- a/ShiftOS.Engine/WindowManager/ShiftSkinData.cs +++ b/ShiftOS.Engine/WindowManager/ShiftSkinData.cs @@ -11,6 +11,9 @@ namespace ShiftOS.Engine.WindowManager public static Color btnCloseColor = Color.Empty; public static Color btnMaxColor = Color.Empty; public static Color btnMinColor = Color.Empty; + public static Color btnCloseHoverColor = Color.Empty; + public static Color btnMaxHoverColor = Color.Empty; + public static Color btnMinHoverColor = Color.Empty; public static Color leftSideColor = Color.Empty; public static Color rightSideColor = Color.Empty; public static Color leftBottomCornerColor = Color.Empty; diff --git a/ShiftOS.Engine/WindowManager/ShiftWindow.Designer.cs b/ShiftOS.Engine/WindowManager/ShiftWindow.Designer.cs index 211324c..df479ba 100644 --- a/ShiftOS.Engine/WindowManager/ShiftWindow.Designer.cs +++ b/ShiftOS.Engine/WindowManager/ShiftWindow.Designer.cs @@ -161,10 +161,8 @@ this.btnMax.Size = new System.Drawing.Size(21, 21); this.btnMax.TabIndex = 6; this.btnMax.TabStop = false; - this.btnMax.MouseDown += new System.Windows.Forms.MouseEventHandler(this.maximizebutton_MouseDown); this.btnMax.MouseEnter += new System.EventHandler(this.maximizebutton_MouseEnter); this.btnMax.MouseLeave += new System.EventHandler(this.maximizebutton_MouseLeave); - this.btnMax.MouseUp += new System.Windows.Forms.MouseEventHandler(this.maximizebutton_MouseUp); // // btnMin // @@ -175,10 +173,8 @@ this.btnMin.Size = new System.Drawing.Size(21, 21); this.btnMin.TabIndex = 5; this.btnMin.TabStop = false; - this.btnMin.MouseDown += new System.Windows.Forms.MouseEventHandler(this.minimizebutton_MouseDown); this.btnMin.MouseEnter += new System.EventHandler(this.minimizebutton_MouseEnter); this.btnMin.MouseLeave += new System.EventHandler(this.minimizebutton_MouseLeave); - this.btnMin.MouseUp += new System.Windows.Forms.MouseEventHandler(this.minimizebutton_MouseUp); // // Title // @@ -203,10 +199,8 @@ this.btnClose.TabIndex = 4; this.btnClose.TabStop = false; this.btnClose.Click += new System.EventHandler(this.closebutton_Click); - this.btnClose.MouseDown += new System.Windows.Forms.MouseEventHandler(this.closebutton_MouseDown); this.btnClose.MouseEnter += new System.EventHandler(this.closebutton_MouseEnter); this.btnClose.MouseLeave += new System.EventHandler(this.closebutton_MouseLeave); - this.btnClose.MouseUp += new System.Windows.Forms.MouseEventHandler(this.closebutton_MouseUp); // // rightSide // diff --git a/ShiftOS.Engine/WindowManager/ShiftWindow.cs b/ShiftOS.Engine/WindowManager/ShiftWindow.cs index c091d40..a8b9c79 100644 --- a/ShiftOS.Engine/WindowManager/ShiftWindow.cs +++ b/ShiftOS.Engine/WindowManager/ShiftWindow.cs @@ -50,23 +50,25 @@ namespace ShiftOS.Engine.WindowManager => this.Close(); private void closebutton_MouseEnter(object sender, EventArgs e) - => btnClose.BackColor = Color.Gray; + => btnClose.BackColor = ShiftSkinData.btnCloseHoverColor; - private void closebutton_MouseLeave(object sender, EventArgs e) - => btnClose.BackColor = Color.Black; + private void closebutton_MouseLeave(object sender, EventArgs e) + => btnClose.BackColor = ShiftSkinData.btnCloseColor; private void maximizebutton_MouseEnter(object sender, EventArgs e) - => btnMax.BackColor = Color.Gray; + => btnMax.BackColor = ShiftSkinData.btnMaxHoverColor; - private void maximizebutton_MouseLeave(object sender, EventArgs e) - => btnMax.BackColor = Color.Black; + private void maximizebutton_MouseLeave(object sender, EventArgs e) + => btnMax.BackColor = ShiftSkinData.btnMaxColor; - private void minimizebutton_MouseEnter(object sender, EventArgs e) - => btnMin.BackColor = Color.Gray; + private void minimizebutton_MouseEnter(object sender, EventArgs e) + => btnMin.BackColor = ShiftSkinData.btnMinHoverColor; + - private void minimizebutton_MouseLeave(object sender, EventArgs e) - => btnMin.BackColor = Color.Black; + private void minimizebutton_MouseLeave(object sender, EventArgs e) + => btnMin.BackColor = ShiftSkinData.btnMinColor; + /* private void closebutton_MouseDown(object sender, MouseEventArgs e) => btnClose.BackColor = Color.Black; @@ -75,15 +77,8 @@ namespace ShiftOS.Engine.WindowManager private void minimizebutton_MouseDown(object sender, MouseEventArgs e) => btnMin.BackColor = Color.Black; + */ - private void minimizebutton_MouseUp(object sender, MouseEventArgs e) - => btnMin.BackColor = Color.Gray; - - private void maximizebutton_MouseUp(object sender, MouseEventArgs e) - => btnMax.BackColor = Color.Gray; - - private void closebutton_MouseUp(object sender, MouseEventArgs e) - => btnClose.BackColor = Color.Gray; } public interface IShiftWindowExtensions diff --git a/ShiftOS.Engine/packages.config b/ShiftOS.Engine/packages.config index d376894..2f27f01 100644 --- a/ShiftOS.Engine/packages.config +++ b/ShiftOS.Engine/packages.config @@ -1,4 +1,5 @@  + \ No newline at end of file diff --git a/ShiftOS.Main/ShiftOS.Main.csproj b/ShiftOS.Main/ShiftOS.Main.csproj index c814c14..9cbae5f 100644 --- a/ShiftOS.Main/ShiftOS.Main.csproj +++ b/ShiftOS.Main/ShiftOS.Main.csproj @@ -31,6 +31,9 @@ 4 + + ..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll + @@ -110,6 +113,7 @@ Desktop.cs + SettingsSingleFileGenerator Settings.Designer.cs diff --git a/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/SelectColor.cs b/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/SelectColor.cs index 7a97915..f26fe4d 100644 --- a/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/SelectColor.cs +++ b/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/SelectColor.cs @@ -26,12 +26,12 @@ namespace ShiftOS.Main.ShiftOS.Apps { _finalColor = Color.FromArgb(_colorType1, _colorType2, _colorType3); - /* + foreach (var window in ShiftWM.Windows) { - window.Invoke(new Action(() => window.top.BackColor = _finalColor)); + window.Invoke(new Action(() => window.titleBar.BackColor = _finalColor)); } - */ + ShiftWM.StartInfoboxSession("Success!", $"Changed color to:\r\n{_colorType1}, {_colorType2}, {_colorType3}.", InfoboxTemplate.ButtonType.Ok); } diff --git a/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/Shifter.Designer.cs b/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/Shifter.Designer.cs index 47bc115..ac81a5c 100644 --- a/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/Shifter.Designer.cs +++ b/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/Shifter.Designer.cs @@ -37,6 +37,7 @@ this.groupBox1 = new System.Windows.Forms.GroupBox(); this.button1 = new System.Windows.Forms.Button(); this.tabPage2 = new System.Windows.Forms.TabPage(); + this.btnSave = new System.Windows.Forms.Button(); this.tabControl1.SuspendLayout(); this.tabPage1.SuspendLayout(); this.groupBox1.SuspendLayout(); @@ -57,6 +58,7 @@ // // tabPage1 // + this.tabPage1.Controls.Add(this.btnSave); this.tabPage1.Controls.Add(this.button5); this.tabPage1.Controls.Add(this.button4); this.tabPage1.Controls.Add(this.button3); @@ -74,7 +76,7 @@ // this.button5.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.button5.Font = new System.Drawing.Font("Lucida Console", 8.25F); - this.button5.Location = new System.Drawing.Point(6, 267); + this.button5.Location = new System.Drawing.Point(6, 239); this.button5.Name = "button5"; this.button5.Size = new System.Drawing.Size(314, 23); this.button5.TabIndex = 5; @@ -86,7 +88,7 @@ // this.button4.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.button4.Font = new System.Drawing.Font("Lucida Console", 8.25F); - this.button4.Location = new System.Drawing.Point(6, 209); + this.button4.Location = new System.Drawing.Point(6, 181); this.button4.Name = "button4"; this.button4.Size = new System.Drawing.Size(314, 23); this.button4.TabIndex = 4; @@ -98,7 +100,7 @@ // this.button3.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.button3.Font = new System.Drawing.Font("Lucida Console", 8.25F); - this.button3.Location = new System.Drawing.Point(6, 238); + this.button3.Location = new System.Drawing.Point(6, 210); this.button3.Name = "button3"; this.button3.Size = new System.Drawing.Size(155, 23); this.button3.TabIndex = 3; @@ -110,7 +112,7 @@ // this.button2.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.button2.Font = new System.Drawing.Font("Lucida Console", 8.25F); - this.button2.Location = new System.Drawing.Point(171, 238); + this.button2.Location = new System.Drawing.Point(171, 210); this.button2.Name = "button2"; this.button2.Size = new System.Drawing.Size(149, 23); this.button2.TabIndex = 2; @@ -150,6 +152,18 @@ this.tabPage2.Text = "tabPage2"; this.tabPage2.UseVisualStyleBackColor = true; // + // btnSave + // + this.btnSave.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btnSave.Font = new System.Drawing.Font("Lucida Console", 8.25F); + this.btnSave.Location = new System.Drawing.Point(6, 267); + this.btnSave.Name = "btnSave"; + this.btnSave.Size = new System.Drawing.Size(314, 23); + this.btnSave.TabIndex = 6; + this.btnSave.Text = "Save Skin"; + this.btnSave.UseVisualStyleBackColor = true; + this.btnSave.Click += new System.EventHandler(this.btnSave_Click); + // // Shifter // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); @@ -175,5 +189,6 @@ private System.Windows.Forms.Button button2; private System.Windows.Forms.Button button4; private System.Windows.Forms.Button button5; + private System.Windows.Forms.Button btnSave; } } diff --git a/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/Shifter.cs b/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/Shifter.cs index 177942d..609b617 100644 --- a/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/Shifter.cs +++ b/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/Shifter.cs @@ -3,6 +3,8 @@ using System.Windows.Forms; using ShiftOS.Engine; using ShiftOS.Engine.WindowManager; using System.Drawing; +using System.IO; +using Newtonsoft.Json; namespace ShiftOS.Main.ShiftOS.Apps { @@ -35,6 +37,9 @@ namespace ShiftOS.Main.ShiftOS.Apps ShiftSkinData.btnCloseColor = Color.Red; ShiftSkinData.btnMaxColor = Color.Yellow; ShiftSkinData.btnMinColor = Color.Green; + ShiftSkinData.btnCloseHoverColor = Color.FromArgb(255, 102, 102); + ShiftSkinData.btnMaxHoverColor = Color.FromArgb(255, 255, 153); + ShiftSkinData.btnMinColor = Color.FromArgb(102, 255, 102); button5_Click(sender, e); } @@ -45,6 +50,9 @@ namespace ShiftOS.Main.ShiftOS.Apps ShiftSkinData.btnCloseColor = Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255)); ShiftSkinData.btnMaxColor = Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255)); ShiftSkinData.btnMinColor = Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255)); + ShiftSkinData.btnCloseHoverColor = Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255)); + ShiftSkinData.btnMaxHoverColor = Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255)); + ShiftSkinData.btnMinHoverColor = Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255)); button5_Click(sender, e); } @@ -80,5 +88,26 @@ namespace ShiftOS.Main.ShiftOS.Apps } } + + private void btnSave_Click(object sender, EventArgs e) + { + Color[] shiftColors = new Color[14]; + shiftColors[0] = ShiftSkinData.leftTopCornerColor; + shiftColors[1] = ShiftSkinData.titleBarColor; + shiftColors[2] = ShiftSkinData.rightTopCornerColor; + shiftColors[3] = ShiftSkinData.leftSideColor; + shiftColors[4] = ShiftSkinData.rightSideColor; + shiftColors[5] = ShiftSkinData.leftBottomCornerColor; + shiftColors[6] = ShiftSkinData.bottomSideColor; + shiftColors[7] = ShiftSkinData.rightBottomCornerColor; + shiftColors[8] = ShiftSkinData.btnCloseColor; + shiftColors[9] = ShiftSkinData.btnMaxColor; + shiftColors[10] = ShiftSkinData.btnMinColor; + shiftColors[11] = ShiftSkinData.btnCloseHoverColor; + shiftColors[12] = ShiftSkinData.btnMaxHoverColor; + shiftColors[13] = ShiftSkinData.btnMinHoverColor; + File.WriteAllText(@"C:\Users\Public\Documents\Skin.json", JsonConvert.SerializeObject(shiftColors)); + ShiftWM.StartInfoboxSession("Saved Skin", "Saved Skin to C:\\Users\\Public\\Documents\\Skin.json", InfoboxTemplate.ButtonType.Ok); + } } } diff --git a/ShiftOS.Main/packages.config b/ShiftOS.Main/packages.config new file mode 100644 index 0000000..ee51c23 --- /dev/null +++ b/ShiftOS.Main/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file