diff options
author | Hans Breuer <hans@breuer.org> | 2011-01-02 11:51:25 +0100 |
---|---|---|
committer | Hans Breuer <hans@breuer.org> | 2011-01-02 13:33:04 +0100 |
commit | 1d838f586c574af7f05c618a337f8d34a58d9125 (patch) | |
tree | ab25d802d10e11fa989ebe792b1abfbc5652af88 /gdk/win32/gdkscreen-win32.c | |
parent | fc122305d085d3f9b33e15a4d3383bf6c06c02ad (diff) | |
download | gtk+-1d838f586c574af7f05c618a337f8d34a58d9125.tar.gz |
win32: gdk3 resurrection
There are sure regressions but basic stuff seems to be working
again after all the API breakage done with comments like
"Win32 and Quartz need to be ported still."
Diffstat (limited to 'gdk/win32/gdkscreen-win32.c')
-rw-r--r-- | gdk/win32/gdkscreen-win32.c | 147 |
1 files changed, 119 insertions, 28 deletions
diff --git a/gdk/win32/gdkscreen-win32.c b/gdk/win32/gdkscreen-win32.c index 047e948b45..12b18d56fb 100644 --- a/gdk/win32/gdkscreen-win32.c +++ b/gdk/win32/gdkscreen-win32.c @@ -20,37 +20,77 @@ #include "config.h" #include "gdk.h" #include "gdkprivate-win32.h" +#include "gdkscreenprivate.h" +#include "gdkwin32screen.h" -GdkDisplay * -gdk_screen_get_display (GdkScreen *screen) +struct _GdkWin32Screen +{ + GdkScreen parent_instance; +}; +struct _GdkWin32ScreenClass +{ + GdkScreenClass parent_class; +}; +G_DEFINE_TYPE (GdkWin32Screen, gdk_win32_screen, GDK_TYPE_SCREEN) +static void +gdk_win32_screen_init(GdkWin32Screen *display) +{ +} + +static GdkDisplay * +gdk_win32_screen_get_display (GdkScreen *screen) { return _gdk_display; } -GdkWindow * -gdk_screen_get_root_window (GdkScreen *screen) +static gint +gdk_win32_screen_get_width (GdkScreen *screen) +{ + return GDK_WINDOW (_gdk_root)->width; +} + +static gint +gdk_win32_screen_get_height (GdkScreen *screen) +{ + return GDK_WINDOW (_gdk_root)->height; +} + +static gint +gdk_win32_screen_get_width_mm (GdkScreen *screen) +{ + return (double) gdk_screen_get_width (screen) / GetDeviceCaps (_gdk_display_hdc, LOGPIXELSX) * 25.4; +} + +static gint +gdk_win32_screen_get_height_mm (GdkScreen *screen) +{ + return (double) gdk_screen_get_height (screen) / GetDeviceCaps (_gdk_display_hdc, LOGPIXELSY) * 25.4; +} + +static GdkWindow * +gdk_win32_screen_get_root_window (GdkScreen *screen) { return _gdk_root; } -gint -gdk_screen_get_n_monitors (GdkScreen *screen) +static gint +gdk_win32_screen_get_n_monitors (GdkScreen *screen) { g_return_val_if_fail (screen == _gdk_screen, 0); return _gdk_num_monitors; } -gint -gdk_screen_get_primary_monitor (GdkScreen *screen) +static gint +gdk_win32_screen_get_primary_monitor (GdkScreen *screen) { g_return_val_if_fail (screen == _gdk_screen, 0); return 0; } -gint -gdk_screen_get_monitor_width_mm (GdkScreen *screen, +static gint +gdk_win32_screen_get_monitor_width_mm (GdkScreen *screen, gint num_monitor) { g_return_val_if_fail (screen == _gdk_screen, 0); @@ -60,8 +100,8 @@ gdk_screen_get_monitor_width_mm (GdkScreen *screen, return _gdk_monitors[num_monitor].width_mm; } -gint -gdk_screen_get_monitor_height_mm (GdkScreen *screen, +static gint +gdk_win32_screen_get_monitor_height_mm (GdkScreen *screen, gint num_monitor) { g_return_val_if_fail (screen == _gdk_screen, 0); @@ -71,8 +111,8 @@ gdk_screen_get_monitor_height_mm (GdkScreen *screen, return _gdk_monitors[num_monitor].height_mm; } -gchar * -gdk_screen_get_monitor_plug_name (GdkScreen *screen, +static gchar * +gdk_win32_screen_get_monitor_plug_name (GdkScreen *screen, gint num_monitor) { g_return_val_if_fail (screen == _gdk_screen, 0); @@ -82,8 +122,8 @@ gdk_screen_get_monitor_plug_name (GdkScreen *screen, return g_strdup (_gdk_monitors[num_monitor].name); } -void -gdk_screen_get_monitor_geometry (GdkScreen *screen, +static void +gdk_win32_screen_get_monitor_geometry (GdkScreen *screen, gint num_monitor, GdkRectangle *dest) { @@ -94,16 +134,16 @@ gdk_screen_get_monitor_geometry (GdkScreen *screen, *dest = _gdk_monitors[num_monitor].rect; } -GdkVisual * -gdk_screen_get_rgba_visual (GdkScreen *screen) +static GdkVisual * +gdk_win32_screen_get_rgba_visual (GdkScreen *screen) { g_return_val_if_fail (screen == _gdk_screen, NULL); return NULL; } -gint -gdk_screen_get_number (GdkScreen *screen) +static gint +gdk_win32_screen_get_number (GdkScreen *screen) { g_return_val_if_fail (screen == _gdk_screen, 0); @@ -120,32 +160,83 @@ _gdk_windowing_substitute_screen_number (const gchar *display_name, return g_strdup (display_name); } -gchar * -gdk_screen_make_display_name (GdkScreen *screen) +static gchar * +gdk_win32_screen_make_display_name (GdkScreen *screen) { return g_strdup (gdk_display_get_name (_gdk_display)); } -GdkWindow * -gdk_screen_get_active_window (GdkScreen *screen) +static GdkWindow * +gdk_win32_screen_get_active_window (GdkScreen *screen) { g_return_val_if_fail (GDK_IS_SCREEN (screen), NULL); return NULL; } -GList * -gdk_screen_get_window_stack (GdkScreen *screen) +static GList * +gdk_win32_screen_get_window_stack (GdkScreen *screen) { g_return_val_if_fail (GDK_IS_SCREEN (screen), NULL); return NULL; } -gboolean -gdk_screen_is_composited (GdkScreen *screen) +static gboolean +gdk_win32_screen_is_composited (GdkScreen *screen) { g_return_val_if_fail (GDK_IS_SCREEN (screen), FALSE); return FALSE; } + +static void +gdk_win32_screen_finalize (GObject *object) +{ +} + +static void +gdk_win32_screen_dispose (GObject *object) +{ +} + +static void +gdk_win32_screen_class_init (GdkWin32ScreenClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + GdkScreenClass *screen_class = GDK_SCREEN_CLASS (klass); + + object_class->dispose = gdk_win32_screen_dispose; + object_class->finalize = gdk_win32_screen_finalize; + + screen_class->get_display = gdk_win32_screen_get_display; + screen_class->get_width = gdk_win32_screen_get_width; + screen_class->get_height = gdk_win32_screen_get_height; + screen_class->get_width_mm = gdk_win32_screen_get_width_mm; + screen_class->get_height_mm = gdk_win32_screen_get_height_mm; + screen_class->get_number = gdk_win32_screen_get_number; + screen_class->get_root_window = gdk_win32_screen_get_root_window; + screen_class->get_n_monitors = gdk_win32_screen_get_n_monitors; + screen_class->get_primary_monitor = gdk_win32_screen_get_primary_monitor; + screen_class->get_monitor_width_mm = gdk_win32_screen_get_monitor_width_mm; + screen_class->get_monitor_height_mm = gdk_win32_screen_get_monitor_height_mm; + screen_class->get_monitor_plug_name = gdk_win32_screen_get_monitor_plug_name; + screen_class->get_monitor_geometry = gdk_win32_screen_get_monitor_geometry; + screen_class->get_system_visual = _gdk_win32_screen_get_system_visual; + screen_class->get_rgba_visual = gdk_win32_screen_get_rgba_visual; + screen_class->is_composited = gdk_win32_screen_is_composited; + screen_class->make_display_name = gdk_win32_screen_make_display_name; + screen_class->get_active_window = gdk_win32_screen_get_active_window; + screen_class->get_window_stack = gdk_win32_screen_get_window_stack; + screen_class->broadcast_client_message = _gdk_win32_screen_broadcast_client_message; + screen_class->get_setting = _gdk_win32_screen_get_setting; + screen_class->visual_get_best_depth = _gdk_win32_screen_visual_get_best_depth; + screen_class->visual_get_best_type = _gdk_win32_screen_visual_get_best_type; + screen_class->visual_get_best = _gdk_win32_screen_visual_get_best; + screen_class->visual_get_best_with_depth = _gdk_win32_screen_visual_get_best_with_depth; + screen_class->visual_get_best_with_type = _gdk_win32_screen_visual_get_best_with_type; + screen_class->visual_get_best_with_both = _gdk_win32_screen_visual_get_best_with_both; + screen_class->query_depths = _gdk_win32_screen_query_depths; + screen_class->query_visual_types = _gdk_win32_screen_query_visual_types; + screen_class->list_visuals = _gdk_win32_screen_list_visuals; +}
\ No newline at end of file |