diff --git a/headers/os/interface/Deskbar.h b/headers/os/interface/Deskbar.h new file mode 100644 index 0000000000..ff6d944194 --- /dev/null +++ b/headers/os/interface/Deskbar.h @@ -0,0 +1,100 @@ +//------------------------------------------------------------------------------ +// Copyright (c) 2001-2002, OpenBeOS +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. +// +// File Name: Deskbar.h +// Author: Jeremy Rand (jrand@magma.ca) +// Description: BDeskbar allows one to control the deskbar from an +// application. +//------------------------------------------------------------------------------ + +#ifndef _DESKBAR_H +#define _DESKBAR_H + +// Standard Includes ----------------------------------------------------------- + +// System Includes ------------------------------------------------------------- +#include +#include + +// Project Includes ------------------------------------------------------------ + +// Local Includes -------------------------------------------------------------- + +// Local Defines --------------------------------------------------------------- + +// Globals --------------------------------------------------------------------- + +class BMessenger; +class BView; + +// enum for deskbar locations -------------------------------------------------- +enum deskbar_location { + B_DESKBAR_TOP, + B_DESKBAR_BOTTOM, + B_DESKBAR_LEFT_TOP, + B_DESKBAR_RIGHT_TOP, + B_DESKBAR_LEFT_BOTTOM, + B_DESKBAR_RIGHT_BOTTOM +}; + + +// BDeskbar class ------------------------------------------------------------- +class BDeskbar +{ +public: + BDeskbar(); + ~BDeskbar(); + +// Location member functions + BRect Frame(void) const; + deskbar_location Location(bool *isExpanded = NULL) const; + status_t SetLocation(deskbar_location location, bool expanded = false); + bool IsExpanded(void) const; + status_t Expand(bool expand); + +// Item querying member functions + status_t GetItemInfo(int32 id, const char **name) const; + status_t GetItemInfo(const char *name, int32 *id) const; + bool HasItem(int32 id) const; + bool HasItem(const char *name) const; + uint32 CountItems(void) const; + +// Item modification member functions + status_t AddItem(BView *archivableView, int32 *id = NULL); + status_t AddItem(entry_ref *addon, int32 *id = NULL); + status_t RemoveItem(int32 id); + status_t RemoveItem(const char *name); + +private: + BMessenger *fMessenger; + uint32 _reserved[12]; +}; +//------------------------------------------------------------------------------ + +#endif // _DESKBAR_H + +/* + * $Log $ + * + * $Id $ + * + */ +