This is the (first draft of the) API for userland GUI settings disk_scanner add-ons.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2505 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
//----------------------------------------------------------------------
|
||||
// This software is part of the OpenBeOS distribution and is covered
|
||||
// by the OpenBeOS license.
|
||||
//---------------------------------------------------------------------
|
||||
#ifndef _DISK_SCANNER_ADD_ON
|
||||
#define _DISK_SCANNER_ADD_ON
|
||||
|
||||
#include <SupportDefs.h>
|
||||
|
||||
struct partition_info;
|
||||
struct session_info;
|
||||
|
||||
class BDiskScannerParameterEditor;
|
||||
class BString;
|
||||
|
||||
// BDiskScannerPartitionAddOn
|
||||
class BDiskScannerPartitionAddOn {
|
||||
public:
|
||||
BDiskScannerPartitionAddOn();
|
||||
virtual ~BDiskScannerPartitionAddOn();
|
||||
|
||||
virtual const char *ShortName() = 0;
|
||||
virtual const char *LongName() = 0;
|
||||
virtual const char *Identifier() = 0;
|
||||
|
||||
virtual BDiskScannerParameterEditor *CreateEditor(
|
||||
const session_info *sessionInfo, const char *parameters) = 0;
|
||||
|
||||
private:
|
||||
virtual void _ReservedDiskScannerPartitionAddOn1();
|
||||
virtual void _ReservedDiskScannerPartitionAddOn2();
|
||||
virtual void _ReservedDiskScannerPartitionAddOn3();
|
||||
virtual void _ReservedDiskScannerPartitionAddOn4();
|
||||
virtual void _ReservedDiskScannerPartitionAddOn5();
|
||||
|
||||
uint32 _reserved[8];
|
||||
};
|
||||
|
||||
// BDiskScannerFSAddOn
|
||||
class BDiskScannerFSAddOn {
|
||||
public:
|
||||
BDiskScannerFSAddOn();
|
||||
virtual ~BDiskScannerFSAddOn();
|
||||
|
||||
virtual const char *ShortName() = 0;
|
||||
virtual const char *LongName() = 0;
|
||||
virtual const char *FileSystem() = 0;
|
||||
|
||||
virtual BDiskScannerParameterEditor *CreateEditor(
|
||||
const partition_info *partitionInfo, const char *parameters) = 0;
|
||||
|
||||
private:
|
||||
virtual void _ReservedDiskScannerFSAddOn1();
|
||||
virtual void _ReservedDiskScannerFSAddOn2();
|
||||
virtual void _ReservedDiskScannerFSAddOn3();
|
||||
virtual void _ReservedDiskScannerFSAddOn4();
|
||||
virtual void _ReservedDiskScannerFSAddOn5();
|
||||
|
||||
uint32 _reserved[8];
|
||||
};
|
||||
|
||||
// BDiskScannerParameterEditor
|
||||
class BDiskScannerParameterEditor {
|
||||
public:
|
||||
BDiskScannerParameterEditor();
|
||||
virtual ~BDiskScannerParameterEditor();
|
||||
|
||||
virtual BView *View();
|
||||
virtual status_t GetParameters(BString *parameters);
|
||||
|
||||
private:
|
||||
virtual void _ReservedDiskScannerParameterEditor1();
|
||||
virtual void _ReservedDiskScannerParameterEditor2();
|
||||
virtual void _ReservedDiskScannerParameterEditor3();
|
||||
virtual void _ReservedDiskScannerParameterEditor4();
|
||||
virtual void _ReservedDiskScannerParameterEditor5();
|
||||
|
||||
uint32 _reserved[8];
|
||||
};
|
||||
|
||||
// partition add-ons
|
||||
extern "C" BDiskScannerPartitionAddOn *create_ds_partition_add_on();
|
||||
|
||||
// fs add-ons
|
||||
extern "C" BDiskScannerFSAddOn *create_ds_fs_add_on();
|
||||
|
||||
#endif // _DISK_SCANNER_ADD_ON
|
||||
@@ -0,0 +1,209 @@
|
||||
//----------------------------------------------------------------------
|
||||
// This software is part of the OpenBeOS distribution and is covered
|
||||
// by the OpenBeOS license.
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
#include <DiskScannerAddOn.h>
|
||||
#include <String.h>
|
||||
|
||||
// BDiskScannerPartitionAddOn
|
||||
|
||||
// constructor
|
||||
/*! \brief Creates a partition disk scanner add-on.
|
||||
*/
|
||||
BDiskScannerPartitionAddOn::BDiskScannerPartitionAddOn()
|
||||
{
|
||||
}
|
||||
|
||||
// destructor
|
||||
/*! \brief Frees all resources associated with this object.
|
||||
*/
|
||||
BDiskScannerPartitionAddOn::~BDiskScannerPartitionAddOn()
|
||||
{
|
||||
}
|
||||
|
||||
/*! \fn virtual const char *BDiskScannerPartitionAddOn::ShortName() = 0;
|
||||
\brief Returns a user-readable short name for the add-on.
|
||||
|
||||
To be implemented by derived classes.
|
||||
|
||||
\return A short name for the add-on.
|
||||
*/
|
||||
|
||||
/*! \fn virtual const char *BDiskScannerPartitionAddOn::LongName() = 0;
|
||||
\brief Returns a user-readable long name for the add-on.
|
||||
|
||||
To be implemented by derived classes.
|
||||
|
||||
\return A long name for the add-on.
|
||||
*/
|
||||
|
||||
/*! \fn virtual const char *BDiskScannerPartitionAddOn::Identifier() = 0;
|
||||
\brief Returns a string identifying the respective kernel module.
|
||||
|
||||
To be implemented by derived classes.
|
||||
|
||||
The returned identifier is passed to partition_session().
|
||||
|
||||
\return A string identifying the respective kernel module.
|
||||
*/
|
||||
|
||||
/*! \fn virtual BDiskScannerPartitionAddOn::BDiskScannerParameterEditor *
|
||||
CreateEditor(const session_info *sessionInfo,
|
||||
const char *parameters) = 0;
|
||||
\brief Creates and returns an editor for editing partitioning parameters
|
||||
for a specified session.
|
||||
|
||||
To be implemented by derived classes.
|
||||
|
||||
\param sessionInfo An info about the session to be partitioned.
|
||||
\param parameters Parameters retrieved from the partition module. Should
|
||||
initially be presented to the user.
|
||||
\return The newly created editor. \c NULL, if an error occurred.
|
||||
*/
|
||||
|
||||
// FBC
|
||||
void BDiskScannerPartitionAddOn::_ReservedDiskScannerPartitionAddOn1() {}
|
||||
void BDiskScannerPartitionAddOn::_ReservedDiskScannerPartitionAddOn2() {}
|
||||
void BDiskScannerPartitionAddOn::_ReservedDiskScannerPartitionAddOn3() {}
|
||||
void BDiskScannerPartitionAddOn::_ReservedDiskScannerPartitionAddOn4() {}
|
||||
void BDiskScannerPartitionAddOn::_ReservedDiskScannerPartitionAddOn5() {}
|
||||
|
||||
|
||||
// BDiskScannerFSAddOn
|
||||
|
||||
// constructor
|
||||
/*! \brief Creates a FS disk scanner add-on.
|
||||
*/
|
||||
BDiskScannerFSAddOn::BDiskScannerFSAddOn()
|
||||
{
|
||||
}
|
||||
|
||||
// destructor
|
||||
/*! \brief Frees all resources associated with this object.
|
||||
*/
|
||||
BDiskScannerFSAddOn::~BDiskScannerFSAddOn()
|
||||
{
|
||||
}
|
||||
|
||||
/*! \fn virtual const char *BDiskScannerFSAddOn::ShortName() = 0;
|
||||
\brief Returns a user-readable short name for the add-on.
|
||||
|
||||
To be implemented by derived classes.
|
||||
|
||||
\return A short name for the add-on.
|
||||
*/
|
||||
|
||||
/*! \fn virtual const char *BDiskScannerFSAddOn::LongName() = 0;
|
||||
\brief Returns a user-readable long name for the add-on.
|
||||
|
||||
To be implemented by derived classes.
|
||||
|
||||
\return A long name for the add-on.
|
||||
*/
|
||||
|
||||
/*! \fn virtual const char *BDiskScannerFSAddOn::FileSystem() = 0;
|
||||
\brief Returns a string identifying the respective kernel FS add-on.
|
||||
|
||||
To be implemented by derived classes.
|
||||
|
||||
The returned name is passed to initialize_volume().
|
||||
|
||||
\return A string identifying the respective kernel add-on.
|
||||
*/
|
||||
|
||||
/*! \fn virtual BDiskScannerFSAddOn::BDiskScannerParameterEditor *CreateEditor(
|
||||
const partition_info *partitionInfo, const char *parameters) = 0;
|
||||
\brief Creates and returns an editor for editing initialization parameters
|
||||
for a specified partition.
|
||||
|
||||
To be implemented by derived classes.
|
||||
|
||||
\param partitionInfo An info about the partition to be initialized.
|
||||
\param parameters Parameters retrieved from the kernel FS add-on. Should
|
||||
initially be presented to the user.
|
||||
\return The newly created editor. \c NULL, if the FS doesn't need any
|
||||
further parameters.
|
||||
*/
|
||||
|
||||
// FBC
|
||||
void BDiskScannerFSAddOn::_ReservedDiskScannerFSAddOn1() {}
|
||||
void BDiskScannerFSAddOn::_ReservedDiskScannerFSAddOn2() {}
|
||||
void BDiskScannerFSAddOn::_ReservedDiskScannerFSAddOn3() {}
|
||||
void BDiskScannerFSAddOn::_ReservedDiskScannerFSAddOn4() {}
|
||||
void BDiskScannerFSAddOn::_ReservedDiskScannerFSAddOn5() {}
|
||||
|
||||
|
||||
// BDiskScannerParameterEditor
|
||||
|
||||
// constructor
|
||||
/*! \brief Creates a disk scanner parameter editor.
|
||||
*/
|
||||
BDiskScannerParameterEditor::BDiskScannerParameterEditor()
|
||||
{
|
||||
}
|
||||
|
||||
// destructor
|
||||
/*! \brief Frees all resources associated with this object.
|
||||
*/
|
||||
BDiskScannerParameterEditor::~BDiskScannerParameterEditor()
|
||||
{
|
||||
}
|
||||
|
||||
/*! \brief Returns a view containing the controls needed for editing the
|
||||
parameters.
|
||||
|
||||
To be overridden by derived classes.
|
||||
The base class version returns \c NULL.
|
||||
|
||||
The returned BView is added to a window occasionally and removed, when
|
||||
editing is done. The view belongs to the editor and needs to be deleted
|
||||
by it. Subsequent calls to this method may return the same view, or each
|
||||
time delete the old one and return a new one.
|
||||
|
||||
\return A view containing the controls needed for editing the parameters.
|
||||
\c NULL can be returned, if no parameters are needed.
|
||||
*/
|
||||
BView *
|
||||
BDiskScannerParameterEditor::View()
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
/*! \brief Returns the edited parameters.
|
||||
|
||||
To be overridden by derived classes.
|
||||
The base class version returns an empty string.
|
||||
|
||||
\param parameters A BString to be set to the edited parameters.
|
||||
|
||||
\return \c B_OK, if everything went fine, another error code otherwise.
|
||||
*/
|
||||
status_t
|
||||
BDiskScannerParameterEditor::GetParameters(BString *parameters)
|
||||
{
|
||||
status_t error = (parameters ? B_OK : B_BAD_VALUE);
|
||||
if (error == B_OK)
|
||||
parameters->SetTo("");
|
||||
return error;
|
||||
}
|
||||
|
||||
// FBC
|
||||
void BDiskScannerParameterEditor::_ReservedDiskScannerParameterEditor1() {}
|
||||
void BDiskScannerParameterEditor::_ReservedDiskScannerParameterEditor2() {}
|
||||
void BDiskScannerParameterEditor::_ReservedDiskScannerParameterEditor3() {}
|
||||
void BDiskScannerParameterEditor::_ReservedDiskScannerParameterEditor4() {}
|
||||
void BDiskScannerParameterEditor::_ReservedDiskScannerParameterEditor5() {}
|
||||
|
||||
|
||||
/*! \fn BDiskScannerPartitionAddOn *create_ds_partition_add_on();
|
||||
\brief To be provided by partition add-ons to create an add-on object.
|
||||
\return A newly created BDiskScannerPartitionAddOn for this add-on.
|
||||
*/
|
||||
|
||||
/*! \fn BDiskScannerFSAddOn *create_ds_fs_add_on();
|
||||
\brief To be provided by FS add-ons to create an add-on object.
|
||||
\return A newly created BDiskScannerFSAddOn for this add-on.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user