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