Commit Graph

522 Commits

Author SHA1 Message Date
Adrien Destugues
f7362b6fd0 BFileGameSound docs: Fix typo 2020-07-07 19:20:48 +02:00
Adrien Destugues
e4734ba710 BFileGameSound: add documentation for BDataIO based constructor. 2020-07-07 18:12:35 +02:00
Andrew Lindesay
9295c1f645 HaikuDepot: Url -> Identifier
This change will rename the confusing "url" within
HaikuDepot to be "identifier" in line with
corresponding changes in pkg kit and HDS.  Also at
the same time support is introduced for HDS
repos' meta-data to artificially match against
multiple repos; as requested for the future R1B3
release process.  Some tidy-ups and extensions have
been made to the JSON schema-to-model and the
schema-to-parser scripts.

Change-Id: I402e7d610986039f58d72028bda7de977e9115e2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2986
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-07-05 09:41:54 +00:00
Kacper Kasper
97bd6fe8d4 app_server: Implement more composition modes
* Use agg::comp_op classes to blend pixels.
* Subpixel path not implemented.
* Needed by WebKit.
* Implements #10274.

Change-Id: I07b0002196fd0a05fc100bd9f6d703c33cadc85b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2932
Reviewed-by: X512 <danger_mail@list.ru>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-06-29 14:07:42 +00:00
Leorize
bbc0611099 docs: Add docs for BUrlProtocolAsynchronousListener
Change-Id: Ib9df07d42d0153a7e0135acae85c00f3a1e6bd93
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2930
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-06-20 18:13:33 +00:00
Leorize
b927cf6822 docs: Add documentation for BUrlProtocolListener
Change-Id: I6fb6092d31e9ff94a1c9466240b375b9b88f2d8f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2929
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-06-20 18:13:33 +00:00
Leorize
fcf08bbd68 docs: Add documentation for BUrlProtocolRoster
Change-Id: Id4bc0809c970ea14f814820b54e52073e3396502
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2928
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-06-20 18:13:33 +00:00
CruxBox
bb6b48a9c3 FS Interface Docs: Made read_dir description clear
Small change in the docs to make the explanation of read_dir
functionality a little more clear.

Change-Id: I202eb0f70b38c78962ad9ca1d267995977c04951
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2900
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>
2020-06-11 10:39:35 +00:00
X512
db3a94141a SeparatorItem: support horizontal layout
This is required for BMenuBar based toolbars.

Fixes #15785.

Change-Id: I8d108694b481e408e5c56e23a697c8e7829343dc
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2316
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-05-10 15:45:27 +00:00
Kyle Ambroff-Kao
e1b7c1c7ac storage/SymLink: Fix Be API regression in ReadLink
After this patch, "UnitTester BSymLink" passes.

BSymLink::ReadLink() in BeOS would always return the length of the
link unless an error occurred. Before this patch, Haiku instead seemed
to emulate posix readlink() behavior, returning the number of bytes
copied into the output buffer.

BeOS also did not guarantee that the string written into the output
buffer is NULL terminated if the output buffer cannot contain the
entire link contents, but the Haiku implementation does since it is is
a basic safety issue.

This patch fixes this and updates the Haiku API docs to describe the
behavior explicitly.

Fixing this required changing behavior in bfs_read_link, which
required changes in many more places.

docs/user/storage/SymLink.dox:
src/kits/storage/SymLink.cpp:
* Don't return B_BUFFER_OVERFLOW if the provided buffer is not large
  enough to hold the link contents.
* Update documentation to clearly describe behavior.

src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp:
* Change bfs_read_link() to always return the link length. This is
  called by common_read_link in the VFS, which is called by
  _kern_read_link().

src/add-ons/kernel/file_systems/btrfs/kernel_interface.cpp:
src/add-ons/kernel/file_systems/exfat/kernel_interface.cpp:
src/add-ons/kernel/file_systems/ext2/kernel_interface.cpp:
src/add-ons/kernel/file_systems/iso9660/kernel_interface.cpp:
src/add-ons/kernel/file_systems/netfs/client/netfs.cpp:
src/add-ons/kernel/file_systems/nfs/nfs_add_on.c:
src/add-ons/kernel/file_systems/ramfs/kernel_interface.cpp:
src/add-ons/kernel/file_systems/reiserfs/Iterators.cpp:
src/add-ons/kernel/file_systems/reiserfs/Iterators.h:
src/add-ons/kernel/file_systems/reiserfs/Volume.cpp:
src/add-ons/kernel/file_systems/reiserfs/Volume.h:
* Update the implementation of read_link for these filesystems. Some
  of them were incorrect, and some had just copied the posix behavior of
  bfs from before this patch.
* Use user_memcpy in ext2_read_link()
* Use user_memcpy in nfs fs_read_link()
* Use user_memcpy in reiserfs StreamReader::_ReadIndirectItem and
  StreamReader::_ReadDirectItem
* Remove unused method Volume::ReadObject in reiserfs.

src/add-ons/kernel/file_systems/packagefs/nodes/UnpackingLeafNode.cpp:
src/add-ons/kernel/file_systems/packagefs/package_links/PackageLinkSymlink.cpp:
* Update UnpackingLeafNode::ReadSymlink and
  PackageSymLink::ReadSymLink() to set the bufferSize out parameter to
  the symlink length. Both of these are called by
  packagefs_read_symlink.
* Use user_memcpy

src/add-ons/kernel/file_systems/netfs/client/netfs.cpp:
* netfs seems mostly unimplemented. Added a FIXME note for future
  implementers so that they know to implement the correct behavior.

src/system/libroot/posix/unistd/link.c:
* readlinkat() was just wrapping _kern_read_link() because before this
  patch it had expected posix behavior. But now it does not, so we
  need to return the number of bytes written to the output
  buffer.

src/build/libroot/fs.cpp:
* Update _kern_read_link() in the compatibility code to emulate the
  Haiku behavior on the host system. This is done by using an
  intermediate buffer that is guaranteed to fit the link contents and
  returning its length. The intermediate buffer is copied into the
  output buffer until there is no more room.

src/tests/kits/storage/SymLinkTest.cpp:
* This patch also resolves some test failures similar to those
  resolved in ee8cf35f0 which fixed tests for BNode. The tests were
  failing because Haiku's error checking is just better.

  BeOS allowed constructing a BSymLink with BSymLink(BDirectory*,
  const char*) with the entry name of "". The same is true of the
  equivilant SetTo() method. The BSymLink object will appear valid
  until you attempt to use it by, for example, calling the ReadLink
  method, which will return B_BAD_VALUE.

  Haiku does a more appropriate thing and returns B_ENTRY_NOT_FOUND,
  for this constructor and the equivilant SetTo(BDirectory*, const
  char*) method. This patch fixes these test assertions to match Haiku
  behavior.

docs/develop/file_systems/overview.txt:
* Add notes for future filesystem driver implementers to call this
  mistake when implementing fs_vnode_ops::read_symlink.

docs/user/drivers/fs_interface.dox:
* Fix documentation for fs_vnode_ops::read_symlink

Change-Id: I8bcb8b2a0c9333059c84ace15844c32d4efeed9d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2502
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>
2020-04-30 10:13:41 +00:00
Niels Sascha Reedijk
6758018a21 HaikuBook: add remaining layout class documentation
This is the final contribution to #15368

* Tried to share more documentation in the various BLayoutBuilder classes
* Add missing GridView, GroupView, SpaceLayoutItem
* Also added AbstractLayoutItem, but hide the actual documentation behind
  an `INTERNAL` conditional block. This block identifier can be used to
  document parts of the API, to then hide them during a regular Doxygen run.
* Do some cleanup on other layout classes; add missing members, etc.
* The actual generated BLayoutBuilder::* html is a mess. I should investigate
  this at a later time. Especially the copied members seem to mix type
  definitions with member documentation. It is odd. Not unlikely to be a
  Doxygen bug.
* The general documentation for the layout system could use an overhaul as
  well, but this is for later.

Change-Id: I6db9ef105b4ae6de0f1ebb917f86f8b1c0d4ea2e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2491
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-04-18 18:24:51 +00:00
Adrien Destugues
5bbf7f1be0 Actually handle more than 3 mouse buttons
The code in input_server was pretty much all set for this, but there was
no way to configure the extra buttons. Add them to the mouse view in
Input preferences (up to 5 buttons are handled now)

Define a new B_MOUSE_BUTTON(n) macro to generate the bitmask for a given
button (numbered from 1).

Change-Id: I9091082277937d89b08464ff474e7bbb5db82401
Reviewed-on: https://review.haiku-os.org/c/haiku/+/180
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-04-18 18:20:37 +00:00
Niels Sascha Reedijk
5cfca119fb HaikuBook: Add documentation for BCardLayout
This adds documentation for BCardView, BCardLayout and BLayoutBuilder::Cards.
There is also a bit of cleanup for the BSplitView documentation.

It also makes explicit when a developer passes an invalid argument to
BCardLayout::SetVisibleItem(), by making that a debugger() call.

Change-Id: I17ac52cc773bb76c4f81beaa76f72af62a9e10f4
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2460
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-04-14 08:00:13 +00:00
Niels Sascha Reedijk
9663972932 HaikuBook: Add documentation for BSplitView and BLayoutBuilder::Split<>
Change-Id: I4cfb369d21097ff49a53ebfc52ca57cab7c8049b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2443
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-04-03 17:04:33 +00:00
Niels Sascha Reedijk
dba1e7423b HaikuBook: add documentation for various deprecated layout builders
The goal of this documentation is to help people that find code that uses these
classes, understand that the code is outdated and to refer them to the newer
template-based layout builder classes.

Change-Id: I4ba632be989686749181bdbc4e7f8a29adf01a5e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2353
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-03-17 22:29:36 +00:00
Niels Sascha Reedijk
0e6f95726d HaikuBook: Add documentation for Password and Key Storage API
The current implementation of the keystore_server is not perfect. While the
source has many seeds for a future of having keyrings encrypted, and having
more fine grained permissions, it is far from complete.

The main arguments for adding documentation about this new but incomplete
functionality is that while it is incomplete, the API is part of the public
headers, and there are some legitimate use cases for developers.

The documentation aims to give the proper amount of caution to any developer
that is considering using this API.

Change-Id: I154a3f8374b22dc6929758cba7ba810833bcfe9d
2020-03-13 21:32:38 +00:00
Niels Sascha Reedijk
b341eef43a Haiku Book: revert accidental overzealous search & replace all 2020-03-08 09:21:06 +00:00
Niels Sascha Reedijk
a8081885d2 HaikuBook: fix warnings generated by Doxygen 1.18.16.
This version generates some warnings and identified some problems in our
documentation. It is also a bit more vigilant about undocumented elements, so
these are now decorated with a brief description. In the BNotification docs I
used a stray \p to create some whitespace between code and an image. This is
now fixed in the CSS instead.
2020-03-08 08:57:37 +00:00
Niels Sascha Reedijk
02e45e32ae HaikuBook: Initial documentation for BNotification
The implementation file contained some documentation. This has been moved
to the Haiku Book (and is rewritten in most cases). The documentation gives
some insight on how the notification_server works.

Change-Id: I82bafcf57101d4882bdf07e7f731df9cd8adc861
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2299
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-03-02 22:10:04 +00:00
Niels Sascha Reedijk
22beb3fd42 Haikubook: update doxygen configuration with doxygen 1.18.17 2020-03-01 09:52:40 +00:00
Niels Sascha Reedijk
ff1ee776fe HaikuBook: fix part of the warnings marked by Doxygen
I spotted some warnings when I upgraded from Doxygen 1.18.13 to 1.18.17.
The new warnings are useful, they point out imbalances in grouping, as
well as unclosed comment blocks. Coincidentally, this fixes #13338
2020-03-01 09:50:49 +00:00
Niels Sascha Reedijk
e9f38cca49 HaikuBook: fix accidental UTF16 encoding of AbstractLayoutItem.dox 2020-02-29 16:43:58 +00:00
John Scipione
151a4f7f93 API Docs: Clarify BLooper::PostMessage and BMessenger::SendMessage
... docs to make it clear which methods work synchronously and which work
asynchronously. A small number of related edits are included as well as a
couple of pedantic whitespace changes. Clarify sync vs. async reply
handling better in BMessenger class description. Add The to make sentences.

Change-Id: I3069934fc5e82dda25331e85884d6d0c0c100dfd
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2178
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-02-02 00:52:41 +00:00
Adrien Destugues
edb3467aca BView::DrawBitmap: document "options" parameter 2020-01-26 11:24:04 +01:00
Adrien Destugues
82f610c6ab BFilePanel does not live in libbe. 2020-01-19 18:03:22 +01:00
Naba7
a8edaa2b21 Add some documentation for BUrl.
Change-Id: I9db68f77d80c246fce5011247471972c3f1bf68a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1419
Reviewed-by: Niels Sascha Reedijk <niels.reedijk@gmail.com>
2019-12-09 19:00:20 +00:00
Kacper Kasper
c67dde0f2c app_server: Add tiled bitmap drawing routines
Change-Id: I9a7bd967f2cc95d815a66707b764cf5e33b3f8ed
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1962
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2019-12-09 12:22:28 +00:00
Adrien Destugues
edc5a2174e BGeolocation: add position to country mapping
Using the geonames.org API, so we will need an API key for it (similar
to the one used for MLS, deployed by the buildbot)

The unit tests uses the "demo" user, which is restricted to 20000 API
call credits and often expired. But we cannot use our secret key here as
it would need to be available to anyone running the test. If we ever get
to automate running the tests on a buildserver we could probably make it
use the secret username known by our buildbot instead.

Change-Id: Ia16880db82555ce85505ad28e1c623f692f46be0
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1873
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
2019-12-03 08:01:14 +00:00
Adrien Destugues
70cdd7d4f5 BCountry: add SetTo and InitCheck.
Change-Id: I5fbc2a1c0e735d6edeb23672017bb64d1b3f4390
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1872
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2019-12-02 12:32:15 +00:00
Niels Sascha Reedijk
d450c75ca7 HaikuBook: Add skeletons for various undocumented interface kit classes
* BAbstractLayoutItem
 * BAffineTransform
 * BCardLayout
 * BCardView
 * BChannelControl
 * BChannelSlider
 * BDeskbar
 * BGridLayoutBuilder
 * BGridView
 * BGroupLayoutBuilder
 * BGroupView
 * BInput
 * BOptionControl
 * BSeparatorView
 * BSpaceLayoutItem
 * BSplitLayoutBuilder
 * BSplitView
 * BStatusBar
2019-09-20 21:03:54 +01:00
Niels Sascha Reedijk
4679af2788 API Docs: add various missing elements to support kit.
* Adds missing methods to BArchivable, BList and BString.
* Add missing defines to SupportDefs.h
2019-09-19 21:57:13 +01:00
Niels Sascha Reedijk
2afda31c8f API Docs: add skeletons for BBufferedDataIO, BStringList and BStackOrHeapArray 2019-09-19 21:57:13 +01:00
Niels Sascha Reedijk
eaf8dff073 API Docs: add skeletons for BUrl and BAlignment and complete BAlert 2019-09-19 21:57:12 +01:00
Niels Sascha Reedijk
97ae75c75b API Docs: add missing methods of class BView 2019-09-19 21:57:11 +01:00
Niels Sascha Reedijk
f6be862fc5 API Docs: small fix for InterfaceDefs.dox 2019-09-19 21:57:11 +01:00
Niels Sascha Reedijk
03b52202d1 API Docs: various AppKit improvements 2019-09-02 06:59:51 +01:00
Niels Sascha Reedijk
5b2a8e3aef API Docs: Add new methods to BMessage 2019-09-02 06:59:50 +01:00
Niels Sascha Reedijk
a72f3582be API Docs: Add placeholder for Key.h, KeyStore.h and Notification.h 2019-09-02 06:59:50 +01:00
Augustin Cavalier
e5d0c9094d BView: Add a B_SCROLL_VIEW_AWARE flag.
* This indicates the view will manage whatever scrollbars are targeted
   to it.
 * Use _B_RESERVED7_ for this. It's been RESERVED since BeOS R5
   (I guess it was probably something on some older BeOS version?)
   and we don't really care about BeOS R4 ABI compatibility, so
   that should be fine.
 * Update BScrollView to not touch BScrollBar range/proportion
   when the target view has this set.
 * Update BListView to set this flag, always.

Fixes #14871.

Change-Id: I17027f3b63ef28da1e735c5393593496c415dce3
Reviewed-on: https://review.haiku-os.org/c/998
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2019-02-03 18:04:13 +00:00
Augustin Cavalier
5b0e5c0ac6 BScrollView: Automatically update the scrollbar proportions in layout mode.
Since we know what size the target view is / wants to be, we can automatically
set the range, steps, and proportion trivially. In non-layout mode, we retain
the old behavior. Applications or views that need custom scrolling behavior almost
certainly will be using BScrollBars directly and not this, so this should not be
"wasted computation" in pretty much any case.

Greatly improves the appearance and UX of the default case of a layouted
view inside a BScrollView.

Change-Id: Ia6ff6ee14df96799c579e15d274fd4c849675577
Reviewed-on: https://review.haiku-os.org/c/892
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-01-24 18:52:39 +00:00
Augustin Cavalier
ad7cab8751 Haiku Book: Update BFont docs. 2019-01-23 23:10:33 -05:00
PulkoMandy
4c1d9cf74e Fix "since" entries in BPropertyInfo.
These methods and fields are missing from the R4 and R5 Be Book, but are
mentionned in the R4 release notes and present in the R5 headers.

Change-Id: I4de8298449bd66e0ee7fe0b52690552916314123
Reviewed-on: https://review.haiku-os.org/820
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-01-03 19:09:22 +00:00
Augustin Cavalier
414b21c497 docs/user: Fix description of bigtime_t. 2018-12-14 18:59:17 -05:00
Adrien Destugues
151343ebc8 BLooper: API to hijack existing thread.
I need this to use loopers in WebKit, which spawns threads and expects
to be able to turn them into event loops later on.

This is the pattern already used in BApplication, we may as well make it
available elsewhere.

Change-Id: I5939ca89d33cb3bcc92567b302c2038d976af598
Reviewed-on: https://review.haiku-os.org/735
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2018-12-02 21:36:31 +00:00
François Revol
8865af3950 BApplication docs: fix example
Fixes #14520.
2018-09-24 19:30:05 +02:00
Augustin Cavalier
c3ac0a72a6 BMenuItem: Remove ourselves from the super menu on destruct.
This fixes the (intermittently) crashing test added in the previous commit,
and should also fix #12024 and #14348.

Note that this is a slight behavioral departure from BeOS, though since
BeOS crashed when this was done previously, it shouldn't cause any
other problems.

Change-Id: I90b6132ff7741b8d6cb601375a9b11fc3ffacb40
Reviewed-on: https://review.haiku-os.org/541
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2018-09-12 01:15:48 +00:00
Adrien Destugues
03e5dd5273 Fix documentation for BMessage::Previous
The function allocates a message because it uses lazy initialization,
however the user does not get ownership and must not delete it.

Fixes #14413.
2018-08-28 19:14:57 +02:00
Augustin Cavalier
63cb446249 docs/user: Remove extra comment opener.
It made the second one show up in the documentation.
2018-08-15 14:09:07 -04:00
John Scipione
e79c33c93f BResources SetToImage docs: update variable name in retval (tiny) 2018-06-27 10:05:52 -07:00
Alexander G. M. Smith
f12d3b3477 Update BListItem::SetHeight() docs with selection box warning.
The cached top coordinate of each BListItem isn't updated when you
change the height of the item, leading to confusing highlighting and
incorrect mouse clicks.  Rather than fixing it, this just documents a
workaround or two to force an update of the cached coordinates.
2018-02-17 00:26:34 +00:00