Mercurial > projects > dwt-linux
diff dwt/internal/gtk/OS.d @ 24:bc06000c0816
TextLayout and GC, graphics complete
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Mon, 07 Jan 2008 23:29:21 +0100 |
parents | 55c4568a2bab |
children | 09f5459a5014 |
line wrap: on
line diff
--- a/dwt/internal/gtk/OS.d Mon Jan 07 09:39:59 2008 +0100 +++ b/dwt/internal/gtk/OS.d Mon Jan 07 23:29:21 2008 +0100 @@ -28,6 +28,81 @@ dwt.internal.gtk.c.gdkpixbuf; // temporary added, because was not yet available + +struct XRenderPictureAttributes{ + int repeat; + uint alpha_map; + int alpha_x_origin; + int alpha_y_origin; + int clip_x_origin; + int clip_y_origin; + uint clip_mask; + int graphics_exposures; + int subwindow_mode; + int poly_edge; + int poly_mode; + uint dither; + int component_alpha; +} +struct XRenderDirectFormat { + short red; + short redMask; + short green; + short greenMask; + short blue; + short blueMask; + short alpha; + short alphaMask; +} +struct XRenderPictFormat { + uint id; + int type; + int depth; + XRenderDirectFormat direct; + uint colormap; +} + +struct XTransform { + int [3][3] matrix; +} + struct XRectangle { + short x; + short y; + ushort width; + ushort height; + } +private extern (C) uint XRenderCreatePicture(void *, uint, XRenderPictFormat *, uint, XRenderPictureAttributes *); +private extern (C) XRenderPictFormat * XRenderFindStandardFormat (dwt.internal.gtk.c.cairotypes.Display *dpy, int format); +private extern (C) XRenderPictFormat * XRenderFindVisualFormat (dwt.internal.gtk.c.cairotypes.Display *dpy, void *visual); +private extern (C) void XRenderSetPictureTransform (void *dpy,uint picture, XTransform *transform); +private extern (C) void XRenderSetPictureClipRectangles(void *, uint, int, int, XRectangle *, int); +private extern (C) void XRenderFreePicture(void *, uint); +private extern (C) void XRenderComposite(void *, int, uint, uint, uint, int, int, int, int, int, int, uint, uint); + +private extern (C) cairo_font_options_t * pango_cairo_context_get_font_options(void *); +private extern (C) void pango_cairo_context_set_font_options(void *, cairo_font_options_t *); +//void function(GtkWidget* widget, gchar* firstPropertyName, ... )gtk_widget_style_get; +private void gtk_widget_style_get1( GtkWidget* widget, gchar* firstPropertyName, int* res ){ + gtk_widget_style_get( widget, firstPropertyName, res, null ); +} + + +private extern(C) PangoLayout *pango_cairo_create_layout (cairo_t *cr); +private extern(C) void pango_cairo_layout_path (cairo_t *cr, + PangoLayout *layout); + +private extern(C) void gdk_pango_context_set_colormap (PangoContext *context, + GdkColormap *colormap); + +private extern(C) void pango_cairo_show_layout(cairo_t *cr, PangoLayout *layout); + +private extern(C) GdkRegion *gdk_pango_layout_get_clip_region(PangoLayout *layout, + gint x_origin, + gint y_origin, + gint *index_ranges, + gint n_ranges); + + private extern(C) GdkWindow* GDK_ROOT_PARENT(); private extern(C) GdkPixbuf* gdk_pixbuf_new (GdkColorspace colorspace, gboolean has_alpha, int bits_per_sample, int width, int height); @@ -62,6 +137,10 @@ extern (C) XIOErrorHandler XSetIOErrorHandler(XIOErrorHandler); extern (C) XErrorHandler XSetErrorHandler(XErrorHandler); +int PANGO_PIXELS( int v ){ + return (v+512) >> 10; +} + template NameOfFunc(alias f) { // Note: highly dependent on the .stringof formatting @@ -695,6 +774,17 @@ public static const int VisibilityFullyObscured = 2; public static const int VisibilityNotify = 15; public static const int SYSTEM_TRAY_REQUEST_DOCK = 0; + +/** X render natives and constants */ +public static const int PictStandardARGB32 = 0; +public static const int PictStandardRGB24 = 1; +public static const int PictStandardA8 = 2; +public static const int PictStandardA4 = 3; +public static const int PictStandardA1 = 4; +public static const int PictOpSrc = 1; +public static const int PictOpOver = 3; + + /++ // mixin ForwardGtkOsCFunc!(localeconv_decimal_point); // mixin ForwardGtkOsCFunc!(realpath); @@ -735,10 +825,10 @@ mixin ForwardGtkOsCFunc!(.gdk_x11_atom_to_xatom); mixin ForwardGtkOsCFunc!(.gdk_x11_colormap_get_xcolormap); mixin ForwardGtkOsCFunc!(.gdk_x11_drawable_get_xdisplay); + +/ mixin ForwardGtkOsCFunc!(.gdk_x11_drawable_get_xid); - mixin ForwardGtkOsCFunc!(.gdk_x11_screen_lookup_visual); - mixin ForwardGtkOsCFunc!(.gdk_x11_screen_get_window_manager_name); - +/ + //mixin ForwardGtkOsCFunc!(.gdk_x11_screen_lookup_visual); + //mixin ForwardGtkOsCFunc!(.gdk_x11_screen_get_window_manager_name); mixin ForwardGtkOsCFunc!(.gdk_x11_visual_get_xvisual); /+ mixin ForwardGtkOsCFunc!(.gdk_pixmap_foreign_new); @@ -751,7 +841,6 @@ +/ mixin ForwardGtkOsCFunc!(.XRenderQueryExtension); mixin ForwardGtkOsCFunc!(.XRenderQueryVersion); - /+ mixin ForwardGtkOsCFunc!(.XRenderCreatePicture); mixin ForwardGtkOsCFunc!(.XRenderSetPictureClipRectangles); mixin ForwardGtkOsCFunc!(.XRenderSetPictureTransform); @@ -759,8 +848,7 @@ mixin ForwardGtkOsCFunc!(.XRenderComposite); mixin ForwardGtkOsCFunc!(.XRenderFindStandardFormat); mixin ForwardGtkOsCFunc!(.XRenderFindVisualFormat); -// mixin ForwardGtkOsCFunc!(Call ); - +/ + //mixin ForwardGtkOsCFunc!(Call ); mixin ForwardGtkOsCFunc!(.GDK_DISPLAY); mixin ForwardGtkOsCFunc!(.GDK_ROOT_PARENT); /+ @@ -799,8 +887,9 @@ mixin ForwardGtkOsCFunc!(.G_TYPE_INT); mixin ForwardGtkOsCFunc!(.G_OBJECT_TYPE ); mixin ForwardGtkOsCFunc!(.G_TYPE_STRING); + +/ mixin ForwardGtkOsCFunc!(.PANGO_PIXELS); - mixin ForwardGtkOsCFunc!(.PANGO_TYPE_FONT_DESCRIPTION); +/ + //mixin ForwardGtkOsCFunc!(.PANGO_TYPE_FONT_DESCRIPTION); mixin ForwardGtkOsCFunc!(.g_cclosure_new); mixin ForwardGtkOsCFunc!(.g_closure_ref); @@ -965,8 +1054,8 @@ mixin ForwardGtkOsCFunc!(.gdk_keyval_to_lower); mixin ForwardGtkOsCFunc!(.gdk_keyval_to_unicode); mixin ForwardGtkOsCFunc!(.gdk_pango_context_get); -// mixin ForwardGtkOsCFunc!(.gdk_pango_context_set_colormap); -// mixin ForwardGtkOsCFunc!(.gdk_pango_layout_get_clip_region); + mixin ForwardGtkOsCFunc!(.gdk_pango_context_set_colormap); + mixin ForwardGtkOsCFunc!(.gdk_pango_layout_get_clip_region); mixin ForwardGtkOsCFunc!(.gdk_pixbuf_copy_area); mixin ForwardGtkOsCFunc!(.gdk_pixbuf_get_from_drawable); mixin ForwardGtkOsCFunc!(.gdk_pixbuf_get_has_alpha); @@ -1660,8 +1749,7 @@ mixin ForwardGtkOsCFunc!(.gtk_widget_show_now); mixin ForwardGtkOsCFunc!(.gtk_widget_size_allocate); mixin ForwardGtkOsCFunc!(.gtk_widget_size_request); - mixin ForwardGtkOsCFunc!(.gtk_widget_style_get); - mixin ForwardGtkOsCFunc!(.gtk_widget_style_get); + mixin ForwardGtkOsCFunc!(.gtk_widget_style_get1); // 1=get one property, see above mixin ForwardGtkOsCFunc!(.gtk_widget_translate_coordinates); mixin ForwardGtkOsCFunc!(.gtk_widget_unrealize); mixin ForwardGtkOsCFunc!(.gtk_window_activate_default); @@ -1707,12 +1795,12 @@ // mixin ForwardGtkOsCFunc!(.pango_cairo_font_map_get_default); // mixin ForwardGtkOsCFunc!(.pango_cairo_font_map_new); // mixin ForwardGtkOsCFunc!(.pango_cairo_font_map_create_context); -// mixin ForwardGtkOsCFunc!(.pango_cairo_create_layout); -// mixin ForwardGtkOsCFunc!(.pango_cairo_context_get_font_options); -// mixin ForwardGtkOsCFunc!(.pango_cairo_context_set_font_options); + mixin ForwardGtkOsCFunc!(.pango_cairo_create_layout); + mixin ForwardGtkOsCFunc!(.pango_cairo_context_get_font_options); + mixin ForwardGtkOsCFunc!(.pango_cairo_context_set_font_options); // mixin ForwardGtkOsCFunc!(.pango_cairo_font_map_set_resolution); -// mixin ForwardGtkOsCFunc!(.pango_cairo_layout_path); -// mixin ForwardGtkOsCFunc!(.pango_cairo_show_layout); + mixin ForwardGtkOsCFunc!(.pango_cairo_layout_path); + mixin ForwardGtkOsCFunc!(.pango_cairo_show_layout); mixin ForwardGtkOsCFunc!(.pango_context_get_base_dir); mixin ForwardGtkOsCFunc!(.pango_context_get_language); mixin ForwardGtkOsCFunc!(.pango_context_get_metrics);