[prev in list] [next in list] [prev in thread] [next in thread] 

List:       haiku-commits
Subject:    [haiku-commits] Change in haiku[master]: Deskbar: Calculate clock margin based on font size
From:       Gerrit <review () review ! haiku-os ! org>
Date:       2022-09-01 21:47:39
Message-ID: 615e3eff3d2560431ce45bbb5585eb42715da540-HTML () review ! haiku-os ! org
[Download RAW message or body]

From John Scipione <jscipione@gmail.com>:

John Scipione has uploaded this change for review. ( https://review.haiku-os.org/c/haiku/+/5610 )


Change subject: Deskbar: Calculate clock margin based on font size
......................................................................

Deskbar: Calculate clock margin based on font size

Based off of tray padding instead of hard-coding 12. Calculate tray
padding once in AttachedToWindow() and use that value everywhere.
Create some class float member variables to keep track of these values.

Fixes #17923
---
M src/apps/deskbar/StatusView.cpp
M src/apps/deskbar/StatusView.h
2 files changed, 19 insertions(+), 16 deletions(-)



  git pull ssh://git.haiku-os.org:22/haiku refs/changes/10/5610/1

diff --git a/src/apps/deskbar/StatusView.cpp b/src/apps/deskbar/StatusView.cpp
index a2b07b8..b20c5e0 100644
--- a/src/apps/deskbar/StatusView.cpp
+++ b/src/apps/deskbar/StatusView.cpp
@@ -140,6 +140,9 @@
 	fTime(NULL),
 	fBarView(barView),
 	fShelf(new TReplicantShelf(this)),
+	fMinimumTrayWidth(gMinimumTrayWidth),
+	fTrayPadding(3.0f),
+	fClockMargin(12.0f),
 	fAlignmentSupport(false)
 {
 	// scale replicants by font size
@@ -158,8 +161,7 @@
 	if (fBarView != NULL && fBarView->Vertical()
 		&& (fBarView->ExpandoState() || fBarView->FullState())) {
 		fMinimumTrayWidth = gMinimumWindowWidth - kGutter - gDragRegionWidth;
-	} else
-		fMinimumTrayWidth = gMinimumTrayWidth;
+	}

 	// Create the time view
 	fTime = new TTimeView(fMinimumTrayWidth, fMaxReplicantHeight - 1.0,
@@ -188,6 +190,9 @@

 	Window()->SetPulseRate(1000000);

+	fTrayPadding = ceilf(be_control_look->ComposeSpacing(kTrayPadding) / 2);
+	fClockMargin = fTrayPadding * 4;
+
 	clock_settings* clock = ((TBarApp*)be_app)->ClockSettings();
 	fTime->SetShowSeconds(clock->showSeconds);
 	fTime->SetShowDayOfWeek(clock->showDayOfWeek);
@@ -195,8 +200,7 @@

 	AddChild(fTime);

-	const float trayPadding = ceilf(be_control_look->ComposeSpacing(kTrayPadding) / 2);
-	fTime->MoveTo(Bounds().right - fTime->Bounds().Width() - trayPadding, 2);
+	fTime->MoveTo(Bounds().right - fTime->Bounds().Width() - fTrayPadding, 2);
 		// will be moved into place later

 	if (!((TBarApp*)be_app)->Settings()->showClock)
@@ -234,7 +238,6 @@
 {
 	float width = 0;
 	float height = fMinTrayHeight;
-	const float trayPadding = ceilf(be_control_look->ComposeSpacing(kTrayPadding) / 2);

 	if (fBarView->Vertical()) {
 		width = static_cast<TBarApp*>(be_app)->Settings()->width
@@ -255,11 +258,11 @@
 	} else {
 		// if last replicant overruns clock then resize to accomodate
 		if (ReplicantCount() > 0) {
-			if (!fTime->IsHidden(fTime) && Bounds().right - trayPadding - 2
-						- fTime->Frame().Width() - kClockMargin
-					< fRightBottomReplicant.right + kClockMargin) {
-				width = fRightBottomReplicant.right + kClockMargin
-					+ fTime->Frame().Width() + trayPadding + 2;
+			if (!fTime->IsHidden(fTime) && Bounds().right - fTrayPadding - 2
+						- fTime->Frame().Width() - fClockMargin
+					< fRightBottomReplicant.right + fClockMargin) {
+				width = fRightBottomReplicant.right + fClockMargin
+					+ fTime->Frame().Width() + fTrayPadding + 2;
 			} else
 				width = fRightBottomReplicant.right + sIconGap + kGutter;
 		}
@@ -1179,8 +1182,7 @@
 BPoint
 TReplicantTray::LocationForReplicant(int32 index, float replicantWidth)
 {
-	const float trayPadding = ceilf(be_control_look->ComposeSpacing(kTrayPadding) / 2);
-	BPoint loc(trayPadding, 0);
+	BPoint loc(fTrayPadding, 0);
 	if (fBarView->Vertical() || fBarView->MiniState()) {
 		if (fBarView->Vertical() && !fBarView->Left())
 			loc.x += gDragWidth; // move past dragger on left
@@ -1203,7 +1205,7 @@
 	}

 	// move clock vertically centered in first row next to replicants
-	fTime->MoveTo(Bounds().right - fTime->Bounds().Width() - trayPadding,
+	fTime->MoveTo(Bounds().right - fTime->Bounds().Width() - fTrayPadding,
 		loc.y + floorf((fMaxReplicantHeight - fTime->fHeight) / 2));

 	if (fBarView->Vertical()) {
@@ -1211,10 +1213,10 @@
 		for (int32 row = 0; ; loc.y += fMaxReplicantHeight + sIconGap, row++) {
 			// determine free space in this row
 			BRect rowRect(loc.x, loc.y,
-				loc.x + Bounds().Width() - trayPadding,
+				loc.x + Bounds().Width() - fTrayPadding,
 				loc.y + fMaxReplicantHeight);
 			if (row == 0 && !fTime->IsHidden(fTime))
-				rowRect.right -= kClockMargin + fTime->Frame().Width();
+				rowRect.right -= fClockMargin + fTime->Frame().Width();

 			BRect replicantRect = rowRect;
 			for (int32 i = 0; i < index; i++) {
diff --git a/src/apps/deskbar/StatusView.h b/src/apps/deskbar/StatusView.h
index fd8c8f5..d0bfe2c 100644
--- a/src/apps/deskbar/StatusView.h
+++ b/src/apps/deskbar/StatusView.h
@@ -52,7 +52,6 @@
 const int32 kMinimumReplicantCount = 6;
 const int32 kGutter = 1;
 const int32 kTrayPadding = B_USE_HALF_ITEM_SPACING;
-const int32 kClockMargin = 12;

 extern float sIconGap;
 extern float gDragWidth, gDragRegionWidth;
@@ -170,6 +169,8 @@
 				float				fMinTrayHeight;

 				float				fMinimumTrayWidth;
+				float				fTrayPadding;
+				float				fClockMargin;

 				bool				fAlignmentSupport;
 #ifdef DB_ADDONS

--
To view, visit https://review.haiku-os.org/c/haiku/+/5610
To unsubscribe, or for help writing mail filters, visit https://review.haiku-os.org/settings

Gerrit-Project: haiku
Gerrit-Branch: master
Gerrit-Change-Id: I3e767fdc8d2775e5f0dfff3275aeb0b686a8ea76
Gerrit-Change-Number: 5610
Gerrit-PatchSet: 1
Gerrit-Owner: John Scipione <jscipione@gmail.com>
Gerrit-MessageType: newchange

[Attachment #3 (text/html)]

<p>John Scipione has uploaded this change for <strong>review</strong>.</p><p><a \
href="https://review.haiku-os.org/c/haiku/+/5610">View Change</a></p><pre \
style="font-family: monospace,monospace; white-space: pre-wrap;">Deskbar: Calculate \
clock margin based on font size<br><br>Based off of tray padding instead of \
hard-coding 12. Calculate tray<br>padding once in AttachedToWindow() and use that \
value everywhere.<br>Create some class float member variables to keep track of these \
values.<br><br>Fixes #17923<br>---<br>M src/apps/deskbar/StatusView.cpp<br>M \
src/apps/deskbar/StatusView.h<br>2 files changed, 19 insertions(+), 16 \
deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: \
pre-wrap;">git pull ssh://git.haiku-os.org:22/haiku refs/changes/10/5610/1</pre><pre \
style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git \
a/src/apps/deskbar/StatusView.cpp \
b/src/apps/deskbar/StatusView.cpp</span><br><span>index a2b07b8..b20c5e0 \
100644</span><br><span>--- a/src/apps/deskbar/StatusView.cpp</span><br><span>+++ \
b/src/apps/deskbar/StatusView.cpp</span><br><span>@@ -140,6 +140,9 \
@@</span><br><span> 	fTime(NULL),</span><br><span> \
fBarView(barView),</span><br><span> 	fShelf(new \
TReplicantShelf(this)),</span><br><span style="color: hsl(120, 100%, \
40%);">+	fMinimumTrayWidth(gMinimumTrayWidth),</span><br><span style="color: hsl(120, \
100%, 40%);">+	fTrayPadding(3.0f),</span><br><span style="color: hsl(120, 100%, \
40%);">+	fClockMargin(12.0f),</span><br><span> \
fAlignmentSupport(false)</span><br><span> {</span><br><span> 	// scale replicants by \
font size</span><br><span>@@ -158,8 +161,7 @@</span><br><span> 	if (fBarView != NULL \
&amp;&amp; fBarView-&gt;Vertical()</span><br><span> 		&amp;&amp; \
(fBarView-&gt;ExpandoState() || fBarView-&gt;FullState())) {</span><br><span> \
fMinimumTrayWidth = gMinimumWindowWidth - kGutter - gDragRegionWidth;</span><br><span \
style="color: hsl(0, 100%, 40%);">-	} else</span><br><span style="color: hsl(0, 100%, \
40%);">-		fMinimumTrayWidth = gMinimumTrayWidth;</span><br><span style="color: \
hsl(120, 100%, 40%);">+	}</span><br><span> </span><br><span> 	// Create the time \
view</span><br><span> 	fTime = new TTimeView(fMinimumTrayWidth, fMaxReplicantHeight - \
1.0,</span><br><span>@@ -188,6 +190,9 @@</span><br><span> </span><br><span> \
Window()-&gt;SetPulseRate(1000000);</span><br><span> </span><br><span style="color: \
hsl(120, 100%, 40%);">+	fTrayPadding = \
ceilf(be_control_look-&gt;ComposeSpacing(kTrayPadding) / 2);</span><br><span \
style="color: hsl(120, 100%, 40%);">+	fClockMargin = fTrayPadding * \
4;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> \
clock_settings* clock = ((TBarApp*)be_app)-&gt;ClockSettings();</span><br><span> \
fTime-&gt;SetShowSeconds(clock-&gt;showSeconds);</span><br><span> \
fTime-&gt;SetShowDayOfWeek(clock-&gt;showDayOfWeek);</span><br><span>@@ -195,8 +200,7 \
@@</span><br><span> </span><br><span> 	AddChild(fTime);</span><br><span> \
</span><br><span style="color: hsl(0, 100%, 40%);">-	const float trayPadding = \
ceilf(be_control_look-&gt;ComposeSpacing(kTrayPadding) / 2);</span><br><span \
style="color: hsl(0, 100%, 40%);">-	fTime-&gt;MoveTo(Bounds().right - \
fTime-&gt;Bounds().Width() - trayPadding, 2);</span><br><span style="color: hsl(120, \
100%, 40%);">+	fTime-&gt;MoveTo(Bounds().right - fTime-&gt;Bounds().Width() - \
fTrayPadding, 2);</span><br><span> 		// will be moved into place \
later</span><br><span> </span><br><span> 	if \
(!((TBarApp*)be_app)-&gt;Settings()-&gt;showClock)</span><br><span>@@ -234,7 +238,6 \
@@</span><br><span> {</span><br><span> 	float width = 0;</span><br><span> 	float \
height = fMinTrayHeight;</span><br><span style="color: hsl(0, 100%, 40%);">-	const \
float trayPadding = ceilf(be_control_look-&gt;ComposeSpacing(kTrayPadding) / \
2);</span><br><span> </span><br><span> 	if (fBarView-&gt;Vertical()) \
{</span><br><span> 		width = \
static_cast&lt;TBarApp*&gt;(be_app)-&gt;Settings()-&gt;width</span><br><span>@@ \
-255,11 +258,11 @@</span><br><span> 	} else {</span><br><span> 		// if last replicant \
overruns clock then resize to accomodate</span><br><span> 		if (ReplicantCount() &gt; \
0) {</span><br><span style="color: hsl(0, 100%, 40%);">-			if \
(!fTime-&gt;IsHidden(fTime) &amp;&amp; Bounds().right - trayPadding - \
2</span><br><span style="color: hsl(0, 100%, 40%);">-						- \
fTime-&gt;Frame().Width() - kClockMargin</span><br><span style="color: hsl(0, 100%, \
40%);">-					&lt; fRightBottomReplicant.right + kClockMargin) {</span><br><span \
style="color: hsl(0, 100%, 40%);">-				width = fRightBottomReplicant.right + \
kClockMargin</span><br><span style="color: hsl(0, 100%, 40%);">-					+ \
fTime-&gt;Frame().Width() + trayPadding + 2;</span><br><span style="color: hsl(120, \
100%, 40%);">+			if (!fTime-&gt;IsHidden(fTime) &amp;&amp; Bounds().right - \
fTrayPadding - 2</span><br><span style="color: hsl(120, 100%, 40%);">+						- \
fTime-&gt;Frame().Width() - fClockMargin</span><br><span style="color: hsl(120, 100%, \
40%);">+					&lt; fRightBottomReplicant.right + fClockMargin) {</span><br><span \
style="color: hsl(120, 100%, 40%);">+				width = fRightBottomReplicant.right + \
fClockMargin</span><br><span style="color: hsl(120, 100%, 40%);">+					+ \
fTime-&gt;Frame().Width() + fTrayPadding + 2;</span><br><span> 			} \
else</span><br><span> 				width = fRightBottomReplicant.right + sIconGap + \
kGutter;</span><br><span> 		}</span><br><span>@@ -1179,8 +1182,7 @@</span><br><span> \
BPoint</span><br><span> TReplicantTray::LocationForReplicant(int32 index, float \
replicantWidth)</span><br><span> {</span><br><span style="color: hsl(0, 100%, \
40%);">-	const float trayPadding = \
ceilf(be_control_look-&gt;ComposeSpacing(kTrayPadding) / 2);</span><br><span \
style="color: hsl(0, 100%, 40%);">-	BPoint loc(trayPadding, 0);</span><br><span \
style="color: hsl(120, 100%, 40%);">+	BPoint loc(fTrayPadding, 0);</span><br><span> \
if (fBarView-&gt;Vertical() || fBarView-&gt;MiniState()) {</span><br><span> 		if \
(fBarView-&gt;Vertical() &amp;&amp; !fBarView-&gt;Left())</span><br><span> 			loc.x \
+= gDragWidth; // move past dragger on left</span><br><span>@@ -1203,7 +1205,7 \
@@</span><br><span> 	}</span><br><span> </span><br><span> 	// move clock vertically \
centered in first row next to replicants</span><br><span style="color: hsl(0, 100%, \
40%);">-	fTime-&gt;MoveTo(Bounds().right - fTime-&gt;Bounds().Width() - \
trayPadding,</span><br><span style="color: hsl(120, 100%, \
40%);">+	fTime-&gt;MoveTo(Bounds().right - fTime-&gt;Bounds().Width() - \
fTrayPadding,</span><br><span> 		loc.y + floorf((fMaxReplicantHeight - \
fTime-&gt;fHeight) / 2));</span><br><span> </span><br><span> 	if \
(fBarView-&gt;Vertical()) {</span><br><span>@@ -1211,10 +1213,10 @@</span><br><span> \
for (int32 row = 0; ; loc.y += fMaxReplicantHeight + sIconGap, row++) \
{</span><br><span> 			// determine free space in this row</span><br><span> 			BRect \
rowRect(loc.x, loc.y,</span><br><span style="color: hsl(0, 100%, 40%);">-				loc.x + \
Bounds().Width() - trayPadding,</span><br><span style="color: hsl(120, 100%, \
40%);">+				loc.x + Bounds().Width() - fTrayPadding,</span><br><span> 				loc.y + \
fMaxReplicantHeight);</span><br><span> 			if (row == 0 &amp;&amp; \
!fTime-&gt;IsHidden(fTime))</span><br><span style="color: hsl(0, 100%, \
40%);">-				rowRect.right -= kClockMargin + \
fTime-&gt;Frame().Width();</span><br><span style="color: hsl(120, 100%, \
40%);">+				rowRect.right -= fClockMargin + \
fTime-&gt;Frame().Width();</span><br><span> </span><br><span> 			BRect replicantRect \
= rowRect;</span><br><span> 			for (int32 i = 0; i &lt; index; i++) \
{</span><br><span>diff --git a/src/apps/deskbar/StatusView.h \
b/src/apps/deskbar/StatusView.h</span><br><span>index fd8c8f5..d0bfe2c \
100644</span><br><span>--- a/src/apps/deskbar/StatusView.h</span><br><span>+++ \
b/src/apps/deskbar/StatusView.h</span><br><span>@@ -52,7 +52,6 @@</span><br><span> \
const int32 kMinimumReplicantCount = 6;</span><br><span> const int32 kGutter = \
1;</span><br><span> const int32 kTrayPadding = \
B_USE_HALF_ITEM_SPACING;</span><br><span style="color: hsl(0, 100%, 40%);">-const \
int32 kClockMargin = 12;</span><br><span> </span><br><span> extern float \
sIconGap;</span><br><span> extern float gDragWidth, \
gDragRegionWidth;</span><br><span>@@ -170,6 +169,8 @@</span><br><span> \
float				fMinTrayHeight;</span><br><span> </span><br><span> \
float				fMinimumTrayWidth;</span><br><span style="color: hsl(120, 100%, \
40%);">+				float				fTrayPadding;</span><br><span style="color: hsl(120, 100%, \
40%);">+				float				fClockMargin;</span><br><span> </span><br><span> \
bool				fAlignmentSupport;</span><br><span> #ifdef \
DB_ADDONS</span><br><span></span><br></pre><p>To view, visit <a \
href="https://review.haiku-os.org/c/haiku/+/5610">change 5610</a>. To unsubscribe, or \
for help writing mail filters, visit <a \
href="https://review.haiku-os.org/settings">settings</a>.</p><div itemscope \
itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" \
itemtype="http://schema.org/ViewAction"><link itemprop="url" \
href="https://review.haiku-os.org/c/haiku/+/5610"/><meta itemprop="name" \
content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: haiku </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: \
I3e767fdc8d2775e5f0dfff3275aeb0b686a8ea76 </div> <div style="display:none"> \
Gerrit-Change-Number: 5610 </div> <div style="display:none"> Gerrit-PatchSet: 1 \
</div> <div style="display:none"> Gerrit-Owner: John Scipione \
&lt;jscipione@gmail.com&gt; </div> <div style="display:none"> Gerrit-MessageType: \
newchange </div>



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic