Gui Mod ?

BlitzMax Forums/BlitzMax Programming/Gui Mod ?

Sarge(Posted 2004) [#1]
Is it true they are going to make a non gui window system for blitzmax and if your not happy would you like a window gui system to be made ?


Warren(Posted 2004) [#2]
Making a non-native GUI system would be suicide. I doubt they are that stupid...


Sarge(Posted 2004) [#3]
It say's here thay are using FLTK for the gui - http://www.blitzmax.com/Community/posts.php?topic=42033


RiK(Posted 2004) [#4]
sounds like a Blitz+ mod is in the works too.


Robert(Posted 2004) [#5]
Making a non-native GUI system would be suicide. I doubt they are that stupid...


Explain.


Agamer(Posted 2004) [#6]
Yeh, please exsplain, how would it be suicide, it would mean intergrity could be kept across platforms?

BUt I might be wrong?


Kanati(Posted 2004) [#7]
It would be fine and even preferable for in-game interfaces. Apps on the other hand need to be written in their native OS interface. Otherwise they just look hokey.

But for games... FLTK looks more than adequate.


Warren(Posted 2004) [#8]
I think you misunderstand me. If BRL rolls their own GUI solution and we're expected to use that instead of the native controls in whatever OS we're running on, that's suicide. If they use something like wxWindows or FLTK, that's fine.

I don't want to explain further as it should be clearly obvious why using non-standard UI controls would be a mistake.


skidracer(Posted 2004) [#9]
Heh, FLTK would not be fine, it is the Linux solution even though the module does run on windows and mac but looks totally awful compared to native XP/AQUA widgets.


Warren(Posted 2004) [#10]
Oh, I wasn't familiar with FLTK, sorry. wxWindows then. Whatever gets used MUST use native widgets. That's my point...


Sarge(Posted 2004) [#11]
I think if they were to make a gui system then make 1 for each platform using each of the platforms gui systems not someother gui system


Kanati(Posted 2004) [#12]
For in-game gui's though a single (skinnable maybe?) gui system would be preferable. Then you could ensure consistency across platforms.

But for desktop apps... definitely native.


Sarge(Posted 2004) [#13]
yes that is right for a game gui system i would prefer a customized gui system but for apps say for instance i want to make a eg. map editor or something i would rather use windows gui system


Bot Builder(Posted 2004) [#14]
The coolest solution would be if mark made a command/type set and then implemented it using all three native guis. It could even be possible to have some "core" code that is universal among the 3 guis (like, event handling systems, abstract types declaring main types). In each of the much larger, platform specific parts, the methods are defined, event calls are setup, and the variables are set. Since Oses will most likely have very diffferently sized components, we will need ways to know how big various parts of a component are, or how large the font is. If we want to make cross platform apps we will have to pay attention to these properties and use them in figuring out the layout of our windows. Examples of a possible class:


In the "Win32.bmx", a checkbox class would be created that derives from CheckBoxBase. Then, all you have to do is code the stuff that actually interacts with the native gui :0

Not sure why, but I was inspired to write a big code example in the browser 0_o.


Warren(Posted 2004) [#15]
Bot Builder

All they really need to do is look at wxWindows in depth and do that. The research has already been done (including how to handle the differently sized controls - via "sizers").


Bot Builder(Posted 2004) [#16]
Ah. Huh. Never used wxWindows. Sounds nice.


Warren(Posted 2004) [#17]
Well, "nice" is in the eye of the beholder I guess. :) It works well enough. It's not pretty at times, but that's what you get if you want it to be cross platform...


Sarge(Posted 2004) [#18]
WxWindows is not bad but you need to do it though c++ into blitzmax which c++ is a good sign for me.


Warren(Posted 2004) [#19]
I'm not saying they should use wxWindows, I'm saying they should do it LIKE wxWindows. That level of abstraction (or higher).


ImaginaryHuman(Posted 2004) [#20]
If I remember, Java has some kind of cross-platform GUI system which, unless I have my wires crossed, would show a GUI using the native GUI style rather than it's own, even though behind the scenes it still had a single interface for the programmer. I might be wrong, but that would be cool. I wouldn't *prefer* to have some `non-standard-looking` GUI in amongst everything else looking native. Still .. if the system is skinnable then probably it can be made to look like the native GUI.


Warren(Posted 2004) [#21]
It doesn't need to be skinnable, it just needs to create native controls.

www.wxwidgets.org


Robert(Posted 2004) [#22]
@skidracer

Why not use QT in Linux? That way the app will look correct for the current KDE theme.


dan_upright(Posted 2004) [#23]
Why not use QT in Linux? That way the app will look correct for the current KDE theme.
doesn't qt cost about a trillion quid per app though?


FlameDuck(Posted 2004) [#24]
I don't want to explain further as it should be clearly obvious why using non-standard UI controls would be a mistake.
Well Microsoft seem to be rather successful depite using non-standard UI controls.

doesn't qt cost about a trillion quid per app though?
Yeah, and besides, nobody uses KDE anyway. :o>


Warren(Posted 2004) [#25]
Well Microsoft seem to be rather successful depite using non-standard UI controls.

And that means ... what? That using standard controls for each OS is a bad idea?

Other than throwing out yet another flippant comment, what are you trying to say?


flying willy(Posted 2004) [#26]
Os standard controls only, please.

I do not like the idea of some freaky 3rd party look unique to blitzmax.


ImaginaryHuman(Posted 2004) [#27]
For me, best of all worlds would be whatever simple single interface in BlitzMax and then completely customizable gui system that EITHER can look like some custom theme or like the native gui also. Actually, I have my own ideas about how GUI's should work but that's another story and I would be happy with the kind of support I just mentioned. (and have it run on OpenGL displays too)


Dreamora(Posted 2004) [#28]
For the start a crossplattform event module would be enough to create a gui system on top of it ...


Beaker(Posted 2004) [#29]
wxWidgets looks good to me.


Warren(Posted 2004) [#30]
I think some people are confusing "in game" gui and the gui we're talking about. "In game" stuff can be whatever you want it to be. Once you step outside of the game window, it's important to use native controls.


flying willy(Posted 2004) [#31]
I just want to make a button which is native looking across all computers and operating systems. Thank you. I will also pay for this of course.

I will not pay for garbage custom widgets that look like they are from some kind of science fiction OS, drawn by a spastic monkey.


ImaginaryHuman(Posted 2004) [#32]
lol.

Interesting viewpoint though - that game gui's have to always be separate from and have nothing to do with the native gui? Ie, one standard for the context of being an `application` and one standard for the context of being a `game`. Why?


Kanati(Posted 2004) [#33]
Not so much that they have to be... but that they CAN be. You don't EXPECT a game to look the same graphically as your operating system though there are some exceptions to that (I think Civ2 ran windowed, but I can't remember). But ALL applications or windowed programs are expected to look like other windowed programs on the desktop. When you load up Word, you expect it to look the same as any other windows program.


teamonkey(Posted 2004) [#34]
Can native widgets be rendered to an OpenGL context? Not in Windows they can't. You can't use GTK (and hence wxWindows) to render to OpenGL under X Windows either. Cocoa might be different, I don't know.

If you want an in-game GUI you can't use native widgets. If you want native controls they'll have to be in a separate window.


dynaman(Posted 2004) [#35]
> and one standard for the context of being a `game`. Why?

Mostly for immersion. A gui in a star trek game better look star trekkyish. One for a WWII game should not look like the native system either.


ImaginaryHuman(Posted 2004) [#36]
do you expect app gui's to look the same or have you COME to expect it?


flying willy(Posted 2004) [#37]
It's vital that applications look and *BEHAVE* like the host os scheme.

This will enable users of your program to be immediately familiar with it, and also give them more time to learn your app, rather than learning the gui.

This means more shareware sales if you're in that biz.


Sarge(Posted 2004) [#38]
Native gui can be rendered to a gl window as you might have seen multi applications do it i also this api is the best way to do it


innerspace(Posted 2004) [#39]
that's the problem, compared to windows from linux, on linux we have so many widget sets to choose from, some GPL others LGPL there must be hundreds of the stuppid things, now on windows if you remove the ports from linux, you only have 1 winapi widget set to deal with.

The ideal for this is, you build a language to interface 'a' widget set irrespective of which widget your using, then take that way of accessing the gui and change the code acordingly behind it to work on which ever platform.

But what ever you do, don't use an index system for widget commands/windows etc. use 'real' pointers that are being used.