#include <limits.h>
#include <io.h>
-#include <gdk/gdk.h>
-#include <gdk/gdkkeysyms.h>
-#include <gdk/gdki18n.h>
-#include "gdkx.h"
-#include "gdkinput.h"
+#include "gdk.h"
+#include "gdkprivate.h"
+#include "gdkinputprivate.h"
+#include "gdkkeysyms.h"
+
+#include <objbase.h>
static void gdkx_XConvertCase (KeySym symbol,
KeySym *lower,
KeySym *upper);
-#define XConvertCase gdkx_XConvertCase
-
static void gdk_exit_func (void);
-static RETSIGTYPE gdk_signal (int signum);
-
/* Private variable declarations
*/
static int gdk_initialized = 0; /* 1 if the library is initialized,
* 0 otherwise.
*/
-static guint start; /* We use the millisecond
- * timestamps from GetTickCount
- */
-static gboolean timerp = TRUE; /* If TRUE use timeouts when waiting
- * for Windows messages
- */
-static guint32 timer_val = 20; /* Timeout in milliseconds.
- */
-
#ifdef G_ENABLE_DEBUG
static const GDebugKey gdk_debug_keys[] = {
{"events", GDK_DEBUG_EVENTS},
gdk_init_check (int *argc,
char ***argv)
{
- HRESULT hres;
gint i, j, k;
if (gdk_initialized)
if (g_thread_supported ())
gdk_threads_mutex = g_mutex_new ();
- start = GetTickCount ();
-
#ifdef G_ENABLE_DEBUG
{
gchar *debug_string = getenv("GDK_DEBUG");
if (getenv ("GDK_IGNORE_WINTAB") != NULL)
gdk_input_ignore_wintab = TRUE;
+ if (getenv ("GDK_EVENT_FUNC_FROM_WINDOW_PROC") != NULL)
+ gdk_event_func_from_window_proc = TRUE;
+
if (argc && argv)
{
if (*argc > 0)
(*argv)[i] = NULL;
gdk_input_ignore_wintab = TRUE;
}
+ else if (strcmp ("--gdk-event-func-from-window-proc", (*argv)[i]) == 0)
+ {
+ (*argv)[i] = NULL;
+ gdk_event_func_from_window_proc = TRUE;
+ }
i += 1;
}
gdk_ProgInstance = GetModuleHandle (NULL);
gdk_DC = CreateDC ("DISPLAY", NULL, NULL, NULL);
+ gdk_root_window = GetDesktopWindow ();
+
+ CoInitialize (NULL);
gdk_selection_request_msg = RegisterWindowMessage ("gdk-selection-request");
gdk_selection_notify_msg = RegisterWindowMessage ("gdk-selection-notify");
gdk_progclass = g_basename (g_get_prgname ());
gdk_progclass[0] = toupper (gdk_progclass[0]);
- gdk_root_window = HWND_DESKTOP;
-
g_atexit (gdk_exit_func);
gdk_events_init ();
*/
void
-gdk_exit (int errorcode)
+gdk_exit (gint errorcode)
{
/* de-initialisation is done by the gdk_exit_func(),
no need to do this here (Alex J.) */
return TRUE;
}
-/*
- *--------------------------------------------------------------
- * gdk_time_get
- *
- * Get the number of milliseconds since the library was
- * initialized.
- *
- * Arguments:
- *
- * Results:
- * The time since the library was initialized is returned.
- * This time value is accurate to milliseconds even though
- * a more accurate time down to the microsecond could be
- * returned.
- *
- * Side effects:
- *
- *--------------------------------------------------------------
- */
-
-guint32
-gdk_time_get (void)
-{
- guint32 milliseconds;
- guint32 end = GetTickCount ();
-
- if (end < start)
- milliseconds = 0xFFFFFFFF - (start - end) + 1;
- else
- milliseconds = end - start;
-
- return milliseconds;
-}
-
-/*
- *--------------------------------------------------------------
- * gdk_timer_get
- *
- * Returns the current timer.
- *
- * Arguments:
- *
- * Results:
- * Returns the current timer interval. This interval is
- * in units of milliseconds.
- *
- * Side effects:
- *
- *--------------------------------------------------------------
- */
-
-guint32
-gdk_timer_get (void)
-{
- return timer_val;
-}
-
-/*
- *--------------------------------------------------------------
- * gdk_timer_set
- *
- * Sets the timer interval.
- *
- * Arguments:
- * "milliseconds" is the new value for the timer.
- *
- * Results:
- *
- * Side effects:
- * Calls to "gdk_event_get" will last for a maximum
- * of time of "milliseconds". However, a value of 0
- * milliseconds will cause "gdk_event_get" to block
- * indefinately until an event is received.
- *
- *--------------------------------------------------------------
- */
-
-void
-gdk_timer_set (guint32 milliseconds)
-{
- timer_val = milliseconds;
-#ifdef USE_PEEKNAMEDPIPE
- /* When using PeekNamedPipe, can't have too long timeouts.
- */
- if (timer_val > 10)
- timer_val = 10;
- else if (timer_val == 0)
- timer_val = 0;
-#endif
-}
-
-void
-gdk_timer_enable (void)
-{
- timerp = TRUE;
-}
-
-void
-gdk_timer_disable (void)
-{
-#ifdef USE_PEEKNAMEDPIPE
- /* Can't disable timeouts when using PeekNamedPipe */
-#else
- timerp = FALSE;
-#endif
-}
-
/*
*--------------------------------------------------------------
* gdk_screen_width
{
gint return_val;
- return_val = gdk_root_parent.width;
+ return_val = gdk_root_parent->drawable.width;
return return_val;
}
{
gint return_val;
- return_val = gdk_root_parent.height;
+ return_val = gdk_root_parent->drawable.height;
return return_val;
}
gdk_input_exit ();
gdk_key_repeat_restore ();
gdk_dnd_exit ();
+
+ CoUninitialize ();
+
+ DeleteDC (gdk_DC);
+ gdk_DC = NULL;
gdk_initialized = 0;
}
}
{ 0x000ef9, "Hangul_J_KkogjiDalrinIeung" },
{ 0x000efa, "Hangul_J_YeorinHieuh" },
{ 0x000eff, "Korean_Won" },
+ { 0x0013bc, "OE" },
+ { 0x0013bd, "oe" },
+ { 0x0013be, "Ydiaeresis" },
+ { 0x0020a0, "EcuSign" },
+ { 0x0020a1, "ColonSign" },
+ { 0x0020a2, "CruzeiroSign" },
+ { 0x0020a3, "FFrancSign" },
+ { 0x0020a4, "LiraSign" },
+ { 0x0020a5, "MillSign" },
+ { 0x0020a6, "NairaSign" },
+ { 0x0020a7, "PesetaSign" },
+ { 0x0020a8, "RupeeSign" },
+ { 0x0020a9, "WonSign" },
+ { 0x0020aa, "NewSheqelSign" },
+ { 0x0020ab, "DongSign" },
+ { 0x0020ac, "EuroSign" },
{ 0x00fd01, "3270_Duplicate" },
{ 0x00fd02, "3270_FieldMark" },
{ 0x00fd03, "3270_Right2" },
{ 0x00ff2e, "Kana_Shift" },
{ 0x00ff2f, "Eisu_Shift" },
{ 0x00ff30, "Eisu_toggle" },
+ { 0x00ff31, "Hangul" },
+ { 0x00ff32, "Hangul_Start" },
+ { 0x00ff33, "Hangul_End" },
+ { 0x00ff34, "Hangul_Hanja" },
+ { 0x00ff35, "Hangul_Jamo" },
+ { 0x00ff36, "Hangul_Romaja" },
+ { 0x00ff37, "Codeinput" },
+ { 0x00ff38, "Hangul_Jeonja" },
+ { 0x00ff39, "Hangul_Banja" },
+ { 0x00ff3a, "Hangul_PreHanja" },
+ { 0x00ff3b, "Hangul_PostHanja" },
{ 0x00ff3c, "SingleCandidate" },
{ 0x00ff3d, "MultipleCandidate" },
- { 0x00ff3d, "Zen_Koho" },
- { 0x00ff3e, "Mae_Koho" },
{ 0x00ff3e, "PreviousCandidate" },
+ { 0x00ff3f, "Hangul_Special" },
{ 0x00ff50, "Home" },
{ 0x00ff51, "Left" },
{ 0x00ff52, "Up" },
{ 0x00ffed, "Hyper_L" },
{ 0x00ffee, "Hyper_R" },
{ 0x00ffff, "Delete" },
- { 0x00ff31, "Hangul" },
- { 0x00ff32, "Hangul_Start" },
- { 0x00ff33, "Hangul_End" },
- { 0x00ff34, "Hangul_Hanja" },
- { 0x00ff35, "Hangul_Jamo" },
- { 0x00ff36, "Hangul_Romaja" },
- { 0x00ff37, "Hangul_Codeinput" },
- { 0x00ff38, "Hangul_Jeonja" },
- { 0x00ff39, "Hangul_Banja" },
- { 0x00ff3a, "Hangul_PreHanja" },
- { 0x00ff3b, "Hangul_PostHanja" },
- { 0x00ff3c, "Hangul_SingleCandidate" },
- { 0x00ff3d, "Hangul_MultipleCandidate" },
- { 0x00ff3e, "Hangul_PreviousCandidate" },
- { 0x00ff3f, "Hangul_Special" },
{ 0xffffff, "VoidSymbol" },
};
GDK_NUM_KEYS, sizeof (struct gdk_key),
gdk_keys_keyval_compare);
if (found != NULL)
- return found->name;
+ return (gchar *) found->name;
else
return NULL;
}
KeySym lower_val = 0;
KeySym upper_val = 0;
- XConvertCase (keyval, &lower_val, &upper_val);
+ gdkx_XConvertCase (keyval, &lower_val, &upper_val);
return upper_val;
}
return 0;
KeySym lower_val = 0;
KeySym upper_val = 0;
- XConvertCase (keyval, &lower_val, &upper_val);
+ gdkx_XConvertCase (keyval, &lower_val, &upper_val);
return lower_val;
}
return 0;
KeySym lower_val = 0;
KeySym upper_val = 0;
- XConvertCase (keyval, &lower_val, &upper_val);
+ gdkx_XConvertCase (keyval, &lower_val, &upper_val);
return upper_val == keyval;
}
return TRUE;
KeySym lower_val = 0;
KeySym upper_val = 0;
- XConvertCase (keyval, &lower_val, &upper_val);
+ gdkx_XConvertCase (keyval, &lower_val, &upper_val);
return lower_val == keyval;
}
return TRUE;