Thread overview
GtkD 1.5 is released.
Aug 27, 2011
Mike Wey
Aug 27, 2011
Denis Shelomovskij
Sep 22, 2011
alex
Aug 27, 2011
dsimcha
Aug 27, 2011
Mike Wey
Aug 28, 2011
Mike Wey
Aug 28, 2011
Damian Ziemba
Sep 01, 2011
Mike James
Sep 01, 2011
Mike Wey
August 27, 2011
GtkD is a D binding and OO wrapper of Gtk+ and is released on the LGPL
license.

New in this Release:
* wraps GTK+ 2.22.x series api (and relative libraries: glib, cairo, pango, etc.)
* Improved memory management.
* Implements GtkBuildable.
* Brought Gstreamer up to date with the rest of the bindings, including 64bits support.

GtkD 1.4 is now available, get it from dsource:
http://www.dsource.org/projects/gtkd/

-- 
Mike Wey
August 27, 2011
Can anybody use GtkD with Win32 dmd 2.054+OPTLINK?
Some time ago I posted message "Building GtkD app on Win32 results in 111 MiB file mostly from zeroes (compressed size - 324 KiB)", but no solution was found. I'll repeat some info:

Files (dmd 2.054 compiled) are here:
http://deoma-cmd.ru/files/other/huge-build.zip

library.lib:  Zero bytes:   3_505_980 of  16_175_616 (21.67%)
main.obj:     Zero bytes:         248 of         832 (29.81%)

After linking with OPTLINK:
testGtkD.exe: Zero bytes: 115_666_207 of 116_759_068 (99.06%)
August 27, 2011
On 8/27/2011 11:29 AM, Mike Wey wrote:
> GtkD is a D binding and OO wrapper of Gtk+ and is released on the LGPL
> license.
>
> New in this Release:
> * wraps GTK+ 2.22.x series api (and relative libraries: glib, cairo,
> pango, etc.)
> * Improved memory management.
> * Implements GtkBuildable.
> * Brought Gstreamer up to date with the rest of the bindings, including
> 64bits support.
>
> GtkD 1.4 is now available, get it from dsource:
> http://www.dsource.org/projects/gtkd/
>


Nice!  A few issues, though:

Small feature request:  Could the GNUMakeFile include a multilib option that builds both 32-bit and 64-bit libs on a 64-bit system?  I run performance-critical scientific code on 64-bit Linux, and use GtkD to plot results.  If I don't need 64 bits of address space and the code uses a lot of pointers, I sometimes compile it as 32-bit to make it more cache efficient.  I've been manually editing the make file to compile both 32- and 64-bit binaries, but it would be nice if I didn't need to.

Why was SvgSurface.create changed to the much more verbose and completely redundant SvgSurface.svgSurfaceCreate?  Was this by accident?

Please recompile the documentation, as the docs at the dsource site are outdated.

gtkD doesn't build on D2 for one trivial reason:  You forgot a super call for the Thread class you're inheriting from in glib\Spawn.d.  (I tried it with Git head DMD and druntime.  Maybe it works for some reason on 2.054.)  Fix:  Change run() to return void instead of int and pass its delegate to super.  Starting on line 270 of Spawn.d:

		this(FILE* file, bool delegate (string) read )
		{
			this.file = file;
			this.read = read;
			
			version(druntime)
			{
                		super(&run);
			}
		}
		
		version(druntime)
		{
			public void run()
			{
				string line = readLine(file);
				while( line !is null )
				{
					++lineCount;
					if ( read !is null )
					{
						read(line);
					}
					line = readLine(file);
				}
			}
		}

August 27, 2011
On 08/27/2011 07:55 PM, dsimcha wrote:
> Nice! A few issues, though:
>
> Small feature request: Could the GNUMakeFile include a multilib option
> that builds both 32-bit and 64-bit libs on a 64-bit system? I run
> performance-critical scientific code on 64-bit Linux, and use GtkD to
> plot results. If I don't need 64 bits of address space and the code uses
> a lot of pointers, I sometimes compile it as 32-bit to make it more
> cache efficient. I've been manually editing the make file to compile
> both 32- and 64-bit binaries, but it would be nice if I didn't need to.

I'll add the option.

> Why was SvgSurface.create changed to the much more verbose and
> completely redundant SvgSurface.svgSurfaceCreate? Was this by accident?

Yes it was by accident, will fix.

> Please recompile the documentation, as the docs at the dsource site are
> outdated.
>
> gtkD doesn't build on D2 for one trivial reason: You forgot a super call
> for the Thread class you're inheriting from in glib\Spawn.d. (I tried it
> with Git head DMD and druntime. Maybe it works for some reason on
> 2.054.) Fix: Change run() to return void instead of int and pass its
> delegate to super. Starting on line 270 of Spawn.d:

It does compile with 2.054, ill look into this.

> this(FILE* file, bool delegate (string) read )
> {
> this.file = file;
> this.read = read;
>
> version(druntime)
> {
> super(&run);
> }
> }
>
> version(druntime)
> {
> public void run()
> {
> string line = readLine(file);
> while( line !is null )
> {
> ++lineCount;
> if ( read !is null )
> {
> read(line);
> }
> line = readLine(file);
> }
> }
> }
>


-- 
Mike Wey
August 28, 2011
Mike Wey wrote:
> GtkD is a D binding and OO wrapper of Gtk+ and is released on the LGPL
> license.
...
> GtkD 1.4 is now available, get it from dsource:
> http://www.dsource.org/projects/gtkd/

Should probably say 1.5, rather than 1.4/1.4.1 ?

Seems like LIBRARY.GIO and LIBRARY.PANGOCAIRO
are missing from the darwin implementations ?
Also changed it to use regular dynamic libraries,
instead of the (now obsolete) GTK+ frameworks...

Otherwise working OK on Mac OS X, some crashes but.

--anders
August 28, 2011
On 08/28/2011 02:29 PM, Anders F Björklund wrote:
> Mike Wey wrote:
>> GtkD is a D binding and OO wrapper of Gtk+ and is released on the LGPL
>> license.
> ...
>> GtkD 1.4 is now available, get it from dsource:
>> http://www.dsource.org/projects/gtkd/
>
> Should probably say 1.5, rather than 1.4/1.4.1 ?

Indeed.

> Seems like LIBRARY.GIO and LIBRARY.PANGOCAIRO
> are missing from the darwin implementations ?

Do you happen to know the paths of these libraries ?

> Also changed it to use regular dynamic libraries,
> instead of the (now obsolete) GTK+ frameworks...
>
> Otherwise working OK on Mac OS X, some crashes but.
>
> --anders


-- 
Mike Wey
August 28, 2011
On Sat, 27 Aug 2011 17:29:59 +0200, Mike Wey wrote:

> GtkD is a D binding and OO wrapper of Gtk+ and is released on the LGPL license.
> 
> New in this Release:
> * wraps GTK+ 2.22.x series api (and relative libraries: glib, cairo,
> pango, etc.)
> * Improved memory management.
> * Implements GtkBuildable.
> * Brought Gstreamer up to date with the rest of the bindings, including
> 64bits support.
> 
> GtkD 1.4 is now available, get it from dsource: http://www.dsource.org/projects/gtkd/

Good job! Working smooth.
September 01, 2011
"Mike Wey" <mike-wey@example.com> wrote in message news:j3b2gr$1f6k$1@digitalmars.com...
> GtkD is a D binding and OO wrapper of Gtk+ and is released on the LGPL
> license.
>
> New in this Release:
> * wraps GTK+ 2.22.x series api (and relative libraries: glib, cairo, pango, etc.)
> * Improved memory management.
> * Implements GtkBuildable.
> * Brought Gstreamer up to date with the rest of the bindings, including 64bits support.
>
> GtkD 1.4 is now available, get it from dsource:
> http://www.dsource.org/projects/gtkd/
>
> -- 
> Mike Wey

Hi Mike,

When I try to build gtkD I get the following error:

C:\D\dmd2\gtkD\src\build>build @gtkD
gtkD.d(659): Error: module XOverlay is in file 'gstinterfaces\XOverlay.d' which
cannot be read
import path[0] = C:\D\dmd2\gtkD\src\
import path[1] = C:\D\dmd2\gtkD\src\build\../../srcgl\
import path[2] = C:\D\dmd2\gtkD\src\build\../../srcsv\
import path[3] = C:\D\dmd2\gtkD\src\build\../../srcgda\
import path[4] = C:\D\dmd2\src\phobos\
import path[5] = C:\D\dmd2\src\druntime\import\
import path[6] = C:\D\dmd2\dgui\
import path[7] = C:\D\dmd2\gtkD\src\build\
import path[8] = C:\D\dmd2\gtkD\src\glib\
import path[9] = C:\D\dmd2\gtkD\src\gtkc\
import path[10] = C:\D\dmd2\gtkD\src\gthread\
import path[11] = C:\D\dmd2\gtkD\src\gobject\
import path[12] = C:\D\dmd2\gtkD\src\gdk\
import path[13] = C:\D\dmd2\gtkD\src\gdkpixbuf\
import path[14] = C:\D\dmd2\gtkD\src\cairo\
import path[15] = C:\D\dmd2\gtkD\src\pango\
import path[16] = C:\D\dmd2\gtkD\src\gio\
import path[17] = C:\D\dmd2\gtkD\src\atk\
import path[18] = C:\D\dmd2\gtkD\src\gtk\
import path[19] = C:\D\dmd2\gtkD\src\glade\
import path[20] = C:\D\dmd2\gtkD\src\build\../../srcgl\glgdk\
import path[21] = C:\D\dmd2\gtkD\src\build\../../srcgl\gtkglc\
import path[22] = C:\D\dmd2\gtkD\src\build\../../srcgl\glgtk\
import path[23] = C:\D\dmd2\gtkD\src\build\../../srcsv\gsv\
import path[24] = C:\D\dmd2\gtkD\src\build\../../srcsv\gsvc\
import path[25] = C:\D\dmd2\gtkD\src\build\../../srcgda\gda\
import path[26] = C:\D\dmd2\gtkD\src\build\../../srcgda\gdac\
import path[27] = C:\D\dmd2\windows\bin\..\..\src\phobos
import path[28] = C:\D\dmd2\windows\bin\..\..\src\druntime\import
import path[29] = C:\D\dmd2\windows\bin\..\..\dgui
import path[30] = C:\D\dmd2\gtkD\src

Am I missing some path declaration?

Regards, Mike.

September 01, 2011
On 09/01/2011 11:55 AM, Mike James wrote:
>
> Hi Mike,
>
> When I try to build gtkD I get the following error:
>
> C:\D\dmd2\gtkD\src\build>build @gtkD
> gtkD.d(659): Error: module XOverlay is in file
> 'gstinterfaces\XOverlay.d' which
> cannot be read
> import ....
>
> Am I missing some path declaration?
>
> Regards, Mike.
>

The import path for gstreamer is missing from the build file for bud/build.

http://www.dsource.org/projects/gtkd/changeset/892

-- 
Mike Wey
September 22, 2011
On 08/27/2011 10:49 AM, Denis Shelomovskij wrote:
> Can anybody use GtkD with Win32 dmd 2.054+OPTLINK?
> Some time ago I posted message "Building GtkD app on Win32 results in
> 111 MiB file mostly from zeroes (compressed size - 324 KiB)", but no
> solution was found. I'll repeat some info:
>
> Files (dmd 2.054 compiled) are here:
> http://deoma-cmd.ru/files/other/huge-build.zip
>
> library.lib: Zero bytes: 3_505_980 of 16_175_616 (21.67%)
> main.obj: Zero bytes: 248 of 832 (29.81%)
>
> After linking with OPTLINK:
> testGtkD.exe: Zero bytes: 115_666_207 of 116_759_068 (99.06%)

Wow... I use linux and a few things I did to get my executable size down from 5mb, to about 1.1 mb was fairly simple. First edit sc.ini (dmd.conf for cool people), and take out the --export-dynamic then use strip and upx on the executable. Sorry if I can't help more