Implemented handlers needed for Begin/EndPicture, and a handler for DrawPicture().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15816 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
a1a73d28be
commit
1c33148d10
@ -726,27 +726,37 @@ ServerApp::_DispatchMessage(int32 code, BPrivate::LinkReceiver& link)
|
|||||||
STRACE(("ServerApp %s: Create Picture unimplemented\n", Signature()));
|
STRACE(("ServerApp %s: Create Picture unimplemented\n", Signature()));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
case AS_DELETE_PICTURE:
|
case AS_DELETE_PICTURE:
|
||||||
{
|
{
|
||||||
// TODO: Implement AS_DELETE_PICTURE
|
STRACE(("ServerApp %s: Delete Picture\n", Signature()));
|
||||||
STRACE(("ServerApp %s: Delete Picture unimplemented\n", Signature()));
|
int32 token;
|
||||||
|
if (link.Read<int32>(&token) == B_OK)
|
||||||
|
DeletePicture(token);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#if 0
|
||||||
case AS_CLONE_PICTURE:
|
case AS_CLONE_PICTURE:
|
||||||
{
|
{
|
||||||
// TODO: Implement AS_CLONE_PICTURE
|
// TODO: Implement AS_CLONE_PICTURE
|
||||||
STRACE(("ServerApp %s: Clone Picture unimplemented\n", Signature()));
|
STRACE(("ServerApp %s: Clone Picture unimplemented\n", Signature()));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case AS_DOWNLOAD_PICTURE:
|
case AS_DOWNLOAD_PICTURE:
|
||||||
{
|
{
|
||||||
// TODO; Implement AS_DOWNLOAD_PICTURE
|
|
||||||
STRACE(("ServerApp %s: Download Picture unimplemented\n", Signature()));
|
STRACE(("ServerApp %s: Download Picture unimplemented\n", Signature()));
|
||||||
|
int32 token;
|
||||||
|
link.Read<int32>(&token);
|
||||||
|
ServerPicture *picture = App()->FindPicture(token);
|
||||||
|
if (picture != NULL) {
|
||||||
|
link.StartMessage(B_OK);
|
||||||
|
} else
|
||||||
|
link.StartMessage(B_ERROR);
|
||||||
|
|
||||||
// What is this particular function call for, anyway?
|
link.Flush();
|
||||||
|
|
||||||
// DW: I think originally it might have been to support
|
|
||||||
// the undocumented Flatten function.
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -2546,7 +2556,8 @@ ServerApp::CreatePicture(int32 *token)
|
|||||||
fPictureList.AddItem(picture);
|
fPictureList.AddItem(picture);
|
||||||
if (token != NULL)
|
if (token != NULL)
|
||||||
*token = picture->Token();
|
*token = picture->Token();
|
||||||
}
|
}
|
||||||
|
|
||||||
return picture;
|
return picture;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2155,17 +2155,60 @@ ServerWindow::_DispatchViewDrawingMessage(int32 code, BPrivate::LinkReceiver &li
|
|||||||
free(string);
|
free(string);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#if 0
|
|
||||||
case AS_LAYER_BEGIN_PICTURE:
|
case AS_LAYER_BEGIN_PICTURE:
|
||||||
CRITICAL("AS_LAYER_BEGIN_PICTURE not implemented\n");
|
{
|
||||||
|
DTRACE(("ServerWindow %s: Message AS_LAYER_BEGIN_PICTURE\n", Title()));
|
||||||
|
ServerPicture *picture = App()->CreatePicture();
|
||||||
|
fCurrentLayer->SetPicture(picture);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case AS_LAYER_APPEND_TO_PICTURE:
|
case AS_LAYER_APPEND_TO_PICTURE:
|
||||||
CRITICAL("AS_LAYER_APPEND_TO_PICTURE not implemented\n");
|
{
|
||||||
|
DTRACE(("ServerWindow %s: Message AS_LAYER_APPEND_TO_PICTURE\n", Title()));
|
||||||
|
|
||||||
|
int32 pictureToken;
|
||||||
|
link.Read<int32>(&pictureToken);
|
||||||
|
|
||||||
|
fCurrentLayer->SetPicture(App()->FindPicture(pictureToken));
|
||||||
|
// we don't care if it's NULL
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case AS_LAYER_END_PICTURE:
|
case AS_LAYER_END_PICTURE:
|
||||||
CRITICAL("AS_LAYER_END_PICTURE not implemented\n");
|
{
|
||||||
|
DTRACE(("ServerWindow %s: Message AS_LAYER_END_PICTURE\n", Title()));
|
||||||
|
|
||||||
|
ServerPicture *picture = fCurrentLayer->Picture();
|
||||||
|
if (picture != NULL) {
|
||||||
|
fCurrentLayer->SetPicture(NULL);
|
||||||
|
fLink.StartMessage(B_OK);
|
||||||
|
fLink.Attach<int32>(picture->Token());
|
||||||
|
} else
|
||||||
|
fLink.StartMessage(B_ERROR);
|
||||||
|
|
||||||
|
fLink.Flush();
|
||||||
break;
|
break;
|
||||||
#endif
|
}
|
||||||
|
|
||||||
|
case AS_LAYER_DRAW_PICTURE:
|
||||||
|
{
|
||||||
|
int32 token;
|
||||||
|
if (link.Read<int32>(&token) == B_OK) {
|
||||||
|
BPoint where;
|
||||||
|
link.Read<BPoint>(&where);
|
||||||
|
|
||||||
|
ServerPicture *picture = App()->FindPicture(token);
|
||||||
|
if (picture != NULL) {
|
||||||
|
fCurrentLayer->ConvertToScreenForDrawing(&where);
|
||||||
|
fCurrentLayer->CurrentState()->SetPenLocation(where);
|
||||||
|
picture->Play(fCurrentLayer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
printf("ServerWindow %s received unexpected code - message offset %ld\n",
|
printf("ServerWindow %s received unexpected code - message offset %ld\n",
|
||||||
Title(), code - B_OK);
|
Title(), code - B_OK);
|
||||||
|
Loading…
Reference in New Issue
Block a user