Sign in Join

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

Mailing lists / lazarus / 2015-03

Tutorial: Animating desktop widgets

20 messages · 5 people · –

Reply by email Subscribe to this list Your subscription

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

Anthony Walter

I've written up another short tutorial related to creating cross platform animated desktop widgets. This tutorial deals with vector graphics which can be used to scale animated widgets to any size.

A video clip and walk through is located here:

http://www.getlazarus.org/forums/viewtopic.php?f=18&t=40

This is the location of my previous tutorial on animating with easings:

http://www.getlazarus.org/forums/viewtopic.php?f=18&t=39 -------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20150325/2f793e6e/attachment.html>

Reply by email

Graeme Geldenhuys
to Anthony Walter
Anthony Walter wrote
I've written up another short tutorial related to creating cross platform animated desktop widgets.

Your tutorials are very interesting, but why give repository read access on a per-request basis? Why not simply publish (or mirror) it on a public system like Github or SourceForge?

Regards,
- Graeme -

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

Reply by email

Marcos Douglas
to Graeme Geldenhuys
Graeme Geldenhuys wrote 7 lines
On 2015-03-25 08:31, Anthony Walter wrote: > I've written up another short tutorial related to creating cross > platform animated desktop widgets. Your tutorials are very interesting, but why give repository read access on a per-request basis? Why not simply publish (or mirror) it on a public system like Github or SourceForge?

+1

Marcos Douglas

Reply by email

Anthony Walter
to Graeme Geldenhuys: Your tutorials are very interesting, but why give repository read access on a per-request…

Cross Codebot is still in development. I need people to test it, and feedback, rather than general open to the public users.

For this tutorial I added an refresh rate sync timer and vector math geometry units, for the last one I added in the animation easing library, for the one before that I enhanced the bitmap copy backends.

If people someone is interested enough to reply ask for access, then I'm happy to give them a git account and see them on the forums to discuss questions or improvements. Otherwise they can just wait for a wider more public release.

And jsut for everyone's information, Cross Codebot contains a lot more than just the hardware graphics backend. it contains a totally new custom socket library, http client, ftp, web storage (s3, google drive, azure), several really nice from scratch controls, such as a fast virtual grid control and virtual lsit control:

http://www.getlazarus.org/forums/viewtopic.php?f=19&t=33

New color pickers, new imafe lists, new sliders, new control containers. It's a port of my prteviously open Codebot library which was located here, but taken down after I sold some custom code to a French company:

http://www.codebot.org/delphi/

Custom code which was sold off:

http://www.codebot.org/shell/

Since then the Library has grown to over 180 controls which I am slowly porting to Lazarus and the ISurface graphics library.

Controls like the step picker:

http://www.codebot.org/delphi/?doc=9531

Or the color controls:

http://www.codebot.org/delphi/?doc=9524 (already ported)

I still have 150 controls left to port, all of them unique and interesting ( http://www.codebot.org/delphi/?doc=9556). But at this point, if I only want users who care enough to request access and might give feedback, rather than general public users who aren't following along with development and might complain bombard me about feature x not working or missing. -------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20150325/bded080e/attachment-0001.html>

Reply by email

Graeme Geldenhuys
to Anthony Walter: Cross Codebot is still in development. I need people to test it, and feedback, rather…
Anthony Walter wrote
Cross Codebot is still in development. I need people to test it, and feedback, rather than general open to the public users.

If I have learned anything in the past 15 years of working on open source software, it is the following: Make it as quick and easy as possible for others to test your open source work. Anything that resembles effort, and they walk aware and move on. Sad, but true. I'm such a case in point. Being a toolkit developer myself, I was curious to see your code, but got put off by the fact that it is not published. Don't ask me why, that's just how I am.

As for your statement "is still in development". I know how you feel (you want everything perfect before others can see it), but I can also add that I don't think there is ANY software that isn't still in development. :-)

Regards,
- Graeme -

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

Reply by email

Anthony Walter
to Graeme Geldenhuys

I had a popular free and open library more than 10 years ago which required no registration. I receive little to no community feedback for it. This time I'm getting a lot of people talking to me in private message and they're actually asking questions in the forums. I'll keep it this way for a while longer.

Also, regarding yesterday's discussion of RGBAControls, I'd like to point out that a custom theme engine is baked into Cross Codebot and all its controls. When you one of a Cross Codebot controls on a form, you'll see it has a theme name (string) property, which contains a drop down list of registered themes. Changing the theme property on a control changes its look. Changing the theme on a container control, like TRenderForm or TSizingPanel, can change the theme of all child controls (if they didn't specificly already choose a theme name). You can quickly change themes at runtime and it's easy to write and register your own custom themes. -------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20150325/b38e5bb2/attachment.html>

Reply by email

Marcos Douglas
to Graeme Geldenhuys: If I have learned anything in the past 15 years of working on open source software, it is…
Graeme Geldenhuys wrote 11 lines
On 2015-03-25 13:17, Anthony Walter wrote: > Cross Codebot is still in development. I need people to test it, and > feedback, rather than general open to the public users. If I have learned anything in the past 15 years of working on open source software, it is the following: Make it as quick and easy as possible for others to test your open source work. Anything that resembles effort, and they walk aware and move on. Sad, but true. I'm such a case in point. Being a toolkit developer myself, I was curious to see your code, but got put off by the fact that it is not published. Don't ask me why, that's just how I am.

If you is like me, that's because we have many things to do at day (working on projects, management tasks, reports and so on), ie, we have many others priorities. But if we see the code, just take a look, maybe something will arouse our interest. If yes, we can start contributing with this project -- or any other.

As for your statement "is still in development". I know how you feel (you want everything perfect before others can see it), but I can also add that I don't think there is ANY software that isn't still in development. :-)

+1

Marcos Douglas

Reply by email

Marcos Douglas
to Anthony Walter: I had a popular free and open library more than 10 years ago which required no…
Anthony Walter wrote 5 lines
I had a popular free and open library more than 10 years ago which required no registration. I receive little to no community feedback for it. This time I'm getting a lot of people talking to me in private message and they're actually asking questions in the forums. I'll keep it this way for a while longer.

When you posted about Bare.Game I sent a private mail to you but you not answered. :)

Ok, I will send a private mail to get my account to your private repo to Codebot.

...

Regards,
Marcos Douglas

Reply by email

aradeonas
to Marcos Douglas
Also, regarding yesterday's discussion of

RGBAControls, I'd like to point out that a custom theme engine is baked into Cross Codebot and all its controls. When you one of a Cross Codebot controls on a form, you'll see it has a theme name (string) property, which contains a drop down list of registered themes. Changing the theme property on a control changes its look. Changing the theme on a container control, like TRenderForm or TSizingPanel, can change the theme of all child controls (if they didn't specificly already choose a theme name). You can quickly change themes at runtime and it's easy to write and register your own custom themes.

BGRAControls is correct and I will be glad to hear from you that its possible to make new genre styles with your library or not?Yr demos are beautiful but are they made for such this work? Please tell me what you think in continue of my question in mail list.

Regards, Ara

http://www.fastmail.com - A fast, anti-spam email service. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20150325/088ec478/attachment.html>

Reply by email

Anthony Walter
to aradeonas

The styles are defined by an abstract class in the Codebot.Graphics unit called "TTheme". To define you own styles, inherit from this class and override its methods. To install a theme that the designer will pickup, create a package, reference the codebot package, and call "ThemeRegisiter(TYourThemeClass)" in your packages register procedure. Since themes can change at runtime, you also need to include your package and the ThemeRegisiter invocation in your programs which want to use TYourThemeClass.

Once TYourThemeClass is registered it will appear in the list of theme names on Cross Codebot controls.

Please note, not all controls expose the ThemeName property. This is because it doesn't make sense for controls like a hue picker or render box to have a theme. Themes are reserved for UI widgets like TSlideBar, THeaderBar, TThinButton and such. Be aware as I port over more controls I may extend the base TTheme class, thus necessitating theme implementors to add to their custom theme classes as well.

Here is a an example:

http://codebot.org/snapshops/theme_default.jpg
http://codebot.org/snapshops/theme_redmond.jpg
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20150325/536553ef/attachment-0001.html>

Reply by email

Anthony Walter
to aradeonas: So in your library I can make interface like this:…

Well you can make whatever interface you want, if you're willing to put in the work to writing the ISurface draw commands. I am actually working on a sub system allowing user interface elements to defines as xml resources:

http://codebot.org/snapshops/surface_xml.jpg

The code for this is already in the repository in unit Codebot.Graphics.Markup
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20150325/fd1a34e2/attachment.html>

Reply by email

Anthony Walter
to aradeonas: As he said he have a Delphi library that he is porting them to Lazarus as I understand.…

The port is from this libary which was taken offline:

http://www.codebot.org/delphi/

Since the time of it's last update it contained nearly 180 controls, privately. This includes a set of new control designers, new toolbar system, new color controls, a huge array of button/edit/popup forms and controls, database layout controls and database custom controls.

Really it's ton of stuff which was/is rotting away. This year I decide I rather than wasting a decade of work and forgetting about it, I ought to at least make an effort to open it up as a new project (minus the parts I've sold to third parties).
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20150325/c3ee063d/attachment.html>

Reply by email

Marcos Douglas
to Anthony Walter: The port is from this libary which was taken offline: http://www.codebot.org/delphi/…
Anthony Walter wrote 13 lines
The port is from this libary which was taken offline: http://www.codebot.org/delphi/ Since the time of it's last update it contained nearly 180 controls, privately. This includes a set of new control designers, new toolbar system, new color controls, a huge array of button/edit/popup forms and controls, database layout controls and database custom controls. Really it's ton of stuff which was/is rotting away. This year I decide I rather than wasting a decade of work and forgetting about it, I ought to at least make an effort to open it up as a new project (minus the parts I've sold to third parties).

Good decision.

Marcos Douglas

Reply by email

Xirax Xirax
to Marcos Douglas

Yes it is.He is making a brilliant library.
Anthony I like xml idea,It can be very useful.

Marcos Douglas wrote 27 lines
On Wed, Mar 25, 2015 at 2:37 PM, Anthony Walter wrote: > The port is from this libary which was taken offline: > > http://www.codebot.org/delphi/ > > Since the time of it's last update it contained nearly 180 controls, > privately. This includes a set of new control designers, new toolbar > system, > new color controls, a huge array of button/edit/popup forms and controls, > database layout controls and database custom controls. > > Really it's ton of stuff which was/is rotting away. This year I decide I > rather than wasting a decade of work and forgetting about it, I ought to > at > least make an effort to open it up as a new project (minus the parts I've > sold to third parties). Good decision. Marcos Douglas -- _______________________________________________ Lazarus mailing list http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply by email

Anthony Walter
to Xirax Xirax

I've updated the original article with a video capture of the widget running using the same code on Linux. I didn't test this particular project on Linux previous to this my original post. I copied over the project, built it without modifying a thing, and it just worked. See for yourself in the video at the project page (the 2nd video was captured on Linux).

http://www.getlazarus.org/forums/viewtopic.php?f=18&t=40

A note on my Linux computer, it's a 2007 laptop (that's old) with a Core 2 Duo T9800 CPU, GeForce 8600M GT video card, and 4GB of RAM. It's running Ubuntu 14.04 64bit. Hopefully this gives you people some perspective on hardware/performance. Also, the screen capture imposes some limits on performance when running overlay windows, but you'd never know that judging by the video capture I posted.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20150325/859d914a/attachment.html>

Reply by email