* Got rid of the BClipboard::fCount. It was modified, but never read.
Renamed fSystemCount to fCount. * be_clipboard is now initialized by init_clipboard(). * Documented at least {Local,System}Count(), since their meaning wasn't very obvious to me (neither helped the BeBook description). git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10706 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
5fa518561e
commit
77cbf881fc
@ -85,12 +85,12 @@ private:
|
|||||||
status_t DownloadFromSystem(bool force = false);
|
status_t DownloadFromSystem(bool force = false);
|
||||||
status_t UploadToSystem();
|
status_t UploadToSystem();
|
||||||
|
|
||||||
uint32 fCount;
|
uint32 _reserved0;
|
||||||
BMessage *fData;
|
BMessage *fData;
|
||||||
BLocker fLock;
|
BLocker fLock;
|
||||||
BMessenger fClipHandler;
|
BMessenger fClipHandler;
|
||||||
BMessenger fDataSource;
|
BMessenger fDataSource;
|
||||||
uint32 fSystemCount;
|
uint32 fCount;
|
||||||
char *fName;
|
char *fName;
|
||||||
uint32 _reserved[4];
|
uint32 _reserved[4];
|
||||||
};
|
};
|
||||||
|
@ -36,9 +36,10 @@
|
|||||||
#include <RegistrarDefs.h>
|
#include <RegistrarDefs.h>
|
||||||
#include <RosterPrivate.h>
|
#include <RosterPrivate.h>
|
||||||
|
|
||||||
|
#include <ClipboardPrivate.h>
|
||||||
|
|
||||||
// Globals ---------------------------------------------------------------------
|
// Globals ---------------------------------------------------------------------
|
||||||
BClipboard *be_clipboard;
|
BClipboard *be_clipboard = NULL;
|
||||||
// ToDo: this has to be initialized!
|
|
||||||
|
|
||||||
|
|
||||||
BClipboard::BClipboard(const char *name, bool transient)
|
BClipboard::BClipboard(const char *name, bool transient)
|
||||||
@ -50,7 +51,6 @@ BClipboard::BClipboard(const char *name, bool transient)
|
|||||||
|
|
||||||
fData = new BMessage();
|
fData = new BMessage();
|
||||||
fCount = 0;
|
fCount = 0;
|
||||||
fSystemCount = 0;
|
|
||||||
|
|
||||||
BMessage message(B_REG_GET_CLIPBOARD_MESSENGER), reply;
|
BMessage message(B_REG_GET_CLIPBOARD_MESSENGER), reply;
|
||||||
if (BRoster::Private().SendTo(&message, &reply, false) == B_OK
|
if (BRoster::Private().SendTo(&message, &reply, false) == B_OK
|
||||||
@ -78,18 +78,33 @@ BClipboard::Name() const
|
|||||||
return (const char *)fName;
|
return (const char *)fName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*! \brief Returns the (locally cached) number of commits to the clipboard.
|
||||||
|
|
||||||
|
The returned value is the number of successful Commit() invocations for
|
||||||
|
the clipboard represented by this object, either invoked on this object
|
||||||
|
or another (even from another application). This method returns a locally
|
||||||
|
cached value, which might already be obsolete. For an up-to-date value
|
||||||
|
SystemCount() can be invoked.
|
||||||
|
|
||||||
|
\return The number of commits to the clipboard.
|
||||||
|
*/
|
||||||
uint32
|
uint32
|
||||||
BClipboard::LocalCount() const
|
BClipboard::LocalCount() const
|
||||||
{
|
{
|
||||||
/* fSystemCount contains the total number of writes to the clipboard.
|
return fCount;
|
||||||
* fCount contains the number of writes to the clipboard done by this
|
|
||||||
* BClipboard.
|
|
||||||
*/
|
|
||||||
return fSystemCount;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*! \brief Returns the number of commits to the clipboard.
|
||||||
|
|
||||||
|
The returned value is the number of successful Commit() invocations for
|
||||||
|
the clipboard represented by this object, either invoked on this object
|
||||||
|
or another (even from another application). This method retrieves the
|
||||||
|
value directly from the system service managing the clipboards, so it is
|
||||||
|
more expensive, but more up-to-date than LocalCount(), which returns a
|
||||||
|
locally cached value.
|
||||||
|
|
||||||
|
\return The number of commits to the clipboard.
|
||||||
|
*/
|
||||||
uint32
|
uint32
|
||||||
BClipboard::SystemCount() const
|
BClipboard::SystemCount() const
|
||||||
{
|
{
|
||||||
@ -258,7 +273,7 @@ BClipboard::DownloadFromSystem(bool force)
|
|||||||
&& fClipHandler.SendMessage(&message, &reply) == B_OK
|
&& fClipHandler.SendMessage(&message, &reply) == B_OK
|
||||||
&& reply.FindMessage("data", fData) == B_OK
|
&& reply.FindMessage("data", fData) == B_OK
|
||||||
&& reply.FindMessenger("data source", &fDataSource) == B_OK
|
&& reply.FindMessenger("data source", &fDataSource) == B_OK
|
||||||
&& reply.FindInt32("count", (int32 *)&fSystemCount) == B_OK)
|
&& reply.FindInt32("count", (int32 *)&fCount) == B_OK)
|
||||||
return B_OK;
|
return B_OK;
|
||||||
|
|
||||||
return B_ERROR;
|
return B_ERROR;
|
||||||
@ -273,10 +288,19 @@ BClipboard::UploadToSystem()
|
|||||||
&& message.AddMessage("data", fData) == B_OK
|
&& message.AddMessage("data", fData) == B_OK
|
||||||
&& message.AddMessenger("data source", be_app_messenger) == B_OK
|
&& message.AddMessenger("data source", be_app_messenger) == B_OK
|
||||||
&& fClipHandler.SendMessage(&message, &reply) == B_OK
|
&& fClipHandler.SendMessage(&message, &reply) == B_OK
|
||||||
&& reply.FindInt32("count", (int32 *)&fSystemCount) == B_OK) {
|
&& reply.FindInt32("count", (int32 *)&fCount) == B_OK) {
|
||||||
fCount++;
|
|
||||||
return B_OK;
|
return B_OK;
|
||||||
}
|
}
|
||||||
return B_ERROR;
|
return B_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// init_clipboard
|
||||||
|
/*! \brief Initializes the global \c be_clipboard.
|
||||||
|
|
||||||
|
Invoked at libbe initialization time.
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
BPrivate::init_clipboard()
|
||||||
|
{
|
||||||
|
be_clipboard = new BClipboard(NULL);
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user