[Lazarus] Code Structure / SourceEdit and SyneEdit [Re: Mouse Link in SynEdit (only link-able items)]
Marc Weustink
marc.weustink at cuperus.nl
Fri Dec 12 16:26:18 CET 2008
Martin Friebe wrote:
> Mattias Gärtner wrote:
>> Zitat von Alexander Klenin <klenin at gmail.com>:
>>
>>> I should note that I was horrified by the amount of "glue" code needed
>>> to route an event through main form, source notebook, source editor and
>>> SynEdit.
>>>
>> The IDE is structured in a hierarchy.
>>
>> mainide: the top level of the IDE and the central nerve system. Because of its
>> size it's splitted into several units. This is the 'integrated' in IDE. It
>> connects the various modules like debugger, package system, codetools,
>> designer, etc.
>> source notebook: the whole source editor
>> source editor: one single editor (at the moment in the same unit with source
>> notebook, but should eventually split up)
>> synedit: visual control
>>
> Reading this, I just had an idea. (Nothing that would be done anytime
> soon, as it would be a major project)
>
> In The current structure
> SynEdit is the Visual control, and therefore also the control that takes
> all events such as mouse/key down/up/move. Often it is SynEdits work to
> react to this, but often it also needs to call back to SourceEditor.
>
> It is at least worth reviewing if this order could/should be changed (I
> am not sure about it):
> - SourceEditor could be a visual component with all the Key/Mouse event
> handlers.
> - It would *not* inherit from SynEdit, but same as now it would have a
> SynEdit instance that it can make calls to. This SynEdit would not paint
> on it's own canvas, but rather paint on the SourceEditors canvas
> - Instead of SynEdit making all the callbacks to SourceEditor, now all
> events go to SourceEditor first, and SourceEditor can decide what to
> forward.
>
> On the other hand, it is probably not worth the amount of work. Well the
> future will show, if there is a use case for it...
It would make the design more "pure" then as it is now. I have too been
wondering why synedit needs all the knowledge of ide events.
Marc
More information about the Lazarus
mailing list