Commit Graph
100 Commits
Author SHA1 Message Date
Augustin Cavalier c1353b749c BControlLook: Fix corner spacing calculation.
Fixes #18046. Ideally app_server would just use
this to pick the size of corners...

Change-Id: I2dc243d55321b3fc0fa90faf415d9b04abf9c376
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5780
Reviewed-by: waddlesplash <[email protected]>
2022-11-08 18:09:48 +00:00
Augustin Cavalier 233c0ffd47 docs/develop: Add missed item to the branch steps and combine the last two. 2022-11-08 12:45:03 -05:00
Augustin Cavalier 9fc6234686 Versioning: Add BETA_4 and PRE_BETA_5 version constants.
PRE_BETA_5 is now the default in master.
2022-11-03 20:30:10 -04:00
Augustin Cavalier b966f172df package_infos: "haiku" does not depend on "haiku_datatranslators."
This was initially added so users on the nightlies would not wind up
with no translators installed on updates. It has been long enough
that we can probably remove this in master. (I will re-add it
in the beta4 branch for users upgrading directly from beta3 -> beta4.)
2022-11-03 20:27:18 -04:00
Augustin Cavalier 16081dd2fa libshared: Enable hidden visibility.
This breaks ABI as we forgot to do this originally and a lot of apps
implicitly use symbols from libbe or elsewhere that are imported from
libshared, but we are about to branch beta4, so now is the time to
change this.

Fixes #17256.
2022-11-03 20:24:24 -04:00
Augustin Cavalier 0c6a5835f9 ramfs: Set vnode cache in ramfs_create instead of ramfs_open.
This way it will always be set even on the first creation,
and avoids unnecessary sets. Fixes mmap() of newly created files.
2022-11-03 20:12:50 -04:00
Augustin Cavalier 8672fc2739 InterfaceDefs: Adjust and introduce new spacing/insets constants.
* Nothing in the tree and few things outside it used BIG_{SPACING|INSETS};
   it seems a value of 15px (at default font size) is not that useful.
   There are, however, a lot of things around the tree that use multiples
   of 20px. So, make BIG be that, with the intent to replace those
   with BIG directly.

 * Introduce CORNER_{SPACING|INSETS}. There are a lot of applications
   (e.g. Tracker, Terminal, Debugger etc.) which use scroll bar width/height
   to metrically align controls with the window frame or with some other
   control which contains scroll bars. Rather than have to invoke
   BScrollBar or BControlLook directly to get the value, we should just
   derive the size of scrollbars from a spacing constant instead
   and get rid of the custom function. (For now it is just replaced.)
   This reuses the old values for BIG, as it is equal to 14px at default.

 * Introduce BORDER_{SPACING|INSETS}. This is equal to the typical border
   size of 1px at default font size (or lower) and uses floor() instead of
   ciel() to compute what the size should be (i.e. it will remain 1px
   at 150%/18pt and only go up at 200%/24pt.) This will allow a lot of
   the hardcoded border sizes around the tree and elsewhere to use
   ComposeSpacing() instead.

Change-Id: Iaea3fa30364859888e816a9d61ac156268d70758
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5702
Reviewed-by: waddlesplash <[email protected]>
Reviewed-by: nephele <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2022-11-02 02:23:32 +00:00
Augustin Cavalier 20136c336c docs/develop: Linkify version-change hrev. 2022-10-31 23:29:20 -04:00
Augustin Cavalier 1284e971e2 kernel/vfs: Fix locking behavior in acquire_vnode and add a missing ASSERT.
vnode deletion is prevent either by owning a reference to the node,
or by being at least a reader of the vnodes lock. Thus, in acquire_vnode,
we have to inc_ref_count while still holding the lock in order to prevent
a race.

This function is used so rarely and quite deep inside FS drivers that
I'm  not sure this race would ever have been a problem. Nonetheless
the old code was incorrect.
2022-10-29 13:42:19 -04:00
Augustin Cavalier b4b1561b6a kernel/vfs: Do not wait for removed vnodes to become unbusy.
Most of the time, that is harmless and will just cause a slight delay
before the vnode is removed and we return NULL instead of finding it.
However, in rare circumstances involving renames, we can wind up in
a deadlock with the thread that is trying to remove the vnode, and
would have to wait all the way to the timeout (a full ten seconds!).

The only vnodes not about to disappear from the table that can be both
"removed" and "busy" seem to be special vnodes like pipes, which will
be in an "unpublished" state while they are initially "busy" which we
can check for, in case something wants to wait for them.

The "dirconc" test readily triggered a pathological case of this behavior.
Before this commit, it ran for over 15 minutes before I killed it (and
it was not close to done at that point, either.) After this change,
it completes successfully in around 3 minutes or so on my test VM.

Thanks to [email protected] for pointing out this testcase and its
misbehavior on Haiku!

Change-Id: Id1accf0aaf0724e1aec927a437d3a2ac1596cd98
2022-10-29 13:42:19 -04:00
Augustin Cavalier 6610656e8f Network preferences: Add type specification to appease GCC2. 2022-10-28 12:52:50 -04:00
Augustin Cavalier 75b68ba59d NTFS: Account for null-termination of strings when checking buffer sizes.
May fix #18021.
2022-10-28 12:26:35 -04:00
Augustin Cavalier bfd87e4cc1 posix_spawn: Add POSIX_SPAWN_SETSID to the list of allowed flags. 2022-10-28 11:54:21 -04:00
Augustin Cavalier b94de4c9bd BNetworkDevice: Restore old buffer size.
May help with #18020.
2022-10-27 21:49:58 -04:00
Augustin Cavalier b2c77ad27a Network: Add a BNetworkDevice::GetNetworks() method and use it in the GUI.
The GetNextNetwork() method is really inefficient: it fetches all the
networks at once from the kernel every single time and then winds
up returning only one of them. In parts of the GUI that iterate over
all networks more than once per refresh (sometimes within a loop, even!)
this was often a noticeable lag on the GUI, especially with OpenBSD
drivers which have extra overhead to do struct translation in the
ioctl handler.

Now, we have a way to fetch all scan results at once and just iterate
over them as many times as we need, and this is what NetworkStatus
and Network preferences now do, saving lots of time and effort.
2022-10-25 23:34:42 -04:00
Augustin Cavalier 65c155bede BNetworkAddress: Make the first SetToLinkLevel() take a const pointer.
Technically breaks ABI. However to the best of my knowledge,
nothing uses this method outside of the tree.
2022-10-25 23:34:42 -04:00
Augustin Cavalier 5de85b8f98 docs: Remove the User Guide and Welcome pages.
These were not maintained here, merely mirrored from the Userguide Translator,
and rather infrequently at that. But as they were built with Haiku,
that meant new versions of these packages were built every hrev,
which meant a lot of wasted space and bandwith for updates.

Now there is a separate "userguide" repository which will collect the
files exported from the Translator, and recipes at HaikuPorts to build
the packages, instead, so we can delete these files from this repo.
2022-10-25 18:38:28 -04:00
Augustin Cavalier 8e34bbe754 Remove build logic for creating the userguide and welcome packages.
They are now created from a separate repository and via HaikuPorts.
Since the HaikuPorts packages are not yet in the BuildPackageRepository,
the actual section that adds the packages is commented out (but it only
runs for release-* targets anyway.)

The "welcome", "userguide", and "quicktour" scripts, which are symlinked
from the desktop in release builds, are added to the Haiku package's
"regular" profile instead (they do not actually require the other packages
to be installed but will detect if they are not and launch the online
versions instead.)
2022-10-25 18:38:07 -04:00
Augustin Cavalier 93e536ab5d registrar: Properly clear out icons and resize when text changes.
May help with #18006.
2022-10-24 22:43:27 -04:00
Augustin Cavalier 781db1b43f BAlert: Invalidate layout if the icon is unset. 2022-10-24 22:43:00 -04:00
Augustin Cavalier 56761ebfeb app_server: Granularize whether font settings were loaded in DesktopSettings.
As per axeld's review.

Change-Id: Idd817156d53ebf535f162285bfd08f0566ac3901
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5755
Reviewed-by: waddlesplash <[email protected]>
Reviewed-by: Axel Dörfler <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2022-10-23 23:53:34 +00:00
Augustin Cavalier a180a40b63 app_server: Only increase default font sizes if settings were not loaded.
Thanks to axeld for the review.
2022-10-19 19:37:29 -04:00
Augustin Cavalier e1f6b2fbe7 nvme_disk: Add a polling fallback mode.
Before implementing interrupts, all I/O was polled.
Now we only use polling as fallback if interrupts mode
does not work for some reason.

Should fix #17484.
2022-10-19 18:57:58 -04:00
Augustin Cavalier f1c9e12aa3 NTFS: Truncated pathnames should be an error, not a warning.
May help with #17964.
2022-10-19 15:36:52 -04:00
Augustin Cavalier 5bb671cc0e MediaPlayer: Fix a hard-coded font size. 2022-10-19 14:25:29 -04:00
Augustin Cavalier 46a2beb0f8 HaikuDepot: Refactor usage conditions windows.
* Set only a minimum width and then resize to preferred on window.
 * Set a minimum height for the text view itself.
 * Use the new TextView controls instead of the old BTextView.
 * Adjust other size constraints as needed.

Fixes #17998.
2022-10-19 14:25:09 -04:00
Augustin Cavalier 6a4c3457cf HaikuDepot: Adjust some hard-coded font sizes. 2022-10-19 14:23:32 -04:00
Augustin Cavalier 9004d85ec5 app_server: Automatically pick a larger font size on HiDPI screens.
Ideally DesktopSettings would take care of this. However, we cannot
put this logic into its _SetDefaults, because that runs before
we actually set (or confirm) a display mode, and so attempts to fetch
the display mode in that function will fail.

(FontManager initializes even earlier and thus also is an unsuitable
place for this logic.)

At present, it merely uses a 2x larger font size at resolutions >"4K"
and a 1.5x larger font size at resolutions between 1080p and 4K.
Further adjustments can be made as necessary later on.
2022-09-30 20:57:53 -04:00
Augustin Cavalier 0716e5094e app_server: Print specific error when failing to initialize virtual screens. 2022-09-30 20:55:29 -04:00
Augustin Cavalier 872ce8a1b4 app_server: Clean up default font size constants. 2022-09-30 20:53:44 -04:00
Augustin Cavalier cde5ffa802 Tracker: Enable thumbnail generation by default.
Now that all known crashes and other instabilities relating to it
seem to be solved. Fixes #17726.
2022-09-30 05:05:40 -04:00
Augustin Cavalier 27846b5a81 Tracker: Use default menu font instead of plain font for context menus.
This code has been this way since the initial import to OpenTracker,
so why or how it wound up in here is a mystery which may remain unsolved.

Removing it does not seem to cause any problems, so let's do that.
Fixes #16625.
2022-09-30 05:05:33 -04:00
Augustin Cavalier 4198265fa0 build: Optimize for size in the bootloaders, not for speed.
This saves almost 100K in size:

BIOS: 367K -> 271K
EFI: 541K -> 454K

Fixes #17961.
2022-09-30 14:49:24 -04:00
Augustin Cavalier 86615b82db freebsd_network: Remove unneeded functions from if_var.h.
FreeBSD puts these in ifq.h (which we do not have), and no driver we
have actually uses them.

We can re-add the newer versions of them if we ever import a driver
which does.
2022-09-30 14:02:30 -04:00
Augustin Cavalier 5b51027ca5 openbsd_network: Add a real implementation of MCLGETL.
The old alias had a number of shortcomings which made it not match
OpenBSD and thus special-casing had to be used in drivers. The new
version should match OpenBSD's semantics precisely.
2022-09-29 23:05:49 -04:00
Augustin Cavalier 5613c37e66 BootRules: Add -fvisibility=hidden to BootStaticLibrary as well.
Does not seem to affect the size of the bios_ia32 loader,
but takes the x86_64 EFI loader down from 678k -> 554k.
2022-09-29 10:09:00 -04:00
Augustin Cavalier b4a9a0c94f WebPositive: Actually load "zoom text only" setting and default it to false.
All other browsers have it default-off (if there is even a way to
enable it.) This makes it much easier to use Web+ on HiDPI, though
ideally it would automatically set a zoom factor on startup
correspondent to the system font size.
2022-09-28 22:30:51 -04:00
Augustin Cavalier 78ee50a272 InterfaceDefs: Specify INSETS constants in terms of SPACING constants.
They already used the same numeric values. Also reorder for consistency.
No functional change.
2022-09-28 19:47:38 -04:00
Augustin Cavalier 59d0a83200 Remove "font size / 12" calculations from various places.
Use spacing values from BControlLook instead.
2022-09-28 19:36:59 -04:00
Augustin Cavalier 396ffed536 ActivityMonitor: Remove non-Haiku code, use more spacing constants. 2022-09-28 19:33:51 -04:00
Augustin Cavalier caf3ea9044 Remove unnecessary SetExplicitPreferredSize from translators using layouts. 2022-09-28 18:29:33 -04:00
Augustin Cavalier 6191e1b167 BootManager: Use BControlLook::ComposeIconSize().
Fixes #17909.
2022-09-28 17:55:10 -04:00
Augustin Cavalier 2ac78cc4d6 BootManager: Fix minimum window size assignment. 2022-09-28 17:54:54 -04:00
Augustin Cavalier d3da4f984e FileTypes: Refactor icon handling to use BControlLook::ComposeIconSize().
Fixes #17907.
2022-09-28 17:41:27 -04:00
Augustin Cavalier b25b415fb9 FileTypes: Fix file mode. 2022-09-28 17:40:44 -04:00
Augustin Cavalier 00c4575238 Debugger: Use StringWidth()+DefaultLabelSpacing() to determine column widths.
Much less cut off text in the default layout.
2022-09-28 17:13:07 -04:00
Augustin Cavalier 2bfacb1a20 Debugger: Adjust default weights of splitters in the main window.
Much more logical proportioning.
2022-09-28 17:12:33 -04:00
Augustin Cavalier 3c1cf7b294 NTFS: Use the new next_dirent utility function just like BFS. 2022-09-28 16:30:55 -04:00
Augustin Cavalier e285b3071d Introduce a utility function for moving to the next dirent in read_dir.
This takes care of making sure the dirent buffer is properly aligned,
which it needs to be on some platforms (SPARC, ARM, etc.)

Change-Id: I9a6352b1e654c090a200770d51f96511ee024a99
2022-09-28 16:30:00 -04:00
Augustin Cavalier e3197646ea kernel/lib: Fix reference to dirent.c after prior change. 2022-09-27 20:33:14 -04:00
Augustin Cavalier a53cd0082a FirstBootPrompt: Appease GCC2. 2022-09-27 20:14:21 -04:00
Augustin Cavalier ba59081e52 libroot: Implement readdir_r in terms of readdir.
Originally _r mostly avoided the buffers in the DIR* and invoked
_kern_read_dir correctly, however that did not interact properly
with the non-reentrant functions and so this method was reworked
some years ago to check entries_left and copy results out of the buffer.

However, that was done improperly; it just copied the structs,
which as they have a VLA at the end, meant the name entry was not
copied at all if an entry was read out of the buffer.

Since we have to read entries out of the buffer anyway,
just invoke the real readdir() and then memcpy what it returns.
Use an ErrnoMaintainer to prevent errno from being affected.
2022-09-27 20:11:54 -04:00
Augustin Cavalier eafa0e1f49 libroot: Move dirent.c to C++. 2022-09-27 20:11:54 -04:00
Augustin Cavalier a4d27987d2 KernelRules: Add the same -fvisibility=hidden logic in KernelStaticLibrary...
...as was already added to the regular (userland) StaticLibrary some
time ago. Shaves off double-digit percentages of the file size of
e.g. FreeBSD and OpenBSD network drivers.
2022-09-27 19:46:52 -04:00
Augustin Cavalier 3f3b84894b idualwifi & iaxwifi: Merge changes from OpenBSD. 2022-09-27 19:34:43 -04:00
Augustin Cavalier d052479f68 Input preferences: Use BControlLook::ComposeIconSize().
And do some other cleanup while at it.

Fixes #17919.
2022-09-27 18:57:31 -04:00
Augustin Cavalier 6a287ced0b Keymap: Use BControlLook::ComposeIconSize for the conflict view.
Fixes #17911.
2022-09-27 18:38:49 -04:00
Augustin Cavalier 2d9b9e209b IconView: Scale icon_size constants.
Part of #17914. Also affects DataTranslators.
2022-09-27 18:32:45 -04:00
Augustin Cavalier 1272bd2a7f FirstBootPrompt: Scale the button icons.
Part of #17914.
2022-09-27 18:30:59 -04:00
Augustin Cavalier 1b72036bef libroot: Replace scandir, alphasort implementations with musl's.
Notably alphasort actually uses strcoll not strcmp, so this does
affect behavior. scandir should be the same.
2022-09-27 17:28:46 -04:00
Augustin Cavalier d2d46658d7 libroot: Move threads.c to libstdthread folder and rename to match FreeBSD.
It was introduced long ago, now that we have the same folder as FreeBSD
does we should put it in the same place.

Synchronize with FreeBSD while at it.
2022-09-27 17:24:57 -04:00
Augustin Cavalier 86da03857d Appearance: Use a dynamic instead of fixed size for the text preview area.
Fixes #17872.
2022-09-09 17:37:42 -04:00
Augustin Cavalier 66af664352 Drop the unused TTY bus_manager.
Just stubs and not actually used.
We have a TTY module (and driver) which supplant it.
2022-09-09 17:14:12 -04:00
Augustin Cavalier 177c832dab Add missing NULL checks to USB drivers.
Should fix #17276, #17846.
2022-09-09 17:07:09 -04:00
Augustin Cavalier 6021345a33 HaikuControlLook: Correct drawing of border in menu fields.
Fixes #17903.
2022-09-09 16:49:07 -04:00
Augustin Cavalier e8d394bd51 Tracker: Invoke Sync() during the copy operation.
This way when the copy dialog closes, the file will actually
have completed copying to disk.

Fixes #17651.
2022-09-09 16:21:03 -04:00
Augustin Cavalier 4424256ac4 Tracker: Fix hiding/showing the draggable folder icon on navigation.
Fixes the icon disappearing when you navigated to or from the root.
2022-09-09 16:14:09 -04:00
Augustin Cavalier a0b9c84fe0 Tracker: Fix draggable folder icon size computation.
Should fix #17906, but I could not reproduce it, so I was unable
to confirm this fixes the problem.
2022-09-09 16:06:32 -04:00
Augustin Cavalier 95ca8eefea Tracker: Privatize most members of BPoseView.
Greatly reduces what is available to inherited classes.
No functional change intended.
2022-09-09 15:37:29 -04:00
Augustin Cavalier f61067a023 Tracker: Reset title view state after making column list empty.
Fixes #17899.
2022-09-09 15:28:43 -04:00
Augustin Cavalier 9f8c5aabe3 Tracker: Correct size of Name column in Query view.
Fixes #17940.
2022-09-09 14:49:22 -04:00
waddlesplash 242fec2332 Revert "bfs: fix alignment of struct dirent"
This reverts commit 7fe1087ed4.

Reason for revert: could cause underflow

Change-Id: Ib2263f3ab17ae377b0565d020410bae616385cfe
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5577
Reviewed-by: waddlesplash <[email protected]>
2022-09-08 18:08:03 +00:00
Augustin Cavalier aabcd6b399 runtime_loader: Correct destruction of old TLS DSO blocks.
Instead of checking against the current block's DSO generation,
the DSO that the operator[] was invoked on was being checked instead.
This could lead to spurious deletions of TLS data in the case where
the generation count changed between accesses of the TLS variable
(currently that only happens when modules are unloaded.)

May fix #17896, but I did not have a reliable way to reproduce that.

Change-Id: Ie1ee51c1fbbe638918fd5a010047a2b56d481f2b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5604
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
Reviewed-by: Jérôme Duval <[email protected]>
2022-09-07 21:56:11 +00:00
Augustin Cavalier 388f8d4c0f TeamMonitor: Appease GCC2. 2022-09-01 00:26:33 -04:00
Augustin Cavalier 054c1b2706 Tracker: Overhaul list column size initialization and storage.
Mostly for HiDPI, but this also cleans up the code in general, too.

 * Apply a scale-factor when loading and serializing column size/offsets
   in ViewState.

 * Do not hard-code offset values for default columns but let
   BPoseView::AddColumn() compute them manually instead.

 * Change BPoseView::AddColumn() to support being called during
   early initialization and utilize it in SetUpDefaultColumns...().

 * When adding deserialized columns to a BPoseView, always realign
   the offsets instead of just doing sanity checking. The rationale here
   is that the first time the TitleView is touched, it will do this
   anyway, and cause "snapping" or drawing glitches if the alignment
   is not as expected.

   If it was actually somehow an intended feature that non-adjacent
   columns can be displayed, changes are needed in TitleView and PoseView
   to properly support this without triggering redraw glitches.

I still saw some very slight redraw glitches (e.g. column contents
shifting by 1px) at higher font sizes; however, Tracker before this
commit had far more of those glitches (this commit seems to resolve
a number of them.)

Tested with 12pt, 18pt, and 20pt font sizes; this seems to work
pretty well. But if you see strange behavior or more redraw glitches
than there were previously, please do file a ticket.
2022-08-31 23:59:00 -04:00
Augustin Cavalier 509c951d85 Tracker: Scale all icon sizes, not just the list icon size.
ViewState now always holds the unscaled icon size and PoseView
computes and caches the actual display icon size.

Anyone who used Tracker on HiDPI before this commit will likely need
to reduce the icon size on their desktops and any open windows.
2022-08-31 22:48:42 -04:00
Augustin Cavalier 33cf9d22ff ProcessController: Utilize ComposeIconSize and refactor icon menu items.
* All MenuItem variants which draw icons now derive from IconMenuItem
   and use its functions to draw and otherwise manage their icons. This
   resolves a number of TODOs and reduces code duplication.

 * Use BControlLook::ComposeIconSize() to compose icon sizes throughout.

 * Remove unused methods from IconMenuItem.
2022-08-31 17:07:49 -04:00
Augustin Cavalier 72e4928f8a Tracker & desklink: Pass -1 to GetTrackerIcon for sizing.
It can just deduce the size from the passed BBitmap if we do this.
Simplifies the code somewhat.
2022-08-31 16:21:53 -04:00
Augustin Cavalier e6ab6daf98 TeamMonitor: Use BControlLook::ComposeIconSize.
And DefaultLabelSpacing, too. Fixes appearance on HiDPI.
2022-08-31 16:17:19 -04:00
Augustin Cavalier 1f0c87711b shared/IconView: Add a variant of SetIcon which directly accepts a BBitmap. 2022-08-31 16:16:43 -04:00
Augustin Cavalier cd3045596e BColumnListView: Optimize check for whether the focus row has moved.
If the new row is not in an open branch, it cannot possibly have
caused the focused row to have moved, and so we need neither check
nor perform an invalidation if that is the case.

This code has been this way since it was originally imported into
Vision's (!) CVS repository in 2001 from some Be sample code area,
and has not been substantially changed since it was imported into
Haiku's repository in 2004.

This saves quite a number of app_server round-trips and redraws
when importing lots of rows to the list, which fixes the other half
of the hang when changing functions in the call stack in Debugger.
2022-08-31 00:13:24 -04:00
Augustin Cavalier 29335bd389 Debugger: Never automatically resize the columns of the ImageFunctions table.
This table will have thousands of items in every branch, most with
extremely long names, so resizing all its columns to the preferred size
takes an unbelievable number of app_server round-trips to measure text.

For modules with any significant usage of C++, there are going to be
functions with names so long that it will make the table quite
unwiedly to work with, anyway, when columns are automatically resized.

This fixes half of the whole-application hang that happens when changing
between functions in the call stack.
2022-08-31 00:08:21 -04:00
Augustin Cavalier 0a48878fba Debugger: Set AUTO_UPDATE_SIZE_LIMITS and adjust default size of Teams window. 2022-08-30 23:00:56 -04:00
Augustin Cavalier 1f34a738be Debugger: Use monospace font in tables that display addresses.
This makes stack traces, registers, variables, etc. so much nicer
and easier to read and work with. Ahh, much better.
2022-08-30 22:43:56 -04:00
Augustin Cavalier 1f72988e61 Debugger: Improve appearance of TeamsWindow insets and spacing.
The buttons are now aligned to the scroll bar and window resize knob,
by using BControlLook::GetScrollBarWidth. (Hmm, perhaps it might make
more sense to just have scrollbar sizes be a kind of insets, which can
be gotten via B_USE_SCROLL_BAR_INSETS, and then drop this extra method
altogether? After all there are a lot of applications which align to
scroll bars...)
2022-08-30 22:28:04 -04:00
Augustin Cavalier af791479cb Debugger: Initial fixes to TeamsListView for HiDPI.
* Use BControlLook::ComposeIconSize.
 * Use LabelSpacing for row heights.
2022-08-30 22:26:32 -04:00
Augustin Cavalier 861282ffa7 BColumnListView: Dynamic scrollbar size support.
Improves appearance on HiDPI.
2022-08-30 22:14:16 -04:00
Augustin Cavalier 90d62fd900 TLS.h: Drop inline assembly from the header.
This was a holdover from BeOS, which did this as inline assembly.
We do not on any platform other than 32-bit x86, and even there
we may have preferred to do things a little differently on non-BeOS
ABIs.

Most things ported from other systems, or even native apps, are going to
use _Thread_local variables anyway, which will bypass this system
altogether.
2022-08-30 00:00:04 -04:00
Augustin Cavalier 3b7f223770 ShowImage: Appease GCC2. 2022-08-29 16:59:37 -04:00
Augustin Cavalier bbee4c3ab6 ShowImage: Do not hardcode the font size of the status view. 2022-08-29 16:10:38 -04:00
Augustin Cavalier 87d8b1776f ShowImage: Use BControlLook::ComposeIconSize.
Also use BBitmap::ImportBits instead of a manual copy, while at it.
2022-08-29 16:08:27 -04:00
Augustin Cavalier fac73debbf Deskbar: Compute basic metrics earlier, in TBarApp::InitSettings().
This way we know the minimum and maximum window width earlier
and consumers of them do not come up with "0" incorrectly.

Fixes #17890.
2022-08-29 15:55:41 -04:00
Augustin Cavalier f34e3931e8 Deskbar: Correct sizing and placement of icons in window menus.
Fixes #17891.
2022-08-29 15:36:48 -04:00
Augustin Cavalier e5f774e848 Tracker: Rework file-panel initialization.
* Get spacing from BControlLook.

 * Initialize and place the buttons before the PoseView,
   so that they can be used to constrain the PoseView's size.

 * Update size limits based on spacing metrics.

Tested against filepanel command, Backgrounds preflet,
and WonderBrush. All seems to still work acceptably, and
now the controls are properly font-size-sensitive.

Fixes #13178.
2022-08-26 23:49:24 -04:00
Augustin Cavalier 34ab706011 StyledEdit: Do not do font->Size() / 12 but rather downscale directly. 2022-08-26 23:01:32 -04:00
Augustin Cavalier e038086025 BButton: Adjust the spacing and minimum values to use LabelSpacing.
Seems to fix the last part of #16180.
2022-08-26 22:29:29 -04:00
Augustin Cavalier d56ff162fb Tracker: Adjust metrics of the CountView.
Should look the same at 12pt font but more consistent at higher
font sizes.
2022-08-26 22:04:50 -04:00
Augustin Cavalier 67ca14e889 registrar: Rewrite shutdown dialog to just use a BAlert.
Now that BAlerts can have custom buttons and change icons during
runtime, we need not maintain a custom "clone" of the BAlert logic
here in the registrar.

While at it, use ComposeIconSize to get larger icons on HiDPI.

This fixes #15704 as BAlerts already use the layout API,
while this logic did not.
2022-08-26 21:27:54 -04:00
Augustin Cavalier f5fcee0157 BAlert documentation: Clarify that SetIcon assumes ownership.
It always did, this documentation was incorrect.
Also, we introduced this method, it wasn't present on R5.
2022-08-26 21:25:23 -04:00
Augustin Cavalier f583d90436 BAlert: Support changing icons while the alert is running.
After all, you can change buttons, text, and the other settings,
so why not support this, too?
2022-08-26 21:24:53 -04:00