summaryrefslogtreecommitdiff
path: root/gdk/win32
diff options
context:
space:
mode:
authorTor Lillqvist <tml@iki.fi>2000-09-07 19:51:32 +0000
committerTor Lillqvist <tml@src.gnome.org>2000-09-07 19:51:32 +0000
commit6ffe1dcf10ecef2c44f0121f107126acb7f62bdb (patch)
tree5716e173bb82b9a80687ee551cbbee4f90ce1178 /gdk/win32
parent2bcef62f0b0d176d0979cc9f00399092b2963ad8 (diff)
downloadgtk+-6ffe1dcf10ecef2c44f0121f107126acb7f62bdb.tar.gz
Use -Wall. Add gdkpango-win32.o
2000-09-07 Tor Lillqvist <tml@iki.fi> * gdk/win32/makefile.mingw.in: Use -Wall. Add gdkpango-win32.o * gdk/win32/gdkwin32.h: Add more definitions missing from the free w32api headers. * gdk/win32/gdkprivate-win32.h: Add a couple of missing declarations. * gdk/win32/gdkdrawable-win32.c: Remove gcc -Wall warnings. (gdk_win32_get_colormap): A line had been deleted by mistake. * gdk/win32/gdkevents-win32.c: Remove lint (gcc -Wall) here, too. (gdk_event_translate): Handle more virtual keycodes to be able to generate GDK events for Control-comma, Control-period, etc. * gtk/gtk.def: Add some missing entry points. 2000-09-07 Tor Lillqvist <tml@iki.fi> * makefile.mingw.in: Use own version number for gdk-pixbuf DLLs, like on Unix.
Diffstat (limited to 'gdk/win32')
-rw-r--r--gdk/win32/gdkdrawable-win32.c39
-rw-r--r--gdk/win32/gdkevents-win32.c307
-rw-r--r--gdk/win32/gdkprivate-win32.h6
-rw-r--r--gdk/win32/gdkwin32.h37
-rw-r--r--gdk/win32/makefile.mingw.in3
5 files changed, 225 insertions, 167 deletions
diff --git a/gdk/win32/gdkdrawable-win32.c b/gdk/win32/gdkdrawable-win32.c
index 677c4fcc20..ae66c31359 100644
--- a/gdk/win32/gdkdrawable-win32.c
+++ b/gdk/win32/gdkdrawable-win32.c
@@ -178,6 +178,8 @@ gdk_win32_get_colormap (GdkDrawable *drawable)
{
GdkDrawableImplWin32 *impl;
+ impl = GDK_DRAWABLE_IMPL_WIN32 (drawable);
+
return impl->colormap;
}
@@ -221,8 +223,8 @@ gdk_win32_draw_rectangle (GdkDrawable *drawable,
POINT pts[4];
gboolean ok = TRUE;
- GDK_NOTE (MISC, g_print ("gdk_win32_draw_rectangle: %#x (%d) %s%dx%d@+%d+%d\n",
- GDK_DRAWABLE_HANDLE (drawable),
+ GDK_NOTE (MISC, g_print ("gdk_win32_draw_rectangle: %#x (%p) %s%dx%d@+%d+%d\n",
+ (guint) GDK_DRAWABLE_HANDLE (drawable),
gc_private,
(filled ? "fill " : ""),
width, height, x, y));
@@ -319,13 +321,12 @@ gdk_win32_draw_arc (GdkDrawable *drawable,
gint angle1,
gint angle2)
{
- GdkGCWin32 *gc_private = GDK_GC_WIN32 (gc);
const GdkGCValuesMask mask = GDK_GC_FOREGROUND|GDK_GC_BACKGROUND;
HDC hdc;
int nXStartArc, nYStartArc, nXEndArc, nYEndArc;
GDK_NOTE (MISC, g_print ("gdk_draw_arc: %#x %d,%d,%d,%d %d %d\n",
- GDK_DRAWABLE_HANDLE (drawable),
+ (guint) GDK_DRAWABLE_HANDLE (drawable),
x, y, width, height, angle1, angle2));
/* Seems that drawing arcs with width or height <= 2 fails, at least
@@ -396,8 +397,9 @@ gdk_win32_draw_polygon (GdkDrawable *drawable,
gboolean ok = TRUE;
int i;
- GDK_NOTE (MISC, g_print ("gdk_win32_draw_polygon: %#x (%d) %d\n",
- GDK_DRAWABLE_HANDLE (drawable), gc_private,
+ GDK_NOTE (MISC, g_print ("gdk_win32_draw_polygon: %#x (%p) %d\n",
+ (guint) GDK_DRAWABLE_HANDLE (drawable),
+ gc_private,
npoints));
if (npoints < 2)
@@ -510,7 +512,6 @@ gdk_win32_draw_text (GdkDrawable *drawable,
const gchar *text,
gint text_length)
{
- GdkGCWin32 *gc_private = GDK_GC_WIN32 (gc);
const GdkGCValuesMask mask = GDK_GC_FOREGROUND|GDK_GC_FONT;
wchar_t *wcstr, wc;
gint wlen;
@@ -526,7 +527,7 @@ gdk_win32_draw_text (GdkDrawable *drawable,
arg.hdc = gdk_win32_hdc_get (drawable, gc, mask);
GDK_NOTE (MISC, g_print ("gdk_draw_text: %#x (%d,%d) \"%.*s\" (len %d)\n",
- GDK_DRAWABLE_HANDLE (drawable),
+ (guint) GDK_DRAWABLE_HANDLE (drawable),
x, y,
(text_length > 10 ? 10 : text_length),
text, text_length));
@@ -560,9 +561,8 @@ gdk_win32_draw_text_wc (GdkDrawable *drawable,
const GdkWChar *text,
gint text_length)
{
- GdkGCWin32 *gc_private = GDK_GC_WIN32 (gc);
const GdkGCValuesMask mask = GDK_GC_FOREGROUND|GDK_GC_FONT;
- gint i, wlen;
+ gint i;
wchar_t *wcstr;
gdk_draw_text_arg arg;
@@ -576,7 +576,7 @@ gdk_win32_draw_text_wc (GdkDrawable *drawable,
arg.hdc = gdk_win32_hdc_get (drawable, gc, mask);
GDK_NOTE (MISC, g_print ("gdk_draw_text_wc: %#x (%d,%d) len: %d\n",
- GDK_DRAWABLE_HANDLE (drawable),
+ (guint) GDK_DRAWABLE_HANDLE (drawable),
x, y, text_length));
if (sizeof (wchar_t) != sizeof (GdkWChar))
@@ -608,8 +608,6 @@ gdk_win32_draw_drawable (GdkDrawable *drawable,
gint width,
gint height)
{
- GdkGCWin32 *gc_private = GDK_GC_WIN32 (gc);
- GdkDrawableImplWin32 *src_impl = GDK_DRAWABLE_IMPL_WIN32 (src);
HDC hdc;
HDC srcdc;
HGDIOBJ hgdiobj;
@@ -620,8 +618,9 @@ gdk_win32_draw_drawable (GdkDrawable *drawable,
GDK_NOTE (MISC, g_print ("gdk_draw_pixmap: dest: %#x @+%d+%d"
"src: %#x %dx%d@+%d+%d\n",
- GDK_DRAWABLE_HANDLE (drawable), xdest, ydest,
- GDK_PIXMAP_HBITMAP (src),
+ (guint) GDK_DRAWABLE_HANDLE (drawable),
+ xdest, ydest,
+ (guint) GDK_PIXMAP_HBITMAP (src),
width, height, xsrc, ysrc));
hdc = gdk_win32_hdc_get (drawable, gc, 0);
@@ -643,7 +642,7 @@ gdk_win32_draw_drawable (GdkDrawable *drawable,
OffsetRgn (outside_rgn, xdest, ydest);
GDK_NOTE (MISC, (GetRgnBox (outside_rgn, &r),
g_print ("...calling InvalidateRgn, "
- "bbox: %dx%d@+%d+%d\n",
+ "bbox: %ldx%ld@+%ld+%ld\n",
r.right - r.left - 1, r.bottom - r.top - 1,
r.left, r.top)));
InvalidateRgn (GDK_DRAWABLE_HANDLE (drawable), outside_rgn, TRUE);
@@ -756,7 +755,8 @@ gdk_win32_draw_points (GdkDrawable *drawable,
fg = gdk_colormap_color (impl->colormap, gc_private->foreground);
GDK_NOTE (MISC, g_print ("gdk_draw_points: %#x %dx%.06x\n",
- GDK_DRAWABLE_HANDLE (drawable), npoints, fg));
+ (guint) GDK_DRAWABLE_HANDLE (drawable),
+ npoints, (guint) fg));
for (i = 0; i < npoints; i++)
SetPixel (hdc, points[i].x, points[i].y, fg);
@@ -778,7 +778,7 @@ gdk_win32_draw_segments (GdkDrawable *drawable,
int i;
GDK_NOTE (MISC, g_print ("gdk_win32_draw_segments: %#x nsegs: %d\n",
- GDK_DRAWABLE_HANDLE (drawable), nsegs));
+ (guint) GDK_DRAWABLE_HANDLE (drawable), nsegs));
hdc = gdk_win32_hdc_get (drawable, gc, mask);
@@ -880,8 +880,6 @@ gdk_win32_draw_glyphs (GdkDrawable *drawable,
gint y,
PangoGlyphString *glyphs)
{
- GdkDrawableImplWin32 *impl = GDK_DRAWABLE_IMPL_WIN32 (drawable);
- GdkGCWin32 *gc_private = GDK_GC_WIN32 (gc);
const GdkGCValuesMask mask = GDK_GC_FOREGROUND;
HDC hdc;
@@ -904,7 +902,6 @@ gdk_win32_draw_image (GdkDrawable *drawable,
gint height)
{
GdkDrawableImplWin32 *impl = GDK_DRAWABLE_IMPL_WIN32 (drawable);
- GdkGCWin32 *gc_private = GDK_GC_WIN32 (gc);
GdkImagePrivateWin32 *image_private = (GdkImagePrivateWin32 *) image;
GdkColormapPrivateWin32 *colormap_private = (GdkColormapPrivateWin32 *) impl->colormap;
HDC hdc, memdc;
diff --git a/gdk/win32/gdkevents-win32.c b/gdk/win32/gdkevents-win32.c
index cc470c3ca2..a847c6a63f 100644
--- a/gdk/win32/gdkevents-win32.c
+++ b/gdk/win32/gdkevents-win32.c
@@ -133,7 +133,6 @@ static GSourceFuncs event_funcs = {
GPollFD event_poll_fd;
static GdkWindow *current_window = NULL;
-static HWND active = NULL;
static gint current_x, current_y;
static gdouble current_x_root, current_y_root;
static UINT gdk_ping_msg;
@@ -148,11 +147,11 @@ static PFN_TrackMouseEvent track_mouse_event = NULL;
static gboolean use_ime_composition = FALSE;
-LRESULT CALLBACK
-gdk_window_procedure (HWND hwnd,
- UINT message,
- WPARAM wparam,
- LPARAM lparam)
+static LRESULT
+real_window_procedure (HWND hwnd,
+ UINT message,
+ WPARAM wparam,
+ LPARAM lparam)
{
GdkEventPrivate event;
GdkEvent *eventp;
@@ -162,9 +161,6 @@ gdk_window_procedure (HWND hwnd,
gint ret_val;
gboolean ret_val_flag;
- GDK_NOTE (EVENTS, g_print ("gdk_window_procedure: %#x %s\n",
- hwnd, gdk_win32_message_name (message)));
-
msg.hwnd = hwnd;
msg.message = message;
msg.wParam = wparam;
@@ -271,12 +267,33 @@ gdk_window_procedure (HWND hwnd,
}
}
+LRESULT CALLBACK
+gdk_window_procedure (HWND hwnd,
+ UINT message,
+ WPARAM wparam,
+ LPARAM lparam)
+{
+ LRESULT retval;
+
+ GDK_NOTE (EVENTS, g_print ("gdk_window_procedure: %#lx %s\n",
+ (gulong) hwnd, gdk_win32_message_name (message)));
+
+ retval = real_window_procedure (hwnd, message, wparam, lparam);
+
+ GDK_NOTE (EVENTS, g_print ("gdk_window_procedure: %#lx returns %ld\n",
+ (gulong) hwnd, retval));
+
+ return retval;
+}
+
void
gdk_events_init (void)
{
HRESULT hres;
+#ifdef USE_TRACKMOUSEEVENT
HMODULE user32, imm32;
HINSTANCE commctrl32;
+#endif
gdk_ping_msg = RegisterWindowMessage ("gdk-ping");
GDK_NOTE (EVENTS, g_print ("gdk-ping = %#.03x\n",
@@ -297,12 +314,12 @@ gdk_events_init (void)
if (hres == S_OK)
{
- GDK_NOTE (EVENTS, g_print ("IActiveIMMApp created %#x\n",
+ GDK_NOTE (EVENTS, g_print ("IActiveIMMApp created %p\n",
active_imm_app));
(*active_imm_app->lpVtbl->Activate) (active_imm_app, TRUE);
hres = (*active_imm_app->lpVtbl->QueryInterface) (active_imm_app, &IID_IActiveIMMMessagePumpOwner, &active_imm_msgpump_owner);
- GDK_NOTE (EVENTS, g_print ("IActiveIMMMessagePumpOwner created %#x\n",
+ GDK_NOTE (EVENTS, g_print ("IActiveIMMMessagePumpOwner created %p\n",
active_imm_msgpump_owner));
(active_imm_msgpump_owner->lpVtbl->Start) (active_imm_msgpump_owner);
}
@@ -496,10 +513,10 @@ gdk_pointer_grab (GdkWindow *window,
{
if (!GDK_WINDOW_DESTROYED (window))
{
- GDK_NOTE (EVENTS, g_print ("gdk_pointer_grab: %#x %s %#x %s\n",
- GDK_WINDOW_HWND (window),
+ GDK_NOTE (EVENTS, g_print ("gdk_pointer_grab: %#lx %s %#lx %s\n",
+ (gulong) GDK_WINDOW_HWND (window),
(owner_events ? "TRUE" : "FALSE"),
- hcursor,
+ (gulong) hcursor,
event_mask_string (event_mask)));
p_grab_mask = event_mask;
p_grab_owner_events = (owner_events != 0);
@@ -606,8 +623,8 @@ gdk_keyboard_grab (GdkWindow *window,
g_return_val_if_fail (window != NULL, 0);
g_return_val_if_fail (GDK_IS_WINDOW (window), 0);
- GDK_NOTE (EVENTS, g_print ("gdk_keyboard_grab %#x\n",
- GDK_WINDOW_HWND (window)));
+ GDK_NOTE (EVENTS, g_print ("gdk_keyboard_grab %#lx\n",
+ (gulong) GDK_WINDOW_HWND (window)));
if (!GDK_WINDOW_DESTROYED (window))
{
@@ -646,38 +663,6 @@ gdk_keyboard_ungrab (guint32 time)
k_grab_window = NULL;
}
-static void
-gdk_io_destroy (gpointer data)
-{
- GdkIOClosure *closure = data;
-
- if (closure->notify)
- closure->notify (closure->data);
-
- g_free (closure);
-}
-
-static gboolean
-gdk_io_invoke (GIOChannel *source,
- GIOCondition condition,
- gpointer data)
-{
- GdkIOClosure *closure = data;
- GdkInputCondition gdk_cond = 0;
-
- if (condition & (G_IO_IN | G_IO_PRI))
- gdk_cond |= GDK_INPUT_READ;
- if (condition & G_IO_OUT)
- gdk_cond |= GDK_INPUT_WRITE;
- if (condition & (G_IO_ERR | G_IO_HUP | G_IO_NVAL))
- gdk_cond |= GDK_INPUT_EXCEPTION;
-
- if (closure->condition & gdk_cond)
- closure->function (closure->data, g_io_channel_unix_get_fd (source), gdk_cond);
-
- return TRUE;
-}
-
static GdkFilterReturn
gdk_event_apply_filters (MSG *msg,
GdkEvent *event,
@@ -835,16 +820,18 @@ build_keypress_event (GdkWindowImplWin32 *impl,
if (ucount == 0)
event->key.keyval = GDK_VoidSymbol;
else if (msg->message == WM_CHAR || msg->message == WM_SYSCHAR)
- if (msg->wParam < ' ')
- {
- event->key.keyval = msg->wParam + '@';
- /* This is needed in case of Alt+nnn or Alt+0nnn (on the numpad)
- * where nnn<32
- */
- event->key.state |= GDK_CONTROL_MASK;
- }
- else
- event->key.keyval = gdk_unicode_to_keyval (wbuf[0]);
+ {
+ if (msg->wParam < ' ')
+ {
+ event->key.keyval = msg->wParam + '@';
+ /* This is needed in case of Alt+nnn or Alt+0nnn (on the numpad)
+ * where nnn<32
+ */
+ event->key.state |= GDK_CONTROL_MASK;
+ }
+ else
+ event->key.keyval = gdk_unicode_to_keyval (wbuf[0]);
+ }
build_key_event_state (event);
@@ -873,7 +860,6 @@ build_keypress_event (GdkWindowImplWin32 *impl,
while (ucleft-- > 0)
{
int first;
- int i;
wchar_t c = *wcp++;
if (c < 0x80)
@@ -1004,7 +990,7 @@ print_event (GdkEvent *event)
case GDK_NO_EXPOSE: g_print ("GDK_NO_EXPOSE "); break;
case GDK_SCROLL: g_print ("GDK_SCROLL "); break;
}
- g_print ("%#x ", GDK_WINDOW_HWND (event->any.window));
+ g_print ("%#lx ", (gulong) GDK_WINDOW_HWND (event->any.window));
switch (event->any.type)
{
@@ -1062,6 +1048,9 @@ print_event (GdkEvent *event)
"???")))));
print_event_state (event->scroll.state);
break;
+ default:
+ /* Nothing */
+ break;
}
g_print ("\n");
}
@@ -1172,7 +1161,7 @@ translate_mouse_coords (GdkWindow *window1,
ClientToScreen (GDK_WINDOW_HWND (window1), &pt);
ScreenToClient (GDK_WINDOW_HWND (window2), &pt);
msg->lParam = MAKELPARAM (pt.x, pt.y);
- GDK_NOTE (EVENTS, g_print ("...new coords are (%d,%d)\n", pt.x, pt.y));
+ GDK_NOTE (EVENTS, g_print ("...new coords are (%ld,%ld)\n", pt.x, pt.y));
}
static gboolean
@@ -1195,8 +1184,8 @@ propagate (GdkWindow **window,
}
else
{
- GDK_NOTE (EVENTS, g_print ("...sending to grabber %#x\n",
- GDK_WINDOW_HWND (grab_window)));
+ GDK_NOTE (EVENTS, g_print ("...sending to grabber %#lx\n",
+ (gulong) GDK_WINDOW_HWND (grab_window)));
gdk_drawable_unref (*window);
*window = grab_window;
gdk_drawable_ref (*window);
@@ -1224,8 +1213,9 @@ propagate (GdkWindow **window,
else
{
/* Grabbed! */
- GDK_NOTE (EVENTS, g_print ("...sending to grabber %#x\n",
- GDK_WINDOW_HWND (grab_window)));
+ GDK_NOTE (EVENTS,
+ g_print ("...sending to grabber %#lx\n",
+ (gulong) GDK_WINDOW_HWND (grab_window)));
gdk_drawable_unref (*window);
*window = grab_window;
gdk_drawable_ref (*window);
@@ -1243,8 +1233,8 @@ propagate (GdkWindow **window,
gdk_drawable_unref (*window);
*window = GDK_WINDOW (GDK_WINDOW_OBJECT (*window)->parent);
gdk_drawable_ref (*window);
- GDK_NOTE (EVENTS, g_print ("...propagating to %#x\n",
- GDK_WINDOW_HWND (*window)));
+ GDK_NOTE (EVENTS, g_print ("...propagating to %#lx\n",
+ (gulong) GDK_WINDOW_HWND (*window)));
/* The only branch where we actually continue the loop */
}
}
@@ -1338,7 +1328,6 @@ gdk_event_translate (GdkEvent *event,
{
DWORD pidActWin;
DWORD pidThis;
- DWORD dwStyle;
PAINTSTRUCT paintstruct;
HDC hdc;
HDC bgdc;
@@ -1362,17 +1351,14 @@ gdk_event_translate (GdkEvent *event,
GdkWindow *orig_window, *new_window;
GdkColormapPrivateWin32 *colormap_private;
- GdkEventMask mask;
GdkPixmap *pixmap;
GdkPixmapImplWin32 *pixmap_impl;
int button;
- int i, j, n, k;
+ int i, j;
gchar buf[256];
- gchar *msgname;
gboolean return_val;
- gboolean flag;
return_val = FALSE;
@@ -1402,8 +1388,8 @@ gdk_event_translate (GdkEvent *event,
* removed it. Repost the same message to our queue so that
* we will get it later when we are prepared.
*/
- GDK_NOTE(MISC, g_print("gdk_event_translate: %#x %s posted.\n",
- msg->hwnd,
+ GDK_NOTE(MISC, g_print("gdk_event_translate: %#lx %s posted.\n",
+ (gulong) msg->hwnd,
msg->message == WM_MOVE ?
"WM_MOVE" : "WM_SIZE"));
@@ -1432,8 +1418,8 @@ gdk_event_translate (GdkEvent *event,
if (msg->message == gdk_selection_notify_msg)
{
- GDK_NOTE (EVENTS, g_print ("gdk_selection_notify_msg: %#x\n",
- msg->hwnd));
+ GDK_NOTE (EVENTS, g_print ("gdk_selection_notify_msg: %#lx\n",
+ (gulong) msg->hwnd));
event->selection.type = GDK_SELECTION_NOTIFY;
event->selection.window = window;
@@ -1448,8 +1434,8 @@ gdk_event_translate (GdkEvent *event,
}
else if (msg->message == gdk_selection_request_msg)
{
- GDK_NOTE (EVENTS, g_print ("gdk_selection_request_msg: %#x\n",
- msg->hwnd));
+ GDK_NOTE (EVENTS, g_print ("gdk_selection_request_msg: %#lx\n",
+ (gulong) msg->hwnd));
event->selection.type = GDK_SELECTION_REQUEST;
event->selection.window = window;
@@ -1465,8 +1451,8 @@ gdk_event_translate (GdkEvent *event,
}
else if (msg->message == gdk_selection_clear_msg)
{
- GDK_NOTE (EVENTS, g_print ("gdk_selection_clear_msg: %#x\n",
- msg->hwnd));
+ GDK_NOTE (EVENTS, g_print ("gdk_selection_clear_msg: %#lx\n",
+ (gulong) msg->hwnd));
event->selection.type = GDK_SELECTION_CLEAR;
event->selection.window = window;
@@ -1521,8 +1507,8 @@ gdk_event_translate (GdkEvent *event,
{
case WM_INPUTLANGCHANGE:
GDK_NOTE (EVENTS,
- g_print ("WM_INPUTLANGCHANGE: %#x charset %d locale %x\n",
- msg->hwnd, msg->wParam, msg->lParam));
+ g_print ("WM_INPUTLANGCHANGE: %#lx charset %lu locale %lx\n",
+ (gulong) msg->hwnd, (gulong) msg->wParam, msg->lParam));
window_impl->input_locale = (HKL) msg->lParam;
TranslateCharsetInfo ((DWORD FAR *) msg->wParam,
&window_impl->charset_info,
@@ -1532,9 +1518,9 @@ gdk_event_translate (GdkEvent *event,
case WM_SYSKEYUP:
case WM_SYSKEYDOWN:
GDK_NOTE (EVENTS,
- g_print ("WM_SYSKEY%s: %#x %s %#x %s\n",
+ g_print ("WM_SYSKEY%s: %#lx %s %#x %s\n",
(msg->message == WM_SYSKEYUP ? "UP" : "DOWN"),
- msg->hwnd,
+ (gulong) msg->hwnd,
(GetKeyNameText (msg->lParam, buf,
sizeof (buf)) > 0 ?
buf : ""),
@@ -1560,9 +1546,9 @@ gdk_event_translate (GdkEvent *event,
case WM_KEYUP:
case WM_KEYDOWN:
GDK_NOTE (EVENTS,
- g_print ("WM_KEY%s: %#x %s %#x %s\n",
+ g_print ("WM_KEY%s: %#lx %s %#x %s\n",
(msg->message == WM_KEYUP ? "UP" : "DOWN"),
- msg->hwnd,
+ (gulong) msg->hwnd,
(GetKeyNameText (msg->lParam, buf,
sizeof (buf)) > 0 ?
buf : ""),
@@ -1757,15 +1743,49 @@ gdk_event_translate (GdkEvent *event,
ignore_wm_char = FALSE;
break;
case VK_OEM_PLUS: /* On my Win98, the '+' key comes in
- * as VK_OEM_PLUS
+ * as VK_OEM_PLUS, etc.
*/
+ case VK_OEM_COMMA:
+ case VK_OEM_MINUS:
+ case VK_OEM_PERIOD:
+ case VK_OEM_2:
+ case VK_OEM_4:
+ case VK_OEM_5:
+ case VK_OEM_6:
if (!is_altgr_key && (GetKeyState (VK_CONTROL) < 0
|| GetKeyState (VK_MENU) < 0))
/* Control- or Alt-plus won't come in as WM_CHAR,
* but beware of AltGr-plus which is backslash on
* Finnish keyboards
*/
- event->key.keyval = '+';
+ /* All these VK_OEM keycodes happen to be the corresponding ASCII
+ * char + 0x90
+ */
+ event->key.keyval = '+' - 0x90;
+ else
+ ignore_wm_char = FALSE;
+ break;
+ case VK_OEM_1:
+ if (!is_altgr_key && (GetKeyState (VK_CONTROL) < 0
+ || GetKeyState (VK_MENU) < 0))
+ /* ;: on US keyboard */
+ event->key.keyval = ';';
+ else
+ ignore_wm_char = FALSE;
+ break;
+ case VK_OEM_3:
+ if (!is_altgr_key && (GetKeyState (VK_CONTROL) < 0
+ || GetKeyState (VK_MENU) < 0))
+ /* `~ on US keyboard */
+ event->key.keyval = '`';
+ else
+ ignore_wm_char = FALSE;
+ break;
+ case VK_OEM_7:
+ if (!is_altgr_key && (GetKeyState (VK_CONTROL) < 0
+ || GetKeyState (VK_MENU) < 0))
+ /* '" on US keyboard */
+ event->key.keyval = '\'';
else
ignore_wm_char = FALSE;
break;
@@ -1809,24 +1829,24 @@ gdk_event_translate (GdkEvent *event,
if (!use_ime_composition)
break;
- GDK_NOTE (EVENTS, g_print ("WM_IME_COMPOSITION: %#x %#x\n",
- msg->hwnd, msg->lParam));
+ GDK_NOTE (EVENTS, g_print ("WM_IME_COMPOSITION: %#lx %#lx\n",
+ (gulong) msg->hwnd, msg->lParam));
if (msg->lParam & GCS_RESULTSTR)
goto wm_char;
break;
case WM_IME_CHAR:
GDK_NOTE (EVENTS,
- g_print ("WM_IME_CHAR: %#x bytes: %#.04x\n",
- msg->hwnd, msg->wParam));
+ g_print ("WM_IME_CHAR: %#lx bytes: %#.04x\n",
+ (gulong) msg->hwnd, msg->wParam));
goto wm_char;
case WM_CHAR:
case WM_SYSCHAR:
GDK_NOTE (EVENTS,
- g_print ("WM_%sCHAR: %#x %#x %#s %s\n",
+ g_print ("WM_%sCHAR: %#lx %#x %s %s\n",
(msg->message == WM_CHAR ? "" : "SYS"),
- msg->hwnd, msg->wParam,
+ (gulong) msg->hwnd, msg->wParam,
decode_key_lparam (msg->lParam),
(ignore_wm_char ? "ignored" : "")));
@@ -1894,9 +1914,9 @@ gdk_event_translate (GdkEvent *event,
buttondown0:
GDK_NOTE (EVENTS,
- g_print ("WM_%cBUTTONDOWN: %#x (%d,%d)\n",
+ g_print ("WM_%cBUTTONDOWN: %#lx (%d,%d)\n",
" LMR"[button],
- msg->hwnd,
+ (gulong) msg->hwnd,
LOWORD (msg->lParam), HIWORD (msg->lParam)));
if (GDK_WINDOW_OBJECT (window)->extension_events != 0
@@ -1961,9 +1981,9 @@ gdk_event_translate (GdkEvent *event,
buttonup0:
GDK_NOTE (EVENTS,
- g_print ("WM_%cBUTTONUP: %#x (%d,%d)\n",
+ g_print ("WM_%cBUTTONUP: %#lx (%d,%d)\n",
" LMR"[button],
- msg->hwnd,
+ (gulong) msg->hwnd,
LOWORD (msg->lParam), HIWORD (msg->lParam)));
if (GDK_WINDOW_OBJECT (window)->extension_events != 0
@@ -2007,8 +2027,8 @@ gdk_event_translate (GdkEvent *event,
case WM_MOUSEMOVE:
GDK_NOTE (EVENTS,
- g_print ("WM_MOUSEMOVE: %#x %#x (%d,%d)\n",
- msg->hwnd, msg->wParam,
+ g_print ("WM_MOUSEMOVE: %#lx %#x (%d,%d)\n",
+ (gulong) msg->hwnd, msg->wParam,
LOWORD (msg->lParam), HIWORD (msg->lParam)));
/* If we haven't moved, don't create any event.
@@ -2061,8 +2081,8 @@ gdk_event_translate (GdkEvent *event,
case WM_NCMOUSEMOVE:
GDK_NOTE (EVENTS,
- g_print ("WM_NCMOUSEMOVE: %#x x,y: %d %d\n",
- msg->hwnd,
+ g_print ("WM_NCMOUSEMOVE: %#lx x,y: %d %d\n",
+ (gulong) msg->hwnd,
LOWORD (msg->lParam), HIWORD (msg->lParam)));
if (track_mouse_event == NULL
&& current_window != NULL
@@ -2095,7 +2115,7 @@ gdk_event_translate (GdkEvent *event,
break;
case WM_MOUSEWHEEL:
- GDK_NOTE (EVENTS, g_print ("WM_MOUSEWHEEL: %#x\n", msg->hwnd));
+ GDK_NOTE (EVENTS, g_print ("WM_MOUSEWHEEL: %#lx\n", (gulong) msg->hwnd));
if (GDK_WINDOW_OBJECT (window)->extension_events != 0
&& gdk_input_ignore_core)
@@ -2148,7 +2168,7 @@ gdk_event_translate (GdkEvent *event,
#ifdef USE_TRACKMOUSEEVENT
case WM_MOUSELEAVE:
- GDK_NOTE (EVENTS, g_print ("WM_MOUSELEAVE: %#x\n", msg->hwnd));
+ GDK_NOTE (EVENTS, g_print ("WM_MOUSELEAVE: %#lx\n", (gulong) msg->hwnd));
if (!(window_impl->event_mask & GDK_LEAVE_NOTIFY_MASK))
break;
@@ -2186,10 +2206,10 @@ gdk_event_translate (GdkEvent *event,
case WM_SETFOCUS:
case WM_KILLFOCUS:
- GDK_NOTE (EVENTS, g_print ("WM_%sFOCUS: %#x\n",
+ GDK_NOTE (EVENTS, g_print ("WM_%sFOCUS: %#lx\n",
(msg->message == WM_SETFOCUS ?
"SET" : "KILL"),
- msg->hwnd));
+ (gulong) msg->hwnd));
if (!(window_impl->event_mask & GDK_FOCUS_CHANGE_MASK))
break;
@@ -2201,8 +2221,8 @@ gdk_event_translate (GdkEvent *event,
break;
case WM_ERASEBKGND:
- GDK_NOTE (EVENTS, g_print ("WM_ERASEBKGND: %#x dc %#x\n",
- msg->hwnd, msg->wParam));
+ GDK_NOTE (EVENTS, g_print ("WM_ERASEBKGND: %#lx dc %#x\n",
+ (gulong) msg->hwnd, msg->wParam));
if (GDK_WINDOW_DESTROYED (window))
break;
@@ -2250,11 +2270,11 @@ gdk_event_translate (GdkEvent *event,
GetClipBox (hdc, &rect);
GDK_NOTE (EVENTS,
- g_print ("...%dx%d@+%d+%d BG_PIXEL %.06x\n",
+ g_print ("...%ldx%ld@+%ld+%ld BG_PIXEL %.06lx\n",
rect.right - rect.left,
rect.bottom - rect.top,
rect.left, rect.top,
- bg));
+ (gulong) bg));
hbr = CreateSolidBrush (bg);
#if 0
g_print ("...CreateSolidBrush (%.08x) = %.08x\n", bg, hbr);
@@ -2281,10 +2301,10 @@ gdk_event_translate (GdkEvent *event,
else
{
GDK_NOTE (EVENTS,
- g_print ("...blitting pixmap %#x (%dx%d) "
+ g_print ("...blitting pixmap %#lx (%dx%d) "
"all over the place,\n"
- "...clip box = %dx%d@+%d+%d\n",
- GDK_PIXMAP_HBITMAP (pixmap),
+ "...clip box = %ldx%ld@+%ld+%ld\n",
+ (gulong) GDK_PIXMAP_HBITMAP (pixmap),
pixmap_impl->width, pixmap_impl->height,
rect.right - rect.left, rect.bottom - rect.top,
rect.left, rect.top));
@@ -2339,21 +2359,21 @@ gdk_event_translate (GdkEvent *event,
case WM_PAINT:
if (!GetUpdateRect(msg->hwnd, NULL, FALSE))
{
- GDK_NOTE (EVENTS, g_print ("WM_PAINT: %#x no update rect\n",
- msg->hwnd));
+ GDK_NOTE (EVENTS, g_print ("WM_PAINT: %#lx no update rect\n",
+ (gulong) msg->hwnd));
break;
}
hdc = BeginPaint (msg->hwnd, &paintstruct);
GDK_NOTE (EVENTS,
- g_print ("WM_PAINT: %#x %dx%d@+%d+%d %s dc %#x\n",
- msg->hwnd,
+ g_print ("WM_PAINT: %#lx %ldx%ld@+%ld+%ld %s dc %#lx\n",
+ (gulong) msg->hwnd,
paintstruct.rcPaint.right - paintstruct.rcPaint.left,
paintstruct.rcPaint.bottom - paintstruct.rcPaint.top,
paintstruct.rcPaint.left, paintstruct.rcPaint.top,
(paintstruct.fErase ? "erase" : ""),
- hdc));
+ (gulong) hdc));
EndPaint (msg->hwnd, &paintstruct);
@@ -2389,8 +2409,8 @@ gdk_event_translate (GdkEvent *event,
break;
case WM_SETCURSOR:
- GDK_NOTE (EVENTS, g_print ("WM_SETCURSOR: %#x %#x %#x\n",
- msg->hwnd,
+ GDK_NOTE (EVENTS, g_print ("WM_SETCURSOR: %#lx %#x %#x\n",
+ (gulong) msg->hwnd,
LOWORD (msg->lParam), HIWORD (msg->lParam)));
if (LOWORD (msg->lParam) != HTCLIENT)
@@ -2405,7 +2425,7 @@ gdk_event_translate (GdkEvent *event,
if (hcursor != NULL)
{
- GDK_NOTE (EVENTS, g_print ("...SetCursor(%#x)\n", hcursor));
+ GDK_NOTE (EVENTS, g_print ("...SetCursor(%#lx)\n", (gulong) hcursor));
SetCursor (hcursor);
*ret_val_flagp = TRUE;
*ret_valp = TRUE;
@@ -2413,8 +2433,8 @@ gdk_event_translate (GdkEvent *event,
break;
case WM_SHOWWINDOW:
- GDK_NOTE (EVENTS, g_print ("WM_SHOWWINDOW: %#x %d\n",
- msg->hwnd,
+ GDK_NOTE (EVENTS, g_print ("WM_SHOWWINDOW: %#lx %d\n",
+ (gulong) msg->hwnd,
msg->wParam));
if (!(window_impl->event_mask & GDK_STRUCTURE_MASK))
@@ -2436,8 +2456,8 @@ gdk_event_translate (GdkEvent *event,
case WM_SIZE:
GDK_NOTE (EVENTS,
- g_print ("WM_SIZE: %#x %s %dx%d\n",
- msg->hwnd,
+ g_print ("WM_SIZE: %#lx %s %dx%d\n",
+ (gulong) msg->hwnd,
(msg->wParam == SIZE_MAXHIDE ? "MAXHIDE" :
(msg->wParam == SIZE_MAXIMIZED ? "MAXIMIZED" :
(msg->wParam == SIZE_MAXSHOW ? "MAXSHOW" :
@@ -2496,7 +2516,7 @@ gdk_event_translate (GdkEvent *event,
break;
case WM_GETMINMAXINFO:
- GDK_NOTE (EVENTS, g_print ("WM_GETMINMAXINFO: %#x\n", msg->hwnd));
+ GDK_NOTE (EVENTS, g_print ("WM_GETMINMAXINFO: %#lx\n", (gulong) msg->hwnd));
mmi = (MINMAXINFO*) msg->lParam;
if (window_impl->hint_flags & GDK_HINT_MIN_SIZE)
@@ -2515,8 +2535,8 @@ gdk_event_translate (GdkEvent *event,
break;
case WM_MOVE:
- GDK_NOTE (EVENTS, g_print ("WM_MOVE: %#x (%d,%d)\n",
- msg->hwnd,
+ GDK_NOTE (EVENTS, g_print ("WM_MOVE: %#lx (%d,%d)\n",
+ (gulong) msg->hwnd,
LOWORD (msg->lParam), HIWORD (msg->lParam)));
if (!(window_impl->event_mask & GDK_STRUCTURE_MASK))
@@ -2543,7 +2563,7 @@ gdk_event_translate (GdkEvent *event,
break;
case WM_CLOSE:
- GDK_NOTE (EVENTS, g_print ("WM_CLOSE: %#x\n", msg->hwnd));
+ GDK_NOTE (EVENTS, g_print ("WM_CLOSE: %#lx\n", (gulong) msg->hwnd));
event->any.type = GDK_DELETE;
event->any.window = window;
@@ -2566,10 +2586,10 @@ gdk_event_translate (GdkEvent *event,
flag = FALSE;
GDK_NOTE (EVENTS, flag = TRUE);
if (flag)
- g_print ("WM_%s: %#x %#x (%s)\n",
+ g_print ("WM_%s: %#lx %#x (%s)\n",
(msg->message == WM_RENDERFORMAT ? "RENDERFORMAT" :
"RENDERALLFORMATS"),
- msg->hwnd,
+ (gulong) msg->hwnd,
msg->wParam,
(msg->wParam == CF_TEXT ? "CF_TEXT" :
(msg->wParam == CF_DIB ? "CF_DIB" :
@@ -2611,7 +2631,7 @@ gdk_event_translate (GdkEvent *event,
#endif /* No delayed rendering */
case WM_DESTROY:
- GDK_NOTE (EVENTS, g_print ("WM_DESTROY: %#x\n", msg->hwnd));
+ GDK_NOTE (EVENTS, g_print ("WM_DESTROY: %#lx\n", (gulong) msg->hwnd));
event->any.type = GDK_DESTROY;
event->any.window = window;
@@ -2640,20 +2660,20 @@ gdk_event_translate (GdkEvent *event,
* constants as case labels.
*/
case WT_PACKET:
- GDK_NOTE (EVENTS, g_print ("WT_PACKET: %#x %d %#x\n",
- msg->hwnd,
+ GDK_NOTE (EVENTS, g_print ("WT_PACKET: %#lx %d %#lx\n",
+ (gulong) msg->hwnd,
msg->wParam, msg->lParam));
goto wintab;
case WT_CSRCHANGE:
- GDK_NOTE (EVENTS, g_print ("WT_CSRCHANGE: %#x %d %#x\n",
- msg->hwnd,
+ GDK_NOTE (EVENTS, g_print ("WT_CSRCHANGE: %#lx %d %#lx\n",
+ (gulong) msg->hwnd,
msg->wParam, msg->lParam));
goto wintab;
case WT_PROXIMITY:
- GDK_NOTE (EVENTS, g_print ("WT_PROXIMITY: %#x %#x %d %d\n",
- msg->hwnd, msg->wParam,
+ GDK_NOTE (EVENTS, g_print ("WT_PROXIMITY: %#lx %#x %d %d\n",
+ (gulong) msg->hwnd, msg->wParam,
LOWORD (msg->lParam),
HIWORD (msg->lParam)));
/* Fall through */
@@ -2664,9 +2684,9 @@ gdk_event_translate (GdkEvent *event,
#endif
default:
- GDK_NOTE (EVENTS, g_print ("%s: %#x %#x %#x\n",
+ GDK_NOTE (EVENTS, g_print ("%s: %#lx %#x %#lx\n",
gdk_win32_message_name (msg->message),
- msg->hwnd,
+ (gulong) msg->hwnd,
msg->wParam, msg->lParam));
}
@@ -2699,16 +2719,13 @@ done:
void
gdk_events_queue (void)
{
- GList *node;
- GdkEvent *event;
MSG msg;
- LRESULT lres;
while (!gdk_event_queue_find_first ()
&& PeekMessage (&msg, NULL, 0, 0, PM_REMOVE))
{
- GDK_NOTE (EVENTS, g_print ("PeekMessage: %#x %s\n",
- msg.hwnd, gdk_win32_message_name (msg.message)));
+ GDK_NOTE (EVENTS, g_print ("PeekMessage: %#lx %s\n",
+ (gulong) msg.hwnd, gdk_win32_message_name (msg.message)));
if (active_imm_msgpump_owner == NULL
|| (active_imm_msgpump_owner->lpVtbl->OnTranslateMessage) (active_imm_msgpump_owner, &msg) != S_OK)
diff --git a/gdk/win32/gdkprivate-win32.h b/gdk/win32/gdkprivate-win32.h
index 29b2161509..98cf2a01df 100644
--- a/gdk/win32/gdkprivate-win32.h
+++ b/gdk/win32/gdkprivate-win32.h
@@ -76,6 +76,12 @@ gchar *gdk_win32_last_error_string (void);
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);
#ifdef __GNUC__
#define WIN32_API_FAILED(api) gdk_win32_api_failed (__FILE__ ":" __PRETTY_FUNCTION__, __LINE__, api)
diff --git a/gdk/win32/gdkwin32.h b/gdk/win32/gdkwin32.h
index 3a420fea2d..0f30d4d362 100644
--- a/gdk/win32/gdkwin32.h
+++ b/gdk/win32/gdkwin32.h
@@ -67,10 +67,47 @@ extern "C" {
#define FS_VIETNAMESE 0x100
#endif
+/* Some virtual keycodes are missing */
#ifndef VM_OEM_PLUS
#define VK_OEM_PLUS 0xBB
#endif
+#ifndef VK_OEM_COMMA
+#define VK_OEM_COMMA 0xBC
+#endif
+
+#ifndef VK_OEM_MINUS
+#define VK_OEM_MINUS 0xBD
+#endif
+
+#ifndef VK_OEM_PERIOD
+#define VK_OEM_PERIOD 0xBE
+#endif
+
+#ifndef VK_OEM_1
+#define VK_OEM_1 0xBA
+#endif
+#ifndef VK_OEM_2
+#define VK_OEM_2 0xBF
+#endif
+#ifndef VK_OEM_3
+#define VK_OEM_3 0xC0
+#endif
+#ifndef VK_OEM_4
+#define VK_OEM_4 0xDB
+#endif
+#ifndef VK_OEM_5
+#define VK_OEM_5 0xDC
+#endif
+#ifndef VK_OEM_6
+#define VK_OEM_6 0xDD
+#endif
+#ifndef VK_OEM_7
+#define VK_OEM_7 0xDE
+#endif
+#ifndef VK_OEM_8
+#define VK_OEM_8 0xDF
+#endif
/* Missing messages */
#ifndef WM_MOUSEWHEEL
diff --git a/gdk/win32/makefile.mingw.in b/gdk/win32/makefile.mingw.in
index 61f499cb81..8b2bf53866 100644
--- a/gdk/win32/makefile.mingw.in
+++ b/gdk/win32/makefile.mingw.in
@@ -13,7 +13,7 @@ include ../../build/win32/make.mingw
# Possibly override GTK+ version from build/win32/module.defs
GTK_VER = @GTK_MAJOR_VERSION@.@GTK_MINOR_VERSION@
-OPTIMIZE = -g
+OPTIMIZE = -g -Wall
INCLUDES = -I ../.. -I .. -I $(WTKIT)/include
DEPCFLAGS = $(GLIB_CFLAGS) $(PANGO_CFLAGS)
@@ -42,6 +42,7 @@ gdk_win32_OBJECTS = \
gdkinput.o \
gdkinput-win32.o \
gdkmain-win32.o \
+ gdkpango-win32.o \
gdkpixmap-win32.o \
gdkproperty-win32.o \
gdkselection-win32.o \