diff --git a/ChangeLog b/ChangeLog index be86db83da..95f96d091d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,26 @@ +2001-05-25 Hans Breuer + + * gdk/win32/gdkgc-win32.c : made fil mode GDK_STIPPLED actually + work -> check boxes and radio buttons are drawn now, even on win9x. + Improved line settings a bit, still no clue how to get really dotted + lines on win9x, on NT it's PS_ALTERNATE. + + * gdk/win32/gdkwindow-win32.c : use SafeAdjustWindowRect for + GDK_HINT_MIN_SIZE as well + + * gdk/win32/makefile.am : added gdkkeys-win32.c to EXTRA_DIST + + * gtk/gtk.def : updated + + * gtk/gtktreeprivate.h : change column_drop_func to be a function + pointer not a function pointer pointer + + * tests/testdnd.c : include for putenv prototype + + * tests/testsocket.c : made it compile on win32 again + + * tests/makefile.msc : one more test-app uses prop-editor.obj + 2001-05-22 Havoc Pennington * gtk/gtkbin.c (gtk_bin_get_child): New function diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index be86db83da..95f96d091d 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,26 @@ +2001-05-25 Hans Breuer + + * gdk/win32/gdkgc-win32.c : made fil mode GDK_STIPPLED actually + work -> check boxes and radio buttons are drawn now, even on win9x. + Improved line settings a bit, still no clue how to get really dotted + lines on win9x, on NT it's PS_ALTERNATE. + + * gdk/win32/gdkwindow-win32.c : use SafeAdjustWindowRect for + GDK_HINT_MIN_SIZE as well + + * gdk/win32/makefile.am : added gdkkeys-win32.c to EXTRA_DIST + + * gtk/gtk.def : updated + + * gtk/gtktreeprivate.h : change column_drop_func to be a function + pointer not a function pointer pointer + + * tests/testdnd.c : include for putenv prototype + + * tests/testsocket.c : made it compile on win32 again + + * tests/makefile.msc : one more test-app uses prop-editor.obj + 2001-05-22 Havoc Pennington * gtk/gtkbin.c (gtk_bin_get_child): New function diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index be86db83da..95f96d091d 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,26 @@ +2001-05-25 Hans Breuer + + * gdk/win32/gdkgc-win32.c : made fil mode GDK_STIPPLED actually + work -> check boxes and radio buttons are drawn now, even on win9x. + Improved line settings a bit, still no clue how to get really dotted + lines on win9x, on NT it's PS_ALTERNATE. + + * gdk/win32/gdkwindow-win32.c : use SafeAdjustWindowRect for + GDK_HINT_MIN_SIZE as well + + * gdk/win32/makefile.am : added gdkkeys-win32.c to EXTRA_DIST + + * gtk/gtk.def : updated + + * gtk/gtktreeprivate.h : change column_drop_func to be a function + pointer not a function pointer pointer + + * tests/testdnd.c : include for putenv prototype + + * tests/testsocket.c : made it compile on win32 again + + * tests/makefile.msc : one more test-app uses prop-editor.obj + 2001-05-22 Havoc Pennington * gtk/gtkbin.c (gtk_bin_get_child): New function diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index be86db83da..95f96d091d 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,26 @@ +2001-05-25 Hans Breuer + + * gdk/win32/gdkgc-win32.c : made fil mode GDK_STIPPLED actually + work -> check boxes and radio buttons are drawn now, even on win9x. + Improved line settings a bit, still no clue how to get really dotted + lines on win9x, on NT it's PS_ALTERNATE. + + * gdk/win32/gdkwindow-win32.c : use SafeAdjustWindowRect for + GDK_HINT_MIN_SIZE as well + + * gdk/win32/makefile.am : added gdkkeys-win32.c to EXTRA_DIST + + * gtk/gtk.def : updated + + * gtk/gtktreeprivate.h : change column_drop_func to be a function + pointer not a function pointer pointer + + * tests/testdnd.c : include for putenv prototype + + * tests/testsocket.c : made it compile on win32 again + + * tests/makefile.msc : one more test-app uses prop-editor.obj + 2001-05-22 Havoc Pennington * gtk/gtkbin.c (gtk_bin_get_child): New function diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index be86db83da..95f96d091d 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,26 @@ +2001-05-25 Hans Breuer + + * gdk/win32/gdkgc-win32.c : made fil mode GDK_STIPPLED actually + work -> check boxes and radio buttons are drawn now, even on win9x. + Improved line settings a bit, still no clue how to get really dotted + lines on win9x, on NT it's PS_ALTERNATE. + + * gdk/win32/gdkwindow-win32.c : use SafeAdjustWindowRect for + GDK_HINT_MIN_SIZE as well + + * gdk/win32/makefile.am : added gdkkeys-win32.c to EXTRA_DIST + + * gtk/gtk.def : updated + + * gtk/gtktreeprivate.h : change column_drop_func to be a function + pointer not a function pointer pointer + + * tests/testdnd.c : include for putenv prototype + + * tests/testsocket.c : made it compile on win32 again + + * tests/makefile.msc : one more test-app uses prop-editor.obj + 2001-05-22 Havoc Pennington * gtk/gtkbin.c (gtk_bin_get_child): New function diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index be86db83da..95f96d091d 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,26 @@ +2001-05-25 Hans Breuer + + * gdk/win32/gdkgc-win32.c : made fil mode GDK_STIPPLED actually + work -> check boxes and radio buttons are drawn now, even on win9x. + Improved line settings a bit, still no clue how to get really dotted + lines on win9x, on NT it's PS_ALTERNATE. + + * gdk/win32/gdkwindow-win32.c : use SafeAdjustWindowRect for + GDK_HINT_MIN_SIZE as well + + * gdk/win32/makefile.am : added gdkkeys-win32.c to EXTRA_DIST + + * gtk/gtk.def : updated + + * gtk/gtktreeprivate.h : change column_drop_func to be a function + pointer not a function pointer pointer + + * tests/testdnd.c : include for putenv prototype + + * tests/testsocket.c : made it compile on win32 again + + * tests/makefile.msc : one more test-app uses prop-editor.obj + 2001-05-22 Havoc Pennington * gtk/gtkbin.c (gtk_bin_get_child): New function diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index be86db83da..95f96d091d 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,26 @@ +2001-05-25 Hans Breuer + + * gdk/win32/gdkgc-win32.c : made fil mode GDK_STIPPLED actually + work -> check boxes and radio buttons are drawn now, even on win9x. + Improved line settings a bit, still no clue how to get really dotted + lines on win9x, on NT it's PS_ALTERNATE. + + * gdk/win32/gdkwindow-win32.c : use SafeAdjustWindowRect for + GDK_HINT_MIN_SIZE as well + + * gdk/win32/makefile.am : added gdkkeys-win32.c to EXTRA_DIST + + * gtk/gtk.def : updated + + * gtk/gtktreeprivate.h : change column_drop_func to be a function + pointer not a function pointer pointer + + * tests/testdnd.c : include for putenv prototype + + * tests/testsocket.c : made it compile on win32 again + + * tests/makefile.msc : one more test-app uses prop-editor.obj + 2001-05-22 Havoc Pennington * gtk/gtkbin.c (gtk_bin_get_child): New function diff --git a/gdk/win32/Makefile.am b/gdk/win32/Makefile.am index 4a83e22d3c..fe7106388f 100644 --- a/gdk/win32/Makefile.am +++ b/gdk/win32/Makefile.am @@ -20,6 +20,7 @@ EXTRA_DIST = \ gdkinput.c \ gdkinput-win32.c \ gdkinput-win32.h \ + gdkkeys-win32.c \ gdkmain-win32.c \ gdkpango-win32.c \ gdkpixmap-win32.c \ diff --git a/gdk/win32/gdkgc-win32.c b/gdk/win32/gdkgc-win32.c index 417f9d254b..e08673da8d 100644 --- a/gdk/win32/gdkgc-win32.c +++ b/gdk/win32/gdkgc-win32.c @@ -277,7 +277,12 @@ gdk_win32_gc_values_to_win32values (GdkGCValues *values, { gdk_drawable_get_size (win32_gc->stipple, &sw, &sh); - if (sw != 8 || sh != 8) +#if 0 /* HB: this size limitation is disabled to make radio and check + * buttons work. I got the impression from the API docs, that + * it shouldn't be necessary at all, but win9x would do the clipping + */ + if ( (sw != 8 || sh != 8) + && !IS_WIN_NT ()) /* HB: the MSDN says it's a Win95 limitation */ { /* It seems that it *must* be 8x8, at least on my machine. * Thus, tile an 8x8 bitmap with the stipple in case it is @@ -304,6 +309,7 @@ gdk_win32_gc_values_to_win32values (GdkGCValues *values, gdk_gc_unref (gc); } else +#endif gdk_drawable_ref (win32_gc->stipple); win32_gc->values_mask |= GDK_GC_STIPPLE; GDK_NOTE (MISC, @@ -402,19 +408,26 @@ gdk_win32_gc_values_to_win32values (GdkGCValues *values, if (mask & GDK_GC_LINE_STYLE) { - win32_gc->pen_style &= ~(PS_STYLE_MASK); GDK_NOTE (MISC, (g_print ("%sps|=", s), s = ",")); switch (values->line_style) { case GDK_LINE_SOLID: + win32_gc->pen_style &= ~(PS_STYLE_MASK); GDK_NOTE (MISC, g_print ("LINE_SOLID")); win32_gc->pen_style |= PS_SOLID; break; case GDK_LINE_ON_OFF_DASH: case GDK_LINE_DOUBLE_DASH: /* ??? */ - GDK_NOTE (MISC, g_print ("DASH")); - win32_gc->pen_style |= PS_DASH; + /* only set the linestyle here, if it isn't already set + * gdk_win32_gc_set_dashes () knows better + */ + if (0 == (win32_gc->values_mask & GDK_GC_LINE_STYLE)) + { + win32_gc->pen_style &= ~(PS_STYLE_MASK); + GDK_NOTE (MISC, g_print ("DASH")); + win32_gc->pen_style |= PS_DASH; + } break; } win32_gc->values_mask |= GDK_GC_LINE_STYLE; @@ -625,8 +638,10 @@ gdk_win32_gc_set_dashes (GdkGC *gc, win32_gc = GDK_GC_WIN32 (gc); + /* mark as set, see gdk_win32_gc_values_to_win32values () for the reason */ + win32_gc->values_mask |= GDK_GC_LINE_STYLE; + win32_gc->pen_style &= ~(PS_STYLE_MASK); - win32_gc->pen_style |= PS_DASH; /* * Set the extended line style. This could be done by @@ -910,6 +925,7 @@ predraw_set_foreground (GdkGC *gc, logbrush.lbStyle = BS_SOLID; logbrush.lbColor = fg; + logbrush.lbHatch = 0; if (*ok && (hpen = ExtCreatePen (win32_gc->pen_style, (win32_gc->pen_width > 0 ? win32_gc->pen_width : 1), @@ -924,12 +940,11 @@ predraw_set_foreground (GdkGC *gc, case GDK_OPAQUE_STIPPLED: if (*ok && (hbr = CreatePatternBrush (GDK_PIXMAP_HBITMAP (win32_gc->stipple))) == NULL) WIN32_GDI_FAILED ("CreatePatternBrush"), *ok = FALSE; - if (*ok && !SetBrushOrgEx(win32_gc->hdc, gc->ts_x_origin, gc->ts_y_origin, NULL)) WIN32_GDI_FAILED ("SetBrushOrgEx"), *ok = FALSE; + break; - case GDK_SOLID: default: if (*ok && (hbr = CreateSolidBrush (fg)) == NULL) @@ -1076,6 +1091,25 @@ gdk_win32_hdc_get (GdkDrawable *drawable, if ((hrgn = ExtCreateRegion (NULL, nbytes, rgndata)) == NULL) WIN32_API_FAILED ("ExtCreateRegion"), ok = FALSE; + /* + * XXX: combine the fillmode-stipple with the clip region possibly + * this needs to be done with the hcliprgn below as well, but + * the test case here were check boxes and radio buttons ... + */ + if ( (win32_gc->values_mask & GDK_GC_STIPPLE) + && (win32_gc->values_mask & GDK_GC_FILL) && (win32_gc->fill_style == GDK_STIPPLED)) + { + HRGN hstipplergn = BitmapToRegion ((HBITMAP) GDK_PIXMAP_HBITMAP (win32_gc->stipple)); + + if (OffsetRgn (hstipplergn, + win32_gc->values_mask & GDK_GC_TS_X_ORIGIN ? gc->ts_x_origin : 0, + win32_gc->values_mask & GDK_GC_TS_Y_ORIGIN ? gc->ts_y_origin : 0) == ERROR) + WIN32_API_FAILED ("OffsetRgn"), ok = FALSE; + if (CombineRgn (hrgn, hrgn, hstipplergn, RGN_AND) == ERROR) + WIN32_API_FAILED ("CombineRgn"), ok = FALSE; + if (!DeleteObject (hstipplergn)) + WIN32_API_FAILED ("DeleteObject"); + } if (ok && SelectClipRgn (win32_gc->hdc, hrgn) == ERROR) WIN32_API_FAILED ("SelectClipRgn"), ok = FALSE; @@ -1119,8 +1153,10 @@ gdk_win32_hdc_get (GdkDrawable *drawable, PS_GEOMETRIC ? "GEOMETRIC" : "COSMETIC"), ((extlogpen.elpPenStyle & PS_STYLE_MASK) == PS_NULL ? "NULL" : - ((extlogpen.elpPenStyle & PS_STYLE_MASK) == - PS_SOLID ? "SOLID" : "???")), + ((extlogpen.elpPenStyle & PS_STYLE_MASK) == PS_SOLID ? "SOLID" : + ((extlogpen.elpPenStyle & PS_STYLE_MASK) == PS_DOT ? "DOT" : + ((extlogpen.elpPenStyle & PS_STYLE_MASK) == PS_DASH ? "DASH" : + "???")))), ((extlogpen.elpPenStyle & PS_ENDCAP_MASK) == PS_ENDCAP_FLAT ? "FLAT" : ((extlogpen.elpPenStyle & PS_ENDCAP_MASK) == diff --git a/gdk/win32/gdkwindow-win32.c b/gdk/win32/gdkwindow-win32.c index 3a5ac37b6d..449418cd5a 100644 --- a/gdk/win32/gdkwindow-win32.c +++ b/gdk/win32/gdkwindow-win32.c @@ -1267,7 +1267,7 @@ gdk_window_set_hints (GdkWindow *window, rect.bottom = min_height; dwStyle = GetWindowLong (GDK_WINDOW_HWND (window), GWL_STYLE); dwExStyle = GetWindowLong (GDK_WINDOW_HWND (window), GWL_EXSTYLE); - AdjustWindowRectEx (&rect, dwStyle, FALSE, dwExStyle); + SafeAdjustWindowRectEx (&rect, dwStyle, FALSE, dwExStyle); impl->hint_min_width = rect.right - rect.left; impl->hint_min_height = rect.bottom - rect.top; diff --git a/gtk/gtk.def b/gtk/gtk.def index f474d5319d..2de5cf7f91 100755 --- a/gtk/gtk.def +++ b/gtk/gtk.def @@ -135,6 +135,7 @@ EXPORTS gtk_aspect_frame_get_type gtk_aspect_frame_new gtk_aspect_frame_set + gtk_bin_get_child gtk_bin_get_type gtk_binary_age gtk_binding_entry_add_signal @@ -597,7 +598,7 @@ EXPORTS gtk_image_get_stock gtk_image_get_storage_type gtk_image_get_type - gtk_image_menu_item_add_image +; gtk_image_menu_item_add_image gtk_image_menu_item_get_image gtk_image_menu_item_get_type gtk_image_menu_item_new @@ -1257,7 +1258,7 @@ EXPORTS gtk_text_iter_has_tag gtk_text_iter_in_range gtk_text_iter_is_end - gtk_text_iter_is_first +; gtk_text_iter_is_first gtk_text_iter_reorder gtk_text_iter_set_line gtk_text_iter_set_line_index @@ -1428,6 +1429,7 @@ EXPORTS gtk_tree_model_iter_parent gtk_tree_model_range_changed gtk_tree_model_ref_node + gtk_tree_model_reordered gtk_tree_model_sort_convert_path gtk_tree_model_sort_get_model gtk_tree_model_sort_get_type @@ -1443,6 +1445,7 @@ EXPORTS gtk_tree_path_new gtk_tree_path_new_from_string gtk_tree_path_prepend_index + gtk_tree_view_get_columns gtk_tree_view_set_rows_drag_dest gtk_tree_view_set_rows_drag_source gtk_tree_prepend @@ -1740,4 +1743,10 @@ EXPORTS gtk_window_unmaximize gtk_window_unstick + gtk_image_menu_item_new_with_label + gtk_image_menu_item_set_image + gtk_size_group_add_widget + gtk_size_group_new + gtk_text_buffer_remove_all_tags + gtk_tree_view_column_set_reorderable diff --git a/gtk/gtktreeprivate.h b/gtk/gtktreeprivate.h index 7d6be42a22..643f16b238 100644 --- a/gtk/gtktreeprivate.h +++ b/gtk/gtktreeprivate.h @@ -129,7 +129,7 @@ struct _GtkTreeViewPrivate GList *columns; gint header_height; - GtkTreeViewColumnDropFunc *column_drop_func; + GtkTreeViewColumnDropFunc column_drop_func; gpointer column_drop_func_data; GtkDestroyNotify column_drop_func_data_destroy; GList *column_drag_info; diff --git a/tests/makefile.msc b/tests/makefile.msc index ed0305d4b7..5725e95b42 100644 --- a/tests/makefile.msc +++ b/tests/makefile.msc @@ -61,6 +61,10 @@ EXTRA_OBJETCS = prop-editor.obj EXTRA_OBJETCS = prop-editor.obj !ENDIF +!IFDEF EXTRA_testtext +EXTRA_OBJETCS = prop-editor.obj +!ENDIF + $(TESTAPP).exe : ../gtk/gtk-win32-$(GTK_VER).dll $(TESTAPP).obj $(CC) $(CFLAGS) $(TESTAPP).obj $(EXTRA_OBJETCS) $(GTK_LIBS) $(GDK_LIBS) $(GDK_PIXBUF_LIBS) $(PANGO_LIBS) $(GLIB_LIBS) $(LDFLAGS) diff --git a/tests/testdnd.c b/tests/testdnd.c index c46eeb1ece..be36c4e9d5 100644 --- a/tests/testdnd.c +++ b/tests/testdnd.c @@ -1,3 +1,4 @@ +#include /* putenv */ #include "gtk/gtk.h" /* Target side drag signals */ diff --git a/tests/testsocket.c b/tests/testsocket.c index de257ade0d..a775eefd38 100644 --- a/tests/testsocket.c +++ b/tests/testsocket.c @@ -1,7 +1,13 @@ #include -#include "x11/gdkx.h" -#include +#if defined (GDK_WINDOWING_X11) +#include "x11/gdkx.h" +#elif defined (GDK_WINDOWING_WIN32) +#include "win32/gdkwin32.h" +#define GDK_WINDOW_XWINDOW(w) (guint)GDK_WINDOW_HWND(w) +#endif + +#include #include #include