Cross Platform GUI Development
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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