diff --git a/src/servers/app/server/AppServer.cpp b/src/servers/app/server/AppServer.cpp index b8ee0c787c..b45dd88ec2 100644 --- a/src/servers/app/server/AppServer.cpp +++ b/src/servers/app/server/AppServer.cpp @@ -68,8 +68,8 @@ AppServer::AppServer(void) : BApplication (SERVER_SIGNATURE) AppServer::AppServer(void) #endif { - _mouseport=create_port(100,SERVER_INPUT_PORT); - _messageport=create_port(100,SERVER_PORT_NAME); + _mouseport=create_port(200,SERVER_INPUT_PORT); + _messageport=create_port(200,SERVER_PORT_NAME); _applist=new BList(0); _quitting_server=false; diff --git a/src/servers/app/server/Decorator.cpp b/src/servers/app/server/Decorator.cpp index cb4ee8b3e7..cc8d4535c4 100644 --- a/src/servers/app/server/Decorator.cpp +++ b/src/servers/app/server/Decorator.cpp @@ -46,7 +46,7 @@ Decorator::Decorator(BRect rect, int32 wlook, int32 wfeel, int32 wflags) _zoom_state=false; _title_string=new BString; _driver=NULL; - + _closerect.Set(0,0,1,1); _zoomrect.Set(0,0,1,1); _minimizerect.Set(0,0,1,1); @@ -231,6 +231,7 @@ int32 Decorator::GetFlags(void) void Decorator::SetTitle(const char *string) { _title_string->SetTo(string); + _DoLayout(); } /*! diff --git a/src/servers/app/server/Decorator.h b/src/servers/app/server/Decorator.h index 97692a3d0d..d3692476e3 100644 --- a/src/servers/app/server/Decorator.h +++ b/src/servers/app/server/Decorator.h @@ -95,6 +95,11 @@ public: protected: int32 _ClipTitle(float width); + + /*! + \brief Returns the number of characters in the title + \return The title character count + */ int32 _TitleWidth(void) { return (_title_string)?_title_string->CountChars():0; } virtual void _DrawClose(BRect r); diff --git a/src/servers/app/server/DefaultDecorator.cpp b/src/servers/app/server/DefaultDecorator.cpp index 54fa440bd5..3af841fe6c 100644 --- a/src/servers/app/server/DefaultDecorator.cpp +++ b/src/servers/app/server/DefaultDecorator.cpp @@ -44,9 +44,9 @@ DefaultDecorator::DefaultDecorator(BRect rect, int32 wlook, int32 wfeel, int32 w : Decorator(rect,wlook,wfeel,wflags) { taboffset=0; + titlepixelwidth=0; - // commented these out because they are taken care of by the SetFocus() call - SetFocus(false); + _SetFocus(); // These hard-coded assignments will go bye-bye when the system _colors // API is implemented @@ -99,7 +99,7 @@ else if(buttons & B_TERTIARY_MOUSE_BUTTON) printf("\t\tTertiary\n"); } -printf("\tNodifiers:\n"); +printf("\tModifiers:\n"); if(modifiers==0) printf("\t\tNone\n"); else @@ -182,6 +182,8 @@ printf("DefaultDecorator: Do Layout\n"); _borderrect=_frame; _closerect=_frame; + textoffset=(_look==B_FLOATING_WINDOW_LOOK)?5:7; + _closerect.left+=(_look==B_FLOATING_WINDOW_LOOK)?2:4; _closerect.top+=(_look==B_FLOATING_WINDOW_LOOK)?6:4; _closerect.right=_closerect.left+10; @@ -193,16 +195,14 @@ printf("DefaultDecorator: Do Layout\n"); _resizerect.left=_resizerect.right-18; _tabrect.bottom=_tabrect.top+18; -/* if(GetTitle()) + if(GetTitle() && _driver) { - float titlewidth=_closerect.right - +_driver->StringWidth(layer->name->String(), - layer->name->Length()) - +35; - _tabrect.right=(titlewidth<_frame.right -1)?titlewidth:_frame.right; + titlepixelwidth=_driver->StringWidth(GetTitle(),_TitleWidth(), &_layerdata); + if(_closerect.right+textoffset+titlepixelwidth+35< _frame.Width()-1) + _tabrect.right=_tabrect.left+titlepixelwidth; } else -*/ _tabrect.right=_tabrect.left+_tabrect.Width()/2; + _tabrect.right=_tabrect.left+_tabrect.Width()/2; if(_look==B_FLOATING_WINDOW_LOOK) _tabrect.top+=4; @@ -214,7 +214,6 @@ printf("DefaultDecorator: Do Layout\n"); _zoomrect.left=_zoomrect.right-10; _zoomrect.bottom=_zoomrect.top+10; - textoffset=(_look==B_FLOATING_WINDOW_LOOK)?5:7; } void DefaultDecorator::MoveBy(float x, float y) @@ -254,14 +253,14 @@ void DefaultDecorator::_DrawTitle(BRect r) { // Designed simply to redraw the title when it has changed on // the client side. -/* _driver->SetDrawingMode(B_OP_OVER); - rgb_color tmpcol=_driver->HighColor(); - _driver->SetHighColor(textcol.red,textcol.green,textcol.blue); - _driver->DrawString((char *)string,strlen(string), - BPoint(_closerect.right+textoffset,_closerect.bottom-1)); - _driver->SetHighColor(tmpcol.red,tmpcol.green,tmpcol.blue); - _driver->SetDrawingMode(B_OP_COPY); -*/ + _layerdata.draw_mode=B_OP_OVER; + _layerdata.highcolor=_colors->window_tab_text; + + // closerect.bottom+1 because the driver subtracts one from the y coordinate + // for compatibility with the BeOS font system + _driver->DrawString(GetTitle(),_ClipTitle((_zoomrect.left-5)-(_closerect.right+textoffset)), + BPoint(_closerect.right+textoffset,_closerect.bottom+1),&_layerdata); + _layerdata.draw_mode=B_OP_COPY; } void DefaultDecorator::_SetFocus(void) @@ -354,11 +353,12 @@ void DefaultDecorator::_DrawTab(BRect r) _layerdata.highcolor=frame_lowcol; _driver->StrokeRect(_tabrect,&_layerdata,(int8*)&solidhigh); -// UpdateTitle(layer->name->String()); - _layerdata.highcolor=_colors->window_tab; _driver->FillRect(_tabrect.InsetByCopy(1,1),&_layerdata,(int8*)&solidhigh); +// UpdateTitle(layer->name->String()); + _DrawTitle(_tabrect); + // Draw the buttons if we're supposed to if(!(_flags & B_NOT_CLOSABLE)) _DrawClose(_closerect); diff --git a/src/servers/app/server/DefaultDecorator.h b/src/servers/app/server/DefaultDecorator.h index 42336fe69c..deefb5e97a 100644 --- a/src/servers/app/server/DefaultDecorator.h +++ b/src/servers/app/server/DefaultDecorator.h @@ -63,6 +63,7 @@ protected: bool slidetab; int textoffset; + float titlepixelwidth; }; #endif diff --git a/src/servers/app/server/DisplayDriver.cpp b/src/servers/app/server/DisplayDriver.cpp index fc27e8d3ef..9abc260182 100644 --- a/src/servers/app/server/DisplayDriver.cpp +++ b/src/servers/app/server/DisplayDriver.cpp @@ -96,6 +96,18 @@ void DisplayDriver::CopyBits(BRect src, BRect dest) { } +/*! + \brief A screen-to-screen blit (of sorts) which copies a BRegion + \param src Source region + \param lefttop Offset to which the region will be copied + + Bounds checking must be done in this call. This function needs to be literally as + fast as possible - all window moves will be done with it. +*/ +void DisplayDriver::CopyRegion(BRegion *src, const BPoint &lefttop) +{ +} + /*! \brief Called for all BView::DrawBitmap calls \param bmp Bitmap to be drawn. It will always be non-NULL and valid. The color diff --git a/src/servers/app/server/DisplayDriver.h b/src/servers/app/server/DisplayDriver.h index cb8518dc39..aea8ef982b 100644 --- a/src/servers/app/server/DisplayDriver.h +++ b/src/servers/app/server/DisplayDriver.h @@ -97,6 +97,7 @@ public: virtual bool Initialize(void); virtual void Shutdown(void); virtual void CopyBits(BRect src, BRect dest); + virtual void CopyRegion(BRegion *src, const BPoint &lefttop); virtual void DrawBitmap(ServerBitmap *bmp, BRect src, BRect dest, LayerData *d); virtual void DrawString(const char *string, int32 length, BPoint pt, LayerData *d, escapement_delta *delta=NULL); diff --git a/src/servers/app/server/Layer.cpp b/src/servers/app/server/Layer.cpp index 79dcf8fcdf..7d8c359b67 100644 --- a/src/servers/app/server/Layer.cpp +++ b/src/servers/app/server/Layer.cpp @@ -185,7 +185,7 @@ printf("Layer: %s: Add Child (%s, %s, %s) - Incomplete\n",_name->String(),layer? _bottomchild=layer; _topchild=layer; layer->_level=_level+1; - + if(rebuild) RebuildRegions(true); } @@ -233,7 +233,6 @@ printf("Layer: %s: Remove Child (%s,%s)\n",_name->String(),layer?layer->_name->S layer->_lowersibling->_uppersibling=layer->_uppersibling; layer->_uppersibling=NULL; layer->_lowersibling=NULL; - if(rebuild) RebuildRegions(true); } @@ -754,15 +753,18 @@ printf("Layer: %s: Rebuild Regions (%s)\n",_name->String(),include_children?"inc if(childlay->_visible && childlay->_hidecount==0) { // reg is what is _visible in the layer's _parent's coordinate system - reg=new BRegion(ConvertToParent(_visible)); +// reg=new BRegion(ConvertToParent(_visible)); // reg2 is the layer's _visible region in the sibling's coordinate system - reg2=new BRegion(childlay->ConvertFromParent(reg)); - delete reg; +// reg2=new BRegion(childlay->ConvertFromParent(reg)); +// delete reg; // lowersiblings occupy screen space _above_ a layer, so the layer itself // must remove from its _visible region - _visible->Exclude(reg2); - delete reg2; +// _visible->Exclude(reg2); +// delete reg2; + reg=new BRegion(ConvertToParent(_visible)); + _visible->Exclude(reg); + delete reg; } } diff --git a/src/servers/app/server/Layer.h b/src/servers/app/server/Layer.h index 13f39c1f5c..4ceac8978f 100644 --- a/src/servers/app/server/Layer.h +++ b/src/servers/app/server/Layer.h @@ -113,7 +113,7 @@ protected: *_lowersibling, *_topchild, *_bottomchild; - + BRegion *_visible, *_invalid, *_full; diff --git a/src/servers/app/server/RootLayer.cpp b/src/servers/app/server/RootLayer.cpp index 827c512865..9f4a7b6a4a 100644 --- a/src/servers/app/server/RootLayer.cpp +++ b/src/servers/app/server/RootLayer.cpp @@ -31,10 +31,6 @@ #include "PatternHandler.h" // for pattern_union #include "ServerConfig.h" -#ifdef DISPLAYDRIVER_TEST_HACK -#include -#endif - /*! \brief Sets up internal variables needed by the RootLayer @@ -100,7 +96,6 @@ void RootLayer::RequestDraw(void) } #ifdef DISPLAYDRIVER_TEST_HACK - /* Note to self, commented out tests appear to work correctly */ int8 pattern[8]; int8 pattern2[8]; memset(pattern,255,8); @@ -111,11 +106,9 @@ void RootLayer::RequestDraw(void) pts[0].y = 200; pts[1].x = 400; pts[1].y = 1000; - //pts[2].x = 600; - pts[2].x = 100; - pts[2].y = 100; - //pts[3].x = 1200; - pts[3].x = 200; + pts[2].x = 600; + pts[2].y = 400; + pts[3].x = 1200; pts[3].y = 800; BPoint triangle[3]; BRect triangleRect(100,100,400,300); @@ -142,66 +135,26 @@ void RootLayer::RequestDraw(void) _layerdata->highcolor.SetColor(255,0,0,255); _layerdata->lowcolor.SetColor(255,255,255,255); - printf("FillRect big red\n"); _driver->FillRect(r1,_layerdata,pattern); - getchar(); - /* _layerdata->highcolor.SetColor(255,255,0,255); - printf("StrokeLine yellow\n"); _driver->StrokeLine(BPoint(100,100),BPoint(1500,1100),_layerdata,pattern); - getchar(); + _layerdata->highcolor.SetColor(0,0,255,255); - printf("StrokeBezier blue\n"); _driver->StrokeBezier(pts,_layerdata,pattern); - getchar(); - printf("StrokeArc blue\n"); _driver->StrokeArc(BRect(200,300,400,600),30,270,_layerdata,pattern); - getchar(); - printf("StrokeEllipse blue\n"); _driver->StrokeEllipse(BRect(200,700,400,900),_layerdata,pattern); - getchar(); - printf("StrokeRect blue\n"); _driver->StrokeRect(BRect(650,1000,750,1090),_layerdata,pattern); - getchar(); - printf("StrokeRoundRect blue\n"); _driver->StrokeRoundRect(BRect(200,1000,600,1090),30,40,_layerdata,pattern); - getchar(); - printf("StrokePolygon blue\n"); - _driver->StrokePolygon(polygon,6,polygonRect,_layerdata,pattern); - getchar(); - printf("StrokeTriangle blue\n"); - _driver->StrokeTriangle(triangle,triangleRect,_layerdata,pattern); - getchar(); - _layerdata->highcolor.SetColor(0,255,0,255); - printf("FillArc green\n"); - _driver->FillArc(BRect(250,300,450,600),30,270,_layerdata,pattern); - getchar(); - */ +// _driver->StrokePolygon(polygon,6,polygonRect,_layerdata,pattern); +// _driver->StrokeTriangle(triangle,triangleRect,_layerdata,pattern); _layerdata->highcolor.SetColor(255,0,255,255); - printf("FillBezier magenta\n"); - _driver->FillBezier(pts,_layerdata,pattern); - getchar(); - _layerdata->highcolor.SetColor(0,0,255,255); - printf("StrokeBezier blue\n"); - _driver->StrokeBezier(pts,_layerdata,pattern); - getchar(); - /* - _layerdata->highcolor.SetColor(255,0,255,255); - printf("FillEllipse magenta\n"); + _driver->FillArc(BRect(1250,300,1450,600),30,270,_layerdata,pattern); +// _driver->FillBezier(pts,_layerdata,pattern); _driver->FillEllipse(BRect(800,300,1200,600),_layerdata,pattern); - getchar(); - printf("FillRoundRect striped\n"); _driver->FillRoundRect(BRect(800,1000,1200,1090),30,40,_layerdata,pattern2); - getchar(); - printf("FillPolygon magenta\n"); _driver->FillPolygon(polygon,6,polygonRect,_layerdata,pattern); - getchar(); - _layerdata->highcolor.SetColor(255,255,0,255); - printf("FillTriangle yellow\n"); - _driver->FillTriangle(triangle,triangleRect,_layerdata,pattern); - getchar(); - */ +// _driver->FillTriangle(triangle,triangleRect,_layerdata,pattern); #endif } diff --git a/src/servers/app/server/ServerWindow.cpp b/src/servers/app/server/ServerWindow.cpp index b6fcd1bbbb..aa480d189b 100644 --- a/src/servers/app/server/ServerWindow.cpp +++ b/src/servers/app/server/ServerWindow.cpp @@ -39,8 +39,9 @@ #include "Desktop.h" #include "DesktopClasses.h" #include "TokenHandler.h" +#include "Utils.h" -//#define DEBUG_SERVERWINDOW +#define DEBUG_SERVERWINDOW //#define DEBUG_SERVERWINDOW_MOUSE //#define DEBUG_SERVERWINDOW_KEYBOARD @@ -382,6 +383,28 @@ printf("ServerWindow %s: Message Create_Layer unimplemented\n",_title->String()) // TODO: Implement #ifdef DEBUG_SERVERWINDOW printf("ServerWindow %s: Message Delete_Layer unimplemented\n",_title->String()); +#endif + + break; + } + case AS_LAYER_CREATE_ROOT: + { + // Received when a window creates its internal top view + + // TODO: Implement +#ifdef DEBUG_SERVERWINDOW +printf("ServerWindow %s: Message Create_Layer_Root unimplemented\n",_title->String()); +#endif + + break; + } + case AS_LAYER_DELETE_ROOT: + { + // Received when a window deletes its internal top view + + // TODO: Implement +#ifdef DEBUG_SERVERWINDOW +printf("ServerWindow %s: Message Delete_Layer_Root unimplemented\n",_title->String()); #endif break; @@ -558,7 +581,7 @@ printf("ServerWindow %s: Message Move_By unimplemented\n",_title->String()); } default: { - printf("ServerWindow %s received unexpected code %lx",_title->String(),code); + printf("ServerWindow %s received unexpected code %s\n",_title->String(),MsgCodeToString(code)); break; } } diff --git a/src/servers/app/server/Utils.cpp b/src/servers/app/server/Utils.cpp index 539a6e0966..e2599c2517 100644 --- a/src/servers/app/server/Utils.cpp +++ b/src/servers/app/server/Utils.cpp @@ -60,3 +60,15 @@ bool _use_preferred_target_(BMessage *msg) { return msg->fPreferred; } + +const char *MsgCodeToString(int32 code) +{ + // Used to translate BMessage message codes back to a character + // format + char string [10]; + sprintf(string,"'%c%c%c%c'",(char)((code & 0xFF000000) >> 24), + (char)((code & 0x00FF0000) >> 16), + (char)((code & 0x0000FF00) >> 8), + (char)((code & 0x000000FF)) ); + return string; +} diff --git a/src/servers/app/server/Utils.h b/src/servers/app/server/Utils.h index de33299260..fa1f7dfede 100644 --- a/src/servers/app/server/Utils.h +++ b/src/servers/app/server/Utils.h @@ -5,5 +5,6 @@ #include void SendMessage(port_id port, BMessage *message, int32 target=-1); +const char *MsgCodeToString(int32 code); #endif diff --git a/src/servers/app/server/ViewDriver.cpp b/src/servers/app/server/ViewDriver.cpp index 46496ce1a4..d4c98e3325 100644 --- a/src/servers/app/server/ViewDriver.cpp +++ b/src/servers/app/server/ViewDriver.cpp @@ -40,6 +40,7 @@ #include "Angle.h" #include "PortLink.h" +#include "RectUtils.h" #include "ServerProtocol.h" #include "ServerBitmap.h" #include "ViewDriver.h" @@ -651,6 +652,83 @@ void ViewDriver::CopyBits(BRect src, BRect dest) screenwin->Unlock(); } +void ViewDriver::CopyRegion(BRegion *src, const BPoint &lefttop) +{ +#ifdef DEBUG_DRIVER_MODULE +printf("ViewDriver:: CopyRegion unimplemented()\n"); +#endif + + + screenwin->Lock(); + framebuffer->Lock(); + + // Check for overlap + bool overlap=false; + + BRect regframe=src->Frame(); + regframe.OffsetTo(lefttop); + + BRegion inverse; + int8 *savebuffer=NULL,*srcindex=NULL,*destindex=NULL, + *framebufferstart=NULL; + int32 buffer_row_size=0,i; + + if(TestRectIntersection(regframe,src->Frame()) && src->CountRects()>1) + overlap=true; + + if(overlap) + { + // If overlap, get the inverse of the region passed to us and save the + // inverse region's frame + inverse=src->Frame(); + inverse.Exclude(src); + + buffer_row_size=inverse.Frame().IntegerWidth() * 4; + destindex=savebuffer=new int8[ buffer_row_size * inverse.Frame().IntegerHeight()]; + framebufferstart=srcindex=(int8*)framebuffer->Bits()+ + (framebuffer->BytesPerRow()* int32(inverse.Frame().top)); + srcindex+=int32(inverse.Frame().left)*4; + + for(i=int32(inverse.Frame().top);iBytesPerRow(); + destindex+=buffer_row_size; + } + } + + // Copy all rectangles in the region to the new offset + BRect srcrect,destrect; + for(i=0; iCountRects(); i++) + { + srcrect=destrect=src->RectAt(i); + destrect.OffsetTo(lefttop); + drawview->CopyBits(srcrect,destrect); + } + drawview->Sync(); + + if(overlap) + { + // Copy all saved rectangles back to the screen and clean up + srcindex=savebuffer; + destindex=framebufferstart; + + for(i=int32(inverse.Frame().top);iBytesPerRow(); + destindex+=buffer_row_size; + } + + delete savebuffer; + } + + screenwin->view->Invalidate(src->Frame()); + screenwin->view->Invalidate(regframe); + framebuffer->Unlock(); + screenwin->Unlock(); +} + void ViewDriver::DrawBitmap(ServerBitmap *bitmap, BRect src, BRect dest) { #ifdef DEBUG_DRIVER_MODULE diff --git a/src/servers/app/server/ViewDriver.h b/src/servers/app/server/ViewDriver.h index 8ae8638824..0ddeaf3d04 100644 --- a/src/servers/app/server/ViewDriver.h +++ b/src/servers/app/server/ViewDriver.h @@ -108,6 +108,7 @@ public: // Drawing functions void CopyBits(BRect src, BRect dest); + void CopyRegion(BRegion *src, const BPoint &lefttop); void DrawBitmap(ServerBitmap *bmp, BRect src, BRect dest); void DrawChar(char c, BPoint pt, LayerData *d); // virtual void DrawPicture(SPicture *pic, BPoint pt); diff --git a/src/servers/app/server/WinBorder.cpp b/src/servers/app/server/WinBorder.cpp index 004dc17a57..11676b4354 100644 --- a/src/servers/app/server/WinBorder.cpp +++ b/src/servers/app/server/WinBorder.cpp @@ -76,6 +76,7 @@ WinBorder::WinBorder(BRect r, const char *name, int32 look, int32 feel, int32 fl : Layer(r,name,B_FOLLOW_NONE,flags,win) { _mbuttons=0; + _kmodifiers=0; _win=win; if(_win) _frame=_win->_frame; @@ -86,9 +87,10 @@ WinBorder::WinBorder(BRect r, const char *name, int32 look, int32 feel, int32 fl _title=new BString(name); _hresizewin=false; _vresizewin=false; - + _driver=GetGfxDriver(ActiveScreen()); _decorator=new_decorator(r,name,look,feel,flags,GetGfxDriver(ActiveScreen())); - _decorator->SetDriver(GetGfxDriver(ActiveScreen())); + _decorator->SetDriver(_driver); + _decorator->SetTitle(name); #ifdef DEBUG_WINBORDER printf("WinBorder %s:\n",_title->String()); @@ -107,9 +109,6 @@ printf("WinBorder %s:~WinBorder()\n",_title->String()); void WinBorder::MouseDown(int8 *buffer) { -#ifdef DEBUG_WINBORDER_MOUSE -printf("WinBorder %s: MouseDown unimplemented\n",_title->String()); -#endif // Buffer data: // 1) int64 - time of mouse click // 2) float - x coordinate of mouse click @@ -223,9 +222,6 @@ printf("Click: Resize\n"); break; } } - // TODO: fix this -// if(click!=CLICK_NONE) -// ActivateWindow(_win); } void WinBorder::MouseMoved(int8 *buffer) @@ -243,10 +239,6 @@ void WinBorder::MouseMoved(int8 *buffer) BPoint pt(x,y); click_type click=_decorator->Clicked(pt, _mbuttons, _kmodifiers); -#ifdef DEBUG_WINBORDER_MOUSE -printf("WinBorder %s: MouseMoved unimplemented\n",_title->String()); -#endif - if(click!=CLICK_CLOSE && _decorator->GetClose()) { _decorator->SetClose(false); @@ -291,6 +283,7 @@ printf("ClickMove: Slide Tab\n"); #ifdef DEBUG_WINBORDER_CLICK printf("ClickMove: Drag\n"); #endif +//debugger(""); float dx=pt.x-_mousepos.x, dy=pt.y-_mousepos.y; if(buttons!=0 && (dx!=0 || dy!=0)) @@ -303,11 +296,23 @@ printf("ClickMove: Drag\n"); _win->Unlock(); lock_layers(); - _parent->Invalidate(oldmoveframe); +// _parent->Invalidate(oldmoveframe); +// MoveBy(dx,dy); +// _decorator->MoveBy(BPoint(dx, dy)); +// _parent->RequestDraw(); +// _decorator->Draw(); + BRegion *reg=_decorator->GetFootprint(); + _driver->CopyRegion(reg,_win->_frame.LeftTop()); + + BRegion reg2(oldmoveframe); MoveBy(dx,dy); - _parent->RequestDraw(); _decorator->MoveBy(BPoint(dx, dy)); - _decorator->Draw(); + reg->OffsetBy(dx, dy); + reg2.Exclude(reg); + _parent->RebuildRegions(); + _parent->RequestDraw(); + + delete reg; unlock_layers(); } } @@ -419,7 +424,7 @@ printf("WinBorder %s::RequestDraw\n",_title->String()); #endif _decorator->Draw(); } - +/* void WinBorder::MoveBy(BPoint pt) { } @@ -435,7 +440,7 @@ void WinBorder::ResizeBy(BPoint pt) void WinBorder::ResizeBy(float x, float y) { } - +*/ void WinBorder::UpdateColors(void) { #ifdef DEBUG_WINBORDER diff --git a/src/servers/app/server/WinBorder.h b/src/servers/app/server/WinBorder.h index 769b42fdad..d5aaba1b8c 100644 --- a/src/servers/app/server/WinBorder.h +++ b/src/servers/app/server/WinBorder.h @@ -42,10 +42,10 @@ public: ~WinBorder(void); void RequestDraw(void); void RequestDraw(const BRect &r); - void MoveBy(BPoint pt); - void MoveBy(float x, float y); - void ResizeBy(BPoint pt); - void ResizeBy(float x, float y); +// void MoveBy(BPoint pt); +// void MoveBy(float x, float y); +// void ResizeBy(BPoint pt); +// void ResizeBy(float x, float y); void MouseDown(int8 *buffer); void MouseMoved(int8 *buffer); void MouseUp(int8 *buffer); @@ -67,6 +67,7 @@ protected: BPoint _mousepos; bool _update; bool _hresizewin,_vresizewin; + DisplayDriver *_driver; }; bool is_moving_window(void); @@ -75,5 +76,7 @@ bool is_resizing_window(void); void set_is_resizing_window(bool state); void set_active_winborder(WinBorder *win); WinBorder * get_active_winborder(void); +void set_is_resizing_window(bool state); +bool is_sliding_tab(void); #endif