Removed a couple of warnings from Accelerant, Screen, and BitmapDrivers
Beginning style changes to resemble OpenTracker guidelines Added header to some files Removed temporary code from ViewDriver and re-enabled cursor movement in Desktopmouse message handler git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6069 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -180,8 +180,9 @@ bool AccelerantDriver::Initialize(void)
|
|||||||
accShowCursor = (show_cursor)accelerant_hook(B_SHOW_CURSOR,NULL);
|
accShowCursor = (show_cursor)accelerant_hook(B_SHOW_CURSOR,NULL);
|
||||||
|
|
||||||
#ifdef DRAW_TEST
|
#ifdef DRAW_TEST
|
||||||
RGBColor red(255,0,0,0);
|
// Commented out to remove a couple warnings
|
||||||
RGBColor green(0,255,0,0);
|
// RGBColor red(255,0,0,0);
|
||||||
|
// RGBColor green(0,255,0,0);
|
||||||
RGBColor blue(0,0,255,0);
|
RGBColor blue(0,0,255,0);
|
||||||
FillRect(BRect(0,0,1024,768),blue);
|
FillRect(BRect(0,0,1024,768),blue);
|
||||||
#endif
|
#endif
|
||||||
@@ -1055,6 +1056,12 @@ void AccelerantDriver::SetMode(int32 mode)
|
|||||||
Unlock();
|
Unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AccelerantDriver::SetMode(const display_mode &mode)
|
||||||
|
{
|
||||||
|
// TODO: Implement
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief Dumps the contents of the frame buffer to a file.
|
\brief Dumps the contents of the frame buffer to a file.
|
||||||
\param path Path and leaf of the file to be created without an extension
|
\param path Path and leaf of the file to be created without an extension
|
||||||
|
|||||||
@@ -94,6 +94,7 @@ public:
|
|||||||
virtual void SetCursor(ServerCursor *csr);
|
virtual void SetCursor(ServerCursor *csr);
|
||||||
|
|
||||||
virtual void SetMode(int32 mode);
|
virtual void SetMode(int32 mode);
|
||||||
|
virtual void SetMode(const display_mode &mode);
|
||||||
virtual bool DumpToFile(const char *path);
|
virtual bool DumpToFile(const char *path);
|
||||||
float StringWidth(const char *string, int32 length, LayerData *d);
|
float StringWidth(const char *string, int32 length, LayerData *d);
|
||||||
float StringHeight(const char *string, int32 length, LayerData *d);
|
float StringHeight(const char *string, int32 length, LayerData *d);
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ float sintable[360], costable[360], tantable[360];
|
|||||||
*/
|
*/
|
||||||
Angle::Angle(float angle)
|
Angle::Angle(float angle)
|
||||||
{
|
{
|
||||||
angle_value=angle;
|
fAngleValue=angle;
|
||||||
if(tables_initialized==false)
|
if(tables_initialized==false)
|
||||||
{
|
{
|
||||||
InitTrigTables();
|
InitTrigTables();
|
||||||
@@ -51,7 +51,7 @@ Angle::Angle(float angle)
|
|||||||
//! Constructor
|
//! Constructor
|
||||||
Angle::Angle(void)
|
Angle::Angle(void)
|
||||||
{
|
{
|
||||||
angle_value=0;
|
fAngleValue=0;
|
||||||
if(tables_initialized==false)
|
if(tables_initialized==false)
|
||||||
{
|
{
|
||||||
InitTrigTables();
|
InitTrigTables();
|
||||||
@@ -70,16 +70,16 @@ void Angle::Normalize(void)
|
|||||||
// if the value of the angle is >=360 or <0, make it so that it is
|
// if the value of the angle is >=360 or <0, make it so that it is
|
||||||
// within those bounds
|
// within those bounds
|
||||||
|
|
||||||
if(angle_value>359)
|
if(fAngleValue>359)
|
||||||
{
|
{
|
||||||
while(angle_value>359)
|
while(fAngleValue>359)
|
||||||
angle_value-=360;
|
fAngleValue-=360;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(angle_value<0)
|
if(fAngleValue<0)
|
||||||
{
|
{
|
||||||
while(angle_value<0)
|
while(fAngleValue<0)
|
||||||
angle_value+=360;
|
fAngleValue+=360;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -89,7 +89,7 @@ void Angle::Normalize(void)
|
|||||||
*/
|
*/
|
||||||
float Angle::Sine(void)
|
float Angle::Sine(void)
|
||||||
{
|
{
|
||||||
return sintable[(int)angle_value];
|
return sintable[(int)fAngleValue];
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -128,7 +128,7 @@ Angle Angle::InvSine(float value)
|
|||||||
*/
|
*/
|
||||||
float Angle::Cosine(void)
|
float Angle::Cosine(void)
|
||||||
{
|
{
|
||||||
return costable[(int)angle_value];
|
return costable[(int)fAngleValue];
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -166,14 +166,14 @@ Angle Angle::InvCosine(float value)
|
|||||||
*/
|
*/
|
||||||
float Angle::Tangent(int *status)
|
float Angle::Tangent(int *status)
|
||||||
{
|
{
|
||||||
if(angle_value==90 || angle_value==270)
|
if(fAngleValue==90 || fAngleValue==270)
|
||||||
{
|
{
|
||||||
if(status)
|
if(status)
|
||||||
*status=0;
|
*status=0;
|
||||||
return 0.0;
|
return 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return tantable[(int)angle_value];
|
return tantable[(int)fAngleValue];
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -213,13 +213,13 @@ uint8 Angle::Quadrant(void)
|
|||||||
{
|
{
|
||||||
// We can get away with not doing extra value checks because of the order in
|
// We can get away with not doing extra value checks because of the order in
|
||||||
// which the checks are done.
|
// which the checks are done.
|
||||||
if(angle_value < 90)
|
if(fAngleValue < 90)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
if(angle_value < 180)
|
if(fAngleValue < 180)
|
||||||
return 2;
|
return 2;
|
||||||
|
|
||||||
if(angle_value < 270)
|
if(fAngleValue < 270)
|
||||||
return 3;
|
return 3;
|
||||||
|
|
||||||
return 4;
|
return 4;
|
||||||
@@ -232,10 +232,10 @@ uint8 Angle::Quadrant(void)
|
|||||||
Angle Angle::Constrain180(void)
|
Angle Angle::Constrain180(void)
|
||||||
{
|
{
|
||||||
// Constrains angle to 0 <= angle < 180
|
// Constrains angle to 0 <= angle < 180
|
||||||
float val=angle_value;
|
float val=fAngleValue;
|
||||||
|
|
||||||
if(angle_value<180)
|
if(fAngleValue<180)
|
||||||
return Angle(angle_value);
|
return Angle(fAngleValue);
|
||||||
|
|
||||||
while(!(val<180))
|
while(!(val<180))
|
||||||
val-=90;
|
val-=90;
|
||||||
@@ -249,10 +249,10 @@ Angle Angle::Constrain180(void)
|
|||||||
Angle Angle::Constrain90(void)
|
Angle Angle::Constrain90(void)
|
||||||
{
|
{
|
||||||
// Constrains angle to 0 <= angle < 90
|
// Constrains angle to 0 <= angle < 90
|
||||||
float val=angle_value;
|
float val=fAngleValue;
|
||||||
|
|
||||||
if(angle_value<90)
|
if(fAngleValue<90)
|
||||||
return Angle(angle_value);
|
return Angle(fAngleValue);
|
||||||
|
|
||||||
while(!(val<90))
|
while(!(val<90))
|
||||||
val-=90;
|
val-=90;
|
||||||
@@ -265,7 +265,7 @@ Angle Angle::Constrain90(void)
|
|||||||
*/
|
*/
|
||||||
void Angle::SetValue(float angle)
|
void Angle::SetValue(float angle)
|
||||||
{
|
{
|
||||||
angle_value=angle;
|
fAngleValue=angle;
|
||||||
Normalize();
|
Normalize();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -275,7 +275,7 @@ void Angle::SetValue(float angle)
|
|||||||
*/
|
*/
|
||||||
float Angle::Value(void) const
|
float Angle::Value(void) const
|
||||||
{
|
{
|
||||||
return angle_value;
|
return fAngleValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
//! Initializes the global trig tables
|
//! Initializes the global trig tables
|
||||||
@@ -319,7 +319,7 @@ void Angle::InitTrigTables(void)
|
|||||||
*/
|
*/
|
||||||
Angle & Angle::operator=(const Angle &from)
|
Angle & Angle::operator=(const Angle &from)
|
||||||
{
|
{
|
||||||
angle_value=from.angle_value;
|
fAngleValue=from.fAngleValue;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -330,7 +330,7 @@ Angle & Angle::operator=(const Angle &from)
|
|||||||
*/
|
*/
|
||||||
Angle & Angle::operator=(const float &from)
|
Angle & Angle::operator=(const float &from)
|
||||||
{
|
{
|
||||||
angle_value=from;
|
fAngleValue=from;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -341,7 +341,7 @@ Angle & Angle::operator=(const float &from)
|
|||||||
*/
|
*/
|
||||||
Angle & Angle::operator=(const long &from)
|
Angle & Angle::operator=(const long &from)
|
||||||
{
|
{
|
||||||
angle_value=(float)from;
|
fAngleValue=(float)from;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -352,7 +352,7 @@ Angle & Angle::operator=(const long &from)
|
|||||||
*/
|
*/
|
||||||
Angle & Angle::operator=(const int &from)
|
Angle & Angle::operator=(const int &from)
|
||||||
{
|
{
|
||||||
angle_value=(float)from;
|
fAngleValue=(float)from;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -363,7 +363,7 @@ Angle & Angle::operator=(const int &from)
|
|||||||
*/
|
*/
|
||||||
bool Angle::operator==(const Angle &from)
|
bool Angle::operator==(const Angle &from)
|
||||||
{
|
{
|
||||||
return (angle_value==from.angle_value)?true:false;
|
return (fAngleValue==from.fAngleValue)?true:false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -373,7 +373,7 @@ bool Angle::operator==(const Angle &from)
|
|||||||
*/
|
*/
|
||||||
bool Angle::operator!=(const Angle &from)
|
bool Angle::operator!=(const Angle &from)
|
||||||
{
|
{
|
||||||
return (angle_value!=from.angle_value)?true:false;
|
return (fAngleValue!=from.fAngleValue)?true:false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -383,7 +383,7 @@ bool Angle::operator!=(const Angle &from)
|
|||||||
*/
|
*/
|
||||||
bool Angle::operator>(const Angle &from)
|
bool Angle::operator>(const Angle &from)
|
||||||
{
|
{
|
||||||
return (angle_value>from.angle_value)?true:false;
|
return (fAngleValue>from.fAngleValue)?true:false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -393,7 +393,7 @@ bool Angle::operator>(const Angle &from)
|
|||||||
*/
|
*/
|
||||||
bool Angle::operator<(const Angle &from)
|
bool Angle::operator<(const Angle &from)
|
||||||
{
|
{
|
||||||
return (angle_value<from.angle_value)?true:false;
|
return (fAngleValue<from.fAngleValue)?true:false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -403,7 +403,7 @@ bool Angle::operator<(const Angle &from)
|
|||||||
*/
|
*/
|
||||||
bool Angle::operator>=(const Angle &from)
|
bool Angle::operator>=(const Angle &from)
|
||||||
{
|
{
|
||||||
return (angle_value>=from.angle_value)?true:false;
|
return (fAngleValue>=from.fAngleValue)?true:false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -413,5 +413,5 @@ bool Angle::operator>=(const Angle &from)
|
|||||||
*/
|
*/
|
||||||
bool Angle::operator<=(const Angle &from)
|
bool Angle::operator<=(const Angle &from)
|
||||||
{
|
{
|
||||||
return (angle_value<=from.angle_value)?true:false;
|
return (fAngleValue<=from.fAngleValue)?true:false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ public:
|
|||||||
bool operator<=(const Angle &from);
|
bool operator<=(const Angle &from);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
float angle_value;
|
float fAngleValue;
|
||||||
void InitTrigTables(void);
|
void InitTrigTables(void);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -34,52 +34,53 @@ class AppServer : public BApplication
|
|||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
AppServer(void);
|
AppServer(void);
|
||||||
~AppServer(void);
|
~AppServer(void);
|
||||||
|
|
||||||
static int32 PollerThread(void *data);
|
static int32 PollerThread(void *data);
|
||||||
static int32 PicassoThread(void *data);
|
static int32 PicassoThread(void *data);
|
||||||
thread_id Run(void);
|
thread_id Run(void);
|
||||||
void MainLoop(void);
|
void MainLoop(void);
|
||||||
|
|
||||||
|
bool LoadDecorator(const char *path);
|
||||||
|
void InitDecorators(void);
|
||||||
|
|
||||||
|
void DispatchMessage(PortMessage *msg);
|
||||||
|
void Broadcast(int32 code);
|
||||||
|
|
||||||
bool LoadDecorator(const char *path);
|
|
||||||
void InitDecorators(void);
|
|
||||||
|
|
||||||
void DispatchMessage(PortMessage *msg);
|
|
||||||
void Broadcast(int32 code);
|
|
||||||
// TODO: remove shortly!
|
// TODO: remove shortly!
|
||||||
void HandleKeyMessage(int32 code, int8 *buffer);
|
void HandleKeyMessage(int32 code, int8 *buffer);
|
||||||
|
|
||||||
ServerApp* FindApp(const char *sig);
|
ServerApp* FindApp(const char *sig);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
friend Decorator* new_decorator(BRect rect, const char *title,
|
friend Decorator* new_decorator(BRect rect, const char *title,
|
||||||
int32 wlook, int32 wfeel,
|
int32 wlook, int32 wfeel, int32 wflags, DisplayDriver *ddriver);
|
||||||
int32 wflags, DisplayDriver *ddriver);
|
|
||||||
|
|
||||||
create_decorator *make_decorator; // global function pointer
|
// global function pointer
|
||||||
|
create_decorator *make_decorator;
|
||||||
port_id _messageport,
|
|
||||||
_mouseport;
|
port_id _messageport,
|
||||||
|
_mouseport;
|
||||||
image_id _decorator_id;
|
|
||||||
|
image_id _decorator_id;
|
||||||
BString decorator_name;
|
|
||||||
|
BString decorator_name;
|
||||||
bool _quitting_server,
|
|
||||||
_exit_poller;
|
bool _quitting_server,
|
||||||
|
_exit_poller;
|
||||||
BList *_applist;
|
|
||||||
thread_id _poller_id,
|
BList *_applist;
|
||||||
_picasso_id;
|
thread_id _poller_id,
|
||||||
|
_picasso_id;
|
||||||
sem_id _active_lock,
|
|
||||||
_applist_lock,
|
sem_id _active_lock,
|
||||||
_decor_lock;
|
_applist_lock,
|
||||||
|
_decor_lock;
|
||||||
DisplayDriver *_driver;
|
|
||||||
|
DisplayDriver *_driver;
|
||||||
int32 _ssindex;
|
|
||||||
|
int32 _ssindex;
|
||||||
};
|
};
|
||||||
|
|
||||||
Decorator *new_decorator(BRect rect, const char *title, int32 wlook, int32 wfeel,
|
Decorator *new_decorator(BRect rect, const char *title, int32 wlook, int32 wfeel,
|
||||||
|
|||||||
@@ -499,6 +499,12 @@ void BitmapDriver::SetMode(int32 space)
|
|||||||
// No need to reset a bitmap's color space
|
// No need to reset a bitmap's color space
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//! Empty
|
||||||
|
void BitmapDriver::SetMode(const display_mode &mode)
|
||||||
|
{
|
||||||
|
// No need to reset a bitmap's color space
|
||||||
|
}
|
||||||
|
|
||||||
//! Empty
|
//! Empty
|
||||||
void BitmapDriver::HideCursor(void)
|
void BitmapDriver::HideCursor(void)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -122,6 +122,7 @@ virtual void FillArc(const BRect r, float angle, float span, RGBColor& color);
|
|||||||
virtual void SetCursor(ServerCursor *cursor);
|
virtual void SetCursor(ServerCursor *cursor);
|
||||||
|
|
||||||
virtual void SetMode(int32 mode);
|
virtual void SetMode(int32 mode);
|
||||||
|
virtual void SetMode(const display_mode &mode);
|
||||||
float StringWidth(const char *string, int32 length, LayerData *d);
|
float StringWidth(const char *string, int32 length, LayerData *d);
|
||||||
float StringHeight(const char *string, int32 length, LayerData *d);
|
float StringHeight(const char *string, int32 length, LayerData *d);
|
||||||
// virtual bool DumpToFile(const char *path);
|
// virtual bool DumpToFile(const char *path);
|
||||||
|
|||||||
@@ -29,6 +29,7 @@
|
|||||||
#include "CursorManager.h"
|
#include "CursorManager.h"
|
||||||
#include "ServerCursor.h"
|
#include "ServerCursor.h"
|
||||||
#include "CursorData.h"
|
#include "CursorData.h"
|
||||||
|
#include "ServerScreen.h"
|
||||||
#include "ServerConfig.h"
|
#include "ServerConfig.h"
|
||||||
#include <Errors.h>
|
#include <Errors.h>
|
||||||
#include <Directory.h>
|
#include <Directory.h>
|
||||||
@@ -177,37 +178,31 @@ void CursorManager::RemoveAppCursors(const char *signature)
|
|||||||
//! Wrapper around the DisplayDriver ShowCursor call
|
//! Wrapper around the DisplayDriver ShowCursor call
|
||||||
void CursorManager::ShowCursor(void)
|
void CursorManager::ShowCursor(void)
|
||||||
{
|
{
|
||||||
// TODO: Fix
|
Lock();
|
||||||
/* Lock();
|
|
||||||
|
|
||||||
DisplayDriver *driver = desktop->CursorScreen()->DDriver();
|
DisplayDriver *driver = desktop->ActiveScreen()->DDriver();
|
||||||
driver->ShowCursor();
|
driver->ShowCursor();
|
||||||
Unlock();
|
Unlock();
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//! Wrapper around the DisplayDriver HideCursor call
|
//! Wrapper around the DisplayDriver HideCursor call
|
||||||
void CursorManager::HideCursor(void)
|
void CursorManager::HideCursor(void)
|
||||||
{
|
{
|
||||||
// TODO: Fix
|
Lock();
|
||||||
/* Lock();
|
|
||||||
|
|
||||||
DisplayDriver *driver = desktop->CursorScreen()->DDriver();
|
DisplayDriver *driver = desktop->ActiveScreen()->DDriver();
|
||||||
driver->HideCursor();
|
driver->HideCursor();
|
||||||
Unlock();
|
Unlock();
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//! Wrapper around the DisplayDriver ObscureCursor call
|
//! Wrapper around the DisplayDriver ObscureCursor call
|
||||||
void CursorManager::ObscureCursor(void)
|
void CursorManager::ObscureCursor(void)
|
||||||
{
|
{
|
||||||
// TODO: Fix
|
Lock();
|
||||||
/* Lock();
|
|
||||||
|
|
||||||
DisplayDriver *driver = desktop->CursorScreen()->DDriver();
|
DisplayDriver *driver = desktop->ActiveScreen()->DDriver();
|
||||||
driver->ObscureCursor();
|
driver->ObscureCursor();
|
||||||
Unlock();
|
Unlock();
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -216,25 +211,22 @@ void CursorManager::ObscureCursor(void)
|
|||||||
*/
|
*/
|
||||||
void CursorManager::SetCursor(int32 token)
|
void CursorManager::SetCursor(int32 token)
|
||||||
{
|
{
|
||||||
// TODO: Fix
|
Lock();
|
||||||
/* Lock();
|
|
||||||
ServerCursor *c=_FindCursor(token);
|
ServerCursor *c=_FindCursor(token);
|
||||||
if(c)
|
if(c)
|
||||||
{
|
{
|
||||||
DisplayDriver *driver = desktop->CursorScreen()->DDriver();
|
DisplayDriver *driver = desktop->ActiveScreen()->DDriver();
|
||||||
driver->SetCursor(c);
|
driver->SetCursor(c);
|
||||||
_current_which=B_CURSOR_OTHER;
|
_current_which=B_CURSOR_OTHER;
|
||||||
}
|
}
|
||||||
Unlock();
|
Unlock();
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CursorManager::SetCursor(cursor_which which)
|
void CursorManager::SetCursor(cursor_which which)
|
||||||
{
|
{
|
||||||
// TODO: Fix
|
Lock();
|
||||||
/* Lock();
|
|
||||||
|
|
||||||
DisplayDriver *driver = desktop->CursorScreen()->DDriver();
|
DisplayDriver *driver = desktop->ActiveScreen()->DDriver();
|
||||||
switch(which)
|
switch(which)
|
||||||
{
|
{
|
||||||
case B_CURSOR_DEFAULT:
|
case B_CURSOR_DEFAULT:
|
||||||
@@ -296,7 +288,6 @@ void CursorManager::SetCursor(cursor_which which)
|
|||||||
}
|
}
|
||||||
|
|
||||||
Unlock();
|
Unlock();
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ Desktop::Desktop(void){
|
|||||||
fActiveRootLayer = NULL;
|
fActiveRootLayer = NULL;
|
||||||
fFrontWinBorder = NULL;
|
fFrontWinBorder = NULL;
|
||||||
fFocusWinBorder = NULL;
|
fFocusWinBorder = NULL;
|
||||||
fCursorScreen = NULL;
|
fActiveScreen = NULL;
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
Desktop::~Desktop(void){
|
Desktop::~Desktop(void){
|
||||||
@@ -92,7 +92,7 @@ void Desktop::Init(void){
|
|||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
void Desktop::InitMode(void){
|
void Desktop::InitMode(void){
|
||||||
// this is init mode for n-SS.
|
// this is init mode for n-SS.
|
||||||
fCursorScreen = fScreenList.ItemAt(0)? (Screen*)fScreenList.ItemAt(0): NULL;
|
fActiveScreen = fScreenList.ItemAt(0)? (Screen*)fScreenList.ItemAt(0): NULL;
|
||||||
for (int32 i=0; i<fScreenList.CountItems(); i++){
|
for (int32 i=0; i<fScreenList.CountItems(); i++){
|
||||||
char name[32];
|
char name[32];
|
||||||
sprintf(name, "RootLayer %ld", i+1);
|
sprintf(name, "RootLayer %ld", i+1);
|
||||||
@@ -120,8 +120,8 @@ int32 Desktop::ScreenCount() const{
|
|||||||
return fScreenList.CountItems();
|
return fScreenList.CountItems();
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
Screen* Desktop::CursorScreen() const{
|
Screen* Desktop::ActiveScreen() const{
|
||||||
return fCursorScreen;
|
return fActiveScreen;
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
void Desktop::SetActiveRootLayerByIndex(int32 listIndex){
|
void Desktop::SetActiveRootLayerByIndex(int32 listIndex){
|
||||||
@@ -344,7 +344,15 @@ void Desktop::MouseEventHandler(PortMessage *msg){
|
|||||||
// 2) float - x coordinate of mouse click
|
// 2) float - x coordinate of mouse click
|
||||||
// 3) float - y coordinate of mouse click
|
// 3) float - y coordinate of mouse click
|
||||||
// 4) int32 - buttons down
|
// 4) int32 - buttons down
|
||||||
|
int64 dummy;
|
||||||
|
float x,y;
|
||||||
|
msg->Read<int64>(&dummy);
|
||||||
|
msg->Read<float>(&x);
|
||||||
|
msg->Read<float>(&y);
|
||||||
|
|
||||||
|
// We need this so that we can see the cursor on the screen
|
||||||
|
if(fActiveScreen)
|
||||||
|
fActiveScreen->DDriver()->MoveCursorTo(x,y);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case B_MOUSE_WHEEL_CHANGED:{
|
case B_MOUSE_WHEEL_CHANGED:{
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ public:
|
|||||||
// Methods for multiple monitors.
|
// Methods for multiple monitors.
|
||||||
Screen* ScreenAt(int32 index) const;
|
Screen* ScreenAt(int32 index) const;
|
||||||
int32 ScreenCount() const;
|
int32 ScreenCount() const;
|
||||||
Screen* CursorScreen() const;
|
Screen* ActiveScreen() const;
|
||||||
|
|
||||||
void SetActiveRootLayerByIndex(int32 listIndex);
|
void SetActiveRootLayerByIndex(int32 listIndex);
|
||||||
void SetActiveRootLayer(RootLayer* rl);
|
void SetActiveRootLayer(RootLayer* rl);
|
||||||
@@ -91,7 +91,7 @@ private:
|
|||||||
|
|
||||||
BList fScreenList;
|
BList fScreenList;
|
||||||
int32 fScreenMode; // '1' or 'n' Screen(s). Not sure it's needed though.
|
int32 fScreenMode; // '1' or 'n' Screen(s). Not sure it's needed though.
|
||||||
Screen* fCursorScreen;
|
Screen* fActiveScreen;
|
||||||
|
|
||||||
scroll_bar_info fScrollBarInfo;
|
scroll_bar_info fScrollBarInfo;
|
||||||
menu_info fMenuInfo;
|
menu_info fMenuInfo;
|
||||||
|
|||||||
@@ -1,4 +1,29 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// Copyright (c) 2001-2002, 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: FMWList.cpp
|
||||||
|
// Author: Adi Oanca <[email protected]>
|
||||||
|
// Description: List class for something or other (according to DW)
|
||||||
|
//
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <List.h>
|
#include <List.h>
|
||||||
|
|
||||||
@@ -6,24 +31,29 @@
|
|||||||
#include "WinBorder.h"
|
#include "WinBorder.h"
|
||||||
#include "ServerWindow.h"
|
#include "ServerWindow.h"
|
||||||
|
|
||||||
FMWList::FMWList(){
|
FMWList::FMWList(void)
|
||||||
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
FMWList::~FMWList(){
|
FMWList::~FMWList(void)
|
||||||
//printf("~FMWList()\n");
|
{
|
||||||
|
// printf("~FMWList()\n");
|
||||||
// if (fList.CountItems() > 0)
|
// if (fList.CountItems() > 0)
|
||||||
// printf("SERVER: WARNING: FMWList NOT empty in destructor!\n");
|
// printf("SERVER: WARNING: FMWList NOT empty in destructor!\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
void FMWList::AddItem(void* item){
|
void FMWList::AddItem(void *item)
|
||||||
int32 feelItem = ((WinBorder*)item)->Window()->Feel();;
|
{
|
||||||
int32 feelTemp = 0;
|
int32 feelItem = ((WinBorder*)item)->Window()->Feel();;
|
||||||
int32 location = 0;
|
int32 feelTemp = 0;
|
||||||
|
int32 location = 0;
|
||||||
|
|
||||||
for(int32 i=0; i<fList.CountItems(); i++){
|
for(int32 i=0; i<fList.CountItems(); i++)
|
||||||
|
{
|
||||||
location = i + 1;
|
location = i + 1;
|
||||||
feelTemp = ((WinBorder*)fList.ItemAt(i))->Window()->Feel();
|
feelTemp = ((WinBorder*)fList.ItemAt(i))->Window()->Feel();
|
||||||
// in short: if 'item' is a floating window
|
|
||||||
|
// in short: if 'item' is a floating window
|
||||||
if( (feelItem == B_FLOATING_SUBSET_WINDOW_FEEL ||
|
if( (feelItem == B_FLOATING_SUBSET_WINDOW_FEEL ||
|
||||||
feelItem == B_FLOATING_APP_WINDOW_FEEL ||
|
feelItem == B_FLOATING_APP_WINDOW_FEEL ||
|
||||||
feelItem == B_FLOATING_ALL_WINDOW_FEEL)
|
feelItem == B_FLOATING_ALL_WINDOW_FEEL)
|
||||||
@@ -32,44 +62,56 @@ void FMWList::AddItem(void* item){
|
|||||||
feelTemp == B_MODAL_APP_WINDOW_FEEL ||
|
feelTemp == B_MODAL_APP_WINDOW_FEEL ||
|
||||||
feelTemp == B_MODAL_ALL_WINDOW_FEEL)
|
feelTemp == B_MODAL_ALL_WINDOW_FEEL)
|
||||||
)
|
)
|
||||||
// means we found the place for our window('wb')
|
// means we found the place for our window('wb')
|
||||||
{ location--; break; }
|
{
|
||||||
|
location--;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
fList.AddItem(item, location);
|
fList.AddItem(item, location);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool FMWList::HasItem(void* item) const{
|
bool FMWList::HasItem(void *item) const
|
||||||
|
{
|
||||||
return fList.HasItem(item);
|
return fList.HasItem(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool FMWList::RemoveItem(void* item){
|
bool FMWList::RemoveItem(void *item)
|
||||||
|
{
|
||||||
return fList.RemoveItem(item);
|
return fList.RemoveItem(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
void* FMWList::ItemAt(int32 i) const{
|
void *FMWList::ItemAt(int32 i) const
|
||||||
|
{
|
||||||
return fList.ItemAt(i);
|
return fList.ItemAt(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
int32 FMWList::CountItems() const{
|
int32 FMWList::CountItems() const
|
||||||
|
{
|
||||||
return fList.CountItems();
|
return fList.CountItems();
|
||||||
}
|
}
|
||||||
|
|
||||||
void* FMWList::LastItem() const{
|
void *FMWList::LastItem() const
|
||||||
|
{
|
||||||
return fList.LastItem();
|
return fList.LastItem();
|
||||||
}
|
}
|
||||||
|
|
||||||
void* FMWList::FirstItem() const{
|
void *FMWList::FirstItem() const
|
||||||
|
{
|
||||||
return fList.FirstItem();
|
return fList.FirstItem();
|
||||||
}
|
}
|
||||||
|
|
||||||
int32 FMWList::IndexOf(void *item){
|
int32 FMWList::IndexOf(void *item)
|
||||||
|
{
|
||||||
return fList.IndexOf(item);
|
return fList.IndexOf(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FMWList::AddFMWList(FMWList *list){
|
void FMWList::AddFMWList(FMWList *list)
|
||||||
int32 i = 0;
|
{
|
||||||
for(i=0; i<fList.CountItems(); i++){
|
int32 i=0;
|
||||||
int32 feel = ((WinBorder*)fList.ItemAt(i))->Window()->Feel();
|
for(i=0; i<fList.CountItems(); i++)
|
||||||
|
{
|
||||||
|
int32 feel = ((WinBorder*)fList.ItemAt(i))->Window()->Feel();
|
||||||
if(feel == B_MODAL_SUBSET_WINDOW_FEEL ||
|
if(feel == B_MODAL_SUBSET_WINDOW_FEEL ||
|
||||||
feel == B_MODAL_APP_WINDOW_FEEL ||
|
feel == B_MODAL_APP_WINDOW_FEEL ||
|
||||||
feel == B_MODAL_ALL_WINDOW_FEEL)
|
feel == B_MODAL_ALL_WINDOW_FEEL)
|
||||||
@@ -79,42 +121,53 @@ void FMWList::AddFMWList(FMWList *list){
|
|||||||
}
|
}
|
||||||
|
|
||||||
int32 j = 0;
|
int32 j = 0;
|
||||||
for(j=0; j<list->CountItems(); j++){
|
for(j=0; j<list->CountItems(); j++)
|
||||||
void *item = list->ItemAt(j);
|
{
|
||||||
int32 feel = ((WinBorder*)item)->Window()->Feel();
|
void *item = list->ItemAt(j);
|
||||||
|
int32 feel = ((WinBorder*)item)->Window()->Feel();
|
||||||
if(feel == B_MODAL_SUBSET_WINDOW_FEEL ||
|
if(feel == B_MODAL_SUBSET_WINDOW_FEEL ||
|
||||||
feel == B_MODAL_APP_WINDOW_FEEL ||
|
feel == B_MODAL_APP_WINDOW_FEEL ||
|
||||||
feel == B_MODAL_ALL_WINDOW_FEEL)
|
feel == B_MODAL_ALL_WINDOW_FEEL)
|
||||||
{
|
{
|
||||||
fList.AddItem(item, fList.CountItems());
|
fList.AddItem(item, fList.CountItems());
|
||||||
}
|
}
|
||||||
else{
|
else
|
||||||
|
{
|
||||||
fList.AddItem(item, i);
|
fList.AddItem(item, i);
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void FMWList::PrintToStream() const{
|
void FMWList::PrintToStream() const
|
||||||
|
{
|
||||||
printf("Floating and modal windows list:\n");
|
printf("Floating and modal windows list:\n");
|
||||||
WinBorder *wb = NULL;
|
WinBorder *wb = NULL;
|
||||||
for (int32 i=0; i<fList.CountItems(); i++){
|
for (int32 i=0; i<fList.CountItems(); i++)
|
||||||
wb = (WinBorder*)fList.ItemAt(i);
|
{
|
||||||
|
wb=(WinBorder*)fList.ItemAt(i);
|
||||||
|
|
||||||
printf("\t%s", wb->GetName());
|
printf("\t%s", wb->GetName());
|
||||||
|
|
||||||
if (wb->Window()->Feel() == B_FLOATING_SUBSET_WINDOW_FEEL)
|
if (wb->Window()->Feel() == B_FLOATING_SUBSET_WINDOW_FEEL)
|
||||||
printf("\t%s\n", "B_FLOATING_SUBSET_WINDOW_FEEL");
|
printf("\t%s\n", "B_FLOATING_SUBSET_WINDOW_FEEL");
|
||||||
|
|
||||||
if (wb->Window()->Feel() == B_FLOATING_APP_WINDOW_FEEL)
|
if (wb->Window()->Feel() == B_FLOATING_APP_WINDOW_FEEL)
|
||||||
printf("\t%s\n", "B_FLOATING_APP_WINDOW_FEEL");
|
printf("\t%s\n", "B_FLOATING_APP_WINDOW_FEEL");
|
||||||
|
|
||||||
if (wb->Window()->Feel() == B_FLOATING_ALL_WINDOW_FEEL)
|
if (wb->Window()->Feel() == B_FLOATING_ALL_WINDOW_FEEL)
|
||||||
printf("\t%s\n", "B_FLOATING_ALL_WINDOW_FEEL");
|
printf("\t%s\n", "B_FLOATING_ALL_WINDOW_FEEL");
|
||||||
|
|
||||||
if (wb->Window()->Feel() == B_MODAL_SUBSET_WINDOW_FEEL)
|
if (wb->Window()->Feel() == B_MODAL_SUBSET_WINDOW_FEEL)
|
||||||
printf("\t%s\n", "B_MODAL_SUBSET_WINDOW_FEEL");
|
printf("\t%s\n", "B_MODAL_SUBSET_WINDOW_FEEL");
|
||||||
|
|
||||||
if (wb->Window()->Feel() == B_MODAL_APP_WINDOW_FEEL)
|
if (wb->Window()->Feel() == B_MODAL_APP_WINDOW_FEEL)
|
||||||
printf("\t%s\n", "B_MODAL_APP_WINDOW_FEEL");
|
printf("\t%s\n", "B_MODAL_APP_WINDOW_FEEL");
|
||||||
|
|
||||||
if (wb->Window()->Feel() == B_MODAL_ALL_WINDOW_FEEL)
|
if (wb->Window()->Feel() == B_MODAL_ALL_WINDOW_FEEL)
|
||||||
printf("\t%s\n", "B_MODAL_ALL_WINDOW_FEEL");
|
printf("\t%s\n", "B_MODAL_ALL_WINDOW_FEEL");
|
||||||
|
|
||||||
// this should NOT happen
|
// this should NOT happen
|
||||||
if (wb->Window()->Feel() == B_NORMAL_WINDOW_FEEL)
|
if (wb->Window()->Feel() == B_NORMAL_WINDOW_FEEL)
|
||||||
printf("\t%s\n", "B_NORMAL_WINDOW_FEEL");
|
printf("\t%s\n", "B_NORMAL_WINDOW_FEEL");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,29 +1,57 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// Copyright (c) 2001-2002, 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: FMWList.h
|
||||||
|
// Author: Adi Oanca <[email protected]>
|
||||||
|
// Description: List class for something or other (according to DW)
|
||||||
|
//
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
#ifndef _FMWLIST_H_
|
#ifndef _FMWLIST_H_
|
||||||
#define _FMWLIST_H_
|
#define _FMWLIST_H_
|
||||||
|
|
||||||
#include <List.h>
|
#include <List.h>
|
||||||
#include <Window.h>
|
#include <Window.h>
|
||||||
|
|
||||||
class FMWList{
|
class FMWList
|
||||||
|
{
|
||||||
public:
|
public:
|
||||||
FMWList();
|
FMWList(void);
|
||||||
virtual ~FMWList();
|
virtual ~FMWList(void);
|
||||||
void AddItem(void* item);
|
void AddItem(void *item);
|
||||||
bool HasItem(void* item) const;
|
bool HasItem(void *item) const;
|
||||||
bool RemoveItem(void* item);
|
bool RemoveItem(void* item);
|
||||||
void* ItemAt(int32 i) const;
|
void *ItemAt(int32 i) const;
|
||||||
int32 CountItems() const;
|
int32 CountItems(void) const;
|
||||||
void* LastItem() const;
|
void *LastItem(void) const;
|
||||||
void* FirstItem() const;
|
void *FirstItem(void) const;
|
||||||
int32 IndexOf(void *item);
|
int32 IndexOf(void *item);
|
||||||
|
|
||||||
// special
|
// special
|
||||||
void AddFMWList(FMWList *list);
|
void AddFMWList(FMWList *list);
|
||||||
|
|
||||||
// debugging methods
|
// debugging methods
|
||||||
void PrintToStream() const;
|
void PrintToStream() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
BList fList;
|
||||||
BList fList;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -1,3 +1,29 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// Copyright (c) 2001-2002, 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: PNGDump.cpp
|
||||||
|
// Author: DarkWyrm <[email protected]>
|
||||||
|
// Description: Function for saving a generic framebuffer to a PNG file
|
||||||
|
//
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
#include <Rect.h>
|
#include <Rect.h>
|
||||||
#include <Bitmap.h>
|
#include <Bitmap.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|||||||
@@ -1,3 +1,29 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// Copyright (c) 2001-2002, 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: PNGDump.H
|
||||||
|
// Author: DarkWyrm <[email protected]>
|
||||||
|
// Description: Function for saving a generic framebuffer to a PNG file
|
||||||
|
//
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
#ifndef PNGDUMP_H
|
#ifndef PNGDUMP_H
|
||||||
#define PNGDUMP_H
|
#define PNGDUMP_H
|
||||||
|
|
||||||
|
|||||||
@@ -365,6 +365,45 @@ void ScreenDriver::Shutdown(void)
|
|||||||
Unlock();
|
Unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ScreenDriver::SetMode(const display_mode &mode)
|
||||||
|
{
|
||||||
|
screenwin->Lock();
|
||||||
|
int16 w=mode.virtual_width,h=mode.virtual_height;
|
||||||
|
color_space s=(color_space)mode.space;
|
||||||
|
|
||||||
|
screenwin->ResizeTo(w-1,h-1);
|
||||||
|
|
||||||
|
// Clear the invalid flag so that there is no danger of a crash
|
||||||
|
while(screenwin->invalidflag>0)
|
||||||
|
atomic_add(&screenwin->invalidflag,-1);
|
||||||
|
|
||||||
|
delete framebuffer;
|
||||||
|
|
||||||
|
// don't forget to update the internal vars!
|
||||||
|
_SetWidth(w);
|
||||||
|
_SetHeight(h);
|
||||||
|
_SetMode(s);
|
||||||
|
|
||||||
|
screenwin->SetSpace((uint32)s);
|
||||||
|
|
||||||
|
screenwin->viewbmp=new BBitmap(screenwin->Bounds(),s,true);
|
||||||
|
framebuffer=screenwin->viewbmp;
|
||||||
|
drawview=new BView(framebuffer->Bounds(),"drawview",B_FOLLOW_ALL, B_WILL_DRAW);
|
||||||
|
framebuffer->AddChild(drawview);
|
||||||
|
|
||||||
|
framebuffer->Lock();
|
||||||
|
drawview->SetHighColor(workspace_default_color.GetColor32());
|
||||||
|
drawview->FillRect(drawview->Bounds());
|
||||||
|
drawview->Sync();
|
||||||
|
framebuffer->Unlock();
|
||||||
|
|
||||||
|
screenwin->Invalidate(framebuffer->Bounds());
|
||||||
|
|
||||||
|
_SetBytesPerRow(framebuffer->BytesPerRow());
|
||||||
|
atomic_add(&screenwin->invalidflag,1);
|
||||||
|
screenwin->Unlock();
|
||||||
|
}
|
||||||
|
|
||||||
void ScreenDriver::SetMode(int32 space)
|
void ScreenDriver::SetMode(int32 space)
|
||||||
{
|
{
|
||||||
screenwin->Lock();
|
screenwin->Lock();
|
||||||
|
|||||||
@@ -177,6 +177,7 @@ public:
|
|||||||
// void StrokeShape(SShape *sh, LayerData *d, const Pattern &pat);
|
// void StrokeShape(SShape *sh, LayerData *d, const Pattern &pat);
|
||||||
void StrokeTriangle(BPoint *pts, BRect r, LayerData *d, const Pattern &pat);
|
void StrokeTriangle(BPoint *pts, BRect r, LayerData *d, const Pattern &pat);
|
||||||
void SetMode(int32 mode);
|
void SetMode(int32 mode);
|
||||||
|
void SetMode(const display_mode &mode);
|
||||||
float StringWidth(const char *string, int32 length, LayerData *d);
|
float StringWidth(const char *string, int32 length, LayerData *d);
|
||||||
float StringHeight(const char *string, int32 length, LayerData *d);
|
float StringHeight(const char *string, int32 length, LayerData *d);
|
||||||
bool DumpToFile(const char *path);
|
bool DumpToFile(const char *path);
|
||||||
|
|||||||
@@ -23,9 +23,7 @@
|
|||||||
// Author: DarkWyrm <[email protected]>
|
// Author: DarkWyrm <[email protected]>
|
||||||
// Description: Reader for BSession message streams
|
// Description: Reader for BSession message streams
|
||||||
//
|
//
|
||||||
//
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "SessionStreamReader.h"
|
#include "SessionStreamReader.h"
|
||||||
|
|
||||||
@@ -52,26 +50,26 @@ void SessionMessage::SetData(const int32 &code, void *buffer, size_t buffersize)
|
|||||||
|
|
||||||
SessionStreamReader::SessionStreamReader(msg_dispatcher_func *func)
|
SessionStreamReader::SessionStreamReader(msg_dispatcher_func *func)
|
||||||
{
|
{
|
||||||
_buffer=NULL;
|
fBuffer=NULL;
|
||||||
_dispatcher=func;
|
fDispatcherFunc=func;
|
||||||
_msgsize=0;
|
fMsgSize=0;
|
||||||
_msgcode=0;
|
fMsgCode=0;
|
||||||
_currentbuffersize=0;
|
fCurrentBufferSize=0;
|
||||||
}
|
}
|
||||||
|
|
||||||
SessionStreamReader::~SessionStreamReader(void)
|
SessionStreamReader::~SessionStreamReader(void)
|
||||||
{
|
{
|
||||||
if(_buffer)
|
if(fBuffer)
|
||||||
{
|
{
|
||||||
printf("DEBUG: Deleting non-empty SessionStreamReader!\n");
|
printf("DEBUG: Deleting non-empty SessionStreamReader!\n");
|
||||||
delete _buffer;
|
delete fBuffer;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SessionStreamReader::DispatchMessages(void *msgbuffer, size_t buffersize)
|
void SessionStreamReader::DispatchMessages(void *msgbuffer, size_t buffersize)
|
||||||
{
|
{
|
||||||
// This is the main functionality of the stream reader - it takes a BSession message buffer
|
// This is the main functionality of the stream reader - it takes a BSession message buffer
|
||||||
// and reads as much as it can. The entire function centers around _buffer. If _buffer is
|
// and reads as much as it can. The entire function centers around fBuffer. If fBuffer is
|
||||||
// NULL, then the stream reader is not waiting on the completion of a message.
|
// NULL, then the stream reader is not waiting on the completion of a message.
|
||||||
|
|
||||||
if(!msgbuffer || buffersize==0)
|
if(!msgbuffer || buffersize==0)
|
||||||
@@ -82,34 +80,34 @@ void SessionStreamReader::DispatchMessages(void *msgbuffer, size_t buffersize)
|
|||||||
// do we have a message waiting to be completed?
|
// do we have a message waiting to be completed?
|
||||||
while(index<((int8*)msgbuffer+buffersize))
|
while(index<((int8*)msgbuffer+buffersize))
|
||||||
{
|
{
|
||||||
if(_buffer)
|
if(fBuffer)
|
||||||
{
|
{
|
||||||
// We need to see if the data we have received in this call
|
// We need to see if the data we have received in this call
|
||||||
// will complete the message or not
|
// will complete the message or not
|
||||||
if(_currentbuffersize+buffersize>_msgsize)
|
if(fCurrentBufferSize+buffersize>fMsgSize)
|
||||||
{
|
{
|
||||||
// It will, so copy the data to the current location in the buffer (indicated by
|
// It will, so copy the data to the current location in the buffer (indicated by
|
||||||
// _currentbuffersize), call the Dispatch function, make the SSR empty, and iterate
|
// fCurrentBufferSize), call the Dispatch function, make the SSR empty, and iterate
|
||||||
|
|
||||||
memcpy(_buffer+_currentbuffersize, msgbuffer, _msgsize-_currentbuffersize);
|
memcpy(fBuffer+fCurrentBufferSize, msgbuffer, fMsgSize-fCurrentBufferSize);
|
||||||
index+=_msgsize-_currentbuffersize;
|
index+=fMsgSize-fCurrentBufferSize;
|
||||||
|
|
||||||
_msg.SetData(_msgcode,_buffer,_msgsize);
|
fSessionMessage.SetData(fMsgCode,fBuffer,fMsgSize);
|
||||||
(*_dispatcher)(&_msg);
|
(*fDispatcherFunc)(&fSessionMessage);
|
||||||
|
|
||||||
delete _buffer;
|
delete fBuffer;
|
||||||
_buffer=NULL;
|
fBuffer=NULL;
|
||||||
_currentbuffersize=0;
|
fCurrentBufferSize=0;
|
||||||
_msgsize=0;
|
fMsgSize=0;
|
||||||
_msgcode=0;
|
fMsgCode=0;
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// We will not be completing the message here, so simply copy the buffer and exit
|
// We will not be completing the message here, so simply copy the buffer and exit
|
||||||
memcpy(_buffer+_currentbuffersize, msgbuffer, buffersize);
|
memcpy(fBuffer+fCurrentBufferSize, msgbuffer, buffersize);
|
||||||
_currentbuffersize+=buffersize;
|
fCurrentBufferSize+=buffersize;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -117,16 +115,16 @@ void SessionStreamReader::DispatchMessages(void *msgbuffer, size_t buffersize)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Get basic message data
|
// Get basic message data
|
||||||
_msgcode=*((int32*)index); index+=sizeof(int32);
|
fMsgCode=*((int32*)index); index+=sizeof(int32);
|
||||||
_msgsize=*((int32*)index); index+=sizeof(int32);
|
fMsgSize=*((int32*)index); index+=sizeof(int32);
|
||||||
|
|
||||||
// Now that we have basic stuff for the message, let's see if it is complete
|
// Now that we have basic stuff for the message, let's see if it is complete
|
||||||
if((index+_msgsize)>((int8*)msgbuffer+buffersize))
|
if((index+fMsgSize)>((int8*)msgbuffer+buffersize))
|
||||||
{
|
{
|
||||||
// We have an incomplete message. Allocate a buffer to contain all attached
|
// We have an incomplete message. Allocate a buffer to contain all attached
|
||||||
// data, copy it over, and exit
|
// data, copy it over, and exit
|
||||||
_buffer=new int8[_msgsize];
|
fBuffer=new int8[fMsgSize];
|
||||||
memcpy(_buffer, msgbuffer, ((int8*)msgbuffer+buffersize)-index);
|
memcpy(fBuffer, msgbuffer, ((int8*)msgbuffer+buffersize)-index);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -134,9 +132,9 @@ void SessionStreamReader::DispatchMessages(void *msgbuffer, size_t buffersize)
|
|||||||
// This message is complete, so set the appropriate SessionMessage data and
|
// This message is complete, so set the appropriate SessionMessage data and
|
||||||
// call the Dispatch function
|
// call the Dispatch function
|
||||||
|
|
||||||
_msg.SetData(_msgcode,index,_msgsize);
|
fSessionMessage.SetData(fMsgCode,index,fMsgSize);
|
||||||
(*_dispatcher)(&_msg);
|
(*fDispatcherFunc)(&fSessionMessage);
|
||||||
index+=_msgsize;
|
index+=fMsgSize;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,11 +47,12 @@ public:
|
|||||||
SessionStreamReader(msg_dispatcher_func *func);
|
SessionStreamReader(msg_dispatcher_func *func);
|
||||||
~SessionStreamReader(void);
|
~SessionStreamReader(void);
|
||||||
void DispatchMessages(void *msgbuffer, size_t buffersize);
|
void DispatchMessages(void *msgbuffer, size_t buffersize);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
int8 *_buffer;
|
int8 *fBuffer;
|
||||||
uint32 _msgsize,_msgcode, _currentbuffersize;
|
uint32 fMsgSize,fMsgCode, fCurrentBufferSize;
|
||||||
msg_dispatcher_func *_dispatcher;
|
msg_dispatcher_func *fDispatcherFunc;
|
||||||
SessionMessage _msg;
|
SessionMessage fSessionMessage;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -52,10 +52,6 @@
|
|||||||
#include "LayerData.h"
|
#include "LayerData.h"
|
||||||
#include "PNGDump.h"
|
#include "PNGDump.h"
|
||||||
|
|
||||||
// TODO: remove later!!!!!!!
|
|
||||||
#include <Cursor.h>
|
|
||||||
#include "CursorData.h"
|
|
||||||
|
|
||||||
#ifdef DEBUG_DRIVER_MODULE
|
#ifdef DEBUG_DRIVER_MODULE
|
||||||
# include <stdio.h>
|
# include <stdio.h>
|
||||||
# define STRACE(x) printf x
|
# define STRACE(x) printf x
|
||||||
@@ -74,8 +70,6 @@ VDWIN_MOVECURSOR,
|
|||||||
VDWIN_SETCURSOR,
|
VDWIN_SETCURSOR,
|
||||||
};
|
};
|
||||||
|
|
||||||
//ViewDriver *viewdriver_global;
|
|
||||||
|
|
||||||
extern RGBColor workspace_default_color;
|
extern RGBColor workspace_default_color;
|
||||||
|
|
||||||
|
|
||||||
@@ -86,9 +80,7 @@ VDView::VDView(BRect bounds)
|
|||||||
viewbmp=new BBitmap(bounds,B_CMAP8,true);
|
viewbmp=new BBitmap(bounds,B_CMAP8,true);
|
||||||
|
|
||||||
// This link for sending mouse messages to the OBAppServer.
|
// This link for sending mouse messages to the OBAppServer.
|
||||||
// This is only to take the place of the Input Server. I suppose I could write
|
// This is only to take the place of the Input Server.
|
||||||
// an addon filter to be more like the Input Server, but then I wouldn't be working
|
|
||||||
// on this thing! :P
|
|
||||||
serverlink=new PortLink(find_port(SERVER_INPUT_PORT));
|
serverlink=new PortLink(find_port(SERVER_INPUT_PORT));
|
||||||
|
|
||||||
// Create a cursor which isn't just a box
|
// Create a cursor which isn't just a box
|
||||||
@@ -512,14 +504,11 @@ bool VDWindow::QuitRequested(void)
|
|||||||
void VDWindow::WindowActivated(bool active)
|
void VDWindow::WindowActivated(bool active)
|
||||||
{
|
{
|
||||||
// This is just to hide the regular system cursor so we can see our own
|
// This is just to hide the regular system cursor so we can see our own
|
||||||
// TODO: REactivate later!!!!
|
|
||||||
/* if(active)
|
if(active)
|
||||||
be_app->HideCursor();
|
be_app->HideCursor();
|
||||||
else
|
else
|
||||||
be_app->ShowCursor();
|
be_app->ShowCursor();
|
||||||
*/
|
|
||||||
BCursor cursor(default_cursor_data);
|
|
||||||
view->SetViewCursor(&cursor, true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------
|
//-----------------------------------------------------------------------
|
||||||
@@ -534,7 +523,6 @@ void VDWindow::WindowActivated(bool active)
|
|||||||
|
|
||||||
ViewDriver::ViewDriver(void)
|
ViewDriver::ViewDriver(void)
|
||||||
{
|
{
|
||||||
// viewdriver_global=this;
|
|
||||||
screenwin=new VDWindow();
|
screenwin=new VDWindow();
|
||||||
framebuffer=screenwin->view->viewbmp;
|
framebuffer=screenwin->view->viewbmp;
|
||||||
serverlink=screenwin->view->serverlink;
|
serverlink=screenwin->view->serverlink;
|
||||||
@@ -544,6 +532,16 @@ ViewDriver::ViewDriver(void)
|
|||||||
_SetDepth(8);
|
_SetDepth(8);
|
||||||
_SetMode(B_8_BIT_640x480);
|
_SetMode(B_8_BIT_640x480);
|
||||||
_SetBytesPerRow(framebuffer->BytesPerRow());
|
_SetBytesPerRow(framebuffer->BytesPerRow());
|
||||||
|
|
||||||
|
// We add this because if we see the default workspace color, then we have at least
|
||||||
|
// a reasonable idea that everything is kosher.
|
||||||
|
framebuffer->Lock();
|
||||||
|
drawview=new BView(framebuffer->Bounds(),"drawview",B_FOLLOW_ALL, B_WILL_DRAW);
|
||||||
|
framebuffer->AddChild(drawview);
|
||||||
|
drawview->SetHighColor(workspace_default_color.GetColor32());
|
||||||
|
drawview->FillRect(drawview->Bounds());
|
||||||
|
drawview->Sync();
|
||||||
|
framebuffer->Unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
ViewDriver::~ViewDriver(void)
|
ViewDriver::~ViewDriver(void)
|
||||||
|
|||||||
Reference in New Issue
Block a user