Also commented some unimplemented message handler to not break the reply mechanism.

The ServerWindow did not even have such a mechanism anyway... (it now has).
Minor cleanup, replaced some "delete" with "delete[]" where appropriate.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13382 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2005-07-01 08:50:45 +00:00
parent 1e1b96cdc1
commit 37fa302a92
+85 -82
View File
@@ -1137,6 +1137,7 @@ myRootLayer->Unlock();
Hide(); Hide();
break; break;
} }
#if 0
case AS_SEND_BEHIND: case AS_SEND_BEHIND:
{ {
// TODO: Implement AS_SEND_BEHIND // TODO: Implement AS_SEND_BEHIND
@@ -1167,6 +1168,7 @@ myRootLayer->Unlock();
STRACE(("ServerWindow %s: Message Set_Title unimplemented\n", Title())); STRACE(("ServerWindow %s: Message Set_Title unimplemented\n", Title()));
break; break;
} }
#endif
case AS_ADD_TO_SUBSET: case AS_ADD_TO_SUBSET:
{ {
STRACE(("ServerWindow %s: Message AS_ADD_TO_SUBSET\n", Title())); STRACE(("ServerWindow %s: Message AS_ADD_TO_SUBSET\n", Title()));
@@ -1220,6 +1222,7 @@ myRootLayer->Unlock();
} }
break; break;
} }
#if 0
case AS_SET_LOOK: case AS_SET_LOOK:
{ {
// TODO: Implement AS_SET_LOOK // TODO: Implement AS_SET_LOOK
@@ -1252,6 +1255,7 @@ myRootLayer->Unlock();
STRACE(("ServerWindow %s: Message Get_Alignment unimplemented\n", Title())); STRACE(("ServerWindow %s: Message Get_Alignment unimplemented\n", Title()));
break; break;
} }
#endif
case AS_GET_WORKSPACES: case AS_GET_WORKSPACES:
{ {
STRACE(("ServerWindow %s: Message Get_Workspaces unimplemented\n", Title())); STRACE(("ServerWindow %s: Message Get_Workspaces unimplemented\n", Title()));
@@ -1770,7 +1774,7 @@ ServerWindow::_DispatchGraphicsMessage(int32 code, BPrivate::LinkReceiver &link)
link.Read<BRect>(&rect); link.Read<BRect>(&rect);
link.Read<float>(&xrad); link.Read<float>(&xrad);
link.Read<float>(&yrad); link.Read<float>(&yrad);
if (fCurrentLayer && fCurrentLayer->fLayerData) if (fCurrentLayer && fCurrentLayer->fLayerData)
gDesktop->GetDisplayDriver()->StrokeRoundRect(fCurrentLayer->ConvertToTop(rect),xrad,yrad, fCurrentLayer->fLayerData); gDesktop->GetDisplayDriver()->StrokeRoundRect(fCurrentLayer->ConvertToTop(rect),xrad,yrad, fCurrentLayer->fLayerData);
break; break;
@@ -1784,7 +1788,7 @@ ServerWindow::_DispatchGraphicsMessage(int32 code, BPrivate::LinkReceiver &link)
link.Read<BRect>(&rect); link.Read<BRect>(&rect);
link.Read<float>(&xrad); link.Read<float>(&xrad);
link.Read<float>(&yrad); link.Read<float>(&yrad);
if (fCurrentLayer && fCurrentLayer->fLayerData) if (fCurrentLayer && fCurrentLayer->fLayerData)
gDesktop->GetDisplayDriver()->FillRoundRect(fCurrentLayer->ConvertToTop(rect),xrad,yrad, fCurrentLayer->fLayerData); gDesktop->GetDisplayDriver()->FillRoundRect(fCurrentLayer->ConvertToTop(rect),xrad,yrad, fCurrentLayer->fLayerData);
break; break;
@@ -1792,20 +1796,19 @@ ServerWindow::_DispatchGraphicsMessage(int32 code, BPrivate::LinkReceiver &link)
case AS_STROKE_TRIANGLE: case AS_STROKE_TRIANGLE:
{ {
DTRACE(("ServerWindow %s: Message AS_STROKE_TRIANGLE\n", Title())); DTRACE(("ServerWindow %s: Message AS_STROKE_TRIANGLE\n", Title()));
BPoint pts[3]; BPoint pts[3];
BRect rect; BRect rect;
for (int i=0; i<3; i++) for (int i = 0; i < 3; i++)
link.Read<BPoint>(&(pts[i])); link.Read<BPoint>(&(pts[i]));
link.Read<BRect>(&rect); link.Read<BRect>(&rect);
if (fCurrentLayer && fCurrentLayer->fLayerData) if (fCurrentLayer && fCurrentLayer->fLayerData) {
{ for (int i = 0;i < 3; i++)
for(int i=0;i<3;i++) pts[i] = fCurrentLayer->ConvertToTop(pts[i]);
pts[i]=fCurrentLayer->ConvertToTop(pts[i]);
gDesktop->GetDisplayDriver()->StrokeTriangle(pts, fCurrentLayer->ConvertToTop(rect), fCurrentLayer->fLayerData); gDesktop->GetDisplayDriver()->StrokeTriangle(pts, fCurrentLayer->ConvertToTop(rect), fCurrentLayer->fLayerData);
} }
break; break;
@@ -1813,20 +1816,19 @@ ServerWindow::_DispatchGraphicsMessage(int32 code, BPrivate::LinkReceiver &link)
case AS_FILL_TRIANGLE: case AS_FILL_TRIANGLE:
{ {
DTRACE(("ServerWindow %s: Message AS_FILL_TRIANGLE\n", Title())); DTRACE(("ServerWindow %s: Message AS_FILL_TRIANGLE\n", Title()));
BPoint pts[3]; BPoint pts[3];
BRect rect; BRect rect;
for (int i=0; i<3; i++) for (int i = 0; i < 3; i++)
link.Read<BPoint>(&(pts[i])); link.Read<BPoint>(&(pts[i]));
link.Read<BRect>(&rect); link.Read<BRect>(&rect);
if (fCurrentLayer && fCurrentLayer->fLayerData) if (fCurrentLayer && fCurrentLayer->fLayerData) {
{ for (int i = 0; i < 3; i++)
for(int i=0;i<3;i++) pts[i] = fCurrentLayer->ConvertToTop(pts[i]);
pts[i]=fCurrentLayer->ConvertToTop(pts[i]);
gDesktop->GetDisplayDriver()->FillTriangle(pts, fCurrentLayer->ConvertToTop(rect), fCurrentLayer->fLayerData); gDesktop->GetDisplayDriver()->FillTriangle(pts, fCurrentLayer->ConvertToTop(rect), fCurrentLayer->fLayerData);
} }
break; break;
@@ -1835,23 +1837,23 @@ ServerWindow::_DispatchGraphicsMessage(int32 code, BPrivate::LinkReceiver &link)
case AS_STROKE_POLYGON: case AS_STROKE_POLYGON:
{ {
DTRACE(("ServerWindow %s: Message AS_STROKE_POLYGON\n", Title())); DTRACE(("ServerWindow %s: Message AS_STROKE_POLYGON\n", Title()));
BRect polyframe; BRect polyframe;
bool isclosed; bool isclosed;
int32 pointcount; int32 pointcount;
BPoint *pointlist; BPoint *pointlist;
link.Read<BRect>(&polyframe); link.Read<BRect>(&polyframe);
link.Read<bool>(&isclosed); link.Read<bool>(&isclosed);
link.Read<int32>(&pointcount); link.Read<int32>(&pointcount);
pointlist=new BPoint[pointcount]; pointlist = new BPoint[pointcount];
link.Read(pointlist, sizeof(BPoint)*pointcount); link.Read(pointlist, sizeof(BPoint)*pointcount);
for(int32 i=0; i<pointcount; i++) for (int32 i = 0; i < pointcount; i++)
pointlist[i]=fCurrentLayer->ConvertToTop(pointlist[i]); pointlist[i] = fCurrentLayer->ConvertToTop(pointlist[i]);
gDesktop->GetDisplayDriver()->StrokePolygon(pointlist,pointcount,polyframe, gDesktop->GetDisplayDriver()->StrokePolygon(pointlist,pointcount,polyframe,
fCurrentLayer->fLayerData,isclosed); fCurrentLayer->fLayerData,isclosed);
@@ -1861,25 +1863,24 @@ ServerWindow::_DispatchGraphicsMessage(int32 code, BPrivate::LinkReceiver &link)
case AS_FILL_POLYGON: case AS_FILL_POLYGON:
{ {
DTRACE(("ServerWindow %s: Message AS_FILL_POLYGON\n", Title())); DTRACE(("ServerWindow %s: Message AS_FILL_POLYGON\n", Title()));
BRect polyframe; BRect polyframe;
int32 pointcount; int32 pointcount;
BPoint *pointlist; BPoint *pointlist;
link.Read<BRect>(&polyframe); link.Read<BRect>(&polyframe);
link.Read<int32>(&pointcount); link.Read<int32>(&pointcount);
pointlist=new BPoint[pointcount]; pointlist = new BPoint[pointcount];
link.Read(pointlist, sizeof(BPoint)*pointcount); link.Read(pointlist, sizeof(BPoint) * pointcount);
for(int32 i=0; i<pointcount; i++) for (int32 i = 0; i < pointcount; i++)
pointlist[i]=fCurrentLayer->ConvertToTop(pointlist[i]); pointlist[i] = fCurrentLayer->ConvertToTop(pointlist[i]);
gDesktop->GetDisplayDriver()->FillPolygon(pointlist,pointcount,polyframe, fCurrentLayer->fLayerData); gDesktop->GetDisplayDriver()->FillPolygon(pointlist,pointcount,polyframe, fCurrentLayer->fLayerData);
delete [] pointlist; delete [] pointlist;
break; break;
} }
case AS_STROKE_SHAPE: case AS_STROKE_SHAPE:
@@ -1895,50 +1896,48 @@ ServerWindow::_DispatchGraphicsMessage(int32 code, BPrivate::LinkReceiver &link)
link.Read<BRect>(&shaperect); link.Read<BRect>(&shaperect);
link.Read<int32>(&opcount); link.Read<int32>(&opcount);
link.Read<int32>(&ptcount); link.Read<int32>(&ptcount);
oplist=new int32[opcount]; oplist = new int32[opcount];
ptlist=new BPoint[ptcount]; ptlist = new BPoint[ptcount];
link.Read(oplist,sizeof(int32)*opcount); link.Read(oplist, sizeof(int32) * opcount);
link.Read(ptlist,sizeof(BPoint)*ptcount); link.Read(ptlist, sizeof(BPoint) * ptcount);
for(int32 i=0; i<ptcount; i++) for (int32 i = 0; i < ptcount; i++)
ptlist[i]=fCurrentLayer->ConvertToTop(ptlist[i]); ptlist[i] = fCurrentLayer->ConvertToTop(ptlist[i]);
gDesktop->GetDisplayDriver()->StrokeShape(shaperect, opcount, oplist, ptcount, ptlist, fCurrentLayer->fLayerData); gDesktop->GetDisplayDriver()->StrokeShape(shaperect, opcount, oplist, ptcount, ptlist, fCurrentLayer->fLayerData);
delete oplist; delete[] oplist;
delete ptlist; delete[] ptlist;
break; break;
} }
case AS_FILL_SHAPE: case AS_FILL_SHAPE:
{ {
DTRACE(("ServerWindow %s: Message AS_FILL_SHAPE\n", Title())); DTRACE(("ServerWindow %s: Message AS_FILL_SHAPE\n", Title()));
BRect shaperect; BRect shaperect;
int32 opcount; int32 opcount;
int32 ptcount; int32 ptcount;
int32 *oplist; int32 *oplist;
BPoint *ptlist; BPoint *ptlist;
link.Read<BRect>(&shaperect); link.Read<BRect>(&shaperect);
link.Read<int32>(&opcount); link.Read<int32>(&opcount);
link.Read<int32>(&ptcount); link.Read<int32>(&ptcount);
oplist=new int32[opcount]; oplist = new int32[opcount];
ptlist=new BPoint[ptcount]; ptlist = new BPoint[ptcount];
link.Read(oplist,sizeof(int32)*opcount); link.Read(oplist, sizeof(int32) * opcount);
link.Read(ptlist,sizeof(BPoint)*ptcount); link.Read(ptlist, sizeof(BPoint) * ptcount);
for(int32 i=0; i<ptcount; i++) for (int32 i = 0; i < ptcount; i++)
ptlist[i]=fCurrentLayer->ConvertToTop(ptlist[i]); ptlist[i] = fCurrentLayer->ConvertToTop(ptlist[i]);
gDesktop->GetDisplayDriver()->FillShape(shaperect, opcount, oplist, ptcount, ptlist, fCurrentLayer->fLayerData); gDesktop->GetDisplayDriver()->FillShape(shaperect, opcount, oplist, ptcount, ptlist, fCurrentLayer->fLayerData);
delete oplist; delete[] oplist;
delete ptlist; delete[] ptlist;
break; break;
} }
case AS_FILL_REGION: case AS_FILL_REGION:
@@ -1979,23 +1978,21 @@ ServerWindow::_DispatchGraphicsMessage(int32 code, BPrivate::LinkReceiver &link)
int32 linecount; int32 linecount;
link.Read<int32>(&linecount); link.Read<int32>(&linecount);
if(linecount>0) if (linecount > 0) {
{
LineArrayData linedata[linecount], *index; LineArrayData linedata[linecount], *index;
for(int32 i=0; i<linecount; i++) for (int32 i = 0; i < linecount; i++) {
{ index = &linedata[i];
index=&linedata[i];
link.Read<float>(&(index->pt1.x)); link.Read<float>(&(index->pt1.x));
link.Read<float>(&(index->pt1.y)); link.Read<float>(&(index->pt1.y));
link.Read<float>(&(index->pt2.x)); link.Read<float>(&(index->pt2.x));
link.Read<float>(&(index->pt2.y)); link.Read<float>(&(index->pt2.y));
link.Read<rgb_color>(&(index->color)); link.Read<rgb_color>(&(index->color));
index->pt1=fCurrentLayer->ConvertToTop(index->pt1); index->pt1 = fCurrentLayer->ConvertToTop(index->pt1);
index->pt2=fCurrentLayer->ConvertToTop(index->pt2); index->pt2 = fCurrentLayer->ConvertToTop(index->pt2);
} }
gDesktop->GetDisplayDriver()->StrokeLineArray(linecount,linedata,fCurrentLayer->fLayerData); gDesktop->GetDisplayDriver()->StrokeLineArray(linecount,linedata,fCurrentLayer->fLayerData);
} }
break; break;
@@ -2021,11 +2018,17 @@ ServerWindow::_DispatchGraphicsMessage(int32 code, BPrivate::LinkReceiver &link)
free(string); free(string);
break; 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 - SERVER_TRUE); Title(), code - SERVER_TRUE);
if (link.NeedsReply()) {
// the client is now blocking and waiting for a reply!
fLink.StartMessage(SERVER_FALSE);
fLink.Flush();
}
break; break;
}
} }
gDesktop->GetDisplayDriver()->ConstrainClippingRegion(NULL); gDesktop->GetDisplayDriver()->ConstrainClippingRegion(NULL);