[Lazarus] Carbon: Loosing kAEOpenDocuments AppleEvents before AppRun
Hans-Peter Diettrich
DrDiettrich1 at aol.com
Sat Oct 31 20:43:30 CET 2009
dmitry boyarintsev schrieb:
>> I'd be in favour of Hans-Peter's solution until something more standard
>> works.
> Carbon widgetset is not ideal in implementation, but i don't think
> that brining more "features" to it would make it better.
Think about multi-platform applications. Lazarus/RTL/LCL should offer
one unique way to deal with dropped files on app start, independent from
the target platform. Since it's impossible to distinguish commandline
arguments from dropped files on other platforms, special handling is
possible only for Carbon, in dedicated Carbon applications.
> The problem with converting AEOpenDocument to params is that you won't
> be able to see the difference, between real command params and
> generated by LCL.
> If additional params are always generated and event is fired then
> application might make double-file openning or the app need some way
> to know what params are real.
When the event is not handled (Message.Result), the default handler
(TApplication.WndProc?) can do whatever seems to be appropriate. On
Carbon it can set a flag, in addition to converting the dropped files
into commandline arguments. Also Application.Run can try to send the
message once more, but this makes things more complicated (when the
command line arguments already have been processed by the application...).
A TApplication.OnOpenDocument handler can be introduced, which can be
implemented by an application, or a flag can indicate how things should
be handled.
DoDi
More information about the Lazarus
mailing list