2. fixed assert failure in wxMSW::wxListBox 3. wxFileHistory automatically deletes non existinf files from menu 4. wxDropTarget coordinates are client (and not screen) under MSW too 5. wxConvertBitmapToDib and vice versa seem to work! 6. client data field if filled by wxListBox and wxChoice and it's also deleted (this just wasn't done before!) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4153 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			117 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			117 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| ///////////////////////////////////////////////////////////////////////////////
 | |
| // Name:        dnd.h
 | |
| // Purpose:     declaration of the wxDropTarget class
 | |
| // Author:      Robert Roebling
 | |
| // RCS-ID:      $Id$
 | |
| // Copyright:   (c) 1998 Vadim Zeitlin, Robert Roebling
 | |
| // Licence:     wxWindows license
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| 
 | |
| #ifndef __GTKDNDH__
 | |
| #define __GTKDNDH__
 | |
| 
 | |
| #ifdef __GNUG__
 | |
| #pragma interface
 | |
| #endif
 | |
| 
 | |
| #if wxUSE_DRAG_AND_DROP
 | |
| 
 | |
| #include "wx/object.h"
 | |
| #include "wx/string.h"
 | |
| #include "wx/dataobj.h"
 | |
| #include "wx/cursor.h"
 | |
| #include "wx/icon.h"
 | |
| #include "wx/gdicmn.h"
 | |
| 
 | |
| //-------------------------------------------------------------------------
 | |
| // classes
 | |
| //-------------------------------------------------------------------------
 | |
| 
 | |
| class wxWindow;
 | |
| 
 | |
| class wxDropTarget;
 | |
| class wxTextDropTarget;
 | |
| class wxFileDropTarget;
 | |
| 
 | |
| class wxDropSource;
 | |
| 
 | |
| //-------------------------------------------------------------------------
 | |
| // wxDropTarget
 | |
| //-------------------------------------------------------------------------
 | |
| 
 | |
| class wxDropTarget: public wxDropTargetBase
 | |
| {
 | |
| public:
 | |
|     wxDropTarget(wxDataObject *dataObject = (wxDataObject*) NULL );
 | |
| 
 | |
|     virtual wxDragResult OnDragOver(wxCoord x, wxCoord y, wxDragResult def);
 | |
|     virtual bool OnDrop(wxCoord x, wxCoord y);
 | |
|     virtual wxDragResult OnData(wxCoord x, wxCoord y, wxDragResult def);
 | |
|     virtual bool GetData();
 | |
| 
 | |
|   // implementation
 | |
| 
 | |
|     GdkAtom GetMatchingPair();
 | |
| 
 | |
|     void RegisterWidget( GtkWidget *widget );
 | |
|     void UnregisterWidget( GtkWidget *widget );
 | |
| 
 | |
|     GdkDragContext     *m_dragContext;
 | |
|     GtkWidget          *m_dragWidget;
 | |
|     GtkSelectionData   *m_dragData;
 | |
|     guint               m_dragTime;
 | |
|     bool                m_firstMotion;     /* gdk has no "gdk_drag_enter" event */
 | |
| 
 | |
|     void SetDragContext( GdkDragContext *dc ) { m_dragContext = dc; }
 | |
|     void SetDragWidget( GtkWidget *w ) { m_dragWidget = w; }
 | |
|     void SetDragData( GtkSelectionData *sd ) { m_dragData = sd; }
 | |
|     void SetDragTime( guint time ) { m_dragTime = time; }
 | |
| };
 | |
| 
 | |
| //-------------------------------------------------------------------------
 | |
| // wxDropSource
 | |
| //-------------------------------------------------------------------------
 | |
| 
 | |
| class wxDropSource: public wxDropSourceBase
 | |
| {
 | |
| public:
 | |
|     /* constructor. set data later with SetData() */
 | |
|     wxDropSource( wxWindow *win,
 | |
|                   const wxIcon &go = wxNullIcon );
 | |
| 
 | |
|     /* constructor for setting one data object */
 | |
|     wxDropSource( wxDataObject& data,
 | |
|                   wxWindow *win,
 | |
|                   const wxIcon &go = wxNullIcon );
 | |
| 
 | |
|     ~wxDropSource();
 | |
| 
 | |
|     /* start drag action */
 | |
|     virtual wxDragResult DoDragDrop( bool bAllowMove = FALSE );
 | |
| 
 | |
|     /* GTK implementation */
 | |
|     void RegisterWindow();
 | |
|     void UnregisterWindow();
 | |
| 
 | |
|     void PrepareIcon( int hot_x, int hot_y, GdkDragContext *context );
 | |
| 
 | |
|     GtkWidget       *m_widget;
 | |
|     GtkWidget       *m_iconWindow;
 | |
|     GdkDragContext  *m_dragContext;
 | |
|     wxWindow        *m_window;
 | |
| 
 | |
|     wxDragResult     m_retValue;
 | |
|     wxIcon           m_icon;
 | |
| 
 | |
|     bool             m_waiting;
 | |
| };
 | |
| 
 | |
| #endif
 | |
| 
 | |
|    // wxUSE_DRAG_AND_DROP
 | |
| 
 | |
| #endif
 | |
|        //__GTKDNDH__
 | |
| 
 |