April 28, 2006
"Kyle Furlong" <kylefurlong@gmail.com> ??????:e25vmb$1frn$2@digitaldaemon.com...
> pragma wrote:
>> In article <e257hp$bsn$1@digitaldaemon.com>, DBloke says...
>>>> Another possibility is basing a framework on some portable ground, like for instance SDL or OpenGL. But it wouldn't feel very "native", then ?
>>>>
>>>> --anders
>>> This is something that would need to be agreed, do we want Native or X Platform?
>>>
>>> Either choice would require significant effort IMHO, and require that all different platforms be synced to maintain consistency if D goes the X Platform route.
>>>
>>> D is X Platform so perhaps D's GUI should be also?
>>>
>>> SDL and OpenGL could be a useful starting platform, and D's GUI Framework could leverage a lot of low level code from the two platforms, and a bonus that it is written in C so will be easier to interface to in theory and X Platform.
>>>
>>
>> $0.02:
>> As much as I like the idea of using something that is guaranteed to exist
>> on all
>> platforms (GL), there comes a rather stiff price for backing a raw
>> graphics
>> library.  Most notably is the fact that any such development effort would
>> have
>> to build its own rendering and event model from the ground up.  Also,
>> meshing
>> with the OS's native capabilities, like cut-and-paste, would prove
>> troublesome.
>>
>> Beyond that, it's the one approach that yields the most advantages.
>> Applications would be guaranteed to behave *and* look the same on all
>> platforms;
>> kind of like Swing.  Rendering and compositing would take advantage of
>> hardware
>> where possible, so it'll likely be very fast if not efficent.  You get 3D
>> rendering for free, so it could double as a multimedia/gaming lib as
>> well.
>> Skinnable interfaces, and paradigm bending concepts also become very
>> possible -
>> the kind of stuff that makes X11 look like a tasteless joke.
>>
>> So all in all, backing GL is the most ambitious path, but probably the
>> one that
>> would yield the most promise.
>>
>> I'll add that there seems to be an industry-wide paradigm shift that
>> points
>> squarely at using GL for rendering the humble GUI.  From what I
>> understand, OSX
>> already does this, and Linux is well on its way.  Windows GDI is a
>> bloated
>> dinosaur, and I would not be suprised if MS did away with it in Vista (or
>> at
>> least promoted a new model that is closer to the hardware while keeping
>> GDI for
>> compatibility's sake). So for once, we'd be planning ahead.  In light of
>> all that, I reckon that a GL based D windowing lib would prove
>> easier to back-port to a native toolkit once this paradigm shift is in
>> full
>> swing - provided that's even necessary.  After all, all three major
>> operating
>> systems come with some kind of 3D or GL support out of the box already,
>> right?
>>
>> - EricAnderton at yahoo
>>
>> PS, you could back DWT, Minwin, DUIT, etc on such a lib if you wanted to.
>
> Terra is well on the way in this vein, you should check it out.

Yes, Terra is cool, but it only limit the refresh rate for save of cpu, we also need update on demand, and update on changed.


May 01, 2006
Hello,

Im quite new to D, but reading a lot of posts lately and checking some websites about D i can say that the demand for good GUI API is quite high in the community (including me).

And i must say i agree with the idea of using OpenGL for making a cross platform GUI. Having a modern GUI rendered using graphics hardware could    drag more attention to D. And problem of not native look of such API could be easily handled using different themes. When i checked Terra project source, the actual style of the widgets takes only few lines of code and a set of images. For me, OpenGL is the right way to go.

Freeagle
May 01, 2006
freeagle wrote:
> Hello,
> 
> Im quite new to D, but reading a lot of posts lately and checking some websites about D i can say that the demand for good GUI API is quite high in the community (including me).
> 
> And i must say i agree with the idea of using OpenGL for making a cross platform GUI. Having a modern GUI rendered using graphics hardware could    drag more attention to D. And problem of not native look of such API could be easily handled using different themes. When i checked Terra project source, the actual style of the widgets takes only few lines of code and a set of images. For me, OpenGL is the right way to go.
> 
> Freeagle

All Terra needs is a complete widget set. Like you have specified, all this takes is the logic and skinning. I wrote a scrollbar widget and skinned it in less than a day.
May 01, 2006
Kyle Furlong wrote:
> freeagle wrote:
>> Hello,
>>
>> Im quite new to D, but reading a lot of posts lately and checking some websites about D i can say that the demand for good GUI API is quite high in the community (including me).
>>
>> And i must say i agree with the idea of using OpenGL for making a cross platform GUI. Having a modern GUI rendered using graphics hardware could    drag more attention to D. And problem of not native look of such API could be easily handled using different themes. When i checked Terra project source, the actual style of the widgets takes only few lines of code and a set of images. For me, OpenGL is the right way to go.
>>
>> Freeagle
> 
> All Terra needs is a complete widget set. Like you have specified, all this takes is the logic and skinning. I wrote a scrollbar widget and skinned it in less than a day.

i wonder if its possible/reasonable to use it for more complex GUI apps, IDE for example, or any other bigger projects
May 02, 2006
freeagle wrote:
> Kyle Furlong wrote:
>> freeagle wrote:
>>> Hello,
>>>
>>> Im quite new to D, but reading a lot of posts lately and checking some websites about D i can say that the demand for good GUI API is quite high in the community (including me).
>>>
>>> And i must say i agree with the idea of using OpenGL for making a cross platform GUI. Having a modern GUI rendered using graphics hardware could    drag more attention to D. And problem of not native look of such API could be easily handled using different themes. When i checked Terra project source, the actual style of the widgets takes only few lines of code and a set of images. For me, OpenGL is the right way to go.
>>>
>>> Freeagle
>>
>> All Terra needs is a complete widget set. Like you have specified, all this takes is the logic and skinning. I wrote a scrollbar widget and skinned it in less than a day.
> 
> i wonder if its possible/reasonable to use it for more complex GUI apps, IDE for example, or any other bigger projects

Why not? All you have to do is write the widgets you need and skin them. :-D
May 02, 2006
Kyle Furlong wrote:
> freeagle wrote:
>> Kyle Furlong wrote:
>>> freeagle wrote:
>>>> Hello,
>>>>
>>>> Im quite new to D, but reading a lot of posts lately and checking some websites about D i can say that the demand for good GUI API is quite high in the community (including me).
>>>>
>>>> And i must say i agree with the idea of using OpenGL for making a cross platform GUI. Having a modern GUI rendered using graphics hardware could    drag more attention to D. And problem of not native look of such API could be easily handled using different themes. When i checked Terra project source, the actual style of the widgets takes only few lines of code and a set of images. For me, OpenGL is the right way to go.
>>>>
>>>> Freeagle
>>>
>>> All Terra needs is a complete widget set. Like you have specified, all this takes is the logic and skinning. I wrote a scrollbar widget and skinned it in less than a day.
>>
>> i wonder if its possible/reasonable to use it for more complex GUI apps, IDE for example, or any other bigger projects
> 
> Why not? All you have to do is write the widgets you need and skin them. :-D
asking coz i havent found anything about how thorough is the design of terra, if the code of bigger apps will still remain maintainable, and if its able to introduce new features easily without some major code rewrites
May 02, 2006
freeagle wrote:
> Kyle Furlong wrote:
>> freeagle wrote:
>>> Kyle Furlong wrote:
>>>> freeagle wrote:
>>>>> Hello,
>>>>>
>>>>> Im quite new to D, but reading a lot of posts lately and checking some websites about D i can say that the demand for good GUI API is quite high in the community (including me).
>>>>>
>>>>> And i must say i agree with the idea of using OpenGL for making a cross platform GUI. Having a modern GUI rendered using graphics hardware could    drag more attention to D. And problem of not native look of such API could be easily handled using different themes. When i checked Terra project source, the actual style of the widgets takes only few lines of code and a set of images. For me, OpenGL is the right way to go.
>>>>>
>>>>> Freeagle
>>>>
>>>> All Terra needs is a complete widget set. Like you have specified, all this takes is the logic and skinning. I wrote a scrollbar widget and skinned it in less than a day.
>>>
>>> i wonder if its possible/reasonable to use it for more complex GUI apps, IDE for example, or any other bigger projects
>>
>> Why not? All you have to do is write the widgets you need and skin them. :-D
> asking coz i havent found anything about how thorough is the design of terra, if the code of bigger apps will still remain maintainable, and if its able to introduce new features easily without some major code rewrites

Like I said before, all you have to do is write the widget set. In terms of maintainability, I don't see how the GUI library has anything to do with the maintainability of your code. The design is solid as far as I can see. Trevor Parscal (the author) produces very high quality code.
-- 
Kyle Furlong // Physics Undergrad, UCSB

"D is going wherever the D community wants it to go." - Walter Bright
May 04, 2006

freeagle wrote:
> Hello,
> 
> Im quite new to D, but reading a lot of posts lately and checking some websites about D i can say that the demand for good GUI API is quite high in the community (including me).
> 
> And i must say i agree with the idea of using OpenGL for making a cross
> platform GUI. Having a modern GUI rendered using graphics hardware could
>    drag more attention to D. And problem of not native look of such API
> could be easily handled using different themes. When i checked Terra
> project source, the actual style of the widgets takes only few lines of
> code and a set of images. For me, OpenGL is the right way to go.
> 
> Freeagle

Personally, I don't like these kinds of GUI toolkits.  Granted, they ARE more portable, and easier to write, but:

A) Visuals.  Not one single self-rendered toolkit I've ever seen has looked right.  GTK+, Swing... they all have small, subtle, but very annoying quirks that allow you to say: "Hey, this isn't a native app!" That should *never* happen.  Sun has had years to try to perfect this, and yet they haven't.

What is worse, what are you going to do about Vista?  When that comes out, all your work on the XP skin has to be re-done from scratch.  And even then, given that Vista uses all those transparency effects, will it even be possible without a major rewrite?

The problem is magnified if Vista has multiple themes.  Then you've got to support each one separately... you get the idea.

And let's not forget the million and one themes of KDE and GNOME...

B) Operation.  Under Windows, I sometimes use IMEs (Input Method Editors) to input text in Japanese.  Now, there's an option in Windows to enable extra support for this in text boxes... the problem is that if you're rendering the text boxes yourself, this support mysteriously disappears.  You will never be able to cover the entire set of system built-in functionality.  If you did manage to, you'd basically be re-implementing the entire toolkit API on every native system... which is much more work than just wrapping it in the first place.

That said, I still think projects like this are important.  For applications that don't care one whit if they "fit" with the system or not, they're a boon.  Such is true of things like media players, games, and other applications that intend to have a distinctive look (or don't need one at all :P)

But at the end of the day, I'd still prefer to have something like wxWidgets or SWT for D (in addition to toolkits like Terra), so that my programs will function properly :)

	-- Daniel "Foolish Swing!  Everyone knows that Windows tree views have
SQUARE swizzles, not round ones!  Your heinous deception is unmasked!" Keep

-- 

v1sw5+8Yhw5ln4+5pr6OFma8u6+7Lw4Tm6+7l6+7D a2Xs3MSr2e4/6+7t4TNSMb6HTOp5en5g6RAHCP    http://hackerkey.com/
May 04, 2006
Hello to all :)
Been playing with wxD and have noticed similar problems in sample programs.
> Hmm, looking at the bug list like that does seem pretty bad :-)
> "Abnormal termination" is pretty common in D programs, though.
> 
"Abnormal termination" is pretty common in D programs"
Why is this? a D bug or a wxD one?

> Patches happily accepted :-)

I am a proficient C++ programmer, but will be happy to have a go, I use wxWidgets a lot of the time in C++, but don't ask me about Linux or Mac.

I tried Linux once about 3 years ago and could not see what all the fuss was about :) but millions of other people obviously do ;)

Do you think the problems lie in the samples or wxD itself?

> Email me for the beta of it.

If you don't mind I would like a copy of wxD 0.5, I understand a lot of D syntax and think dropping MI is a very good idea, shame C++ didn't do the same when it was standardised.

Interfaces and aggregated composite classes using SI are the way to go, afaics there is very little if anything the above can't achieve that MI can, plus Interfaces allow loose coupling of classes.
May 04, 2006
EricH wrote:

>> "Abnormal termination" is pretty common in D programs, though.
>>
> "Abnormal termination" is pretty common in D programs"
> Why is this?

What I mean was there is no "hand-holding" in D programs,
so if there was a problem it will crash hard and not put
up a stack dump or some other kind of similar exception ?

There are assertions and contracts, but those are off for "-release".

> a D bug or a wxD one?

But this in case, it's definitely a D bug. All the demos
work fine in wxWidgets (C++) and in wx.NET (C#), so they
should do so in wxD (D) as well ? Once "porting" is done.

Do compare with http://wxnet.sourceforge.net/, for most the examples ?

>> Patches happily accepted :-)
> 
> I am a proficient C++ programmer, but will be happy to have a go, I use wxWidgets a lot of the time in C++, but don't ask me about Linux or Mac.

That is no problem, as I can easily handle testing on those platforms.

> I tried Linux once about 3 years ago and could not see what all the fuss was about :) but millions of other people obviously do ;)
> 
> Do you think the problems lie in the samples or wxD itself?

Definitely in wxD, I think it has to do with the destructors (in D,
all GC variables are undefined when the destructor finally runs...)
or just with plain old bugs or oversights (e.g. Unicode issues, etc)

--anders