Index: af/xap/qnx/xap_QNXFrame.cpp =================================================================== RCS file: /cvsroot/abi/src/af/xap/qnx/xap_QNXFrame.cpp,v retrieving revision 1.28 diff -c -r1.28 xap_QNXFrame.cpp *** af/xap/qnx/xap_QNXFrame.cpp 4 Aug 2002 15:47:04 -0000 1.28 --- af/xap/qnx/xap_QNXFrame.cpp 4 Aug 2002 17:31:16 -0000 *************** *** 38,43 **** --- 38,49 ---- #include "ut_qnxHelper.h" #include "gr_Graphics.h" + //QNX DND + #include "fl_DocLayout.h" + #include "xap_EncodingManager.h" + #include "ie_impexp_Register.h" + #include "ie_imp.h" + /* This is required for dynamic zoom implimentation */ #include "fv_View.h" *************** *** 299,305 **** --- 305,359 ---- pView->sendHorizontalScrollEvent((UT_sint32) sb->position); return 0; } + + //QNX DnD + static PtDndFetch_t acceptdata[] = { + {"text","plain",Ph_TRANSPORT_INLINE,}, + }; + + enum { + PLAIN_TEXT = 0, + }; + + int XAP_QNXFrame::_fe::dnd(PtWidget_t *w,void *data,PtCallbackInfo_t *info) + { + XAP_QNXFrame *pQNXFrame = (XAP_QNXFrame *)data; + PtDndCallbackInfo_t *dc = (PtDndCallbackInfo_t *)info->cbdata; + IE_Imp *pImp = 0; + + + if(info->reason_subtype == Ph_EV_DND_ENTER) + { + PtDndSelect(w,acceptdata,1,0,0,info); + return Pt_CONTINUE; + } + + + if(info->reason_subtype == Ph_EV_DND_DROP) + { + switch(dc->fetch_index) + { + case PLAIN_TEXT: + AP_FrameData *pFrameData = (AP_FrameData*)pQNXFrame->getFrameData(); + FL_DocLayout *pDocLy = pFrameData->m_pDocLayout; + FV_View *pView = pDocLy->getView(); + PD_DocumentRange dr(pView->getDocument(),pView->getPoint(),pView->getPoint()); + IE_Imp::constructImporter(dr.m_pDoc,0,IE_Imp::fileTypeForSuffix(".txt"),&pImp,0); + if(pImp) + { + const char * szEncoding = XAP_EncodingManager::get_instance()->getNative8BitEncodingName(); + pImp->pasteFromBuffer(&dr,(unsigned char *)dc->data,strlen((const char*)dc->data),szEncoding); + delete pImp; + pView->_generalUpdate(); + } + break; + + } + } + + return Pt_CONTINUE; + } /*****************************************************************/ /* Index: af/xap/qnx/xap_QNXFrame.h =================================================================== RCS file: /cvsroot/abi/src/af/xap/qnx/xap_QNXFrame.h,v retrieving revision 1.18 diff -c -r1.18 xap_QNXFrame.h *** af/xap/qnx/xap_QNXFrame.h 28 Mar 2002 07:45:31 -0000 1.18 --- af/xap/qnx/xap_QNXFrame.h 4 Aug 2002 17:31:16 -0000 *************** *** 132,138 **** static int expose(PtWidget_t * w, PhTile_t* damage); static int vScrollChanged(PtWidget_t * w, void *data, PtCallbackInfo_t * info); static int hScrollChanged(PtWidget_t * w, void *data, PtCallbackInfo_t * info); ! // static void destroy (GtkWidget * /*widget*/, gpointer /*data*/); }; }; --- 132,139 ---- static int expose(PtWidget_t * w, PhTile_t* damage); static int vScrollChanged(PtWidget_t * w, void *data, PtCallbackInfo_t * info); static int hScrollChanged(PtWidget_t * w, void *data, PtCallbackInfo_t * info); ! //QNX DND ! static int dnd(PtWidget_t *w,void *data,PtCallbackInfo_t *info); }; }; Index: wp/ap/qnx/ap_QNXFrame.cpp =================================================================== RCS file: /cvsroot/abi/src/wp/ap/qnx/ap_QNXFrame.cpp,v retrieving revision 1.43 diff -c -r1.43 ap_QNXFrame.cpp *** wp/ap/qnx/ap_QNXFrame.cpp 7 Jul 2002 12:27:40 -0000 1.43 --- wp/ap/qnx/ap_QNXFrame.cpp 4 Aug 2002 17:31:20 -0000 *************** *** 861,866 **** --- 861,869 ---- PtAddEventHandler(m_dArea, Ph_EV_PTR_MOTION_BUTTON, _fe::motion_notify_event, this); PtAddEventHandler(m_dArea, Ph_EV_BUT_PRESS, _fe::button_press_event, this); PtAddEventHandler(m_dArea, Ph_EV_BUT_RELEASE, _fe::button_release_event, this); + //QNX DND Code + PtAddCallback(m_dArea,Pt_CB_DND,_fe::dnd,this); + return(m_dAreaGroup); }