diff --git a/headers/os/app/Clipboard.h b/headers/os/app/Clipboard.h index 35e343db78..aed84cb405 100644 --- a/headers/os/app/Clipboard.h +++ b/headers/os/app/Clipboard.h @@ -1,82 +1,105 @@ -/****************************************************************************** -/ -/ File: Clipboard.h -/ -/ Description: BClipboard class defines clipboard functionality. -/ The global be_clipboard represents the default clipboard. -/ -/ Copyright 1995-98, Be Incorporated, All Rights Reserved. -/ -*******************************************************************************/ - -#ifndef _CLIPBOARD_H -#define _CLIPBOARD_H - -#include -#include -#include - -class BMessage; - -enum { - B_CLIPBOARD_CHANGED = 'CLCH' -}; - -/*------------------------------------------------------------------*/ -/*----- BClipboard class --------------------------------------------*/ - -class BClipboard { -public: - BClipboard(const char *name, bool transient = false); -virtual ~BClipboard(); - - const char *Name() const; - - uint32 LocalCount() const; - uint32 SystemCount() const; - status_t StartWatching(BMessenger target); - status_t StopWatching(BMessenger target); - - bool Lock(); - void Unlock(); - bool IsLocked() const; - - status_t Clear(); - status_t Commit(); - status_t Revert(); - - BMessenger DataSource() const; - BMessage *Data() const; - -/*----- Private or reserved -----------------------------------------*/ -private: - BClipboard(const BClipboard &); - BClipboard &operator=(const BClipboard &); - -virtual void _ReservedClipboard1(); -virtual void _ReservedClipboard2(); -virtual void _ReservedClipboard3(); - - bool AssertLocked() const; - status_t DownloadFromSystem(bool force = false); - status_t UploadToSystem(); - - uint32 fCount; - BMessage *fData; - BLocker fLock; - BMessenger fClipHandler; - BMessenger fDataSource; - uint32 fSystemCount; - char *fName; - uint32 _reserved[4]; -}; - -/*----------------------------------------------------------------*/ -/*----- Global Clipboard -----------------------------------------*/ - -extern _IMPEXP_BE BClipboard *be_clipboard; - -/*-------------------------------------------------------------*/ -/*-------------------------------------------------------------*/ - -#endif /* _CLIPBOARD_H */ +//------------------------------------------------------------------------------ +// 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: Clipboard.h +// Author: Gabe Yoder (gyoder@stny.rr.com) +// Description: BClipboard provides an interface to a system-wide clipboard +// storage area. +//------------------------------------------------------------------------------ + +#ifndef _CLIPBOARD_H +#define _CLIPBOARD_H + +// Standard Includes ----------------------------------------------------------- + +// System Includes ------------------------------------------------------------- +#include +#include +#include + +// Project Includes ------------------------------------------------------------ + +// Local Includes -------------------------------------------------------------- + +// Local Defines --------------------------------------------------------------- + +// Globals --------------------------------------------------------------------- +class BMessage; + +enum { + B_CLIPBOARD_CHANGED = 'CLCH' +}; + +// BClipboard class --------------------------------------------------------------- +class BClipboard { +public: + BClipboard(const char *name, bool transient = false); + virtual ~BClipboard(); + + const char *Name() const; + + uint32 LocalCount() const; + uint32 SystemCount() const; + status_t StartWatching(BMessenger target); + status_t StopWatching(BMessenger target); + + bool Lock(); + void Unlock(); + bool IsLocked() const; + + status_t Clear(); + status_t Commit(); + status_t Revert(); + + BMessenger DataSource() const; + BMessage *Data() const; + +/*----- Private or reserved -----------------------------------------*/ +private: + BClipboard(const BClipboard &); + BClipboard &operator=(const BClipboard &); + + virtual void _ReservedClipboard1(); + virtual void _ReservedClipboard2(); + virtual void _ReservedClipboard3(); + + bool AssertLocked() const; + status_t DownloadFromSystem(bool force = false); + status_t UploadToSystem(); + + uint32 fCount; + BMessage *fData; + BLocker fLock; + BMessenger fClipHandler; + BMessenger fDataSource; + uint32 fSystemCount; + char *fName; + uint32 _reserved[4]; +}; + +//----- Global Clipboard ------------------------------------------------------- + +extern _IMPEXP_BE BClipboard *be_clipboard; + +//------------------------------------------------------------------------------ + +#endif // _CLIPBOARD_H + diff --git a/src/kits/app/Clipboard.cpp b/src/kits/app/Clipboard.cpp new file mode 100644 index 0000000000..e9ede65562 --- /dev/null +++ b/src/kits/app/Clipboard.cpp @@ -0,0 +1,159 @@ +//------------------------------------------------------------------------------ +// 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: Clipboard.cpp +// Author: Gabe Yoder (gyoder@stny.rr.com) +// Description: BClipboard provides an interface to a system-wide clipboard +// storage area. +//------------------------------------------------------------------------------ + +// Standard Includes ----------------------------------------------------------- +#include +#include + +// System Includes ------------------------------------------------------------- +#include + +// Project Includes ------------------------------------------------------------ + +// Local Includes -------------------------------------------------------------- + +// Local Defines --------------------------------------------------------------- + +// Globals --------------------------------------------------------------------- + + +//------------------------------------------------------------------------------ +BClipboard::BClipboard(const char *name, bool transient = false) +{ + /* Not complete yet */ + fName = strdup(name); + fData = new BMessage(); +} +//------------------------------------------------------------------------------ +BClipboard::~BClipboard() +{ + /* Not complete yet? */ + free(fName); + delete fData; +} +//------------------------------------------------------------------------------ +const char* BClipboard::Name() const +{ + return (const char*)fName; +} +//------------------------------------------------------------------------------ +uint32 BClipboard::LocalCount() const +{ + return fCount; +} +//------------------------------------------------------------------------------ +uint32 BClipboard::SystemCount() const +{ + /* Need to upload count data from app server, and update fCount */ + + return fCount; +} +//------------------------------------------------------------------------------ +status_t BClipboard::StartWatching(BMessenger target) +{ +} +//------------------------------------------------------------------------------ +status_t BClipboard::StopWatching(BMessenger target) +{ +} +//------------------------------------------------------------------------------ +bool BClipboard::Lock() +{ + bool retVal; + retVal = fLock.Lock(); + /* Still need to upload clipboard data to fData */ + /* Involves something with DownloadFromSystem */ + + return retVal; +} +//------------------------------------------------------------------------------ +void BClipboard::Unlock() +{ + fLock.Unlock(); +} +//------------------------------------------------------------------------------ +bool BClipboard::IsLocked() const +{ + return fLock.IsLocked(); +} +//------------------------------------------------------------------------------ +status_t BClipboard::Clear() +{ +} +//------------------------------------------------------------------------------ +status_t BClipboard::Commit() +{ +} +//------------------------------------------------------------------------------ +status_t BClipboard::Revert() +{ +} +//------------------------------------------------------------------------------ +BMessenger BClipboard::DataSource() const +{ +} +//------------------------------------------------------------------------------ +BMessage* BClipboard::Data() const +{ + if ( IsLocked() ) + return fData; + return NULL; +} +//------------------------------------------------------------------------------ +BClipboard::BClipboard(const BClipboard &) +{ +} +//------------------------------------------------------------------------------ +BClipboard & BClipboard::operator=(const BClipboard &) +{ +} +//------------------------------------------------------------------------------ +void BClipboard::_ReservedClipboard1() +{ +} +//------------------------------------------------------------------------------ +void BClipboard::_ReservedClipboard2() +{ +} +//------------------------------------------------------------------------------ +void BClipboard::_ReservedClipboard3() +{ +} +//------------------------------------------------------------------------------ +bool BClipboard::AssertLocked() const +{ +} +//------------------------------------------------------------------------------ +status_t BClipboard::DownloadFromSystem(bool force=false) +{ +} +//------------------------------------------------------------------------------ +status_t BClipboard::UploadToSystem() +{ +} +//------------------------------------------------------------------------------ +