1. Babble about Win32Lib

[Long Post Warning]

Just thought I'd post the direction I'm heading with Win32Lib these days.
This is pretty much speculation; after WinMan and Gnuphoria, I'm not making
any promises that this will ever see the light of day.

[The Problems]

1. I can't add new controls to Win32Lib without rewriting the core code.

2. Win32Lib doesn't support emulated (non-native, 100% Euphoria) controls.

3. Maintaining ports such as Dos32Lib is difficult, because there is little
code sharing.

4. The graphic portion of Win32Lib is just a bit *too* hacked.

5. The graphic portion of Dos32Lib is limping badly and needs a rewrite.

6. Win32Lib is not very portable, and the X Windows port looms in the
future.


[The Goals]

1. Decouple Win32-specific code from Win32Lib, making it platform
independant. The core WinLib code is limited to knowing about windows,
graphics and events - shell routines whose personality is defined in
included files.

2. Add hooks to the WinLib core so it can easily be extended with include
files, and move all the controls into include files.

3. The same hooks should also support the creation of 'emulated' controls
(such as a 'clock' control). These emulated controls should only use
platform-independant functions defined in the core code, so they will work
across platforms. (I'm thinking of calling them EuCX controls).

[The Benefits]


First and foremost, other people should be able to easily add new native and
emulated controls to Win32Lib. That takes a burden off me, and puts it into
the capable hands of bright coders such as yourselves.

Second, it will be much easier to keep multiple platforms in sync, since
they can share large amounts of code.

Third, it should make porting to other platforms (such as Linux, X Windows
and Macintosh) much easier, since the initial port can use emulated
controls, and later implement the controls as native.

Fourth, it gives me a chance to go back an rewrite the Win32Lib graphic
routines, now that I have a better idea of how things go together.

Finally, I can fool around with multiple look and feels for controls -
'Java' and 'Platinum' controls.

Oh, I should mention that this doesn't preclude hooking into native Win32
calls - but it obviously makes the code non-portable.

[What's The Current Status?]

Those who have made it this far into my e-mail will no doubt have noticed
that I've been a bit short on details. I've got a very specific plan of
implementation in mind, but things change as I code and find out that there
are much better ways of doing things, or lead to a dead-end. In any event,
the proof is in the code, and the current code is nowhere near completion.

One reason to post all this stuff is to get some feedback. How do people
feel about this direction? Once I get the basic stuff in place (it'll take a
while), will anyone be willing to help implement new native or emulated
controls?

Another reason is to get feedback about cross-platform compatibility.
Cross-platform is a high priority for me, and I need to make some serious
changes.

Finally, it explains why I'm flaking out on all that stuff I've been
promising to do, like fix that bug in the Res toolkit, or add more common
controls.

Comments?

-- David Cuny

new topic     » topic index » view message » categorize

2. Re: Babble about Win32Lib

At 03:07 AM 03-03-1999 , you wrote:
>[Long Post Warning]
>
>Just thought I'd post the direction I'm heading with Win32Lib these days.
>This is pretty much speculation; after WinMan and Gnuphoria, I'm not making
>any promises that this will ever see the light of day.
>
>[The Problems]
>
>1. I can't add new controls to Win32Lib without rewriting the core code.
>
>2. Win32Lib doesn't support emulated (non-native, 100% Euphoria) controls.
>
>3. Maintaining ports such as Dos32Lib is difficult, because there is little
>code sharing.
>
>4. The graphic portion of Win32Lib is just a bit *too* hacked.
>
>5. The graphic portion of Dos32Lib is limping badly and needs a rewrite.
>
>6. Win32Lib is not very portable, and the X Windows port looms in the
>future.

Aha! You where listening to the ECM stuff we chatted. Didn't you? ;)

Personally I won't bother with platform independance... raise your hand
those that are using MacOs (2 or 3), those using Linux (10 to 15), those
using Windows (500 or more). Anyway I hope you succed supporting all those
platform.

EuCX? mmmm.... Are we playing simon says with Microsoft? ECM is more
elegant to me.

BTW Did you saw the code I posted about getting the RECT (win32 speaking)
of a string? Did it work?


Regards,
         Daniel  Berstein
         [daber at pair.com]

new topic     » goto parent     » topic index » view message » categorize

3. Re: Babble about Win32Lib

David Cuny wrote:

> Those who have made it this far into my e-mail will no doubt have noticed
> that I've been a bit short on details. I've got a very specific plan of
> implementation in mind, but things change as I code and find out that there
> are much better ways of doing things, or lead to a dead-end. In any event,
> the proof is in the code, and the current code is nowhere near completion.
>
> One reason to post all this stuff is to get some feedback. How do people
> feel about this direction? Once I get the basic stuff in place (it'll take a
> while), will anyone be willing to help implement new native or emulated
> controls?
>
> Another reason is to get feedback about cross-platform compatibility.
> Cross-platform is a high priority for me, and I need to make some serious
> changes.
>
> Finally, it explains why I'm flaking out on all that stuff I've been
> promising to do, like fix that bug in the Res toolkit, or add more common
> controls.
>
> Comments?
>
> -- David Cuny

I think it's a good idea, and I'd be willing to help implement new native or
emulated controls.

--
Jeffrey Fielding
JJProg at cyberbury.net
http://members.tripod.com/~JJProg/

new topic     » goto parent     » topic index » view message » categorize

4. Re: Babble about Win32Lib

>> Comments?
>>
>> -- David Cuny

You could "steal" my progressbar code if you like to,
I don't need any credit if you use it.

Bye,
PQ
QC

______________________________________________________
Get Your Private, Free Email at http://www.hotmail.com

new topic     » goto parent     » topic index » view message » categorize

5. Re: Babble about Win32Lib

[Daniel Bernstein wrote:]

>Aha! You where listening to the ECM stuff we chatted. Didn't you? ;)

You certainly were a catalyst. But the actual implementation of requests
will probably be handled through a SendMessage sort of mechanism.

>EuCX? mmmm.... Are we playing simon says with Microsoft? ECM is more
>elegant to me.

When I post the alpha (don't hold 'yer breath), I'm sure you'll have lots of
good suggestions to make. It won't be your fault if I continue merrily on my
wayward path of doom and destruction. blink

>BTW Did you [see] the code I posted about getting the RECT (win32 speaking)
>of a string? Did it work?

Thanks for all the submittals. I've still got to figure out how to convert
'logical' units (which the functions return) into pixel units. I've picked
up a couple used Win32 graphics booksl to study, and am re-reading Petzold.

The other problem with the code is indirect: one of my kids did a 'happy
dance' on my keyboard and broke it. The double-quote key on the backup
keyboard doesn't work.


[Jeffrey Fielding wrote:]

> I think it's a good idea, and I'd be willing to help implement
> new native or emulated controls.

Great!


[Patrick Quist wrote:]

> You could "steal" my progressbar code if you like to,
> I don't need any credit if you use it.

The emulated controls are partly your fault - I saw your progress bar, and
realized that there was no easy way to incorporate it into Win32Lib.

Thanks again.

-- David Cuny

new topic     » goto parent     » topic index » view message » categorize

6. Re: Babble about Win32Lib

>Personally I won't bother with platform independence... raise your hand
>those that are using MacOs (2 or 3), those using Linux (10 to 15), those
>using Windows (500 or more). Anyway I hope you succeed supporting all those
>platform.

Hmm.. I would like platform independence for the reason of 'elegance' and the
'compatibility' with future versions of windows,
and simply the different type of design. And actually for many more reasons.
Including program design.

Actually, there are many issues with 'so-called' portable GUI's.
Color issues, when the standard colors are changed, the size of every line, etc.
are all handled by the OS.
A portable GUI would only work if it gave in at one of these points:


- platform 'adaptence' .. force the precise same look... (or somewhere in
     that direction) .. on both the Mac and Win32 it
will look 100% the same, for each pixel. However of 99/100 tools that they use,
your tool's buttons will look
slightly different. Your tool's menu bar.. slightly different. People don't like
that, or at least I don't.

- precise planning of controls .. if the interface handles the exact layout
    of the window, and is only given an 'estimate'
of what it should look like, and how it should operate.. it will 'adapt'. This
has the advantage that it will look correctly
everywhere.. regardless of the screen-font size (Color Draw's tutor for example
wouldn't work with my font-size.. which was
'large' at the time) .. regardless of the size of the window, the resolution,
etc. However, a programmer no longer has the
'freedom' to be able to precisely plan its layout pixel-perfectly.

The last is type of 'sacrifice' I do want to make, although I will only rely
upon very elegant 'layout-generators'.
David's WinMan for example, is much more the direction where I would like to see
Win32Lib head.
No more precise layout. The layout is measured and setup by the library,
possibly using preferences of the end-user.

An example of a different type of layout: Docking Vs Windowed. (I personally
hate multiple windows, but love dock-bars,
especially when they can collapse, etc.) Dock-bar type of windows have an even
huge advantage that currently only some 'huge'
packages have discovered. It allows the end-user to modify and setup its working
space as it likes.

And the layout of say 'Data-forms' or 'Input-forms' ... (you can't have
everything as a separate moveable docking bar, can you)
could be
defined it the way 'HTML' defines its layout. The use of virtual percentage.
Surely the design of certain forms are more work
than the design of an exact layout like, for example, Visual Basic offers, but
the future and platform portability, and the
freedom for the end user to modify its 'windows-look' should be convincing. Not
to mention visually disabled persons, that use
extra large fonts, etc. For them the layout is *either* wrong, or when its
partly adaptive (a typical case with VB programs) its
unusable. How many of you have never used a program that was designed for a
different font-size or different screen-size ,
meaning you couldn't see part of the program and it became unusable ?

Here is, as an inspiration, a GUI design I, as an programmer and end-user of
many windows-tools, would love.

On the top level, you'll need some form of 'container' control. The only allowed
control at the top-level. (it defines the look
of the window/etc)
It can either (and optionally) float, dock or pop-up (= disappear when a
'default' action occurs)

Even on the top-level it should be able to dock, however then at the
screen-edges, similar to a toolbar, or Icq docks.
A pop-up would be like a window, without title-bar etc. that would disappear
after the 'default' action. (say, pressing enter).

A program can spawn child 'containers', you can dock these to any other
container (including of another Eu-program .. blink or to
the screen edges if docking is allowed. When its a pop-up, docking nor moving is
allowed. A titelbar is lacking as well with
pop-ups as well.

In other words, containers do *not* contain other containers. Containers are the
primal block, and all of them are on the
*top-level*.
However, they _are_ called containers, what do they contain ?

They contain a layout-file .. which is a piece of text (optionally a text-file
thus) which contents is shows. The idea behind
such a file-specification should be 'inspired' by both Pdf/Adobe's Portable
Document File and by Html/Hyper Text Markup
Language. HTML files, like Pdf, resize and adjust their layout when you resize
the window, or want to print a pdf-document using
a non-standard paper-size. In a similar way, I would like a
'layout-specification'. It may sound weird, several different files
for each part of the interface of your program, but during development (hmm.. a
special convert to include file tool would be
handy?) something like that is extremely handy.

Buttons, check-boxes, radio-boxes, etc. are examples of the controls offered in
such a language. Off course controls should be
easy to add.
Not into the layout-file though. In the layout-file the name of the control
would be specified and an error message would occur,
when a control is missing. Off course NotePad or TextPad is not ideal for layout
development, but such a file-specification
would at least make the layout independent of the editor. WYSIWYG editors could
off course still, maybe even easier, be made.
Notice though that WYSIWYG also means what-others-see-is-what-they-get.. ... but
editors like DreamWeaver and HotMetal prove
that dynamic layout and 'WYSIWYG" can be united.

Now, people, please tell me what you think ? Wouldn't this be the idea basis for
a 100% easy to setup and use interface
library/tool/standard/specification that offers portability, yet also offers a
great and useful, customizable interface ?

Ralf

new topic     » goto parent     » topic index » view message » categorize

7. Re: Babble about Win32Lib

Ralf wrote:

> Actually, there are many issues with 'so-called' portable GUI's.
> Color issues, when the standard colors are changed, the size of
> every line, etc. are all handled by the OS.

Actually, Win32 issues a message to the program that the colors are
changing, and it's up to each program to implement the appropriate actions.

> platform 'adaptence' .. force the precise same look...
> (or somewhere in that direction) .. on both the Mac and Win32 it
> will look 100% the same, for each pixel.

Take a look at Zinc, which does *not* have a 100% pixel for pixel look and
feel, but still works over multiple platforms, including the Mac. As one of
the Zinc papers pointed out, many customers got *very* unhappy when their
application had a Windows look and feel. Even Qt, which only supports two
different platforms, allows the programmer to specify a 'Win32' or 'Motif'
look and feel.

> - precise planning of controls .. if the interface handles
> the exact layout of the window, and is only given an 'estimate'
> of what it should look like, and how it should operate.. it will
> 'adapt'. This has the advantage that it will look correctly
> everywhere..

Many X Windows-based GUIs (such as Tck/Tk and GTK) use geometry managers. As
you pointed out, I had implemented a simple geometry manager in WinMan, but
I have mixed feelings about them. I don't plan on implementing them in the
near future, but there is nothing in the general design of Win32Lib to keep
them from being implemented in the future.

> An example of a different type of layout: Docking Vs Windowed.

MDI is another thing I have mixed feelings about. In general, Microsoft is
moving away from that metaphor, and adopting other approaches (such as
tabs).

Adopting docking for Win32Lib (IMHO) would be too radical - it would clash
with everything else on the desktop, unless you were running an OS or shell
(like AfterStep) that supported docking.

-- David Cuny

new topic     » goto parent     » topic index » view message » categorize

8. Re: Babble about Win32Lib

>[Patrick Quist wrote:]
>
>> You could "steal" my progressbar code if you like to,
>> I don't need any credit if you use it.
>
>The emulated controls are partly your fault - I saw your progress bar,
and
>realized that there was no easy way to incorporate it into Win32Lib.
>

Yeah right.
First of all, it's just a simple include file.
Second Don't lie to me, just say that you don't like it
       or if you're too proud to borrow something from someone
       else than yourself.
Third Always tell the truth, even to a 14 year old (like me).
Fourth What the **** do you mean that WHAT? is my fault,
       I don't change anything of your library ?????
       (Except for a few "Non-Globals" making "Global")

BYE!
PQ
QC

______________________________________________________
Get Your Private, Free Email at http://www.hotmail.com

new topic     » goto parent     » topic index » view message » categorize

9. Re: Babble about Win32Lib

Patrick,

I do not really care whether you are 14, 40 or 99, but I am getting tired of
making allowances for the behaviour of maladjusted, rude teenagers on this list
all the time. jiri

new topic     » goto parent     » topic index » view message » categorize

10. Re: Babble about Win32Lib

>>[Patrick Quist wrote:]
>>
>>> You could "steal" my progressbar code if you like to,
>>> I don't need any credit if you use it.


>>The emulated controls are partly your fault - I saw your progress bar,
>>and realized that there was no easy way to incorporate it into Win32Lib.

>Yeah right.
>First of all, it's just a simple include file.
>Second Don't lie to me, just say that you don't like it
>       or if you're too proud to borrow something from someone
>       else than yourself.

Actually, he meant he liked it, and wanted to put it into Win32Lib, but
there wasn't any easy way. So because you did something that should've been
allowed more directly by Win32Lib, it's your fault that he's adding it now.
'Fault' isn't always a bad thing. smile

Now I think I'm gonna go download the progress bar in case I need it
sometime.... :)

new topic     » goto parent     » topic index » view message » categorize

11. Re: Babble about Win32Lib

Hey,

My 2 cents worth about Win32Lib:

I am interested only in Windows development and I can't see that changing in the
next year or two at least.  Just wondering how many other people out there have
the same view.

I started using Euphoria because it is an elegant language and also because a
"bound" program is very easy to distribute.  I started using VB and when it
comes time to send your program to someone you need to send 2-3 MB for a simple
60KB program.  Well ... I'm not going to lie, I also started using Euphoria
becuase it didn't cost me a cent!!!!.  Not to say I won't register in the future
if I beleive I can produce commercial quality windows programs.

Also, I read the Euphoria Micro economy concept a few days ago and it seems
to me very few people vote.  Surely an email once a month isn't that difficult
to encourage developers to continue releasing software.  There are some really
great libraries and utilities with nothing / or almost nothing registered.

Anyway .. have a nice day :)

Ray Smith

new topic     » goto parent     » topic index » view message » categorize

12. Re: Babble about Win32Lib

At 06:31 PM 03-03-1999 , you wrote:
>Hey,
>
>My 2 cents worth about Win32Lib:
>
>I am interested only in Windows development and I can't see that changing
in the
>next year or two at least.  Just wondering how many other people out there
have
>the same view.

Me!

I like experimenting with other OSes. But we must be realist, Windows is
THE platform on x86 machines. Even the most emplematic *nix tools are being
ported to windows.


Regards,
         Daniel  Berstein
         [daber at pair.com]

new topic     » goto parent     » topic index » view message » categorize

13. Re: Babble about Win32Lib

-----Original Message-----
From: Ralf Nieuwenhuijsen <nieuwen at XS4ALL.NL>
To: EUPHORIA at LISTSERV.MUOHIO.EDU <EUPHORIA at LISTSERV.MUOHIO.EDU>
Date: Wednesday, March 03, 1999 11:25 AM
Subject: Re: Babble about Win32Lib

<snip to the important stuff>

>They contain a layout-file .. which is a piece of text (optionally a
text-file thus) which contents is shows. The idea behind
>such a file-specification should be 'inspired' by both Pdf/Adobe's Portable
Document File and by Html/Hyper Text Markup
>Language. HTML files, like Pdf, resize and adjust their layout when you
resize the window, or want to print a pdf-document using
>a non-standard paper-size. In a similar way, I would like a
'layout-specification'. It may sound weird, several different files
>for each part of the interface of your program, but during development
(hmm.. a special convert to include file tool would be
>handy?) something like that is extremely handy.
>
>Buttons, check-boxes, radio-boxes, etc. are examples of the controls
offered in such a language. Off course controls should be
>easy to add.
>Not into the layout-file though. In the layout-file the name of the control
would be specified and an error message would occur,
>when a control is missing. Off course NotePad or TextPad is not ideal for
layout development, but such a file-specification
>would at least make the layout independent of the editor. WYSIWYG editors
could off course still, maybe even easier, be made.
>Notice though that WYSIWYG also means what-others-see-is-what-they-get..
... but editors like DreamWeaver and HotMetal prove
>that dynamic layout and 'WYSIWYG" can be united.
>
>Now, people, please tell me what you think ? Wouldn't this be the idea
basis for a 100% easy to setup and use interface
>library/tool/standard/specification that offers portability, yet also
offers a great and useful, customizable interface ?
>
>Ralf
>

    I've been thinking for awhile now that an OS with a GUI based on XML or
HTML would be the way to go.  I've spent only a little time trying to figure
out how to program GUI's on Amiga's and Windows, and it seems hopelessly
complicated (esp. Windows!!).  It doesn't have to be.
    I guess you wouldn't even have to start with a full OS or a full
windowing system; a programming language could support an interface to HTML.

new topic     » goto parent     » topic index » view message » categorize

14. Re: Babble about Win32Lib

I don't agree at all. Windows is dominant _now_ , but things are changing.
And if you use the same tools on any platform, why should you choose
the _Expensive_ one ? In the last few monthes, the greatest manufacturers
(IBM,Compaq,Dell,Gateway,HP,SGI...) have all unveiled their "linux" plan,
adding support and porting developments.
Daniel, there is also a project porting Delphi on linux: (here the mail)
> Everybody interested in Linux and programming may go visit Gathering of
the
> Federations online project at http://www.coltronix.com/federations/
>
> We encorage new federal partners to join in.

Riwal Raude
rauder at thmulti.com

 ----------
From: Daniel Berstein
To: EUPHORIA at LISTSERV.MUOHIO.EDU
Subject: Re: Babble about Win32Lib
Date: Thursday 4 March 1999 04:39

At 06:31 PM 03-03-1999 , you wrote:
>Hey,
>
>My 2 cents worth about Win32Lib:
>
>I am interested only in Windows development and I can't see that changing
in the
>next year or two at least.  Just wondering how many other people out there
have
>the same view.

Me!

I like experimenting with other OSes. But we must be realist, Windows is
THE platform on x86 machines. Even the most emplematic *nix tools are being
ported to windows.


Regards,
         Daniel  Berstein
         [daber at pair.com]

new topic     » goto parent     » topic index » view message » categorize

15. Re: Babble about Win32Lib

At 05:50 AM 04-03-1999 , you wrote:
>I don't agree at all. Windows is dominant _now_ , but things are changing.
>And if you use the same tools on any platform, why should you choose
>the _Expensive_ one ? In the last few monthes, the greatest manufacturers
>(IBM,Compaq,Dell,Gateway,HP,SGI...) have all unveiled their "linux" plan,
>adding support and porting developments.
>Daniel, there is also a project porting Delphi on linux: (here the mail)
>> Everybody interested in Linux and programming may go visit Gathering of
>the
>> Federations online project at http://www.coltronix.com/federations/
>>
>> We encorage new federal partners to join in.

Thanks for the link... unfortunatly it was all empty. I didn't found a
single piece of information (I went to "Dolphine").


Regards,
         Daniel  Berstein
         [daber at pair.com]

new topic     » goto parent     » topic index » view message » categorize

16. Re: Babble about Win32Lib

>(IBM,Compaq,Dell,Gateway,HP,SGI...) have all unveiled their "linux"
plan,
>adding support and porting developments.
>Daniel, there is also a project porting Delphi on linux: (here the
mail)
>> Everybody interested in Linux and programming may go visit
Gathering of
>the
>> Federations online project at http://www.coltronix.com/federations/
>>
>> We encorage new federal partners to join in.
>
>Riwal Raude
>rauder at thmulti.com
>
> ----------
>From: Daniel Berstein
>To: EUPHORIA at LISTSERV.MUOHIO.EDU
>Subject: Re: Babble about Win32Lib
>Date: Thursday 4 March 1999 04:39
>
>At 06:31 PM 03-03-1999 , you wrote:
>>Hey,
>>
>>My 2 cents worth about Win32Lib:
>>
>>I am interested only in Windows development and I can't see that
changing
>in the
>>next year or two at least.  Just wondering how many other people out
there
>have
>>the same view.
>
>Me!
>
>I like experimenting with other OSes. But we must be realist, Windows
is
>THE platform on x86 machines. Even the most emplematic *nix tools are
being
>ported to windows.
>
>
>Regards,
>         Daniel  Berstein
>         [daber at pair.com]

I am thinking BE OS, as they have been doing shows on it on ZD tv and
articles on the ZD website.  It has a core similar or related to Linux
but installs easily, is cheap, and supposed to be VERY powerful.  It
also coexists very friendlyly with all sorts of disk partitions.  It
would be a very good market for full blown Euphoria.  I wish that Rob
would also add it to his list of potential markets, as they are saying
that the only drawback to Be is that not enouph software is available.
Linux is just not friendly enouph for users...
my 2 <$
Monty in Oregon
(Writing this on a G3 266 Mac til my Win98 mac

______________________________________________________
Get Your Private, Free Email at http://www.hotmail.com

new topic     » goto parent     » topic index » view message » categorize

17. Re: Babble about Win32Lib

At 03:58 PM 06-03-1999 , you wrote:
>I am thinking BE OS, as they have been doing shows on it on ZD tv and
>articles on the ZD website.  It has a core similar or related to Linux
>but installs easily, is cheap, and supposed to be VERY powerful.  It
>also coexists very friendlyly with all sorts of disk partitions.  It
>would be a very good market for full blown Euphoria.  I wish that Rob
>would also add it to his list of potential markets, as they are saying
>that the only drawback to Be is that not enouph software is available.
>Linux is just not friendly enouph for users...
>my 2 <$
>Monty in Oregon
>(Writing this on a G3 266 Mac til my Win98 mac

I'm suppose to get a copy of BeOS soon... I'll tell you how it works. I
believe it uses for development GCC on x86 platform and CodeWarrior for
PowerPC.

Sorry to tell you Monty BeOS won't run on G3s PPC.

More information on www.be.com


Regards,
         Daniel  Berstein
         [daber at pair.com]

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu