This adds support for OpenGL to the GDK Windows backend using the WGL API
calls, which enables programs that uses the GTK+ GLArea widgets to work on
Windows as well.
This also adds a simple utility function to query for the version of OpenGL
that is supported by the Windows system, like the one provided by the X11
backend.
Many thanks to Alex (and Emmanuele, who started the OpenGL integration in
GTK+) who offered advice and help along the way, as well as the X11 and
Wayland backend for this work to refer to and to model upon.
https://bugzilla.gnome.org/show_bug.cgi?id=740795
Move all the system includes, defines and function prototypes into a
separate header gdkwin32misc.h, so that we could keep gdkwin32.h as simple
as possible.
- replace GdkNativeWindow with HWND, remove type casts
- no more GdkDisplayClass::get_drag_protocol but GdkWindowImpl::get_drag_protocol
- remove *_client_message*()
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."
2009-02-09 Cody Russell <bratsche@gnome.org>
* gdk/win32/gdkwin32.h: Add potentially missing #defines for
XBUTTON1, etc. Fixes the build that was broken in r21746.
svn path=/trunk/; revision=22297
2008-05-28 Michael Natterer <mitch@imendio.com>
* gdk/gdk.h: define __GDK_H_INSIDE__ around including all other
headers.
* gdk/gdkenumtypes.h.template
* gdk/gdk*.h: add single-include guards that #error out if
GTK_DISABLE_SINGLE_INCLUDES is defined and any of these files is
included individually. Also removed some redundant includes and
did some tiny trailing whitespace removal that's not worth to
commit separately.
* gdk/gdkprivate.h: include <gdk/gdk.h> instead of individual
files.
* gdk/win32/gdkwin32.h
* gdk/x11/gdkx.h: only include <gdk/gdkprivate.h> and remove all
other includes.
svn path=/trunk/; revision=20217
2005-09-18 Hans Breuer <hans@breuer.org>
* gdk/gdk.symbols gdk/win32/gdkwin32.h gdk/win32/gdkcursorwin32.c : export
_gdk_win32_pixbuf_to_hicon() as gdk_win32_pixbuf_to_hicon_libgtk_only()
* gtk/gtktrayicon-win32.c : a lot of debug spew but it has started to show
the icon and is blinking with teststatusicon. More to come ...
2005-07-06 Tor Lillqvist <tml@novell.com>
* gdk/win32/gdkcursor-win32.c: Add comment about the current named
cursor implementation, and what it maybe really should do.
(gdk_win32_icon_to_pixbuf_libgtk_only): New function, code moved
here from gtk/gtkfilesystemwin32.c:extract_icon().
(gdk_cursor_get_image): Use
gdk_win32_icon_to_pixbuf_libgtk_only().
* gdk/gdk.symbols
* gdk/win32/gdkwin32.h: Declare gdk_win32_icon_to_pixbuf_libgtk_only().
* gtk/gtkfilesystemwin32.c (extract_icon): Use
gdk_win32_icon_to_pixbuf_libgtk_only().
2005-04-04 Tor Lillqvist <tml@novell.com>
* gdk/win32/gdkmain.c (_gdk_win32_cf_to_string): New debugging
function, to log a clipboard format name symbolically.
(_gdk_win32_data_to_string): Also new, to log random data bytes.
Implement delayed rendering on Win32, specifically for transfering
images through the clipboard from GTK+ apps to other
apps (#168173, implementation by Ivan Wong):
* gdk/win32/gdkevents-win32.c (gdk_event_translate):
Handle WM_RENDERFORMAT.
* gdk/win32/gdkprivate-win32.h
* gdk/win32/gdkglobals-win32.c: Add _format_atom_table,
_delayed_rendering_data and _image_bmp.
* gdk/win32/gdkmain-win32.c: Initialize _image_bmp.
* gdk/win32/gdkproperty-win32.c (gdk_property_change):
Accept formats other than GDK_TARGET_STRING or _utf8_string, and
assume they are handled through delayed rendering.
* gdk/win32/gdkselection-win32.c (gdk_selection_convert):
Return all available formats (including those registered by GTK+
apps) on request_targets.
(gdk_selection_property_get): We should append a zero byte like
X11 does.
(gdk_win32_selection_add_targets): New function, for
gtkselection's use. Win32 requires that the clipboard owner
registers all valid formats even if the owner wants delayed
rendering.
(_gdk_win32_selection_convert_to_dib): New function. Convert
images to DIB using gdk-pixbuf.
* gdk/win32/gdkwin32.h: Declare gdk_win32_selection_add_targets().
* gtk/gtkselection.c (gtk_selection_add_target,
gtk_selection_add_targets): Call gdk_win32_selection_add_targets()
to register target formats.
* gdk/gdk.symbols: Add gdk_win32_selection_add_targets().
2002-03-20 Tor Lillqvist <tml@iki.fi>
* gdk/win32/gdkdnd-win32.c (gdk_drag_find_window): Use
gdk_window_get_toplevel(), as it is the top-level windows that are
registered for DND.
* gdk/win32/gdkwin32.h: Don't include gdkinternals.h.
2002-02-17 Tor Lillqvist <tml@iki.fi>
* gdk/win32/*.c: Massive changes. Too many to list here, but I'll
try a summary:
1) Unify GdkPixmap and GdkImage implementation: For each
GdkPixmap, allocate a GdkImage, and vice versa.
GdkPixmapImplWin32Data has a pointer to the GdkImage.
GdkImage::windowing_data is a pointer to the GdkPixmap.
This simplifies many pixmap and image related functions a lot, and
reduces duplicated code snippets. For instance, there is only one
place in gdk/win32 where CreateDIBSection() is called, in the
function _gdk_win32_new_pixmap(). Converting a bitmap (GdkPixmap)
to a Windows region is almost trivial, with the bitmap bits being
readily accessible in the associated GdkImage.
All blitting between GdkPixmaps, GdkWindows and GdkImages goes
through handled the _gdk_win32_blit() function, which calls
different functions to handle the cases of blitting from pixmaps,
inside windows (scrolling), or from windows, which all require
somewhat different handling.
2) Support 256-color mode. This has long been very broken, now it
works more or less OK. Keep the logical palette for each colormap
as small as possible while allocating and freeing colors. Select
and realize the logical palette associated with a GdkColormap into
a DC before drawing or blitting.
When the display is in 256-color mode, make it possible for the
user to override the size of the palette(s) used with either the
GDK_WIN32_MAX_COLORS environment variable, or a -max-colors
command line option. It is possible to reduce the palette size all
the way down to using just the 16 static colors (which causes the
system visual to be of type GDK_VISUAL_STATIC_COLOR. This could
possibly be useful if one desperately wants to avoid color
flashing. (Note that in order for this to work properly, an as of
yet not commited fix to gdkrgb.c is needed.)
Handle the palette messages. On WM_PALETTECHANGED, call
UpdateColors() for the given window hierarchy. Do this only if a
window in some other top-level window hierarchy caused the palette
change (realized a palette). Do this max five times in a row (an
arbitrarily chosen limit), though, otherwise redraw by generating
expose events. On WM_QUERYNEWPALETTE, cause a redraw of the whole
window hierarchy by generating GDK_EXPOSE events.
3) Code cleanup in general. For instance, remove the "emulated"
X11 structs ColormapStruct, Visual and XStandardColormap. Use the
new GDK_DEBUG_* flags for debugging output in the relevant source
files. Remove the unused colormap hash table in gdkcolor-win32.c
4) Plug some resource leaks.
2002-02-14 Tor Lillqvist <tml@iki.fi>
* gdk/win32/gdkdnd-win32.c (gdk_dropfiles_filter): Use
g_filename_to_uri() to actually create legal URIs in the
text/uri-list data.
2001-10-29 Tor Lillqvist <tml@iki.fi>
* gdk/win32/libwntab32x.la: New file, hand-written wrapper for the
Wintab library.
* gdk/win32/gdkwin32.h
* gdk/win32/gdkprivate-win32.h: Reorganise to match corresponding
X11 headers better, and to enable gdkwin32.h to be installed and
included from applications, but not the *-win32.h headers.
* gdk/win32/*.c: Corresponding small changes, simplifications of
#includes.
* gdk/win32/gdkregion-win32.c: Remove.
* gdk/win32/gdkevents-win32.c (print_event): Add GDK_SETTING.
* gdk/win32/gdkfont-win32.c
* gdk/win32/gdkgeometry-win32.c: Remove unused variables.
* gdk/win32/gdkproperty-win32.c (gdk_atom_intern): Don't insert
GDK_NONE values into hash table.
Changes for autoconfiscated build on Win32, and addition of Win32
backend to the related files:
* gdk/win32/Makefile.am: Actually enable building the win32
objects here, not just list all files in EXTRA_DIST. Link in the
compiled resource file from rc/gdk-win32res.lo. If HAVE_WINTAB,
copy the Wintab library into the .libs directory.
* gdk/win32/gdkwindow-win32.c (RegisterGdkClass): Don't assume the
name of the GDK DLL when fetching the icon. Use the HMODULE saved
in gdk_dll_hinstance by DllMain.
* gdk/win32/rc/Makefile.am: Build gdk-win32res.lo using the
build/win32/lt-compile-resource script.
* gdk/win32/rc/gdk.rc.in
* gtk/gtk-win32.rc.in: Use the DLL name that libtool would use.
2001-10-28 Hans Breuer <hans@breuer.org>
* gdk/gdk.c gdk/gdkevents.c
gdk/win32/gdkcolor-win32.c gdk/win32/gdkdnd-win32.c
gdk/win32/gdkdrawable-win32.c gdk/win32/gdkevents-win32.c
gdk/win32/gdkfont-win32.c gdk/win32/gdkgc-win32.c
gdk/win32/gdkim-win32.c gdk/win32/gdkmain-win32.c
gdk/win32/gdkprivate-win32.h gdk/win32/gdkproperty-win32.c
gdk/win32/gdkselection-win32.c gdk/win32/gdkwin32.h
gdk/win32/gdkwindow-win32.c gdk/win32/gdkwindow-win32.h :
static correct-ness, underscore prefixing of library internal
functions
(applied the undisputed and the win32 part. Of the latter
I'm probably the one who will change it back again, if Owen
decides that the Gdk*Impl types should not be private to Gdk)
* gdk/gdk.def : added the remaining exported functions
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
Fri Sep 7 11:51:44 2001 Owen Taylor <otaylor@redhat.com>
Make gdkx.h the only installed header from gdk/x11.
All structures in gdk/x11 are opaque.
* gdk/x11/Makefile.am gdk/x11/gdkx.h gdk/x11/gdkprivate-x11.h:
Don't install gdk{drawable,pixmap,window}-x11.h.
* gdk/x11/{gdkcolormap-x11.c, gdkfont-x11.c, gdkx.h, gdkvisual-x11.c:
Move GdkColormapPrivateX11, GdkFontPrivateX GdkImagePrivateX11,
GdkVisualClass into C files.
* gdk/gdkpixmap-x11.[ch]: Make gdk_pixmap_impl_get_type() static.
* gdk/x11/{gdkcolor-x11.c, gdkcursor-x11.c, gdkdrawable-x11.c,
gdkfont-x11.c, gdkgc-x11.c, gdkx.h, gdkimage-x11,gdkvisual-x11.c}
Add public functions to replace previously exported direct
structure access.
gdk_x11_colormap_get_{xdisplay,xcolormap}
gdk_x11_cursor_get_{xdisplay,xcursor},
gdk_x11_drawable_get_{xdisplay,xcursor,gdk_x11_visual_get_xvisual,
gdk_x11_font_get_{xdisplay,xfont}, gdk_x11_image_get_{xdisplay,ximage},
gdk_x11_gc_get_{xdisplay,ximage}
* gdk/gdkprivate.h gdk/gdkinternals.h: Move GdkColorInfo,
GdkEventFilter, GdkClientFilter, GdkFontPrivate to gdkinternals.
Fix a number of variables and functions that were exported
"accidentally" from GDK.
* gdk/**.[ch]: gdk => _gdk for gdk_visual_init,
gdk_events_init, gdk_input_init, gdk_dnd_init, gdk_image_exit,
gdk_input_exit, gdk_windowing_exit, gdk_event_func, gdk_event_data,
gdk_event_notify, gdk_queued_events, gdk_queued_tail,
gdk_event_new, gdk_events_queue, gdk_events_unqueue,
gdk_event_queue_find_first, gdk_event_queue_remove_link,
gdk_event_queue_append, gdk_event_button_generate,
gdk_debug_flags, gdk_default_filters, gdk_parent_root.
* gdk/x11/{gdkevents-x11.c, gdkglobals-x11.c, gdkimage-x11.c,
gdkmain-x11.c, gdkprivate-x11.h, gdk/x11/gdkwindow-x11.c}:
gdk => _gdk for gdk_event_mask_table, gkd_nevent_masks,
gdk_wm_window_protocols, gdk_leader_window, gdk_xgrab_window,
gdk_use_xshm, gdk_input_ignore_core.
* gdk/x11/xsettings-common.h (xsettings_list_insert): Add
#defines to namespace functions into the private _gdk_
namespace.
* gdk/gdkwindow.[ch] gdk/x11/gdkx.h: Add gdk_get_default_root_window ()
to replace gdk_parent_root exported variable. Adjust and
deprecate GDK_ROOT_PARENT().
* demos/{testpixbuf-drawable.c,testpixbuf-save.c}: Fix
GDK_ROOT_PARENT usage, remove includes of port-specific
headers.
* gdk/{win32,x11,fb}/gdkinput*.[ch]: s/gdk/_gdk/ for
_gdk_input_gxid_host, _gdk_input_gxid_port, _gdk_input_ignore_core,
gdk_input_devices, _gdk_input_windows, gdk_init_input_core.
* gdk/x11/{gdkevents-x11.,c gdkglobals-x11.c, gdkmain-x11.c}
docs/Changes-2.0.txt: Remove gdk_wm_protocols,
gdk_wm_delete_window functions, gdk_wm_take_focus,
use gdk_atom_intern() instead.
* gdk/linux-fb/{gdkselection-fb.c, gdkmain-fb.c, gdkprivatefb.h}
gdk/win32/{gdkselection-win32.c, gdkmgdkwin32.h, gdkprivate-win32.h}
gdk/x11/{gdkselection-x11.c gdkx.h, gtkprivate-x11.h}
gtk/gtkselection.c
Unexport gdk_selection_property, just use
gdk_atom_intern ("GDK_SELECTION").
* gdk/x11/{gdkprivate-x11.h,gdkdrawable-x11h,gdkgc-x11.c,gdkx.h}:
Unexport gdk_drawable_impl_x11_get_type, gdk_gc_x11_get_type,
GDK_GC_X11 cast macros, GdkGCX11 structures, GdkCursorPrivate,
GdkVisualprivate, gdk_x11_gc_flush.
Make a number of public exports of variables into functions
to increase encapsulation.
* gdk/gdkinternals.h gdk/gdkinput.h gdk/gdkevents.h
gdk/linux-fb/gdkmouse-fb.c: gdk_core_pointer => _gdk_core_pointer,
move to gdkinternals.h. Add gdk_device_get_core_pointer ().
* gdk/gdkprivate.h gdk/gdkpango.c gdk/gdkinternals.h
docs/Changes-2.0.txt: Unexport gdk_parent_root, gdk_error_code,
gdk_error_warnings.
* gdk/x11/{gdkcolormap-x11.c, gdkmain-x11.c, gdkx.h}
docs/Changes-2.0.txt:
s/gdk_screen/_gdk_screen/, add gdk_x11_get_default_screen()
s/gdk_root_window/_gdk_root_window/, add gdk_x11_get_default_root_xwindow()
Add gdk_x11_get_default_xdisplay().
* gdk/gdk.h gdk/gdk.c linux-fb/gdkfb.h linux-fb/gdkglobals-fb.c
win32/gdkwin32.h x11/gdkglobals-x11.c gdk/x11/gdkmain-x11.c
gdk/x11/gdkx.h: gdk/gdk.def: Add gdk_get/set_program_class,
Don't export gdk_progclass, move --class command line
option and handling to common portion of GDK.
Miscellaneous fixes:
* gdk/x11/gdkwindow-x11.c (gdk_window_set_icon_list): Fix
g_return_val_if_fail that should have been g_return_if_fail.
* gdk/gdkinternals.h gdk/gdkprivate.h: Move
gdk_synthesize_window_state() to the semi-public gdkprivate.h.
* gtk/gtkdnd.c (_gtk_drag_source_handle_event): Remove uneeded
X11 dependency.
* gdk/linux-fb/gdkmain-fb.c gdk/win32/gdkmain-win32.c gdk/TODO:
Remove unused gdk_key_repeat_disable/restore.
* linux-fb/gdkglobals-fb.c win32/gdkglobals-win32.c
x11/gdkglobals-x11.c x11/gdkprivate-x11.h gdk/gdk.def:
Remove unused gdk_null_window_warnings variable.
* gdk/Makefile.am (DIST_SUBDIRS) nanox/*: cvs remove nanox;
it can be retrieved from the repository; it is too far
from functional to be worth having people check out;
it would be easier to start from scratch, I suspect.
* gdk/x11/gdkpixmap-x11.c: Fix lvalue usage of GDK_PIXMAP_XID().
* gdk/x11/gdkkeys-x11.c gdk/gdkrgb.c gdk/gdkwindow.c
gdk/x11/gdkpango-x11.c gdk/x11/gdkselection-x11.c:
Fix some accidentally global variables and unused global variables.
* gdk/x11/gdkkeys-x11.c gdk/gdkrgb.c gdk/gdkwindow.c
gdk/x11/gdkpango-x11.c gdk/x11/gdkselection-x11.c:
Fix some accidentally global variables and unused global variables.
Add some space for future expansion to multihead.
* gdk/gdkdrawable.h: Add four reserved function pointers
for future expansion of GdkDrawableClass.
* gtk/gtkwindow.h gtk/gtkinvisible.h: Add reserved pointer
where we can put a GdkScreen * later.
2001-07-20 Hans Breuer <hans@breuer.org>
* gdk/win32/gdkinput-win32.c : gdk_device_get_history moved to
gdk/gdkinput.c like the other backends
* gdk/win32/gdkinput-win32.h :
* gdk/win32/gdkinput.c :
* gdk/win32/gdkvisual-win32.c :
* gdk/win32/gdkwin32.h : mechanical adaption to GdkDevice and
GdkVisual GObjectification. UNTESTED for pen-devices because
I simply have none.
* gdk/gdk.def :
* gtk/gtk.def : updated externals
* gtk/gtkiconfactory.c :
* gtk/gtkoldeditable.c : GError *error needs to be initialized (= NULL)
before passing &error to functions to avoid strange crashes
* gtk/gtkcontainer.c (gtk_container_real_set_focus_child) : is static
* gtk/gtkwidget.c (gtk_widget_get_child_visible): use g_return_val_if_fail
* gtk/makefile.msc.in : updated
2000-12-30 Tor Lillqvist <tml@iki.fi>
* gdk/win32/gdkwindow-win32.c
(gdk_window_impl_win32_get_visible_region): New function, as in
the X11 backend.
(gdk_window_new, gdk_window_set_title): Use g_locale_from_utf8()
instead of duplicating the same code here.
* gdk/win32/gdkwin32.h (GDK_COLORMAP_PRIVATE_DATA): Use
GDK_COLORMAP macro.
* gdk/win32/gdkevents-win32.c (gdk_event_funcs): Use NULL as
destroy function.
(gdk_event_translate): Use GDK_COLORMAP_PRIVATE_DATA to correctly
access that.
* gtk/gtk.def: Update.
* gtk/makefile.mingw.in: Use glib-genmarshal from $(GLIB)/gobject.
2000-12-26 Tor Lillqvist <tml@iki.fi>
* gdk/win32/gdkvisual-win32.c (gdk_visual_init): Call g_error if
we are on a palettized display ("PseudoColor" in X11), as the code
for that doesn't work anyway, and never has.
2000-12-30 Tor Lillqvist <tml@iki.fi>
* gdk_pixbuf.def: Update.
2000-10-09 Tor Lillqvist <tml@iki.fi>
* README.win32: Update.
* gdk/win32/gdkgeometry-win32.c (gdk_window_clip_changed): Add two
lines that had been deleted by mistake (?).
* gdk/win32/gdkcursor-win32.c (gdk_cursor_new_from_pixmap): Handle
also the case fg==white and bg==black (but still not randomly
coloured cursors). Thanks to Wolfgang Sourdeau.
* gdk/win32/*.c: Silence gcc -Wall.
* gtk/gtk.def: Add missing entry points.
Fixes by Hans Breuer:
* gdk/makefile.msc
* gdk/win32/makefile.msc: Update.
* gdk/testgdk.c: If compiling with debugging (with _DEBUG defined,
some MSVC thing, presumably), cause breakpoint on failures. Add
GDK_NOR case. Call g_log_set_always_fatal.
* gdk/win32/gdkwin32id.c (gdk_win32_handle_table_insert): Handle
should be pased by reference.
* gdk/win32/gdkprivate-win32.h: Correct declaration accordingly.
* gdk/win32/*.c: Correct calls to gdk_win32_handle_table_insert.
* gdk/win32/gdkevents-win32.c
* gdk/win32/gdkwindow-win32.c: Handle WM_CREATE.
* gdk/win32/gdkgc-win32.c: Fix mixups of drawable and
implementation object.
* gdk/win32/gdkimage-win32.c (gdk_image_get): Handle drawables,
not just windows.
* gdk/win32/gdkpixmap-win32.c (gdk_pixmap_impl_win32_finalize):
Use the wrapper object.
2000-09-07 Tor Lillqvist <tml@iki.fi>
* gdk/win32/makefile.mingw.in: Use -Wall. Add gdkpango-win32.o
* gdk/win32/gdkwin32.h: Add more definitions missing from the free
w32api headers.
* gdk/win32/gdkprivate-win32.h: Add a couple of missing
declarations.
* gdk/win32/gdkdrawable-win32.c: Remove gcc -Wall warnings.
(gdk_win32_get_colormap): A line had been deleted by mistake.
* gdk/win32/gdkevents-win32.c: Remove lint (gcc -Wall) here, too.
(gdk_event_translate): Handle more virtual keycodes to be able to
generate GDK events for Control-comma, Control-period, etc.
* gtk/gtk.def: Add some missing entry points.
2000-09-07 Tor Lillqvist <tml@iki.fi>
* makefile.mingw.in: Use own version number for gdk-pixbuf DLLs,
like on Unix.
Wed Jul 26 12:59:31 2000 Tim Janik <timj@gtk.org>
* *.[hc]: applied patch from Andreas Persenius <ndap@swipnet.se> that
updates the license headers to the GNU Lesser General Public License,
as well as updating the copyright year to 2000.
2000-07-25 Tor Lillqvist <tml@iki.fi>
* configure.in: Generate gtk/makefile.mingw.
* config.h.win32: Add GETTEXT_PACKAGE.
* gdk/gdk.def
* gtk/gtk.def: Updates.
* gdk/gdkfont.h
* gdk/gdkpixmap.h: Remove temporary Win32-only functions, we don't
need them any longer.
* gdk/gdkinput.h: Mark gdk_core_pointer for export/import.
* gdk/win32/*.c: More work.
* gdk/win32/gdkpango-win32.c: New file.
* gtk/makefile.mingw.in: New file
* gtk/makefile.cygwin: Removed
* gtk/Makefile.am: Update accordingly.
* gtk/gtkmain.c: Use gtk_win32_get_installation_directory().
* gtk/gtktextdisplay.c: No need to include pangox.h, pango.h
is enough.
* gtk/gtktypeutils.c: Mark glib_debug_objects for import.
2000-07-25 Tor Lillqvist <tml@iki.fi>
* Makefile.am: Include the build directory.
* configure.in: Generate build/Makefile and build/win32/Makefile.
* config.h.win32: Add USE_GMODULE and USE_MMX for gdk-pixbuf.
* gdk/gdk.def
* gtk/gtk.def: Updates.
* gdk/makefile.mingw.in: Define GDK_COMPILATION. Link with
PANGOWIN32_LIBS and gdk_pixbuf.
* gdk/win32: Compiles, but no doubt doesn't work at all.
* gdk/win32/makefile.mingw.in: Define GDK_COMPILATION.
* gdk/win32/gdkinput.c: New file, temporarily.
* gdk/win32/gdkinput-win32.h: New file
* gdk/win32/gdkinputprivate.h: Remove.
* gtk/gtkrc.[ch] (gtk_win32_get_installation_directory): Renamed and
made externally visible.
2000-07-23 Tor Lillqvist <tml@iki.fi>
More work on GDK for Win32. Still in an intermediate state.
* gdk/makefile.cygwin
* gdk/win32/makefile.cygwin: Removed.
* gdk/makefile.mingw.in
* gdk/win32/makefile.mingw.in: New files.
* gdk/Makefile.am
* gdk/win32/Makefile.am: Generate and distribute them.
* gdk/win32/gdkwindow-win32.h
* gdk/win32/gdkdrawable-win32.h
* gdk/win32/gdkpixmap-win32.h: New files.
* gdk/win32/gdkcolor-win32.c
* gdk/win32/gdkcursor-win32.c
* gdk/win32/gdkgc-win32.c
* gdk/win32/gdkimage-win32.c
* gdk/win32/gdkprivate-win32.h
* gdk/win32/gdkwin32.h: Update data structures. Cosmetics:
don't use fields and variables called xcursor, xid, etc (leftovers
from the X11 backend).
2000-07-12 Tor Lillqvist <tml@iki.fi>
* gdk/win32/gdkcc-win32.c:
* gdk/win32/gdkcolor-win32.c
* gdk/win32/gdkprivate-win32.h
* gdk/win32/gdkwin32.h: Changes to make compilable, with new
GDK object structure.
2000-07-12 Tor Lillqvist <tml@iki.fi>
Win32 changes, still doesn't build though.
* gdk/makefile.cygwin
* gdk/win32/makefile.cygwin
* gtk/makefile.cygwin: Updates.
* gdk/win32/gdkgc-win32.c (_gdk_win32_gc_new): Use the same
default values for fg and bg pixel as X11 does (0 and 1), not
black and white. Use PS_ENDCAP_FLAT and PS_JOIN_MITER by default.
Use 0 for pen width by default (treated as 1 anyway later, but for
apps that might check the value in the GdkGC).
(gdk_win32_hdc_get, gdk_win32_hdc_release): New functions, public
interface to gdk_gc_predraw and _postdraw.
* gdk/win32/gdkwin32.h
* gdk/gdk.def: Add gdk_win32_hdc_{get,release}.
* gdk/win32/gdkcolor-win32.c (gdk_colormap_alloc1): Remove
extraneous semicolon.
* gdk/win32/gdkdrawable-win32.c: Check also for pen_width == 0.
* gdk/win32/gdkimage-win32.c (gdk_image_new): Use the visual's depth,
not the Win32 bitspixel value.
Thu Jul 6 11:54:03 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdk.h gdk/gdktypes.h gdk/linux-fb/gdkmain-fb.c
gdk/nanox/gdkmain-nanox.c gdk/win32/gdkevents-win32.c
gdk/win32/gdkinput-win32.c gdk/win32/gdkwin32.h
gdk/x11/gdkmain-x11.c:
Patch from George Liebl to add a GdkGrabStatus enumeration to use
as a return value of gdk_*_grab(). Previously, we just
returned the X11 values directly.
2000-07-04 Tor Lillqvist <tml@iki.fi>
* gdk/win32/gdkevents-win32.c (gdk_event_translate): Handle also
WM_SYSCHAR, and other changes to get handling of Alt+nnn or
Alt+0nnn on the numpad (used to enter characters by numeric code
from current DOS or ANSI codepage) working correctly, as in other
Windows apps.
* gdk/win32/gdkcursor-win32.c (gdk_cursor_new_from_pixmap): Use
same argument validity tests as in X11 version.
(_gdk_cursor_destroy): Use DestroyCursor, not DestroyIcon.
* gdk/win32/gdkwin32.h: Add also WM_MOUSEWHEEL and CopyCursor
definitions in case missing from headers.
* gdk/win32/gdkwindow-win32.c (gdk_win32_window_destroy): ALso
destroy the window-specific cursor.
(RegisterGdkClass): Use the global gdk_ProgInstance instead of
calling GetModuleHandle(NULL).
(gdk_window_set_cursor): Reworked to always copy the passed cursor
with CopyCursor before setting it. It is OK for the caller to
destroy the GdkCursor (and thus also the Windows cursor) after
calling this function. Also, destroy any previous cursor for this
window.
2000-05-29 Tor Lillqvist <tml@iki.fi>
* gdk/win32/gdkevents-win32.c (gdk_WindowProc): The local "event"
variable should be of type GdkEventPrivate.
2000-05-13 Tor Lillqvist <tml@iki.fi>
* gdk/win32/gdkwin32.h: Define more message types missing from
mingw headers.
* gdk/win32/gdkevents-win32.c (gdk_event_translate): On WM_DESTROY
call gdk_window_destroy_notify(). It was never called. This
probably meant that the GdkWindow was never freed. Thanks Owen for
noticing (!).
* gdk/win32/gdkwindow-win32.c (gdk_window_internal_destroy): Mark
window as destroyed before calling DestroyWindow(). DestroyWindow()
causes a call to the window procedure (gdk_WindowProc), which
calls gdk_event_translate(), which calls
gdk_window_destroy_notify(), which gets confused unless the window
is set as destroyed.
* gdk/win32/gdkcolor-win32.c (gdk_win32_color_to_string): Rename
this function to indicate it's win32 only. Put inside #ifdef
G_ENABLE_DEBUG.
* gdk/win32/gdkevents-win32.c (gdk_win32_message_name): New
debugging function. (gdk_event_translate:) Add a default branch
that uses the above function to print debug messages with all
Windows messages symbolically.
* gdk/win32/gdkprivate-win32.h: Declare it, and
gdk_win32_color_to_string, but only if G_ENABLE_DEBUG.
2000-05-02 Tor Lillqvist <tml@iki.fi>
Large changes to the Win32 backend, partially made necessary by
the changes to the backend-independent internal
structures. Attempts to implement similar backing store stuff as
on X11. The current (CVS) version of the Win32 backend is *not* as
stable as it was before the no-flicker branch was merged. A
zipfile with that version is available from
http://www.gimp.org/win32/. That should be use by "production"
code until this CVS version is usable. (But note, the Win32
backend has never been claimed to be "production quality".)
* README.win32: Add the above comment about versions.
* gdk/gdkwindow.c: Don't use backing store for now on Win32.
* gdk/gdk.def: Update.
* gdk/gdkfont.h: Declare temporary Win32-only functions. Will
presumably be replaced by some more better mechanism as 1.4 gets
closer to release shape.
* gdk/makefile.{cygwin,msc}: Update.
* gdk/win32/*.c: Correct inclusions of the backend-specific and
internal headers. Change code according to changes in these. Use
gdk_drawable_*, not gdk_window_* where necessary.
* gdk/win32/gdkdnd-win32.c: Use MISC selector for GDK_NOTE, not
our old DND.
* gdk/win32/gdkdrawable-win32.c (gdk_win32_draw_text): Don't try
to interpret single characters as UTF-8. Thanks to Hans Breuer.
Use correct function name in warning messages.
* gdk/win32/gdkevents-win32.c: Use correct parameter lists for the
GSourceFuncs gdk_event_prepare and gdk_event_check.
(gdk_event_get_graphics_expose): Do implement, use
PeekMessage. Thanks to Hans Breuer.
(event_mask_string): Debugging function to print an GdkEventMask.
(gdk_pointer_grab): Use it.
* gdk/win32/gdkfont-win32.c: The Unicode subrange that the
(old) book I used claimed was Hangul actually is CJK Unified
Ideographs Extension A. Also, Hangul Syllables were missing.
Improve logging.
* gdk/win32/gdkgc-win32.c: Largish changes.
* gdk/win32/gdkim-win32.c (gdk_set_locale): Use
g_win32_getlocale() from GLib, and not setlocale() to get current
locale name.
* gdk/win32/gdkprivate-win32.h
* gdk/win32/gdkwin32.h: Move stuff from gdkprivate-win32.h to
gdkwin32.h, similarily as in the X11 backend.
* gdk/win32/gdkwindow-win32.c (gdk_propagate_shapes): Bugfix,
assignment was used instead of equals in if test. Thanks to Hans
Breuer.
* gdk/win32/makefile.{cygwin,msc}
* gtk/makefile.{cygwin,msc}: Updates. Better kludge to get the
path to the Win32 headers that works also with the mingw compiler.
* gtk/gtkstyle.c: Include <string.h>.
2000-03-07 Tor Lillqvist <tml@iki.fi>
* gdk/win32/gdkmain-win32.c: Internal GDK error reporting changes:
(gdk_win32_gdi_failed) New function for reporting errors from GDI,
for which it is no use to call GetLastError on Win9x.
(gdk_other_api_failed) New function, for
general error reporting without calling GetLastError.
(gdk_win32_api_failed) OTOH, this function always calls
GetLastError. (gdk_win32_last_error_string) Remove this function,
GLib has the equivalent now.
* gdk/win32/gdkprivate-win32.h: Declare the above, and macros to
call them with function name, file name and line number in the
arguments.
* gdk/win32/*.c: Use the new macros for reporting errors from GDI
functions.
* gtk/gtk.def: Add some missing entry points.
* gtk/gtkcompat.h.in: Define gtk_paned_gutter_size and
gtk_paned_set_gutter_size, which don't exist any longer, as void.
Fixes by Hans Breuer:
* gdk/makefile.msc: Update for debugging.
* gdk/win32/gdkgc-win32.c (gdk_win32_gc_set_dashes): Fake
implementation, just use the PS_DASH, PS_DOT, PS_DASHDOT or
PS_DASHDOTDOT or PS_DASH styles depending on the number of entries
in the dash_list.
* gdk/win32/gdkwin32.h (GDK_FONT_XFONT): New macro, similar as in
the x11 backend.
* gdk/win32/gdkprivate-win32.h (IS_WIN_NT): New macro.
* gtk/testgtk.c: Include config.h, guard inclusion of unistd.h.
1999-11-21 Tor Lillqvist <tml@iki.fi>
* gdk/gdkconfig.h: Remove, as this is a file generated by configure
(or copied from gdkconfig.h.win32 on Win32, sigh).
* gdk/gdkprivate.h: Mark gdk_parent_root for export from DLL.
* gdk/gdkgc.c (gdk_gc_alloc): Remove duplicated line.
1999-11-07 Tor Lillqvist <tml@iki.fi>
* gdk/win32/gdkprivate.h: New font private structures, related to
fontsets.
* gdk/win32/gdkfont.c: New functions gdk_font_list_new() and
gdk_font_list_free(). On X11, will just be wrappers to
XListFonts() and XFreeFontNames(). On Win32, the code previously
in gtkfontsel.c is now here.
New function gdk_font_xlfd_create(). On X11 will get the FONT
property of the font (for GDK_FONT_FONTs), or call
XBaseFontNameListOfFontSet (for GDK_FONT_FONTSETs), on Win32
builds a XLFD style name from the font information in the LOGFONT
struct(s).
New function gdk_font_xlfd_free(), which correspondingly frees the
string returned by gdk_font_xlfd_create().
Implement fontsets on Win32. Add a function that iterates over a
wide char string and calls a callback function for each substring
of wide chars from the same Unicode subrange (and thus probably
available in the same real font).
Improve the XLFD emulation a bit.
* gdk/win32/gdkim.c (gdk_nmbstowchar_ts): Small bugfix.
* gdk/win32/gdkevents.c: Workaround for suspected bug on Win2k
Beta3, WM_IME_CHAR messages don't seem to contain the composed
multi-byte char as with the Active IMM on Win9x. Oh well, handle
WM_IME_COMPOSITION with GCS_RESULTSTR instead, use
ImmGetCompositionStringW() to get the composed Unicode chars.
* gdk/win32/gdkgc.c
* gdk/win32/gdkdraw.c: Changes needed because of the font private
struct changes.
* gdk/win32/gdk.def: Add the new functions.