Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus / 2010-02

Lazarus Designer surface

9 messages · 5 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Lee Jenkins

Hi all,

First pointing out that I know absolutely nothing about the IDE code, how feasible or complex would you guesstimate it would be for someone to expose the the lazarus form designer as a LCL component?

Warm Regards, Lee

Reply by email

Mattias Gärtner
to Lee Jenkins

Zitat von Lee Jenkins :

Show quoted text 6 lines
Hi all, First pointing out that I know absolutely nothing about the IDE code, how feasible or complex would you guesstimate it would be for someone to expose the the lazarus form designer as a LCL component?

What do you mean with 'designer'?

The base of the designer is just a hook delegating mouse/paint/keyboard/size events to the various IDE parts. The designer alone can only paint the grids.

Mattias

Reply by email

Lee Jenkins
to Mattias Gärtner
Mattias G?rtner wrote 15 lines
Zitat von Lee Jenkins : > > Hi all, > > First pointing out that I know absolutely nothing about the IDE code, > how feasible or complex would you guesstimate it would be for someone > to expose the the lazarus form designer as a LCL component? What do you mean with 'designer'? The base of the designer is just a hook delegating mouse/paint/keyboard/size events to the various IDE parts. The designer alone can only paint the grids.

The basic functionality of drawing controls/widgets on the designer surface with grab handles, resizing, etc.

There is a commercial component for Delphi that I've used for some time that has this functionality, but I am researching the feasibility of doing my project in Lazarus which needs to be a mini-ide in itself.

http://www.greatis.com/delphicb/formdes/

That is the functionality I was looking for.

Warm Regards, Lee

Reply by email

Hans-Peter Diettrich
to Mattias Gärtner: Zitat von Lee Jenkins : What do you mean with 'designer'? The base of the designer is…
Show quoted text 9 lines
> First pointing out that I know absolutely nothing about the IDE code, > how feasible or complex would you guesstimate it would be for someone > to expose the the lazarus form designer as a LCL component? What do you mean with 'designer'? The base of the designer is just a hook delegating mouse/paint/keyboard/size events to the various IDE parts. The designer alone can only paint the grids.

The IDE could provide an interface for the designer, that can be replaced in a stand-alone version.

DoDi

Reply by email

Mattias Gärtner
to Lee Jenkins: The basic functionality of drawing controls/widgets on the designer surface with grab…

Zitat von Lee Jenkins :

Show quoted text 20 lines
Mattias G?rtner wrote: > Zitat von Lee Jenkins : > >> >> Hi all, >> >> First pointing out that I know absolutely nothing about the IDE >> code, how feasible or complex would you guesstimate it would be >> for someone to expose the the lazarus form designer as a LCL >> component? > > What do you mean with 'designer'? > > The base of the designer is just a hook delegating > mouse/paint/keyboard/size events to the various IDE parts. The > designer alone can only paint the grids. > The basic functionality of drawing controls/widgets on the designer surface with grab handles, resizing, etc.

The controls draw themselves.
The grab handles are drawn by the control selection on a DesignerDC. The resizing is also mostly handled by the control selection. The control selection requires some parts of the IDEIntf, so it can not be moved to the LCL. And it is not abstract enough for the IDEIntf. I guess this would require quite some refactoring. Of course you are free to copy whatever you need, it's open source.

Show quoted text 9 lines
There is a commercial component for Delphi that I've used for some time that has this functionality, but I am researching the feasibility of doing my project in Lazarus which needs to be a mini-ide in itself. http://www.greatis.com/delphicb/formdes/ That is the functionality I was looking for.

Mattias

Reply by email

Mattias Gärtner
to Hans-Peter Diettrich: The IDE could provide an interface for the designer, that can be replaced in a…

Zitat von Hans-Peter Diettrich :

Show quoted text 15 lines
Mattias G?rtner schrieb: >> First pointing out that I know absolutely nothing about the IDE >> code, how feasible or complex would you guesstimate it would be >> for someone to expose the the lazarus form designer as a LCL >> component? > > What do you mean with 'designer'? > > The base of the designer is just a hook delegating > mouse/paint/keyboard/size events to the various IDE parts. The > designer alone can only paint the grids. The IDE could provide an interface for the designer, that can be replaced in a stand-alone version.

The term 'designer' has various meanings.
The TIDesigner is an abstract class (an old school interface). There are various interfaces in the IDEIntf to access/modify the IDE designer. The wiki uses the term 'designer' sometimes as whole for everything related to forms at designtime in the IDE.
Please explain what you mean with 'designer' and 'interface'.

Mattias

Reply by email

Graeme Geldenhuys
to Lee Jenkins: The basic functionality of drawing controls/widgets on the designer surface with grab…
Lee Jenkins wrote
The basic functionality of drawing controls/widgets on the designer surface with grab handles, resizing, etc.

As Mattias said, drawing etc is mostly handled by the components themselves. In fpGUI's UI Designer I do pretty much the same. I have a "designer form" which is actually just a plain form. When I drop a widget on that form, I first creates a 'resize handles' component which paints the 6 resize rectangles. That 'resize handles' component has an embedded widget (the one you dropped on the designer form).

You are welcome to look at UI Designer in fpGUI as well.

Regards,
- Graeme -

fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://opensoft.homeip.net/fpgui/

Reply by email

Hans-Peter Diettrich
to Mattias Gärtner: Zitat von Hans-Peter Diettrich : The term 'designer' has various meanings. The TIDesigner…
Show quoted text 7 lines
> The IDE could provide an interface for the designer, that can be > replaced in a stand-alone version. The term 'designer' has various meanings. The TIDesigner is an abstract class (an old school interface). There are various interfaces in the IDEIntf to access/modify the IDE designer.

I meant the opposite direction, how the designer accesses other parts of the IDE.

DoDi

Reply by email

Mattias Gaertner
to Hans-Peter Diettrich
Show quoted text 12 lines
Mattias G?rtner schrieb: >> The IDE could provide an interface for the designer, that can be >> replaced in a stand-alone version. > > The term 'designer' has various meanings. > The TIDesigner is an abstract class (an old school interface). > There are various interfaces in the IDEIntf to access/modify the IDE > designer. I meant the opposite direction, how the designer accesses other parts of the IDE.

The designer is connected to half the IDE.
The IDEintf contains only stable functions/classes. Putting an abstract interface for every thing in the IDE is unmaintainable. For example the recent frame support would not be possible.

But I guess he does not want the whole designer, but only the control selection (about 3000 lines of code). This might be doable.

Mattias

Reply by email