@@ -13,6 +13,7 @@ class FilterUIPopup extends PApplet implements Runnable {
1313 private boolean needToResizePopup = false ;
1414 private boolean needToResetCp5Graphics = false ;
1515
16+ private int middle;
1617 private final int sm_spacer = 6 ;
1718 private final int halfSmSpacer = sm_spacer/ 2 ;
1819 private final int lg_spacer = 12 ;
@@ -78,10 +79,13 @@ class FilterUIPopup extends PApplet implements Runnable {
7879 private int widthOfAllChannelColumns;
7980
8081 private int expanderX, expanderY, expanderW;
81- private final int expanderH = 16 ;
82+ private final int expanderH = 20 ;
8283 private boolean expanderIsHover = false ;
83- private int expanderTriangleWidth = 22 ;
84- private int expanderTriangleHeight = 10 ;
84+ private int expanderTriangleWidth = 12 ;
85+ private int expanderTriangleHeight = 6 ;
86+ private int expanderBreakMiddle = 90 ;
87+ private int expanderLineOneEnd;
88+ private int expanderLineTwoStart;
8589 private int [] expanderTriangleXYCollapsed = new int [6 ];
8690 private int [] expanderTriangleXYExpanded = new int [6 ];
8791
@@ -212,8 +216,15 @@ class FilterUIPopup extends PApplet implements Runnable {
212216 expanderTriangleXYExpanded;
213217 stroke (expanderColor);
214218 fill (expanderColor);
215- line (expanderX, expanderY, triXY[0 ], expanderY);
216- line (triXY[4 ], expanderY, expanderX + expanderW - 1 , expanderY);
219+ line (expanderX, expanderY, expanderLineOneEnd, expanderY);
220+ line (expanderLineTwoStart, expanderY, expanderX + expanderW - 1 , expanderY);
221+ textAlign (CENTER , TOP );
222+ textFont (p6, 10 );
223+ StringBuilder expanderString = new StringBuilder ();
224+ expanderString. append(filterSettings. values. filterChannelSelect == FilterChannelSelect . ALL_CHANNELS ? " Show " : " Hide " );
225+ expanderString. append(" Channels" );
226+ int expanderTextWidth = (int )textWidth (expanderString. toString()) + 4 ;
227+ text (expanderString. toString(), middle - expanderTextWidth/ 2 , expanderY - expanderH/ 2 - 2 , expanderTextWidth, expanderH);
217228 noStroke ();
218229 triangle (triXY[0 ], triXY[1 ], triXY[2 ], triXY[3 ], triXY[4 ], triXY[5 ]);
219230
@@ -328,7 +339,7 @@ class FilterUIPopup extends PApplet implements Runnable {
328339 }
329340
330341 private void calculateXYForHeaderColumnsAndFooter () {
331- int middle = width / 2 ;
342+ middle = width / 2 ;
332343
333344 headerObjX[0 ] = middle - sm_spacer* 2 - headerObjWidth* 2 ;
334345 headerObjX[1 ] = middle - sm_spacer - headerObjWidth;
@@ -345,6 +356,9 @@ class FilterUIPopup extends PApplet implements Runnable {
345356 footerObjX[1 ] = middle - halfObjWidth;
346357 footerObjX[2 ] = middle + halfObjWidth + lg_spacer;
347358 setFooterObjYPosition(filterSettings. values. filterChannelSelect);
359+
360+ expanderLineOneEnd = middle - expanderBreakMiddle/ 2 ;
361+ expanderLineTwoStart = middle + expanderBreakMiddle/ 2 ;
348362 }
349363
350364 public void arrangeAllObjectsXY () {
@@ -366,20 +380,20 @@ class FilterUIPopup extends PApplet implements Runnable {
366380 expanderY = (int )masterOnOffButton. getPosition()[1 ] + uiObjectHeight + sm_spacer + expanderH/ 2 ;
367381 expanderW = widthOfAllChannelColumns;
368382
369- expanderTriangleXYCollapsed[0 ] = expanderX + expanderW/ 2 - expanderTriangleWidth/ 2 ;
370- expanderTriangleXYCollapsed[1 ] = expanderY - expanderTriangleHeight/ 2 ;
371- expanderTriangleXYCollapsed[2 ] = expanderX + expanderW/ 2 ;
372- expanderTriangleXYCollapsed[3 ] = expanderY + expanderH/ 2 ;
373- expanderTriangleXYCollapsed[4 ] = expanderX + expanderW/ 2 + expanderTriangleWidth/ 2 ;
374- expanderTriangleXYCollapsed[5 ] = expanderTriangleXYCollapsed[1 ];
375-
376- expanderTriangleXYExpanded[0 ] = expanderTriangleXYCollapsed[0 ];
377- expanderTriangleXYExpanded[1 ] = expanderY + expanderTriangleHeight/ 2 ;
378- expanderTriangleXYExpanded[2 ] = expanderTriangleXYCollapsed[2 ];
379- expanderTriangleXYExpanded[3 ] = expanderY - expanderH/ 2 ;
380- expanderTriangleXYExpanded[4 ] = expanderTriangleXYCollapsed[4 ];
383+ expanderTriangleXYExpanded[0 ] = expanderX + expanderW/ 2 - expanderTriangleWidth/ 2 ;
384+ expanderTriangleXYExpanded[1 ] = expanderY + 2 ;
385+ expanderTriangleXYExpanded[2 ] = expanderX + expanderW/ 2 ;
386+ expanderTriangleXYExpanded[3 ] = expanderY + 2 + expanderTriangleHeight;
387+ expanderTriangleXYExpanded[4 ] = expanderX + expanderW/ 2 + expanderTriangleWidth/ 2 ;
381388 expanderTriangleXYExpanded[5 ] = expanderTriangleXYExpanded[1 ];
382389
390+ expanderTriangleXYCollapsed[0 ] = expanderTriangleXYExpanded[0 ];
391+ expanderTriangleXYCollapsed[1 ] = expanderTriangleXYExpanded[3 ];
392+ expanderTriangleXYCollapsed[2 ] = expanderTriangleXYExpanded[2 ];
393+ expanderTriangleXYCollapsed[3 ] = expanderTriangleXYExpanded[1 ];
394+ expanderTriangleXYCollapsed[4 ] = expanderTriangleXYExpanded[4 ];
395+ expanderTriangleXYCollapsed[5 ] = expanderTriangleXYExpanded[3 ];
396+
383397 for (int chan = 0 ; chan < filterSettings. getChannelCount(); chan++ ) {
384398 rowY = (int )onOffButtons[chan]. getPosition()[1 ];
385399 onOffButtons[chan]. setPosition(onOffButtonNewX, rowY);
0 commit comments