GdkDisplay * _gdk_win32_display_open (const gchar *display_name) { GdkWin32Display *win32_display; GDK_NOTE (MISC, g_print ("gdk_display_open: %s\n", (display_name ? display_name : "NULL"))); if (display_name == NULL || g_ascii_strcasecmp (display_name, gdk_display_get_name (_gdk_display)) == 0) { if (_gdk_display != NULL) { GDK_NOTE (MISC, g_print ("... return _gdk_display\n")); return _gdk_display; } } else { GDK_NOTE (MISC, g_print ("... return NULL\n")); return NULL; } _gdk_display = g_object_new (GDK_TYPE_WIN32_DISPLAY, NULL); win32_display = GDK_WIN32_DISPLAY (_gdk_display); win32_display->screen = g_object_new (GDK_TYPE_WIN32_SCREEN, NULL); _gdk_events_init (_gdk_display); _gdk_input_ignore_core = 0; _gdk_device_manager = g_object_new (GDK_TYPE_DEVICE_MANAGER_WIN32, NULL); _gdk_device_manager->display = _gdk_display; _gdk_drag_init (); _gdk_drop_init (); _gdk_display->clipboard = gdk_win32_clipboard_new (_gdk_display); _gdk_display->primary_clipboard = gdk_clipboard_new (_gdk_display); /* Precalculate display name */ (void) gdk_display_get_name (_gdk_display); register_display_change_notification (_gdk_display); g_signal_emit_by_name (_gdk_display, "opened"); GDK_NOTE (MISC, g_print ("... _gdk_display now set up\n")); return _gdk_display; }
GdkDisplay * _gdk_win32_display_open (const gchar *display_name) { GdkWin32Display *win32_display; GDK_NOTE (MISC, g_print ("gdk_display_open: %s\n", (display_name ? display_name : "NULL"))); if (display_name == NULL || g_ascii_strcasecmp (display_name, gdk_display_get_name (_gdk_display)) == 0) { if (_gdk_display != NULL) { GDK_NOTE (MISC, g_print ("... return _gdk_display\n")); return _gdk_display; } } else { GDK_NOTE (MISC, g_print ("... return NULL\n")); return NULL; } _gdk_display = g_object_new (GDK_TYPE_WIN32_DISPLAY, NULL); win32_display = GDK_WIN32_DISPLAY (_gdk_display); win32_display->screen = g_object_new (GDK_TYPE_WIN32_SCREEN, NULL); _gdk_monitor_init (); _gdk_visual_init (win32_display->screen); _gdk_screen_init_root_window (GDK_WIN32_SCREEN (win32_display->screen)); _gdk_events_init (); _gdk_input_init (_gdk_display); _gdk_dnd_init (); /* Precalculate display name */ (void) gdk_display_get_name (_gdk_display); register_display_change_notification (_gdk_display); g_signal_emit_by_name (_gdk_display, "opened"); GDK_NOTE (MISC, g_print ("... _gdk_display now set up\n")); return _gdk_display; }
GdkDisplay * gdk_display_open (const gchar *display_name) { GDK_NOTE (MISC, g_print ("gdk_display_open: %s\n", (display_name ? display_name : "NULL"))); if (display_name == NULL || g_ascii_strcasecmp (display_name, gdk_display_get_name (_gdk_display)) == 0) { if (_gdk_display != NULL) { GDK_NOTE (MISC, g_print ("... return _gdk_display\n")); return _gdk_display; } } else { GDK_NOTE (MISC, g_print ("... return NULL\n")); return NULL; } _gdk_display = g_object_new (GDK_TYPE_DISPLAY, NULL); _gdk_screen = g_object_new (GDK_TYPE_SCREEN, NULL); _gdk_monitor_init (); _gdk_visual_init (); gdk_screen_set_default_colormap (_gdk_screen, gdk_screen_get_system_colormap (_gdk_screen)); _gdk_windowing_window_init (); _gdk_windowing_image_init (); _gdk_events_init (); _gdk_input_init (_gdk_display); _gdk_dnd_init (); /* Precalculate display name */ (void) gdk_display_get_name (_gdk_display); g_signal_emit_by_name (gdk_display_manager_get (), "display_opened", _gdk_display); GDK_NOTE (MISC, g_print ("... _gdk_display now set up\n")); return _gdk_display; }
GdkDisplay * gdk_display_open (const gchar *display_name) { if (gdk_display == NULL || _gdk_display != NULL) return NULL; /* single display only */ _gdk_display = g_object_new (GDK_TYPE_DISPLAY, NULL); _gdk_screen = g_object_new (GDK_TYPE_SCREEN, NULL); _gdk_visual_init (); gdk_screen_set_default_colormap (_gdk_screen, gdk_screen_get_system_colormap (_gdk_screen)); _gdk_windowing_window_init (); _gdk_windowing_image_init (); _gdk_events_init (); _gdk_input_init (); _gdk_dnd_init (); g_signal_emit_by_name (gdk_display_manager_get (), "display_opened", _gdk_display); return _gdk_display; }
/* Main entry point for gdk in 2.6 args are parsed */ GdkDisplay * gdk_display_open (const gchar *display_name) { IDirectFB *directfb; IDirectFBDisplayLayer *layer; IDirectFBInputDevice *keyboard; DFBResult ret; if (_gdk_display) { return GDK_DISPLAY_OBJECT (_gdk_display); /* single display only */ } ret = DirectFBInit (NULL, NULL); if (ret != DFB_OK) { DirectFBError ("gdk_display_open: DirectFBInit", ret); return NULL; } ret = DirectFBCreate (&directfb); if (ret != DFB_OK) { DirectFBError ("gdk_display_open: DirectFBCreate", ret); return NULL; } _gdk_display = g_object_new (GDK_TYPE_DISPLAY_DFB, NULL); _gdk_display->directfb = directfb; ret = directfb->GetDisplayLayer (directfb, DLID_PRIMARY, &layer); if (ret != DFB_OK) { DirectFBError ("gdk_display_open: GetDisplayLayer", ret); directfb->Release (directfb); _gdk_display->directfb = NULL; return NULL; } ret = directfb->GetInputDevice (directfb, DIDID_KEYBOARD, &keyboard); if (ret != DFB_OK) { DirectFBError ("gdk_display_open: GetInputDevice", ret); directfb->Release (directfb); _gdk_display->directfb = NULL; return NULL; } _gdk_display->layer = layer; _gdk_display->keyboard = keyboard; _gdk_directfb_keyboard_init (); _gdk_screen = g_object_new (GDK_TYPE_SCREEN, NULL); _gdk_visual_init (); _gdk_windowing_window_init (_gdk_screen); gdk_screen_set_default_colormap (_gdk_screen, gdk_screen_get_system_colormap (_gdk_screen)); _gdk_windowing_image_init (); _gdk_events_init (); _gdk_input_init (); _gdk_dnd_init (); layer->EnableCursor (layer, 1); g_signal_emit_by_name (gdk_display_manager_get (), "display_opened", _gdk_display); return GDK_DISPLAY_OBJECT (_gdk_display); }
GdkDisplay * gdk_display_open (const gchar *display_name) { HMODULE user32; if (_gdk_display != NULL) return NULL; /* single display only */ _gdk_display = g_object_new (GDK_TYPE_DISPLAY, NULL); _gdk_screen = g_object_new (GDK_TYPE_SCREEN, NULL); #ifdef HAVE_MONITOR_INFO user32 = GetModuleHandle ("USER32.dll"); g_assert (user32 != NULL); p_EnumDisplayMonitors = (t_EnumDisplayMonitors) GetProcAddress (user32, "EnumDisplayMonitors"); p_GetMonitorInfoA = (t_GetMonitorInfoA) GetProcAddress (user32, "GetMonitorInfoA"); if (p_EnumDisplayMonitors != NULL && p_GetMonitorInfoA != NULL) { gint i, index; _gdk_num_monitors = 0; (*p_EnumDisplayMonitors) (NULL, NULL, count_monitor, (LPARAM) &_gdk_num_monitors); _gdk_monitors = g_new (GdkRectangle, _gdk_num_monitors); index = 0; (*p_EnumDisplayMonitors) (NULL, NULL, enum_monitor, (LPARAM) &index); #if 1 _gdk_offset_x = G_MININT; _gdk_offset_y = G_MININT; /* Calculate offset */ for (i = 0; i < _gdk_num_monitors; i++) { _gdk_offset_x = MAX (_gdk_offset_x, -_gdk_monitors[i].x); _gdk_offset_y = MAX (_gdk_offset_y, -_gdk_monitors[i].y); } GDK_NOTE (MISC, g_print ("Multi-monitor offset: (%d,%d)\n", _gdk_offset_x, _gdk_offset_y)); /* Translate monitor coords into GDK coordinate space */ for (i = 0; i < _gdk_num_monitors; i++) { _gdk_monitors[i].x += _gdk_offset_x; _gdk_monitors[i].y += _gdk_offset_y; GDK_NOTE (MISC, g_print ("Monitor %d: %dx%d@+%d+%d\n", i, _gdk_monitors[i].width, _gdk_monitors[i].height, _gdk_monitors[i].x, _gdk_monitors[i].y)); } #endif } else #endif /* HAVE_MONITOR_INFO */ { RECT rect; _gdk_num_monitors = 1; _gdk_monitors = g_new (GdkRectangle, 1); SystemParametersInfo (SPI_GETWORKAREA, 0, &rect, 0); _gdk_monitors[0].x = rect.left; _gdk_monitors[0].y = rect.top; _gdk_monitors[0].width = rect.right - rect.left; _gdk_monitors[0].height = rect.bottom - rect.top; _gdk_offset_x = 0; _gdk_offset_y = 0; } _gdk_visual_init (); gdk_screen_set_default_colormap (_gdk_screen, gdk_screen_get_system_colormap (_gdk_screen)); _gdk_windowing_window_init (); _gdk_windowing_image_init (); _gdk_events_init (); _gdk_input_init (_gdk_display); _gdk_dnd_init (); g_signal_emit_by_name (gdk_display_manager_get (), "display_opened", _gdk_display); return _gdk_display; }