Renamed BAppServerLink to AppServerLink, BPortLink to PortLink, LinkMsgReader

to LinkReceiver, LinkMsgSender to LinkSender, and put everything into the
BPrivate namespace.
Made AppServerLink a cheap object - it will use the applications receiver/sender
and not create its own buffers.
Fixed broken communication stuff here and there (mostly Font.cpp).
Put the newly introduced set|get_system_colors() into the BPrivate namespace -
please don't introduce private functions into the public namespace!!!
Also fixed their broken communication use, as Darkwyrm obviously forgot about
it again: the sequence Flush(); GetNextMessage() without error checking is
purely wrong and can make the app hang and/or crash! :-)
Other minor cleanup.
The input_server used some test mode with the haiku build target which is
probably wrong.
Hopefully I did not forget anything this time.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13128 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2005-06-14 21:28:56 +00:00
parent e274da0fa5
commit dd10337fd0
52 changed files with 1102 additions and 1192 deletions
+21 -61
View File
@@ -1,37 +1,14 @@
//------------------------------------------------------------------------------
// 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: Application.h
// Author: Erik Jaesler ([email protected])
// Description: BApplication class is the center of the application
// universe. The global be_app and be_app_messenger
// variables are defined here as well.
//------------------------------------------------------------------------------
/*
* Copyright 2001-2005, Haiku.
* Distributed under the terms of the MIT License.
*
* Authors:
* Erik Jaesler ([email protected])
*/
#ifndef _APPLICATION_H
#define _APPLICATION_H
// Standard Includes -----------------------------------------------------------
// System Includes -------------------------------------------------------------
#include <BeBuild.h>
#include <AppDefs.h> // For convenience
#include <InterfaceDefs.h>
@@ -40,13 +17,6 @@
#include <Point.h>
#include <Rect.h>
// Project Includes ------------------------------------------------------------
// Local Includes --------------------------------------------------------------
// Local Defines ---------------------------------------------------------------
// Globals ---------------------------------------------------------------------
class BCursor;
class BList;
@@ -56,12 +26,15 @@ class BResources;
class BMessageRunner;
struct _server_heap_;
struct _drag_data_;
namespace BPrivate { class BAppServerLink; }
namespace BPrivate {
class AppServerLink;
class PortLink;
}
// BApplication class ----------------------------------------------------------
class BApplication : public BLooper {
public:
BApplication(const char* signature);
BApplication(const char* signature,
@@ -121,7 +94,6 @@ public:
virtual status_t Perform(perform_code d, void* arg);
private:
typedef BLooper _inherited;
friend class BWindow;
@@ -129,7 +101,7 @@ private:
friend class BBitmap;
friend class BScrollBar;
friend class BPrivateScreen;
friend class BPrivate::BAppServerLink;
friend class BPrivate::AppServerLink;
friend void _toggle_handles_(bool);
BApplication(uint32 signature);
@@ -145,11 +117,9 @@ private:
virtual void _ReservedApplication7();
virtual void _ReservedApplication8();
virtual bool ScriptReceived(BMessage* msg,
int32 index,
BMessage* specifier,
int32 form,
const char* property);
virtual bool ScriptReceived(BMessage* msg, int32 index,
BMessage* specifier, int32 form,
const char* property);
void run_task();
void InitData(const char* signature, status_t* error);
void BeginRectTracking(BRect r, bool trackWhole);
@@ -186,8 +156,10 @@ private:
static BLocker _app_resources_lock;
const char* fAppName;
int32 fServerFrom;
int32 fServerTo;
BPrivate::PortLink* fServerLink;
// uint32 _unused0;
// int32 fServerFrom;
// int32 fServerTo;
#ifndef FIX_FOR_4_6
void* fCursorData;
#else
@@ -199,26 +171,14 @@ private:
_drag_data_* fDraggedMessage;
BMessageRunner* fPulseRunner;
status_t fInitError;
uint32 _reserved[11];
uint32 _reserved[12];
bool fReadyToRunCalled;
};
//------------------------------------------------------------------------------
// Global Objects --------------------------------------------------------------
extern _IMPEXP_BE BApplication* be_app;
extern _IMPEXP_BE BMessenger be_app_messenger;
//------------------------------------------------------------------------------
#endif // _APPLICATION_H
/*
* $Log $
*
* $Id $
*
*/
+13 -14
View File
@@ -15,21 +15,24 @@
#include <BeBuild.h>
#include <Rect.h>
namespace BPrivate {
class ServerLink;
};
/* Integer rect used to define a cliping rectangle. All bounds are included */
/* Moved from DirectWindow.h */
typedef struct {
int32 left;
int32 top;
int32 right;
int32 bottom;
int32 left;
int32 top;
int32 right;
int32 bottom;
} clipping_rect;
/*----------------------------------------------------------------*/
/*----- BRegion class --------------------------------------------*/
class BRegion {
public:
BRegion();
BRegion(const BRegion &region);
@@ -64,11 +67,10 @@ clipping_rect RectAtInt(int32 index);
class Support;
private:
friend class BView;
friend class BDirectWindow;
friend class Support;
friend class BPortLink;
friend class BView;
friend class BDirectWindow;
friend class Support;
friend class BPrivate::ServerLink;
void _AddRect(clipping_rect r);
void set_size(long new_size);
@@ -80,7 +82,4 @@ private:
clipping_rect *data;
};
/*-------------------------------------------------------------*/
/*-------------------------------------------------------------*/
#endif /* _REGION_H */
+6 -1
View File
@@ -14,6 +14,11 @@
#include <BeBuild.h>
#include <Archivable.h>
namespace BPrivate {
class ServerLink;
};
/*----------------------------------------------------------------*/
/*----- BShapeIterator class -------------------------------------*/
@@ -78,7 +83,7 @@ virtual void _ReservedShape4();
friend class TPicture;
friend class BView;
friend class BFont;
friend class BPortLink;
friend class BPrivate::ServerLink;
void GetData(int32 *opCount, int32 *ptCount, uint32 **opList, BPoint **ptList);
void SetData(int32 opCount, int32 ptCount, uint32 *opList, BPoint *ptList);
+1 -18
View File
@@ -1,5 +1,5 @@
//------------------------------------------------------------------------------
// Copyright (c) 2001-2002, OpenBeOS
// Copyright (c) 2001-2005, Haiku
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"),
@@ -28,23 +28,13 @@
#ifndef _VIEW_H
#define _VIEW_H
// Standard Includes -----------------------------------------------------------
// System Includes -------------------------------------------------------------
#include <BeBuild.h>
#include <Font.h>
#include <Handler.h>
#include <InterfaceDefs.h>
#include <Rect.h>
// Project Includes ------------------------------------------------------------
// Local Includes --------------------------------------------------------------
// Local Defines ---------------------------------------------------------------
// Globals ---------------------------------------------------------------------
// view definitions ------------------------------------------------------------
@@ -675,10 +665,3 @@ inline void BView::SetLowColor(uchar r, uchar g, uchar b, uchar a)
//------------------------------------------------------------------------------
#endif // _VIEW_H
/*
@log
* added PrintToStream() method for debugging BView.
*/
+5 -7
View File
@@ -35,7 +35,9 @@
#include <StorageDefs.h>
#include <View.h>
class BPortLink;
namespace BPrivate {
class PortLink;
};
// window definitions ----------------------------------------------------------
@@ -389,13 +391,9 @@ private:
short fShowLevel;
uint32 fFlags;
port_id send_port;
port_id receive_port;
BView *top_view;
BView *fFocus;
BView *fLastMouseMovedView;
void *a_session; // unusedm was _BSession_
BMenuBar *fKeyMenuBar;
BButton *fDefaultButton;
BList accelList;
@@ -419,11 +417,11 @@ private:
ViewAttr *fCurDrawViewState; // not yet used
window_feel fFeel;
int32 fLastViewToken;
BPortLink *fLink;
BPrivate::PortLink *fLink;
BMessageRunner *fPulseRunner;
BRect fCurrentFrame; // not yet used
uint32 _reserved[2]; // was 8
uint32 _reserved[5]; // was 8
#if !_PR3_COMPATIBLE_
uint32 _more_reserved[4];
#endif