Create and use BLayoutUtils::AlignOnRect() to position the button label
in BControlLook::DrawLabel().
AlignOnRect(), unlike AlignInFrame(), provides the possibility to return
a rectangle with dimensions greater than the available size.
Add some comments above the methods in LayoutUtils that indicate such.
Also update copyright headers in LayoutUtils and ControlLook
* Uses the same icon as HTML. Anyone wants to design something better?
* Also add support to Web+ (not actually supported yet, but the next
version will).
These files are useful as self-contained documents (application
offline documentation), and for saving web pages in a single file.
* In a first round, icons are trying to be loaded
from the icon cache.
* In a second round, the cached icons are updated from the
server, unless the icons files have been modified within
the last hour. The web-app does support headers for checking
if the resource has been modified since a certain date, however,
with hvif being so small and the time it takes to connect to the
server per individual icon being so relatively long, it doesn't
seem worth it just yet to optimize for not actually getting the
icon data in response.
* These classes were moved from Media Server, making the use of ports
and messages to communicate with the app irrelevant.
* Split in a separate commit to help git keep track of moved files.
Fixes#4893.
The media server tried to use node monitoring to dynamically add and
remove plug-ins, but it isn't that useful:
* When a plug-in is added, applications would have to query the media
server to get an up to date list of available formats. For example
MediaConvert populates its format menus on startup.
* When removing a plugin, if an app already had it loaded, there is not
much that can be done to keep it working.
* The list of plugins was not sorted by directories (user vs system
add-ons), so the directories were re-scanned to make sure user add-ons
were returned first, rendering the node monitoring less interesting.
Now, the format handling is done by each application. The node
monitoring is removed, instead the apps will scan the plugin directory
when first using the media kit classes. Restarting the application is
needed to update the media formats list.
This reverts a portion of hrev46580 concerning placement of a label on a button.
The label was draw too low on the button in some cases, notably in Keymap.
Restoring the old code for the icon-less case fixes the problem.
There still may be a problem drawing labels on buttons with icons, but, the code
should behave the same as it did in hrev46580 for that case, which is when
buttons with icons was introduced.
* Add button is disabled initially (as the server name is blank)
* Use B_FAILURE_COLOR when server name is invalid instead of hardcoding red
* Some code refactoring
* Some style fixes
* Replace code to find the plug-ins with the new APIs.
* Prepare for hybrid-aware code (but we need to use the app
architecture, not the media_server one)
These are used when an app uses BMediaFile/BMediaTrack, which leads to
the plug-ins being instanciated on the application side.
* Fixes one more part of #10049 (media add-ons are still missing).
* Will probably not solve any real-world issue because of #4893.
* With the muxer & demuxer tables merged in hrev47063, the
list of output formats included media file formats that
weren't flagged as writable
Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
46b39e8378 contained a change to the
rounding for non-subpixel-precise drawing. This changes it back
from using round() to casting to int32. This also reverts a change
to StrokeLine() which meant that lines on integer pixels appeared
at the same location regardless of using B_SUBPIXEL_PRECISE or not.
On further thought, this doesn't make any sense, since it means
to treat the meaning of coordinates different for stroking and
filling. This fixes WonderBrush's brush tip preview, but breaks
Gobe Productive's caret rendering for zooms smaller than 150%.
The change to the rounding fixes#10690.
Interestingly, it only complained about some of them. Changing them all
to %define though, as equ means it should try to evaluate it once, which
of course it can't really if those are ebp+CONSTANT.
Didn't catch those since I wasn't building gcc2h.
Thanks to jessicah for reporting and testing the fix!
* Transformed ConnectionTest into WebAppInterface
* Added methods to Model to trigger the population of all packages
with additional information that is needed in the list view.
* This launches a thread which tries to retrieve icons for all known
packages from depot.haiku-os.org. This is uncached and very slow. I
guess it could even be fast enough with a change to the protocol where
icons are not retrieved one at a time.
* The media_file_format struct has B_READABLE and B_WRITABLE flags,
allowing us to tell which formats we support decoding and encoding
* This allows application to query for the supported decoding formats.
* Also adjust some of the MIME types to match what's actually used (eg.
in HTML5 audio).
This makes html5test.com detect which formats we declare we can decode.
BListView::RemoveItem() doesn't delete the item, it just removes it
from the list. We have to delete the item to free the memory it
consumes ourselves.
Application "Time" crashes when you push "Remove" button without any
selection on list of network time servers.
Fixes#10716
Please use git format-patch to create your patches in the future so that
the author information is preserved.
Signed-off-by: John Scipione <jscipione@gmail.com>