view dynamin/c/gdk.d @ 18:836a064828e8

Implement FileDialog/DirectoryDialog with GTK and start a glib/gdk/gtk binding. Add invoke/invokeNow stubs to fix build on X.
author Jordan Miner <jminer7@gmail.com>
date Fri, 24 Jul 2009 00:35:42 -0500
parents
children
line wrap: on
line source

module dynamin.c.gdk;

/*
 * A binding to at least the part of GDK that Dynamin uses.
 */

import dynamin.c.glib;
import tango.sys.SharedLib;

extern(C):

//{{{ gdktypes
enum {
	GDK_CURRENT_TIME     = 0L,
	GDK_PARENT_RELATIVE  = 1L
}

alias guint32 GdkWChar;

/*alias struct _GdkAtom* GdkAtom;*/
alias void* GdkAtom;

gpointer GDK_ATOM_TO_POINTER(GdkAtom atom) { return atom; }
GdkAtom GDK_POINTER_TO_ATOM(gpointer ptr) { return ptr; }

GdkAtom _GDK_MAKE_ATOM(guint64 val) { return cast(GdkAtom)val; }
GdkAtom GDK_NONE() { return _GDK_MAKE_ATOM(0); }

alias guint32 GdkNativeWindow;

enum {
	GDK_LSB_FIRST,
	GDK_MSB_FIRST
}
alias uint GdkByteOrder;

enum {
	GDK_SHIFT_MASK    = 1 << 0,
	GDK_LOCK_MASK     = 1 << 1,
	GDK_CONTROL_MASK  = 1 << 2,
	GDK_MOD1_MASK     = 1 << 3,
	GDK_MOD2_MASK     = 1 << 4,
	GDK_MOD3_MASK     = 1 << 5,
	GDK_MOD4_MASK     = 1 << 6,
	GDK_MOD5_MASK     = 1 << 7,
	GDK_BUTTON1_MASK  = 1 << 8,
	GDK_BUTTON2_MASK  = 1 << 9,
	GDK_BUTTON3_MASK  = 1 << 10,
	GDK_BUTTON4_MASK  = 1 << 11,
	GDK_BUTTON5_MASK  = 1 << 12,

	GDK_SUPER_MASK    = 1 << 26,
	GDK_HYPER_MASK    = 1 << 27,
	GDK_META_MASK     = 1 << 28,

	GDK_RELEASE_MASK  = 1 << 30,

	GDK_MODIFIER_MASK = 0x5c001fff
}
alias uint GdkModifierType;

enum {
	GDK_INPUT_READ       = 1 << 0,
	GDK_INPUT_WRITE      = 1 << 1,
	GDK_INPUT_EXCEPTION  = 1 << 2
}
alias uint GdkInputCondition;

enum {
	GDK_OK          = 0,
	GDK_ERROR          = -1,
	GDK_ERROR_PARAM = -2,
	GDK_ERROR_FILE  = -3,
	GDK_ERROR_MEM          = -4
}
alias uint GdkStatus;

enum {
	GDK_GRAB_SUCCESS         = 0,
	GDK_GRAB_ALREADY_GRABBED = 1,
	GDK_GRAB_INVALID_TIME    = 2,
	GDK_GRAB_NOT_VIEWABLE    = 3,
	GDK_GRAB_FROZEN          = 4
}
alias uint GdkGrabStatus;

alias void function(gpointer data,
	gint source,
	GdkInputCondition condition) GdkInputFunction;

struct GdkPoint {
	gint x;
	gint y;
}

struct GdkRectangle {
	gint x;
	gint y;
	gint width;
	gint height;
}

struct GdkSegment {
	gint x1;
	gint y1;
	gint x2;
	gint y2;
}

struct GdkSpan {
	gint x;
	gint y;
	gint width;
}
//}}}

//{{{ gdkwindow
//}}}

static this() {
	auto lib = SharedLib.load("libgdk-x11-2.0.so.0");

	//{{{ gdkwindow
	//}}}

}