History log of /haiku/src/kits/app/Application.cpp
Revision Date Author Comments
# ebb0db62 04-Jul-2019 Augustin Cavalier <waddlesplash@gmail.com>

kits: Only export private dummy copy constructors for R5 ABI.

Fixes #546 (after all these years!)


# 151343eb 27-Nov-2018 Adrien Destugues <pulkomandy@pulkomandy.tk>

BLooper: API to hijack existing thread.

I need this to use loopers in WebKit, which spawns threads and expects
to be able to turn them into event loops later on.

This is the pattern already used in BApplication, we may as well make it
available elsewhere.

Change-Id: I5939ca89d33cb3bcc92567b302c2038d976af598
Reviewed-on: https://review.haiku-os.org/735
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 16af9b4c 05-Nov-2017 Humdinger <humdingerb@gmail.com>

Style, no functional changes

Make termination consistant with that last commit hrev51521.
As wished and proof-read by waddlesplash. Hope all's well...


# 35929329 04-Jan-2016 Augustin Cavalier <waddlesplash@gmail.com>

BApplication: Remove added PrintToStream().

Another missed debugging snippet from the merge.


# 7f9368ca 09-Dec-2015 looncraz <looncraz@looncraz.net>

Set*UIColor, etc.

The inseparable changes necessary to support live color updating across the
system in a sane, safe, and performant manner.

BView gains:

HasSystemColors()
HasDefaultColors()
AdoptSystemColors()
AdoptParentColors()
AdoptViewColor(BView*)
SetViewUIColor(color_which, float tint)
SetHighUIColor(...
SetLowUIColor(...
ViewUIColor(float* tint)
HighUIColor(...
LowUIColor(...
DelayedInvalidate()

BWindow gains a simple helper method:
IsOffscreenWindow()

BMessage gains:

AddColor()
FindColor()
GetColor()
HasColor() * allegedly this API is deprecated, but I implemented it anyway
ReplaceColor()
SetColor()

Previous private ColorTools methods are made public and moved into GraphicsDefs:

mix_color, blend_color, disable_color

These are fully compatible with BeOS dan0 R5.1 methods and are just code cleanup
of BeOS example code under the OpenTracker license.

In addition, four new colors are created:
B_LINK_TEXT_COLOR
B_LINK_HOVER_COLOR
B_LINK_ACTIVE_COLOR
B_LINK_VISITED_COLOR

These changes are documented in their proper user documentation files.

In addition, due to a history rewrite, B_FOLLOW_LEFT_TOP has been defined and
used in lieu of B_FOLLOW_TOP | B_FOLLOW_LEFT and is included in this commit.

On the app_server side, the following has changed:

Add DelayedMessage - a system by which messages can be sent at a scheduled time,
and can also be merged according to set rules. A single thread is used to service the
message queue and multiple recipients can be set for each message.
Desktop gains the ability to add message ports to a DelayedMessage so that
said messages can target either all applications or all windows, as needed.

Desktop maintains a BMessage which is used to queue up all pending color changes
and the delayed messaging system is used to enact these changes after a short
period of time has passed. This prevents abuse and allows the system to merge
repeated set_ui_color events into one event for client applications, improving
performance drastically.

In addition, B_COLORS_UPDATED is sent to the BApplication, which forwards the message
to each BWindow. This is done to improve performance over having the app_server
independently informing each window.

Decorator changes are live now, which required some reworking.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>


# 05962bb1 28-Nov-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Add a way to register loopers for quit

* BApplication can now take the job to quit a BLooper at
the application quit. It's rejecting requests from windows too.
* BMediaRoster is using now this service in conjunction with the
MediaRosterUndertaker.
* The BeBook specify that we should have a valid BApplication
before to instantiate the BMediaRoster. While in theory we should
add a debugger call when this situation happens, in pratice this
might lead to more problems. For example libraries might use the
media_kit and create a BApplication object, but they aren't
applications, this is a design problem. So I decided to replace it
with a TRACE call for the moment.


# 3667f6ef 21-Aug-2015 Michael Lotz <mmlr@mlotz.ch>

BApplication: Avoid create_app_meta_mime() for the registrar.

BApplication::_InitData() already avoided the use of BRoster from the
registrar (and launch_daemon) where it isn't available. Since
create_app_meta_mime() indirectly just sends a message to the registrar
using BRoster, it too cannot work when the registrar isn't available.


# 239f8573 23-Jul-2015 Axel Dörfler <axeld@pinc-software.de>

libbe: ui_color() now works without UI connection.

* Since the app_server is a BApplication, too, now, Workspaces would
trigger this problem.
* Now it checks whether the shared memory is actually set, and only
uses it in this case. This will also fix using ui_color() in any
BServer without UI connection.


# bea38cb7 11-May-2015 Axel Dörfler <axeld@pinc-software.de>

registrar: implemented auth port via launch_daemon.

* get_roster_port_name() is no longer needed.
* This also removes the app_server restart code from the debug
server -- this will be done by the launch_daemon in the future.


# 798ad3db 23-Apr-2015 Axel Dörfler <axeld@pinc-software.de>

BLooper: don't delete a launch_daemon port.

* Unless the service is really to be quit, the port should stay around;
but that decision is to be made by the launch_daemon, not the service
itself.


# 43aec2c7 21-Apr-2015 Axel Dörfler <axeld@pinc-software.de>

launch_daemon: added support for arbitrary ports.

* Dropped "create_port" -- this is now the default for services.
* Additionally (or alternatively, if you use the "legacy" mode), you can
now create named ports, and specify their capacity.
* Added convenience methods to BLaunchRoster that automatically use the
signature of the current be_app.


# 592ffe64 15-Apr-2015 Axel Dörfler <axeld@pinc-software.de>

The app_server is now a regular BServer.


# d482c7ca 15-Apr-2015 Axel Dörfler <axeld@pinc-software.de>

launch_daemon: actually launch the jobs.

* BRoster::Launch() cannot be used (yet), as it pre-registers the
application we're launching, and that won't work for the registrar or
anything else until the registrar is up and running.
* Renamed B_GET_LAUNCH_CONNECTIONS to B_GET_LAUNCH_DATA.
* Add the team ID to the get-launch-data reply.
* Added BLaunchRoster::GetPort() for convenience.
* Removed some superfluous debug output, but temporarily dump all stdio
to /dev/dprintf (ie. the syslog).
* Made job matching case insensitive (as MIME types should be).


# 1480e5da 02-Apr-2015 Axel Dörfler <axeld@pinc-software.de>

The beginnings of a launch_daemon for Haiku.

* This will be heavily inspired by Apple's launchd, as well as
systemd -- for now it really doesn't do a whole lot, though.
* What works so far: the configuration files are read, parsed, and
the jobs created.
* The jobs are even initialized, and their message ports created.
* BApplication now retrieves a previously created port from the
launch_daemon for use with BServer.
* Only the registrar actually uses this for now.


# 9b3be140 20-Apr-2015 Michael Lotz <mmlr@mlotz.ch>

BApplication: Fix B_ARGV_* handling on silent relaunch.

In hrev47355 a logic reversal was introduced as part of a cleanup
commit which caused B_ARGV_RECEIVED to be sent only to apps with the
B_ARGV_ONLY flag set instead of clear.

In addition to that, don't send the B_SILENT_RELAUNCH message for apps
with B_ARGV_ONLY either, as they are not supposed to receive messages
after launch. This is in line with the documentation and what BRoster
does.


# 0690387c 26-Mar-2015 Axel Dörfler <axeld@pinc-software.de>

BServer/BApplication: added constructor for looper name.

* Added an extra looperName argument to the private BApplication
constructor that BServer is using.
* This is now used to fix the ugliness that gave the registrar
a different looper name, and even saves a string comparison.


# 30238c04 27-Jan-2015 Axel Dörfler <axeld@pinc-software.de>

Added BApplication::Signature() getter.


# c254f99c 24-Nov-2014 Adrien Destugues <pulkomandy@gmail.com>

BApplication: remove AboutRequested implementation

The Be Book says this is a hook method, so the default behavior should
be to do nothing (didn't test BeOS, my install is currently broken).

Showing an alert with just the application thread name is less than
helpful anyway, and this was causing crashes.

Fixes #5554.


# 3aeed660 07-Aug-2014 Jérôme Duval <jerome.duval@gmail.com>

include strings.h where appriopriate...

instead or additionally to string.h, in preparation for functions move.
* moves str[n]casecmp() functions and others to strings.h.
* strings.h doesn't include string.h anymore.
* this solves #10949


# be902ac4 11-Jun-2014 John Scipione <jscipione@gmail.com>

App Kit: style changes.

No functional change intended.

Focused on documented classes only.

* Update copyright information.
* whitespace fixes.
* pointer style
* Rename some variables, msg => message, form => what
* Need consistent variable names to make documentation easier,
allows us to use \copydoc or \copydetails instead of repeating
ourselves over and over again.


# fc5dbdc9 17-Dec-2013 Jonathan Schleifer <js@webkeks.org>

Get rid of an error caused by -Werror=unused-function.

Signed-off-by: Axel Dörfler <axeld@pinc-software.de>


# aed35104 05-Aug-2012 Humdinger <humdingerb@gmail.com>

Close alerts with ESCAPE key.

Added SetFlags(B_CLOSE_ON_ESCAPE) or SetShortcut(index, B_ESCAPE) to BAlerts
depending if the result gets used later in the code, or if it's a one-button
BAlert.


# 9be774b5 30-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Compilation and 64-bit fixes to libbe.so sources.

Fixed the usual issues - printf format strings, uint32 instead of
addr_t, etc. One thing that isn't so nice is several places where
BList is used to store (u)int32, these require a double cast to addr_t
then void* to silence a warning on x86_64.


# 8e2140fa 29-Apr-2012 Axel Dörfler <axeld@pinc-software.de>

Fixed a large client side memory leak for app_server memory.

* The areas allocated for BBitmaps were never deleted, even though the
app_server deleted its part when the memory got freed.
* This resulted in a constant memory increase if the application in question
would operate on many changing large bitmaps, like photos.
* Since the bitmaps are reference counted, we don't actually know when to delete
the areas, so that the app_server now notifies the client whenever that is
possible.
* This might fix #6824.


# 1b6bc267 08-Feb-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

kits: Some spelling cleanup of common mistyped words

* Little whitespace cleanup
* No functional change


# 6c40fc5d 21-Jan-2012 czeidler <haiku@clemens-zeidler.de>

Reconnect BApplication and trigger reconnect of all BWindows in an application.
* handle bitmap reconnect request in the app server


# da1c9317 17-Nov-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Revert r39462 because it was not really binary compatible.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39469 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a5cf354a 16-Nov-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Add protected RestoreState, SaveState functions to BApplication. HasBeenRestored can be used to check in ReadyToRun if the RestoreState function has been called. The default implementation just store the window geometry and the decorator settings. Subclass implementations can use the global restore_window_geometry, save_window_geometry function for convenience. Please review. Will commit a simple session manager tomorrow.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39462 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b13b0b0f 11-Apr-2010 Ithamar R. Adema <ithamar.adema@team-embedded.nl>

* Make sure LinkSender knows team ID of receiving team; this fixes the >64k ServerLink transfers.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36154 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ec1bcf62 01-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* Added private methods get_app_server_port() (that stores the server port,
and doesn't have to find it every time), and create_desktop_connection() that
is now used from BApplication::_ConnectToServer() as well as the DesktopLink.
* Move PortLink::SetTo() into base class ServerLink.
* Eliminated duplicated member fReplyPort in DesktopLink.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34397 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 879f9a09 30-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Got rid of the static app resources lock. We use pthread_once() now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34370 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 15fe75b9 24-Nov-2009 Axel Dörfler <axeld@pinc-software.de>

* Added a protocol version field to AS_GET_DESKTOP. This should be bumped after
incompatible releases, and makes sure clients using the old libbe.so will be
rejected.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34210 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 68667bf4 04-Oct-2009 Michael Lotz <mmlr@mlotz.ch>

* Adding a remote desktop interface that operates on app_server drawing
primitives by providing a RemoteDrawingEngine and a RemoteHWInterface.
Not really optimized yet, still a bit WIP.
* Adding corresponding infrastructure like a blocking ring buffer and network
sender/receiver that are attached to the buffers to feed/drain them as well
as a RemoteMessage helper that provides a message based interface.
* Adding target screen concept to request an app to be run on a specific screen.
It's controlled by the TARGET_SCREEN environment variable which is added on
the app side and sent to the app_server.
* Right now only remote target screens are supported, in which case a new
RemoteHWInterface is created that tries to connect to the given host:port.
* Fix shape bounds when drawing, they need to be translated by the pen position
and converted to screen like the points as well. Wasn't visible though as the
bounds weren't used in the normal DrawingEngine.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33417 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6eb09230 01-Feb-2009 Michael Lotz <mmlr@mlotz.ch>

* Resolve further warnings on GCC4.
* Enable -Werror on GCC4 builds as well (limited to the same selected targets).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29118 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9dc97edd 22-Nov-2008 Jérôme Duval <korli@users.berlios.de>

check BMessage::Find*() result


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28718 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d7513239 18-Oct-2008 Karsten Heimrich <host.haiku@gmx.de>

* reintroduce member fOffscreen which got removed in r2917
* check if locking the offscreen window succeeds before calling delete on it
* don't return offscreen windows in CountWindows and WindowAt (works now as on R5)

fixes ticket 1522, 1591, 1946, 2318 and propably more

While creating an BBitmap in BApplication the bitmaps window looper would
be added to the applications gLooperList, thus calling Quit() on that window
and later delete on a stale window pointer in BBitmaps dtor. The Lock() check
would fix the problem, but tests on R5 have shown that BApplication hides the
offscreen window in CountWindows() and WindowAt().



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28236 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a02979bb 18-Oct-2008 Karsten Heimrich <host.haiku@gmx.de>

* cleanup



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28235 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c4f7df69 10-Sep-2008 Stefano Ceccherini <stefano.ceccherini@gmail.com>

be_app could be NULL in BApplication's destructor, if the BApplication didn't initialize itself fully on construction. This fixes a crash when launching some already running application (i.e. print_server)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27413 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 01c52d4f 14-May-2008 Stephan Aßmus <superstippi@gmx.de>

Print the error message to stdout, since that is where the
message->PrintToStream() output goes. Thanks, Jerome, for the suggestion!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25500 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1781abf7 14-May-2008 Stephan Aßmus <superstippi@gmx.de>

Print and error and the message in case _ArgvReceived() fails to parse the
message correctly, it is a bit strange why the message should not follow
protocol.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25499 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 32f1d458 14-May-2008 Axel Dörfler <axeld@pinc-software.de>

* Reworked James Woodcock/stippi's patch a bit: since the remaining entries
are NULL pointers anyway, we just adjust argc.
* Made argv processing more safe, it will now check if the allocation of the
argv array succeeded in the first place.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25496 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9765d748 14-May-2008 Stephan Aßmus <superstippi@gmx.de>

Just spotted a mistake in my previous commit... and while I am at it, I can
properly credit James Woodcock, who debugged this problem and whom I forgot
to mention in my previous commit. Sorry!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25495 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e5aa9e13 14-May-2008 Stephan Aßmus <superstippi@gmx.de>

If an error happens during extraction of the argument vectors in
_ArgvReceived(), the array elements still need to be set to NULL otherwise
the function will free() random pointers at the end.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25494 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 88144954 12-May-2008 Rene Gollent <anevilyak@gmail.com>

GCC4 fix.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25471 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e2fe7e2f 12-May-2008 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Removed PortQueue since it's not used. Small style (old) changes here
and there.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25468 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f4103e2b 20-Apr-2008 Axel Dörfler <axeld@pinc-software.de>

Reverted r25084, and fixed bug #1762 again as suggested by Korli on the mailing
list.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25091 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 727f8f30 20-Apr-2008 Jérôme Duval <korli@users.berlios.de>

_QuitAllWindows()) calls _WindowQuitLoop() twice but we don't want to check two times a window (hence the use of the xor operator)
this fixes bug #1762 (Installer: trying to close it via alt+q shows warning twice)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25084 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cfc3fa87 09-Apr-2008 Axel Dörfler <axeld@pinc-software.de>

* Cleaned up InterfaceDefs.h, added TODO about getting rid of declaring
_init_interface_kit_() in there.
* Moved private get_mode_parameter() into the BPrivate namespace.
* Renamed interface_misc.h to InterfacePrivate.h.
* Minor other cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24869 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 37d8f330 04-Jan-2008 Axel Dörfler <axeld@pinc-software.de>

* ResolveSpecifier() used the window's handler name instead of its title for the "Window"
B_NAME_SPECIFIER. This should fix bug #1681.
* Improved ResolveSpecifier() code.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23239 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c7f1e4bd 31-Jul-2007 Axel Dörfler <axeld@pinc-software.de>

Sorry, the previous patch for WindowAt() by Váradi Zsolt Gyula was broken as well.
This change now actually fixes its logic; thanks for the hint, though :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21777 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c10776a2 31-Jul-2007 Jérôme Duval <korli@users.berlios.de>

applied patch from Váradi Zsolt Gyula: fixes People's (#1308) and Launchbox's closing problem. Thanks.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21776 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d2d8f91a 25-Jun-2007 Axel Dörfler <axeld@pinc-software.de>

Fixed copy&paste bug, thanks Stippi for noticing!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21506 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b4183984 25-Jun-2007 Axel Dörfler <axeld@pinc-software.de>

* Removed _GetWindowList()
* _WindowAt() and _CountWindows() now have an individual version of that
code which should be magnitudes faster.
* _WindowQuitLoop() no longer handles hidden windows specially - instead,
it now walks the window list in the correct direction which should fix
the issues.
* Also, it now uses WindowAt() and thus has an up-to-date view of the
window list (it will no longer ignore new windows).
* And finally, it will no longer dereference an unsafe pointer (for
BWindow::IsFilePanel()).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21505 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 82d0e2c2 24-Jun-2007 Stephan Aßmus <superstippi@gmx.de>

* do not ask hidden windows if they want to quit (not to be confused with
minimized windows, those need to be asked of course)
* added some comments about why this code is a little flawed but works anyways

NOTE: I really wonder wether traversing the window list in reverse is correct


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21501 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2b2ec438 26-Mar-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Moved the AutoLocker class out of the kernel/utils/AutoLock.h header
into its own shared/AutoLocker.h. It can be used by userland code too.
* Removed headers/private/shared/ObjectLocker.h and replaced all uses of
BObjectLocker by AutoLocker.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20432 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cf2aeb20 21-Feb-2007 Axel Dörfler <axeld@pinc-software.de>

* Implemented BDragger::{Show|Hide}AllDraggers() and its backend in the app_server.
This fixes bug #242. The value is currently stored in a separate file.
* Removed some unused codes from ServerProtocol.h.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20188 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c01f349e 25-Jan-2007 Axel Dörfler <axeld@pinc-software.de>

Cleanup:
* Got rid of unused BLooper members
* renamed fTaskID to fThread
* Removed private and deprecated AddLooper()/RemoveLooper()/... stuff; BLooper is now
directly calling BLooperList methods.
* Got rid of extensive and useless comments
* Made a few TODOs more clear
* Merged InitData() and InitData(...) to _InitData(...)
* BLooper::Team() now uses BPrivate::current_team(), sTeamID is gone now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19966 a95241bf-73f2-0310-859d-f6bbb57e9c96


# aa389c6b 22-Nov-2006 Axel Dörfler <axeld@pinc-software.de>

Now sends the B_SILENT_RELAUNCH message if the app is already running and has
no arguments (or doesn't want them). We even already had the correct handler for
B_SILENT_RELAUNCH around :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19359 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3354a9cc 25-Sep-2006 Jérôme Duval <korli@users.berlios.de>

B_MESSAGE_NOT_UNDERSTOOD is better than B_ERROR for what fields


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18934 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6bfd06d1 31-Aug-2006 Ingo Weinhold <ingo_weinhold@gmx.de>

BRoster::Launch() eventually launches the application in question
in several steps:
1. early pre-registration with the registrar ("I wanna launch the
app, make sure noone interferes.")
2. load the app image
3. finish pre-registration with the registrar ("I have launched
the app, here is its team ID.")
4. start app main thread
5. send "on launch" messages to the app (argv, refs, others)

If the app is already running or being launched, 1. fails with a
conclusive error code and returns the team ID and the pre-registration
token of the app. Steps 2 - 4 are skipped and only the messages are
delivered using the team ID returned by 1.

This change fixes a race condition: The failed early pre-registration
request obviously cannot return the team ID, if the other thread
launching the app has not finished step 3 yet. Thus the argv/refs
message would not get delivered and Launch() would not return the
correct team ID.

Now we wait for the pre-registration to be finished in this case, using
the former _IsAppPreRegistered() mechanism, which already provided
such a waiting feature for one request. It has been extended to
accomodate an arbitrary number of waiting requests and renamed to
_IsAppRegistered().

This fixed bug #763.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18728 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c4dde2f7 13-Jun-2006 Axel Dörfler <axeld@pinc-software.de>

* No need to create a BPath object for the leaf name in CreateAppMetaMimeThread.
* The preferred application is now written with the case preserved. This fixes
bug #635.
* Minor cleanup.
* BApplication::_InitData() now also corrects a pre-registered application signature
if the case is different. Note, however, that the application watching mechanism
doesn't seem to work correctly with this, maybe sending out those should be postponed
until the registration is completed?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17836 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e91315aa 11-Jun-2006 Jérôme Duval <korli@users.berlios.de>

scripting in BApplication is mostly fixed
BLooper had a be-handler named suite
BWindow is now exposing Active
scripting to BViews isn't working yet


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17797 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 99e2816c 08-Jun-2006 Jérôme Duval <korli@users.berlios.de>

begin of implementation for ScriptReceived


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17781 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1f8172a4 08-Jun-2006 Jérôme Duval <korli@users.berlios.de>

implemented ResolveSpecifier()


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17780 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f4fc3d62 05-Jun-2006 Jérôme Duval <korli@users.berlios.de>

* fixed some more GetSupportedSuites implementations
* fixed some local variables names
* fixed the case of some message attribute names


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17734 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6d5488e1 25-Apr-2006 Axel Dörfler <axeld@pinc-software.de>

* There is now a server_read_only_memory structure that is placed in a (surprise!)
read-only area shared between the Desktop and all applications.
* Right now, this area only contains the desktop colors, ie. B_PANEL_BACKGROUND_COLOR
etc.; ui_color() no longer needs to ask the server for these colors.
* The ui_colors are now maintained by DesktopSettings, though ColorSet is still there.
* The default colors are now hardcoded once and for everyone in InterfaceDefs.h, ie.
the app_server uses them as well.
* Desktop::Init() can now also return an error (but that is not yet accounted for).
* Cleaned up InterfaceDefs.h.
* Fixed wrong include in moreUTF8.h.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17232 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c7c61938 18-Mar-2006 Axel Dörfler <axeld@pinc-software.de>

We should delete our server memory as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16828 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9a44fdc9 18-Mar-2006 Axel Dörfler <axeld@pinc-software.de>

* Implemented a new client allocation method: instead of having all bitmaps of
all teams in serveral server areas, and instead of having to eventually clone
them all several times in BBitmap, we now have one or more areas per team,
and BBitmap will only clone areas once if needed. As a side effect, this
method should be magnitudes faster than the previous version.
* This method is also much more secure: instead of putting the allocation
maintenance structures into those everyone-read-write areas, they are now
separated, so that faulty applications cannot crash the app_server this
way anymore. This should fix bug #172.
* Freeing memory is not yet implemented though! (although all memory will
be freed upon app exit)
* There are now 3 different bitmap allocation strategies: per ClientMemoryAllocator
(ie. via ServerApp), per area (for overlays, not yet implemented), and using
malloc()/free() for server-only bitmaps.
* ServerBitmap now deletes its buffers itself.
* Cleaned up BBitmap and BApplication a bit.
* The test environment currently doesn't build anymore, will fix it next.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16826 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ab093a2c 05-Feb-2006 Axel Dörfler <axeld@pinc-software.de>

Removed TODO item, it's already resolved.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16239 a95241bf-73f2-0310-859d-f6bbb57e9c96


# aa1f5437 05-Feb-2006 Axel Dörfler <axeld@pinc-software.de>

Some work on cursors:
* Fixed a myriad of bugs all over the place, ranging from locking errors to
deleting objects that don't belong to the one deleting them (hello HWInterface!)
* Almost all ServerWindow cursor stuff was broken; I've replaced all commands
to set a cursor with a single one AS_SET_CURSOR.
* Renamed some cursor commands.
* Changed the (broken) way ServerApp::fAppCursor was maintained - the application
cursor is now NULL as long as possible.
* Removed superfluous ServerCursor app signature stuff.
* The BApplication will no longer duplicate the default/I-beam cursors, it will
just reuse the default ones which now have fixed tokens.
* As a result, changing the cursor is now working as expected, closing bug #102.
* Rewrote Cursor.h, renamed private members to match our style guide.
* Minor cleanup.

What's still left to be done is reference counting the cursor objects to make them
work right and reliable.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16237 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1ae42108 28-Jan-2006 Ingo Weinhold <ingo_weinhold@gmx.de>

Improved the window_quit_loop() situation:
* We no longer try to dynamic_cast<>() a BLooper* into a BWindow* in
an unsafe context (i.e. without the looper or the looper list being
locked).
* We no longer try to quit windows that haven't been run yet (e.g.
bitmap's offscreen windows). Those windows conceptually still belong
to their creator. In the best case trying to lock such a window
simply failed (e.g. when the creator was another window that had been
told to quit earlier and deleted the window in question just not too
early). In worse cases we would dead-lock (when the owner has not
been told to quit (or refuses to do so)), cause "locker must be
locked" debugger calls or die painfully when accessing an already
deleted object.

BTW, I doubt, that the whole window quitting procedure is as it should
be. There's still a huge race condition: When a window is created after
we capture the window list at the beginning of window_quit_loop() that
completely escapes us.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16134 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9f8f6275 29-Dec-2005 Axel Dörfler <axeld@pinc-software.de>

Fixed shutting down apps with file panels - no more hang:
* if file panels shouldn't be quit, we no longer call QuitRequested() for
them and stop quitting windows (which left normal windows open, because
file panels always return "false" in QuitRequested())


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15715 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3106b9ec 30-Nov-2005 Stefano Ceccherini <stefano.ceccherini@gmail.com>

You shall not break the build

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15244 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 17adbf1f 30-Nov-2005 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Misc style changes

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15243 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3cace414 20-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Removed run_task(), as it's not really needed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15057 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 338b8dc3 29-Oct-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Merged changes from branch build_system_redesign at revision 14573.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14574 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 770c05d6 25-Jul-2005 Axel Dörfler <axeld@pinc-software.de>

The Desktop class now gets its own message processing loop: moved application
creation/deletion (and management) over to that class.
ServerApp now gets a desktop pointer, and no longer uses gDesktop.
Converted private MessageLooper::_MessagePort() to a public method MessagePort()
so that the looper can be addressed from elsewhere without using PostMessage().
Added a real basic message loop to MessageLooper::_MessageLoop().
BApplication now only asks the app_server to get its desktop object which should
now be used for everything that's not in the realm of the application.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13824 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4c3e1ace 05-Jul-2005 Axel Dörfler <axeld@pinc-software.de>

Fixed a bug in quit_all_windows(): we need to Unlock() the application
because BWindow::QuitRequested() must be allowed to lock it.
This fixes a deadlock when trying to quit Tracker.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13479 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2f903d78 04-Jul-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Removed the handling of B_QUIT_REQUESTED in BApplication::DispatchMessage().
It's already done in BLooper. Now we additionally send a reply to it, when
the message comes from the registrar on shutdown.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13419 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a60ea282 03-Jul-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

* Made BApplication::Private public. Should not have worked before (probably
a compiler bug).
* Don't try to cleanup the app server connection stuff, when compiled
with RUN_WITHOUT_APP_SERVER.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13414 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c8e7f53e 27-Jun-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

* Radically culled the list of BApplication friends and introduced a
BApplication::Private class for accessing relevant parts.
* Pulled the app server connection and IK initialization out of
InitData() into a new method _InitGUIContext() and introduced a private
constructor that allows to avoid this initialization. This will be used
for servers that don't have GUI respectively want to init the app server
connection later.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13312 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 014ddc87 23-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

Now also sets fInitError when the app_server did not create the app
(and not only drop into the debugger).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13237 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5f8e562f 16-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

Added a ToDo comment.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13185 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f395db37 14-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

Updated a comment I forgot before.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13129 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dd10337f 14-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

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


# 2c458b6d 12-Jun-2005 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Now inits fInitialWorkspace correctly, calling current_workspace()

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13073 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8eae8b05 08-Jun-2005 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Every BApplication (even applications which didn't use it) allocated a BPrivateScreen object. Now they are created/destroyed on demand (when a BScreen object is constructed), and reference counted, so that there is still only one per app. Note that since we are creating/deleting them, constructing a BScreen object can be more time consuming than before, but personally I find this approach much cleaner.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13006 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 75936a02 07-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

BPortLink now has a FlushWithReply() method itself.
BPortLink::AttachString() now accepts a length argument, and will no longer
send a terminating null byte; LinkMsgReader::ReadString(), however, will
make sure the string read is null terminated.
Changed client communication code to use FlushWithReply() instead of Flush()
and GetNextReply() - there were many bugs and shortcomings in the code, I
hope I've fixed them all.
Converted ClientFontList.cpp to our coding style (but not completely, the
class members are missing).
Some more cleanup - I hope Adi will adopt our coding style one day!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12998 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7475dcdf 07-Jun-2005 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Added an app server command to retrieve the color map. Made some adjustments to SystemPalette.cpp, implemented support for it in BPrivateScreen. Moved get_scs() a bit down to avoid a deadlock. Note that getting the colormap doesn't work due to port capacity limit (?)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12996 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c92d9509 12-Mar-2005 Adi Oanca <adioanca@nowhere.fake>

Solved a deadlock situation which occured when quiting be_app.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11699 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f8411ab1 28-Feb-2005 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Implemented handler for B_APP_ACTIVATED and (but not really) for _SHOW_DRAG_HANDLES_


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11512 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bee72328 01-Feb-2005 Axel Dörfler <axeld@pinc-software.de>

fill_argv_message() now takes a reference as parameter.
Also fixed BApplication::do_argv() which didn't NULL terminate the array
as it should have done, and would call ArgvReceived() with argc == 0 and
a NULL parameter for argv.
Removed strange trailing spaces at the end of the lines for those two functions.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11199 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1a2f24bb 29-Jan-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Made some debug output debug conditional.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11140 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 01225b39 29-Jan-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Disabled debugging. Was accidentally committed.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11127 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 84de162b 22-Jan-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

More debug output in case of failure.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10952 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4e51dee8 19-Jan-2005 DarkWyrm <darkwyrm@gmail.com>

don't prevent ReadyToRun from being called when running without the registrar


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10877 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 289adc04 17-Jan-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Changed due to moving RegistrarDefs.h stuff into the BPrivate namespace and replacing kRosterPortName.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10813 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 86832512 27-Dec-2004 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Now includes MenuWindow.h instead of duplicating the declaration


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10535 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ca8ed922 21-Dec-2004 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Moved gPrivateScreen into the BPrivate namespace. Small cleanups to Application.cpp. Refined some comments. Used strdup() instead of new because it`s nicer for strings.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10514 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e372dc78 20-Dec-2004 Axel Dörfler <axeld@pinc-software.de>

Added handling of B_QUIT_REQUESTED messages, even if it might not be complete.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10513 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c18d8429 20-Dec-2004 Axel Dörfler <axeld@pinc-software.de>

Grouped all constructors together.
Moved InitData() to be close to the constructors.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10501 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 72f5d860 19-Dec-2004 Axel Dörfler <axeld@pinc-software.de>

Moved the quit window code into window_quit_loop() which is now called by
quit_all_windows(). I've also implemented the file panel quit mechanism,
but I'm not sure it's correctly done yet.
The BApplication destructor now locks the looper. Added commented out
deletion of fServerTo port and a ToDo comment if this should be done.
Run() no longer checks fMsgPort somewhere, but fInitError at the beginning;
if a missing fMsgPort doesn't set this, I guess InitData() is broken (or
better, BRoster::Private::CompleteRegistration() is). It now also deletes
any fPulseRunner (could be moved to ~BApplication, though).
QuitRequested() now correctly calls quit_all_windows().
Added a question to Quit() about the usefulness of special casing calling
the function from another thread.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10500 a95241bf-73f2-0310-859d-f6bbb57e9c96


# af34fbf1 20-Dec-2004 Axel Dörfler <axeld@pinc-software.de>

Moved the unmaintainable list of initializers for the different constructors
to InitData(). Also fixed the initial value of fPulseRate (was 500000 but
according to the BeBook, it should have been 0).
Implemented SetPulseRate() (untested, but should be okay).
Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10499 a95241bf-73f2-0310-859d-f6bbb57e9c96


# beabca50 20-Dec-2004 Axel Dörfler <axeld@pinc-software.de>

Collision with our style guide.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10495 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bae6988e 20-Dec-2004 Axel Dörfler <axeld@pinc-software.de>

Fixed some bugs and added some missing functionality:
- DispatchMessage() would swallow all handled messages, no matter if they were
intended for this handler.
- B_REFS_RECEIVED does now maintain the recent folder/document lists.
- Now calls Pulse() when a B_PULSE is received.
- No longer calls ReadyToRun() more than once, no matter how many B_READY_TO_RUN
are sent to the app.
- Added B_APP_ACTIVATED to the yet unhandled messages; furthermore, the known
unhandled messages now dump themselves to stdout.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10494 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f19d9d3b 14-Dec-2004 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Moved functionality of do_argv() into a new static helper function called fill_argv_message(). Now do_argv() handles the B_ARGV_RECEIVED message (incidentally, that`s almost how it`s done in beos). That made DispatchMessage() a bit cleaner.Added some comments. B_PATH_NAME_LENGTH + 1 --> B_PATH_NAME_LENGTH.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10448 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bd6c2601 13-Dec-2004 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Now it calls ScriptReceived if it receives a scripting message in MessageReceived(). Falls back to BLooper::MessageReceived() in case something goes wrong (just to be safe).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10442 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 833a5922 13-Dec-2004 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Added B_SILENT_RELAUNCH handler. Expanded a comment.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10412 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b1ce1640 11-Dec-2004 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Renamed gApplicationPropInfo to sPropertyInfo and made it static.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10390 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a8fc5954 11-Dec-2004 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Implemented get_window_list(), and used it in count_windows() and window_at(). That simplified the code a lot. Removed some unused headers.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10389 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 41f6b937 09-Dec-2004 DarkWyrm <darkwyrm@gmail.com>

Submission of Stefano's BApplication patch - archiving support


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10383 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 044be4e2 28-Aug-2004 Ingo Weinhold <ingo_weinhold@gmx.de>

Introduced a new build flag and macro RUN_WITHOUT_APP_SERVER, to allow
several things to work without a running app server (the Storage Kit to
begin with).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8695 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bceb8166 21-Aug-2004 DarkWyrm <darkwyrm@gmail.com>

Added a function to the BPortLink debugging code
Made a couple of style tweaks to BApplication::connect_to_app_server


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8620 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 38e110b1 08-Aug-2004 DarkWyrm <darkwyrm@gmail.com>

Client-server messaging fixes


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8543 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3ceb31b9 30-Jul-2004 DarkWyrm <darkwyrm@gmail.com>

Pahtz's changes from PortLink/BSession/PortMessage/PortQueue to BPortLink


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8519 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5dccfc19 29-Jul-2004 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Some small changes (mostly suggested by Axel). Added more ToDO items, changed some comments, added some more (unhandled yet) message codes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8496 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6cd5d5b1 27-Jul-2004 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Implemented AppResources() "by the book" (not tested), InitialWorkspace(), researched and implemented a TODO item, some small cleanups.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8481 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6542ca9b 28-Jun-2004 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Added gPrivateScreen declaration


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8210 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1787eef9 27-Jun-2004 Axel Dörfler <axeld@pinc-software.de>

Added B_I_BEAM_CURSOR and B_HAND_CURSOR in new file AppDefs.cpp.
B_CURSOR_SYSTEM_DEFAULT and B_CURSOR_I_BEAM are now initialized in BApplication::InitData().
Added a todo note about how to save the app server communication to get those initialized.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8201 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f6dc8f8d 06-Apr-2004 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Hm, how come I removed that ?


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7169 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fcb11fb1 06-Apr-2004 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Added a TODO reminder


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7168 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 75d41856 17-Jan-2004 DarkWyrm <darkwyrm@gmail.com>

Removed a crash because of a call to get_menu_info in init_interface_kit()


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6118 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dc3ebdec 17-Jan-2004 Adi Oanca <adioanca@nowhere.fake>

fixed the problems Ingo pointed out


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6115 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 36aeb57d 12-Jan-2004 Ingo Weinhold <ingo_weinhold@gmx.de>

* Doh! Signatures are case insensitive.
* Removed the definition of RUN_WITHOUT_REGISTRAR. This can be triggered
by an environment variable now.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6054 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f28a6f70 12-Jan-2004 Adi Oanca <adioanca@nowhere.fake>

It know asks and waits for all loopers to quit


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6046 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 53b9eef8 19-Dec-2003 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Implemented AboutRequested(), reorganized a bit the connection to app server, added a call to _init_interface_kit_()


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5712 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 83f96471 13-Oct-2003 DarkWyrm <darkwyrm@gmail.com>

Updates to sync with (hopefully) final tweaks to messaging protocols
Implemented BSession::DropInputBuffer with code from Adi


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5013 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 45799af7 04-Oct-2003 DarkWyrm <darkwyrm@gmail.com>

Tweaked all messaging classes to comply with new message protocol policies
AppServerLink no longer inherits from BSession
Modified client files which talk to the server to sync with changes in messaging classes


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4942 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 591d280e 03-Oct-2003 DarkWyrm <darkwyrm@gmail.com>

Added PortMessage::ReadString and PortLink::AttachString to support BSession-style string attachments
Tweaks to startup code for BApplication
Tweaked PortQueue to utilize the BSession workaround for PortMessages
Tweaks to message protocol for BCursor


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4939 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 582e2ddd 02-Oct-2003 DarkWyrm <darkwyrm@gmail.com>

Conversion to BSession messaging


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4931 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 17e6de7a 03-Aug-2003 shadow303 <shadow303@nowhere.fake>

gcc 3 fixes


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4227 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 297ffbbb 24-Jul-2003 DarkWyrm <darkwyrm@gmail.com>

Removed memory leak in InitData


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4064 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 78cc8d1a 11-Jul-2003 shadow303 <shadow303@nowhere.fake>

Fix templates for PortMessage & PortLink.
Update BApplication for changes to PortLink


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3959 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 14f0c2cf 08-Jun-2003 DarkWyrm <darkwyrm@gmail.com>

Removed a minor bug from the InitData server communication code


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3451 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dc4e96ca 23-Mar-2003 DarkWyrm <darkwyrm@gmail.com>

Removed bug which caused goofy app signature names in app_server


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3003 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c503a7bc 18-Mar-2003 DarkWyrm <darkwyrm@gmail.com>

Added BHandler tokens to app_server communications setup


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2947 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ca34e8a0 12-Mar-2003 DarkWyrm <darkwyrm@gmail.com>

Added startup code to talk to app_server
We can now run simple applications with app_server!!


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2900 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 364bb57e 24-Feb-2003 DarkWyrm <darkwyrm@gmail.com>

Updated sources to reflect changes in <ServerProtocol.h>


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2832 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 16d1f45f 23-Feb-2003 DarkWyrm <darkwyrm@gmail.com>

Implemented IsCursorHidden
Removed PortLink usage where unnecessary


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2813 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2ed834e3 08-Feb-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

Cleaned up BRoster's friends mess. All access to private BRoster functionality is now done through the newly added BRoster::Private class, which is BRoster's only friend (poor BRoster ;-).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2664 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7c7ee64a 09-Nov-2002 DarkWyrm <darkwyrm@gmail.com>

Partially implemented SetCursor
Completely implemented ShowCursor, HideCursor, ObscureCursor
Documented necessary steps for connect_to_app_server


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1898 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 121f83dd 12-Oct-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Moved the miscellaneous app kit functions into the BPrivate namespace and added the function current_team() which returns the ID of the current team.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1501 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d8c0f6e4 07-Oct-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

InitData(): Set the correct signature when pre-registered under a wrong one.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1435 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ad4fdf8d 06-Oct-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

* Don't uninitialized be_app_messenger in the destructor.
* Fixed missing variable initialization in GetSupportedSuites().
* InitData(): Don't post B_ARGV_RECEIVED to ourselfs when pre-registered.
* InitData(): Added create_app_meta_mime().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1411 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 69b461cd 02-Sep-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed typo.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@965 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4a87ab98 13-Aug-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Set the the application BHandler's name correctly.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@754 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9231d6b0 06-Aug-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Added be_roster check in InitData().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@622 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 98207f6f 04-Aug-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed Quit():
* Error message, if not locked.
* Lock(), quit, Unlock(), if not locked.
* Don't call BLooper:Quit() any more. We post a _QUIT_ message when being
called from another than the looper thread.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@575 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 752c4971 04-Aug-2002 ejakowatz <ejakowatz@nowhere.fake>

The last remnants of the Old Repub ... er, static looper list data has been
removed. The old static BLooper functions for managing the looper list are
still there, but they are officially deprecated. The approved interface
for this information is BPrivate::BLooperList, accessible via the global
BPrivate::gLooperList variable. Being as it lives in BPrivate, it is for
API-internal use *ONLY*. User apps use it to their own risk.
Also added a small test to make sure that the size of BLooper stays the
same. I will probably add this to other classes as well; doesn't hurt to
be safe. =)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@572 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ebbcbbca 03-Aug-2002 ejakowatz <ejakowatz@nowhere.fake>

Implemented count_loopers()/windows() and looper/window_at(). Minor
changes to BLooperList to accomodate.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@568 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9986313c 03-Aug-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed some bugs/behavioral differences to the R5 implementation.
* Run() was returning fTaskID, which was invalidated by Quit().
* assert_app_signature() -> check_app_signature(). InitData() now quits
when an error occured and no error variable has been supplied. That seems
to be what R5 does.
* When args are present B_ARGV_RECEIVED is always sent to the own team,
even if the app flags include B_ARGV_ONLY. But it is sent to a remote
application (already running instance), only if that app has NOT
B_ARGV_ONLY set.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@564 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b1698c8e 28-Jul-2002 ejakowatz <ejakowatz@nowhere.fake>

Mostly fixes for silly compile error, plus an additional test.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@524 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2284462c 28-Jul-2002 ejakowatz <ejakowatz@nowhere.fake>

Scripting-related changes. Also indulged in some unwarrented formatting
anality. =P


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@519 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8a526591 28-Jul-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

* Moved some reusable code into AppMisc.cpp/h.
* Init be_app in InitData().
* Uninit be_app and be_app_messenger in BApplication destructor.^


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@513 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3057c103 28-Jul-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Init be_app_messenger in InitData().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@492 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 47924e2b 27-Jul-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

A comment to remind me to call create_app_meta_mime() in InitData() once it is available.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@481 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 73a2b29f 26-Jul-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

* Implemented InitData(), which should now be complete with respect to
what we need for the roster.
* B_{ARGV,REFS}_RECEIVED and B_READY_TO_RUN messages are dispatched now.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@457 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c7f20c70 21-Jul-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Added minimal implementation to be able to Run() the application and to have MessageReceived() served. BApplication is aware of the registrar signature and names the looper port respectively.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@378 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 52a38012 08-Jul-2002 ejakowatz <ejakowatz@nowhere.fake>

It is accomplished ...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3667f6efdbeac23c708a9a610391cc4780b9fd54 21-Aug-2015 Michael Lotz <mmlr@mlotz.ch>

BApplication: Avoid create_app_meta_mime() for the registrar.

BApplication::_InitData() already avoided the use of BRoster from the
registrar (and launch_daemon) where it isn't available. Since
create_app_meta_mime() indirectly just sends a message to the registrar
using BRoster, it too cannot work when the registrar isn't available.


# 239f85731e2b6e7aa71ad1ef9e5d565108ad009e 23-Jul-2015 Axel Dörfler <axeld@pinc-software.de>

libbe: ui_color() now works without UI connection.

* Since the app_server is a BApplication, too, now, Workspaces would
trigger this problem.
* Now it checks whether the shared memory is actually set, and only
uses it in this case. This will also fix using ui_color() in any
BServer without UI connection.


# bea38cb711f29e929d62ceed9a0684e43c548a0d 11-May-2015 Axel Dörfler <axeld@pinc-software.de>

registrar: implemented auth port via launch_daemon.

* get_roster_port_name() is no longer needed.
* This also removes the app_server restart code from the debug
server -- this will be done by the launch_daemon in the future.


# 798ad3db303ec486d507f32915193f3456bfca86 23-Apr-2015 Axel Dörfler <axeld@pinc-software.de>

BLooper: don't delete a launch_daemon port.

* Unless the service is really to be quit, the port should stay around;
but that decision is to be made by the launch_daemon, not the service
itself.


# 43aec2c726cc9522f961f87771f1ea712d54c0b7 21-Apr-2015 Axel Dörfler <axeld@pinc-software.de>

launch_daemon: added support for arbitrary ports.

* Dropped "create_port" -- this is now the default for services.
* Additionally (or alternatively, if you use the "legacy" mode), you can
now create named ports, and specify their capacity.
* Added convenience methods to BLaunchRoster that automatically use the
signature of the current be_app.


# 592ffe646134dd48c661571a64a86598f3ecf29e 15-Apr-2015 Axel Dörfler <axeld@pinc-software.de>

The app_server is now a regular BServer.


# d482c7ca5ba4f9041dfd5db328bd9703ea57d2ae 15-Apr-2015 Axel Dörfler <axeld@pinc-software.de>

launch_daemon: actually launch the jobs.

* BRoster::Launch() cannot be used (yet), as it pre-registers the
application we're launching, and that won't work for the registrar or
anything else until the registrar is up and running.
* Renamed B_GET_LAUNCH_CONNECTIONS to B_GET_LAUNCH_DATA.
* Add the team ID to the get-launch-data reply.
* Added BLaunchRoster::GetPort() for convenience.
* Removed some superfluous debug output, but temporarily dump all stdio
to /dev/dprintf (ie. the syslog).
* Made job matching case insensitive (as MIME types should be).


# 1480e5da6fc4a2926c3da1a973e39927ac2171ae 02-Apr-2015 Axel Dörfler <axeld@pinc-software.de>

The beginnings of a launch_daemon for Haiku.

* This will be heavily inspired by Apple's launchd, as well as
systemd -- for now it really doesn't do a whole lot, though.
* What works so far: the configuration files are read, parsed, and
the jobs created.
* The jobs are even initialized, and their message ports created.
* BApplication now retrieves a previously created port from the
launch_daemon for use with BServer.
* Only the registrar actually uses this for now.


# 9b3be1401553ed102a0456f89e637a1084f26711 20-Apr-2015 Michael Lotz <mmlr@mlotz.ch>

BApplication: Fix B_ARGV_* handling on silent relaunch.

In hrev47355 a logic reversal was introduced as part of a cleanup
commit which caused B_ARGV_RECEIVED to be sent only to apps with the
B_ARGV_ONLY flag set instead of clear.

In addition to that, don't send the B_SILENT_RELAUNCH message for apps
with B_ARGV_ONLY either, as they are not supposed to receive messages
after launch. This is in line with the documentation and what BRoster
does.


# 0690387cd27bd8810040f7e2c0e539585df28ca1 26-Mar-2015 Axel Dörfler <axeld@pinc-software.de>

BServer/BApplication: added constructor for looper name.

* Added an extra looperName argument to the private BApplication
constructor that BServer is using.
* This is now used to fix the ugliness that gave the registrar
a different looper name, and even saves a string comparison.


# 30238c0418b23ddae182320a90031f3e16800a64 27-Jan-2015 Axel Dörfler <axeld@pinc-software.de>

Added BApplication::Signature() getter.


# c254f99c3663cc12a98d2b289888e5a87055d2e2 24-Nov-2014 Adrien Destugues <pulkomandy@gmail.com>

BApplication: remove AboutRequested implementation

The Be Book says this is a hook method, so the default behavior should
be to do nothing (didn't test BeOS, my install is currently broken).

Showing an alert with just the application thread name is less than
helpful anyway, and this was causing crashes.

Fixes #5554.


# 3aeed6607cd07762c0e709633c012b3a632dbad9 07-Aug-2014 Jérôme Duval <jerome.duval@gmail.com>

include strings.h where appriopriate...

instead or additionally to string.h, in preparation for functions move.
* moves str[n]casecmp() functions and others to strings.h.
* strings.h doesn't include string.h anymore.
* this solves #10949


# be902ac4db5c9d0be72f6d54aa67b66e3dcc7eca 11-Jun-2014 John Scipione <jscipione@gmail.com>

App Kit: style changes.

No functional change intended.

Focused on documented classes only.

* Update copyright information.
* whitespace fixes.
* pointer style
* Rename some variables, msg => message, form => what
* Need consistent variable names to make documentation easier,
allows us to use \copydoc or \copydetails instead of repeating
ourselves over and over again.


# fc5dbdc92c6064bb2f1e255ebcbb27fb5917f81f 17-Dec-2013 Jonathan Schleifer <js@webkeks.org>

Get rid of an error caused by -Werror=unused-function.

Signed-off-by: Axel Dörfler <axeld@pinc-software.de>


# aed35104852941f0f6f3d1dcc5338b5f337d0a3c 05-Aug-2012 Humdinger <humdingerb@gmail.com>

Close alerts with ESCAPE key.

Added SetFlags(B_CLOSE_ON_ESCAPE) or SetShortcut(index, B_ESCAPE) to BAlerts
depending if the result gets used later in the code, or if it's a one-button
BAlert.


# 9be774b553296a712704078314f2291ae5fc352c 30-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Compilation and 64-bit fixes to libbe.so sources.

Fixed the usual issues - printf format strings, uint32 instead of
addr_t, etc. One thing that isn't so nice is several places where
BList is used to store (u)int32, these require a double cast to addr_t
then void* to silence a warning on x86_64.


# 8e2140fa5eb8a019a5134ce041499d14b7ced7a3 29-Apr-2012 Axel Dörfler <axeld@pinc-software.de>

Fixed a large client side memory leak for app_server memory.

* The areas allocated for BBitmaps were never deleted, even though the
app_server deleted its part when the memory got freed.
* This resulted in a constant memory increase if the application in question
would operate on many changing large bitmaps, like photos.
* Since the bitmaps are reference counted, we don't actually know when to delete
the areas, so that the app_server now notifies the client whenever that is
possible.
* This might fix #6824.


# 1b6bc2675fe3691538c8764ab016593f3b06ca53 08-Feb-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

kits: Some spelling cleanup of common mistyped words

* Little whitespace cleanup
* No functional change


# 6c40fc5dfcd03d69d585754505e6b17287a42082 21-Jan-2012 czeidler <haiku@clemens-zeidler.de>

Reconnect BApplication and trigger reconnect of all BWindows in an application.
* handle bitmap reconnect request in the app server


# da1c93175df3970c57acefb5fcf9147365bf8827 17-Nov-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Revert r39462 because it was not really binary compatible.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39469 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a5cf354a27420b4ccc72eaafeccdae450b0abac9 16-Nov-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Add protected RestoreState, SaveState functions to BApplication. HasBeenRestored can be used to check in ReadyToRun if the RestoreState function has been called. The default implementation just store the window geometry and the decorator settings. Subclass implementations can use the global restore_window_geometry, save_window_geometry function for convenience. Please review. Will commit a simple session manager tomorrow.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39462 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b13b0b0f4ef555bcf4467f76c069ad910d968cd4 11-Apr-2010 Ithamar R. Adema <ithamar.adema@team-embedded.nl>

* Make sure LinkSender knows team ID of receiving team; this fixes the >64k ServerLink transfers.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36154 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ec1bcf6243a5d41c449c9914e2c26485d8ce943c 01-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* Added private methods get_app_server_port() (that stores the server port,
and doesn't have to find it every time), and create_desktop_connection() that
is now used from BApplication::_ConnectToServer() as well as the DesktopLink.
* Move PortLink::SetTo() into base class ServerLink.
* Eliminated duplicated member fReplyPort in DesktopLink.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34397 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 879f9a0937b437047ca147ec3091efc656e9df6a 30-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Got rid of the static app resources lock. We use pthread_once() now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34370 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 15fe75b9a0e16762374a6224bb42a121c35c8207 24-Nov-2009 Axel Dörfler <axeld@pinc-software.de>

* Added a protocol version field to AS_GET_DESKTOP. This should be bumped after
incompatible releases, and makes sure clients using the old libbe.so will be
rejected.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34210 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 68667bf48a9e29a2d142cb3308b606d80bee3c2d 04-Oct-2009 Michael Lotz <mmlr@mlotz.ch>

* Adding a remote desktop interface that operates on app_server drawing
primitives by providing a RemoteDrawingEngine and a RemoteHWInterface.
Not really optimized yet, still a bit WIP.
* Adding corresponding infrastructure like a blocking ring buffer and network
sender/receiver that are attached to the buffers to feed/drain them as well
as a RemoteMessage helper that provides a message based interface.
* Adding target screen concept to request an app to be run on a specific screen.
It's controlled by the TARGET_SCREEN environment variable which is added on
the app side and sent to the app_server.
* Right now only remote target screens are supported, in which case a new
RemoteHWInterface is created that tries to connect to the given host:port.
* Fix shape bounds when drawing, they need to be translated by the pen position
and converted to screen like the points as well. Wasn't visible though as the
bounds weren't used in the normal DrawingEngine.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33417 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6eb09230bae52bcdf045e1f1920b67205c29adc8 01-Feb-2009 Michael Lotz <mmlr@mlotz.ch>

* Resolve further warnings on GCC4.
* Enable -Werror on GCC4 builds as well (limited to the same selected targets).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29118 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9dc97eddb40615fe1aa9fcaaaa6867d4d2a71cf2 22-Nov-2008 Jérôme Duval <korli@users.berlios.de>

check BMessage::Find*() result


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28718 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d751323939575160b39a145750ddde4eb6f02b39 18-Oct-2008 Karsten Heimrich <host.haiku@gmx.de>

* reintroduce member fOffscreen which got removed in r2917
* check if locking the offscreen window succeeds before calling delete on it
* don't return offscreen windows in CountWindows and WindowAt (works now as on R5)

fixes ticket 1522, 1591, 1946, 2318 and propably more

While creating an BBitmap in BApplication the bitmaps window looper would
be added to the applications gLooperList, thus calling Quit() on that window
and later delete on a stale window pointer in BBitmaps dtor. The Lock() check
would fix the problem, but tests on R5 have shown that BApplication hides the
offscreen window in CountWindows() and WindowAt().



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28236 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a02979bb3f339a9dd1b1d7dae4b2e856a4f73b77 18-Oct-2008 Karsten Heimrich <host.haiku@gmx.de>

* cleanup



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28235 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c4f7df69a5702e8b1d6ba452a2a72beb3e0d1687 10-Sep-2008 Stefano Ceccherini <stefano.ceccherini@gmail.com>

be_app could be NULL in BApplication's destructor, if the BApplication didn't initialize itself fully on construction. This fixes a crash when launching some already running application (i.e. print_server)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27413 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 01c52d4f9c7f8b0500bbc161ee062bc976360a4f 14-May-2008 Stephan Aßmus <superstippi@gmx.de>

Print the error message to stdout, since that is where the
message->PrintToStream() output goes. Thanks, Jerome, for the suggestion!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25500 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1781abf70243c2ada0798f90859e9c39b523d904 14-May-2008 Stephan Aßmus <superstippi@gmx.de>

Print and error and the message in case _ArgvReceived() fails to parse the
message correctly, it is a bit strange why the message should not follow
protocol.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25499 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 32f1d458677bdf0e03fa45e089982292d7f96838 14-May-2008 Axel Dörfler <axeld@pinc-software.de>

* Reworked James Woodcock/stippi's patch a bit: since the remaining entries
are NULL pointers anyway, we just adjust argc.
* Made argv processing more safe, it will now check if the allocation of the
argv array succeeded in the first place.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25496 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9765d748813573a942a3fb18b3a0ff4775e955f8 14-May-2008 Stephan Aßmus <superstippi@gmx.de>

Just spotted a mistake in my previous commit... and while I am at it, I can
properly credit James Woodcock, who debugged this problem and whom I forgot
to mention in my previous commit. Sorry!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25495 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e5aa9e13f4e8f928ae0bbe1bb57bebe1547b371f 14-May-2008 Stephan Aßmus <superstippi@gmx.de>

If an error happens during extraction of the argument vectors in
_ArgvReceived(), the array elements still need to be set to NULL otherwise
the function will free() random pointers at the end.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25494 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 881449541071978d70886ee071cfe8e178ed4b40 12-May-2008 Rene Gollent <anevilyak@gmail.com>

GCC4 fix.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25471 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e2fe7e2fe0a9f0ae8e2a1e36960f1b96d23a5202 12-May-2008 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Removed PortQueue since it's not used. Small style (old) changes here
and there.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25468 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f4103e2b13544d5799c43f69eda998e965789e50 20-Apr-2008 Axel Dörfler <axeld@pinc-software.de>

Reverted r25084, and fixed bug #1762 again as suggested by Korli on the mailing
list.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25091 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 727f8f30c88209dd79197947e6bb24739d6d4e57 20-Apr-2008 Jérôme Duval <korli@users.berlios.de>

_QuitAllWindows()) calls _WindowQuitLoop() twice but we don't want to check two times a window (hence the use of the xor operator)
this fixes bug #1762 (Installer: trying to close it via alt+q shows warning twice)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25084 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cfc3fa87da824bdf593eb8b817a83b6376e77935 09-Apr-2008 Axel Dörfler <axeld@pinc-software.de>

* Cleaned up InterfaceDefs.h, added TODO about getting rid of declaring
_init_interface_kit_() in there.
* Moved private get_mode_parameter() into the BPrivate namespace.
* Renamed interface_misc.h to InterfacePrivate.h.
* Minor other cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24869 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 37d8f330f4b7407ebd361767db3376753fdfdaf6 04-Jan-2008 Axel Dörfler <axeld@pinc-software.de>

* ResolveSpecifier() used the window's handler name instead of its title for the "Window"
B_NAME_SPECIFIER. This should fix bug #1681.
* Improved ResolveSpecifier() code.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23239 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c7f1e4bda38c346c9bccd2c1e6917fc385b57343 31-Jul-2007 Axel Dörfler <axeld@pinc-software.de>

Sorry, the previous patch for WindowAt() by Váradi Zsolt Gyula was broken as well.
This change now actually fixes its logic; thanks for the hint, though :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21777 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c10776a2095c0c7325616ebe9778e18cf531ad82 31-Jul-2007 Jérôme Duval <korli@users.berlios.de>

applied patch from Váradi Zsolt Gyula: fixes People's (#1308) and Launchbox's closing problem. Thanks.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21776 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d2d8f91af588321b1c18d37607a0e69f811e0a48 25-Jun-2007 Axel Dörfler <axeld@pinc-software.de>

Fixed copy&paste bug, thanks Stippi for noticing!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21506 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b41839845552f2d15529ff1a18b9ab9b39ed2dff 25-Jun-2007 Axel Dörfler <axeld@pinc-software.de>

* Removed _GetWindowList()
* _WindowAt() and _CountWindows() now have an individual version of that
code which should be magnitudes faster.
* _WindowQuitLoop() no longer handles hidden windows specially - instead,
it now walks the window list in the correct direction which should fix
the issues.
* Also, it now uses WindowAt() and thus has an up-to-date view of the
window list (it will no longer ignore new windows).
* And finally, it will no longer dereference an unsafe pointer (for
BWindow::IsFilePanel()).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21505 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 82d0e2c2b5433d041a75884dbd8d202997352933 24-Jun-2007 Stephan Aßmus <superstippi@gmx.de>

* do not ask hidden windows if they want to quit (not to be confused with
minimized windows, those need to be asked of course)
* added some comments about why this code is a little flawed but works anyways

NOTE: I really wonder wether traversing the window list in reverse is correct


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21501 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2b2ec4382a637811afeb5a4fa812052aef2779c6 26-Mar-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Moved the AutoLocker class out of the kernel/utils/AutoLock.h header
into its own shared/AutoLocker.h. It can be used by userland code too.
* Removed headers/private/shared/ObjectLocker.h and replaced all uses of
BObjectLocker by AutoLocker.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20432 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cf2aeb201fe3785161bb0502effba053b0d76879 21-Feb-2007 Axel Dörfler <axeld@pinc-software.de>

* Implemented BDragger::{Show|Hide}AllDraggers() and its backend in the app_server.
This fixes bug #242. The value is currently stored in a separate file.
* Removed some unused codes from ServerProtocol.h.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20188 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c01f349e6d41177d7be185b217eac237bcee621f 25-Jan-2007 Axel Dörfler <axeld@pinc-software.de>

Cleanup:
* Got rid of unused BLooper members
* renamed fTaskID to fThread
* Removed private and deprecated AddLooper()/RemoveLooper()/... stuff; BLooper is now
directly calling BLooperList methods.
* Got rid of extensive and useless comments
* Made a few TODOs more clear
* Merged InitData() and InitData(...) to _InitData(...)
* BLooper::Team() now uses BPrivate::current_team(), sTeamID is gone now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19966 a95241bf-73f2-0310-859d-f6bbb57e9c96


# aa389c6b3868f6321ab163d4edf8f1b038042ae0 22-Nov-2006 Axel Dörfler <axeld@pinc-software.de>

Now sends the B_SILENT_RELAUNCH message if the app is already running and has
no arguments (or doesn't want them). We even already had the correct handler for
B_SILENT_RELAUNCH around :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19359 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3354a9cc678955dd9f579af0150bfb800f09bb8c 25-Sep-2006 Jérôme Duval <korli@users.berlios.de>

B_MESSAGE_NOT_UNDERSTOOD is better than B_ERROR for what fields


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18934 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6bfd06d1ff129f4db4445b978fa3ee9257f239c9 31-Aug-2006 Ingo Weinhold <ingo_weinhold@gmx.de>

BRoster::Launch() eventually launches the application in question
in several steps:
1. early pre-registration with the registrar ("I wanna launch the
app, make sure noone interferes.")
2. load the app image
3. finish pre-registration with the registrar ("I have launched
the app, here is its team ID.")
4. start app main thread
5. send "on launch" messages to the app (argv, refs, others)

If the app is already running or being launched, 1. fails with a
conclusive error code and returns the team ID and the pre-registration
token of the app. Steps 2 - 4 are skipped and only the messages are
delivered using the team ID returned by 1.

This change fixes a race condition: The failed early pre-registration
request obviously cannot return the team ID, if the other thread
launching the app has not finished step 3 yet. Thus the argv/refs
message would not get delivered and Launch() would not return the
correct team ID.

Now we wait for the pre-registration to be finished in this case, using
the former _IsAppPreRegistered() mechanism, which already provided
such a waiting feature for one request. It has been extended to
accomodate an arbitrary number of waiting requests and renamed to
_IsAppRegistered().

This fixed bug #763.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18728 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c4dde2f738a555cdac899cab66b0546acc539b6a 13-Jun-2006 Axel Dörfler <axeld@pinc-software.de>

* No need to create a BPath object for the leaf name in CreateAppMetaMimeThread.
* The preferred application is now written with the case preserved. This fixes
bug #635.
* Minor cleanup.
* BApplication::_InitData() now also corrects a pre-registered application signature
if the case is different. Note, however, that the application watching mechanism
doesn't seem to work correctly with this, maybe sending out those should be postponed
until the registration is completed?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17836 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e91315aa2da185db26644ce0adad61bdde18108e 11-Jun-2006 Jérôme Duval <korli@users.berlios.de>

scripting in BApplication is mostly fixed
BLooper had a be-handler named suite
BWindow is now exposing Active
scripting to BViews isn't working yet


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17797 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 99e2816c133583a7e90546d9928871f6637fa88b 08-Jun-2006 Jérôme Duval <korli@users.berlios.de>

begin of implementation for ScriptReceived


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17781 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1f8172a47452d306dee09e1fd027bbabec470d89 08-Jun-2006 Jérôme Duval <korli@users.berlios.de>

implemented ResolveSpecifier()


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17780 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f4fc3d626a425bf59886cd5773fd2f64ff285b10 05-Jun-2006 Jérôme Duval <korli@users.berlios.de>

* fixed some more GetSupportedSuites implementations
* fixed some local variables names
* fixed the case of some message attribute names


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17734 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6d5488e18ac47e1c47706227b9a21524ae7874e8 25-Apr-2006 Axel Dörfler <axeld@pinc-software.de>

* There is now a server_read_only_memory structure that is placed in a (surprise!)
read-only area shared between the Desktop and all applications.
* Right now, this area only contains the desktop colors, ie. B_PANEL_BACKGROUND_COLOR
etc.; ui_color() no longer needs to ask the server for these colors.
* The ui_colors are now maintained by DesktopSettings, though ColorSet is still there.
* The default colors are now hardcoded once and for everyone in InterfaceDefs.h, ie.
the app_server uses them as well.
* Desktop::Init() can now also return an error (but that is not yet accounted for).
* Cleaned up InterfaceDefs.h.
* Fixed wrong include in moreUTF8.h.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17232 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c7c61938c018041089094eff7ce1892a65ececbd 18-Mar-2006 Axel Dörfler <axeld@pinc-software.de>

We should delete our server memory as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16828 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9a44fdc97c4c91b6be039ac5125a618c8fd268cc 18-Mar-2006 Axel Dörfler <axeld@pinc-software.de>

* Implemented a new client allocation method: instead of having all bitmaps of
all teams in serveral server areas, and instead of having to eventually clone
them all several times in BBitmap, we now have one or more areas per team,
and BBitmap will only clone areas once if needed. As a side effect, this
method should be magnitudes faster than the previous version.
* This method is also much more secure: instead of putting the allocation
maintenance structures into those everyone-read-write areas, they are now
separated, so that faulty applications cannot crash the app_server this
way anymore. This should fix bug #172.
* Freeing memory is not yet implemented though! (although all memory will
be freed upon app exit)
* There are now 3 different bitmap allocation strategies: per ClientMemoryAllocator
(ie. via ServerApp), per area (for overlays, not yet implemented), and using
malloc()/free() for server-only bitmaps.
* ServerBitmap now deletes its buffers itself.
* Cleaned up BBitmap and BApplication a bit.
* The test environment currently doesn't build anymore, will fix it next.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16826 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ab093a2ce4662c0b904fbbd76c409871e6020d4c 05-Feb-2006 Axel Dörfler <axeld@pinc-software.de>

Removed TODO item, it's already resolved.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16239 a95241bf-73f2-0310-859d-f6bbb57e9c96


# aa1f5437999ab8531f33139c129c6bcaceb74e7a 05-Feb-2006 Axel Dörfler <axeld@pinc-software.de>

Some work on cursors:
* Fixed a myriad of bugs all over the place, ranging from locking errors to
deleting objects that don't belong to the one deleting them (hello HWInterface!)
* Almost all ServerWindow cursor stuff was broken; I've replaced all commands
to set a cursor with a single one AS_SET_CURSOR.
* Renamed some cursor commands.
* Changed the (broken) way ServerApp::fAppCursor was maintained - the application
cursor is now NULL as long as possible.
* Removed superfluous ServerCursor app signature stuff.
* The BApplication will no longer duplicate the default/I-beam cursors, it will
just reuse the default ones which now have fixed tokens.
* As a result, changing the cursor is now working as expected, closing bug #102.
* Rewrote Cursor.h, renamed private members to match our style guide.
* Minor cleanup.

What's still left to be done is reference counting the cursor objects to make them
work right and reliable.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16237 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1ae42108ec2d51248ce2182d5dff91550ad19d70 28-Jan-2006 Ingo Weinhold <ingo_weinhold@gmx.de>

Improved the window_quit_loop() situation:
* We no longer try to dynamic_cast<>() a BLooper* into a BWindow* in
an unsafe context (i.e. without the looper or the looper list being
locked).
* We no longer try to quit windows that haven't been run yet (e.g.
bitmap's offscreen windows). Those windows conceptually still belong
to their creator. In the best case trying to lock such a window
simply failed (e.g. when the creator was another window that had been
told to quit earlier and deleted the window in question just not too
early). In worse cases we would dead-lock (when the owner has not
been told to quit (or refuses to do so)), cause "locker must be
locked" debugger calls or die painfully when accessing an already
deleted object.

BTW, I doubt, that the whole window quitting procedure is as it should
be. There's still a huge race condition: When a window is created after
we capture the window list at the beginning of window_quit_loop() that
completely escapes us.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16134 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9f8f6275f6cb1c4e6d161a711c93e23694429410 29-Dec-2005 Axel Dörfler <axeld@pinc-software.de>

Fixed shutting down apps with file panels - no more hang:
* if file panels shouldn't be quit, we no longer call QuitRequested() for
them and stop quitting windows (which left normal windows open, because
file panels always return "false" in QuitRequested())


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15715 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3106b9ec41166624675341a404c4f361178c3e91 30-Nov-2005 Stefano Ceccherini <stefano.ceccherini@gmail.com>

You shall not break the build

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15244 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 17adbf1f0c0ec58303f403841abc3949d07d95e1 30-Nov-2005 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Misc style changes

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15243 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3cace414adb399e105aec01cb0f4c7e5f24b41a9 20-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Removed run_task(), as it's not really needed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15057 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 338b8dc301721b1f472e8297a898d4eaa2f2ee3a 29-Oct-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Merged changes from branch build_system_redesign at revision 14573.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14574 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 770c05d6cc602b2e545e2ccae5a17c576881dc9c 25-Jul-2005 Axel Dörfler <axeld@pinc-software.de>

The Desktop class now gets its own message processing loop: moved application
creation/deletion (and management) over to that class.
ServerApp now gets a desktop pointer, and no longer uses gDesktop.
Converted private MessageLooper::_MessagePort() to a public method MessagePort()
so that the looper can be addressed from elsewhere without using PostMessage().
Added a real basic message loop to MessageLooper::_MessageLoop().
BApplication now only asks the app_server to get its desktop object which should
now be used for everything that's not in the realm of the application.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13824 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4c3e1ace67353f5f1b9cc63844b40512be710e73 05-Jul-2005 Axel Dörfler <axeld@pinc-software.de>

Fixed a bug in quit_all_windows(): we need to Unlock() the application
because BWindow::QuitRequested() must be allowed to lock it.
This fixes a deadlock when trying to quit Tracker.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13479 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2f903d78cf3b640dc22f16b085530fe6efa68c5f 04-Jul-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Removed the handling of B_QUIT_REQUESTED in BApplication::DispatchMessage().
It's already done in BLooper. Now we additionally send a reply to it, when
the message comes from the registrar on shutdown.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13419 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a60ea282622141ab8617e6296a6a09651abe5dbb 03-Jul-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

* Made BApplication::Private public. Should not have worked before (probably
a compiler bug).
* Don't try to cleanup the app server connection stuff, when compiled
with RUN_WITHOUT_APP_SERVER.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13414 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c8e7f53e08c32deb27f14d18a2dbf8b58f309b64 27-Jun-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

* Radically culled the list of BApplication friends and introduced a
BApplication::Private class for accessing relevant parts.
* Pulled the app server connection and IK initialization out of
InitData() into a new method _InitGUIContext() and introduced a private
constructor that allows to avoid this initialization. This will be used
for servers that don't have GUI respectively want to init the app server
connection later.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13312 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 014ddc8724800bb6e292dc4b49b6adb1a1b615dd 23-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

Now also sets fInitError when the app_server did not create the app
(and not only drop into the debugger).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13237 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5f8e562f04e48e6794a4400f7f24e24be9fc07c6 16-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

Added a ToDo comment.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13185 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f395db37403f7a30ae2b8ba2a54819bd9315874e 14-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

Updated a comment I forgot before.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13129 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dd10337fd005a67a4947714fdeecf2121485b91d 14-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

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


# 2c458b6dbf9dece66f0c5399b10c5c7e61d3d39b 12-Jun-2005 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Now inits fInitialWorkspace correctly, calling current_workspace()

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13073 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8eae8b05e84b91859ad701bde81aa3596d8c693e 08-Jun-2005 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Every BApplication (even applications which didn't use it) allocated a BPrivateScreen object. Now they are created/destroyed on demand (when a BScreen object is constructed), and reference counted, so that there is still only one per app. Note that since we are creating/deleting them, constructing a BScreen object can be more time consuming than before, but personally I find this approach much cleaner.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13006 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 75936a02e432bb4ceb04494f0d53eb4d10ac7764 07-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

BPortLink now has a FlushWithReply() method itself.
BPortLink::AttachString() now accepts a length argument, and will no longer
send a terminating null byte; LinkMsgReader::ReadString(), however, will
make sure the string read is null terminated.
Changed client communication code to use FlushWithReply() instead of Flush()
and GetNextReply() - there were many bugs and shortcomings in the code, I
hope I've fixed them all.
Converted ClientFontList.cpp to our coding style (but not completely, the
class members are missing).
Some more cleanup - I hope Adi will adopt our coding style one day!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12998 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7475dcdf3a736a8e17b0d3fabe970a48661f7d83 07-Jun-2005 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Added an app server command to retrieve the color map. Made some adjustments to SystemPalette.cpp, implemented support for it in BPrivateScreen. Moved get_scs() a bit down to avoid a deadlock. Note that getting the colormap doesn't work due to port capacity limit (?)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12996 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c92d95095800431e83d15fff493b8b032e0b310b 12-Mar-2005 Adi Oanca <adioanca@nowhere.fake>

Solved a deadlock situation which occured when quiting be_app.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11699 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f8411ab1381a890cc48f70b13958d8df3ef1042e 28-Feb-2005 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Implemented handler for B_APP_ACTIVATED and (but not really) for _SHOW_DRAG_HANDLES_


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11512 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bee723280c7fa6730decf549fafed1637a9248a5 01-Feb-2005 Axel Dörfler <axeld@pinc-software.de>

fill_argv_message() now takes a reference as parameter.
Also fixed BApplication::do_argv() which didn't NULL terminate the array
as it should have done, and would call ArgvReceived() with argc == 0 and
a NULL parameter for argv.
Removed strange trailing spaces at the end of the lines for those two functions.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11199 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1a2f24bbbbc791caab44fa81b0f8f2075c91b81b 29-Jan-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Made some debug output debug conditional.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11140 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 01225b393de117e87fdb8045da75509e6d8fa3f0 29-Jan-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Disabled debugging. Was accidentally committed.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11127 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 84de162be9404d6a953d0066c364735014a3d78d 22-Jan-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

More debug output in case of failure.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10952 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4e51dee8d03b60864ce1c33118d65c5d63613a5a 19-Jan-2005 DarkWyrm <darkwyrm@gmail.com>

don't prevent ReadyToRun from being called when running without the registrar


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10877 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 289adc045d3aa7860aae3b1959d28a4d4c440ae2 17-Jan-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Changed due to moving RegistrarDefs.h stuff into the BPrivate namespace and replacing kRosterPortName.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10813 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 86832512bb38ae066d2ed508f9d6a3f267a0d90f 27-Dec-2004 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Now includes MenuWindow.h instead of duplicating the declaration


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10535 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ca8ed922800bc5910f2d61b4870517360c34bae5 21-Dec-2004 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Moved gPrivateScreen into the BPrivate namespace. Small cleanups to Application.cpp. Refined some comments. Used strdup() instead of new because it`s nicer for strings.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10514 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e372dc78c8fc97527ac14c681e65544f5712cbe3 20-Dec-2004 Axel Dörfler <axeld@pinc-software.de>

Added handling of B_QUIT_REQUESTED messages, even if it might not be complete.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10513 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c18d84297acabb6a35a5f8d3fd25feaf81ba1b90 20-Dec-2004 Axel Dörfler <axeld@pinc-software.de>

Grouped all constructors together.
Moved InitData() to be close to the constructors.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10501 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 72f5d8600c9ca01eebfc4a9c960aa22ffe046158 19-Dec-2004 Axel Dörfler <axeld@pinc-software.de>

Moved the quit window code into window_quit_loop() which is now called by
quit_all_windows(). I've also implemented the file panel quit mechanism,
but I'm not sure it's correctly done yet.
The BApplication destructor now locks the looper. Added commented out
deletion of fServerTo port and a ToDo comment if this should be done.
Run() no longer checks fMsgPort somewhere, but fInitError at the beginning;
if a missing fMsgPort doesn't set this, I guess InitData() is broken (or
better, BRoster::Private::CompleteRegistration() is). It now also deletes
any fPulseRunner (could be moved to ~BApplication, though).
QuitRequested() now correctly calls quit_all_windows().
Added a question to Quit() about the usefulness of special casing calling
the function from another thread.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10500 a95241bf-73f2-0310-859d-f6bbb57e9c96


# af34fbf1c5e1cc9fa05016e7b6bcf5416104ff3c 20-Dec-2004 Axel Dörfler <axeld@pinc-software.de>

Moved the unmaintainable list of initializers for the different constructors
to InitData(). Also fixed the initial value of fPulseRate (was 500000 but
according to the BeBook, it should have been 0).
Implemented SetPulseRate() (untested, but should be okay).
Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10499 a95241bf-73f2-0310-859d-f6bbb57e9c96


# beabca50a73652c6ca4bafbe03097adb6a801ffa 20-Dec-2004 Axel Dörfler <axeld@pinc-software.de>

Collision with our style guide.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10495 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bae6988e7d474a50bbd0da6f782a0e2f08b075fd 20-Dec-2004 Axel Dörfler <axeld@pinc-software.de>

Fixed some bugs and added some missing functionality:
- DispatchMessage() would swallow all handled messages, no matter if they were
intended for this handler.
- B_REFS_RECEIVED does now maintain the recent folder/document lists.
- Now calls Pulse() when a B_PULSE is received.
- No longer calls ReadyToRun() more than once, no matter how many B_READY_TO_RUN
are sent to the app.
- Added B_APP_ACTIVATED to the yet unhandled messages; furthermore, the known
unhandled messages now dump themselves to stdout.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10494 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f19d9d3b36d9d447f3e630ac787501ce8202db9c 14-Dec-2004 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Moved functionality of do_argv() into a new static helper function called fill_argv_message(). Now do_argv() handles the B_ARGV_RECEIVED message (incidentally, that`s almost how it`s done in beos). That made DispatchMessage() a bit cleaner.Added some comments. B_PATH_NAME_LENGTH + 1 --> B_PATH_NAME_LENGTH.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10448 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bd6c26014a6c1bab84700b7cd6151c3cc8f36391 13-Dec-2004 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Now it calls ScriptReceived if it receives a scripting message in MessageReceived(). Falls back to BLooper::MessageReceived() in case something goes wrong (just to be safe).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10442 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 833a592226fcff98d85d16b7564e651ae204c976 13-Dec-2004 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Added B_SILENT_RELAUNCH handler. Expanded a comment.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10412 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b1ce1640cd8b8d43246cb4b4bc17e471084a6e3d 11-Dec-2004 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Renamed gApplicationPropInfo to sPropertyInfo and made it static.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10390 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a8fc5954c04f77e665dfdecc45c3cfb0a2f4ac79 11-Dec-2004 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Implemented get_window_list(), and used it in count_windows() and window_at(). That simplified the code a lot. Removed some unused headers.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10389 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 41f6b937f7ef3df71b25e043a5686225f6689438 09-Dec-2004 DarkWyrm <darkwyrm@gmail.com>

Submission of Stefano's BApplication patch - archiving support


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10383 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 044be4e25857fbf35770973fa5785c0a165d4188 28-Aug-2004 Ingo Weinhold <ingo_weinhold@gmx.de>

Introduced a new build flag and macro RUN_WITHOUT_APP_SERVER, to allow
several things to work without a running app server (the Storage Kit to
begin with).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8695 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bceb8166d4d505b26ee1dc24bf62aebe1906dccb 21-Aug-2004 DarkWyrm <darkwyrm@gmail.com>

Added a function to the BPortLink debugging code
Made a couple of style tweaks to BApplication::connect_to_app_server


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8620 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 38e110b12471ed04e0818ca31c85619880290a5c 08-Aug-2004 DarkWyrm <darkwyrm@gmail.com>

Client-server messaging fixes


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8543 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3ceb31b96aefa3601ccc51e415da557b00155d4f 30-Jul-2004 DarkWyrm <darkwyrm@gmail.com>

Pahtz's changes from PortLink/BSession/PortMessage/PortQueue to BPortLink


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8519 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5dccfc1921b8c31b1d576a2c1002cfdccab90b67 29-Jul-2004 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Some small changes (mostly suggested by Axel). Added more ToDO items, changed some comments, added some more (unhandled yet) message codes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8496 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6cd5d5b1f1b6788eae8d9cf845328bb9ee265f09 27-Jul-2004 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Implemented AppResources() "by the book" (not tested), InitialWorkspace(), researched and implemented a TODO item, some small cleanups.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8481 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6542ca9b70f61d321f50c7f00160d1c0722c5fcf 28-Jun-2004 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Added gPrivateScreen declaration


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8210 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1787eef9f9c5f6a3f66cfe3507d18456c811f669 27-Jun-2004 Axel Dörfler <axeld@pinc-software.de>

Added B_I_BEAM_CURSOR and B_HAND_CURSOR in new file AppDefs.cpp.
B_CURSOR_SYSTEM_DEFAULT and B_CURSOR_I_BEAM are now initialized in BApplication::InitData().
Added a todo note about how to save the app server communication to get those initialized.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8201 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f6dc8f8d6b95501788d62273654edd3b3b29bc95 06-Apr-2004 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Hm, how come I removed that ?


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7169 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fcb11fb1231fd6d64a61112bc420bed57c93fd20 06-Apr-2004 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Added a TODO reminder


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7168 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 75d4185679142600e925b240b9ca3cc66b314b5b 17-Jan-2004 DarkWyrm <darkwyrm@gmail.com>

Removed a crash because of a call to get_menu_info in init_interface_kit()


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6118 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dc3ebdec6c384a706f5f85261c03312fd48353df 17-Jan-2004 Adi Oanca <adioanca@nowhere.fake>

fixed the problems Ingo pointed out


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6115 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 36aeb57dceb703f1ecb62666a71ebb18ac0f3b5e 12-Jan-2004 Ingo Weinhold <ingo_weinhold@gmx.de>

* Doh! Signatures are case insensitive.
* Removed the definition of RUN_WITHOUT_REGISTRAR. This can be triggered
by an environment variable now.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6054 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f28a6f704b8ac918d1da3e69e5933c9766a82a66 12-Jan-2004 Adi Oanca <adioanca@nowhere.fake>

It know asks and waits for all loopers to quit


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6046 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 53b9eef827ad44c843de7b90540ebf62794eab87 19-Dec-2003 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Implemented AboutRequested(), reorganized a bit the connection to app server, added a call to _init_interface_kit_()


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5712 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 83f964717308ec435e70cee998153e1968ca2511 13-Oct-2003 DarkWyrm <darkwyrm@gmail.com>

Updates to sync with (hopefully) final tweaks to messaging protocols
Implemented BSession::DropInputBuffer with code from Adi


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5013 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 45799af7b5a1c99be09517235670c8975e95cb93 04-Oct-2003 DarkWyrm <darkwyrm@gmail.com>

Tweaked all messaging classes to comply with new message protocol policies
AppServerLink no longer inherits from BSession
Modified client files which talk to the server to sync with changes in messaging classes


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4942 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 591d280e6c7b568f44375d13b8f0fdd33b8bd0eb 03-Oct-2003 DarkWyrm <darkwyrm@gmail.com>

Added PortMessage::ReadString and PortLink::AttachString to support BSession-style string attachments
Tweaks to startup code for BApplication
Tweaked PortQueue to utilize the BSession workaround for PortMessages
Tweaks to message protocol for BCursor


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4939 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 582e2dddd5a16eded7106201bc00d5598331ce0a 02-Oct-2003 DarkWyrm <darkwyrm@gmail.com>

Conversion to BSession messaging


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4931 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 17e6de7a37c5c61f45eb724de108daa70905cb8f 03-Aug-2003 shadow303 <shadow303@nowhere.fake>

gcc 3 fixes


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4227 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 297ffbbb1a83fe9f6f0a43eac8fe726de5efc144 24-Jul-2003 DarkWyrm <darkwyrm@gmail.com>

Removed memory leak in InitData


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4064 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 78cc8d1a5a66d2825908791f26a1bc0e50ce6030 11-Jul-2003 shadow303 <shadow303@nowhere.fake>

Fix templates for PortMessage & PortLink.
Update BApplication for changes to PortLink


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3959 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 14f0c2cfa2c641a07ab387fab573f40880962d93 08-Jun-2003 DarkWyrm <darkwyrm@gmail.com>

Removed a minor bug from the InitData server communication code


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3451 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dc4e96ca2060d3735db32b9ad96985ef9577bf19 23-Mar-2003 DarkWyrm <darkwyrm@gmail.com>

Removed bug which caused goofy app signature names in app_server


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3003 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c503a7bc9c91b1a76552185dd56458b6f26d48be 18-Mar-2003 DarkWyrm <darkwyrm@gmail.com>

Added BHandler tokens to app_server communications setup


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2947 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ca34e8a04cbbf3ec1d424482525b7020547875bd 12-Mar-2003 DarkWyrm <darkwyrm@gmail.com>

Added startup code to talk to app_server
We can now run simple applications with app_server!!


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2900 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 364bb57e766ce59a1ab1b1bb85a9257df69d127c 24-Feb-2003 DarkWyrm <darkwyrm@gmail.com>

Updated sources to reflect changes in <ServerProtocol.h>


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2832 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 16d1f45f812f3f8e2987e5ea662682be6d3043ee 23-Feb-2003 DarkWyrm <darkwyrm@gmail.com>

Implemented IsCursorHidden
Removed PortLink usage where unnecessary


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2813 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2ed834e3f6f94d48d8671f8379040f4e8cc70238 08-Feb-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

Cleaned up BRoster's friends mess. All access to private BRoster functionality is now done through the newly added BRoster::Private class, which is BRoster's only friend (poor BRoster ;-).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2664 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7c7ee64a503a090e80c21ab2f68478557eb9d36a 09-Nov-2002 DarkWyrm <darkwyrm@gmail.com>

Partially implemented SetCursor
Completely implemented ShowCursor, HideCursor, ObscureCursor
Documented necessary steps for connect_to_app_server


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1898 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 121f83dd58597966c53f2e63635d9cd7713fa0b2 12-Oct-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Moved the miscellaneous app kit functions into the BPrivate namespace and added the function current_team() which returns the ID of the current team.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1501 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d8c0f6e4f5b05d8205e7bd93b81376331ade7eb0 07-Oct-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

InitData(): Set the correct signature when pre-registered under a wrong one.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1435 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ad4fdf8d15303dd925c4c42b4cdb549719547841 06-Oct-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

* Don't uninitialized be_app_messenger in the destructor.
* Fixed missing variable initialization in GetSupportedSuites().
* InitData(): Don't post B_ARGV_RECEIVED to ourselfs when pre-registered.
* InitData(): Added create_app_meta_mime().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1411 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 69b461cdbe309675127e494fadd824bb17507704 02-Sep-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed typo.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@965 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4a87ab984bbf37db9a474850c49bd5c6291c53c0 13-Aug-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Set the the application BHandler's name correctly.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@754 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9231d6b096f2585df7a6d319827141a66f63da74 06-Aug-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Added be_roster check in InitData().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@622 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 98207f6f77d91b199f606b74a251d1cd133b5f9a 04-Aug-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed Quit():
* Error message, if not locked.
* Lock(), quit, Unlock(), if not locked.
* Don't call BLooper:Quit() any more. We post a _QUIT_ message when being
called from another than the looper thread.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@575 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 752c497115c3496af9dad28de8c27276e3382a7a 04-Aug-2002 ejakowatz <ejakowatz@nowhere.fake>

The last remnants of the Old Repub ... er, static looper list data has been
removed. The old static BLooper functions for managing the looper list are
still there, but they are officially deprecated. The approved interface
for this information is BPrivate::BLooperList, accessible via the global
BPrivate::gLooperList variable. Being as it lives in BPrivate, it is for
API-internal use *ONLY*. User apps use it to their own risk.
Also added a small test to make sure that the size of BLooper stays the
same. I will probably add this to other classes as well; doesn't hurt to
be safe. =)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@572 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ebbcbbca0179ddc89aa0337547709ef4ead335ba 03-Aug-2002 ejakowatz <ejakowatz@nowhere.fake>

Implemented count_loopers()/windows() and looper/window_at(). Minor
changes to BLooperList to accomodate.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@568 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9986313c0c81013c50e75ad04a3f79838c5c573e 03-Aug-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed some bugs/behavioral differences to the R5 implementation.
* Run() was returning fTaskID, which was invalidated by Quit().
* assert_app_signature() -> check_app_signature(). InitData() now quits
when an error occured and no error variable has been supplied. That seems
to be what R5 does.
* When args are present B_ARGV_RECEIVED is always sent to the own team,
even if the app flags include B_ARGV_ONLY. But it is sent to a remote
application (already running instance), only if that app has NOT
B_ARGV_ONLY set.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@564 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b1698c8e74d85bcd43c784832988c988b58eec78 28-Jul-2002 ejakowatz <ejakowatz@nowhere.fake>

Mostly fixes for silly compile error, plus an additional test.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@524 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2284462ccf18d4e502b12bf015a3d1800dd4e85c 28-Jul-2002 ejakowatz <ejakowatz@nowhere.fake>

Scripting-related changes. Also indulged in some unwarrented formatting
anality. =P


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@519 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8a526591a0c7147ba02ae272be83fbf36ceabd30 28-Jul-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

* Moved some reusable code into AppMisc.cpp/h.
* Init be_app in InitData().
* Uninit be_app and be_app_messenger in BApplication destructor.^


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@513 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3057c103f5653c89b6173eb14dd68f897fdf53aa 28-Jul-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Init be_app_messenger in InitData().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@492 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 47924e2bedd6014505473748625209f8a174ec0a 27-Jul-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

A comment to remind me to call create_app_meta_mime() in InitData() once it is available.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@481 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 73a2b29f2ec1aa7b31fd513fda123dd4cb2980aa 26-Jul-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

* Implemented InitData(), which should now be complete with respect to
what we need for the roster.
* B_{ARGV,REFS}_RECEIVED and B_READY_TO_RUN messages are dispatched now.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@457 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c7f20c708dc749219aed12592e07743fa53b181f 21-Jul-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Added minimal implementation to be able to Run() the application and to have MessageReceived() served. BApplication is aware of the registrar signature and names the looper port respectively.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@378 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 52a380120846174213ccce9c4aab0dda17c72083 08-Jul-2002 ejakowatz <ejakowatz@nowhere.fake>

It is accomplished ...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10 a95241bf-73f2-0310-859d-f6bbb57e9c96