4 new message handlers

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4824 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Adi Oanca
2003-09-25 17:25:38 +00:00
parent 30879229e7
commit 153d03aa0b
+96 -5
View File
@@ -45,6 +45,7 @@
#include "Utils.h"
#include "DisplayDriver.h"
#include "ServerPicture.h"
#include "CursorManager.h"
//#define DEBUG_SERVERWINDOW
//#define DEBUG_SERVERWINDOW_MOUSE
@@ -730,6 +731,44 @@ void ServerWindow::DispatchMessage( int32 code )
STRACE(("ServerWindow %s: Message AS_LAYER_GET_COORD: Layer: %s\n",_title->String(), cl->_name->String()));
break;
}
case AS_LAYER_SET_ORIGIN:
{
float x, y;
ses->ReadFloat( &x );
ses->ReadFloat( &y );
cl->_layerdata->coordOrigin.Set(x, y);
STRACE(("ServerWindow %s: Message AS_LAYER_SET_ORIGIN: Layer: %s\n",_title->String(), cl->_name->String()));
break;
}
case AS_LAYER_GET_ORIGIN:
{
ses->WritePoint( cl->_layerdata->coordOrigin );
ses->Sync();
STRACE(("ServerWindow %s: Message AS_LAYER_GET_ORIGIN: Layer: %s\n",_title->String(), cl->_name->String()));
break;
}
case AS_LAYER_RESIZE_MODE:
{
ses->ReadUInt32( &(cl->_resize_mode) );
STRACE(("ServerWindow %s: Message AS_LAYER_RESIZE_MODE: Layer: %s\n",_title->String(), cl->_name->String()));
break;
}
case AS_LAYER_CURSOR:
{
int32 token;
ses->ReadInt32( &token );
cursormanager->SetCursor( token );
STRACE(("ServerWindow %s: Message AS_LAYER_CURSOR: Layer: %s\n",_title->String(), cl->_name->String()));
break;
}
case AS_LAYER_SET_FLAGS:
{
ses->ReadUInt32( &(cl->_flags) );
@@ -957,6 +996,7 @@ void ServerWindow::DispatchMessage( int32 code )
}
case AS_LAYER_CLIP_TO_PICTURE:
{
// TODO: watch out for the coordinate system
int32 pictureToken;
BPoint where;
@@ -982,13 +1022,18 @@ void ServerWindow::DispatchMessage( int32 code )
cl->_layerdata->clippInverse = false;
// TODO: redraw.
/* TODO: modify when you have a function that returns the clipping
* region composed by: the visible region & local clipping
* region(across states) & the picture clipping region.
*/
cl->RequestDraw( cl->_layerdata->clippReg->Frame() );
STRACE(("ServerWindow %s: Message AS_LAYER_CLIP_TO_PICTURE: Layer: %s\n",_title->String(), cl->_name->String()));
break;
}
case AS_LAYER_CLIP_TO_INVERSE_PICTURE:
{
// TODO: watch out for the coordinate system
int32 pictureToken;
BPoint where;
@@ -1014,17 +1059,22 @@ void ServerWindow::DispatchMessage( int32 code )
cl->_layerdata->clippInverse = true;
// TODO: redraw.
/* TODO: modify when you have a function that returns the clipping
* region composed by: the visible region & local clipping
* region(across states) & the picture clipping region.
*/
cl->RequestDraw( cl->_layerdata->clippReg->Frame() );
STRACE(("ServerWindow %s: Message AS_LAYER_CLIP_TO_INVERSE_PICTURE: Layer: %s\n",_title->String(), cl->_name->String()));
break;
}
case AS_LAYER_GET_CLIP_REGION:
{
// TODO: watch out for the coordinate system
BRegion reg;
LayerData *ld;
int32 noOfRects;
// TODO: I think locking is necesary
ld = cl->_layerdata;
reg = cl->ConvertFromParent( cl->_visible );
@@ -1049,9 +1099,10 @@ void ServerWindow::DispatchMessage( int32 code )
}
case AS_LAYER_SET_CLIP_REGION:
{
// TODO: watch out for the coordinate system
int32 noOfRects;
BRect r;
// TODO: I think locking is necesary
if( cl->_layerdata->clippReg )
cl->_layerdata->clippReg->MakeEmpty();
else
@@ -1064,11 +1115,51 @@ void ServerWindow::DispatchMessage( int32 code )
cl->_layerdata->clippReg->Include( r );
}
// TODO: redraw.
/* TODO: modify when you have a function that returns the clipping
* region composed by: the visible region & local clipping
* region(across states) & the picture clipping region.
*/
cl->RequestDraw( cl->_layerdata->clippReg->Frame() );
STRACE(("ServerWindow %s: Message AS_LAYER_SET_CLIP_REGION: Layer: %s\n",_title->String(), cl->_name->String()));
break;
}
case AS_LAYER_INVAL_RECT:
{
// TODO: watch out for the coordinate system
BRect invalRect;
ses->ReadRect( &invalRect );
cl->Invalidate( invalRect );
cl->RequestDraw( invalRect );
STRACE(("ServerWindow %s: Message AS_LAYER_INVAL_RECT: Layer: %s\n",_title->String(), cl->_name->String()));
break;
}
case AS_LAYER_INVAL_REGION:
{
// TODO: watch out for the coordinate system
BRegion invalReg;
int32 noOfRects;
BRect rect;
ses->ReadInt32( &noOfRects );
for( int i = 0; i < noOfRects; i++ ){
ses->ReadRect( &rect );
invalReg.Include( rect );
}
cl->Invalidate( invalReg );
cl->RequestDraw( invalReg.Frame() );
STRACE(("ServerWindow %s: Message AS_LAYER_INVAL_RECT: Layer: %s\n",_title->String(), cl->_name->String()));
break;
}
/********** END: BView Messages ***********/