diff options
-rw-r--r-- | ChangeLog | 28 | ||||
-rw-r--r-- | ChangeLog.pre-2-0 | 28 | ||||
-rw-r--r-- | ChangeLog.pre-2-10 | 28 | ||||
-rw-r--r-- | ChangeLog.pre-2-2 | 28 | ||||
-rw-r--r-- | ChangeLog.pre-2-4 | 28 | ||||
-rw-r--r-- | ChangeLog.pre-2-6 | 28 | ||||
-rw-r--r-- | ChangeLog.pre-2-8 | 28 | ||||
-rw-r--r-- | gdk/gdk.def | 24 | ||||
-rw-r--r-- | gdk/win32/gdkdrawable-win32.c | 6 | ||||
-rw-r--r-- | gdk/win32/gdkevents-win32.c | 42 | ||||
-rw-r--r-- | gdk/win32/gdkgeometry-win32.c | 36 | ||||
-rw-r--r-- | gdk/win32/gdkwin32.h | 18 | ||||
-rw-r--r-- | gdk/win32/gdkwindow-win32.c | 26 | ||||
-rw-r--r-- | gdk/win32/makefile.msc | 17 | ||||
-rwxr-xr-x | gtk/gtk.def | 41 | ||||
-rw-r--r-- | gtk/gtkmain.c | 16 | ||||
-rw-r--r-- | gtk/gtkmain.h | 7 | ||||
-rw-r--r-- | gtk/gtkrc.c | 32 |
18 files changed, 356 insertions, 105 deletions
@@ -1,3 +1,31 @@ +2001-09-21 Hans Breuer <hans@breuer.org> + + * gdk/gdk.def : + * gtk/gtk.def : updated externals + + * gtk/gtkmain.h : define get_gtk_win32_directoty () + * gtk/gtkmain.c (find_module) : don't use module_name after freeing it. + Also handle that Win32 pathes cann't be hard-coded + + * gtk/gtkrc.c : use get_gtk_win32_directoty () to cleanup the various + module, themes etc directory calculations + + * gdk/win32/gdkgeometry-win32.c : some more hacking to get coordinates + >16 bit right. The size limit within Win9x appears _not_ to be 32767 + but slightly smaller ... + + * gdk/win32/gdkwindow-win32.c : use impl->position_info to avoid + >16 bit clipping. Added dummy body for gdk_window_set_icon_list () + + * gdk/win32/gdkdrawable-win32.c : implement gdk_win32_drawable_get_handle () + + * gdk/win32/gdkevents-win32.c : some tweaking to get better expose + handling. I'm not sure if it is better now, but at least not worse + + * gdk/win32/makefile.msc : define INSIDE_GDK_WIN32, some cleanup + + * gdk/win32/gdkwin32.h : reflect recent API restrictions + 2001-09-21 Matt Wilson <msw@redhat.com> * gtk/gtkradiomenuitem.c (gtk_radio_menu_item_destroy): set diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index 4e20d60ae1..f33091b8e3 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,31 @@ +2001-09-21 Hans Breuer <hans@breuer.org> + + * gdk/gdk.def : + * gtk/gtk.def : updated externals + + * gtk/gtkmain.h : define get_gtk_win32_directoty () + * gtk/gtkmain.c (find_module) : don't use module_name after freeing it. + Also handle that Win32 pathes cann't be hard-coded + + * gtk/gtkrc.c : use get_gtk_win32_directoty () to cleanup the various + module, themes etc directory calculations + + * gdk/win32/gdkgeometry-win32.c : some more hacking to get coordinates + >16 bit right. The size limit within Win9x appears _not_ to be 32767 + but slightly smaller ... + + * gdk/win32/gdkwindow-win32.c : use impl->position_info to avoid + >16 bit clipping. Added dummy body for gdk_window_set_icon_list () + + * gdk/win32/gdkdrawable-win32.c : implement gdk_win32_drawable_get_handle () + + * gdk/win32/gdkevents-win32.c : some tweaking to get better expose + handling. I'm not sure if it is better now, but at least not worse + + * gdk/win32/makefile.msc : define INSIDE_GDK_WIN32, some cleanup + + * gdk/win32/gdkwin32.h : reflect recent API restrictions + 2001-09-21 Matt Wilson <msw@redhat.com> * gtk/gtkradiomenuitem.c (gtk_radio_menu_item_destroy): set diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 4e20d60ae1..f33091b8e3 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,31 @@ +2001-09-21 Hans Breuer <hans@breuer.org> + + * gdk/gdk.def : + * gtk/gtk.def : updated externals + + * gtk/gtkmain.h : define get_gtk_win32_directoty () + * gtk/gtkmain.c (find_module) : don't use module_name after freeing it. + Also handle that Win32 pathes cann't be hard-coded + + * gtk/gtkrc.c : use get_gtk_win32_directoty () to cleanup the various + module, themes etc directory calculations + + * gdk/win32/gdkgeometry-win32.c : some more hacking to get coordinates + >16 bit right. The size limit within Win9x appears _not_ to be 32767 + but slightly smaller ... + + * gdk/win32/gdkwindow-win32.c : use impl->position_info to avoid + >16 bit clipping. Added dummy body for gdk_window_set_icon_list () + + * gdk/win32/gdkdrawable-win32.c : implement gdk_win32_drawable_get_handle () + + * gdk/win32/gdkevents-win32.c : some tweaking to get better expose + handling. I'm not sure if it is better now, but at least not worse + + * gdk/win32/makefile.msc : define INSIDE_GDK_WIN32, some cleanup + + * gdk/win32/gdkwin32.h : reflect recent API restrictions + 2001-09-21 Matt Wilson <msw@redhat.com> * gtk/gtkradiomenuitem.c (gtk_radio_menu_item_destroy): set diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 4e20d60ae1..f33091b8e3 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,31 @@ +2001-09-21 Hans Breuer <hans@breuer.org> + + * gdk/gdk.def : + * gtk/gtk.def : updated externals + + * gtk/gtkmain.h : define get_gtk_win32_directoty () + * gtk/gtkmain.c (find_module) : don't use module_name after freeing it. + Also handle that Win32 pathes cann't be hard-coded + + * gtk/gtkrc.c : use get_gtk_win32_directoty () to cleanup the various + module, themes etc directory calculations + + * gdk/win32/gdkgeometry-win32.c : some more hacking to get coordinates + >16 bit right. The size limit within Win9x appears _not_ to be 32767 + but slightly smaller ... + + * gdk/win32/gdkwindow-win32.c : use impl->position_info to avoid + >16 bit clipping. Added dummy body for gdk_window_set_icon_list () + + * gdk/win32/gdkdrawable-win32.c : implement gdk_win32_drawable_get_handle () + + * gdk/win32/gdkevents-win32.c : some tweaking to get better expose + handling. I'm not sure if it is better now, but at least not worse + + * gdk/win32/makefile.msc : define INSIDE_GDK_WIN32, some cleanup + + * gdk/win32/gdkwin32.h : reflect recent API restrictions + 2001-09-21 Matt Wilson <msw@redhat.com> * gtk/gtkradiomenuitem.c (gtk_radio_menu_item_destroy): set diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 4e20d60ae1..f33091b8e3 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,31 @@ +2001-09-21 Hans Breuer <hans@breuer.org> + + * gdk/gdk.def : + * gtk/gtk.def : updated externals + + * gtk/gtkmain.h : define get_gtk_win32_directoty () + * gtk/gtkmain.c (find_module) : don't use module_name after freeing it. + Also handle that Win32 pathes cann't be hard-coded + + * gtk/gtkrc.c : use get_gtk_win32_directoty () to cleanup the various + module, themes etc directory calculations + + * gdk/win32/gdkgeometry-win32.c : some more hacking to get coordinates + >16 bit right. The size limit within Win9x appears _not_ to be 32767 + but slightly smaller ... + + * gdk/win32/gdkwindow-win32.c : use impl->position_info to avoid + >16 bit clipping. Added dummy body for gdk_window_set_icon_list () + + * gdk/win32/gdkdrawable-win32.c : implement gdk_win32_drawable_get_handle () + + * gdk/win32/gdkevents-win32.c : some tweaking to get better expose + handling. I'm not sure if it is better now, but at least not worse + + * gdk/win32/makefile.msc : define INSIDE_GDK_WIN32, some cleanup + + * gdk/win32/gdkwin32.h : reflect recent API restrictions + 2001-09-21 Matt Wilson <msw@redhat.com> * gtk/gtkradiomenuitem.c (gtk_radio_menu_item_destroy): set diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 4e20d60ae1..f33091b8e3 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,31 @@ +2001-09-21 Hans Breuer <hans@breuer.org> + + * gdk/gdk.def : + * gtk/gtk.def : updated externals + + * gtk/gtkmain.h : define get_gtk_win32_directoty () + * gtk/gtkmain.c (find_module) : don't use module_name after freeing it. + Also handle that Win32 pathes cann't be hard-coded + + * gtk/gtkrc.c : use get_gtk_win32_directoty () to cleanup the various + module, themes etc directory calculations + + * gdk/win32/gdkgeometry-win32.c : some more hacking to get coordinates + >16 bit right. The size limit within Win9x appears _not_ to be 32767 + but slightly smaller ... + + * gdk/win32/gdkwindow-win32.c : use impl->position_info to avoid + >16 bit clipping. Added dummy body for gdk_window_set_icon_list () + + * gdk/win32/gdkdrawable-win32.c : implement gdk_win32_drawable_get_handle () + + * gdk/win32/gdkevents-win32.c : some tweaking to get better expose + handling. I'm not sure if it is better now, but at least not worse + + * gdk/win32/makefile.msc : define INSIDE_GDK_WIN32, some cleanup + + * gdk/win32/gdkwin32.h : reflect recent API restrictions + 2001-09-21 Matt Wilson <msw@redhat.com> * gtk/gtkradiomenuitem.c (gtk_radio_menu_item_destroy): set diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 4e20d60ae1..f33091b8e3 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,31 @@ +2001-09-21 Hans Breuer <hans@breuer.org> + + * gdk/gdk.def : + * gtk/gtk.def : updated externals + + * gtk/gtkmain.h : define get_gtk_win32_directoty () + * gtk/gtkmain.c (find_module) : don't use module_name after freeing it. + Also handle that Win32 pathes cann't be hard-coded + + * gtk/gtkrc.c : use get_gtk_win32_directoty () to cleanup the various + module, themes etc directory calculations + + * gdk/win32/gdkgeometry-win32.c : some more hacking to get coordinates + >16 bit right. The size limit within Win9x appears _not_ to be 32767 + but slightly smaller ... + + * gdk/win32/gdkwindow-win32.c : use impl->position_info to avoid + >16 bit clipping. Added dummy body for gdk_window_set_icon_list () + + * gdk/win32/gdkdrawable-win32.c : implement gdk_win32_drawable_get_handle () + + * gdk/win32/gdkevents-win32.c : some tweaking to get better expose + handling. I'm not sure if it is better now, but at least not worse + + * gdk/win32/makefile.msc : define INSIDE_GDK_WIN32, some cleanup + + * gdk/win32/gdkwin32.h : reflect recent API restrictions + 2001-09-21 Matt Wilson <msw@redhat.com> * gtk/gtkradiomenuitem.c (gtk_radio_menu_item_destroy): set diff --git a/gdk/gdk.def b/gdk/gdk.def index 8df1653d6a..d517cd2cbf 100644 --- a/gdk/gdk.def +++ b/gdk/gdk.def @@ -35,7 +35,7 @@ EXPORTS gdk_colors_alloc gdk_colors_free gdk_colors_store - gdk_core_pointer + gdk_device_get_core_pointer gdk_crossing_mode_get_type gdk_cursor_new gdk_cursor_new_from_pixmap @@ -51,7 +51,6 @@ EXPORTS gdk_device_set_mode gdk_device_set_source gdk_devices_list - gdk_dnd_init gdk_drag_abort gdk_drag_action_get_type gdk_drag_begin @@ -102,15 +101,10 @@ EXPORTS gdk_drawable_unref gdk_drop_finish gdk_drop_reply - gdk_error_code gdk_error_trap_pop gdk_error_trap_push - gdk_error_warnings - gdk_event_button_generate gdk_event_copy - gdk_event_data gdk_event_free - gdk_event_func gdk_event_get gdk_event_get_axis gdk_event_get_graphics_expose @@ -119,16 +113,11 @@ EXPORTS gdk_event_get_type gdk_event_handler_set gdk_event_mask_get_type - gdk_event_new gdk_event_peek gdk_event_put - gdk_event_queue_append - gdk_event_queue_find_first - gdk_event_queue_remove_link gdk_event_send_client_message gdk_event_send_clientmessage_toall gdk_event_type_get_type - gdk_event_unqueue gdk_events_pending gdk_exit gdk_extension_mode_get_type @@ -177,7 +166,9 @@ EXPORTS gdk_gc_set_tile gdk_gc_set_ts_origin gdk_gc_unref + gdk_get_default_root_window gdk_get_display + gdk_get_program_class gdk_get_show_events gdk_get_use_xshm gdk_grab_status_get_type @@ -196,16 +187,12 @@ EXPORTS gdk_input_add gdk_input_add_full gdk_input_condition_get_type - gdk_input_exit - gdk_input_init gdk_input_mode_get_type gdk_input_motion_events gdk_input_remove gdk_input_set_extension_events gdk_input_source_get_type gdk_join_style_get_type - gdk_key_repeat_disable - gdk_key_repeat_restore gdk_keyboard_grab gdk_keyboard_ungrab gdk_keymap_get_default @@ -234,9 +221,9 @@ EXPORTS gdk_pango_context_get gdk_pango_context_set_colormap gdk_pango_layout_get_clip_region - gdk_parent_root gdk_pixbuf_get_from_drawable gdk_pixbuf_render_pixmap_and_mask + gdk_pixbuf_render_pixmap_and_mask_for_colormap gdk_pixbuf_render_threshold_alpha gdk_pixbuf_render_to_drawable gdk_pixbuf_render_to_drawable_alpha @@ -300,7 +287,6 @@ EXPORTS gdk_selection_get_type gdk_selection_owner_get gdk_selection_owner_set - gdk_selection_property gdk_selection_property_get gdk_selection_send_notify gdk_set_double_click_time @@ -344,6 +330,7 @@ EXPORTS gdk_visual_get_type gdk_visual_type_get_type gdk_wcstombs + gdk_win32_drawable_get_handle gdk_win32_handle_table_lookup gdk_win32_hdc_get gdk_win32_hdc_release @@ -416,6 +403,7 @@ EXPORTS gdk_window_set_group gdk_window_set_hints gdk_window_set_icon + gdk_window_set_icon_list gdk_window_set_icon_name gdk_window_set_modal_hint gdk_window_set_override_redirect diff --git a/gdk/win32/gdkdrawable-win32.c b/gdk/win32/gdkdrawable-win32.c index 8910965fdd..44b71f44c6 100644 --- a/gdk/win32/gdkdrawable-win32.c +++ b/gdk/win32/gdkdrawable-win32.c @@ -1087,3 +1087,9 @@ gdk_win32_get_visual (GdkDrawable *drawable) { return gdk_drawable_get_visual (GDK_DRAWABLE_IMPL_WIN32 (drawable)->wrapper); } + +HWND +gdk_win32_drawable_get_handle (GdkDrawable *drawable) +{ + return GDK_DRAWABLE_HANDLE(drawable); +} diff --git a/gdk/win32/gdkevents-win32.c b/gdk/win32/gdkevents-win32.c index ccce2174a5..d407f4face 100644 --- a/gdk/win32/gdkevents-win32.c +++ b/gdk/win32/gdkevents-win32.c @@ -233,7 +233,7 @@ real_window_procedure (HWND hwnd, * GDK_EVENT_FUNC_FROM_WINDOW_PROC env var to get this * behaviour. */ - if (gdk_event_func_from_window_proc && gdk_event_func) + if (gdk_event_func_from_window_proc && _gdk_event_func) { GDK_THREADS_ENTER (); @@ -2758,6 +2758,12 @@ gdk_event_translate (GdkEvent *event, } break; + case WM_GETICON: + GDK_NOTE (EVENTS, g_print ("WM_GETICON: %#lx %s\n", + (gulong) msg->hwnd, + (ICON_BIG == msg->wParam ? "big" : "small"))); + break; + case WM_SETCURSOR: GDK_NOTE (EVENTS, g_print ("WM_SETCURSOR: %#lx %#x %#x\n", (gulong) msg->hwnd, @@ -2864,7 +2870,39 @@ gdk_event_translate (GdkEvent *event, _gdk_input_configure_event (&event->configure, window); } break; +#if 0 + case WM_SIZING : + { + LPRECT lpr = (LPRECT) msg->lParam; + NONCLIENTMETRICS ncm; + ncm.cbSize = sizeof (NONCLIENTMETRICS); + + SystemParametersInfo (SPI_GETNONCLIENTMETRICS, ncm.cbSize, &ncm, 0); + + g_print ("WM_SIZING borderWidth %d captionHeight %d\n", + ncm.iBorderWidth, ncm.iCaptionHeight); + event->configure.type = GDK_CONFIGURE; + event->configure.window = window; + + event->configure.x = lpr->left + ncm.iBorderWidth; + event->configure.y = lpr->top + ncm.iCaptionHeight; + event->configure.width = lpr->right - lpr->left - 2 * ncm.iBorderWidth; + event->configure.height = lpr->bottom - lpr->top - ncm.iCaptionHeight; + GDK_WINDOW_OBJECT (window)->x = event->configure.x; + GDK_WINDOW_OBJECT (window)->y = event->configure.y; + window_impl->width = event->configure.width; + window_impl->height = event->configure.height; + + if (GDK_WINDOW_OBJECT (window)->resize_count > 1) + GDK_WINDOW_OBJECT (window)->resize_count -= 1; + return_val = !GDK_WINDOW_DESTROYED (window); + if (return_val + && GDK_WINDOW_OBJECT (window)->extension_events != 0) + _gdk_input_configure_event (&event->configure, window); + } + break; +#endif case WM_GETMINMAXINFO: GDK_NOTE (EVENTS, g_print ("WM_GETMINMAXINFO: %#lx\n", (gulong) msg->hwnd)); @@ -3234,12 +3272,14 @@ gdk_flush (void) { MSG msg; +#if 0 /* Process all messages currently available */ while (PeekMessage (&msg, NULL, 0, 0, PM_REMOVE)) { TranslateMessage (&msg); /* Translate virt. key codes */ DispatchMessage (&msg); /* Dispatch msg. to window */ } +#endif GdiFlush (); } diff --git a/gdk/win32/gdkgeometry-win32.c b/gdk/win32/gdkgeometry-win32.c index 373d6b596b..8d75953efe 100644 --- a/gdk/win32/gdkgeometry-win32.c +++ b/gdk/win32/gdkgeometry-win32.c @@ -36,6 +36,8 @@ #include "gdkdrawable-win32.h" #include "gdkwindow-win32.h" +#define SIZE_LIMIT 32000 + typedef struct _GdkWindowQueueItem GdkWindowQueueItem; typedef struct _GdkWindowParentPos GdkWindowParentPos; @@ -360,13 +362,13 @@ _gdk_window_move_resize_child (GdkWindow *window, if (d_xoffset > 0 || d_yoffset > 0) gdk_window_queue_translation (window, MAX (d_xoffset, 0), MAX (d_yoffset, 0)); - + /* FIXME: */ - if (new_info.x + new_info.width > 32767) - new_info.width = 32767 - new_info.x; - if (new_info.y + new_info.height > 32767) - new_info.height = 32767 - new_info.y; + if (new_info.x + new_info.width > SIZE_LIMIT) + new_info.width = SIZE_LIMIT - new_info.x; + if (new_info.y + new_info.height > SIZE_LIMIT) + new_info.height = SIZE_LIMIT - new_info.y; if (!SetWindowPos (GDK_WINDOW_HWND (window), NULL, new_info.x, new_info.y, new_info.width, new_info.height, @@ -441,7 +443,7 @@ gdk_window_compute_position (GdkWindowImplWin32 *window, info->big = FALSE; - if (window->width <= 32768) + if (window->width <= SIZE_LIMIT) { info->width = window->width; info->x = parent_pos->x + wrapper->x - parent_pos->win32_x; @@ -449,19 +451,19 @@ gdk_window_compute_position (GdkWindowImplWin32 *window, else { info->big = TRUE; - info->width = 32768; - if (parent_pos->x + wrapper->x < -16384) + info->width = SIZE_LIMIT; + if (parent_pos->x + wrapper->x < -(SIZE_LIMIT/2)) { - if (parent_pos->x + wrapper->x + window->width < 16384) - info->x = parent_pos->x + wrapper->x + window->width - 32768 - parent_pos->win32_x; + if (parent_pos->x + wrapper->x + window->width < (SIZE_LIMIT/2)) + info->x = parent_pos->x + wrapper->x + window->width - SIZE_LIMIT - parent_pos->win32_x; else - info->x = -16384 - parent_pos->win32_y; + info->x = -(SIZE_LIMIT/2) - parent_pos->win32_y; } else info->x = parent_pos->x + wrapper->x - parent_pos->win32_x; } - if (window->height <= 32768) + if (window->height <= SIZE_LIMIT) { info->height = window->height; info->y = parent_pos->y + wrapper->y - parent_pos->win32_y; @@ -469,13 +471,13 @@ gdk_window_compute_position (GdkWindowImplWin32 *window, else { info->big = TRUE; - info->height = 32768; - if (parent_pos->y + wrapper->y < -16384) + info->height = SIZE_LIMIT; + if (parent_pos->y + wrapper->y < -(SIZE_LIMIT/2)) { - if (parent_pos->y + wrapper->y + window->height < 16384) - info->y = parent_pos->y + wrapper->y + window->height - 32768 - parent_pos->win32_y; + if (parent_pos->y + wrapper->y + window->height < (SIZE_LIMIT/2)) + info->y = parent_pos->y + wrapper->y + window->height - SIZE_LIMIT - parent_pos->win32_y; else - info->y = -16384 - parent_pos->win32_y; + info->y = -(SIZE_LIMIT/2) - parent_pos->win32_y; } else info->y = parent_pos->y + wrapper->y - parent_pos->win32_y; diff --git a/gdk/win32/gdkwin32.h b/gdk/win32/gdkwin32.h index 4e1d898f98..fc5af0b770 100644 --- a/gdk/win32/gdkwin32.h +++ b/gdk/win32/gdkwin32.h @@ -28,6 +28,7 @@ #define __GDK_WIN32_H__ #include <gdk/gdkprivate.h> +#include <gdk/gdkinternals.h> #include <gdk/gdkcursor.h> #ifndef STRICT @@ -196,6 +197,8 @@ extern "C" { #define CopyCursor(pcur) ((HCURSOR)CopyIcon((HICON)(pcur))) #endif +#ifdef INSIDE_GDK_WIN32 + #include <gdk/gdkprivate.h> /* Define corresponding Windows types for some X11 types, just for laziness. */ @@ -339,9 +342,8 @@ struct _GdkGCWin32Class GType gdk_gc_win32_get_type (void); -#define GDK_ROOT_WINDOW() ((guint32) HWND_DESKTOP) +#undef GDK_ROOT_PARENT /* internal access is direct */ #define GDK_ROOT_PARENT() ((GdkWindow *) _gdk_parent_root) -#define GDK_DISPLAY() NULL #define GDK_WINDOW_HWND(win) (GDK_DRAWABLE_IMPL_WIN32(((GdkWindowObject *)win)->impl)->handle) #define GDK_PIXMAP_HBITMAP(pixmap) (GDK_DRAWABLE_IMPL_WIN32(((GdkPixmapObject *)pixmap)->impl)->handle) #define GDK_DRAWABLE_HANDLE(win) (GDK_IS_WINDOW (win) ? (GDK_WINDOW_HWND (win)) : (GDK_PIXMAP_HBITMAP (win))) @@ -350,6 +352,15 @@ GType gdk_gc_win32_get_type (void); #define GDK_COLORMAP_WIN32COLORMAP(cmap) (((GdkColormapPrivateWin32 *)GDK_COLORMAP (cmap)->windowing_data)->xcolormap) #define GDK_VISUAL_XVISUAL(vis) (((GdkVisualPrivate *) vis)->xvisual) +#else +/* definition for exported 'internals' go here */ +#define GDK_WINDOW_HWND(d) (gdk_win32_drawable_get_handle (d)) + +#endif + +#define GDK_ROOT_WINDOW() ((guint32) HWND_DESKTOP) +#define GDK_DISPLAY() NULL + /* Functions to create GDK pixmaps and windows from their native equivalents */ GdkPixmap *gdk_pixmap_foreign_new (GdkNativeWindow anid); GdkWindow *gdk_window_foreign_new (GdkNativeWindow anid); @@ -357,6 +368,9 @@ GdkWindow *gdk_window_foreign_new (GdkNativeWindow anid); /* Return the Gdk* for a particular HANDLE */ gpointer gdk_win32_handle_table_lookup (GdkNativeWindow handle); +/* Translate from drawable to windows handle */ +HWND gdk_win32_drawable_get_handle (GdkDrawable *drawable); + #define gdk_window_lookup(hwnd) (GdkWindow*) gdk_win32_handle_table_lookup (hwnd) #define gdk_pixmap_lookup(hbm) (GdkPixmap*) gdk_win32_handle_table_lookup (hbm) diff --git a/gdk/win32/gdkwindow-win32.c b/gdk/win32/gdkwindow-win32.c index 630fa598c5..aeaea1e0a8 100644 --- a/gdk/win32/gdkwindow-win32.c +++ b/gdk/win32/gdkwindow-win32.c @@ -610,8 +610,8 @@ gdk_window_new (GdkWindow *parent, MAKEINTRESOURCE(klass), mbtitle, dwStyle, - x, y, - width, height, + impl->position_info.x, impl->position_info.y, + impl->position_info.width, impl->position_info.height, hparent, NULL, gdk_app_hmodule, @@ -623,8 +623,8 @@ gdk_window_new (GdkWindow *parent, MAKEINTRESOURCE(klass), mbtitle, dwStyle, - x, y, - width, height, + impl->position_info.x, impl->position_info.y, + impl->position_info.width, impl->position_info.height, hparent, NULL, gdk_app_hmodule, @@ -1303,7 +1303,7 @@ gdk_window_set_hints (GdkWindow *window, impl->hint_min_width = rect.right - rect.left; impl->hint_min_height = rect.bottom - rect.top; - /* Also chek if he current size of the window is in bounds. */ + /* Also check if he current size of the window is in bounds. */ GetClientRect (GDK_WINDOW_HWND (window), &rect); if (rect.right < min_width && rect.bottom < min_height) gdk_window_resize (window, min_width, min_height); @@ -2006,6 +2006,22 @@ gdk_window_set_override_redirect (GdkWindow *window, } void +gdk_window_set_icon_list (GdkWindow *window, + GList *pixbufs) +{ + g_return_if_fail (GDK_IS_WINDOW (window)); + + if (GDK_WINDOW_DESTROYED (window)) + return; + + /* We could convert it to a hIcon and DrawIcon () it when getting + * a WM_PAINT with IsIconic, but is it worth it ? Same probably + * goes for gdk_window_set_icon (). Patches accepted :-) --hb + * Or do we only need to deliver the Icon on WM_GETICON ? + */ +} + +void gdk_window_set_icon (GdkWindow *window, GdkWindow *icon_window, GdkPixmap *pixmap, diff --git a/gdk/win32/makefile.msc b/gdk/win32/makefile.msc index 06f1bb3083..3f350c7e0c 100644 --- a/gdk/win32/makefile.msc +++ b/gdk/win32/makefile.msc @@ -11,22 +11,11 @@ WTKIT = ..\..\..\wtkit126 TOP = ../../.. !INCLUDE $(TOP)/build/win32/make.msc -!IFNDEF DEBUG -# Full optimization: -OPTIMIZE = -Ox -MD -!ELSE -# Debugging: -OPTIMIZE = -Zi -MDd -!ENDIF - -# cl -? describes the options -CC = cl -G5 -GF $(OPTIMIZE) -W3 -nologo - -LDFLAGS = /link /machine:ix86 $(LINKDEBUG) - GTK_VER=1.3 -CFLAGS = -I. -I.. -I..\.. $(GLIB_CFLAGS) $(PANGO_CFLAGS) -I$(WTKIT)\include -I$(GLIB) -DG_ENABLE_DEBUG -DHAVE_CONFIG_H -DGDK_VERSION=\"$(GTK_VER)\" +CFLAGS = -I. -I.. -I..\.. $(GLIB_CFLAGS) $(PANGO_CFLAGS) \ + -I$(WTKIT)\include -I$(GLIB) \ + $(G_DEBUGGING) -DHAVE_CONFIG_H -DINSIDE_GDK_WIN32 -DGDK_VERSION=\"$(GTK_VER)\" all: \ ..\..\config.h \ diff --git a/gtk/gtk.def b/gtk/gtk.def index fa580dacd1..a8b52ffad3 100755 --- a/gtk/gtk.def +++ b/gtk/gtk.def @@ -70,8 +70,6 @@ EXPORTS GTK_TYPE_TREE_ITER GTK_TYPE_TREE_MODEL_FLAGS GTK_TYPE_TREE_PATH - GTK_TYPE_TREE_SELECTION_MODE - GTK_TYPE_TREE_SORT_ORDER GTK_TYPE_TREE_VIEW_COLUMN_SIZING GTK_TYPE_TREE_VIEW_DROP_POSITION GTK_TYPE_TREE_VIEW_MODE @@ -194,7 +192,6 @@ EXPORTS gtk_calendar_select_month gtk_calendar_thaw gtk_calendar_unmark_day - gtk_cell_renderer_event gtk_cell_renderer_get_fixed_size gtk_cell_renderer_get_size gtk_cell_renderer_get_type @@ -204,8 +201,6 @@ EXPORTS gtk_cell_renderer_set_fixed_size gtk_cell_renderer_text_get_type gtk_cell_renderer_text_new - gtk_cell_renderer_text_pixbuf_get_type - gtk_cell_renderer_text_pixbuf_new gtk_cell_renderer_text_set_fixed_height_from_font gtk_cell_renderer_toggle_get_active gtk_cell_renderer_toggle_get_radio @@ -345,7 +340,6 @@ EXPORTS gtk_container_child_set_property gtk_container_child_set_valist gtk_container_child_type - gtk_container_children gtk_container_class_find_child_property gtk_container_class_install_child_property gtk_container_class_list_child_properties @@ -354,6 +348,7 @@ EXPORTS gtk_container_foreach gtk_container_foreach_full gtk_container_get_border_width + gtk_container_get_children gtk_container_get_focus_chain gtk_container_get_focus_hadjustment gtk_container_get_focus_vadjustment @@ -884,11 +879,8 @@ EXPORTS gtk_marshal_VOID__UINT_BOXED_UINT_FLAGS_FLAGS gtk_marshal_VOID__UINT_STRING gtk_menu_attach_to_widget - gtk_menu_bar_append gtk_menu_bar_get_type - gtk_menu_bar_insert gtk_menu_bar_new - gtk_menu_bar_prepend gtk_menu_detach gtk_menu_get_accel_group gtk_menu_get_active @@ -897,17 +889,16 @@ EXPORTS gtk_menu_get_title gtk_menu_get_type gtk_menu_item_activate - gtk_menu_item_configure gtk_menu_item_deselect + gtk_menu_item_get_right_justified gtk_menu_item_get_submenu gtk_menu_item_get_type gtk_menu_item_new gtk_menu_item_new_with_label gtk_menu_item_new_with_mnemonic gtk_menu_item_remove_submenu - gtk_menu_item_right_justify gtk_menu_item_select - gtk_menu_item_set_placement + gtk_menu_item_set_right_justified gtk_menu_item_set_submenu gtk_menu_item_toggle_size_allocate gtk_menu_item_toggle_size_request @@ -1354,7 +1345,6 @@ EXPORTS gtk_text_buffer_move_mark_by_name gtk_text_buffer_new gtk_text_buffer_paste_clipboard - gtk_text_buffer_paste_primary gtk_text_buffer_place_cursor gtk_text_buffer_remove_all_tags gtk_text_buffer_remove_tag @@ -1438,7 +1428,6 @@ EXPORTS gtk_text_iter_set_line_offset gtk_text_iter_set_offset gtk_text_iter_set_visible_line_offset - gtk_text_iter_spew gtk_text_iter_starts_line gtk_text_iter_toggles_tag gtk_text_mark_get_deleted @@ -1460,11 +1449,11 @@ EXPORTS gtk_text_tag_set_priority gtk_text_tag_table_add gtk_text_tag_table_foreach + gtk_text_tag_table_get_size gtk_text_tag_table_get_type gtk_text_tag_table_lookup gtk_text_tag_table_new gtk_text_tag_table_remove - gtk_text_tag_table_size gtk_text_thaw gtk_text_unknown_char_utf8 gtk_text_view_add_child_at_anchor @@ -1600,7 +1589,6 @@ EXPORTS gtk_tree_item_set_subtree gtk_tree_iter_copy gtk_tree_iter_free - gtk_tree_model_deleted gtk_tree_model_foreach gtk_tree_model_get gtk_tree_model_get_column_type @@ -1611,17 +1599,18 @@ EXPORTS gtk_tree_model_get_path gtk_tree_model_get_type gtk_tree_model_get_value - gtk_tree_model_has_child_toggled - gtk_tree_model_inserted gtk_tree_model_iter_children gtk_tree_model_iter_has_child gtk_tree_model_iter_n_children gtk_tree_model_iter_next gtk_tree_model_iter_nth_child gtk_tree_model_iter_parent - gtk_tree_model_range_changed gtk_tree_model_ref_node - gtk_tree_model_reordered + gtk_tree_model_row_changed + gtk_tree_model_row_deleted + gtk_tree_model_row_has_child_toggled + gtk_tree_model_row_inserted + gtk_tree_model_rows_reordered gtk_tree_model_sort_convert_path gtk_tree_model_sort_get_model gtk_tree_model_sort_get_type @@ -1704,14 +1693,12 @@ EXPORTS gtk_tree_view_collapse_all gtk_tree_view_collapse_row gtk_tree_view_column_add_attribute - gtk_tree_view_column_cell_can_focus - gtk_tree_view_column_cell_event gtk_tree_view_column_cell_get_size gtk_tree_view_column_cell_is_visible gtk_tree_view_column_cell_render gtk_tree_view_column_cell_set_cell_data gtk_tree_view_column_clear_attributes - gtk_tree_view_column_clear_cell_renderers + gtk_tree_view_column_clear gtk_tree_view_column_clicked gtk_tree_view_column_get_alignment gtk_tree_view_column_get_cell_renderers @@ -1719,7 +1706,7 @@ EXPORTS gtk_tree_view_column_get_max_width gtk_tree_view_column_get_min_width gtk_tree_view_column_get_reorderable - gtk_tree_view_column_get_size + gtk_tree_view_column_get_sizing gtk_tree_view_column_get_sizing gtk_tree_view_column_get_sort_indicator gtk_tree_view_column_get_sort_order @@ -1730,13 +1717,14 @@ EXPORTS gtk_tree_view_column_get_width gtk_tree_view_column_new gtk_tree_view_column_new_with_attributes - gtk_tree_view_column_pack_end_cell_renderer - gtk_tree_view_column_pack_start_cell_renderer + gtk_tree_view_column_pack_end + gtk_tree_view_column_pack_start gtk_tree_view_column_set_alignment gtk_tree_view_column_set_attributes gtk_tree_view_column_set_cell_data_func gtk_tree_view_column_set_cell_renderer gtk_tree_view_column_set_clickable + gtk_tree_view_column_set_fixed_width gtk_tree_view_column_set_max_width gtk_tree_view_column_set_min_width gtk_tree_view_column_set_reorderable @@ -1747,7 +1735,6 @@ EXPORTS gtk_tree_view_column_set_title gtk_tree_view_column_set_visible gtk_tree_view_column_set_widget - gtk_tree_view_column_set_width gtk_tree_view_columns_autosize gtk_tree_view_create_row_drag_icon gtk_tree_view_expand_all diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c index 9eeebb7ed4..2abfb54497 100644 --- a/gtk/gtkmain.c +++ b/gtk/gtkmain.c @@ -235,8 +235,13 @@ get_module_path (void) if (exe_prefix) default_dir = g_build_filename (exe_prefix, "lib", "gtk-2.0", "modules", NULL); else - default_dir = g_build_filename (GTK_LIBDIR, "gtk-2.0", "modules", NULL); - + { +#ifndef G_OS_WIN32 + default_dir = g_build_filename (GTK_LIBDIR, "gtk-2.0", "modules", NULL); +#else + default_dir = g_build_filename (get_gtk_win32_directory (""), "modules", NULL); +#endif + } module_path = g_strconcat (module_path ? module_path : "", module_path ? G_SEARCHPATH_SEPARATOR_S : "", default_dir, NULL); @@ -264,6 +269,7 @@ find_module (gchar **module_path, { gchar *version_directory; +#ifndef G_OS_WIN32 /* ignoring GTK_BINARY_VERSION elsewhere too */ version_directory = g_build_filename (module_path[i], GTK_BINARY_VERSION, NULL); module_name = g_module_build_path (version_directory, name); g_free (version_directory); @@ -275,13 +281,15 @@ find_module (gchar **module_path, } g_free (module_name); +#endif module_name = g_module_build_path (module_path[i], name); if (g_file_test (module_name, G_FILE_TEST_EXISTS)) { + module = g_module_open (module_name, G_MODULE_BIND_LAZY); g_free (module_name); - return g_module_open (module_name, G_MODULE_BIND_LAZY); + return module; } g_free (module_name); @@ -523,7 +531,7 @@ gtk_init_check (int *argc, { bindtextdomain (GETTEXT_PACKAGE, g_win32_get_package_installation_subdirectory (GETTEXT_PACKAGE, - g_strdup_printf ("gtk-%d.%d.dll", GTK_MAJOR_VERSION, GTK_MINOR_VERSION), + g_strdup_printf ("gtk-win32-%d.%d.dll", GTK_MAJOR_VERSION, GTK_MINOR_VERSION), "locale")); } #endif diff --git a/gtk/gtkmain.h b/gtk/gtkmain.h index 1d7e5d2ce7..d379cc2ec8 100644 --- a/gtk/gtkmain.h +++ b/gtk/gtkmain.h @@ -103,6 +103,13 @@ gboolean gtk_init_check_abi_check (int *argc, #endif +#ifdef G_OS_WIN32 +/* don't hard-code any absolute directory but calculate then from + * regristy settings or gtk-*.*.dll placement. + */ +gchar *get_gtk_win32_directory (gchar *subdir); +#endif + #ifndef GTK_DISABLE_DEPRECATED void gtk_exit (gint error_code); #endif /* GTK_DISABLE_DEPRECATED */ diff --git a/gtk/gtkrc.c b/gtk/gtkrc.c index c83f0b1cde..ad88bc4597 100644 --- a/gtk/gtkrc.c +++ b/gtk/gtkrc.c @@ -296,23 +296,21 @@ static GSList *rc_dir_stack = NULL; /* RC file handling */ #ifdef G_OS_WIN32 -static gchar * -get_gtk_dll_name (void) +gchar * +get_gtk_win32_directory (gchar *subdir) { static gchar *gtk_dll = NULL; if (!gtk_dll) - gtk_dll = g_strdup_printf ("gtk-%d.%d.dll", GTK_MAJOR_VERSION, GTK_MINOR_VERSION); - - return gtk_dll; -} + gtk_dll = g_strdup_printf ("gtk-win32-%d.%d.dll", GTK_MAJOR_VERSION, GTK_MINOR_VERSION); -static gchar * -get_themes_directory (void) -{ - return g_win32_get_package_installation_subdirectory (GETTEXT_PACKAGE, - get_gtk_dll_name (), - "themes"); + if (subdir && strlen(subdir) > 0) + return g_win32_get_package_installation_subdirectory (GETTEXT_PACKAGE, + gtk_dll, + subdir); + else + return g_win32_get_package_installation_directory (GETTEXT_PACKAGE, + gtk_dll); } #endif /* G_OS_WIN32 */ @@ -328,7 +326,7 @@ gtk_rc_make_default_dir (const gchar *type) else path = g_build_filename (GTK_LIBDIR, "gtk-2.0,", type, GTK_BINARY_VERSION, NULL); #else - path = g_build_filename (get_themes_directory (), type, NULL); + path = g_build_filename (get_gtk_win32_directory (""), type, NULL); #endif return path; @@ -363,7 +361,7 @@ gtk_rc_get_im_module_file (void) #ifndef G_OS_WIN32 result = g_build_filename (GTK_SYSCONFDIR, "gtk-2.0", "gtk.immodules", NULL); #else - result = g_build_filename (g_win32_get_package_installation_directory (GETTEXT_PACKAGE, get_gtk_dll_name ()), "gtk.immodules", NULL); + result = g_build_filename (get_gtk_win32_directory ("gtk-2.0"), "gtk.immodules", NULL); #endif } @@ -382,7 +380,7 @@ gtk_rc_get_theme_dir(void) else path = g_build_filename (GTK_DATA_PREFIX, "share", "themes", NULL); #else - path = g_strdup (get_themes_directory ()); + path = g_build_filename (get_gtk_win32_directory (""), "themes", NULL); #endif return path; @@ -412,7 +410,7 @@ gtk_rc_append_default_module_path(void) else path = g_build_filename (GTK_LIBDIR, "gtk-2.0", GTK_VERSION, "engines", NULL); #else - path = g_build_filename (get_themes_directory (), "engines", NULL); + path = g_build_filename (get_gtk_win32_directory ("gtk-2.0"), GTK_VERSION, "engines", NULL); #endif module_path[n++] = path; @@ -457,7 +455,7 @@ gtk_rc_add_initial_default_files (void) #ifndef G_OS_WIN32 str = g_build_filename (GTK_SYSCONFDIR, "gtk-2.0", "gtkrc", NULL); #else - str = g_build_filename (g_win32_get_package_installation_directory (GETTEXT_PACKAGE, get_gtk_dll_name ()), "gtkrc", NULL); + str = g_build_filename (get_gtk_win32_directory (""), "gtkrc", NULL); #endif gtk_rc_add_default_file (str); |