Work on OLE2-based generic DND
Intermediate commit of work in progress on integrating the old code for OLE2-based generic drag and drop from Arhaeopteryx Software, from a long time ago in the GTK+ 1.3 timeframe. Does still not work and is as before not compiled in unless OLE2_DND is defined in gdkdnd-win32.c. (Thus, for inter-process DND, still only WM_DROPFILES style dropping of files on GTK+ apps works.) Related slight refactoring of other code that shouldn't change how it works. Add more global variables for run-time constants (once initialized) representing well-known GdkAtoms and registered Windows clipboard formats, as they with the generic DND code will be needed in several source files. Some improved debugging output.
This commit is contained in:
@ -100,22 +100,37 @@ _gdk_windowing_init (void)
|
||||
|
||||
CoInitialize (NULL);
|
||||
|
||||
_gdk_selection = gdk_atom_intern ("GDK_SELECTION", FALSE);
|
||||
_wm_transient_for = gdk_atom_intern ("WM_TRANSIENT_FOR", FALSE);
|
||||
_targets = gdk_atom_intern ("TARGETS", FALSE);
|
||||
_save_targets = gdk_atom_intern ("SAVE_TARGETS", FALSE);
|
||||
_utf8_string = gdk_atom_intern ("UTF8_STRING", FALSE);
|
||||
_text = gdk_atom_intern ("TEXT", FALSE);
|
||||
_compound_text = gdk_atom_intern ("COMPOUND_TEXT", FALSE);
|
||||
_text_uri_list = gdk_atom_intern ("text/uri-list", FALSE);
|
||||
_image_png = gdk_atom_intern ("image/png", FALSE);
|
||||
_image_jpeg = gdk_atom_intern ("image/jpeg", FALSE);
|
||||
_image_bmp = gdk_atom_intern ("image/bmp", FALSE);
|
||||
_image_gif = gdk_atom_intern ("image/gif", FALSE);
|
||||
_gdk_selection = gdk_atom_intern_static_string ("GDK_SELECTION");
|
||||
_wm_transient_for = gdk_atom_intern_static_string ("WM_TRANSIENT_FOR");
|
||||
_targets = gdk_atom_intern_static_string ("TARGETS");
|
||||
_delete = gdk_atom_intern_static_string ("DELETE");
|
||||
_save_targets = gdk_atom_intern_static_string ("SAVE_TARGETS");
|
||||
_utf8_string = gdk_atom_intern_static_string ("UTF8_STRING");
|
||||
_text = gdk_atom_intern_static_string ("TEXT");
|
||||
_compound_text = gdk_atom_intern_static_string ("COMPOUND_TEXT");
|
||||
_text_uri_list = gdk_atom_intern_static_string ("text/uri-list");
|
||||
_text_html = gdk_atom_intern_static_string ("text/html");
|
||||
_image_png = gdk_atom_intern_static_string ("image/png");
|
||||
_image_jpeg = gdk_atom_intern_static_string ("image/jpeg");
|
||||
_image_bmp = gdk_atom_intern_static_string ("image/bmp");
|
||||
_image_gif = gdk_atom_intern_static_string ("image/gif");
|
||||
|
||||
_local_dnd = gdk_atom_intern ("LocalDndSelection", FALSE);
|
||||
_gdk_win32_dropfiles = gdk_atom_intern ("DROPFILES_DND", FALSE);
|
||||
_gdk_ole2_dnd = gdk_atom_intern ("OLE2_DND", FALSE);
|
||||
_local_dnd = gdk_atom_intern_static_string ("LocalDndSelection");
|
||||
_gdk_win32_dropfiles = gdk_atom_intern_static_string ("DROPFILES_DND");
|
||||
_gdk_ole2_dnd = gdk_atom_intern_static_string ("OLE2_DND");
|
||||
|
||||
/* MS Office 2007, at least, offers images in common file formats
|
||||
* using clipboard format names like "PNG" and "JFIF". So we follow
|
||||
* the lead and map the GDK target name "image/png" to the clipboard
|
||||
* format name "PNG" etc.
|
||||
*/
|
||||
_cf_png = RegisterClipboardFormat ("PNG");
|
||||
_cf_jfif = RegisterClipboardFormat ("JFIF");
|
||||
_cf_gif = RegisterClipboardFormat ("GIF");
|
||||
|
||||
_cf_url = RegisterClipboardFormat ("UniformResourceLocatorW");
|
||||
_cf_html_format = RegisterClipboardFormat ("HTML Format");
|
||||
_cf_text_html = RegisterClipboardFormat ("text/html");
|
||||
|
||||
_gdk_win32_selection_init ();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user