Remove a couple desktop-related files no longer needed
More specific TODO comments so we can use grep to understand in a general sense what still needs done git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8708 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -107,7 +107,7 @@ AppServer::AppServer(void)
|
|||||||
|
|
||||||
// Used for testing purposes
|
// Used for testing purposes
|
||||||
|
|
||||||
// TODO: Uncomment when actually put to use. Commented out for speed
|
// TODO: Re-enable scanning of all font directories when server is actually put to use
|
||||||
fontserver->ScanDirectory("/boot/beos/etc/fonts/ttfonts/");
|
fontserver->ScanDirectory("/boot/beos/etc/fonts/ttfonts/");
|
||||||
// fontserver->ScanDirectory("/boot/beos/etc/fonts/PS-Type1/");
|
// fontserver->ScanDirectory("/boot/beos/etc/fonts/PS-Type1/");
|
||||||
// fontserver->ScanDirectory("/boot/home/config/fonts/ttfonts/");
|
// fontserver->ScanDirectory("/boot/home/config/fonts/ttfonts/");
|
||||||
|
|||||||
@@ -113,11 +113,10 @@ void Desktop::Init(void)
|
|||||||
|
|
||||||
Screen *sc = new Screen(driver, BPoint(640, 480), B_RGB32, driverCount);
|
Screen *sc = new Screen(driver, BPoint(640, 480), B_RGB32, driverCount);
|
||||||
|
|
||||||
// TODO: be careful, it may fail to initialize! - Monitor may not support 640x480
|
// TODO: be careful, of screen initialization - monitor may not support 640x480
|
||||||
fScreenList.AddItem(sc);
|
fScreenList.AddItem(sc);
|
||||||
|
|
||||||
// TODO: remove this when you have a real Driver.
|
if ( (DISPLAYDRIVER != HWDRIVER) && (driverCount == 1) )
|
||||||
if (driverCount == 1)
|
|
||||||
initDrivers = false;
|
initDrivers = false;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -196,9 +195,7 @@ void Desktop::SetActiveRootLayer(RootLayer* rl)
|
|||||||
|
|
||||||
fActiveRootLayer = rl;
|
fActiveRootLayer = rl;
|
||||||
|
|
||||||
// TODO:
|
// TODO: hide mouse in the old ActiveRootLayer & show it in the new ActiveRootLayer
|
||||||
// hide the mouse in the old ActiveRootLayer
|
|
||||||
// show the mouse in new ActiveRootLayer
|
|
||||||
fActiveRootLayer->FullInvalidate(fActiveRootLayer->Bounds());
|
fActiveRootLayer->FullInvalidate(fActiveRootLayer->Bounds());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -356,7 +353,7 @@ printf("Focus: %s\n", ws->FocusLayer()->GetName());
|
|||||||
|
|
||||||
// may be or may be empty.
|
// may be or may be empty.
|
||||||
|
|
||||||
// TODO: what if modal of floating windows are in front of us?
|
// TODO: B_MOUSE_DOWN: what if modal of floating windows are in front of us?
|
||||||
invalidRegion.Include(&(activeFocus->fFull));
|
invalidRegion.Include(&(activeFocus->fFull));
|
||||||
invalidRegion.Include(&(activeFocus->fTopLayer->fFull));
|
invalidRegion.Include(&(activeFocus->fTopLayer->fFull));
|
||||||
activeFocus->fParent->RebuildAndForceRedraw(invalidRegion, activeFocus);
|
activeFocus->fParent->RebuildAndForceRedraw(invalidRegion, activeFocus);
|
||||||
@@ -487,7 +484,7 @@ printf("2Focus: %s\n", ws->FocusLayer()->GetName());
|
|||||||
msg.Read<float>(&evt.wheel_delta_y);
|
msg.Read<float>(&evt.wheel_delta_y);
|
||||||
msg.Read<int32>(&evt.modifiers);
|
msg.Read<int32>(&evt.modifiers);
|
||||||
|
|
||||||
// TODO: Pass this on to the client ServerWindow
|
// TODO: B_MOUSE_WHEEL_CHANGED - Pass this on to the client ServerWindow
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
@@ -542,7 +539,7 @@ void Desktop::KeyboardEventHandler(int32 code, BPortLink& msg)
|
|||||||
if(modifiers & (B_LEFT_COMMAND_KEY |
|
if(modifiers & (B_LEFT_COMMAND_KEY |
|
||||||
B_LEFT_CONTROL_KEY | B_LEFT_SHIFT_KEY))
|
B_LEFT_CONTROL_KEY | B_LEFT_SHIFT_KEY))
|
||||||
{
|
{
|
||||||
// TODO: Set to Safe Mode here. (DisplayDriver API change)
|
// TODO: Set to Safe Mode in KeyboardEventHandler:B_KEY_DOWN. (DisplayDriver API change)
|
||||||
STRACE(("Safe Video Mode invoked - code unimplemented\n"));
|
STRACE(("Safe Video Mode invoked - code unimplemented\n"));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -553,7 +550,7 @@ void Desktop::KeyboardEventHandler(int32 code, BPortLink& msg)
|
|||||||
{
|
{
|
||||||
STRACE(("Set Workspace %ld\n",scancode-1));
|
STRACE(("Set Workspace %ld\n",scancode-1));
|
||||||
|
|
||||||
//TODO: change
|
//TODO: SetWorkspace in KeyboardEventHandler
|
||||||
//SetWorkspace(scancode-2);
|
//SetWorkspace(scancode-2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -600,7 +597,7 @@ void Desktop::KeyboardEventHandler(int32 code, BPortLink& msg)
|
|||||||
{
|
{
|
||||||
if(modifiers & (B_LEFT_CONTROL_KEY | B_LEFT_SHIFT_KEY | B_LEFT_OPTION_KEY))
|
if(modifiers & (B_LEFT_CONTROL_KEY | B_LEFT_SHIFT_KEY | B_LEFT_OPTION_KEY))
|
||||||
{
|
{
|
||||||
// TODO: Set to Safe Mode here. (DisplayDriver API change)
|
// TODO: Set to Safe Mode in KeyboardEventHandler:B_KEY_DOWN. (DisplayDriver API change)
|
||||||
STRACE(("Safe Video Mode invoked - code unimplemented\n"));
|
STRACE(("Safe Video Mode invoked - code unimplemented\n"));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -608,7 +605,7 @@ void Desktop::KeyboardEventHandler(int32 code, BPortLink& msg)
|
|||||||
if(modifiers & (B_LEFT_SHIFT_KEY | B_LEFT_CONTROL_KEY))
|
if(modifiers & (B_LEFT_SHIFT_KEY | B_LEFT_CONTROL_KEY))
|
||||||
{
|
{
|
||||||
STRACE(("Set Workspace %ld\n",scancode-1));
|
STRACE(("Set Workspace %ld\n",scancode-1));
|
||||||
//TODO: resolve
|
//TODO: SetWorkspace in KeyboardEventHandler
|
||||||
//SetWorkspace(scancode-2);
|
//SetWorkspace(scancode-2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -653,7 +650,7 @@ void Desktop::KeyboardEventHandler(int32 code, BPortLink& msg)
|
|||||||
// We got this far, so apparently it's safe to pass to the active
|
// We got this far, so apparently it's safe to pass to the active
|
||||||
// window.
|
// window.
|
||||||
|
|
||||||
// TODO: Pass on to client window with the focus
|
// TODO: Pass on key down message to client window with the focus
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case B_KEY_UP:
|
case B_KEY_UP:
|
||||||
@@ -720,7 +717,7 @@ void Desktop::KeyboardEventHandler(int32 code, BPortLink& msg)
|
|||||||
// We got this far, so apparently it's safe to pass to the active
|
// We got this far, so apparently it's safe to pass to the active
|
||||||
// window.
|
// window.
|
||||||
|
|
||||||
// TODO: Pass on to client window with the focus
|
// TODO: Pass on key up message to client window with the focus
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case B_UNMAPPED_KEY_DOWN:
|
case B_UNMAPPED_KEY_DOWN:
|
||||||
@@ -747,7 +744,8 @@ void Desktop::KeyboardEventHandler(int32 code, BPortLink& msg)
|
|||||||
#ifdef DEBUG_KEYHANDLING
|
#ifdef DEBUG_KEYHANDLING
|
||||||
printf("Unmapped Key Down: 0x%lx\n", scancode);
|
printf("Unmapped Key Down: 0x%lx\n", scancode);
|
||||||
#endif
|
#endif
|
||||||
// TODO: Pass on to client window with the focus
|
|
||||||
|
// TODO: Pass on unmapped key down message to client window with the focus
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case B_UNMAPPED_KEY_UP:
|
case B_UNMAPPED_KEY_UP:
|
||||||
@@ -775,7 +773,7 @@ void Desktop::KeyboardEventHandler(int32 code, BPortLink& msg)
|
|||||||
printf("Unmapped Key Up: 0x%lx\n", scancode);
|
printf("Unmapped Key Up: 0x%lx\n", scancode);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// TODO: Pass on to client window with the focus
|
// TODO: Pass on unmapped key up message to client window with the focus
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case B_MODIFIERS_CHANGED:
|
case B_MODIFIERS_CHANGED:
|
||||||
@@ -803,7 +801,7 @@ void Desktop::KeyboardEventHandler(int32 code, BPortLink& msg)
|
|||||||
printf("Modifiers Changed\n");
|
printf("Modifiers Changed\n");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// TODO: Pass on to client window with the focus
|
// TODO: Pass on modifier change message to client window with the focus
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
|||||||
@@ -1,522 +0,0 @@
|
|||||||
//------------------------------------------------------------------------------
|
|
||||||
// Copyright (c) 2001-2003, OpenBeOS
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
// copy of this software and associated documentation files (the "Software"),
|
|
||||||
// to deal in the Software without restriction, including without limitation
|
|
||||||
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
// and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
// Software is furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
// DEALINGS IN THE SOFTWARE.
|
|
||||||
//
|
|
||||||
// File Name: DesktopClasses.cpp
|
|
||||||
// Author: DarkWyrm <[email protected]>
|
|
||||||
// Gabe Yoder <[email protected]>
|
|
||||||
// Description: Classes for managing workspaces and screens
|
|
||||||
//
|
|
||||||
//------------------------------------------------------------------------------
|
|
||||||
#include <File.h>
|
|
||||||
#include <Message.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include "DesktopClasses.h"
|
|
||||||
#include "TokenHandler.h"
|
|
||||||
#include "ServerWindow.h"
|
|
||||||
#include "WinBorder.h"
|
|
||||||
#include "RootLayer.h"
|
|
||||||
#include "Desktop.h"
|
|
||||||
#include "DisplayDriver.h"
|
|
||||||
#include "Decorator.h"
|
|
||||||
|
|
||||||
|
|
||||||
//#define DEBUG_WORKSPACE
|
|
||||||
//#define DEBUG_SCREEN
|
|
||||||
|
|
||||||
#ifdef DEBUG_WORKSPACE
|
|
||||||
# include <stdio.h>
|
|
||||||
# define STRACE_WS(x) printf x
|
|
||||||
#else
|
|
||||||
# define STRACE_WS(x) ;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef DEBUG_SCREEN
|
|
||||||
# include <stdio.h>
|
|
||||||
# define STRACE_SCREEN(x) printf x
|
|
||||||
#else
|
|
||||||
# define STRACE_SCREEN(x) ;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Defined and initialized in AppServer.cpp
|
|
||||||
extern RGBColor workspace_default_color;
|
|
||||||
TokenHandler screen_id_handler;
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\brief Sets up internal variables needed by the Workspace
|
|
||||||
\param gcinfo The graphics card info
|
|
||||||
\param fbinfo The frame buffer info
|
|
||||||
\param gfxdriver DisplayDriver for the associated RootLayer
|
|
||||||
*/
|
|
||||||
Workspace::Workspace(const graphics_card_info &gcinfo, const frame_buffer_info &fbinfo, Screen *screen)
|
|
||||||
{
|
|
||||||
_gcinfo=gcinfo;
|
|
||||||
_fbinfo=fbinfo;
|
|
||||||
|
|
||||||
_screen=screen;
|
|
||||||
_rootlayer=new RootLayer(BRect(0,0,fbinfo.display_width-1,fbinfo.display_height-1),
|
|
||||||
"Workspace Root",_screen->GetGfxDriver());
|
|
||||||
_rootlayer->SetColor(workspace_default_color);
|
|
||||||
STRACE_WS(("Workspace::Workspace(%s)\n",_rootlayer->GetName()));
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\brief Constructor to accept data from reading R5's settings
|
|
||||||
*/
|
|
||||||
Workspace::Workspace(as_workspace_data *data, Screen *screen)
|
|
||||||
{
|
|
||||||
//TODO: Implement
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\brief Deletes the heap memory used by the Workspace
|
|
||||||
*/
|
|
||||||
Workspace::~Workspace(void)
|
|
||||||
{
|
|
||||||
STRACE_WS(("Workspace::~Workspace(%s)\n",_rootlayer->GetName()));
|
|
||||||
if(_rootlayer)
|
|
||||||
{
|
|
||||||
_rootlayer->PruneTree();
|
|
||||||
delete _rootlayer;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\brief Sets the background color of the workspace
|
|
||||||
\param c The new background color
|
|
||||||
Note: This does not refresh the display
|
|
||||||
*/
|
|
||||||
void Workspace::SetBGColor(const RGBColor &c)
|
|
||||||
{
|
|
||||||
STRACE_WS(("Workspace::SetBGColor(): "));
|
|
||||||
c.PrintToStream();
|
|
||||||
_rootlayer->SetColor(c);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\brief Returns the background color of the workspace
|
|
||||||
\return The background color
|
|
||||||
*/
|
|
||||||
RGBColor Workspace::BGColor()
|
|
||||||
{
|
|
||||||
return _rootlayer->GetColor();
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\brief Returns a pointer to the RootLayer object
|
|
||||||
\return The RootLayer object
|
|
||||||
*/
|
|
||||||
RootLayer *Workspace::GetRoot(void)
|
|
||||||
{
|
|
||||||
return _rootlayer;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\brief Changes the graphics data and resizes the RootLayer accordingly
|
|
||||||
\param gcinfo The new graphics card info
|
|
||||||
\param fbinfo The new frame buffer info
|
|
||||||
*/
|
|
||||||
void Workspace::SetData(const graphics_card_info &gcinfo, const frame_buffer_info &fbinfo)
|
|
||||||
{
|
|
||||||
STRACE_WS(("Workspace::SetData(%s)\n",_rootlayer->GetName()));
|
|
||||||
if(_fbinfo.display_width!=fbinfo.display_width ||
|
|
||||||
_fbinfo.display_height!=fbinfo.display_height)
|
|
||||||
{
|
|
||||||
// We won't need to invalidate the new regions as mentioned in the original implementation
|
|
||||||
// docs because RootLayer reimplements ResizeBy to handle this
|
|
||||||
_rootlayer->ResizeBy( (fbinfo.display_width-_fbinfo.display_width),
|
|
||||||
(fbinfo.display_height-_fbinfo.display_height) );
|
|
||||||
}
|
|
||||||
_gcinfo=gcinfo;
|
|
||||||
_fbinfo=fbinfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\brief Obtains the graphics card info and frame buffer info
|
|
||||||
\param gcinfo The graphics card info structure that receives the data
|
|
||||||
\param fbinfo The frame buffer info structure that receives the data
|
|
||||||
*/
|
|
||||||
void Workspace::GetData(graphics_card_info *gcinfo, frame_buffer_info *fbinfo)
|
|
||||||
{
|
|
||||||
*gcinfo=_gcinfo;
|
|
||||||
*fbinfo=_fbinfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
|
|
||||||
\brief Changes the size and mode of the workspace
|
|
||||||
\param res The new resolution mode of the workspace
|
|
||||||
*/
|
|
||||||
void Workspace::SetSpace(int32 res)
|
|
||||||
{
|
|
||||||
STRACE_WS(("Workspace::SetSpace(%ld) unimplemented\n",res));
|
|
||||||
// TODO: Implement
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\brief Sets up internal variables needed by Screen
|
|
||||||
\param gfxmodule Pointer to the uninitialized display driver to use
|
|
||||||
\param workspaces The number of workspaces on this screen
|
|
||||||
*/
|
|
||||||
Screen::Screen(DisplayDriver *gfxmodule)
|
|
||||||
{
|
|
||||||
STRACE_SCREEN(("Screen::Screen(%s,%u)\n",gfxmodule?"driver":"NULL",workspaces));
|
|
||||||
_workspacelist=NULL;
|
|
||||||
_driver=gfxmodule;
|
|
||||||
_resolution=0;
|
|
||||||
_activewin=NULL;
|
|
||||||
_currentworkspace=-1;
|
|
||||||
_activeworkspace=NULL;
|
|
||||||
_workspacecount=0;
|
|
||||||
_init=false;
|
|
||||||
_active=false;
|
|
||||||
_id.id=screen_id_handler.GetToken();
|
|
||||||
|
|
||||||
if (_driver)
|
|
||||||
{
|
|
||||||
_init=true;
|
|
||||||
|
|
||||||
_fbinfo.bits_per_pixel=_driver->GetDepth();
|
|
||||||
_fbinfo.bytes_per_row=_driver->GetBytesPerRow();
|
|
||||||
_fbinfo.width=_driver->GetWidth();
|
|
||||||
_fbinfo.height=_driver->GetHeight();
|
|
||||||
_fbinfo.display_width=_driver->GetWidth();
|
|
||||||
_fbinfo.display_height=_driver->GetHeight();
|
|
||||||
_fbinfo.display_x=_driver->GetWidth();
|
|
||||||
_fbinfo.display_y=_driver->GetHeight();
|
|
||||||
|
|
||||||
_gcinfo.width=_driver->GetWidth();
|
|
||||||
_gcinfo.height=_driver->GetHeight();
|
|
||||||
_gcinfo.bytes_per_row=_driver->GetBytesPerRow();
|
|
||||||
_gcinfo.bits_per_pixel=_driver->GetDepth();
|
|
||||||
|
|
||||||
// right now, we won't do anything with the gcinfo structure. ** LAZY PROGRAMMER ALERT ** :P
|
|
||||||
|
|
||||||
_workspacelist = new BList();
|
|
||||||
_workspacecount = 0;
|
|
||||||
_resolution=_driver->GetMode();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\brief Deletes the heap memory used by the Screen and shuts down the driver
|
|
||||||
*/
|
|
||||||
Screen::~Screen(void)
|
|
||||||
{
|
|
||||||
STRACE_SCREEN(("Screen::~Screen\n"));
|
|
||||||
if ( _workspacelist )
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
for (i=0; i<_workspacecount; i++)
|
|
||||||
delete (Workspace *)_workspacelist->ItemAt(i);
|
|
||||||
delete _workspacelist;
|
|
||||||
}
|
|
||||||
if ( _driver )
|
|
||||||
_driver->Shutdown();
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\brief Adds a workspace with default settings to the screen object
|
|
||||||
\param index The position within the workspace list (default = -1 = end)
|
|
||||||
*/
|
|
||||||
void Screen::AddWorkspace(int32 index)
|
|
||||||
{
|
|
||||||
STRACE_SCREEN(("Screen::AddWorkspace(%ld)\n",index+1));
|
|
||||||
Workspace *workspace = new Workspace(_gcinfo,_fbinfo,this);
|
|
||||||
if ( (index == -1) || !_workspacelist->AddItem(workspace,index) )
|
|
||||||
_workspacelist->AddItem(workspace);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\brief Adds a workspace object to the screen
|
|
||||||
\param workspace The workspace to add.
|
|
||||||
\param index Optional index to insert workspace at. Defaults to adding to end of list.
|
|
||||||
|
|
||||||
This function will do nothing if workspace is NULL.
|
|
||||||
*/
|
|
||||||
void Screen::AddWorkspace(Workspace *workspace,int32 index)
|
|
||||||
{
|
|
||||||
STRACE_SCREEN(("Screen::AddWorkspace(%s)\n",(workspace && workspace->GetRoot())?workspace->GetRoot()->GetName():"NULL"));
|
|
||||||
if ( (index==-1) || !_workspacelist->AddItem(workspace,index) )
|
|
||||||
_workspacelist->AddItem(workspace);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\brief Deletes the workspace at the specified index
|
|
||||||
\param index The position within the workspace list
|
|
||||||
*/
|
|
||||||
void Screen::DeleteWorkspace(int32 index)
|
|
||||||
{
|
|
||||||
STRACE_SCREEN(("Screen::DeleteWorkspace(%ld)\n",index+1));
|
|
||||||
Workspace *workspace;
|
|
||||||
workspace = (Workspace *)_workspacelist->RemoveItem(index);
|
|
||||||
if ( workspace )
|
|
||||||
delete workspace;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\brief Returns the number of workspaces handled by the screen object
|
|
||||||
\return The number of workspaces
|
|
||||||
*/
|
|
||||||
int32 Screen::CountWorkspaces(void)
|
|
||||||
{
|
|
||||||
return _workspacecount;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\brief Sets the number of available workspaces to count
|
|
||||||
\param count The new number of available workspaces (1 <= count <= 32)
|
|
||||||
If count is less than the current count, workspaces are deleted from the
|
|
||||||
end. Any workspaces added are added to the end of the list.
|
|
||||||
*/
|
|
||||||
void Screen::SetWorkspaceCount(int32 count)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
|
|
||||||
if ( count < 1 )
|
|
||||||
count = 1;
|
|
||||||
if ( count > 32 )
|
|
||||||
count = 32;
|
|
||||||
if ( _workspacecount == count )
|
|
||||||
return;
|
|
||||||
for (i=_workspacecount; i<count; i++)
|
|
||||||
{
|
|
||||||
AddWorkspace();
|
|
||||||
if ( !i )
|
|
||||||
{
|
|
||||||
_currentworkspace=0;
|
|
||||||
_activeworkspace=(Workspace*)_workspacelist->ItemAt(0);
|
|
||||||
_activeworkspace->GetRoot()->Show();
|
|
||||||
// _activeworkspace->GetRoot()->RequestDraw();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for (i=_workspacecount; i>count; i--)
|
|
||||||
DeleteWorkspace(i-1);
|
|
||||||
_workspacecount = count;
|
|
||||||
if ( _currentworkspace > count-1 )
|
|
||||||
SetWorkspace(count-1);
|
|
||||||
|
|
||||||
STRACE_SCREEN(("Screen::SetWorkspaceCount(%ld)\n",count));
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\brief Returns the active workspace index
|
|
||||||
\return The active workspace index
|
|
||||||
*/
|
|
||||||
int32 Screen::CurrentWorkspace(void)
|
|
||||||
{
|
|
||||||
return _currentworkspace;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\brief Sets the active workspace
|
|
||||||
\param index The index of the new active workspace
|
|
||||||
*/
|
|
||||||
void Screen::SetWorkspace(int32 index)
|
|
||||||
{
|
|
||||||
STRACE_SCREEN(("Screen::SetWorkspace(%ld)\n",index+1));
|
|
||||||
if ( (index >= 0) && (index <= _workspacecount-1) )
|
|
||||||
{
|
|
||||||
_currentworkspace = index;
|
|
||||||
_activeworkspace = (Workspace *)_workspacelist->ItemAt(index);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\brief Changes the active status of the screen
|
|
||||||
\param active Flag - should the screen be active?
|
|
||||||
*/
|
|
||||||
void Screen::Activate(bool active)
|
|
||||||
{
|
|
||||||
STRACE_SCREEN(("Screen::Activate(%s)\n",active?"active":"inactive"));
|
|
||||||
_active=active;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\brief Returns a pointer to the display driver used by the Screen
|
|
||||||
\return The display driver
|
|
||||||
*/
|
|
||||||
DisplayDriver *Screen::GetGfxDriver(void)
|
|
||||||
{
|
|
||||||
return _driver;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\brief Changes the screen's attributes - depth, size, etc.
|
|
||||||
\param index Workspace to change
|
|
||||||
\param res Resolution constant defined in GraphicsDefs.h
|
|
||||||
\param stick Make the change persistent across reboots
|
|
||||||
\return B_OK if succcessful, B_ERROR if not
|
|
||||||
*/
|
|
||||||
status_t Screen::SetSpace(int32 index, int32 res,bool stick)
|
|
||||||
{
|
|
||||||
STRACE_SCREEN(("Screen::SetSpace(%ld,%ld,%s)\n",index,res,stick?"stick":"non-stick"));
|
|
||||||
// the specified workspace isn't active, so this should be easy...
|
|
||||||
Workspace *wkspc=(Workspace*)_workspacelist->ItemAt(index);
|
|
||||||
if(!wkspc)
|
|
||||||
return B_ERROR;
|
|
||||||
wkspc->SetSpace(res);
|
|
||||||
|
|
||||||
if(index==_currentworkspace)
|
|
||||||
{
|
|
||||||
// change the statistics of the current workspace
|
|
||||||
if(_driver)
|
|
||||||
_driver->SetMode(res);
|
|
||||||
}
|
|
||||||
return B_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\brief Adds a Window to the desktop
|
|
||||||
\param win Window to add to the desktop
|
|
||||||
\param workspace Workspace to add the window to
|
|
||||||
|
|
||||||
The ServerWindow's WindowBorder object is added to the RootLayer of the workspace
|
|
||||||
in question. If the window has already been added to another screen, this function
|
|
||||||
will remove it from its old parent and add it to the current one.
|
|
||||||
*/
|
|
||||||
void Screen::AddWindow(ServerWindow *win, int32 workspace)
|
|
||||||
{
|
|
||||||
STRACE_SCREEN(("Screen::AddWindow(%s,%ld)\n",win?win->GetTitle():"NULL", workspace+1));
|
|
||||||
if(!win || !win->_winborder)
|
|
||||||
return;
|
|
||||||
|
|
||||||
Layer *rl=GetRootLayer(workspace);
|
|
||||||
if(rl)
|
|
||||||
rl->AddChild(win->_winborder);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\brief Removes a Window from the desktop
|
|
||||||
\param win The window to remove
|
|
||||||
|
|
||||||
The window will remove itself from whatever screen it has been added to, or if it has not been
|
|
||||||
added to the desktop, it will do nothing.
|
|
||||||
*/
|
|
||||||
void Screen::RemoveWindow(ServerWindow *win)
|
|
||||||
{
|
|
||||||
STRACE_SCREEN(("Screen::RemoveWindow(%s)\n",win?win->GetTitle():"NULL"));
|
|
||||||
if(!win || !win->_winborder)
|
|
||||||
return;
|
|
||||||
|
|
||||||
win->_winborder->RemoveSelf();
|
|
||||||
}
|
|
||||||
/*!
|
|
||||||
\brief Returns the WinBorder taht contains the point
|
|
||||||
\param The point
|
|
||||||
\return The WinBorder that contains the point
|
|
||||||
*/
|
|
||||||
WinBorder* Screen::GetWindowAt( BPoint pt ){
|
|
||||||
WinBorder *wb;
|
|
||||||
Layer *rl = GetRootLayer();
|
|
||||||
Layer *child;
|
|
||||||
for(child = rl->_bottomchild; child!=NULL; child = child->_uppersibling)
|
|
||||||
{
|
|
||||||
if(child->_hidden)
|
|
||||||
continue;
|
|
||||||
wb = dynamic_cast<WinBorder*>(child);
|
|
||||||
if(wb)
|
|
||||||
{
|
|
||||||
BRegion reg;
|
|
||||||
wb->GetDecorator()->GetFootprint(®);
|
|
||||||
if(reg.Contains(pt))
|
|
||||||
return wb;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\brief Returns the active window in the current workspace
|
|
||||||
\return The active window in the current workspace
|
|
||||||
*/
|
|
||||||
ServerWindow *Screen::ActiveWindow(void)
|
|
||||||
{
|
|
||||||
return _activewin;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\brief Activates a window on the desktop
|
|
||||||
\param win The window to activate
|
|
||||||
|
|
||||||
If the given window has not been added to the desktop, it will be automatically added
|
|
||||||
to the current workspace. If, for some reason, the window belongs to a workspace on
|
|
||||||
another screen, this function will fail.
|
|
||||||
*/
|
|
||||||
void Screen::SetActiveWindow(ServerWindow *win)
|
|
||||||
{
|
|
||||||
if(win)
|
|
||||||
{
|
|
||||||
if(win->GetWorkspace()==NULL)
|
|
||||||
{
|
|
||||||
// has not been added to desktop
|
|
||||||
AddWindowToDesktop(win,win->GetWorkspaceIndex(),_id);
|
|
||||||
}
|
|
||||||
Workspace *wksp=win->GetWorkspace();
|
|
||||||
if(wksp->GetScreen()!=this)
|
|
||||||
return;
|
|
||||||
// set_active_winborder(win->_winborder);
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
// set_active_winborder(NULL);
|
|
||||||
}
|
|
||||||
_activewin=win;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\brief Returns the RootLayer of the specified workspace
|
|
||||||
\param workspace The index of the workspace (Default is B_CURRENT_WORKSPACE)
|
|
||||||
\return The RootLayer object
|
|
||||||
*/
|
|
||||||
Layer *Screen::GetRootLayer(int32 workspace)
|
|
||||||
{
|
|
||||||
return (Layer*)_activeworkspace->GetRoot();
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\brief Indicates whether the Screen is initialized
|
|
||||||
\return True if initialized, false if not
|
|
||||||
*/
|
|
||||||
bool Screen::IsInitialized(void)
|
|
||||||
{
|
|
||||||
return _init;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\brief Returns a pointer to the active Workspace object
|
|
||||||
\return The active workspace object
|
|
||||||
*/
|
|
||||||
Workspace *Screen::GetActiveWorkspace(void)
|
|
||||||
{
|
|
||||||
return _activeworkspace;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\brief Returns a pointer to the Workspace at the specified index
|
|
||||||
\return A pointer to the Workspace at the specified index
|
|
||||||
*/
|
|
||||||
Workspace *Screen::GetWorkspace(int32 index)
|
|
||||||
{
|
|
||||||
if(index==_currentworkspace)
|
|
||||||
return _activeworkspace;
|
|
||||||
|
|
||||||
return (Workspace*)_workspacelist->ItemAt(index);
|
|
||||||
}
|
|
||||||
@@ -1,131 +0,0 @@
|
|||||||
//------------------------------------------------------------------------------
|
|
||||||
// Copyright (c) 2001-2003, OpenBeOS
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
// copy of this software and associated documentation files (the "Software"),
|
|
||||||
// to deal in the Software without restriction, including without limitation
|
|
||||||
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
// and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
// Software is furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
// DEALINGS IN THE SOFTWARE.
|
|
||||||
//
|
|
||||||
// File Name: DesktopClasses.h
|
|
||||||
// Author: DarkWyrm <[email protected]>
|
|
||||||
// Gabe Yoder <[email protected]>
|
|
||||||
// Description: Classes for managing workspaces and screens
|
|
||||||
//
|
|
||||||
//------------------------------------------------------------------------------
|
|
||||||
#ifndef DESKTOPCLASSES_H
|
|
||||||
#define DESKTOPCLASSES_H
|
|
||||||
|
|
||||||
#include <SupportDefs.h>
|
|
||||||
#include <Accelerant.h>
|
|
||||||
#include <GraphicsDefs.h>
|
|
||||||
#include <GraphicsCard.h>
|
|
||||||
#include <Window.h> // for workspace defs
|
|
||||||
|
|
||||||
class DisplayDriver;
|
|
||||||
class ServerWindow;
|
|
||||||
class RGBColor;
|
|
||||||
class Screen;
|
|
||||||
class WinBorder;
|
|
||||||
class RootLayer;
|
|
||||||
class Layer;
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\class Workspace DesktopClasses.h
|
|
||||||
\brief Object used to handle all things Workspace related.
|
|
||||||
|
|
||||||
Doesn't actually do a whole lot except to couple some associated data with a
|
|
||||||
RootLayer.
|
|
||||||
*/
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
int index;
|
|
||||||
display_timing timing;
|
|
||||||
color_space space;
|
|
||||||
int res_w;
|
|
||||||
int res_h;
|
|
||||||
int32 flags;
|
|
||||||
int32 bgcolor;
|
|
||||||
} as_workspace_data;
|
|
||||||
|
|
||||||
class Workspace
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
Workspace(const graphics_card_info &gcinfo, const frame_buffer_info &fbinfo, Screen *screen);
|
|
||||||
Workspace(as_workspace_data *data, Screen *screen);
|
|
||||||
~Workspace(void);
|
|
||||||
void SetBGColor(const RGBColor &c);
|
|
||||||
RGBColor BGColor();
|
|
||||||
RootLayer *GetRoot(void);
|
|
||||||
void SetData(const graphics_card_info &gcinfo, const frame_buffer_info &fbinfo);
|
|
||||||
void GetData(graphics_card_info *gcinfo, frame_buffer_info *fbinfo);
|
|
||||||
void SetSpace(int32 res);
|
|
||||||
//! Returns the screen to which the workspace belongs
|
|
||||||
Screen *GetScreen(void) { return _screen; }
|
|
||||||
protected:
|
|
||||||
RootLayer *_rootlayer;
|
|
||||||
graphics_card_info _gcinfo;
|
|
||||||
frame_buffer_info _fbinfo;
|
|
||||||
Screen *_screen;
|
|
||||||
};
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\class Screen DesktopClasses.h
|
|
||||||
\brief Handles each DisplayDriver/video card pair and associated management.
|
|
||||||
|
|
||||||
There is only one per monitor. Manages all workspaces displayed on that
|
|
||||||
particular monitor and also Window-Desktop management for all workspaces therein.
|
|
||||||
*/
|
|
||||||
class Screen
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
Screen(DisplayDriver *gfxmodule);
|
|
||||||
~Screen(void);
|
|
||||||
void AddWorkspace(int32 index=-1);
|
|
||||||
void AddWorkspace(Workspace *workspace,int32 index=-1);
|
|
||||||
void DeleteWorkspace(int32 index);
|
|
||||||
int32 CountWorkspaces(void);
|
|
||||||
void SetWorkspaceCount(int32 count);
|
|
||||||
int32 CurrentWorkspace(void);
|
|
||||||
void SetWorkspace(int32 index);
|
|
||||||
void Activate(bool active=true);
|
|
||||||
DisplayDriver *GetGfxDriver(void);
|
|
||||||
status_t SetSpace(int32 index, int32 res,bool stick=true);
|
|
||||||
void AddWindow(ServerWindow *win, int32 workspace=B_CURRENT_WORKSPACE);
|
|
||||||
void RemoveWindow(ServerWindow *win);
|
|
||||||
WinBorder* GetWindowAt( BPoint pt );
|
|
||||||
ServerWindow *ActiveWindow(void);
|
|
||||||
void SetActiveWindow(ServerWindow *win);
|
|
||||||
Layer* GetRootLayer(int32 workspace=B_CURRENT_WORKSPACE);
|
|
||||||
bool IsInitialized(void);
|
|
||||||
Workspace *GetWorkspace(int32 index);
|
|
||||||
Workspace *GetActiveWorkspace(void);
|
|
||||||
//! Returns the unique identifier for the screen
|
|
||||||
screen_id GetID(void) { return _id; }
|
|
||||||
protected:
|
|
||||||
int32 _resolution;
|
|
||||||
ServerWindow *_activewin;
|
|
||||||
int32 _currentworkspace;
|
|
||||||
int32 _workspacecount;
|
|
||||||
BList *_workspacelist;
|
|
||||||
DisplayDriver *_driver;
|
|
||||||
bool _init, _active;
|
|
||||||
Workspace *_activeworkspace;
|
|
||||||
graphics_card_info _gcinfo;
|
|
||||||
frame_buffer_info _fbinfo;
|
|
||||||
screen_id _id;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -559,28 +559,30 @@ void ServerApp::_DispatchMessage(int32 code, BPortLink& msg)
|
|||||||
}
|
}
|
||||||
case AS_CREATE_PICTURE:
|
case AS_CREATE_PICTURE:
|
||||||
{
|
{
|
||||||
// TODO: Implement
|
// TODO: Implement AS_CREATE_PICTURE
|
||||||
STRACE(("ServerApp %s: Create Picture unimplemented\n",fSignature.String()));
|
STRACE(("ServerApp %s: Create Picture unimplemented\n",fSignature.String()));
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case AS_DELETE_PICTURE:
|
case AS_DELETE_PICTURE:
|
||||||
{
|
{
|
||||||
// TODO: Implement
|
// TODO: Implement AS_DELETE_PICTURE
|
||||||
STRACE(("ServerApp %s: Delete Picture unimplemented\n",fSignature.String()));
|
STRACE(("ServerApp %s: Delete Picture unimplemented\n",fSignature.String()));
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case AS_CLONE_PICTURE:
|
case AS_CLONE_PICTURE:
|
||||||
{
|
{
|
||||||
// TODO: Implement
|
// TODO: Implement AS_CLONE_PICTURE
|
||||||
STRACE(("ServerApp %s: Clone Picture unimplemented\n",fSignature.String()));
|
STRACE(("ServerApp %s: Clone Picture unimplemented\n",fSignature.String()));
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case AS_DOWNLOAD_PICTURE:
|
case AS_DOWNLOAD_PICTURE:
|
||||||
{
|
{
|
||||||
// TODO; Implement
|
// TODO; Implement AS_DOWNLOAD_PICTURE
|
||||||
|
|
||||||
|
// What is this particular function call for, anyway?
|
||||||
STRACE(("ServerApp %s: Download Picture unimplemented\n",fSignature.String()));
|
STRACE(("ServerApp %s: Download Picture unimplemented\n",fSignature.String()));
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -341,7 +341,7 @@ void ServerWindow::Hide(void)
|
|||||||
if (ws->FocusLayer() == fWinBorder)
|
if (ws->FocusLayer() == fWinBorder)
|
||||||
ws->SearchAndSetNewFocus(fWinBorder);
|
ws->SearchAndSetNewFocus(fWinBorder);
|
||||||
else{
|
else{
|
||||||
// TODO: RootLayer class should take care of this. (or Desktop)
|
// TODO: RootLayer or Desktop class should take care of invalidating
|
||||||
// ws->Invalidate();
|
// ws->Invalidate();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -520,8 +520,8 @@ void ServerWindow::SetLayerFontState(Layer *layer)
|
|||||||
{
|
{
|
||||||
uint32 fontID;
|
uint32 fontID;
|
||||||
fSession->Read<int32>((int32*)&fontID);
|
fSession->Read<int32>((int32*)&fontID);
|
||||||
// TODO: implement later. Currently there is no SetFamAndStyle(uint32)
|
|
||||||
// in ServerFont class. DW, could you add one?
|
// TODO: Implement. ServerFont::SetFamilyAndStyle(uint32) is needed
|
||||||
//layer->fLayerData->font->
|
//layer->fLayerData->font->
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -706,7 +706,7 @@ void ServerWindow::DispatchMessage(int32 code)
|
|||||||
cl->fDriver->DrawBitmap(®ion, sbmp, src, dst, cl->fLayerData);
|
cl->fDriver->DrawBitmap(®ion, sbmp, src, dst, cl->fLayerData);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Adi -- shouldn't this sync with the client?
|
// TODO: Adi -- shouldn't AS_LAYER_DRAW_BITMAP_SYNC_AT_POINT sync with the client?
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case AS_LAYER_DRAW_BITMAP_ASYNC_AT_POINT:
|
case AS_LAYER_DRAW_BITMAP_ASYNC_AT_POINT:
|
||||||
@@ -753,7 +753,7 @@ void ServerWindow::DispatchMessage(int32 code)
|
|||||||
cl->fDriver->DrawBitmap(®ion, sbmp, srcRect, dstRect, cl->fLayerData);
|
cl->fDriver->DrawBitmap(®ion, sbmp, srcRect, dstRect, cl->fLayerData);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Adi -- shouldn't this sync with the client?
|
// TODO: Adi -- shouldn't AS_LAYER_DRAW_BITMAP_SYNC_IN_RECT sync with the client?
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case AS_LAYER_DRAW_BITMAP_ASYNC_IN_RECT:
|
case AS_LAYER_DRAW_BITMAP_ASYNC_IN_RECT:
|
||||||
@@ -886,7 +886,7 @@ void ServerWindow::DispatchMessage(int32 code)
|
|||||||
vc = ld->viewcolor.GetColor32();
|
vc = ld->viewcolor.GetColor32();
|
||||||
patt = ld->patt.GetInt64();
|
patt = ld->patt.GetInt64();
|
||||||
|
|
||||||
// TODO: DW implement such a method in ServerFont class!
|
// TODO: Implement when ServerFont::SetfamilyAndStyle(int32) exists
|
||||||
fSession->StartMessage(SERVER_TRUE);
|
fSession->StartMessage(SERVER_TRUE);
|
||||||
|
|
||||||
// Attach font state
|
// Attach font state
|
||||||
@@ -952,8 +952,7 @@ void ServerWindow::DispatchMessage(int32 code)
|
|||||||
fSession->Read<float>(&newWidth);
|
fSession->Read<float>(&newWidth);
|
||||||
fSession->Read<float>(&newHeight);
|
fSession->Read<float>(&newHeight);
|
||||||
|
|
||||||
// TODO: check for minimum allowed. WinBorder should provide such
|
// TODO: Check for minimum size allowed. Need WinBorder::GetSizeLimits
|
||||||
// a method, based on its decorator.
|
|
||||||
|
|
||||||
cl->ResizeBy(newWidth, newHeight);
|
cl->ResizeBy(newWidth, newHeight);
|
||||||
|
|
||||||
@@ -1033,10 +1032,7 @@ void ServerWindow::DispatchMessage(int32 code)
|
|||||||
STRACE(("ServerWindow %s: Message AS_LAYER_SET_LINE_MODE: Layer: %s\n",fTitle.String(), cl->fName->String()));
|
STRACE(("ServerWindow %s: Message AS_LAYER_SET_LINE_MODE: Layer: %s\n",fTitle.String(), cl->fName->String()));
|
||||||
int8 lineCap, lineJoin;
|
int8 lineCap, lineJoin;
|
||||||
|
|
||||||
// TODO: DW: Shouldn't we lock before modifying certain memebers?
|
// TODO: Look into locking scheme relating to Layers and modifying redraw-related members
|
||||||
// Redraw code might use an updated value instead of one for which
|
|
||||||
// it was called. e.g.: different lineCap or lineJoin. Strange results
|
|
||||||
// would appear.
|
|
||||||
|
|
||||||
fSession->Read<int8>(&lineCap);
|
fSession->Read<int8>(&lineCap);
|
||||||
fSession->Read<int8>(&lineJoin);
|
fSession->Read<int8>(&lineJoin);
|
||||||
@@ -1251,7 +1247,7 @@ void ServerWindow::DispatchMessage(int32 code)
|
|||||||
{
|
{
|
||||||
STRACE(("ServerWindow %s: Message AS_LAYER_CLIP_TO_PICTURE: Layer: %s\n",fTitle.String(), cl->fName->String()));
|
STRACE(("ServerWindow %s: Message AS_LAYER_CLIP_TO_PICTURE: Layer: %s\n",fTitle.String(), cl->fName->String()));
|
||||||
|
|
||||||
// TODO: watch out for the coordinate system
|
// TODO: Watch out for the coordinate system in AS_LAYER_CLIP_TO_PICTURE
|
||||||
int32 pictureToken;
|
int32 pictureToken;
|
||||||
BPoint where;
|
BPoint where;
|
||||||
|
|
||||||
@@ -1283,7 +1279,7 @@ void ServerWindow::DispatchMessage(int32 code)
|
|||||||
{
|
{
|
||||||
//cl->clipToPicture = sp;
|
//cl->clipToPicture = sp;
|
||||||
|
|
||||||
// TODO: increase that picture's reference count.(~ allocate a picture)
|
// TODO: Increase that picture's reference count.(~ allocate a picture)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1326,7 +1322,7 @@ void ServerWindow::DispatchMessage(int32 code)
|
|||||||
{
|
{
|
||||||
STRACE(("ServerWindow %s: Message AS_LAYER_CLIP_TO_INVERSE_PICTURE: Layer: %s\n",fTitle.String(), cl->fName->String()));
|
STRACE(("ServerWindow %s: Message AS_LAYER_CLIP_TO_INVERSE_PICTURE: Layer: %s\n",fTitle.String(), cl->fName->String()));
|
||||||
|
|
||||||
// TODO: watch out for the coordinate system
|
// TODO: Watch out for the coordinate system in AS_LAYER_CLIP_TO_INVERSE_PICTURE
|
||||||
int32 pictureToken;
|
int32 pictureToken;
|
||||||
BPoint where;
|
BPoint where;
|
||||||
|
|
||||||
@@ -1346,7 +1342,7 @@ void ServerWindow::DispatchMessage(int32 code)
|
|||||||
{
|
{
|
||||||
//cl->clipToPicture = sp;
|
//cl->clipToPicture = sp;
|
||||||
|
|
||||||
// TODO: increase that picture's reference count.(~ allocate a picture)
|
// TODO: Increase that picture's reference count.(~ allocate a picture)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1365,14 +1361,17 @@ void ServerWindow::DispatchMessage(int32 code)
|
|||||||
case AS_LAYER_GET_CLIP_REGION:
|
case AS_LAYER_GET_CLIP_REGION:
|
||||||
{
|
{
|
||||||
STRACE(("ServerWindow %s: Message AS_LAYER_GET_CLIP_REGION: Layer: %s\n",fTitle.String(), cl->fName->String()));
|
STRACE(("ServerWindow %s: Message AS_LAYER_GET_CLIP_REGION: Layer: %s\n",fTitle.String(), cl->fName->String()));
|
||||||
|
|
||||||
// if this Layer is hidden, it is clear that its visible region is void.
|
// if this Layer is hidden, it is clear that its visible region is void.
|
||||||
if (cl->IsHidden()){
|
if (cl->IsHidden())
|
||||||
|
{
|
||||||
fSession->StartMessage(SERVER_TRUE);
|
fSession->StartMessage(SERVER_TRUE);
|
||||||
fSession->Attach<int32>(0L);
|
fSession->Attach<int32>(0L);
|
||||||
fSession->Flush();
|
fSession->Flush();
|
||||||
}
|
}
|
||||||
else{
|
else
|
||||||
// TODO: watch out for the coordinate system
|
{
|
||||||
|
// TODO: Watch out for the coordinate system in AS_LAYER_GET_CLIP_REGION
|
||||||
BRegion reg;
|
BRegion reg;
|
||||||
LayerData *ld;
|
LayerData *ld;
|
||||||
int32 noOfRects;
|
int32 noOfRects;
|
||||||
@@ -1401,7 +1400,8 @@ void ServerWindow::DispatchMessage(int32 code)
|
|||||||
case AS_LAYER_SET_CLIP_REGION:
|
case AS_LAYER_SET_CLIP_REGION:
|
||||||
{
|
{
|
||||||
STRACE(("ServerWindow %s: Message AS_LAYER_SET_CLIP_REGION: Layer: %s\n",fTitle.String(), cl->fName->String()));
|
STRACE(("ServerWindow %s: Message AS_LAYER_SET_CLIP_REGION: Layer: %s\n",fTitle.String(), cl->fName->String()));
|
||||||
// TODO: watch out for the coordinate system
|
|
||||||
|
// TODO: Watch out for the coordinate system in AS_LAYER_SET_CLIP_REGION
|
||||||
int32 noOfRects;
|
int32 noOfRects;
|
||||||
BRect r;
|
BRect r;
|
||||||
|
|
||||||
@@ -1432,7 +1432,8 @@ void ServerWindow::DispatchMessage(int32 code)
|
|||||||
case AS_LAYER_INVAL_RECT:
|
case AS_LAYER_INVAL_RECT:
|
||||||
{
|
{
|
||||||
STRACE(("ServerWindow %s: Message AS_LAYER_INVAL_RECT: Layer: %s\n",fTitle.String(), cl->fName->String()));
|
STRACE(("ServerWindow %s: Message AS_LAYER_INVAL_RECT: Layer: %s\n",fTitle.String(), cl->fName->String()));
|
||||||
// TODO: watch out for the coordinate system
|
|
||||||
|
// TODO: Watch out for the coordinate system in AS_LAYER_INVAL_RECT
|
||||||
BRect invalRect;
|
BRect invalRect;
|
||||||
|
|
||||||
fSession->Read<BRect>(&invalRect);
|
fSession->Read<BRect>(&invalRect);
|
||||||
@@ -1444,7 +1445,8 @@ void ServerWindow::DispatchMessage(int32 code)
|
|||||||
case AS_LAYER_INVAL_REGION:
|
case AS_LAYER_INVAL_REGION:
|
||||||
{
|
{
|
||||||
STRACE(("ServerWindow %s: Message AS_LAYER_INVAL_RECT: Layer: %s\n",fTitle.String(), cl->fName->String()));
|
STRACE(("ServerWindow %s: Message AS_LAYER_INVAL_RECT: Layer: %s\n",fTitle.String(), cl->fName->String()));
|
||||||
// TODO: watch out for the coordinate system
|
|
||||||
|
// TODO: Watch out for the coordinate system AS_LAYER_INVAL_REGION
|
||||||
BRegion invalReg;
|
BRegion invalReg;
|
||||||
int32 noOfRects;
|
int32 noOfRects;
|
||||||
BRect rect;
|
BRect rect;
|
||||||
@@ -1479,7 +1481,7 @@ void ServerWindow::DispatchMessage(int32 code)
|
|||||||
{
|
{
|
||||||
// Received when a window deletes its internal top view
|
// Received when a window deletes its internal top view
|
||||||
|
|
||||||
// TODO: Implement
|
// TODO: Implement AS_LAYER_DELETE_ROOT
|
||||||
STRACE(("ServerWindow %s: Message Delete_Layer_Root unimplemented\n",fTitle.String()));
|
STRACE(("ServerWindow %s: Message Delete_Layer_Root unimplemented\n",fTitle.String()));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -1497,31 +1499,31 @@ void ServerWindow::DispatchMessage(int32 code)
|
|||||||
}
|
}
|
||||||
case AS_SEND_BEHIND:
|
case AS_SEND_BEHIND:
|
||||||
{
|
{
|
||||||
// TODO: Implement
|
// TODO: Implement AS_SEND_BEHIND
|
||||||
STRACE(("ServerWindow %s: Message Send_Behind unimplemented\n",fTitle.String()));
|
STRACE(("ServerWindow %s: Message Send_Behind unimplemented\n",fTitle.String()));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case AS_ENABLE_UPDATES:
|
case AS_ENABLE_UPDATES:
|
||||||
{
|
{
|
||||||
// TODO: Implement
|
// TODO: Implement AS_ENABLE_UPDATES
|
||||||
STRACE(("ServerWindow %s: Message Enable_Updates unimplemented\n",fTitle.String()));
|
STRACE(("ServerWindow %s: Message Enable_Updates unimplemented\n",fTitle.String()));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case AS_DISABLE_UPDATES:
|
case AS_DISABLE_UPDATES:
|
||||||
{
|
{
|
||||||
// TODO: Implement
|
// TODO: Implement AS_DISABLE_UPDATES
|
||||||
STRACE(("ServerWindow %s: Message Disable_Updates unimplemented\n",fTitle.String()));
|
STRACE(("ServerWindow %s: Message Disable_Updates unimplemented\n",fTitle.String()));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case AS_NEEDS_UPDATE:
|
case AS_NEEDS_UPDATE:
|
||||||
{
|
{
|
||||||
// TODO: Implement
|
// TODO: Implement AS_NEEDS_UPDATE
|
||||||
STRACE(("ServerWindow %s: Message Needs_Update unimplemented\n",fTitle.String()));
|
STRACE(("ServerWindow %s: Message Needs_Update unimplemented\n",fTitle.String()));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case AS_WINDOW_TITLE:
|
case AS_WINDOW_TITLE:
|
||||||
{
|
{
|
||||||
// TODO: Implement
|
// TODO: Implement AS_WINDOW_TITLE
|
||||||
STRACE(("ServerWindow %s: Message Set_Title unimplemented\n",fTitle.String()));
|
STRACE(("ServerWindow %s: Message Set_Title unimplemented\n",fTitle.String()));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -1575,43 +1577,43 @@ void ServerWindow::DispatchMessage(int32 code)
|
|||||||
}
|
}
|
||||||
case AS_SET_LOOK:
|
case AS_SET_LOOK:
|
||||||
{
|
{
|
||||||
// TODO: Implement
|
// TODO: Implement AS_SET_LOOK
|
||||||
STRACE(("ServerWindow %s: Message Set_Look unimplemented\n",fTitle.String()));
|
STRACE(("ServerWindow %s: Message Set_Look unimplemented\n",fTitle.String()));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case AS_SET_FLAGS:
|
case AS_SET_FLAGS:
|
||||||
{
|
{
|
||||||
// TODO: Implement
|
// TODO: Implement AS_SET_FLAGS
|
||||||
STRACE(("ServerWindow %s: Message Set_Flags unimplemented\n",fTitle.String()));
|
STRACE(("ServerWindow %s: Message Set_Flags unimplemented\n",fTitle.String()));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case AS_SET_FEEL:
|
case AS_SET_FEEL:
|
||||||
{
|
{
|
||||||
// TODO: Implement
|
// TODO: Implement AS_SET_FEEL
|
||||||
STRACE(("ServerWindow %s: Message Set_Feel unimplemented\n",fTitle.String()));
|
STRACE(("ServerWindow %s: Message Set_Feel unimplemented\n",fTitle.String()));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case AS_SET_ALIGNMENT:
|
case AS_SET_ALIGNMENT:
|
||||||
{
|
{
|
||||||
// TODO: Implement
|
// TODO: Implement AS_SET_ALIGNMENT
|
||||||
STRACE(("ServerWindow %s: Message Set_Alignment unimplemented\n",fTitle.String()));
|
STRACE(("ServerWindow %s: Message Set_Alignment unimplemented\n",fTitle.String()));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case AS_GET_ALIGNMENT:
|
case AS_GET_ALIGNMENT:
|
||||||
{
|
{
|
||||||
// TODO: Implement
|
// TODO: Implement AS_GET_ALIGNMENT
|
||||||
STRACE(("ServerWindow %s: Message Get_Alignment unimplemented\n",fTitle.String()));
|
STRACE(("ServerWindow %s: Message Get_Alignment unimplemented\n",fTitle.String()));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case AS_GET_WORKSPACES:
|
case AS_GET_WORKSPACES:
|
||||||
{
|
{
|
||||||
// TODO: Implement
|
// TODO: Implement AS_GET_WORKSPACES
|
||||||
STRACE(("ServerWindow %s: Message Get_Workspaces unimplemented\n",fTitle.String()));
|
STRACE(("ServerWindow %s: Message Get_Workspaces unimplemented\n",fTitle.String()));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case AS_SET_WORKSPACES:
|
case AS_SET_WORKSPACES:
|
||||||
{
|
{
|
||||||
// TODO: Implement
|
// TODO: Implement AS_SET_WORKSPACES
|
||||||
STRACE(("ServerWindow %s: Message Set_Workspaces unimplemented\n",fTitle.String()));
|
STRACE(("ServerWindow %s: Message Set_Workspaces unimplemented\n",fTitle.String()));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -1662,19 +1664,19 @@ void ServerWindow::DispatchMessage(int32 code)
|
|||||||
}
|
}
|
||||||
case B_MINIMIZE:
|
case B_MINIMIZE:
|
||||||
{
|
{
|
||||||
// TODO: Implement
|
// TODO: Implement B_MINIMIZE
|
||||||
STRACE(("ServerWindow %s: Message Minimize unimplemented\n",fTitle.String()));
|
STRACE(("ServerWindow %s: Message Minimize unimplemented\n",fTitle.String()));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case B_WINDOW_ACTIVATED:
|
case B_WINDOW_ACTIVATED:
|
||||||
{
|
{
|
||||||
// TODO: Implement
|
// TODO: Implement B_WINDOW_ACTIVATED
|
||||||
STRACE(("ServerWindow %s: Message Window_Activated unimplemented\n",fTitle.String()));
|
STRACE(("ServerWindow %s: Message Window_Activated unimplemented\n",fTitle.String()));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case B_ZOOM:
|
case B_ZOOM:
|
||||||
{
|
{
|
||||||
// TODO: Implement
|
// TODO: Implement B_ZOOM
|
||||||
STRACE(("ServerWindow %s: Message Zoom unimplemented\n",fTitle.String()));
|
STRACE(("ServerWindow %s: Message Zoom unimplemented\n",fTitle.String()));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -1708,7 +1710,7 @@ void ServerWindow::DispatchGraphicsMessage(int32 msgsize, int8 *msgbuffer)
|
|||||||
if (IsHidden())
|
if (IsHidden())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// TODO: fix!
|
// TODO: fix sibling-related clipping calculations in DispatchGraphicsMessage
|
||||||
/* WindowClipRegion.Set(fWinBorder->Frame());
|
/* WindowClipRegion.Set(fWinBorder->Frame());
|
||||||
sibling = fWinBorder->UpperSibling();
|
sibling = fWinBorder->UpperSibling();
|
||||||
while (sibling)
|
while (sibling)
|
||||||
@@ -1717,6 +1719,7 @@ void ServerWindow::DispatchGraphicsMessage(int32 msgsize, int8 *msgbuffer)
|
|||||||
sibling = sibling->UpperSibling();
|
sibling = sibling->UpperSibling();
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (!WindowClipRegion.Frame().IsValid())
|
if (!WindowClipRegion.Frame().IsValid())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -1728,7 +1731,7 @@ void ServerWindow::DispatchGraphicsMessage(int32 msgsize, int8 *msgbuffer)
|
|||||||
code = read_from_buffer<int32>(&msgbuffer);
|
code = read_from_buffer<int32>(&msgbuffer);
|
||||||
view_token = read_from_buffer<int32>(&msgbuffer);
|
view_token = read_from_buffer<int32>(&msgbuffer);
|
||||||
|
|
||||||
//TODO: fix!
|
//TODO: fix code to find a layer based on a view token in DispatchGraphicsMessage
|
||||||
layer = NULL;//fWorkspace->GetRoot()->FindLayer(view_token);
|
layer = NULL;//fWorkspace->GetRoot()->FindLayer(view_token);
|
||||||
|
|
||||||
if (layer)
|
if (layer)
|
||||||
@@ -1808,7 +1811,7 @@ void ServerWindow::DispatchGraphicsMessage(int32 msgsize, int8 *msgbuffer)
|
|||||||
}
|
}
|
||||||
case AS_STROKE_ARC:
|
case AS_STROKE_ARC:
|
||||||
{
|
{
|
||||||
// TODO:: Add clipping
|
// TODO: Add clipping to AS_STROKE_ARC
|
||||||
if (sizeRemaining >= AS_STROKE_ARC_MSG_SIZE)
|
if (sizeRemaining >= AS_STROKE_ARC_MSG_SIZE)
|
||||||
{
|
{
|
||||||
float left, top, right, bottom, angle, span;
|
float left, top, right, bottom, angle, span;
|
||||||
@@ -1835,7 +1838,7 @@ void ServerWindow::DispatchGraphicsMessage(int32 msgsize, int8 *msgbuffer)
|
|||||||
}
|
}
|
||||||
case AS_STROKE_BEZIER:
|
case AS_STROKE_BEZIER:
|
||||||
{
|
{
|
||||||
// TODO:: Add clipping
|
// TODO: Add clipping to AS_STROKE_BEZIER
|
||||||
if (sizeRemaining >= AS_STROKE_BEZIER_MSG_SIZE)
|
if (sizeRemaining >= AS_STROKE_BEZIER_MSG_SIZE)
|
||||||
{
|
{
|
||||||
BPoint *pts;
|
BPoint *pts;
|
||||||
@@ -1862,7 +1865,7 @@ void ServerWindow::DispatchGraphicsMessage(int32 msgsize, int8 *msgbuffer)
|
|||||||
}
|
}
|
||||||
case AS_STROKE_ELLIPSE:
|
case AS_STROKE_ELLIPSE:
|
||||||
{
|
{
|
||||||
// TODO:: Add clipping
|
// TODO: Add clipping AS_STROKE_ELLIPSE
|
||||||
if (sizeRemaining >= AS_STROKE_ELLIPSE_MSG_SIZE)
|
if (sizeRemaining >= AS_STROKE_ELLIPSE_MSG_SIZE)
|
||||||
{
|
{
|
||||||
float left, top, right, bottom;
|
float left, top, right, bottom;
|
||||||
@@ -1886,7 +1889,7 @@ void ServerWindow::DispatchGraphicsMessage(int32 msgsize, int8 *msgbuffer)
|
|||||||
}
|
}
|
||||||
case AS_STROKE_LINE:
|
case AS_STROKE_LINE:
|
||||||
{
|
{
|
||||||
// TODO:: Add clipping
|
// TODO: Add clipping TO AS_STROKE_LINE
|
||||||
if (sizeRemaining >= AS_STROKE_LINE_MSG_SIZE)
|
if (sizeRemaining >= AS_STROKE_LINE_MSG_SIZE)
|
||||||
{
|
{
|
||||||
float x1, y1, x2, y2;
|
float x1, y1, x2, y2;
|
||||||
@@ -1911,17 +1914,17 @@ void ServerWindow::DispatchGraphicsMessage(int32 msgsize, int8 *msgbuffer)
|
|||||||
}
|
}
|
||||||
case AS_STROKE_LINEARRAY:
|
case AS_STROKE_LINEARRAY:
|
||||||
{
|
{
|
||||||
// TODO: Implement
|
// TODO: Implement AS_STROKE_LINEARRAY
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case AS_STROKE_POLYGON:
|
case AS_STROKE_POLYGON:
|
||||||
{
|
{
|
||||||
// TODO: Implement
|
// TODO: Implement AS_STROKE_POLYGON
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case AS_STROKE_RECT:
|
case AS_STROKE_RECT:
|
||||||
{
|
{
|
||||||
// TODO:: Add clipping
|
// TODO: Add clipping TO AS_STROKE_RECT
|
||||||
if (sizeRemaining >= AS_STROKE_RECT_MSG_SIZE)
|
if (sizeRemaining >= AS_STROKE_RECT_MSG_SIZE)
|
||||||
{
|
{
|
||||||
float left, top, right, bottom;
|
float left, top, right, bottom;
|
||||||
@@ -1945,7 +1948,7 @@ void ServerWindow::DispatchGraphicsMessage(int32 msgsize, int8 *msgbuffer)
|
|||||||
}
|
}
|
||||||
case AS_STROKE_ROUNDRECT:
|
case AS_STROKE_ROUNDRECT:
|
||||||
{
|
{
|
||||||
// TODO:: Add clipping
|
// TODO: Add clipping AS_STROKE_ROUNDRECT
|
||||||
if (sizeRemaining >= AS_STROKE_ROUNDRECT_MSG_SIZE)
|
if (sizeRemaining >= AS_STROKE_ROUNDRECT_MSG_SIZE)
|
||||||
{
|
{
|
||||||
float left, top, right, bottom, xrad, yrad;
|
float left, top, right, bottom, xrad, yrad;
|
||||||
@@ -1971,12 +1974,12 @@ void ServerWindow::DispatchGraphicsMessage(int32 msgsize, int8 *msgbuffer)
|
|||||||
}
|
}
|
||||||
case AS_STROKE_SHAPE:
|
case AS_STROKE_SHAPE:
|
||||||
{
|
{
|
||||||
// TODO: Implement
|
// TODO: Implement AS_STROKE_SHAPE
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case AS_STROKE_TRIANGLE:
|
case AS_STROKE_TRIANGLE:
|
||||||
{
|
{
|
||||||
// TODO:: Add clipping
|
// TODO:: Add clipping to AS_STROKE_TRIANGLE
|
||||||
if (sizeRemaining >= AS_STROKE_TRIANGLE_MSG_SIZE)
|
if (sizeRemaining >= AS_STROKE_TRIANGLE_MSG_SIZE)
|
||||||
{
|
{
|
||||||
BPoint *pts;
|
BPoint *pts;
|
||||||
@@ -2009,7 +2012,7 @@ void ServerWindow::DispatchGraphicsMessage(int32 msgsize, int8 *msgbuffer)
|
|||||||
}
|
}
|
||||||
case AS_FILL_ARC:
|
case AS_FILL_ARC:
|
||||||
{
|
{
|
||||||
// TODO:: Add clipping
|
// TODO:: Add clipping to AS_FILL_ARC
|
||||||
if (sizeRemaining >= AS_FILL_ARC_MSG_SIZE)
|
if (sizeRemaining >= AS_FILL_ARC_MSG_SIZE)
|
||||||
{
|
{
|
||||||
float left, top, right, bottom, angle, span;
|
float left, top, right, bottom, angle, span;
|
||||||
@@ -2035,7 +2038,7 @@ void ServerWindow::DispatchGraphicsMessage(int32 msgsize, int8 *msgbuffer)
|
|||||||
}
|
}
|
||||||
case AS_FILL_BEZIER:
|
case AS_FILL_BEZIER:
|
||||||
{
|
{
|
||||||
// TODO:: Add clipping
|
// TODO:: Add clipping to AS_FILL_BEZIER
|
||||||
if (sizeRemaining >= AS_FILL_BEZIER_MSG_SIZE)
|
if (sizeRemaining >= AS_FILL_BEZIER_MSG_SIZE)
|
||||||
{
|
{
|
||||||
BPoint *pts;
|
BPoint *pts;
|
||||||
@@ -2062,7 +2065,7 @@ void ServerWindow::DispatchGraphicsMessage(int32 msgsize, int8 *msgbuffer)
|
|||||||
}
|
}
|
||||||
case AS_FILL_ELLIPSE:
|
case AS_FILL_ELLIPSE:
|
||||||
{
|
{
|
||||||
// TODO:: Add clipping
|
// TODO:: Add clipping to AS_FILL_ELLIPSE
|
||||||
if (sizeRemaining >= AS_FILL_ELLIPSE_MSG_SIZE)
|
if (sizeRemaining >= AS_FILL_ELLIPSE_MSG_SIZE)
|
||||||
{
|
{
|
||||||
float left, top, right, bottom;
|
float left, top, right, bottom;
|
||||||
@@ -2086,7 +2089,7 @@ void ServerWindow::DispatchGraphicsMessage(int32 msgsize, int8 *msgbuffer)
|
|||||||
}
|
}
|
||||||
case AS_FILL_POLYGON:
|
case AS_FILL_POLYGON:
|
||||||
{
|
{
|
||||||
// TODO: Implement
|
// TODO: Implement AS_FILL_POLYGON
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case AS_FILL_RECT:
|
case AS_FILL_RECT:
|
||||||
@@ -2123,12 +2126,12 @@ void ServerWindow::DispatchGraphicsMessage(int32 msgsize, int8 *msgbuffer)
|
|||||||
}
|
}
|
||||||
case AS_FILL_REGION:
|
case AS_FILL_REGION:
|
||||||
{
|
{
|
||||||
// TODO: Implement
|
// TODO: Implement AS_FILL_REGION
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case AS_FILL_ROUNDRECT:
|
case AS_FILL_ROUNDRECT:
|
||||||
{
|
{
|
||||||
// TODO: Add clipping
|
// TODO: Add clipping to AS_FILL_ROUNDRECT
|
||||||
if (sizeRemaining >= AS_FILL_ROUNDRECT_MSG_SIZE)
|
if (sizeRemaining >= AS_FILL_ROUNDRECT_MSG_SIZE)
|
||||||
{
|
{
|
||||||
float left, top, right, bottom, xrad, yrad;
|
float left, top, right, bottom, xrad, yrad;
|
||||||
@@ -2154,12 +2157,12 @@ void ServerWindow::DispatchGraphicsMessage(int32 msgsize, int8 *msgbuffer)
|
|||||||
}
|
}
|
||||||
case AS_FILL_SHAPE:
|
case AS_FILL_SHAPE:
|
||||||
{
|
{
|
||||||
// TODO: Implement
|
// TODO: Implement AS_FILL_SHAPE
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case AS_FILL_TRIANGLE:
|
case AS_FILL_TRIANGLE:
|
||||||
{
|
{
|
||||||
// TODO:: Add clipping
|
// TODO: Add clipping to AS_FILL_TRIANGLE
|
||||||
if (sizeRemaining >= AS_FILL_TRIANGLE_MSG_SIZE)
|
if (sizeRemaining >= AS_FILL_TRIANGLE_MSG_SIZE)
|
||||||
{
|
{
|
||||||
BPoint *pts;
|
BPoint *pts;
|
||||||
@@ -2192,32 +2195,32 @@ void ServerWindow::DispatchGraphicsMessage(int32 msgsize, int8 *msgbuffer)
|
|||||||
}
|
}
|
||||||
case AS_MOVEPENBY:
|
case AS_MOVEPENBY:
|
||||||
{
|
{
|
||||||
// TODO: Implement
|
// TODO: Implement AS_MOVEPENBY
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case AS_MOVEPENTO:
|
case AS_MOVEPENTO:
|
||||||
{
|
{
|
||||||
// TODO: Implement
|
// TODO: Implement AS_MOVEPENTO
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case AS_SETPENSIZE:
|
case AS_SETPENSIZE:
|
||||||
{
|
{
|
||||||
// TODO: Implement
|
// TODO: Implement AS_SETPENSIZE
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case AS_DRAW_STRING:
|
case AS_DRAW_STRING:
|
||||||
{
|
{
|
||||||
// TODO: Implement
|
// TODO: Implement AS_DRAW_STRING
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case AS_SET_FONT:
|
case AS_SET_FONT:
|
||||||
{
|
{
|
||||||
// TODO: Implement
|
// TODO: Implement AS_SET_FONT
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case AS_SET_FONT_SIZE:
|
case AS_SET_FONT_SIZE:
|
||||||
{
|
{
|
||||||
// TODO: Implement
|
// TODO: Implement AS_SET_FONT_SIZE
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ Workspace::Workspace(const uint32 colorspace, int32 ID, const RGBColor& BGColor)
|
|||||||
fVirtualWidth=-1;
|
fVirtualWidth=-1;
|
||||||
fVirtualHeight=-1;
|
fVirtualHeight=-1;
|
||||||
|
|
||||||
// TODO: find out more about good default values and init the structure to them
|
// TODO: find out more about good default values for display timing and init the structure to them
|
||||||
fDisplayTiming.pixel_clock=0;
|
fDisplayTiming.pixel_clock=0;
|
||||||
fDisplayTiming.h_display=0;
|
fDisplayTiming.h_display=0;
|
||||||
fDisplayTiming.h_sync_start=0;
|
fDisplayTiming.h_sync_start=0;
|
||||||
@@ -1071,7 +1071,8 @@ void Workspace::SearchAndSetNewFront(WinBorder *preferred)
|
|||||||
if(fFrontItem != newFrontItem)
|
if(fFrontItem != newFrontItem)
|
||||||
{
|
{
|
||||||
fFrontItem = newFrontItem;
|
fFrontItem = newFrontItem;
|
||||||
// TODO: call a method like... WinBorder::MakeFront(true);
|
|
||||||
|
// TODO: call a method something like WinBorder::MakeFront(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
STRACE(("#WS(%ld)::SASNF(%s) ENDED! Workspace data...", ID(), preferred? preferred->GetName(): "NULL"));
|
STRACE(("#WS(%ld)::SASNF(%s) ENDED! Workspace data...", ID(), preferred? preferred->GetName(): "NULL"));
|
||||||
@@ -1154,8 +1155,8 @@ void Workspace::SearchAndSetNewFocus(WinBorder *preferred)
|
|||||||
|
|
||||||
if(item != fFocusItem)
|
if(item != fFocusItem)
|
||||||
{
|
{
|
||||||
// TODO: item->ColorTabInGrey & send message to client
|
// TODO: redraw old item in inactive colors & send message to client
|
||||||
// TODO: item->ColorTabInYellow & send message to client
|
// TODO: redraw new item in active colors & send message to client
|
||||||
// TODO: Rebuild & Redraw.
|
// TODO: Rebuild & Redraw.
|
||||||
fFocusItem = item;
|
fFocusItem = item;
|
||||||
}
|
}
|
||||||
@@ -1360,14 +1361,14 @@ RGBColor Workspace::BGColor(void) const
|
|||||||
*/
|
*/
|
||||||
void Workspace::GetSettings(const BMessage &msg)
|
void Workspace::GetSettings(const BMessage &msg)
|
||||||
{
|
{
|
||||||
// TODO: Implement
|
// TODO: Implement GetSettings
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
//! Sets workspace settings to defaults
|
//! Sets workspace settings to defaults
|
||||||
void Workspace::GetDefaultSettings(void)
|
void Workspace::GetDefaultSettings(void)
|
||||||
{
|
{
|
||||||
// TODO: Implement
|
// TODO: Implement GetDefaultSettings
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
@@ -1390,7 +1391,7 @@ void Workspace::GetDefaultSettings(void)
|
|||||||
*/
|
*/
|
||||||
void Workspace::PutSettings(BMessage *msg, const int32 &index) const
|
void Workspace::PutSettings(BMessage *msg, const int32 &index) const
|
||||||
{
|
{
|
||||||
// TODO: Implement
|
// TODO: Implement PutSettings
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
@@ -1401,7 +1402,7 @@ void Workspace::PutSettings(BMessage *msg, const int32 &index) const
|
|||||||
*/
|
*/
|
||||||
void Workspace::PutDefaultSettings(BMessage *msg, const int32 &index)
|
void Workspace::PutDefaultSettings(BMessage *msg, const int32 &index)
|
||||||
{
|
{
|
||||||
// TODO: Implement
|
// TODO: Implement PutDefaultSettings
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
|
|||||||
Reference in New Issue
Block a user