Re: [pygame] New GUI

2008-01-22 Thread Kamilche

Patrick Mullen wrote:


For a toolkit that can only be used in pygame, ignoring things like
pyopengl, python-ogre, etc, such limited use I don't see as being very
marketable.  If it was generalized, and pluginable to almost any
python program, that starts to have some real value.



True - being Pygame specific does greatly limit the market, I hadn't 
considered that. Thanks for the feedback!





Re: [pygame] New GUI

2008-01-22 Thread Patrick Mullen
> Show me a GUI builder that in fact produces clean, non-overloaded code,
> that does not break, if I manually change, add or remove stuff and so
> effectively eases development. I am not aware of any. If they do not
> match these criteria, but I am instead forced to stick with them (like
> e.g. VS.NET), they are useless.

Gui builders really ought to store the gui structure and then let the
coder write all the functionality hooks.  Like, oh, I don't know,
writing html.

Oh wait, even html designers get it wrong.  Oh well :)

Yeah, gui builders aren't all they are cracked up to be.  I am using
CEGUI for my project, and I used the gui builder for a while, until I
discovered that it randomly chose whether positions were stored as
percent of screen size or pixel size, and I had to redo the whole
thing manually.

Don't criticize Marcus for not talking to other gui developers about
their gui's problems, as far as I know, he was the first :)

For me, I probably wouldn't purchase a gui toolkit.  I have written
some in the past, and find writing guis rather enjoyable.  If I want
to actually work on a game rather than a gui, I will look at what's
out there and use it if I feel like it.  Both PGU and ocemp really
look like they control how I would write the game, which I think is
fine in PGU's case, it's meant to be sort of a quickstart, not a last
minute plugin.  CEGUI definitely has influenced how I have programmed
my game, but it has also saved me some time.

If I couldn't find a suitable free library though, I would probably
write my own toolkit as you have just done.  Trolltech has succeeded
with QT because is is usable in so many places for many different
operations, and is also used in one of the two most popular linux
desktops: KDE.  If it weren't for their liscensing though, I can't
help but think that GTK would not have done as well as it has.

For a toolkit that can only be used in pygame, ignoring things like
pyopengl, python-ogre, etc, such limited use I don't see as being very
marketable.  If it was generalized, and pluginable to almost any
python program, that starts to have some real value.


Re: [pygame] New GUI

2008-01-22 Thread Marcus von Appen
On, Tue Jan 22, 2008, Kamilche wrote:

> Marcus von Appen wrote:

[...] 
>> Kamilche, as I am the OcempGUI head, I'd like to hear where exactly your
>> problems and expectation were (and still are) regarding an user interface
>> system for your applications and games.
>> 
>> Regards
>> Marcus
> 
> Sure. I've attached a more thorough critique of some of the features in 
> Ocemp GUI, since you're interested.

Answering this will become a bit off topic, but as there are some more
people reading this list, I guess answering some general things here is
okay. The others will be answered off list.
 
> General and UI Observations
> 
> In mnemonics, '#' is used to denote the accelerator key, instead of '&' - 
> nonstandard. The mnemonics don't work with the right alt key, just the left 
> alt key.

Basically the mnemonic solution is bad at all, not only in OcempGUI, but
in any (major) toolkit I know: not fail-safe, unintuitive to use
(doubled mnemonic character for the real character) and using the same
mnemonic by accident on one form (due to a translation or an improper
test) causes usability problems. I am however sure, that there is no
standard, that declares '&' as mnemonic - just because other toolkits
use it, do I have to?

[]

> The borders and window styles are non standard, and unattractive.
> The font has hinting problems - a different font would be better.

What's the standard for window and border styles and where it is
defined? The default theme is in fact and without discussion far away
from what one would consider 'nice looking' and already on the TODO list
(for quite some time now...).

[...]
 
> By the end, you realize it requires 88 lines of code to create a simple 
> screen that doesn't DO anything. Ideally, a GUI builder should build it for 
> you and save the results to a file. In your code, you should just have to 
> say 'load thatscreen' and put in code to actually do program stuff.

Show me a GUI builder that in fact produces clean, non-overloaded code,
that does not break, if I manually change, add or remove stuff and so
effectively eases development. I am not aware of any. If they do not
match these criteria, but I am instead forced to stick with them (like
e.g. VS.NET), they are useless.
 
> I don't like having to execute a 'connect' for every button I want to 
> click. For standard controls and most situations, it's likely that the 
> parent of the button (the frame or the window) wants to handle the button's 
> click. Why do I have to code a connect for every little bit of 

So the Frame in which the Button resides handles its click. Clicking on
the frame will then be handled by its parent and so forth? What about
the topmost container then? To me that sounds like a weird
implementation, but feel free to provide me a handy example for such an
event handling..

> functionality? It would be better to have the 'obvious' cases automatically 
> handled, and reserve 'connect' and its ilk for global events that multiple 
> controls might want to handle.

So the button gets clicked and how should it know (or the Frame) what to
do? I still have to implement the callback. If I do it in the Button or
Frame, does not matter here as it's the same effort and does not lower
the work.
 
> There's more, but I don't have time to review it further. I hope you find 
> this partial list of limitations useful.

Sure. The feedback is highly appreciated.

Regards
Marcus


pgpX2HxaMV6vb.pgp
Description: PGP signature


Re: [pygame] New GUI

2008-01-22 Thread Marcus von Appen
On, Tue Jan 22, 2008, Jasper wrote:

> That's rather smug and presumptuous!  Frankly, you have /no idea/ how I 
> went about hunting for a python GUI toolkit, nor I would guess anyone else 
> you're disparaging.

No, it's exactly what I read in all places. I surely do not know, how
you went about hunting ..., but you do not explain it as well.
And your response, especially the last part seems to show, that such a
mail was necessary in order to get some valuable feedback, not? ;-)
 
> Moreover, you're knocking Kamilche for doing /precisely/ the same thing you 
> have done -- deciding you don't like any of the existing projects, and 
> starting your own.  Bravo!

I'm knocking _no one_. Instead I'm generalizing something, Kamilche
said. I had my reasons (no working pygame GUI at the time I started
writing OcempGUI) to write my own and surely Kamilche has his own. But
instead of anyone saying 'all available toolkits do not match my
criteria - there's none that works well enough for me', I'd like to hear
_what_ does not work, _why_ not and what the user/developer expects.
This would lower the work for both, the one who created the framework
(-> better framework) and the one who wants to use it (-> no
reimplementation needed).
 
> In your search for suggestions, you have also glibly passed over several 
> specific points people were looking for, e.g.
> - Do you have a nice GUI interface for laying out widgets?

On which layer? The development layer or visible components? For the
first, I would say yes, the second is somewhat ugly looking at the
current trends for visualization components (default Gtk+ 1/2 like).

> - Do you support transparent widgets?

Yes.

> - Do you have a framework for testing GUIs?

GUI testing using tests is a somewhat impossible task, if you think
about automated tests. If you mean some handy integration checks, please
be more specific on what you mean here. In general, there are no tests
for OcempGUI as an automated test usually does not behave like an end
user.

Regards
Marcus


pgpLETyeTlTmy.pgp
Description: PGP signature


Re: [pygame] New GUI

2008-01-22 Thread Casey Duncan

On Jan 22, 2008, at 12:27 PM, Kamilche wrote:


Casey Duncan wrote:

My own pygame dev being at the hobby-level, I can't say that I  
would have much interest in a commercial add-on to pygame myself.  
However, I would be interested in a high-level overview of what you  
found wrong with the existing guis and how your solution does not  
suffer from these perceived problems.
From a business standpoint, you might have trouble marketing such a  
thing in the face of the incumbent free solutions, regardless of  
how superior it might be. The dual-pricing scheme that Laura  
mentioned could help encourage adoption. Another option might be  
two versions, a bare-bones open source library that is functional  
but has few bells and whistles (perhaps lacking the gui builder),  
and a commercial upgrade that has everything anyone could want.



Yeah, that's true. I wish there had been something like mine  
available at the time I started my project - I would certainly have  
used it and saved myself lots of trouble.


When push comes to shove, the worst drawback of all the Pygame  
GUI's, is not having a GUI builder. It's offensive to me, to have to  
write code to draw a screen!


Interesting, I actually prefer that. I typically find code generation  
offensive. Ideally (In my mind) a GUI that had GUI builder would not  
require it. Funny how different people are sometimes 8^). That said, I  
want a system that is highly automated and "just works" for the  
typical case, not requiring reams of code and refactoring of my game  
just to get started.


I know lots of people would love this GUI I put out, and it  
existence would help promote the Python language as a whole. But  
you're right, there are lots of free GUI's out there. If I do end up  
making it available, I'll probably do something like 'free for free  
software projects, but if it's used in a commercial or shareware  
software project, there's a licensing fee of $100 per developer' or  
some such thing.


I myself am pretty sensitive about licenses. You could have the best  
software ever written, but if the licensing is too difficult for me to  
understand or has too many arbitrary restrictions I'll use something  
else or go write my own. Also licenses have a strong affect on whether  
I want to contribute to a project, regardless of whether I use it or  
not. What's my motivation to contribute to something that makes money  
for someone else? These are all things to consider.


I'm not sure whether or not to release it. There's a difference  
between 'Good enough to use in house' and 'Good enough to sell,  
complete with examples, documentation, and help.'


Indeed, releasing things is hard sometimes. Setting realistic  
expectations helps though, as does a demonstrated commitment to  
keeping the thing going over time.


What I REALLY want, is people to collaborate on it with me, adding  
enhancements and new controls. I suppose I could just get it out  
there in base form, but with the licensing in place, and see if  
enough people are inspired by it to make it take off.


Making a community around a project is very rewarding and a lot of  
work. It also requires you to give up some amount of ownership and  
control over your project. Opensource is the ultimate meritocracy  
though, if its useful, they will come.


Also with guis the barrier to entry (i.e., hello world and something  
useful) needs to be pretty low for it to catch on. It needs to not  
dictate how I write my whole game, it needs to be easy to integrate  
with an existing (py)game. It needs to make common things easy and  
hard things possible, etc. Mostly it needs to stay out of my way and  
let me do it the way that is right for me. Pygame itself is successful  
IMO largely because it gets these things right.


-Casey




Re: [pygame] New GUI

2008-01-22 Thread Juan José Alonso.
Jasper, my Gmail account say that your mail server is a spam sender. :-/

2008/1/22, Jasper <[EMAIL PROTECTED]>:
>
> That's rather smug and presumptuous!  Frankly, you have /no idea/ how I
> went about hunting for a python GUI toolkit, nor I would guess anyone
> else you're disparaging.
>
> Moreover, you're knocking Kamilche for doing /precisely/ the same thing
> you have done -- deciding you don't like any of the existing projects,
> and starting your own.  Bravo!
>
> In your search for suggestions, you have also glibly passed over several
> specific points people were looking for, e.g.
> - Do you have a nice GUI interface for laying out widgets?
> - Do you support transparent widgets?
> - Do you have a framework for testing GUIs?
>
> -Jasper
>
> Marcus von Appen wrote:
> > On, Tue Jan 22, 2008, Kamilche wrote:
> >
> > [Unhappiness about the existing GUIs]
> >
> > It's interesting to see that a lot of people tell some public
> > list/forum/whatever how unhappy they are with existing solutions, but do
> > not dare to get into touch with any of the solution developers or even
> > describe the problem areas they see somewhere.
> >
> > It explains, why there's so much lousy software on the market. People
> > just complaining, but not helping in any way.
> >
> > Kamilche, as I am the OcempGUI head, I'd like to hear where exactly your
> > problems and expectation were (and still are) regarding an user
> interface
> > system for your applications and games.
> >
> > Regards
> > Marcus
> >
>
>


-- 
Juan José Alonso. KarlsBerg.
eMail: [EMAIL PROTECTED]
MSN: [EMAIL PROTECTED]


Re: [pygame] New GUI

2008-01-22 Thread Kamilche

Casey Duncan wrote:

My own pygame dev being at the hobby-level, I can't say that I would 
have much interest in a commercial add-on to pygame myself. However, I 
would be interested in a high-level overview of what you found wrong 
with the existing guis and how your solution does not suffer from these 
perceived problems.


 From a business standpoint, you might have trouble marketing such a 
thing in the face of the incumbent free solutions, regardless of how 
superior it might be. The dual-pricing scheme that Laura mentioned could 
help encourage adoption. Another option might be two versions, a 
bare-bones open source library that is functional but has few bells and 
whistles (perhaps lacking the gui builder), and a commercial upgrade 
that has everything anyone could want.



Yeah, that's true. I wish there had been something like mine available 
at the time I started my project - I would certainly have used it and 
saved myself lots of trouble.


When push comes to shove, the worst drawback of all the Pygame GUI's, is 
not having a GUI builder. It's offensive to me, to have to write code to 
draw a screen!


I know lots of people would love this GUI I put out, and it existence 
would help promote the Python language as a whole. But you're right, 
there are lots of free GUI's out there. If I do end up making it 
available, I'll probably do something like 'free for free software 
projects, but if it's used in a commercial or shareware software 
project, there's a licensing fee of $100 per developer' or some such thing.


I'm not sure whether or not to release it. There's a difference between 
'Good enough to use in house' and 'Good enough to sell, complete with 
examples, documentation, and help.'


What I REALLY want, is people to collaborate on it with me, adding 
enhancements and new controls. I suppose I could just get it out there 
in base form, but with the licensing in place, and see if enough people 
are inspired by it to make it take off.


--Kamilche


Re: [pygame] New GUI

2008-01-22 Thread Kamilche

Marcus von Appen wrote:

On, Tue Jan 22, 2008, Kamilche wrote:

[Unhappiness about the existing GUIs]

It's interesting to see that a lot of people tell some public
list/forum/whatever how unhappy they are with existing solutions, but do
not dare to get into touch with any of the solution developers or even
describe the problem areas they see somewhere.

It explains, why there's so much lousy software on the market. People
just complaining, but not helping in any way.

Kamilche, as I am the OcempGUI head, I'd like to hear where exactly your
problems and expectation were (and still are) regarding an user interface
system for your applications and games.

Regards
Marcus


Sure. I've attached a more thorough critique of some of the features in 
Ocemp GUI, since you're interested.


General and UI Observations

In mnemonics, '#' is used to denote the accelerator key, instead of '&' 
- nonstandard. The mnemonics don't work with the right alt key, just the 
left alt key.


In radio buttons, multiline text is centered by default. It really 
should be left aligned.


There'e no 'pygame.quit' at the end, so after running, the examples hang 
and you have to manually close the DOS box. This makes them hang in IDLE 
as well.


The borders and window styles are non standard, and unattractive.
The font has hinting problems - a different font would be better.

There's no selection capability on the text edit boxes - you can't drag 
your mouse to select text, have it highlight, and do standard text 
editing on it.


Many examples are so simple as to be useless, such as the 'event.py' 
example. An event showing a button actually executing code when clicked 
would be good, instead of showing a 'picture of a button' in one example 
and showing an 'event that's raised' in another example.


In the 'example.py' application, the 'box' entry shows 4 items placed on 
top of each other. Clicking on the background items brings them to the 
foreground, and they never go back. Was that intentional? Why are they 
changing zorder? This is not obvious to me.


In the file dialog example, clicking '..' when at the top doesn't bring 
you to the list of drives. You have to manually overtype drive C with 
drive D using the limited editing capability allowed in the folder name box.


The image map example suffers from performance problems. Just moving the 
mouse over the imagemap box causes events to queue up and get rendered 
so slowly, you quickly wonder if the example is broken. A single swish 
of the mouse from left to right, and you have to wait 3 seconds for the 
display to catch up.


The sliders suffer a performance problem as well. Dragging the sliders 
isn't instant, you have to wait for it to catch up to the mouse.


The 'hello world' examples have an unpainted area to the right of the 
window, that is picking up whatever was underneath when the window was 
created.


The main window is not resizable.

The status bar is not recognizable as such, it looks like a frame with 
text in it. It needs to look like a status bar, and have multiple panels 
you can set.


The toggle buttons don't look any different than depressed normal 
buttons. Toggle buttons usually look significantly different than normal 
buttons, by such hints as having a different shape, different shading, 
or graphics on them as well.


There are no examples of an FPS indicator, a global event that several 
controls might want to handle.


The tooltip makes no attempt to stay on screen - it gets cut off on the 
right.


The window example is too small - it shows a single button that you can 
click. I would like to see window examples throughout the examples, not 
just this unrealistically simple example.


No fullscreen mode available.

No 3d option for the text.

No menus.

No way to enlarge/shrink controls when the window size changes.

Code Observations
-
I don't have time to critique all the example code, so I just ran 
through the 'radio.py' example.


'from ocempgui.widgets import *' - pollutes namespace

After creating a table, you must set the alignment explicitly for each 
row. Why not have the most common alignment, which is probably 
align_top, the default?


table.set_row_align (0, ALIGN_TOP)
table.set_row_align (1, ALIGN_TOP)

When creating radio buttons in a loop, you must specify the group 
manually with an if switch. Why not have all radio buttons that belong 
to the same parent, automatically in the same group?


btn = RadioButton (s, group)
if i == 0:
group = btn

By the end, you realize it requires 88 lines of code to create a simple 
screen that doesn't DO anything. Ideally, a GUI builder should build it 
for you and save the results to a file. In your code, you should just 
have to say 'load thatscreen' and put in code to actually do program stuff.


I don't like having to execute a 'connect' for every button I want to 
click. For standard controls and most si

Re: [pygame] New GUI

2008-01-22 Thread Jasper
That's rather smug and presumptuous!  Frankly, you have /no idea/ how I 
went about hunting for a python GUI toolkit, nor I would guess anyone 
else you're disparaging.


Moreover, you're knocking Kamilche for doing /precisely/ the same thing 
you have done -- deciding you don't like any of the existing projects, 
and starting your own.  Bravo!


In your search for suggestions, you have also glibly passed over several 
specific points people were looking for, e.g.

- Do you have a nice GUI interface for laying out widgets?
- Do you support transparent widgets?
- Do you have a framework for testing GUIs?

-Jasper

Marcus von Appen wrote:

On, Tue Jan 22, 2008, Kamilche wrote:

[Unhappiness about the existing GUIs]

It's interesting to see that a lot of people tell some public
list/forum/whatever how unhappy they are with existing solutions, but do
not dare to get into touch with any of the solution developers or even
describe the problem areas they see somewhere.

It explains, why there's so much lousy software on the market. People
just complaining, but not helping in any way.

Kamilche, as I am the OcempGUI head, I'd like to hear where exactly your
problems and expectation were (and still are) regarding an user interface
system for your applications and games.

Regards
Marcus
  




Re: [pygame] New GUI

2008-01-22 Thread Marcus von Appen
On, Tue Jan 22, 2008, Kamilche wrote:

[Unhappiness about the existing GUIs]

It's interesting to see that a lot of people tell some public
list/forum/whatever how unhappy they are with existing solutions, but do
not dare to get into touch with any of the solution developers or even
describe the problem areas they see somewhere.

It explains, why there's so much lousy software on the market. People
just complaining, but not helping in any way.

Kamilche, as I am the OcempGUI head, I'd like to hear where exactly your
problems and expectation were (and still are) regarding an user interface
system for your applications and games.

Regards
Marcus


pgpCPZG7g4J1e.pgp
Description: PGP signature


Re: [pygame] New GUI

2008-01-22 Thread Jasper
I've been unhappy with what's available as well (I'm currently using 
PyUI, with more than a few hacks).  I'd happily pay for a complete, 
reasonably architected, and supported pygame GUI.  Especially if I could 
see/tweak the source, and the license allowed me to sell games using 
it.  And double especially if some thought had gone into a GUI testing 
framework.


-Jasper

Kamilche wrote:
I've looked at wxPython, PGU, Ocemp GUI, PyUI, and other GUI toolkits 
available for Python. Each of them had, to my eyes, severe flaws that 
prevented me from using them for my apps. Therefore, I've spent many 
months developing my own GUI and event system.


The GUI has windowing, translucency, buttons, menus, slider bars, 
frames, and more. It has a drag n drop GUI builder. The controls can 
be 'anchored', meaning when you resize the window, the controls resize 
automatically as well. It has an easy event handling system similar to 
VB6, but also the capability for controls to handle 'global' events.


I'm using it for a couple of commercial apps I'm making. I'm 
considering making the GUI itself available commercially, as well. I'm 
writing this email to gauge the level of interest in it.


If you're interested, respond in this thread. Pricing is an unknown - 
if you have thoughts in that area, I'd appreciate hearing them.


--Kamilche






Re: [pygame] New GUI

2008-01-22 Thread FT
Hi Kamilche

Being a blind user and the need for an all text version. It would be
nice to have something that is complete text oriented. I have not tried any
for the screen does not allow the screen reader to scan unless it is
standard Window Classic with classic colors and standard buttons and menus.

A text version that has menus that say the same things as fancy buttons
and such do. The menus must be of the standard windows style as I mentioned.
Search functions and such as a part of menus

That is what is ideal for a blind user.

Bruce


I've looked at wxPython, PGU, Ocemp GUI, PyUI, and other GUI toolkits
available for Python. Each of them had, to my eyes, severe flaws that
prevented me from using them for my apps. Therefore, I've spent many
months developing my own GUI and event system.

The GUI has windowing, translucency, buttons, menus, slider bars,
frames, and more. It has a drag n drop GUI builder. The controls can be
'anchored', meaning when you resize the window, the controls resize
automatically as well. It has an easy event handling system similar to
VB6, but also the capability for controls to handle 'global' events.

I'm using it for a couple of commercial apps I'm making. I'm considering
making the GUI itself available commercially, as well. I'm writing this
email to gauge the level of interest in it.

If you're interested, respond in this thread. Pricing is an unknown - if
you have thoughts in that area, I'd appreciate hearing them.

--Kamilche



Re: [pygame] New GUI

2008-01-22 Thread Casey Duncan

On Jan 22, 2008, at 8:00 AM, Kamilche wrote:

I've looked at wxPython, PGU, Ocemp GUI, PyUI, and other GUI  
toolkits available for Python. Each of them had, to my eyes, severe  
flaws that prevented me from using them for my apps. Therefore, I've  
spent many months developing my own GUI and event system.


The GUI has windowing, translucency, buttons, menus, slider bars,  
frames, and more. It has a drag n drop GUI builder. The controls can  
be 'anchored', meaning when you resize the window, the controls  
resize automatically as well. It has an easy event handling system  
similar to VB6, but also the capability for controls to handle  
'global' events.


I'm using it for a couple of commercial apps I'm making. I'm  
considering making the GUI itself available commercially, as well.  
I'm writing this email to gauge the level of interest in it.


If you're interested, respond in this thread. Pricing is an unknown  
- if you have thoughts in that area, I'd appreciate hearing them.


My own pygame dev being at the hobby-level, I can't say that I would  
have much interest in a commercial add-on to pygame myself. However, I  
would be interested in a high-level overview of what you found wrong  
with the existing guis and how your solution does not suffer from  
these perceived problems.


From a business standpoint, you might have trouble marketing such a  
thing in the face of the incumbent free solutions, regardless of how  
superior it might be. The dual-pricing scheme that Laura mentioned  
could help encourage adoption. Another option might be two versions, a  
bare-bones open source library that is functional but has few bells  
and whistles (perhaps lacking the gui builder), and a commercial  
upgrade that has everything anyone could want.


-Casey


Re: [pygame] New GUI

2008-01-22 Thread Laura Creighton
In a message of Tue, 22 Jan 2008 08:00:49 PST, Kamilche writes:

>If you're interested, respond in this thread. Pricing is an unknown - if 
>you have thoughts in that area, I'd appreciate hearing them.
>
>--Kamilche

Trolltech has had great luck with a dual-pricing model for its
Qt toolkit.  Free for GPL'd  products, and cost money for 
commercial use.  see: http://trolltech.com/products/qt/licenses
pricing structure for Qt. especially 
http://trolltech.com/products/qt/licenses/licensing/opensource/

There are also discounts for small business, and educational and academic
use licenses.

Laura


[pygame] New GUI

2008-01-22 Thread Kamilche
I've looked at wxPython, PGU, Ocemp GUI, PyUI, and other GUI toolkits 
available for Python. Each of them had, to my eyes, severe flaws that 
prevented me from using them for my apps. Therefore, I've spent many 
months developing my own GUI and event system.


The GUI has windowing, translucency, buttons, menus, slider bars, 
frames, and more. It has a drag n drop GUI builder. The controls can be 
'anchored', meaning when you resize the window, the controls resize 
automatically as well. It has an easy event handling system similar to 
VB6, but also the capability for controls to handle 'global' events.


I'm using it for a couple of commercial apps I'm making. I'm considering 
making the GUI itself available commercially, as well. I'm writing this 
email to gauge the level of interest in it.


If you're interested, respond in this thread. Pricing is an unknown - if 
you have thoughts in that area, I'd appreciate hearing them.


--Kamilche