hrev45256 adds 1 changeset to branch 'master' old head: 131261d2b5169bc95e384ede25aee5c371e5889b new head: 81c42a7685fad4a6fb544f98259fdf57e1059a78 overview: http://cgit.haiku-os.org/haiku/log/?qt=range&q=81c42a7+%5E131261d ---------------------------------------------------------------------------- 81c42a7: Move documentation from NodeInfo into the API docs. * Delete the docs from NodeInfo.cpp and NodeInfo.h * I snuck a couple of style fixes into NodeInfo.cpp * I had to make a small modification to MimeType.dox to prevent it from overriding the docs of one of the methods in NodeInfo.dox. [ John Scipione <jscipione@xxxxxxxxx> ] ---------------------------------------------------------------------------- Revision: hrev45256 Commit: 81c42a7685fad4a6fb544f98259fdf57e1059a78 URL: http://cgit.haiku-os.org/haiku/commit/?id=81c42a7 Author: John Scipione <jscipione@xxxxxxxxx> Date: Fri Feb 8 04:17:01 2013 UTC ---------------------------------------------------------------------------- 4 files changed, 509 insertions(+), 303 deletions(-) docs/user/storage/MimeType.dox | 6 +- docs/user/storage/NodeInfo.dox | 428 +++++++++++++++++++++++++++++++++++++ headers/os/storage/NodeInfo.h | 5 - src/kits/storage/NodeInfo.cpp | 373 +++++++------------------------- ---------------------------------------------------------------------------- diff --git a/docs/user/storage/MimeType.dox b/docs/user/storage/MimeType.dox index f7310f0..912c83a 100644 --- a/docs/user/storage/MimeType.dox +++ b/docs/user/storage/MimeType.dox @@ -280,9 +280,9 @@ /*! - \fn status_t BMimeType::GetPreferredApp(char *signature, app_verb verb) - const - \brief Fetches the signature of the MIME type's preferred application from + \fn status_t BMimeType::GetPreferredApp(char *signature, + app_verb verb) const + \brief Fetches the signature of the preferred application from the MIME database. The preferred app is the application that's used to access a file when, diff --git a/docs/user/storage/NodeInfo.dox b/docs/user/storage/NodeInfo.dox new file mode 100644 index 0000000..e72071d --- /dev/null +++ b/docs/user/storage/NodeInfo.dox @@ -0,0 +1,428 @@ +/* + * Copyright 2013 Haiku Inc. All rights reserved. + * Distributed under the terms of the MIT License. + * + * Authors: + * Axel Dörfler, axeld@xxxxxxxxxxxxxxxx + * John Scipione, jscipione@xxxxxxxxx + * Ingo Weinhold, bonefish@xxxxxxxxxxxx + * + * Corresponds to: + * headers/os/app/NodeInfo.h hrev45253 + * src/kits/app/NodeInfo.cpp hrev45253 + */ + + +/*! + \file Node.h + \ingroup storage + \ingroup libbe + \brief Provides the BNodeInfo class. +*/ + + +/*! + \class BNodeInfo + \ingroup storage + \ingroup libbe + \brief Provides meta data about a file type. + + BNodeInfo provides a nice wrapper to all sorts of useful meta data + like it's mime type, the files icon and the application which will load + the file. +*/ + + +/*! + \fn BNodeInfo::BNodeInfo() + \brief Creates an uninitialized BNodeInfo object. + + After created a BNodeInfo with this, you should call SetTo(). + + \see SetTo(BNode *node) +*/ + + +/*! + \fn BNodeInfo::BNodeInfo(BNode *node) + \brief Creates a BNodeInfo object and initializes it to the supplied node. + + \param node The node to gather information on. + + \see SetTo(BNode *node) +*/ + + +/*! + \fn BNodeInfo::~BNodeInfo() + \brief Frees all resources associated with this object. + + The internal BNode object is not deleted. +*/ + + +/*! + \name Constructor helper methods +*/ + + +//! @{ + + +/*! + \fn status_t BNodeInfo::SetTo(BNode *node) + \brief Initializes the BNodeInfo to the supplied \a node. + + The BNodeInfo object does not copy the supplied object, but uses it + directly. You must not delete the object you supply while the BNodeInfo + does exist. The BNodeInfo does not take over ownership of the \a and + it doesn't delete it on destruction. + + \param node The node to gather information on. + + \returns A status code. + \retval B_OK Everything went fine. + \retval B_BAD_VALUE The node was not properly initialized. +*/ + + +/*! + \fn status_t BNodeInfo::InitCheck() const + \brief Determines whether or not the object has been properly initialized. + + \returns A status code. + \retval B_OK The object was properly initialized. + \retval B_BAD_VALUE The object was <b>not</b> properly initialized. +*/ + + +//! @} + + +/*! + \name MIME-type methods +*/ + + +//! @{ + + +/*! + \fn status_t BNodeInfo::GetType(char *type) const + \brief Writes the MIME-type of the node into \a type. + + The source of the type information is the \c BEOS:TYPE attribute of the + node. The \a type buffer should be pre-allocated before it is passed into + GetType(), it should be at least \c B_MIME_TYPE_LENGTH in length. + + \param type A pointer to a pre-allocated char buffer of at least + \c B_MIME_TYPE_LENGTH length into which the MIME-type of the + node is written. + + \returns A status code. + \retval B_OK Everything went fine. + \retval B_NO_INIT The object is not properly initialized. + \retval B_BAD_VALUE \c NULL \a type or the type string stored in the + attribute is longer than \c B_MIME_TYPE_LENGTH. + \retval B_BAD_TYPE The attribute the type string is stored in has the + wrong type. + \retval B_ENTRY_NOT_FOUND No type is set on the node. +*/ + + +/*! + \fn status_t BNodeInfo::SetType(const char *type) + \brief Sets the MIME-type of the node. If \a type is \c NULL the + \c BEOS:TYPE attribute is removed instead. + + The \a type string is written into the \c BEOS:TYPE attribute of the node. + If \a type is \c NULL, the \c BEOS:TYPE attribute is removed instead. The + \a type parameter may not by longer than \c B_MIME_TYPE_LENGTH in length + including the terminating \c NUL character. + + \param type The MIME-type to be assigned to the node. Must not be longer + than \c B_MIME_TYPE_LENGTH (including the terminating \c NUL). + May be \c NULL to remove the attribute. + + \returns A status code. + \retval B_OK Everything went fine. + \retval B_NO_INIT The node object was not properly initialized. + \retval B_BAD_VALUE \a type is longer than \c B_MIME_TYPE_LENGTH. +*/ + + +//! @} + + +/*! + \name Icon methods +*/ + + +//! @{ + + +/*! + \fn status_t BNodeInfo::GetIcon(BBitmap *icon, icon_size k) const + \brief Gets the icon of the node. + + The icon stored in the \c BEOS:L:STD_ICON attribute (large) or + \c BEOS:M:STD_ICON attribute (mini) is retrieved. + + \param icon A pointer to a pre-allocated BBitmap object of the correct + dimension to store the requested icon: 16x16 for the mini or + 32x32 for the large icon. + \param k The size of the icon to be retrieved: \c B_MINI_ICON for a 16x16 + icon and \c B_LARGE_ICON for a 32x32 icon. + + \returns A status code. + \retval B_OK Everything went fine. + \retval B_NO_INIT The node object was not properly initialized. + \retval B_BAD_VALUE \c NULL \a icon, unsupported icon size \a k or bitmap + dimensions (\a icon) and icon size (\a k) do not match. +*/ + + +/*! + \fn status_t BNodeInfo::SetIcon(const BBitmap *icon, icon_size k) + \brief Sets the icon of the node. If \a icon is \c NULL, the attribute is + removed instead. + + The icon is stored in the \c BEOS:L:STD_ICON attribute (large) or + \c BEOS:M:STD_ICON attribute (mini). If \a icon is \c NULL the respective + attribute is removed instead. + + \param icon A pointer to a BBitmap object containing the icon to be set. + May be \c NULL. + \param k The size of the icon to be set: \c B_MINI_ICON for the mini or + \c B_LARGE_ICON for the large icon. + + \returns A status code. + \retval B_OK Everything went fine. + \retval B_NO_INIT The object is not properly initialized. + \retval B_BAD_VALUE Unknown icon size \a k or bitmap dimensions (\a icon) + and icon size (\a k) do not match. +*/ + + +/*! + \fn status_t BNodeInfo::GetIcon(uint8** data, size_t* size, + type_code* type) const + \brief Gets the icon of the node. + + The icon stored in the \c BEOS:ICON attribute of the node is retrieved. + The caller is responsible to <tt>delete[]</tt> the data if the icon was + retrieved. + + \param data A pointer in which a pointer to the icon data + will be returned. + \param size A pointer in which the size of the found icon data + will be returned. + \param type A pointer in which the type of the found icon data + will be returned. + + \returns A status code. + \retval B_OK Everything went fine. + \retval B_NO_INIT The node object was not properly initialized. + \retval B_BAD_VALUE \c NULL \a data, \c NULL size or \c NULL \a type. + \retval B_NO_MEMORY No memory to allocate the data buffer. +*/ + + +/*! + \fn status_t BNodeInfo::SetIcon(const uint8* data, size_t size) + \brief Sets the node icon of the node. If \a data is \c NULL or \a size + is 0, the \c BEOS:ICON attribute is removed instead. + + The icon is stored in the \c BEOS:ICON attribute of the node. + + \param data A pointer to valid icon data. May be \c NULL. + \param size The size of the provided data buffer. May be 0. + + \returns A status code. + \retval B_OK Everything went fine. + \retval B_NO_INIT The node object was not properly initialized. +*/ + + +/*! + \fn status_t BNodeInfo::GetTrackerIcon(BBitmap *icon, + icon_size iconSize) const + \brief Gets the icon displayed by Tracker for the icon. + + This method tries really hard to find an icon for the node: + - If the node has no type this method returns the icon for + \c B_FILE_MIME_TYPE if it's a regular file or + \c B_DIRECTORY_MIME_TYPE if it's a directory, even if the node has its + own icon! + - Next it will ask GetIcon() for an icon. + - If this fails it will get the preferred application and ask the MIME + database if the application has a special icon for the file type of the + node. + - Next it will ask the MIME database whether there is an icon for the file + type of the node. + - Then it will ask the MIME database for the preferred application for + the file type of the node and whether this application has a special + icon for the type. + - Finally it will return the icon for whatever type of node + (file/dir/etc.) from the MIME database. + + The first action that provides an icon is used. In the case that none of + them yield an icon this method fails, this is very unlikely though. + + \remarks You can set \a iconSize to get a scaled icon instead of using + a predefined icon_size constant, pass in an integer casted + to icon_size. For example to get a 64x64 icon pass in: +\code +(icon_size)64 +\endcode + + \param icon A pointer to a pre-allocated BBitmap of the correct dimension + to store the requested icon (16x16 for the mini and 32x32 for the + large icon). + \param iconSize The size of the icon to be retrieved: \c B_MINI_ICON + for a 16x16 icon or \c B_LARGE_ICON for a 32x32 icon. + + \returns A status code. + \retval B_OK Everything went fine. + \retval B_NO_INIT The node object was not properly initialized. + \retval B_BAD_VALUE \c NULL \a icon, unsupported icon size \a iconSize + or bitmap dimensions (\a icon) and icon size (\a iconSize) do + not match. +*/ + + +/*! + \fn status_t BNodeInfo::GetTrackerIcon(const entry_ref *ref, + BBitmap *icon, icon_size iconSize) + \brief Gets the icon displayed by Tracker for the node referred to by + \a ref. + + This methods works similarly to the non-static version but \a ref + identifies the node. \a icon must be pre-allocated to the size requested + using \a iconSize before being passed to this method. + + \param ref An entry_ref referring to the node for which the icon is + retrieved. + \param icon A pointer to a pre-allocated BBitmap of the correct dimension + to store the requested icon (16x16 for the mini and 32x32 for the + large icon). + \param iconSize The size of the icon to be retrieved: \c B_MINI_ICON + for a 16x16 icon or \c B_LARGE_ICON for a 32x32 icon. + + \returns A status code. + \retval B_OK: Everything went fine. + \retval B_NO_INIT: The object is not properly initialized. + \retval B_BAD_VALUE: \c NULL ref or \a icon, unsupported icon size + \a iconSize or bitmap dimensions (\a icon) and icon size + (\a iconSize) do not match. +*/ + + +//! @} + + +/*! + \name Preferred application methods +*/ + + +//! @{ + + +/*! + \fn status_t BNodeInfo::GetPreferredApp(char *signature, + app_verb verb) const + \brief Gets the preferred application for the node. + + Writes the contents of the \c BEOS:PREF_APP attribute into the + \a signature buffer. The preferred application can be identified by its + signature. \a signature should be at least \c B_MIME_TYPE_LENGTH or + longer and pre-allocated before it is passed into this method. + + \param signature A pointer to a pre-allocated character buffer of size + \c B_MIME_TYPE_LENGTH or larger into which the MIME-type of the + preferred application is written. + \param verb The type of access the preferred application is requested. + Currently \c B_OPEN is the only meaningful option. + + \returns A status code. + \retval B_OK Everything went fine. + \retval B_NO_INIT The node object was not properly initialized. + \retval B_BAD_VALUE \c NULL \a signature or bad app_verb \a verb. +*/ + + +/*! + \fn status_t BNodeInfo::SetPreferredApp(const char *signature, + app_verb verb) + \brief Sets the preferred application of the node. If \a signature is + \c NULL, the \c BEOS:PREF_APP attribute is removed instead. + + The supplied string is written into the \c BEOS:PREF_APP attribute of the + node. If \a signature is \c NULL, the respective attribute is removed + instead. \a signature must not be longer than \c B_MIME_TYPE_LENGTH + (including the terminating \c NUL). + + \param signature The signature of the preferred application to be set. + May be \c NULL. + \param verb The type of access set to the preferred application. + Currently only \c B_OPEN is meaningful. + + \returns A status code. + \retval B_OK Everything went fine. + \retval B_NO_INIT The object is not properly initialized. + \retval B_BAD_VALUE \c NULL \a signature, \a signature is longer than + \c B_MIME_TYPE_LENGTH or bad app_verb \a verb. +*/ + + +//! @} + + +/*! + \name Application hint methods +*/ + + +//! @{ + + +/*! + \fn status_t BNodeInfo::GetAppHint(entry_ref *ref) const + \brief Fills out \a ref with a pointer to a hint about the application + that will open this node. + + The path contained in the \c BEOS:PPATH attribute of the node is converted + into an entry_ref and returned. \a ref should be pre-allocated before being + passed into this method. + + \param ref A pointer to a pre-allocated entry_ref into which the requested + app hint shall be written. + + \returns A status code. + \retval B_OK Everything went fine. + \retval B_NO_INIT The node object was not properly initialized. + \retval B_BAD_VALUE The \a ref object passed in was \c NULL. +*/ + + +/*! + \fn status_t BNodeInfo::SetAppHint(const entry_ref *ref) + \brief Sets the app hint of the node. If \a ref is \c NULL, the + \c BEOS:PPATH attribute is removed instead. + + \a ref is converted into a path and stored in the \c BEOS:PPATH attribute + of the node. If \a ref is NULL \c BEOS:PPATH is removed instead. + + \param ref A pointer to an entry_ref referring to the application. + May be \c NULL. + + \returns A status code. + \retval B_OK Everything went fine. + \retval B_NO_INIT The node object was not properly initialized. + \retval B_BAD_VALUE The \a ref object passed in was \c NULL. +*/ + + +//! @} diff --git a/headers/os/storage/NodeInfo.h b/headers/os/storage/NodeInfo.h index a60849f..b82771c 100644 --- a/headers/os/storage/NodeInfo.h +++ b/headers/os/storage/NodeInfo.h @@ -18,11 +18,6 @@ class BBitmap; class BResources; -/*! \brief BNodeInfo provides file type information - BNodeInfo provides a nice wrapper to all sorts of usefull meta data. - Like it's mime type, the files icon and the application which will load - the file. -*/ class BNodeInfo { public: BNodeInfo(); diff --git a/src/kits/storage/NodeInfo.cpp b/src/kits/storage/NodeInfo.cpp index c6dd841..d0dca6c 100644 --- a/src/kits/storage/NodeInfo.cpp +++ b/src/kits/storage/NodeInfo.cpp @@ -36,12 +36,6 @@ static const char *kNILargeIconAttribute = NI_BEOS ":L:STD_ICON"; static const char *kNIIconAttribute = NI_BEOS ":ICON"; -/*! \brief Creates an uninitialized BNodeInfo object. - - After created a BNodeInfo with this, you should call SetTo(). - - \see SetTo(BNode *node) -*/ BNodeInfo::BNodeInfo() : fNode(NULL), @@ -49,13 +43,7 @@ BNodeInfo::BNodeInfo() { } -// constructor -/*! \brief Creates a BNodeInfo object and initializes it to the supplied node. - - \param node The node to gather information on. Can be any flavor. - \see SetTo(BNode *node) -*/ BNodeInfo::BNodeInfo(BNode *node) : fNode(NULL), @@ -64,29 +52,13 @@ BNodeInfo::BNodeInfo(BNode *node) fCStatus = SetTo(node); } -// destructor -/*! \brief Frees all resources associated with this object. - The BNode object passed to the constructor or to SetTo() is not deleted. -*/ BNodeInfo::~BNodeInfo() { } -// SetTo -/*! \brief Initializes the BNodeInfo to the supplied node. - The BNodeInfo object does not copy the supplied object, but uses it - directly. You must not delete the object you supply while the BNodeInfo - does exist. The BNodeInfo does not take over ownership of the BNode and - it doesn't delete it on destruction. - - \param node The node to play with - - \return - - \c B_OK: Everything went fine. - - \c B_BAD_VALUE: The node was bad. -*/ +// Initializes the BNodeInfo to the supplied node. status_t BNodeInfo::SetTo(BNode *node) { @@ -95,42 +67,21 @@ BNodeInfo::SetTo(BNode *node) fCStatus = (node && node->InitCheck() == B_OK ? B_OK : B_BAD_VALUE); if (fCStatus == B_OK) fNode = node; + return fCStatus; } -// InitCheck -/*! \brief returns whether the object has been properly initialized. - \return - - \c B_OK: Everything went fine. - - \c B_NO_INIT: The node is not properly initialized. -*/ -status_t +// Returns whether the object has been properly initialized. +status_t BNodeInfo::InitCheck() const { return fCStatus; } -// GetType -/*! \brief Gets the node's MIME type. - - Writes the contents of the "BEOS:TYPE" attribute into the supplied buffer - \a type. - - \param type A pointer to a pre-allocated character buffer of size - \c B_MIME_TYPE_LENGTH or larger into which the MIME type of the - node shall be written. - \return - - \c B_OK: Everything went fine. - - \c B_NO_INIT: The object is not properly initialized. - - \c B_BAD_VALUE: \c NULL \a type or the type string stored in the - attribute is longer than \c B_MIME_TYPE_LENGTH. - - \c B_BAD_TYPE: The attribute the type string is stored in has the wrong - type. - - \c B_ENTRY_NOT_FOUND: No type is set on the node. - - other error codes -*/ -status_t + +// Writes the MIME type of the node into type. +status_t BNodeInfo::GetType(char *type) const { // check parameter and initialization @@ -160,25 +111,12 @@ BNodeInfo::GetType(char *type) const type[min_c(attrInfo.size, B_MIME_TYPE_LENGTH - 1)] = '\0'; } } + return error; } -// SetType -/*! \brief Sets the node's MIME type. - - The supplied string is written into the node's "BEOS:TYPE" attribute. - - If \a type is \c NULL, the respective attribute is removed. - - \param type The MIME type to be assigned to the node. Must not be longer - than \c B_MIME_TYPE_LENGTH (including the terminating null). - May be \c NULL. - \return - - \c B_OK: Everything went fine. - - \c B_NO_INIT: The object is not properly initialized. - - \c B_BAD_VALUE: \a type is longer than \c B_MIME_TYPE_LENGTH. - - other error codes -*/ +// Sets the MIME type of the node. If type is NULL the BEOS:TYPE attribute is +// removed instead. status_t BNodeInfo::SetType(const char *type) { @@ -206,24 +144,8 @@ BNodeInfo::SetType(const char *type) return error; } -// GetIcon -/*! \brief Gets the node's icon. - - The icon stored in the node's "BEOS:L:STD_ICON" (large) or - "BEOS:M:STD_ICON" (mini) attribute is retrieved. - - \param icon A pointer to a pre-allocated BBitmap of the correct dimension - to store the requested icon (16x16 for the mini and 32x32 for the - large icon). - \param k Specifies the size of the icon to be retrieved: \c B_MINI_ICON - for the mini and \c B_LARGE_ICON for the large icon. - \return - - \c B_OK: Everything went fine. - - \c B_NO_INIT: The object is not properly initialized. - - \c B_BAD_VALUE: \c NULL \a icon, unsupported icon size \a k or bitmap - dimensions (\a icon) and icon size (\a k) do not match. - - other error codes -*/ + +// Gets the icon of the node. status_t BNodeInfo::GetIcon(BBitmap *icon, icon_size k) const { @@ -311,26 +233,10 @@ BNodeInfo::GetIcon(BBitmap *icon, icon_size k) const // return error; } -// SetIcon -/*! \brief Sets the node's icon. - - The icon is stored in the node's "BEOS:L:STD_ICON" (large) or - "BEOS:M:STD_ICON" (mini) attribute. - - If \a icon is \c NULL, the respective attribute is removed. - - \param icon A pointer to the BBitmap containing the icon to be set. - May be \c NULL. - \param k Specifies the size of the icon to be set: \c B_MINI_ICON - for the mini and \c B_LARGE_ICON for the large icon. - \return - - \c B_OK: Everything went fine. - - \c B_NO_INIT: The object is not properly initialized. - - \c B_BAD_VALUE: Unknown icon size \a k or bitmap dimensions (\a icon) - and icon size (\a k) do not match. - - other error codes -*/ -status_t + +// Sets the icon of the node. If icon is NULL, the attribute is removed +// instead. +status_t BNodeInfo::SetIcon(const BBitmap *icon, icon_size k) { status_t error = B_OK; @@ -396,26 +302,7 @@ BNodeInfo::SetIcon(const BBitmap *icon, icon_size k) } -// GetIcon -/*! \brief Gets the node's icon. - - The icon stored in the node's "BEOS:ICON" attribute is retrieved. - The caller is responsible to \c delete[] the returned data if the - function was successful. - - \param data A pointer in which a pointer to the icon data - will be returned. - \param size A pointer in which the size of the found icon data - will be returned. - \param type A pointer in which the type of the found icon data - will be returned. - \return - - \c B_OK: Everything went fine. - - \c B_NO_INIT: The object is not properly initialized. - - \c B_BAD_VALUE: \c NULL \a data, \c NULL size or \c NULL \a type. - - \c B_NO_MEMORY: No memory to allocate the data buffer. - - other error codes -*/ +// Gets the icon of the node. status_t BNodeInfo::GetIcon(uint8** data, size_t* size, type_code* type) const { @@ -456,22 +343,10 @@ BNodeInfo::GetIcon(uint8** data, size_t* size, type_code* type) const return B_OK; } -// SetIcon -/*! \brief Sets the node's icon. - - The icon is stored in the node's "BEOS:ICON" attribute. - If \a data is \c NULL, the respective attribute is removed. - - \param data A pointer to valid vector icon data. - May be \c NULL. - \param size Specifies the size of the provided data buffer. - \return - - \c B_OK: Everything went fine. - - \c B_NO_INIT: The object is not properly initialized. - - other error codes -*/ -status_t +// Sets the node icon of the node. If data is NULL of size is 0, the +// "BEOS:ICON" attribute is removed instead. +status_t BNodeInfo::SetIcon(const uint8* data, size_t size) { // check initialization @@ -489,31 +364,17 @@ BNodeInfo::SetIcon(const uint8* data, size_t size) error = (status_t)written; else if (written != (ssize_t)size) error = B_ERROR; - } else // no icon given => remove + } else { + // no icon given => remove error = fNode->RemoveAttr(kNIIconAttribute); + } return error; } -// GetPreferredApp -/*! \brief Gets the node's preferred application. - - Writes the contents of the "BEOS:PREF_APP" attribute into the supplied - buffer \a signature. The preferred application is identifief by its - signature. - - \param signature A pointer to a pre-allocated character buffer of size - \c B_MIME_TYPE_LENGTH or larger into which the MIME type of the - preferred application shall be written. - \param verb Specifies the type of access the preferred application is - requested for. Currently only \c B_OPEN is meaningful. - \return - - \c B_OK: Everything went fine. - - \c B_NO_INIT: The object is not properly initialized. - - \c B_BAD_VALUE: \c NULL \a signature or bad app_verb \a verb. - - other error codes -*/ -status_t + +// Gets the preferred application of the node. +status_t BNodeInfo::GetPreferredApp(char *signature, app_verb verb) const { // check parameter and initialization @@ -547,26 +408,10 @@ BNodeInfo::GetPreferredApp(char *signature, app_verb verb) const return error; } -// SetPreferredApp -/*! \brief Sets the node's preferred application. - - The supplied string is written into the node's "BEOS:PREF_APP" attribute. - - If \a signature is \c NULL, the respective attribute is removed. - - \param signature The signature of the preferred application to be set. - Must not be longer than \c B_MIME_TYPE_LENGTH (including the - terminating null). May be \c NULL. - \param verb Specifies the type of access the preferred application shall - be set for. Currently only \c B_OPEN is meaningful. - \return - - \c B_OK: Everything went fine. - - \c B_NO_INIT: The object is not properly initialized. - - \c B_BAD_VALUE: \c NULL \a signature, \a signature is longer than - \c B_MIME_TYPE_LENGTH or bad app_verb \a verb. - - other error codes -*/ -status_t + +// Sets the preferred application of the node. If signature is NULL, the +// "BEOS:PREF_APP" attribute is removed instead. +status_t BNodeInfo::SetPreferredApp(const char *signature, app_verb verb) { // check parameters and initialization @@ -593,22 +438,10 @@ BNodeInfo::SetPreferredApp(const char *signature, app_verb verb) return error; } -// GetAppHint -/*! \brief Returns a hint in form of and entry_ref to the application that - shall be used to open this node. - - The path contained in the node's "BEOS:PPATH" attribute is converted into - an entry_ref and returned in \a ref. - - \param ref A pointer to a pre-allocated entry_ref into which the requested - app hint shall be written. - \return - - \c B_OK: Everything went fine. - - \c B_NO_INIT: The object is not properly initialized. - - \c B_BAD_VALUE: \c NULL \a ref. - - other error codes -*/ -status_t + +// Fills out ref with a pointer to a hint about what application will open +// this node. +status_t BNodeInfo::GetAppHint(entry_ref *ref) const { // check parameter and initialization @@ -646,23 +479,10 @@ BNodeInfo::GetAppHint(entry_ref *ref) const return error; } -// SetAppHint -/*! \brief Sets the node's app hint. - - The supplied entry_ref is converted into a path and stored in the node's - "BEOS:PPATH" attribute. - If \a ref is \c NULL, the respective attribute is removed. - - \param ref A pointer to an entry_ref referring to the application. - May be \c NULL. - \return - - \c B_OK: Everything went fine. - - \c B_NO_INIT: The object is not properly initialized. - - \c B_BAD_VALUE: \c NULL \a ref. - - other error codes -*/ -status_t +// Sets the app hint of the node. If ref is NULL, the "BEOS:PPATH" attribute +// is removed instead. +status_t BNodeInfo::SetAppHint(const entry_ref *ref) { // check parameter and initialization @@ -691,37 +511,9 @@ BNodeInfo::SetAppHint(const entry_ref *ref) return error; } -// GetTrackerIcon -/*! \brief Gets the icon which tracker displays. - - This method tries real hard to find an icon for the node: - - If the node has no type, return the icon for B_FILE_MIME_TYPE if it's a - regular file, for B_DIRECTORY_MIME_TYPE if it's a directory, etc. from - the MIME database. Even, if the node has an own icon! - - Ask GetIcon(). - - Get the preferred application and ask the MIME database, if that - application has a special icon for the node's file type. - - Ask the MIME database whether there is an icon for the node's file type. - - Ask the MIME database for the preferred application for the node's - file type and whether this application has a special icon for the type. - - Return the icon for whatever type of node (file/dir/etc.) from the MIME database. - This list is processed in the given order and the icon the first - successful attempt provides is returned. In case none of them yields an - icon, this method fails. This is very unlikely though. - - \param icon A pointer to a pre-allocated BBitmap of the correct dimension - to store the requested icon (16x16 for the mini and 32x32 for the - large icon). - \param iconSize Specifies the size of the icon to be retrieved: \c B_MINI_ICON - for the mini and \c B_LARGE_ICON for the large icon. - \return - - \c B_OK: Everything went fine. - - \c B_NO_INIT: The object is not properly initialized. - - \c B_BAD_VALUE: \c NULL \a icon, unsupported icon size \a iconSize or bitmap - dimensions (\a icon) and icon size (\a iconSize) do not match. - - other error codes -*/ -status_t + +// Gets the icon displayed by Tracker for the icon. +status_t BNodeInfo::GetTrackerIcon(BBitmap *icon, icon_size iconSize) const { if (!icon) @@ -754,8 +546,8 @@ BNodeInfo::GetTrackerIcon(BBitmap *icon, icon_size iconSize) const if (GetIcon(icon, iconSize) == B_OK) return B_OK; - // If not successful, see if the node has a type available at all. If no type - // is available, use one of the standard types depending on + // If not successful, see if the node has a type available at all. + // If no type is available, use one of the standard types. status_t error = B_OK; char mimeString[B_MIME_TYPE_LENGTH]; if (GetType(mimeString) != B_OK) { @@ -765,7 +557,8 @@ BNodeInfo::GetTrackerIcon(BBitmap *icon, icon_size iconSize) const struct stat stat; error = fNode->GetStat(&stat); if (error == B_OK) { - // no type available -- get the icon for the appropriate type (file/dir/etc.) + // no type available -- get the icon for the appropriate type + // (file/dir/etc.) if (S_ISREG(stat.st_mode)) { // is it an application (executable) or just a regular file? if ((stat.st_mode & S_IXUSR) != 0) @@ -775,20 +568,20 @@ BNodeInfo::GetTrackerIcon(BBitmap *icon, icon_size iconSize) const } else if (S_ISDIR(stat.st_mode)) { // it's either a volume or just a standard directory fs_info info; - if (fs_stat_dev(stat.st_dev, &info) == 0 && stat.st_ino == info.root) + if (fs_stat_dev(stat.st_dev, &info) == 0 + && stat.st_ino == info.root) { type.SetTo(B_VOLUME_MIME_TYPE); - else + } else type.SetTo(B_DIRECTORY_MIME_TYPE); } else if (S_ISLNK(stat.st_mode)) type.SetTo(B_SYMLINK_MIME_TYPE); } else { - // GetStat() failed. - // Return the icon for "application/octet-stream" from the MIME database. + // GetStat() failed. Return the icon for + // "application/octet-stream" from the MIME database. type.SetTo(B_FILE_MIME_TYPE); } return type.GetIcon(icon, iconSize); - } else { // We know the mimetype of the node. bool success = false; @@ -801,29 +594,34 @@ BNodeInfo::GetTrackerIcon(BBitmap *icon, icon_size iconSize) const success = type.GetIconForType(mimeString, icon, iconSize) == B_OK; } - // TODO: Confirm Tracker asks preferred app icons before asking mime icons. + // ToDo: Confirm Tracker asks preferred app icons before asking + // mime icons. BMimeType nodeType(mimeString); // Ask the MIME database for the preferred application for the node's - // file type and whether this application has a special icon for the type. + // file type and whether this application has a special icon for the + // type. if (!success && nodeType.GetPreferredApp(signature) == B_OK) { BMimeType type(signature); success = type.GetIconForType(mimeString, icon, iconSize) == B_OK; } - // Ask the MIME database whether there is an icon for the node's file type. + // Ask the MIME database whether there is an icon for the node's file + // type. if (!success) success = nodeType.GetIcon(icon, iconSize) == B_OK; // Get the super type if still no success. BMimeType superType; if (!success && nodeType.GetSupertype(&superType) == B_OK) { - // Ask the MIME database for the preferred application for the node's - // super type and whether this application has a special icon for the type. + // Ask the MIME database for the preferred application for the + // node's super type and whether this application has a special + // icon for the type. if (superType.GetPreferredApp(signature) == B_OK) { BMimeType type(signature); - success = type.GetIconForType(superType.Type(), icon, iconSize) == B_OK; + success = type.GetIconForType(superType.Type(), icon, + iconSize) == B_OK; } // Get the icon of the super type itself. if (!success) @@ -837,28 +635,9 @@ BNodeInfo::GetTrackerIcon(BBitmap *icon, icon_size iconSize) const return B_ERROR; } -// GetTrackerIcon -/*! \brief Gets the icon which tracker displays for the node referred to by - the supplied entry_ref. - - This methods works similar to the non-static version. The first argument - \a ref identifies the node in question. - - \param ref An entry_ref referring to the node for which the icon shall be - retrieved. - \param icon A pointer to a pre-allocated BBitmap of the correct dimension - to store the requested icon (16x16 for the mini and 32x32 for the - large icon). - \param iconSize Specifies the size of the icon to be retrieved: \c B_MINI_ICON - for the mini and \c B_LARGE_ICON for the large icon. - \return - - \c B_OK: Everything went fine. - - \c B_NO_INIT: The object is not properly initialized. - - \c B_BAD_VALUE: \c NULL ref or \a icon, unsupported icon size \a iconSize or - bitmap dimensions (\a icon) and icon size (\a iconSize) do not match. - - other error codes -*/ -status_t + +// Gets the icon displayed by Tracker for the node referred to by ref. +status_t BNodeInfo::GetTrackerIcon(const entry_ref *ref, BBitmap *icon, icon_size iconSize) { // check ref param @@ -880,8 +659,9 @@ BNodeInfo::GetTrackerIcon(const entry_ref *ref, BBitmap *icon, icon_size iconSiz return error; } -// TODO: just here for providing binary compatibility -// (for example "Guido" needs this) + +// NOTE: The following method is provided for binary compatibility purposes +// (for example the program "Guido" depends on this.) extern "C" status_t GetTrackerIcon__9BNodeInfoP9entry_refP7BBitmap9icon_size( @@ -892,33 +672,36 @@ GetTrackerIcon__9BNodeInfoP9entry_refP7BBitmap9icon_size( return BNodeInfo::GetTrackerIcon(ref, bitmap, iconSize); } + void BNodeInfo::_ReservedNodeInfo1() { } + void BNodeInfo::_ReservedNodeInfo2() { } + void BNodeInfo::_ReservedNodeInfo3() { } -// = -/*! \brief Privatized assignment operator to prevent usage. -*/ + +// Assignment operator is declared private to prevent it from being created +// automatically by the compiler. BNodeInfo & BNodeInfo::operator=(const BNodeInfo &nodeInfo) { return *this; } -// copy constructor -/*! \brief Privatized copy constructor to prevent usage. -*/ + +// Copy constructor is declared private to prevent it from being created +// automatically by the compiler. BNodeInfo::BNodeInfo(const BNodeInfo &) { } @@ -926,11 +709,11 @@ BNodeInfo::BNodeInfo(const BNodeInfo &) // #pragma mark - + namespace BPrivate { -/*! - Private function used by Tracker. Should be moved into the Tracker sources. -*/ +// Private method used by Tracker. This should be moved to the Tracker +// source. extern bool CheckNodeIconHintPrivate(const BNode *node, bool checkMiniIconOnly) {