Need sounding board for GUI library
Marco Leise
Marco.Leise at gmx.de
Sun Dec 15 06:38:01 PST 2013
Am Sun, 15 Dec 2013 12:41:54 +0100
schrieb "Boyd" <gaboonviper at gmx.net>:
> Hey everyone,
>
> I'm looking for help with a GUI library I'm working on. Right now
> I have a pretty good basis, but it's mostly catering to my own
> whims. I'm looking for someone to help me figure out which of my
> design choices are a good idea, and which need some revising.
> This is currently the biggest obstacle that prevents me from
> making it public.
>
> The other obstacle I could use some help with, is deployment. I
> don't have a lot of experience with open source projects, but I
> want to get this one out there and I want to do it right.
>
> If you're willing to help out, let me know.
>
> Cheers,
> Boyd.
>
>
> PS. Here is a description of the project.
>
> The goal of this library, like any GUI library, is to make GUI's
> a lot easier to build. Here are some of the characteristics of
> the library:
>
> - It's non-native. If I'm going to support native components it
> will be far into the future, because in my experience, native
> components tend to be much too limiting.
>
> - It's platform independent. That said, I currently only support
> win32, but it's written in a platform independent way and should
> easily be portable to other platforms. Once the first version is
> out of the way, this will be a top priority.
>
> - Its main goal is to make custom widgets easy to create. Even
> without supplying any widgets this library should be useful. That
> said I do plan to eventually add many widgets to it, but the
> first version will only have a few.
>
> - Multi-touch support. This is built into the very core of the
> library. Every widget you create can use it.
>
> - Grid layout techniques. The library contains ways to layout
> your components, so that you won't need to calculate positions or
> sizes in the majority of cases.
>
> Here is some sample code, to show you what it looks like.
>
> public class TestApplication: TUiApplication
> {
> /// Initialize the application
> public override void Initialize()
> {
> auto title = new TTextGraphic(
> "An uninteresting application",
> TFont("Verdana", 30),
> TColor.Rgb(1,1,1),
> TColor.Rgb(0,0,0),
> TAnchor.Center
> );
>
> auto image = new TImageGraphic(
> LocalFileStore.GetFile(`C:\Images\GrandPiano.png`)
> );
>
> auto exitButton = new TButtonWidget("Quit");
> exitButton.PressEvent.Bind(&this.Quit);
>
> auto main = new TVerticalLayout(
> [
> title,
> image,
> exitButton
> ],
> [
> new TGridLayoutRow(TSizeUnit.Auto),
> new TGridLayoutRow(TSizeUnit.Remainder(1)),
> new TGridLayoutRow(TSizeUnit.Auto)
> ]
> );
>
> Ui.ShowWidgetFullScreen(
> Ui.GetScreens()[0],
> main
> );
> }
>
> /// Clean up the application
> public override void Finalize(){ }
>
> /// Whether or not the application will quit.
> /// Use this, for example, to ask the user whether to save
> changes
> public override bool AllowQuit() { return true; }
> }
>
> int main(string[] argv)
> {
> Run(new TestApplication());
> }
A Delphi VCL user!
--
Marco
More information about the Digitalmars-d
mailing list