summaryrefslogtreecommitdiff
path: root/gdk
diff options
context:
space:
mode:
authorHans Breuer <hans@breuer.org>2005-09-18 12:28:42 +0000
committerHans Breuer <hans@src.gnome.org>2005-09-18 12:28:42 +0000
commite5d06c7ca9b2277e0e7a91acfb5ecb7c2d7683a9 (patch)
treef9ecc4b01e25d8e07f5ff72088c9975721c65ad0 /gdk
parent1127a03f71a7e775bb0e1c886fced484b34d93a8 (diff)
downloadgtk+-e5d06c7ca9b2277e0e7a91acfb5ecb7c2d7683a9.tar.gz
fix typo for GTK_VER; define HAVE_CONFIG_H cause gtkprogressbar.c has
2005-09-18 Hans Breuer <hans@breuer.org> * gtk/makefile.msc.in : fix typo for GTK_VER; define HAVE_CONFIG_H cause gtkprogressbar.c has #include <config.h> conditionally; less noise from generated gtk.def * gtk/stock-icons/makefile.msc gdk/makefile.msc tests/makefile.msc : updated * gtk/gtktrayicon-win32.c : dummy implmentation to make gtk compile. For me it works as well as the *NIX implemenation, that is not at all. * gdk/win32/gdkproperty-win32.c : implement gdk_atom_intern_static_string() * gdk/win32/gdkwindow-win32.c(gdk_window_set_urgency_hint) : only use only use (WINVER >= 0x0500) when available from the SDK. Otherwise fall back to true dynamic linking of FlashWindowEx. Makes gtk+ work on NT4.0 again - if compiled properly. * tests/teststatusicon.c : don't use GNOME icons for testing, but icons already coming with Gtk+. Makes it compile on win32.
Diffstat (limited to 'gdk')
-rw-r--r--gdk/makefile.msc4
-rw-r--r--gdk/win32/gdkproperty-win32.c9
-rw-r--r--gdk/win32/gdkwindow-win32.c34
3 files changed, 43 insertions, 4 deletions
diff --git a/gdk/makefile.msc b/gdk/makefile.msc
index 66bb791d2a..bb8d147151 100644
--- a/gdk/makefile.msc
+++ b/gdk/makefile.msc
@@ -154,7 +154,9 @@ gdkaliasdef.c: gdk.symbols
gdk.def: gdk.symbols
echo EXPORTS > gdk.def
- cl /EP -DINCLUDE_VARIABLES -DG_OS_WIN32 -DGDK_WINDOWING_WIN32 -DALL_FILES gdk.symbols >> gdk.def
+ cl /EP -DINCLUDE_VARIABLES -DG_OS_WIN32 -DGDK_WINDOWING_WIN32 -DALL_FILES \
+ -DG_GNUC_CONST= \
+ gdk.symbols >> gdk.def
libgdk-win32-$(GTK_VER)-0.dll : $(gdk_OBJECTS) gdk.def win32\gdk-win32.lib
$(CC) $(CFLAGS) -LD -Fe$@ $(gdk_OBJECTS) win32\gdk-win32.lib $(EXTRALIBS) \
diff --git a/gdk/win32/gdkproperty-win32.c b/gdk/win32/gdkproperty-win32.c
index 21ca464d2d..5eff72add0 100644
--- a/gdk/win32/gdkproperty-win32.c
+++ b/gdk/win32/gdkproperty-win32.c
@@ -84,6 +84,15 @@ gdk_atom_intern (const gchar *atom_name,
return retval;
}
+GdkAtom
+gdk_atom_intern_static_string (const gchar *atom_name)
+{
+ /* on X11 this is supposed to save memory. On win32 there seems to be
+ * no way to make a difference ?
+ */
+ return gdk_atom_intern (atom_name, FALSE);
+}
+
gchar *
gdk_atom_name (GdkAtom atom)
{
diff --git a/gdk/win32/gdkwindow-win32.c b/gdk/win32/gdkwindow-win32.c
index 81d764cc40..5c2f5a095e 100644
--- a/gdk/win32/gdkwindow-win32.c
+++ b/gdk/win32/gdkwindow-win32.c
@@ -29,9 +29,6 @@
#include <config.h>
#include <stdlib.h>
-#define _WIN32_WINNT 0x0500
-#define WINVER _WIN32_WINNT
-
#include "gdk.h" /* gdk_rectangle_intersect */
#include "gdkevents.h"
#include "gdkpixmap.h"
@@ -1574,6 +1571,8 @@ void
gdk_window_set_urgency_hint (GdkWindow *window,
gboolean urgent)
{
+#if (WINVER >= 0x0500)
+
FLASHWINFO flashwinfo;
g_return_if_fail (GDK_IS_WINDOW (window));
@@ -1592,6 +1591,35 @@ gdk_window_set_urgency_hint (GdkWindow *window,
flashwinfo.dwTimeout = 0;
FlashWindowEx (&flashwinfo);
+#else
+ struct _FLASHWINDOW
+ {
+ UINT cbSize;
+ HWND hwnd;
+ DWORD dwFlags;
+ UINT uCount;
+ DWORD dwTimeout;
+ } flashwindow = { sizeof(flashwindow), GDK_WINDOW_HWND (window), urgent ? 0x07 : 0x0, 0, 0 };
+ typedef BOOL (*PFN_FlashWindowEx) (struct _FLASHWINDOW);
+ PFN_FlashWindowEx flashWindowEx = NULL;
+ gboolean once = TRUE;
+
+ g_return_if_fail (GDK_IS_WINDOW (window));
+ g_return_if_fail (GDK_WINDOW_TYPE (window) != GDK_WINDOW_CHILD);
+
+ if (GDK_WINDOW_DESTROYED (window))
+ return;
+
+ if (once)
+ {
+ flashWindowEx = (PFN_FlashWindowEx)GetProcAddress (GetModuleHandle ("user32.dll"), "FlashWindowEx");
+ once = FALSE;
+ }
+ if (flashWindowEx)
+ flashWindowEx(flashwindow);
+ else
+ FlashWindow (GDK_WINDOW_HWND (window), urgent);
+#endif
}
void