Cross Platform GUI Development

2014-03-23 Thread Jeroen Bollen
Are there any tools to do this at all in Digitalmars D? All 
current libraries seem to be outdated, but GTKD. GTK on it's end 
is a pain to bundle which is enough to not consider it cross 
platform at all.


Re: Cross Platform GUI Development

2014-03-23 Thread Gary Willoughby

On Sunday, 23 March 2014 at 12:34:10 UTC, Jeroen Bollen wrote:
Are there any tools to do this at all in Digitalmars D? All 
current libraries seem to be outdated, but GTKD. GTK on it's 
end is a pain to bundle which is enough to not consider it 
cross platform at all.


See: 
http://forum.dlang.org/thread/twlshfdigsfkphyvr...@forum.dlang.org#post-zetmofrvhgdocnsmnxip:40forum.dlang.org


Re: Cross Platform GUI Development

2014-03-23 Thread Jeroen Bollen

On Sunday, 23 March 2014 at 16:43:31 UTC, Gary Willoughby wrote:

On Sunday, 23 March 2014 at 12:34:10 UTC, Jeroen Bollen wrote:
Are there any tools to do this at all in Digitalmars D? All 
current libraries seem to be outdated, but GTKD. GTK on it's 
end is a pain to bundle which is enough to not consider it 
cross platform at all.


See: 
http://forum.dlang.org/thread/twlshfdigsfkphyvr...@forum.dlang.org#post-zetmofrvhgdocnsmnxip:40forum.dlang.org


I noticed Derelict also has bindings, is there a difference? 
Also, what requirements are still required for every OS?


Re: Cross Platform GUI Development

2014-03-23 Thread Gary Willoughby

On Sunday, 23 March 2014 at 17:27:03 UTC, Jeroen Bollen wrote:

On Sunday, 23 March 2014 at 16:43:31 UTC, Gary Willoughby wrote:

On Sunday, 23 March 2014 at 12:34:10 UTC, Jeroen Bollen wrote:
Are there any tools to do this at all in Digitalmars D? All 
current libraries seem to be outdated, but GTKD. GTK on it's 
end is a pain to bundle which is enough to not consider it 
cross platform at all.


See: 
http://forum.dlang.org/thread/twlshfdigsfkphyvr...@forum.dlang.org#post-zetmofrvhgdocnsmnxip:40forum.dlang.org


I noticed Derelict also has bindings, is there a difference? 
Also, what requirements are still required for every OS?


The only dependencies for my Tkd GUI framework is the Tcl/Tk 
libraries on all platforms. What i want to do though is compile 
Tcl/Tk myself and provide DLL's so that dependency is removed for 
Windows. Posix OSes usually come with Tcl/Tk already installed.


Re: Cross Platform GUI Development

2014-03-23 Thread Jeroen Bollen

On Sunday, 23 March 2014 at 19:03:54 UTC, Gary Willoughby wrote:

On Sunday, 23 March 2014 at 17:27:03 UTC, Jeroen Bollen wrote:
On Sunday, 23 March 2014 at 16:43:31 UTC, Gary Willoughby 
wrote:

On Sunday, 23 March 2014 at 12:34:10 UTC, Jeroen Bollen wrote:
Are there any tools to do this at all in Digitalmars D? All 
current libraries seem to be outdated, but GTKD. GTK on it's 
end is a pain to bundle which is enough to not consider it 
cross platform at all.


See: 
http://forum.dlang.org/thread/twlshfdigsfkphyvr...@forum.dlang.org#post-zetmofrvhgdocnsmnxip:40forum.dlang.org


I noticed Derelict also has bindings, is there a difference? 
Also, what requirements are still required for every OS?


The only dependencies for my Tkd GUI framework is the Tcl/Tk 
libraries on all platforms. What i want to do though is compile 
Tcl/Tk myself and provide DLL's so that dependency is removed 
for Windows. Posix OSes usually come with Tcl/Tk already 
installed.


I think I'll be using that then, cheers. :D


Re: Cross Platform GUI Development

2014-03-23 Thread Denis Shelomovskij

23.03.2014 16:34, Jeroen Bollen пишет:

Are there any tools to do this at all in Digitalmars D? All current
libraries seem to be outdated, but GTKD. GTK on it's end is a pain to
bundle which is enough to not consider it cross platform at all.


First, I don't understand what is the problem with GTK?

Also there is DWT, but I already have spent some time on it and I'd like 
to suggest to not use it as its sources is a mess.


As for cross-platform GUI app, I'd suggest to use own native GUI library 
for every platform as it looks like an easiest and the most convenient 
for the user of your program approach.


The problem is it's too common to connect application login and GUI, so 
for my personal purposes I created MetaUI [1] which allow such 
intermediate layer and you only create native GUI elements, place it 
somewhere and connect with logic elements from MetaUI, see examples. As 
a native GUI I use GTK (mainly my own fast, correct and very usable 
bindings [2]) over MetaUI for now, but when I will have more time I will 
use DGui on Windows just to decrease program installation size. The only 
problem is a Mac OS X for which I don't know working GUI library (I 
don't target it for now, GTK may work but with PITA), but with MetaUI it 
shouldn't be a problem to use some C one as the only thing you need is a 
way to connect C widgets to D logic controls.


[1] https://bitbucket.org/denis-sh/metaui
[2] https://bitbucket.org/denis-sh/gtkd
[3] https://bitbucket.org/dgui/dgui

--
Денис В. Шеломовский
Denis V. Shelomovskij


Re: Cross Platform GUI Development

2014-03-23 Thread Jeroen Bollen
On Sunday, 23 March 2014 at 19:56:47 UTC, Denis Shelomovskij 
wrote:

23.03.2014 16:34, Jeroen Bollen пишет:
Are there any tools to do this at all in Digitalmars D? All 
current
libraries seem to be outdated, but GTKD. GTK on it's end is a 
pain to
bundle which is enough to not consider it cross platform at 
all.


First, I don't understand what is the problem with GTK?

Also there is DWT, but I already have spent some time on it and 
I'd like to suggest to not use it as its sources is a mess.


As for cross-platform GUI app, I'd suggest to use own native 
GUI library for every platform as it looks like an easiest and 
the most convenient for the user of your program approach.


The problem is it's too common to connect application login and 
GUI, so for my personal purposes I created MetaUI [1] which 
allow such intermediate layer and you only create native GUI 
elements, place it somewhere and connect with logic elements 
from MetaUI, see examples. As a native GUI I use GTK (mainly my 
own fast, correct and very usable bindings [2]) over MetaUI for 
now, but when I will have more time I will use DGui on Windows 
just to decrease program installation size. The only problem is 
a Mac OS X for which I don't know working GUI library (I don't 
target it for now, GTK may work but with PITA), but with MetaUI 
it shouldn't be a problem to use some C one as the only thing 
you need is a way to connect C widgets to D logic controls.


[1] https://bitbucket.org/denis-sh/metaui
[2] https://bitbucket.org/denis-sh/gtkd
[3] https://bitbucket.org/dgui/dgui


The main problem I have with GTK is that it's a mess to setup on 
Windows for the end user.


Re: Cross Platform GUI Development

2014-03-23 Thread Denis Shelomovskij

24.03.2014 0:03, Jeroen Bollen пишет:

On Sunday, 23 March 2014 at 19:56:47 UTC, Denis Shelomovskij wrote:

23.03.2014 16:34, Jeroen Bollen пишет:

Are there any tools to do this at all in Digitalmars D? All current
libraries seem to be outdated, but GTKD. GTK on it's end is a pain to
bundle which is enough to not consider it cross platform at all.


First, I don't understand what is the problem with GTK?

...


The main problem I have with GTK is that it's a mess to setup on Windows
for the end user.


And you shouldn't ever do it. Just bundle GTK with your program and be 
happy. Here is what I use (~4 MiB):

http://deoma-cmd.ru/files/other/GTK-3-redist.7z
(if you are OK with third GTK version)

These files just should be in your target installation directory.

--
Денис В. Шеломовский
Denis V. Shelomovskij


Re: Cross Platform GUI Development

2014-03-24 Thread Gary Willoughby

On Sunday, 23 March 2014 at 20:04:00 UTC, Jeroen Bollen wrote:
The main problem I have with GTK is that it's a mess to setup 
on Windows for the end user.


The only real problem is the actual installation of GTK onto the 
Windows user's machine as some people ask "why do i need to 
install this weird GTK thing for this app to work?". But... you 
can 'hide' the installation of GTK on Windows as part of the main 
application's installer because the Windows version of GTK has a 
silent install options.


http://gtk-win.sourceforge.net/home/index.php/Main/EmbeddingGTK


Re: Cross Platform GUI Development

2014-03-24 Thread Gary Willoughby
On Sunday, 23 March 2014 at 20:23:01 UTC, Denis Shelomovskij 
wrote:
Just bundle GTK with your program and be happy. Here is what I 
use (~4 MiB):

http://deoma-cmd.ru/files/other/GTK-3-redist.7z
(if you are OK with third GTK version)

These files just should be in your target installation 
directory.


or do this ^ :)


Re: Cross Platform GUI Development

2014-03-24 Thread Denis Shelomovskij

24.03.2014 13:04, Gary Willoughby пишет:

On Sunday, 23 March 2014 at 20:04:00 UTC, Jeroen Bollen wrote:

The main problem I have with GTK is that it's a mess to setup on
Windows for the end user.


The only real problem is the actual installation of GTK onto the Windows
user's machine as some people ask "why do i need to install this weird
GTK thing for this app to work?". But... you can 'hide' the installation
of GTK on Windows as part of the main application's installer because
the Windows version of GTK has a silent install options.

http://gtk-win.sourceforge.net/home/index.php/Main/EmbeddingGTK


Note different programs may require different GTK versions and GTK isn't 
backward compatible on Windows because of some bugs (e.g. 2.16 is the 
last one with working OpenGL using GtkGLExt from 2.x), so it's usually 
just copied in application's folder.


--
Денис В. Шеломовский
Denis V. Shelomovskij


Re: Cross Platform GUI Development

2014-03-24 Thread Jacob Carlborg

On Sunday, 23 March 2014 at 12:34:10 UTC, Jeroen Bollen wrote:
Are there any tools to do this at all in Digitalmars D? All 
current libraries seem to be outdated, but GTKD. GTK on it's 
end is a pain to bundle which is enough to not consider it 
cross platform at all.


DWT [1] is a native cross-platform GUI for Windows and Linux (OS 
X is being worked on). It's a port of the Java library SWT [2]. 
It doesn't have any dependencies except for the system libraries. 
On Linux GTK+ is used.


[1] https://github.com/d-widget-toolkit/dwt
[2] http://www.eclipse.org/swt/

--
/Jacob Carlborg


Re: Cross Platform GUI Development

2014-03-24 Thread Jacob Carlborg
On Sunday, 23 March 2014 at 19:56:47 UTC, Denis Shelomovskij 
wrote:



First, I don't understand what is the problem with GTK?


I looks ugly on both Windows and Mac OS X. It's also an extra 
dependency.


Also there is DWT, but I already have spent some time on it and 
I'd like to suggest to not use it as its sources is a mess.


What's wrong with DWT?

As for cross-platform GUI app, I'd suggest to use own native 
GUI library for every platform as it looks like an easiest and 
the most convenient for the user of your program approach.


I think it's good to have a cross-platform GUI for the basic 
stuff that's available on all platforms. Like buttons, windows 
and so on. Then use the native GUI when platform specific widgets 
are needed.


The problem is it's too common to connect application login and 
GUI, so for my personal purposes I created MetaUI [1] which 
allow such intermediate layer and you only create native GUI 
elements, place it somewhere and connect with logic elements 
from MetaUI, see examples. As a native GUI I use GTK (mainly my 
own fast, correct and very usable bindings [2]) over MetaUI for 
now, but when I will have more time I will use DGui on Windows 
just to decrease program installation size.


The only problem is a Mac OS X for which I don't know working 
GUI library (I don't target it for now, GTK may work but with 
PITA)


On OS X, anything that's not native Cocoa is not acceptable.

--
/Jacob Carlborg



Re: Cross Platform GUI Development

2014-03-24 Thread Ola Fosheim Grøstad

On Monday, 24 March 2014 at 12:06:25 UTC, Jacob Carlborg wrote:

On OS X, anything that's not native Cocoa is not acceptable.


Ableton Live does not look like Cocoa, but is the most popular 
sequencer on OS-X.


Re: Cross Platform GUI Development

2014-03-24 Thread John Colvin
On Monday, 24 March 2014 at 12:42:46 UTC, Ola Fosheim Grøstad 
wrote:

On Monday, 24 March 2014 at 12:06:25 UTC, Jacob Carlborg wrote:

On OS X, anything that's not native Cocoa is not acceptable.


Ableton Live does not look like Cocoa, but is the most popular 
sequencer on OS-X.


Ableton is the sort of program that you make fullscreen and then 
work fully inside of. You don't interact with the OS GUIs much. 
Most applications use a bit more integration.


Re: Cross Platform GUI Development

2014-03-24 Thread Jacob Carlborg
On 24/03/14 13:42, "Ola Fosheim Grøstad" 
" wrote:



Ableton Live does not look like Cocoa, but is the most popular sequencer
on OS-X.


I was mostly referring to GTK+ not being acceptable.

--
/Jacob Carlborg