[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 \
&& fBarView->Vertical()</span><br><span> && \
(fBarView->ExpandoState() || fBarView->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()->SetPulseRate(1000000);</span><br><span> </span><br><span style="color: \
hsl(120, 100%, 40%);">+ fTrayPadding = \
ceilf(be_control_look->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)->ClockSettings();</span><br><span> \
fTime->SetShowSeconds(clock->showSeconds);</span><br><span> \
fTime->SetShowDayOfWeek(clock->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->ComposeSpacing(kTrayPadding) / 2);</span><br><span \
style="color: hsl(0, 100%, 40%);">- fTime->MoveTo(Bounds().right - \
fTime->Bounds().Width() - trayPadding, 2);</span><br><span style="color: hsl(120, \
100%, 40%);">+ fTime->MoveTo(Bounds().right - fTime->Bounds().Width() - \
fTrayPadding, 2);</span><br><span> // will be moved into place \
later</span><br><span> </span><br><span> if \
(!((TBarApp*)be_app)->Settings()->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->ComposeSpacing(kTrayPadding) / \
2);</span><br><span> </span><br><span> if (fBarView->Vertical()) \
{</span><br><span> width = \
static_cast<TBarApp*>(be_app)->Settings()->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() > \
0) {</span><br><span style="color: hsl(0, 100%, 40%);">- if \
(!fTime->IsHidden(fTime) && Bounds().right - trayPadding - \
2</span><br><span style="color: hsl(0, 100%, 40%);">- - \
fTime->Frame().Width() - kClockMargin</span><br><span style="color: hsl(0, 100%, \
40%);">- < 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->Frame().Width() + trayPadding + 2;</span><br><span style="color: hsl(120, \
100%, 40%);">+ if (!fTime->IsHidden(fTime) && Bounds().right - \
fTrayPadding - 2</span><br><span style="color: hsl(120, 100%, 40%);">+ - \
fTime->Frame().Width() - fClockMargin</span><br><span style="color: hsl(120, 100%, \
40%);">+ < 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->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->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->Vertical() || fBarView->MiniState()) {</span><br><span> if \
(fBarView->Vertical() && !fBarView->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->MoveTo(Bounds().right - fTime->Bounds().Width() - \
trayPadding,</span><br><span style="color: hsl(120, 100%, \
40%);">+ fTime->MoveTo(Bounds().right - fTime->Bounds().Width() - \
fTrayPadding,</span><br><span> loc.y + floorf((fMaxReplicantHeight - \
fTime->fHeight) / 2));</span><br><span> </span><br><span> if \
(fBarView->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 && \
!fTime->IsHidden(fTime))</span><br><span style="color: hsl(0, 100%, \
40%);">- rowRect.right -= kClockMargin + \
fTime->Frame().Width();</span><br><span style="color: hsl(120, 100%, \
40%);">+ rowRect.right -= fClockMargin + \
fTime->Frame().Width();</span><br><span> </span><br><span> BRect replicantRect \
= rowRect;</span><br><span> for (int32 i = 0; i < 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 \
<jscipione@gmail.com> </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