From 8c1c0bcff429cf8367c7fce6562eb9dd6d647f27 Mon Sep 17 00:00:00 2001 From: Lars Brubaker Date: Thu, 1 Nov 2018 14:07:21 -0700 Subject: [PATCH] Improving setup connection wizard issue: MatterHackers/MCCentral#4453 Add images to connection wizard --- .../CustomWidgets/TreeView/TreeView.cs | 2 ++ .../PrinterConnections/SetupStepComPortOne.cs | 11 ++++++ .../PrinterConnections/SetupStepComPortTwo.cs | 32 +++++++++++------- StaticData/Images/insert usb.png | Bin 0 -> 7646 bytes StaticData/Images/remove usb.png | Bin 0 -> 7491 bytes 5 files changed, 33 insertions(+), 12 deletions(-) create mode 100644 StaticData/Images/insert usb.png create mode 100644 StaticData/Images/remove usb.png diff --git a/MatterControlLib/CustomWidgets/TreeView/TreeView.cs b/MatterControlLib/CustomWidgets/TreeView/TreeView.cs index e11d64b89..64c983cce 100644 --- a/MatterControlLib/CustomWidgets/TreeView/TreeView.cs +++ b/MatterControlLib/CustomWidgets/TreeView/TreeView.cs @@ -228,11 +228,13 @@ namespace MatterHackers.MatterControl.CustomWidgets { OnBeforeSelect(null); + // if the current selection (before change) is !null than clear its background color if (_selectedNode != null) { _selectedNode.HighlightRegion.BackgroundColor = Color.Transparent; } + // change the selection _selectedNode = value; if (_selectedNode != null) diff --git a/MatterControlLib/PrinterControls/PrinterConnections/SetupStepComPortOne.cs b/MatterControlLib/PrinterControls/PrinterConnections/SetupStepComPortOne.cs index 5da2573a7..e816b1090 100644 --- a/MatterControlLib/PrinterControls/PrinterConnections/SetupStepComPortOne.cs +++ b/MatterControlLib/PrinterControls/PrinterConnections/SetupStepComPortOne.cs @@ -28,8 +28,11 @@ either expressed or implied, of the FreeBSD Project. */ using MatterHackers.Agg; +using MatterHackers.Agg.Image; +using MatterHackers.Agg.Platform; using MatterHackers.Agg.UI; using MatterHackers.Localizations; +using System.IO; namespace MatterHackers.MatterControl.PrinterControls.PrinterConnections { @@ -72,6 +75,14 @@ namespace MatterHackers.MatterControl.PrinterControls.PrinterConnections }; container.AddChild(printerMessageThree); + var removeImage = AggContext.StaticData.LoadImage(Path.Combine("Images", "remove usb.png")); + removeImage.SetRecieveBlender(new BlenderPreMultBGRA()); + container.AddChild(new ImageWidget(removeImage) + { + HAnchor = HAnchor.Center, + Margin = new BorderDouble(0, 10), + }); + GuiWidget vSpacer = new GuiWidget(); vSpacer.VAnchor = VAnchor.Stretch; container.AddChild(vSpacer); diff --git a/MatterControlLib/PrinterControls/PrinterConnections/SetupStepComPortTwo.cs b/MatterControlLib/PrinterControls/PrinterConnections/SetupStepComPortTwo.cs index d0ca0198a..8e5cea04b 100644 --- a/MatterControlLib/PrinterControls/PrinterConnections/SetupStepComPortTwo.cs +++ b/MatterControlLib/PrinterControls/PrinterConnections/SetupStepComPortTwo.cs @@ -28,8 +28,11 @@ either expressed or implied, of the FreeBSD Project. */ using System; +using System.IO; using System.Linq; using MatterHackers.Agg; +using MatterHackers.Agg.Image; +using MatterHackers.Agg.Platform; using MatterHackers.Agg.UI; using MatterHackers.Localizations; using MatterHackers.MatterControl.PrinterCommunication; @@ -82,9 +85,16 @@ namespace MatterHackers.MatterControl.PrinterControls.PrinterConnections } }; + var backButton = theme.CreateDialogButton("<< Back".Localize()); + backButton.Click += (s, e) => + { + DialogWindow.ChangeToPage(new SetupStepComPortOne(printer)); + }; + printer.Connection.CommunicationStateChanged.RegisterEvent(onPrinterStatusChanged, ref unregisterEvents); this.AddPageAction(nextButton); + this.AddPageAction(backButton); this.AddPageAction(connectButton); } @@ -114,7 +124,7 @@ namespace MatterHackers.MatterControl.PrinterControls.PrinterConnections printerMessageOne.HAnchor = HAnchor.Stretch; printerMessageOne.Margin = elementMargin; - string printerMessageFourBeg = "Connect printer and power on".Localize(); + string printerMessageFourBeg = "Connect printer (make sure it is on)".Localize(); string printerMessageFourFull = string.Format("1.) {0}.", printerMessageFourBeg); TextWidget printerMessageFour = new TextWidget(printerMessageFourFull, 0, 0, 12); printerMessageFour.TextColor = ActiveTheme.Instance.PrimaryTextColor; @@ -132,16 +142,6 @@ namespace MatterHackers.MatterControl.PrinterControls.PrinterConnections GuiWidget vSpacer = new GuiWidget(); vSpacer.VAnchor = VAnchor.Stretch; - var manualLink = new LinkLabel("Manual Configuration".Localize(), theme) - { - Margin = new BorderDouble(0, 5), - TextColor = theme.Colors.PrimaryTextColor - }; - manualLink.Click += (s, e) => UiThread.RunOnIdle(() => - { - DialogWindow.ChangeToPage(new SetupStepComPortManual(printer)); - }); - printerErrorMessage = new TextWidget("", 0, 0, 10) { AutoExpandBoundsToText = true, @@ -153,8 +153,16 @@ namespace MatterHackers.MatterControl.PrinterControls.PrinterConnections container.AddChild(printerMessageOne); container.AddChild(printerMessageFour); container.AddChild(printerErrorMessage); + + var removeImage = AggContext.StaticData.LoadImage(Path.Combine("Images", "insert usb.png")); + removeImage.SetRecieveBlender(new BlenderPreMultBGRA()); + container.AddChild(new ImageWidget(removeImage) + { + HAnchor = HAnchor.Center, + Margin = new BorderDouble(0, 10), + }); + container.AddChild(vSpacer); - container.AddChild(manualLink); container.HAnchor = HAnchor.Stretch; return container; diff --git a/StaticData/Images/insert usb.png b/StaticData/Images/insert usb.png new file mode 100644 index 0000000000000000000000000000000000000000..4723f611fee33738a88ca7de3fc6e215bc313054 GIT binary patch literal 7646 zcmeAS@N?(olHy`uVBq!ia0y~yU}RumV5s0=V_;yAEzzlCU|?WN@^*J&_z!{$_AZ~y zz`(#+;1OBOz`%DHgc*VG>xS&^jT0|;lxT~)txsm|{d91{MUm@njVBy=T-c&+cU+9h zWVoH%b%L?#t=hq<)rH#Z9*T#}SI8dNI7wtf-efPA2TomUyQ)-8R42Ccf83LHZcgPr z{wwz+gH%)lmn^yPT3p7!MvnLV%$Z;BXRqJ-?UvId6$Oq*lRG`8Hz;^8a5O0}DsVKh zG$?QgF*MOeAWUwi-a+;07JXk;JWcL@udcnH&wqHs+e=Hm`_()bRnFVKb?45XTi?BV zS6j05njTXw?=~~e!v^AQiPbX4XFaxP_MG%$-D^G-&qbDf#uCRj%C#j%%N+j|^gK`` zb;t7M&tE=!_RP5?)RUp(_K_WvRW7c+`s$pD=NFBxqIu7Ad7BpK_9fpfz3W(Z#_P{s z70(IhpWlD+^5xCduYYmeWfWp~Bz7UgB+jDz-JQ*SkDugSbk`^^Ew#OU?bs|}E7QVQ#F}b-=Ci(O;lStqi%>zbIq*s#O|Oy=Kgr<08?(@u8tkMAmd{mh4R zk%p7q{CahcCNtMSudPwJ&!47yvNHsVbW5A%RBQ^+*yCK@$I=kN=(Y6HMvbm*-HSLP zrv z^q-hFs$GxfJic_CyNMxCWaov9S#26!JIaNQ8-DuvXZGB=bM(-`AXJS z=3ckQh2M5-bP2c$K7RbTK!&|g=5zAy-Mi;=H!aZZTD0eRWpvDS*^WgT>KsgqG?J9< zVO3LZC{q~cg! z{=InZ+O@w^BlRxNRbf<^X3kn+&C#U4gbN~3!ZgIgj z#YrlS%Q6qg#>Sq%xTS%mA%g8{*4Kvjzx&VE+rMq=@9R5f7?QT8)rqk!(P5IxyLZP6 zdklC4Sr{K#xb2N&XJ|?6(CB*R!+N9glKpxie+PGW_K?t{U%r^Ex~gTrJW=BC-@kwR zCEFY?GYK&~iqf2Z`h9!ij^cyTGmEZ!FBLj=?AVTlzxMS%e3+PXcbDk2RL4mwM+(m@ z=Q(Zo;V08(iCya!uU^ePNo8S#PLZMk&*9V0Kd&z>D|=a-a})bxM*%9WZueSMGm ztlvF&d0^^1F`d@b$c((aHl5Qm=FOWI>@wwS8vobt-|gMDGOI8gv00>X%Gbw7CN#A4 z^;MRJr{5>5G_G1TW9H0*FJ5SzXS(vbl!uo$F(HBBXHDHz``>>e8W(AtNZWiO#c0L# z*E8nLdv>p3k%lrTxm#IT#Vy|L$5e3HBFysJ1Ig!S9>{)^ZGV5}PGvOPvPTxz^yBvY z*taaRxlkrvkU3$+s#DEPYtj~6%y{tT=H?nJf#ZgDKOQibl$I`Byg1pF$NFzwmDR+5 zwtxT3T-NEdkRfuKp`|6~_0me&rqsxG^Za{zy7x3rb^Z0se7|RSB4bzG#`p5|pZov+ zzMuZ@uebQ#?r7tpv|X;*JJ()2#N8y2w)y6D+2b#TSrQXAuCQDECwb}NGXdPKOv{!p z-gj@jM6x_?&V`T24i=D!hbQ_Px!UhZ*TFBiGA*Iawqs?PHF$Vy{tmDFS)j; zXw$wa><@n1r9?g}{gab&)r42wZ_b0tN=JbU872i^UIf0mv9URv@0|R@%jeG~DgSq3 z+drW}rzLZifv@mXFV;et&tJI$_zYs<_u5P zR;jA$>hS0TI~tiEXbXr(cUJtg=KcQtd;LX&p2VuC>HMXvaV>MENQ*CNb>FJM_htLB zdsPotAK!2F>F>n%@8wta=j^{a|9e$Si~x%q1J7ZBLYd^p$9g07*V*dx3AqZkIx%j` zef;F)91wNFr2a24H%svn%wn;p?_QW!soYbT!ftvgGt6p7M`QOoBi}S#$ zgs!xmp7~Li&Xy~if8Ts^{@c1|i_`mT|Hq$~|Jy(Ff5jIuKjvHO-F0qgcPZs9@b&e* zu_=|?XeN(*CU+~-ww#-XE*F1}KXc&bA*HlCnab(i{WnBf)<(|AfABfnP*1gJ-}}dB zW*S@Bu2f-IeeCO*&*v@D+2SpKpE{^t`(f#?=;Zvp1)KLasd%ni?XM7h|GZ73M%RT5 z69rG9U%!4`xOdO)xb%xRZ{{dVygAA>-ZDc&Mafn(LTU&SRn4Ob9D4= z(R&Qqx^aDt`cG_izU>m@e|BP`@{3omtX%yyIS;J5xaeNQt@ja6Z#4VY|M+q;pQrxu z-}%0ObIJwSS3ld-mT0kQ%Eu+U|1U{q{Ji+*=Kt&;nB`|JOFTVI_r{(|ij_Vvh zuwGT~VBGaj`6j;30xVLtOU>C*8K*s1QeO1@o^bVj|3_1IyT!--e`-5F_t%@*+H>7< zOr)YuKmFtwIc>Xfb5g{#Rs)_&KigQz7rXTQdE*j$9<6C#kZm>pwRK-})Y`VFwQX5j zt(NoNTxGlD^Q8$nj+0lddVi<(``v!+E~lf8Dh#U+FP68NwPpze!{*E*zq!BvfAH{H zd;D9|s_-oTQDV`>)!6S-MXDt?UWD zH7Bk`7s|Z8n)UUl0>`}6&qcSlr9b~R-I^)>-S6|P4YKC(3=9tDB_5Bqe&@|Fk;*WU zl8}_#nI-*c>XHDBJ=bpE{w?#?wP5Z>Wi8gYS= z^XFr{$0Ct!nYrnup5=K5V);sA|F3-i+fSm6f77!0I=<88I$Z-@L|nPe1bs#C#9Tk2 zd)i1O)G>G;XQ0Tz&wE6>|LD8!jgyy=m%pEU`>XU6C9ut=Vw<^J>Q{$E)coZp^!!_8mcmoaZfz4rgx@7~Y*_wHZx$L*lv`G>#t z|C0B;>p+q2DZs+f)Uf~fGRDu#8D7p`GxNk(DV^J`9s(>Ux_T_S46UrVu9yDYIsNyY zv-hX8Ts2NHlC0}V1T`KnnD{PGpTY8=Euz=wz}HJF%lY;fJ=dNed?BRMt2s;6QEb8wZGDD`@(1Jcolj>9q%eBUa0qcxab)tGDDYEI zCDdte;Qe3or~muBpMRZn%(XVDMH+n)Z66~hspPjO&WL{d)1vt2<*99TPZn=oD>`dg zVol8)X|3$^b8ervOuW7A?0tWK_lUU;R_iu4Tn{$$oh+9i)F7R_ch|oiOCz4HijV#1 z)3C%#Lr#;4=|Yh|chT%30fm@*al#Y6+FC*Ia8sgZVTG)^Ti()j0p|NC~g zK$gg9;jt`w)d~Wxf{pSA&fU5(?S9+Ilb-VyCMZ|#is+Qw@&32QRId*<{qJi+)?eRP z_qR%ft95Bt+p(7~RT(1$cYRs+aPqm6s?9}#%1x631%6)-mzaEaf@|%fKI8vIY-zhY z&;7qz*`I&W4qwB-#`2SLiG?G3)I~%^mV!BFaSM$1~)=Rt#N`Lk2 zTXmvABC=POzZMV`d{!mgt*ab&#UPru#P&k#2Dzjs|NAQT|GT%|ur}q^=Vi7U z0XB{z0!OriziD}1ny@T0zVq>p3gcx=pZ7ARecAWE_;Fe6bbVpJd^4@nMme|L76v$E zXTP4a_Ux*wTK5%ys@wnMtowO7{!n4vblcF-sa(w`m?ISV54@3TV^}h~+2j;2OP;~= zy(2|Th{d|K+qu*5UM875LM-oHP7b94H~W77Ev z2?-3}?^WwhQd!uf@QER;jc@7WDOYW!=X^@Dv2bN?G`{|WQK3`VVaD9u(r=HI?tYv1 zr1MtlG>L0IC%aq5jS`Dk9XhKi3$={F<+pdGGLE{{8>9|E;gSfB4qn-!6_VNg4)GJ*j{9f@_aE*Z zHc!?p)SLd>Yw<;iw0Gan8vQFVPkPoU(RR?7{iUB{&ReG2jvkX#W-RNB(QD5!vwnT* zl+mr*w?7_W=1(}@C(F^)Fsn7@^xp+m4cU)he_j87o6huV_j`Zu9$4hH>bu8%<==8I z>K?G)Ei-@b`~Ca5`}^y)Y_SB2fOr4d>_~HM!que6zb{k zUwkp+!!BmmzzHgxT2r|;-Fzc0ZJu{$_Sv+P(h7__4CB7V*;P62H?a8hj-x1P-H(9x z&cEefR;SEg8o}*0`~R|U=Eu*uKi|&m5WxMQZ|CWMx9jhGI=;Ss>-W{G_r=e9Y_Ypp z;l_Cvhe=Cbi#1sE1+Km-cJ{pYB$m^g0#=3yv?^gA= zjhJ4Rr7g>JnwF~K*;KW+PowL>E~ULsu)Fb5MVW77YUG{hf>`lg z>pnj{J1zC2RAbd%yY&8pDxME2x_SNeLl6Y zD(L*$7LG5o_8y=AzP|2yZ<*FEsYHowQ%^tL9vUjUCHMC(7KJXQD_L7DbN5}|khOp2 zOi4Y4oaahrw>FD*Y>mqGOHJ4s)tWi$&z*hmixW8x3+#Jed{9bS`tj+B(!Fdsx7*(T zKDuw;zTdNF&t5szf|W6Re($AY3)9!6%bBn&=3$6(Y+mAd+U|ab^`^foAN&9P_V?v? z`S`Qvbx#)=PCxyYtLeenqdb*2`R_bcJ@I)t?;G1^$A0hQzihJe$BuQUk2;9B=KWc7 zd4tYr4G}H_U*UDHKWR29aM-M!q2hVFUB0fOC?n%VXqDAT<{gN@5yoLbMEgKc8int9W22#E^9LXW`@H`hQORzSw;r=Q7Xp zJ;l!R7(TOo%e(jcXY|JA!o6|#XR4fBJV}K&YnIuGXHUJ~Dji{IkW@E5R&s8Bsv=8Z zgOc_K8~$DEK3}|Vz++dMVIpBLgU#jdXOdUP>KEwlSXaFuY_;va z8(xQ7Srj;!LbOCpOidO0lH-0HHez|X_Ta0pR^kmBT@?@dIi2>#J>SUqjF-i+p~jBi zHPFD!tZn7Wm6o%6tLC+@T&bCJZ_m%Axwp6NU8B+E&g8I$i;?MX>G!Y9`?>1AY831Y zc(I6ijYIj{#y1BR+Dd=7DO_Eyw=P6$ckK1M`!D1j{mj~6XlZ#;{CCEzW426TKaa=M znBCgEl3_JVism5$o@k#vmPvs)f0Jn*5A#|&F$B(UuC5wB{J%a3Sq|` zCVAcde&@aHoM7D@PD&T@zw*~6pEj4P7n z9g9xv{=4M6P>Nfg1e;6Xlh3tk9ElQ(!d4&L_SUkNqvrneyG=7bu3p7;*x<*f$E{}W zosWNXPMbE({MxV09+?NC9l}nC%{Q7~wI=$N9UsFc#l!D5hCjKJKF7E@-tODekLBw3 z{@z;qr*GCWUQ=^({v(AplkRo(tYwbq*tX3~#gplHp@6HP{K1(UwYv`eU;Dh$#{0k{ zjvSTr#g?nJ6Qt*_Sk;wd#_cHZpz_`v*{;jS>MN@X50u_@1VyW>f_7T>ft+%M&6i^) zS_>U%{O2$K|MKelR-e~y&wpATB9gjf<;s_z6D9hVO#h>|wKig5z=N}nG1s4duGx0m z;P#Y|DK2rw2KB~5fg*w|2j~3dzIpAjqd?5X*$MkTGH?FMVQg&7e*M=XC836BkKH%y z{xp3(RC_03&C~S?F&*(!>%O+;&;5Drws~^qMy?qd?G z!_%V5Bj0QD{^a~S$Knur<>r=o2H78U1WwrSgfUFXGdkt=w{o3bzK2o0)Pl^Y{KXe< z?435>v5WBzo6qsfd+S4gub!MJ^orp@?57Je;&#TCMs1lkasQn!)BAI`nccr+a{b7W zBNvw~TXwLslQV9IuxntT$Wg)5o9-F%Jf4v`%X!r*F~$Wkdi8J5%rst~W+W-mb}*Ug z%#E8Ku`5F+oPPS_{nDULc6Q0DSzo*UHD1jU{aPiv?)4|8g({vKa&Mc-MHk2{zjOKW zW$mt{nJf(vrhcu<%l19m_eoBear+CU6)f6XO!eE}zJIs-s$^5t+HV&%F!R>D9JAlIqH5k{WN*0L(i9;PxWL4(MO}`C;b@ou z`^T;;91ISzE1u6@{A{A`PTlQSxC27Jx~NV5=@2;OWwy<}2n~_A=_)THr`euJG5TPW z?`N)fEzKrYw`Ygo}C zU@Dm9);cM0L0agEWjvmf6+HHPcmG}Zv;BYi-o5{hynnqlGb^jgnCI||OG~}^H?Z2h zT<5e&=ln}n1LA(zyT(XTw?-hKajtE8-K z-<7LZOZO{qJPlfTg!kI_zm|oK7JY$h!!8GRwk{Lj>^4EmE=Yv+XU)9t5@*sjZ^*6w ztzY-Cd$GFzygyQ$3>#l*1ngOVJAVIv{wMYpCf1d#MYD@u{3%iIDPzuxYn>IWsHMd6 zaq{-Rv3k?3_vGE(^;^W%^4zWFjcc3)SnhCpY>wDqt;@4(-RCQbYLgpNBMp3oTb&qZ z`Ye0x+wv*%xU<8E<8r!n&ikP}uzYq|cWwCI#KmI<|7u?L=ElZ$mWGJXbH|@=|L^>T zzg@~}vF=;OFDGn||Gu(sp}o=njQZVo>~gxEsh8RB@ml(+HF&w--ixFT7yuwOmq(9(OGEp`{*nw$4~%eR;2#YyW{ zaB!9G@O@};?%K?mGnuD)rC!*iV`6IhQE*S#>Vw~F?|F9o-E&Q|QN`0=s_o;isNHEQ z3`b@u@f^N$4| z)^6Jywpw;dYUS%a-vjlgC*C&8H`{e%N&`!SLS6sI+Wl*TR_@_V@GIuOUTSD;e0X-t z23u~)>DO7-{8ZxBVo|zgvTBvs?Af#5Z_oX0$e>&(Gkvi})4JC$-o2}{?OJqrX;5c1 zn@)xV3*%Q7l@5QV=jY~DZ;e`8w|47RQHF}@Pd;kSatw}ZO3iX_ZAt(8>+5bcH8q=O ztR0JXJfHmGt|tQrlS6RuW$W77+V8E26%}b|Y>5)jGPxWC<{Lb+xaL2{;^X>lx#ng$ zH#T(JFf{#OQS4e&em%ClHg3|A!}FehUHA39w;Y3G%_P=-Jx0d~3<4~UOb!ApoD7Zv iDhw>-3KU9z_|Le>akI|S`B_S!>03`%KbLh*2~7aUlZ0OY literal 0 HcmV?d00001 diff --git a/StaticData/Images/remove usb.png b/StaticData/Images/remove usb.png new file mode 100644 index 0000000000000000000000000000000000000000..d1bf3bc8c1f11c134935b13e9becf60f300c5482 GIT binary patch literal 7491 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 XwmMU~rFhmW&>X3!tDnm{r-UW|5HUiI literal 0 HcmV?d00001