summaryrefslogtreecommitdiff
path: root/gdk/win32/gdkprivate-win32.h
diff options
context:
space:
mode:
authorTor Lillqvist <tml@iki.fi>2000-05-01 22:06:49 +0000
committerTor Lillqvist <tml@src.gnome.org>2000-05-01 22:06:49 +0000
commit1f149b3a8d4180024df25f700307406520159bec (patch)
tree937f197543fe407b6f4d80869f61db344df010c4 /gdk/win32/gdkprivate-win32.h
parent33dc3d6d4cf6ec76376c8ad30e165969db5324e9 (diff)
downloadgtk+-1f149b3a8d4180024df25f700307406520159bec.tar.gz
Large changes to the Win32 backend, partially made necessary by the
2000-05-02 Tor Lillqvist <tml@iki.fi> Large changes to the Win32 backend, partially made necessary by the changes to the backend-independent internal structures. Attempts to implement similar backing store stuff as on X11. The current (CVS) version of the Win32 backend is *not* as stable as it was before the no-flicker branch was merged. A zipfile with that version is available from http://www.gimp.org/win32/. That should be use by "production" code until this CVS version is usable. (But note, the Win32 backend has never been claimed to be "production quality".) * README.win32: Add the above comment about versions. * gdk/gdkwindow.c: Don't use backing store for now on Win32. * gdk/gdk.def: Update. * gdk/gdkfont.h: Declare temporary Win32-only functions. Will presumably be replaced by some more better mechanism as 1.4 gets closer to release shape. * gdk/makefile.{cygwin,msc}: Update. * gdk/win32/*.c: Correct inclusions of the backend-specific and internal headers. Change code according to changes in these. Use gdk_drawable_*, not gdk_window_* where necessary. * gdk/win32/gdkdnd-win32.c: Use MISC selector for GDK_NOTE, not our old DND. * gdk/win32/gdkdrawable-win32.c (gdk_win32_draw_text): Don't try to interpret single characters as UTF-8. Thanks to Hans Breuer. Use correct function name in warning messages. * gdk/win32/gdkevents-win32.c: Use correct parameter lists for the GSourceFuncs gdk_event_prepare and gdk_event_check. (gdk_event_get_graphics_expose): Do implement, use PeekMessage. Thanks to Hans Breuer. (event_mask_string): Debugging function to print an GdkEventMask. (gdk_pointer_grab): Use it. * gdk/win32/gdkfont-win32.c: The Unicode subrange that the (old) book I used claimed was Hangul actually is CJK Unified Ideographs Extension A. Also, Hangul Syllables were missing. Improve logging. * gdk/win32/gdkgc-win32.c: Largish changes. * gdk/win32/gdkim-win32.c (gdk_set_locale): Use g_win32_getlocale() from GLib, and not setlocale() to get current locale name. * gdk/win32/gdkprivate-win32.h * gdk/win32/gdkwin32.h: Move stuff from gdkprivate-win32.h to gdkwin32.h, similarily as in the X11 backend. * gdk/win32/gdkwindow-win32.c (gdk_propagate_shapes): Bugfix, assignment was used instead of equals in if test. Thanks to Hans Breuer. * gdk/win32/makefile.{cygwin,msc} * gtk/makefile.{cygwin,msc}: Updates. Better kludge to get the path to the Win32 headers that works also with the mingw compiler. * gtk/gtkstyle.c: Include <string.h>.
Diffstat (limited to 'gdk/win32/gdkprivate-win32.h')
-rw-r--r--gdk/win32/gdkprivate-win32.h273
1 files changed, 12 insertions, 261 deletions
diff --git a/gdk/win32/gdkprivate-win32.h b/gdk/win32/gdkprivate-win32.h
index 5c1be52b6d..92b6c12d98 100644
--- a/gdk/win32/gdkprivate-win32.h
+++ b/gdk/win32/gdkprivate-win32.h
@@ -27,252 +27,12 @@
#ifndef __GDK_PRIVATE_WIN32_H__
#define __GDK_PRIVATE_WIN32_H__
-#define STRICT /* We want strict type checks */
-#include <windows.h>
-#include <commctrl.h>
-
-/* Make up for some minor mingw32 lossage */
-
-/* PS_JOIN_MASK is missing from the mingw32 headers */
-#ifndef PS_JOIN_MASK
-#define PS_JOIN_MASK (PS_JOIN_BEVEL|PS_JOIN_MITER|PS_JOIN_ROUND)
-#endif
-
-/* CLR_INVALID is missing */
-#ifndef CLR_INVALID
-#define CLR_INVALID CLR_NONE
-#endif
-
-/* Some charsets are missing */
-#ifndef JOHAB_CHARSET
-#define JOHAB_CHARSET 130
-#endif
-#ifndef VIETNAMESE_CHARSET
-#define VIETNAMESE_CHARSET 163
-#endif
-
-#ifndef FS_VIETNAMESE
-#define FS_VIETNAMESE 0x100
-#endif
-
-#ifndef VM_OEM_PLUS
-#define VK_OEM_PLUS 0xBB
-#endif
-
-#include <time.h>
-
-#include <gdk/gdktypes.h>
#include <gdk/gdkprivate.h>
-
-#include <gdk/gdkcursor.h>
-#include <gdk/gdkevents.h>
-#include <gdk/gdkfont.h>
-#include <gdk/gdkgc.h>
-#include <gdk/gdkim.h>
-#include <gdk/gdkimage.h>
-#include <gdk/gdkvisual.h>
-#include <gdk/gdkwindow.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/* Define corresponding Windows types for some X11 types, just for laziness.
- */
-
-typedef PALETTEENTRY XColor;
-typedef guint VisualID;
-typedef int Status;
-
-/* Define some of the X11 constants also here, again just for laziness */
-
-/* Generic null resource */
-#define None 0
-
-/* Error codes */
-#define Success 0
-
-/* Grabbing status */
-#define GrabSuccess 0
-#define AlreadyGrabbed 2
-
-/* Some structs are somewhat useful to emulate internally, just to
- keep the code less #ifdefed. */
-typedef struct {
- HPALETTE palette; /* Palette handle used when drawing. */
- guint size; /* Number of entries in the palette. */
- gboolean stale; /* 1 if palette needs to be realized,
- * otherwise 0. */
- gboolean *in_use;
- gboolean rc_palette; /* If RC_PALETTE is on in the RASTERCAPS */
- gulong sizepalette; /* SIZEPALETTE if rc_palette */
-} ColormapStruct, *Colormap;
-
-typedef struct {
- gint map_entries;
- guint visualid;
- guint bitspixel;
-} Visual;
-
-typedef struct {
- Colormap colormap;
- unsigned long red_max;
- unsigned long red_mult;
- unsigned long green_max;
- unsigned long green_mult;
- unsigned long blue_max;
- unsigned long blue_mult;
- unsigned long base_pixel;
-} XStandardColormap;
-
-typedef struct _GdkGCWin32Data GdkGCWin32Data;
-typedef struct _GdkDrawableWin32Data GdkDrawableWin32Data;
-typedef struct _GdkWindowWin32Data GdkWindowWin32Data;
-typedef struct _GdkColormapPrivateWin32 GdkColormapPrivateWin32;
-typedef struct _GdkCursorPrivate GdkCursorPrivate;
-typedef struct _GdkWin32SingleFont GdkWin32SingleFont;
-typedef struct _GdkFontPrivateWin32 GdkFontPrivateWin32;
-typedef struct _GdkImagePrivateWin32 GdkImagePrivateWin32;
-typedef struct _GdkVisualPrivate GdkVisualPrivate;
-typedef struct _GdkRegionPrivate GdkRegionPrivate;
-typedef struct _GdkICPrivate GdkICPrivate;
-
-#define GDK_DRAWABLE_WIN32DATA(win) ((GdkDrawableWin32Data *)(((GdkDrawablePrivate*)(win))->klass_data))
-#define GDK_WINDOW_WIN32DATA(win) ((GdkWindowWin32Data *)(((GdkDrawablePrivate*)(win))->klass_data))
-#define GDK_GC_WIN32DATA(gc) ((GdkGCWin32Data *)(((GdkGCPrivate*)(gc))->klass_data))
-
-struct _GdkGCWin32Data
-{
- /* A Windows Device Context (DC) is not equivalent to an X11
- * GC. We can use a DC only in the window for which it was
- * allocated, or (in the case of a memory DC) with the bitmap that
- * has been selected into it. Thus, we have to release and
- * reallocate a DC each time the GdkGC is used to paint into a new
- * window or pixmap. We thus keep all the necessary values in the
- * GdkGCWin32Data struct.
- */
- HDC xgc;
- GdkGCValuesMask values_mask;
- gulong foreground; /* Pixel values from GdkColor, */
- gulong background; /* not Win32 COLORREFs */
- GdkFont *font;
- gint rop2;
- GdkFill fill_style;
- GdkPixmap *tile;
- GdkPixmap *stipple;
- HRGN clip_region;
- GdkSubwindowMode subwindow_mode;
- gint ts_x_origin;
- gint ts_y_origin;
- gint clip_x_origin;
- gint clip_y_origin;
- gint graphics_exposures;
- gint pen_width;
- DWORD pen_style;
- HANDLE hwnd; /* If a DC is allocated, for which window
- * or what bitmap is selected into it
- */
- int saved_dc;
-};
-
-struct _GdkDrawableWin32Data
-{
- HANDLE xid;
-};
-
-struct _GdkWindowWin32Data
-{
- GdkDrawableWin32Data drawable;
-
- /* We must keep the event mask here to filter them ourselves */
- gint event_mask;
-
- /* Values for bg_type */
-#define GDK_WIN32_BG_NORMAL 0
-#define GDK_WIN32_BG_PIXEL 1
-#define GDK_WIN32_BG_PIXMAP 2
-#define GDK_WIN32_BG_PARENT_RELATIVE 3
-#define GDK_WIN32_BG_TRANSPARENT 4
-
- /* We draw the background ourselves at WM_ERASEBKGND */
- guchar bg_type;
- gulong bg_pixel; /* GdkColor pixel, not COLORREF */
- GdkPixmap *bg_pixmap;
-
- HCURSOR xcursor;
-
- /* Window size hints */
- gint hint_flags;
- gint hint_x, hint_y;
- gint hint_min_width, hint_min_height;
- gint hint_max_width, hint_max_height;
-
- gboolean extension_events_selected;
-
- HKL input_locale;
- CHARSETINFO charset_info;
-};
-
-struct _GdkCursorPrivate
-{
- GdkCursor cursor;
- HCURSOR xcursor;
-};
-
-struct _GdkWin32SingleFont
-{
- HFONT xfont;
- UINT charset;
- UINT codepage;
- FONTSIGNATURE fs;
-};
-
-struct _GdkFontPrivateWin32
-{
- GdkFontPrivate base;
- GSList *fonts; /* List of GdkWin32SingleFonts */
- GSList *names;
-};
-
-struct _GdkVisualPrivate
-{
- GdkVisual visual;
- Visual *xvisual;
-};
-
-struct _GdkColormapPrivateWin32
-{
- GdkColormapPrivate base;
- Colormap xcolormap;
- gint private_val;
-
- GHashTable *hash;
- GdkColorInfo *info;
- time_t last_sync_time;
-};
-
-struct _GdkImagePrivateWin32
-{
- GdkImagePrivate base;
- HBITMAP ximage;
-};
-
-struct _GdkRegionPrivate
-{
- GdkRegion region;
- HRGN xregion;
-};
-
-void gdk_win32_selection_init (void);
-void gdk_win32_dnd_exit (void);
-
-GdkColormap* gdk_colormap_lookup (Colormap xcolormap);
-GdkVisual* gdk_visual_lookup (Visual *xvisual);
+#include "gdkwin32.h"
void gdk_xid_table_insert (HANDLE *hnd,
gpointer data);
void gdk_xid_table_remove (HANDLE xid);
-gpointer gdk_xid_table_lookup (HANDLE xid);
GdkGC * _gdk_win32_gc_new (GdkDrawable *drawable,
GdkGCValues *values,
@@ -287,22 +47,24 @@ void gdk_gc_postdraw (GdkDrawable *drawable,
GdkGCValuesMask usage);
HRGN BitmapToRegion (HBITMAP hBmp);
+gchar *gdk_font_full_name_get (GdkFont *font);
+
void gdk_sel_prop_store (GdkWindow *owner,
GdkAtom type,
gint format,
guchar *data,
gint length);
-gint gdk_nmbstowcs (GdkWChar *dest,
+gint gdk_nmbstowcs (GdkWChar *dest,
const gchar *src,
gint src_len,
gint dest_max);
-gint gdk_nmbstowchar_ts (wchar_t *dest,
+gint gdk_nmbstowchar_ts (wchar_t *dest,
const gchar *src,
gint src_len,
gint dest_max);
-void gdk_wchar_text_handle (GdkFont *font,
+void gdk_wchar_text_handle (GdkFont *font,
const wchar_t *wcstr,
int wclen,
void (*handler)(GdkWin32SingleFont *,
@@ -311,16 +73,12 @@ void gdk_wchar_text_handle (GdkFont *font,
void *),
void *arg);
-gchar *gdk_color_to_string (const GdkColor *);
-void gdk_win32_api_failed (const gchar *where,
- gint line,
- const gchar *api);
-void gdk_other_api_failed (const gchar *where,
- gint line,
- const gchar *api);
-void gdk_win32_gdi_failed (const gchar *where,
- gint line,
- const gchar *api);
+gchar *gdk_color_to_string (const GdkColor *);
+gchar *gdk_win32_last_error_string (void);
+void gdk_win32_api_failed (const gchar *where,
+ gint line,
+ const gchar *api);
+
#ifdef __GNUC__
#define WIN32_API_FAILED(api) gdk_win32_api_failed (__FILE__ ":" __PRETTY_FUNCTION__, __LINE__, api)
#define WIN32_GDI_FAILED(api) gdk_win32_gdi_failed (__FILE__ ":" __PRETTY_FUNCTION__, __LINE__, api)
@@ -335,8 +93,6 @@ extern LRESULT CALLBACK gdk_WindowProc (HWND, UINT, WPARAM, LPARAM);
extern GdkDrawableClass _gdk_win32_drawable_class;
extern HWND gdk_root_window;
-GDKVAR ATOM gdk_selection_property;
-GDKVAR gchar *gdk_progclass;
extern gboolean gdk_event_func_from_window_proc;
extern HDC gdk_DC;
@@ -353,9 +109,4 @@ extern GdkAtom gdk_ole2_dnd_atom;
extern DWORD windows_version;
#define IS_WIN_NT(dwVersion) (dwVersion < 0x80000000)
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-
#endif /* __GDK_PRIVATE_WIN32_H__ */