* reverted Adi's premature changes to BWindow and restored _DetermineTarget() and
task_looper() again. * removed BMessenger::fPreferred - whenever you had to specify "usePreferred" separately, you don't have to do that anymore - use B_PREFERRED_TOKEN instead. * fixed BTokenSpace::GetToken() semantics: it will no longer touch the "object" argument in case of failure. * Introduced a BWindow::_DistributeMessage() that will be part of the event dispatcher counterpart to the app_server (the other will be _DetermineTarget()). * Made it easier to use Michael's Message4 implementation: just add the following line to your UserBuildConfig: AppendToConfigVar DEFINES : HAIKU_TOP src : USING_MESSAGE4 : global ; * Introduced ServerWindow::HandlerMessenger() and FocusMessenger() - the first will target the client handler, while the other will target the preferred handler of the client looper (usually the view having focus). * Fixed dano message unflattening in the Message4 code. * Changed BMessage::PrintToStream() to no longer use macros in the Message4 implementation. * I hope that's all - it's a huge change, but it's all connected. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15046 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -3,6 +3,10 @@
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#ifdef USING_MESSAGE4
|
||||
# include <MessagePrivate4.h>
|
||||
#else
|
||||
|
||||
#ifndef MESSAGEPRIVATE_H
|
||||
#define MESSAGEPRIVATE_H
|
||||
|
||||
@@ -11,24 +15,22 @@
|
||||
#include <MessengerPrivate.h>
|
||||
#include <TokenSpace.h>
|
||||
|
||||
class BMessage::Private
|
||||
{
|
||||
class BMessage::Private {
|
||||
public:
|
||||
Private(BMessage* msg) : fMessage(msg) {;}
|
||||
Private(BMessage& msg) : fMessage(&msg) {;}
|
||||
|
||||
inline void SetTarget(int32 token, bool preferred)
|
||||
inline void SetTarget(int32 token)
|
||||
{
|
||||
fMessage->fTarget = token;
|
||||
fMessage->fPreferred = preferred;
|
||||
fMessage->fPreferred = token == B_PREFERRED_TOKEN;
|
||||
}
|
||||
|
||||
inline void SetReply(BMessenger messenger)
|
||||
{
|
||||
BMessenger::Private mp(messenger);
|
||||
fMessage->fReplyTo.port = mp.Port();
|
||||
fMessage->fReplyTo.target
|
||||
= (mp.IsPreferredTarget() ? B_PREFERRED_TOKEN : mp.Token());
|
||||
fMessage->fReplyTo.target = mp.Token();
|
||||
fMessage->fReplyTo.team = mp.Team();
|
||||
fMessage->fReplyTo.preferred = mp.IsPreferredTarget();
|
||||
}
|
||||
@@ -44,10 +46,10 @@ class BMessage::Private
|
||||
}
|
||||
|
||||
static inline status_t SendFlattenedMessage(void *data, int32 size,
|
||||
port_id port, int32 token, bool preferred, bigtime_t timeout)
|
||||
port_id port, int32 token, bigtime_t timeout)
|
||||
{
|
||||
return BMessage::_SendFlattenedMessage(data, size, port, token,
|
||||
preferred, timeout);
|
||||
timeout);
|
||||
}
|
||||
|
||||
static inline void StaticInit()
|
||||
@@ -70,11 +72,4 @@ class BMessage::Private
|
||||
};
|
||||
|
||||
#endif // MESSAGEPRIVATE_H
|
||||
|
||||
/*
|
||||
* $Log $
|
||||
*
|
||||
* $Id $
|
||||
*
|
||||
*/
|
||||
|
||||
#endif // USING_MESSAGE4
|
||||
|
||||
Reference in New Issue
Block a user