diff --git a/headers/private/servers/app/BitmapManager.h b/headers/private/servers/app/BitmapManager.h new file mode 100644 index 0000000000..0a835a6ae8 --- /dev/null +++ b/headers/private/servers/app/BitmapManager.h @@ -0,0 +1,64 @@ +//------------------------------------------------------------------------------ +// 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: BitmapManager.h +// Author: DarkWyrm +// Description: Handler for allocating and freeing area memory for BBitmaps +// on the server side. Utilizes the BGET pool allocator. +//------------------------------------------------------------------------------ +#ifndef BITMAP_MANAGER_H_ +#define BITMAP_MANAGER_H_ + +#include +#include +#include +#include +#include "TokenHandler.h" + +class ServerBitmap; + +/*! + \class BitmapManager BitmapManager.h + \brief Handler for BBitmap allocation + + Whenever a ServerBitmap associated with a client-side BBitmap needs to be + created or destroyed, the BitmapManager needs to handle it. It takes care of + all memory management related to them. +*/ +class BitmapManager +{ +public: + BitmapManager(void); + ~BitmapManager(void); + ServerBitmap *CreateBitmap(BRect bounds, color_space space, int32 flags, + int32 bytes_per_row=-1, screen_id screen=B_MAIN_SCREEN_ID); + void DeleteBitmap(ServerBitmap *bitmap); +protected: + BList *bmplist; + area_id bmparea; + int8 *buffer; + TokenHandler tokenizer; + sem_id lock; +}; + +extern BitmapManager *bitmapmanager; + +#endif diff --git a/headers/private/servers/app/Decorator.h b/headers/private/servers/app/Decorator.h index 82aaf070ad..e37784aae3 100644 --- a/headers/private/servers/app/Decorator.h +++ b/headers/private/servers/app/Decorator.h @@ -36,6 +36,7 @@ #include "ColorSet.h" class DisplayDriver; +class ServerFont; typedef enum { CLICK_NONE=0, CLICK_ZOOM, CLICK_CLOSE, CLICK_MINIMIZE, CLICK_TAB, CLICK_DRAG, CLICK_MOVETOBACK, CLICK_MOVETOFRONT, CLICK_SLIDETAB, @@ -54,6 +55,7 @@ public: void SetDriver(DisplayDriver *driver); void SetFlags(int32 wflags); void SetFeel(int32 wfeel); + void SetFont(ServerFont *font); void SetLook(int32 wlook); void SetClose(bool is_down); diff --git a/headers/private/servers/app/ServerConfig.h b/headers/private/servers/app/ServerConfig.h index b58a2ecde6..d5a1b6bcf8 100644 --- a/headers/private/servers/app/ServerConfig.h +++ b/headers/private/servers/app/ServerConfig.h @@ -54,9 +54,15 @@ // folder used to keep saved color sets for the UI - tab color, etc. #define COLOR_SET_DIR "/boot/home/config/settings/color_sets/" +// folder used to keep saved cursor sets for the system +#define CURSOR_SET_DIR "/boot/home/config/settings/cursor_sets/" + // name of the file containing the current UI color settings #define COLOR_SETTINGS_NAME "system_colors" +// name of the file containing the current system cursor settings +#define CURSOR_SETTINGS_NAME "system_cursors" + // name of the file containing the config data for the desktop #define WORKSPACE_SETTINGS_NAME "workspace_data" diff --git a/headers/private/servers/app/TokenHandler.h b/headers/private/servers/app/TokenHandler.h new file mode 100644 index 0000000000..c7904a7dfd --- /dev/null +++ b/headers/private/servers/app/TokenHandler.h @@ -0,0 +1,54 @@ +//------------------------------------------------------------------------------ +// 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: TokenHandler.h +// Author: DarkWyrm +// Description: Class to provide tokens with excluded values possible. +// +//------------------------------------------------------------------------------ +#ifndef TOKENHANDLER_H_ +#define TOKENHANDLER_H_ + +#include +#include +#include + +/*! + \class TokenHandler TokenHandler.h + \brief Class to provide tokens with excluded values possible. +*/ +class TokenHandler +{ +public: + TokenHandler(void); + ~TokenHandler(void); + int32 GetToken(void); + void ExcludeValue(int32 value); + void Reset(void); + void ResetExcludes(void); + bool IsExclude(int32 value); +private: + int32 _index; + BLocker _lock; + BList *_excludes; +}; + +#endif