History log of /haiku/headers/os/app/Application.h
Revision Date Author Comments
# 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.


# 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.


# 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.


# 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.


# 94dc74b0 10-Sep-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

More explicit denoting the BPrivate namespace


# 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


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

* Cleanup, removed author information.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34398 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


# f6e4cbb9 15-Oct-2007 Axel Dörfler <axeld@pinc-software.de>

* Rewrote BeBuild.h which had "a few" consequences (got rid of all those class
definitions).
* Minor cleanup here and there.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22577 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


# 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


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

Who said I couldn't break the build?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16827 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


# 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


# 93514534 28-Jun-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added a private API class BServer, a BApplication subclass especially
for servers, that don't have a GUI or want to control when the app server
connection is established.
* BServer is necessarily a friend of BApplication, for it uses a private
constructor. Hence BApplication::Private::InitGUIContext() is no longer
needed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13315 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


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

We definitely don't need the FIX_FOR_4_6, whatever that was about.
Also restored the original locations of the class members I broke before.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13132 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


# 941cf68a 12-Jun-2005 Stefano Ceccherini <stefano.ceccherini@gmail.com>

this looks like the right time to remove this...

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


# 603aaee5 04-Jul-2003 shadow303 <shadow303@nowhere.fake>

fix for gcc 3


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


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

Made our BAppServerLink a friend class


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


# 7dfa0a3d 26-Jul-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Aesthetical details.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@453 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


# 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.


# 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.


# 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.


# 94dc74b027f8689bc67d616bf771fb4415350453 10-Sep-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

More explicit denoting the BPrivate namespace


# 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


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

* Cleanup, removed author information.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34398 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


# f6e4cbb95290a74b33d012600438b84742b0e572 15-Oct-2007 Axel Dörfler <axeld@pinc-software.de>

* Rewrote BeBuild.h which had "a few" consequences (got rid of all those class
definitions).
* Minor cleanup here and there.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22577 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


# 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


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

Who said I couldn't break the build?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16827 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


# 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


# 9351453415a66394be482da1da09f60ff768a9df 28-Jun-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added a private API class BServer, a BApplication subclass especially
for servers, that don't have a GUI or want to control when the app server
connection is established.
* BServer is necessarily a friend of BApplication, for it uses a private
constructor. Hence BApplication::Private::InitGUIContext() is no longer
needed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13315 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


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

We definitely don't need the FIX_FOR_4_6, whatever that was about.
Also restored the original locations of the class members I broke before.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13132 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


# 941cf68a79014b6c76a03de4fbefd6958c813429 12-Jun-2005 Stefano Ceccherini <stefano.ceccherini@gmail.com>

this looks like the right time to remove this...

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


# 603aaee5fcaea85c4f4836fc88f45b86c80e55a2 04-Jul-2003 shadow303 <shadow303@nowhere.fake>

fix for gcc 3


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


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

Made our BAppServerLink a friend class


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


# 7dfa0a3dbeb65fece5f24d271c01987db53e21e1 26-Jul-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Aesthetical details.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@453 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