Messaging fixes - removed inappropriate BSession use and converted to PortMessage and PortLink as necessary.
Life sucks when you can't sleep. :( git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5601 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -414,6 +414,7 @@ void ServerApp::_DispatchMessage(PortMessage *msg)
|
|||||||
int32 token;
|
int32 token;
|
||||||
port_id sendPort;
|
port_id sendPort;
|
||||||
port_id looperPort;
|
port_id looperPort;
|
||||||
|
port_id replyport;
|
||||||
char *title;
|
char *title;
|
||||||
|
|
||||||
msg->Read<BRect>(&frame);
|
msg->Read<BRect>(&frame);
|
||||||
@@ -425,17 +426,16 @@ void ServerApp::_DispatchMessage(PortMessage *msg)
|
|||||||
msg->Read<port_id>(&sendPort);
|
msg->Read<port_id>(&sendPort);
|
||||||
msg->Read<port_id>(&looperPort);
|
msg->Read<port_id>(&looperPort);
|
||||||
msg->ReadString(&title);
|
msg->ReadString(&title);
|
||||||
|
msg->Read<port_id>(&replyport);
|
||||||
|
|
||||||
STRACE(("ServerApp %s: Got 'New Window' message, trying to do smething...\n",
|
STRACE(("ServerApp %s: Got 'New Window' message, trying to do smething...\n",
|
||||||
_signature.String()));
|
_signature.String()));
|
||||||
|
|
||||||
// ServerWindow constructor will reply with port_id of a newly created port
|
// ServerWindow constructor will reply with port_id of a newly created port
|
||||||
ServerWindow *newwin = new ServerWindow(frame, title,
|
ServerWindow *newwin = new ServerWindow(frame, title,
|
||||||
look, feel, flags, this, sendPort, looperPort, wkspaces, token);
|
look, feel, flags, this, sendPort, looperPort, replyport, wkspaces, token);
|
||||||
|
|
||||||
_winlist->AddItem(newwin);
|
_winlist->AddItem(newwin);
|
||||||
//AddWindowToDesktop( newwin, workspace, ActiveScreen() );
|
|
||||||
|
|
||||||
|
|
||||||
STRACE(("ServerApp %s: New Window %s (%.1f,%.1f,%.1f,%.1f)\n",
|
STRACE(("ServerApp %s: New Window %s (%.1f,%.1f,%.1f,%.1f)\n",
|
||||||
_signature.String(),title,frame.left,frame.top,frame.right,frame.bottom));
|
_signature.String(),title,frame.left,frame.top,frame.right,frame.bottom));
|
||||||
|
|||||||
@@ -120,7 +120,7 @@ write_to_buffer(int8 **_buffer, Type value)
|
|||||||
*/
|
*/
|
||||||
ServerWindow::ServerWindow(BRect rect, const char *string, uint32 wlook,
|
ServerWindow::ServerWindow(BRect rect, const char *string, uint32 wlook,
|
||||||
uint32 wfeel, uint32 wflags, ServerApp *winapp, port_id winport,
|
uint32 wfeel, uint32 wflags, ServerApp *winapp, port_id winport,
|
||||||
port_id looperPort, uint32 index, int32 handlerID)
|
port_id looperPort, port_id replyport, uint32 index, int32 handlerID)
|
||||||
{
|
{
|
||||||
_title = new BString;
|
_title = new BString;
|
||||||
if(string)
|
if(string)
|
||||||
@@ -136,55 +136,63 @@ ServerWindow::ServerWindow(BRect rect, const char *string, uint32 wlook,
|
|||||||
_token = win_token_handler.GetToken();
|
_token = win_token_handler.GetToken();
|
||||||
|
|
||||||
|
|
||||||
// HAVE messaging working.
|
|
||||||
// _sender is the port to which the app awaits messages from the server
|
// _sender is the port to which the app awaits messages from the server
|
||||||
_sender = winport;
|
_sender = winport;
|
||||||
|
|
||||||
// _receiver is the port to which the app sends messages for the server
|
// _receiver is the port to which the app sends messages for the server
|
||||||
_receiver = create_port(30,_title->String());
|
_receiver = create_port(30,_title->String());
|
||||||
|
|
||||||
ses = new BSession( _receiver, _sender );
|
|
||||||
|
|
||||||
// Send a reply to our window - it is expecting _receiver port.
|
// Send a reply to our window - it is expecting _receiver port.
|
||||||
ses->WriteData( &_receiver, sizeof(port_id) );
|
|
||||||
ses->Sync();
|
// Temporarily use winlink to save time and memory
|
||||||
|
_winlink=new PortLink(replyport);
|
||||||
|
|
||||||
|
_winlink->SetOpCode(AS_CREATE_WINDOW);
|
||||||
|
_winlink->Attach<port_id>(_receiver);
|
||||||
|
_winlink->Flush();
|
||||||
|
|
||||||
|
_winlink->SetPort(winport);
|
||||||
|
|
||||||
|
|
||||||
// WAIT for top_view data and create ServerWindow's top most Layer
|
// Wait for top_view data and create ServerWindow's top most Layer
|
||||||
int32 vMsg;
|
|
||||||
int32 vToken;
|
int32 vToken;
|
||||||
BRect vFrame;
|
BRect vFrame;
|
||||||
uint32 vResizeMode;
|
uint32 vResizeMode;
|
||||||
uint32 vFlags;
|
uint32 vFlags;
|
||||||
char* vName = NULL;
|
char* vName = NULL;
|
||||||
|
|
||||||
ses->ReadInt32( &vMsg );
|
PortMessage pmsg;
|
||||||
if (vMsg != AS_LAYER_CREATE_ROOT){
|
pmsg.ReadFromPort(_receiver);
|
||||||
|
if(pmsg.Code() != AS_LAYER_CREATE_ROOT)
|
||||||
debugger("SERVER ERROR: ServerWindow(xxx): NO top_view data received!\n");
|
debugger("SERVER ERROR: ServerWindow(xxx): NO top_view data received!\n");
|
||||||
}
|
|
||||||
ses->ReadInt32( &vToken );
|
|
||||||
ses->ReadRect( &vFrame );
|
|
||||||
ses->ReadUInt32( &vResizeMode );
|
|
||||||
ses->ReadUInt32( &vFlags );
|
|
||||||
vName = ses->ReadString();
|
|
||||||
|
|
||||||
top_layer = new Layer( vFrame, vName, vToken, vResizeMode,
|
pmsg.Read<int32>(&vToken);
|
||||||
vFlags, this );
|
pmsg.Read<BRect>(&vFrame);
|
||||||
|
pmsg.Read<uint32>(&vResizeMode);
|
||||||
|
pmsg.Read<uint32>(&vFlags);
|
||||||
|
pmsg.ReadString(&vName);
|
||||||
|
|
||||||
|
top_layer= new Layer(vFrame, vName, vToken, vResizeMode, vFlags, this);
|
||||||
delete vName;
|
delete vName;
|
||||||
|
|
||||||
cl = top_layer;
|
cl = top_layer;
|
||||||
|
|
||||||
|
|
||||||
// CREATE a WindoBorder object for our ServerWindow.
|
// Create a WindoBorder object for our ServerWindow.
|
||||||
_winborder = new WinBorder(_frame,_title->String(),wlook,wfeel,wflags,this);
|
_winborder = new WinBorder(_frame,_title->String(),wlook,wfeel,wflags,this);
|
||||||
|
|
||||||
|
|
||||||
// SPAWN our message monitoring _monitorthread
|
// Spawn our message-monitoring _monitorthread
|
||||||
_monitorthread = spawn_thread(MonitorWin, _title->String(), B_NORMAL_PRIORITY, this);
|
_monitorthread = spawn_thread(MonitorWin, _title->String(), B_NORMAL_PRIORITY, this);
|
||||||
if(_monitorthread != B_NO_MORE_THREADS && _monitorthread != B_NO_MEMORY)
|
if(_monitorthread != B_NO_MORE_THREADS && _monitorthread != B_NO_MEMORY)
|
||||||
resume_thread(_monitorthread);
|
resume_thread(_monitorthread);
|
||||||
|
|
||||||
|
|
||||||
// ADD window to desktop structure.
|
// Add window to desktop structure.
|
||||||
AddWindowToDesktop(this,index,ActiveScreen());
|
AddWindowToDesktop(this,index,ActiveScreen());
|
||||||
|
|
||||||
STRACE(("ServerWindow %s:\n",_title->String()));
|
STRACE(("ServerWindow %s:\n",_title->String()));
|
||||||
STRACE(("\tFrame (%.1f,%.1f,%.1f,%.1f)\n",rect.left,rect.top,rect.right,rect.bottom));
|
STRACE(("\tFrame (%.1f,%.1f,%.1f,%.1f)\n",rect.left,rect.top,rect.right,rect.bottom));
|
||||||
STRACE(("\tPort: %ld\n",_receiver));
|
STRACE(("\tPort: %ld\n",_receiver));
|
||||||
@@ -207,8 +215,6 @@ STRACE(("ServerWindow %s:~ServerWindow()\n",_title->String()));
|
|||||||
cl = NULL;
|
cl = NULL;
|
||||||
if (top_layer)
|
if (top_layer)
|
||||||
delete top_layer;
|
delete top_layer;
|
||||||
delete ses;
|
|
||||||
ses = NULL;
|
|
||||||
}
|
}
|
||||||
kill_thread(_monitorthread);
|
kill_thread(_monitorthread);
|
||||||
}
|
}
|
||||||
@@ -471,33 +477,36 @@ bool ServerWindow::IsLocked(void)
|
|||||||
return _locker.IsLocked();
|
return _locker.IsLocked();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ServerWindow::DispatchMessage( int32 code )
|
void ServerWindow::DispatchMessage(PortMessage msg)
|
||||||
{
|
{
|
||||||
switch( code )
|
switch(msg.Code())
|
||||||
{
|
{
|
||||||
/********** BView Messages ***********/
|
//--------- BView Messages -----------------
|
||||||
case AS_SET_CURRENT_LAYER:
|
case AS_SET_CURRENT_LAYER:
|
||||||
{
|
{
|
||||||
int32 token;
|
int32 token;
|
||||||
|
|
||||||
ses->ReadInt32( &token );
|
msg.Read<int32>(&token);
|
||||||
|
|
||||||
Layer *current = FindLayer(top_layer, token);
|
Layer *current = FindLayer(top_layer, token);
|
||||||
if (current)
|
if (current)
|
||||||
cl = current;
|
cl = current;
|
||||||
else // hope this NEVER happens! :-)
|
else // hope this NEVER happens! :-)
|
||||||
printf("Server PANIC: window %s: cannot find Layer with ID %ld\n", _title->String(), token);
|
debugger("Server PANIC: window cannot find Layer with ID\n");
|
||||||
|
|
||||||
STRACE(("ServerWindow %s: Message AS_SET_CURRENT_LAYER: Layer name: %s\n", _title->String(), cl->_name->String()));
|
STRACE(("ServerWindow %s: Message AS_SET_CURRENT_LAYER: Layer name: %s\n", _title->String(), cl->_name->String()));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case AS_LAYER_CREATE:
|
case AS_LAYER_CREATE:
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
|
TODO: Figure out what Adi did here and convert to PortMessages
|
||||||
|
|
||||||
// Received when a view is attached to a window. This will require
|
// Received when a view is attached to a window. This will require
|
||||||
// us to attach a layer in the tree in the same manner and invalidate
|
// us to attach a layer in the tree in the same manner and invalidate
|
||||||
// the area in which the new layer resides assuming that it is
|
// the area in which the new layer resides assuming that it is
|
||||||
// visible.
|
// visible.
|
||||||
STRACE(("SW %s: AS_LAYER_CREATE...\n", _title->String()));
|
STRACE(("ServerWindow %s: AS_LAYER_CREATE...\n", _title->String()));
|
||||||
Layer *oldCL = cl;
|
Layer *oldCL = cl;
|
||||||
|
|
||||||
int32 token;
|
int32 token;
|
||||||
@@ -508,13 +517,13 @@ void ServerWindow::DispatchMessage( int32 code )
|
|||||||
int32 childCount;
|
int32 childCount;
|
||||||
char* name;
|
char* name;
|
||||||
|
|
||||||
ses->ReadInt32( &token );
|
msg.Read<int32>(&token);
|
||||||
name = ses->ReadString();
|
msg.ReadString(&name);
|
||||||
ses->ReadRect( &frame );
|
msg.Read<BRect>(&frame);
|
||||||
ses->ReadInt32( (int32*)&resizeMask );
|
msg.Read<int32>((int32*)&resizeMask);
|
||||||
ses->ReadInt32( (int32*)&flags );
|
msg.Read<int32>((int32*)&flags);
|
||||||
ses->ReadBool( &hidden );
|
msg.Read<bool>(&hidden);
|
||||||
ses->ReadInt32( &childCount );
|
msg.Read<int32>(&childCount);
|
||||||
|
|
||||||
// view's visible area is invalidated here
|
// view's visible area is invalidated here
|
||||||
Layer *newLayer;
|
Layer *newLayer;
|
||||||
@@ -526,10 +535,10 @@ void ServerWindow::DispatchMessage( int32 code )
|
|||||||
cl = newLayer;
|
cl = newLayer;
|
||||||
|
|
||||||
int32 msgCode;
|
int32 msgCode;
|
||||||
ses->ReadInt32( &msgCode ); // this is AS_LAYER_SET_FONT_STATE
|
msg.Read<int32>(&msgCode); // this is AS_LAYER_SET_FONT_STATE
|
||||||
DispatchMessage(msgCode);
|
DispatchMessage(msgCode);
|
||||||
|
|
||||||
ses->ReadInt32( &msgCode ); // this is AS_LAYER_SET_STATE
|
msg.Read<int32>(&msgCode); // this is AS_LAYER_SET_STATE
|
||||||
DispatchMessage(msgCode);
|
DispatchMessage(msgCode);
|
||||||
|
|
||||||
// attach the view to the tree structure.
|
// attach the view to the tree structure.
|
||||||
@@ -537,13 +546,14 @@ void ServerWindow::DispatchMessage( int32 code )
|
|||||||
|
|
||||||
// attach its children.
|
// attach its children.
|
||||||
for(int i = 0; i < childCount; i++){
|
for(int i = 0; i < childCount; i++){
|
||||||
ses->ReadInt32( &msgCode ); // this is AS_LAYER_CREATE
|
msg.Read<int32>(&msgCode); // this is AS_LAYER_CREATE
|
||||||
DispatchMessage(msgCode);
|
DispatchMessage(msgCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
cl = oldCL;
|
cl = oldCL;
|
||||||
|
|
||||||
STRACE(("DONE: ServerWindow %s: Message AS_CREATE_LAYER: Parent: %s, Child: %s\n", _title->String(), cl->_name->String(), name));
|
STRACE(("DONE: ServerWindow %s: Message AS_CREATE_LAYER: Parent: %s, Child: %s\n", _title->String(), cl->_name->String(), name));
|
||||||
|
*/
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case AS_LAYER_DELETE:
|
case AS_LAYER_DELETE:
|
||||||
@@ -578,22 +588,22 @@ void ServerWindow::DispatchMessage( int32 code )
|
|||||||
pattern patt;
|
pattern patt;
|
||||||
int32 clippRegRects;
|
int32 clippRegRects;
|
||||||
|
|
||||||
ses->ReadPoint( &(cl->_layerdata->penlocation) );
|
msg.Read<BPoint>(&(cl->_layerdata->penlocation));
|
||||||
ses->ReadFloat( &(cl->_layerdata->pensize) );
|
msg.Read<float>(&(cl->_layerdata->pensize));
|
||||||
ses->ReadData( &highColor, sizeof(rgb_color) );
|
msg.Read<rgb_color>(&highColor);
|
||||||
ses->ReadData( &lowColor, sizeof(rgb_color) );
|
msg.Read<rgb_color>(&lowColor);
|
||||||
ses->ReadData( &viewColor, sizeof(rgb_color) );
|
msg.Read<rgb_color>(&viewColor);
|
||||||
ses->ReadData( &patt, sizeof(pattern) );
|
msg.Read<pattern>(&patt);
|
||||||
ses->ReadInt8( (int8*)&(cl->_layerdata->draw_mode) );
|
msg.Read<int8>((int8*)&(cl->_layerdata->draw_mode));
|
||||||
ses->ReadPoint( &(cl->_layerdata->coordOrigin) );
|
msg.Read<BPoint>(&(cl->_layerdata->coordOrigin));
|
||||||
ses->ReadInt8( (int8*)&(cl->_layerdata->lineJoin) );
|
msg.Read<int8>((int8*)&(cl->_layerdata->lineJoin));
|
||||||
ses->ReadInt8( (int8*)&(cl->_layerdata->lineCap) );
|
msg.Read<int8>((int8*)&(cl->_layerdata->lineCap));
|
||||||
ses->ReadFloat( &(cl->_layerdata->miterLimit) );
|
msg.Read<float>(&(cl->_layerdata->miterLimit));
|
||||||
ses->ReadInt8( (int8*)&(cl->_layerdata->alphaSrcMode) );
|
msg.Read<int8>((int8*)&(cl->_layerdata->alphaSrcMode));
|
||||||
ses->ReadInt8( (int8*)&(cl->_layerdata->alphaFncMode) );
|
msg.Read<int8>((int8*)&(cl->_layerdata->alphaFncMode));
|
||||||
ses->ReadFloat( &(cl->_layerdata->scale) );
|
msg.Read<float>(&(cl->_layerdata->scale));
|
||||||
ses->ReadBool( &(cl->_layerdata->fontAliasing) );
|
msg.Read<bool>(&(cl->_layerdata->fontAliasing));
|
||||||
ses->ReadInt32( &clippRegRects );
|
msg.Read<int32>(&clippRegRects);
|
||||||
|
|
||||||
cl->_layerdata->patt.Set(*((uint64*)&patt));
|
cl->_layerdata->patt.Set(*((uint64*)&patt));
|
||||||
cl->_layerdata->highcolor.SetColor(highColor);
|
cl->_layerdata->highcolor.SetColor(highColor);
|
||||||
@@ -609,7 +619,7 @@ void ServerWindow::DispatchMessage( int32 code )
|
|||||||
BRect rect;
|
BRect rect;
|
||||||
|
|
||||||
for(int32 i = 0; i < clippRegRects; i++){
|
for(int32 i = 0; i < clippRegRects; i++){
|
||||||
ses->ReadRect( &rect );
|
msg.Read<BRect>(&rect);
|
||||||
cl->_layerdata->clippReg->Include(rect);
|
cl->_layerdata->clippReg->Include(rect);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -631,11 +641,11 @@ void ServerWindow::DispatchMessage( int32 code )
|
|||||||
{
|
{
|
||||||
uint16 mask;
|
uint16 mask;
|
||||||
|
|
||||||
ses->ReadInt16( (int16*)&mask );
|
msg.Read<uint16>(&mask);
|
||||||
|
|
||||||
if (mask & B_FONT_FAMILY_AND_STYLE){
|
if (mask & B_FONT_FAMILY_AND_STYLE){
|
||||||
uint32 fontID;
|
uint32 fontID;
|
||||||
ses->ReadInt32( (int32*)&fontID );
|
msg.Read<int32>((int32*)&fontID);
|
||||||
// TODO: implement later. Currently there is no SetFamAndStyle(uint32)
|
// TODO: implement later. Currently there is no SetFamAndStyle(uint32)
|
||||||
// in ServerFont class. DW, could you add one?
|
// in ServerFont class. DW, could you add one?
|
||||||
//cl->_layerdata->font->
|
//cl->_layerdata->font->
|
||||||
@@ -643,43 +653,43 @@ void ServerWindow::DispatchMessage( int32 code )
|
|||||||
|
|
||||||
if (mask & B_FONT_SIZE){
|
if (mask & B_FONT_SIZE){
|
||||||
float size;
|
float size;
|
||||||
ses->ReadFloat( &size );
|
msg.Read<float>(&size);
|
||||||
cl->_layerdata->font.SetSize(size);
|
cl->_layerdata->font.SetSize(size);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mask & B_FONT_SHEAR){
|
if (mask & B_FONT_SHEAR){
|
||||||
float shear;
|
float shear;
|
||||||
ses->ReadFloat( &shear );
|
msg.Read<float>(&shear);
|
||||||
cl->_layerdata->font.SetShear(shear);
|
cl->_layerdata->font.SetShear(shear);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mask & B_FONT_ROTATION){
|
if (mask & B_FONT_ROTATION){
|
||||||
float rotation;
|
float rotation;
|
||||||
ses->ReadFloat( &rotation );
|
msg.Read<float>(&rotation);
|
||||||
cl->_layerdata->font.SetRotation(rotation);
|
cl->_layerdata->font.SetRotation(rotation);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mask & B_FONT_SPACING){
|
if (mask & B_FONT_SPACING){
|
||||||
uint8 spacing;
|
uint8 spacing;
|
||||||
ses->ReadInt8( (int8*)&spacing ); // uint8
|
msg.Read<uint8>(&spacing); // uint8
|
||||||
cl->_layerdata->font.SetSpacing(spacing);
|
cl->_layerdata->font.SetSpacing(spacing);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mask & B_FONT_ENCODING){
|
if (mask & B_FONT_ENCODING){
|
||||||
uint8 encoding;
|
uint8 encoding;
|
||||||
ses->ReadInt8( (int8*)&encoding ); // uint8
|
msg.Read<int8>((int8*)&encoding); // uint8
|
||||||
cl->_layerdata->font.SetEncoding(encoding);
|
cl->_layerdata->font.SetEncoding(encoding);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mask & B_FONT_FACE){
|
if (mask & B_FONT_FACE){
|
||||||
uint16 face;
|
uint16 face;
|
||||||
ses->ReadInt16( (int16*)&face ); // uint16
|
msg.Read<uint16>(&face); // uint16
|
||||||
cl->_layerdata->font.SetFace(face);
|
cl->_layerdata->font.SetFace(face);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mask & B_FONT_FLAGS){
|
if (mask & B_FONT_FLAGS){
|
||||||
uint32 flags;
|
uint32 flags;
|
||||||
ses->ReadInt32( (int32*)&flags ); // uint32
|
msg.Read<uint32>(&flags); // uint32
|
||||||
cl->_layerdata->font.SetFlags(flags);
|
cl->_layerdata->font.SetFlags(flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -700,46 +710,46 @@ void ServerWindow::DispatchMessage( int32 code )
|
|||||||
patt = ld->patt.GetInt64();
|
patt = ld->patt.GetInt64();
|
||||||
|
|
||||||
// TODO: DW implement such a method in ServerFont class!
|
// TODO: DW implement such a method in ServerFont class!
|
||||||
ses->WriteUInt32( 0UL /*uint32 ld->font.GetFamAndStyle()*/ );
|
_winlink->Attach<uint32>(0UL /*uint32 ld->font.GetFamAndStyle()*/);
|
||||||
ses->WriteFloat( ld->font.Size() );
|
_winlink->Attach<float>(ld->font.Size());
|
||||||
ses->WriteFloat( ld->font.Shear() );
|
_winlink->Attach<float>(ld->font.Shear());
|
||||||
ses->WriteFloat( ld->font.Rotation() );
|
_winlink->Attach<float>(ld->font.Rotation());
|
||||||
ses->WriteUInt8( ld->font.Spacing() );
|
_winlink->Attach<uint8>(ld->font.Spacing());
|
||||||
ses->WriteUInt8( ld->font.Encoding() );
|
_winlink->Attach<uint8>(ld->font.Encoding());
|
||||||
ses->WriteUInt16( ld->font.Face() );
|
_winlink->Attach<uint16>(ld->font.Face());
|
||||||
ses->WriteUInt32( ld->font.Flags() );
|
_winlink->Attach<uint32>(ld->font.Flags());
|
||||||
|
|
||||||
ses->WritePoint( ld->penlocation );
|
_winlink->Attach<BPoint>(ld->penlocation);
|
||||||
ses->WriteFloat( ld->pensize );
|
_winlink->Attach<float>(ld->pensize);
|
||||||
ses->WriteData( &hc, sizeof(rgb_color)/* 4*8 */ );
|
_winlink->Attach<rgb_color>(hc);
|
||||||
ses->WriteData( &lc, sizeof(rgb_color)/* 4*8 */ );
|
_winlink->Attach<rgb_color>(lc);
|
||||||
ses->WriteData( &vc, sizeof(rgb_color)/* 4*8 */ );
|
_winlink->Attach<rgb_color>(vc);
|
||||||
ses->WriteData( &patt, sizeof(pattern)/* 8*8 */ );
|
// TODO: fix this to use the templatized version
|
||||||
ses->WritePoint( ld->coordOrigin );
|
_winlink->Attach(&patt,sizeof(pattern));
|
||||||
ses->WriteUInt8( (uint8)(ld->draw_mode) );
|
_winlink->Attach<BPoint>(ld->coordOrigin);
|
||||||
ses->WriteUInt8( (uint8)(ld->lineCap) );
|
_winlink->Attach<uint8>((uint8)(ld->draw_mode));
|
||||||
ses->WriteUInt8( (uint8)(ld->lineJoin) );
|
_winlink->Attach<uint8>((uint8)(ld->lineCap));
|
||||||
ses->WriteFloat( ld->miterLimit );
|
_winlink->Attach<uint8>((uint8)(ld->lineJoin));
|
||||||
ses->WriteUInt8( (uint8)(ld->alphaSrcMode) );
|
_winlink->Attach<float>(ld->miterLimit);
|
||||||
ses->WriteUInt8( (uint8)(ld->alphaFncMode) );
|
_winlink->Attach<uint8>((uint8)(ld->alphaSrcMode));
|
||||||
ses->WriteFloat( ld->scale );
|
_winlink->Attach<uint8>((uint8)(ld->alphaFncMode));
|
||||||
ses->WriteBool( ld->fontAliasing );
|
_winlink->Attach<float>(ld->scale);
|
||||||
|
_winlink->Attach<bool>(ld->fontAliasing);
|
||||||
|
|
||||||
int32 noOfRects = 0;
|
int32 noOfRects = 0;
|
||||||
if (ld->clippReg)
|
if (ld->clippReg)
|
||||||
noOfRects = ld->clippReg->CountRects();
|
noOfRects = ld->clippReg->CountRects();
|
||||||
|
|
||||||
ses->WriteInt32( noOfRects );
|
_winlink->Attach<int32>(noOfRects);
|
||||||
|
|
||||||
for(int i = 0; i < noOfRects; i++){
|
for(int i = 0; i < noOfRects; i++){
|
||||||
ses->WriteRect( ld->clippReg->RectAt(i) );
|
_winlink->Attach<BRect>(ld->clippReg->RectAt(i));
|
||||||
}
|
}
|
||||||
|
|
||||||
ses->WriteFloat( cl->_frame.left );
|
_winlink->Attach<float>(cl->_frame.left);
|
||||||
ses->WriteFloat( cl->_frame.top );
|
_winlink->Attach<float>(cl->_frame.top);
|
||||||
ses->WriteRect( cl->_frame.OffsetToCopy( cl->_boundsLeftTop ) );
|
_winlink->Attach<BRect>(cl->_frame.OffsetToCopy(cl->_boundsLeftTop));
|
||||||
|
_winlink->Flush();
|
||||||
ses->Sync();
|
|
||||||
|
|
||||||
STRACE(("ServerWindow %s: Message AS_LAYER_GET_STATE: Layer: %s\n",_title->String(), cl->_name->String()));
|
STRACE(("ServerWindow %s: Message AS_LAYER_GET_STATE: Layer: %s\n",_title->String(), cl->_name->String()));
|
||||||
break;
|
break;
|
||||||
@@ -748,8 +758,8 @@ void ServerWindow::DispatchMessage( int32 code )
|
|||||||
{
|
{
|
||||||
float x, y;
|
float x, y;
|
||||||
|
|
||||||
ses->ReadFloat( &x );
|
msg.Read<float>(&x);
|
||||||
ses->ReadFloat( &y );
|
msg.Read<float>(&y);
|
||||||
|
|
||||||
cl->MoveBy(x, y);
|
cl->MoveBy(x, y);
|
||||||
|
|
||||||
@@ -760,8 +770,8 @@ void ServerWindow::DispatchMessage( int32 code )
|
|||||||
{
|
{
|
||||||
float newWidth, newHeight;
|
float newWidth, newHeight;
|
||||||
|
|
||||||
ses->ReadFloat( &newWidth );
|
msg.Read<float>(&newWidth);
|
||||||
ses->ReadFloat( &newHeight );
|
msg.Read<float>(&newHeight);
|
||||||
/* TODO: check for minimum alowed. WinBorder should provide such
|
/* TODO: check for minimum alowed. WinBorder should provide such
|
||||||
* a method, based on its decorator.
|
* a method, based on its decorator.
|
||||||
*/
|
*/
|
||||||
@@ -772,10 +782,10 @@ void ServerWindow::DispatchMessage( int32 code )
|
|||||||
}
|
}
|
||||||
case AS_LAYER_GET_COORD:
|
case AS_LAYER_GET_COORD:
|
||||||
{
|
{
|
||||||
ses->WriteFloat( cl->_frame.left );
|
_winlink->Attach<float>(cl->_frame.left);
|
||||||
ses->WriteFloat( cl->_frame.top );
|
_winlink->Attach<float>(cl->_frame.top);
|
||||||
ses->WriteRect( cl->_frame.OffsetToCopy( cl->_boundsLeftTop ) );
|
_winlink->Attach<BRect>(cl->_frame.OffsetToCopy(cl->_boundsLeftTop));
|
||||||
ses->Sync();
|
_winlink->Flush();
|
||||||
|
|
||||||
STRACE(("ServerWindow %s: Message AS_LAYER_GET_COORD: Layer: %s\n",_title->String(), cl->_name->String()));
|
STRACE(("ServerWindow %s: Message AS_LAYER_GET_COORD: Layer: %s\n",_title->String(), cl->_name->String()));
|
||||||
break;
|
break;
|
||||||
@@ -784,8 +794,8 @@ void ServerWindow::DispatchMessage( int32 code )
|
|||||||
{
|
{
|
||||||
float x, y;
|
float x, y;
|
||||||
|
|
||||||
ses->ReadFloat( &x );
|
msg.Read<float>(&x);
|
||||||
ses->ReadFloat( &y );
|
msg.Read<float>(&y);
|
||||||
|
|
||||||
cl->_layerdata->coordOrigin.Set(x, y);
|
cl->_layerdata->coordOrigin.Set(x, y);
|
||||||
|
|
||||||
@@ -794,15 +804,15 @@ void ServerWindow::DispatchMessage( int32 code )
|
|||||||
}
|
}
|
||||||
case AS_LAYER_GET_ORIGIN:
|
case AS_LAYER_GET_ORIGIN:
|
||||||
{
|
{
|
||||||
ses->WritePoint( cl->_layerdata->coordOrigin );
|
_winlink->Attach<BPoint>(cl->_layerdata->coordOrigin);
|
||||||
ses->Sync();
|
_winlink->Flush();
|
||||||
|
|
||||||
STRACE(("ServerWindow %s: Message AS_LAYER_GET_ORIGIN: Layer: %s\n",_title->String(), cl->_name->String()));
|
STRACE(("ServerWindow %s: Message AS_LAYER_GET_ORIGIN: Layer: %s\n",_title->String(), cl->_name->String()));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case AS_LAYER_RESIZE_MODE:
|
case AS_LAYER_RESIZE_MODE:
|
||||||
{
|
{
|
||||||
ses->ReadUInt32( &(cl->_resize_mode) );
|
msg.Read<uint32>(&(cl->_resize_mode));
|
||||||
|
|
||||||
STRACE(("ServerWindow %s: Message AS_LAYER_RESIZE_MODE: Layer: %s\n",_title->String(), cl->_name->String()));
|
STRACE(("ServerWindow %s: Message AS_LAYER_RESIZE_MODE: Layer: %s\n",_title->String(), cl->_name->String()));
|
||||||
break;
|
break;
|
||||||
@@ -811,7 +821,7 @@ void ServerWindow::DispatchMessage( int32 code )
|
|||||||
{
|
{
|
||||||
int32 token;
|
int32 token;
|
||||||
|
|
||||||
ses->ReadInt32( &token );
|
msg.Read<int32>(&token);
|
||||||
|
|
||||||
cursormanager->SetCursor(token);
|
cursormanager->SetCursor(token);
|
||||||
|
|
||||||
@@ -820,7 +830,7 @@ void ServerWindow::DispatchMessage( int32 code )
|
|||||||
}
|
}
|
||||||
case AS_LAYER_SET_FLAGS:
|
case AS_LAYER_SET_FLAGS:
|
||||||
{
|
{
|
||||||
ses->ReadUInt32( &(cl->_flags) );
|
msg.Read<uint32>(&(cl->_flags));
|
||||||
|
|
||||||
STRACE(("ServerWindow %s: Message AS_LAYER_SET_FLAGS: Layer: %s\n",_title->String(), cl->_name->String()));
|
STRACE(("ServerWindow %s: Message AS_LAYER_SET_FLAGS: Layer: %s\n",_title->String(), cl->_name->String()));
|
||||||
break;
|
break;
|
||||||
@@ -847,9 +857,9 @@ void ServerWindow::DispatchMessage( int32 code )
|
|||||||
* it was called. e.g.: different lineCap or lineJoin. Strange result
|
* it was called. e.g.: different lineCap or lineJoin. Strange result
|
||||||
* would appear.
|
* would appear.
|
||||||
*/
|
*/
|
||||||
ses->ReadInt8( &lineCap );
|
msg.Read<int8>(&lineCap);
|
||||||
ses->ReadInt8( &lineJoin );
|
msg.Read<int8>(&lineJoin);
|
||||||
ses->ReadFloat( &(cl->_layerdata->miterLimit) );
|
msg.Read<float>(&(cl->_layerdata->miterLimit));
|
||||||
|
|
||||||
cl->_layerdata->lineCap = (cap_mode)lineCap;
|
cl->_layerdata->lineCap = (cap_mode)lineCap;
|
||||||
cl->_layerdata->lineJoin = (join_mode)lineJoin;
|
cl->_layerdata->lineJoin = (join_mode)lineJoin;
|
||||||
@@ -859,10 +869,10 @@ void ServerWindow::DispatchMessage( int32 code )
|
|||||||
}
|
}
|
||||||
case AS_LAYER_GET_LINE_MODE:
|
case AS_LAYER_GET_LINE_MODE:
|
||||||
{
|
{
|
||||||
ses->WriteInt8( (int8)(cl->_layerdata->lineCap) );
|
_winlink->Attach<int8>((int8)(cl->_layerdata->lineCap));
|
||||||
ses->WriteInt8( (int8)(cl->_layerdata->lineJoin) );
|
_winlink->Attach<int8>((int8)(cl->_layerdata->lineJoin));
|
||||||
ses->WriteFloat( cl->_layerdata->miterLimit );
|
_winlink->Attach<float>(cl->_layerdata->miterLimit);
|
||||||
ses->Sync();
|
_winlink->Flush();
|
||||||
|
|
||||||
STRACE(("ServerWindow %s: Message AS_LAYER_GET_LINE_MODE: Layer: %s\n",_title->String(), cl->_name->String()));
|
STRACE(("ServerWindow %s: Message AS_LAYER_GET_LINE_MODE: Layer: %s\n",_title->String(), cl->_name->String()));
|
||||||
break;
|
break;
|
||||||
@@ -896,7 +906,7 @@ void ServerWindow::DispatchMessage( int32 code )
|
|||||||
}
|
}
|
||||||
case AS_LAYER_SET_SCALE:
|
case AS_LAYER_SET_SCALE:
|
||||||
{
|
{
|
||||||
ses->ReadFloat( &(cl->_layerdata->scale) );
|
msg.Read<float>(&(cl->_layerdata->scale));
|
||||||
|
|
||||||
STRACE(("ServerWindow %s: Message AS_LAYER_SET_SCALE: Layer: %s\n",_title->String(), cl->_name->String()));
|
STRACE(("ServerWindow %s: Message AS_LAYER_SET_SCALE: Layer: %s\n",_title->String(), cl->_name->String()));
|
||||||
break;
|
break;
|
||||||
@@ -909,8 +919,8 @@ void ServerWindow::DispatchMessage( int32 code )
|
|||||||
while((ld = ld->prevState))
|
while((ld = ld->prevState))
|
||||||
scale *= ld->scale;
|
scale *= ld->scale;
|
||||||
|
|
||||||
ses->WriteFloat( scale );
|
_winlink->Attach<float>(scale);
|
||||||
ses->Sync();
|
_winlink->Flush();
|
||||||
|
|
||||||
STRACE(("ServerWindow %s: Message AS_LAYER_SET_SCALE: Layer: %s\n",_title->String(), cl->_name->String()));
|
STRACE(("ServerWindow %s: Message AS_LAYER_SET_SCALE: Layer: %s\n",_title->String(), cl->_name->String()));
|
||||||
break;
|
break;
|
||||||
@@ -919,8 +929,8 @@ void ServerWindow::DispatchMessage( int32 code )
|
|||||||
{
|
{
|
||||||
float x, y;
|
float x, y;
|
||||||
|
|
||||||
ses->ReadFloat( &x );
|
msg.Read<float>(&x);
|
||||||
ses->ReadFloat( &y );
|
msg.Read<float>(&y);
|
||||||
|
|
||||||
cl->_layerdata->penlocation.Set(x, y);
|
cl->_layerdata->penlocation.Set(x, y);
|
||||||
|
|
||||||
@@ -929,23 +939,23 @@ void ServerWindow::DispatchMessage( int32 code )
|
|||||||
}
|
}
|
||||||
case AS_LAYER_GET_PEN_LOC:
|
case AS_LAYER_GET_PEN_LOC:
|
||||||
{
|
{
|
||||||
ses->WritePoint( cl->_layerdata->penlocation );
|
_winlink->Attach<BPoint>(cl->_layerdata->penlocation);
|
||||||
ses->Sync();
|
_winlink->Flush();
|
||||||
|
|
||||||
STRACE(("ServerWindow %s: Message AS_LAYER_GET_PEN_LOC: Layer: %s\n",_title->String(), cl->_name->String()));
|
STRACE(("ServerWindow %s: Message AS_LAYER_GET_PEN_LOC: Layer: %s\n",_title->String(), cl->_name->String()));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case AS_LAYER_SET_PEN_SIZE:
|
case AS_LAYER_SET_PEN_SIZE:
|
||||||
{
|
{
|
||||||
ses->ReadFloat( &(cl->_layerdata->pensize) );
|
msg.Read<float>(&(cl->_layerdata->pensize));
|
||||||
|
|
||||||
STRACE(("ServerWindow %s: Message AS_LAYER_SET_PEN_SIZE: Layer: %s\n",_title->String(), cl->_name->String()));
|
STRACE(("ServerWindow %s: Message AS_LAYER_SET_PEN_SIZE: Layer: %s\n",_title->String(), cl->_name->String()));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case AS_LAYER_GET_PEN_SIZE:
|
case AS_LAYER_GET_PEN_SIZE:
|
||||||
{
|
{
|
||||||
ses->WriteFloat( cl->_layerdata->pensize );
|
_winlink->Attach<float>(cl->_layerdata->pensize);
|
||||||
ses->Sync();
|
_winlink->Flush();
|
||||||
|
|
||||||
STRACE(("ServerWindow %s: Message AS_LAYER_GET_PEN_SIZE: Layer: %s\n",_title->String(), cl->_name->String()));
|
STRACE(("ServerWindow %s: Message AS_LAYER_GET_PEN_SIZE: Layer: %s\n",_title->String(), cl->_name->String()));
|
||||||
break;
|
break;
|
||||||
@@ -954,7 +964,7 @@ void ServerWindow::DispatchMessage( int32 code )
|
|||||||
{
|
{
|
||||||
rgb_color c;
|
rgb_color c;
|
||||||
|
|
||||||
ses->ReadData( &c, sizeof(rgb_color) );
|
msg.Read<rgb_color>(&c);
|
||||||
|
|
||||||
cl->_layerdata->highcolor.SetColor(c);
|
cl->_layerdata->highcolor.SetColor(c);
|
||||||
|
|
||||||
@@ -965,7 +975,7 @@ void ServerWindow::DispatchMessage( int32 code )
|
|||||||
{
|
{
|
||||||
rgb_color c;
|
rgb_color c;
|
||||||
|
|
||||||
ses->ReadData( &c, sizeof(rgb_color) );
|
msg.Read<rgb_color>(&c);
|
||||||
|
|
||||||
cl->_layerdata->lowcolor.SetColor(c);
|
cl->_layerdata->lowcolor.SetColor(c);
|
||||||
|
|
||||||
@@ -976,7 +986,7 @@ void ServerWindow::DispatchMessage( int32 code )
|
|||||||
{
|
{
|
||||||
rgb_color c;
|
rgb_color c;
|
||||||
|
|
||||||
ses->ReadData( &c, sizeof(rgb_color) );
|
msg.Read<rgb_color>(&c);
|
||||||
|
|
||||||
cl->_layerdata->viewcolor.SetColor(c);
|
cl->_layerdata->viewcolor.SetColor(c);
|
||||||
|
|
||||||
@@ -991,10 +1001,10 @@ void ServerWindow::DispatchMessage( int32 code )
|
|||||||
lowColor = cl->_layerdata->lowcolor.GetColor32();
|
lowColor = cl->_layerdata->lowcolor.GetColor32();
|
||||||
viewColor = cl->_layerdata->viewcolor.GetColor32();
|
viewColor = cl->_layerdata->viewcolor.GetColor32();
|
||||||
|
|
||||||
ses->WriteData( &highColor, sizeof(rgb_color) );
|
_winlink->Attach<rgb_color>(highColor);
|
||||||
ses->WriteData( &lowColor, sizeof(rgb_color) );
|
_winlink->Attach<rgb_color>(lowColor);
|
||||||
ses->WriteData( &viewColor, sizeof(rgb_color) );
|
_winlink->Attach<rgb_color>(viewColor);
|
||||||
ses->Sync();
|
_winlink->Flush();
|
||||||
|
|
||||||
STRACE(("ServerWindow %s: Message AS_LAYER_GET_COLORS: Layer: %s\n",_title->String(), cl->_name->String()));
|
STRACE(("ServerWindow %s: Message AS_LAYER_GET_COLORS: Layer: %s\n",_title->String(), cl->_name->String()));
|
||||||
break;
|
break;
|
||||||
@@ -1003,8 +1013,8 @@ void ServerWindow::DispatchMessage( int32 code )
|
|||||||
{
|
{
|
||||||
int8 srcAlpha, alphaFunc;
|
int8 srcAlpha, alphaFunc;
|
||||||
|
|
||||||
ses->ReadInt8( &srcAlpha );
|
msg.Read<int8>(&srcAlpha);
|
||||||
ses->ReadInt8( &alphaFunc );
|
msg.Read<int8>(&alphaFunc);
|
||||||
|
|
||||||
cl->_layerdata->alphaSrcMode = (source_alpha)srcAlpha;
|
cl->_layerdata->alphaSrcMode = (source_alpha)srcAlpha;
|
||||||
cl->_layerdata->alphaFncMode = (alpha_function)alphaFunc;
|
cl->_layerdata->alphaFncMode = (alpha_function)alphaFunc;
|
||||||
@@ -1014,9 +1024,9 @@ void ServerWindow::DispatchMessage( int32 code )
|
|||||||
}
|
}
|
||||||
case AS_LAYER_GET_BLEND_MODE:
|
case AS_LAYER_GET_BLEND_MODE:
|
||||||
{
|
{
|
||||||
ses->WriteInt8( (int8)(cl->_layerdata->alphaSrcMode) );
|
_winlink->Attach<int8>((int8)(cl->_layerdata->alphaSrcMode));
|
||||||
ses->WriteInt8( (int8)(cl->_layerdata->alphaFncMode) );
|
_winlink->Attach<int8>((int8)(cl->_layerdata->alphaFncMode));
|
||||||
ses->Sync();
|
_winlink->Flush();
|
||||||
|
|
||||||
STRACE(("ServerWindow %s: Message AS_LAYER_GET_BLEND_MODE: Layer: %s\n",_title->String(), cl->_name->String()));
|
STRACE(("ServerWindow %s: Message AS_LAYER_GET_BLEND_MODE: Layer: %s\n",_title->String(), cl->_name->String()));
|
||||||
break;
|
break;
|
||||||
@@ -1025,7 +1035,7 @@ void ServerWindow::DispatchMessage( int32 code )
|
|||||||
{
|
{
|
||||||
int8 drawingMode;
|
int8 drawingMode;
|
||||||
|
|
||||||
ses->ReadInt8( &drawingMode );
|
msg.Read<int8>(&drawingMode);
|
||||||
|
|
||||||
cl->_layerdata->draw_mode = (drawing_mode)drawingMode;
|
cl->_layerdata->draw_mode = (drawing_mode)drawingMode;
|
||||||
|
|
||||||
@@ -1034,15 +1044,15 @@ void ServerWindow::DispatchMessage( int32 code )
|
|||||||
}
|
}
|
||||||
case AS_LAYER_GET_DRAW_MODE:
|
case AS_LAYER_GET_DRAW_MODE:
|
||||||
{
|
{
|
||||||
ses->WriteInt8( (int8)(cl->_layerdata->draw_mode) );
|
_winlink->Attach<int8>((int8)(cl->_layerdata->draw_mode));
|
||||||
ses->Sync();
|
_winlink->Flush();
|
||||||
|
|
||||||
STRACE(("ServerWindow %s: Message AS_LAYER_GET_DRAW_MODE: Layer: %s\n",_title->String(), cl->_name->String()));
|
STRACE(("ServerWindow %s: Message AS_LAYER_GET_DRAW_MODE: Layer: %s\n",_title->String(), cl->_name->String()));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case AS_LAYER_PRINT_ALIASING:
|
case AS_LAYER_PRINT_ALIASING:
|
||||||
{
|
{
|
||||||
ses->ReadBool( &(cl->_layerdata->fontAliasing) );
|
msg.Read<bool>(&(cl->_layerdata->fontAliasing));
|
||||||
|
|
||||||
STRACE(("ServerWindow %s: Message AS_LAYER_PRINT_ALIASING: Layer: %s\n",_title->String(), cl->_name->String()));
|
STRACE(("ServerWindow %s: Message AS_LAYER_PRINT_ALIASING: Layer: %s\n",_title->String(), cl->_name->String()));
|
||||||
break;
|
break;
|
||||||
@@ -1053,8 +1063,8 @@ void ServerWindow::DispatchMessage( int32 code )
|
|||||||
int32 pictureToken;
|
int32 pictureToken;
|
||||||
BPoint where;
|
BPoint where;
|
||||||
|
|
||||||
ses->ReadInt32( &pictureToken );
|
msg.Read<int32>(&pictureToken);
|
||||||
ses->ReadPoint( &where );
|
msg.Read<BPoint>(&where);
|
||||||
|
|
||||||
|
|
||||||
BRegion reg;
|
BRegion reg;
|
||||||
@@ -1121,8 +1131,8 @@ void ServerWindow::DispatchMessage( int32 code )
|
|||||||
int32 pictureToken;
|
int32 pictureToken;
|
||||||
BPoint where;
|
BPoint where;
|
||||||
|
|
||||||
ses->ReadInt32( &pictureToken );
|
msg.Read<int32>(&pictureToken);
|
||||||
ses->ReadPoint( &where );
|
msg.Read<BPoint>(&where);
|
||||||
|
|
||||||
ServerPicture *sp = NULL;
|
ServerPicture *sp = NULL;
|
||||||
int32 i = 0;
|
int32 i = 0;
|
||||||
@@ -1172,13 +1182,13 @@ void ServerWindow::DispatchMessage( int32 code )
|
|||||||
reg.IntersectWith(ld->clippReg);
|
reg.IntersectWith(ld->clippReg);
|
||||||
|
|
||||||
noOfRects = reg.CountRects();
|
noOfRects = reg.CountRects();
|
||||||
ses->WriteInt32( noOfRects );
|
_winlink->Attach<int32>(noOfRects);
|
||||||
|
|
||||||
for(int i = 0; i < noOfRects; i++){
|
for(int i = 0; i < noOfRects; i++){
|
||||||
ses->WriteRect( reg.RectAt(i) );
|
_winlink->Attach<BRect>(reg.RectAt(i));
|
||||||
}
|
}
|
||||||
|
|
||||||
ses->Sync();
|
_winlink->Flush();
|
||||||
|
|
||||||
STRACE(("ServerWindow %s: Message AS_LAYER_GET_CLIP_REGION: Layer: %s\n",_title->String(), cl->_name->String()));
|
STRACE(("ServerWindow %s: Message AS_LAYER_GET_CLIP_REGION: Layer: %s\n",_title->String(), cl->_name->String()));
|
||||||
break;
|
break;
|
||||||
@@ -1194,10 +1204,10 @@ void ServerWindow::DispatchMessage( int32 code )
|
|||||||
else
|
else
|
||||||
cl->_layerdata->clippReg = new BRegion();
|
cl->_layerdata->clippReg = new BRegion();
|
||||||
|
|
||||||
ses->ReadInt32( &noOfRects );
|
msg.Read<int32>(&noOfRects);
|
||||||
|
|
||||||
for(int i = 0; i < noOfRects; i++){
|
for(int i = 0; i < noOfRects; i++){
|
||||||
ses->ReadRect( &r );
|
msg.Read<BRect>(&r);
|
||||||
cl->_layerdata->clippReg->Include(r);
|
cl->_layerdata->clippReg->Include(r);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1214,7 +1224,7 @@ void ServerWindow::DispatchMessage( int32 code )
|
|||||||
// TODO: watch out for the coordinate system
|
// TODO: watch out for the coordinate system
|
||||||
BRect invalRect;
|
BRect invalRect;
|
||||||
|
|
||||||
ses->ReadRect( &invalRect );
|
msg.Read<BRect>(&invalRect);
|
||||||
|
|
||||||
cl->Invalidate(invalRect);
|
cl->Invalidate(invalRect);
|
||||||
|
|
||||||
@@ -1230,10 +1240,10 @@ void ServerWindow::DispatchMessage( int32 code )
|
|||||||
int32 noOfRects;
|
int32 noOfRects;
|
||||||
BRect rect;
|
BRect rect;
|
||||||
|
|
||||||
ses->ReadInt32( &noOfRects );
|
msg.Read<int32>(&noOfRects);
|
||||||
|
|
||||||
for(int i = 0; i < noOfRects; i++){
|
for(int i = 0; i < noOfRects; i++){
|
||||||
ses->ReadRect( &rect );
|
msg.Read<BRect>(&rect);
|
||||||
invalReg.Include(rect);
|
invalReg.Include(rect);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1392,7 +1402,7 @@ void ServerWindow::DispatchMessage( int32 code )
|
|||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
printf("ServerWindow %s received unexpected code - message offset %lx\n",_title->String(), code - SERVER_TRUE);
|
printf("ServerWindow %s received unexpected code - message offset %lx\n",_title->String(), msg.Code() - SERVER_TRUE);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1947,15 +1957,15 @@ void ServerWindow::DispatchGraphicsMessage(int32 msgsize, int8 *msgbuffer)
|
|||||||
int32 ServerWindow::MonitorWin(void *data)
|
int32 ServerWindow::MonitorWin(void *data)
|
||||||
{
|
{
|
||||||
ServerWindow *win = (ServerWindow *)data;
|
ServerWindow *win = (ServerWindow *)data;
|
||||||
status_t rv;
|
status_t stat;
|
||||||
int32 code;
|
PortMessage msg;
|
||||||
|
|
||||||
for(;;)
|
for(;;)
|
||||||
{
|
{
|
||||||
rv = win->ses->ReadInt32( &code );
|
stat = msg.ReadFromPort(win->_receiver);
|
||||||
|
|
||||||
if ( rv != B_BAD_PORT_ID ){
|
if (stat != B_BAD_PORT_ID){
|
||||||
switch( code ){
|
switch(msg.Code()){
|
||||||
case B_QUIT_REQUESTED:{
|
case B_QUIT_REQUESTED:{
|
||||||
STRACE(("ServerWindow %s received Quit request\n",win->Title()));
|
STRACE(("ServerWindow %s received Quit request\n",win->Title()));
|
||||||
// Our BWindow sent us this message when it quit.
|
// Our BWindow sent us this message when it quit.
|
||||||
@@ -1966,7 +1976,7 @@ int32 ServerWindow::MonitorWin(void *data)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:{
|
default:{
|
||||||
win->DispatchMessage( code );
|
win->DispatchMessage(msg);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1976,7 +1986,7 @@ int32 ServerWindow::MonitorWin(void *data)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( code == B_QUIT_REQUESTED )
|
if(msg.Code() == B_QUIT_REQUESTED)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ public:
|
|||||||
ServerWindow(BRect rect, const char *string,
|
ServerWindow(BRect rect, const char *string,
|
||||||
uint32 wlook, uint32 wfeel, uint32 wflags,
|
uint32 wlook, uint32 wfeel, uint32 wflags,
|
||||||
ServerApp *winapp, port_id winport,
|
ServerApp *winapp, port_id winport,
|
||||||
port_id looperPort, uint32 index,
|
port_id looperPort, port_id replyport, uint32 index,
|
||||||
int32 handlerID);
|
int32 handlerID);
|
||||||
~ServerWindow(void);
|
~ServerWindow(void);
|
||||||
|
|
||||||
@@ -97,7 +97,7 @@ public:
|
|||||||
void Unlock(void);
|
void Unlock(void);
|
||||||
bool IsLocked(void);
|
bool IsLocked(void);
|
||||||
|
|
||||||
void DispatchMessage( int32 code );
|
void DispatchMessage(PortMessage msg);
|
||||||
void DispatchGraphicsMessage(int32 msgsize, int8 *msgbuffer);
|
void DispatchGraphicsMessage(int32 msgsize, int8 *msgbuffer);
|
||||||
static int32 MonitorWin(void *data);
|
static int32 MonitorWin(void *data);
|
||||||
static void HandleMouseEvent(PortMessage *msg);
|
static void HandleMouseEvent(PortMessage *msg);
|
||||||
@@ -141,7 +141,6 @@ protected:
|
|||||||
uint32 _token;
|
uint32 _token;
|
||||||
int32 _handlertoken;
|
int32 _handlertoken;
|
||||||
|
|
||||||
BSession *ses;
|
|
||||||
port_id winLooperPort;
|
port_id winLooperPort;
|
||||||
Layer *top_layer;
|
Layer *top_layer;
|
||||||
Layer *cl; // short for currentLayer. We'll use it a lot, that's why it's short :-)
|
Layer *cl; // short for currentLayer. We'll use it a lot, that's why it's short :-)
|
||||||
|
|||||||
Reference in New Issue
Block a user