Upgraded to implement new methods in D&D interface
git-svn-id: svn://10.0.0.236/trunk@26516 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
parent
de6fd2516b
commit
9748b9c0c4
@ -31,7 +31,32 @@
|
||||
static NS_DEFINE_IID(kIDOMElementIID, NS_IDOMELEMENT_IID);
|
||||
static NS_DEFINE_IID(kIDOMCharacterDataIID, NS_IDOMCHARACTERDATA_IID);
|
||||
|
||||
|
||||
//#define NEW_CLIPBOARD_SUPPORT
|
||||
|
||||
#ifdef NEW_CLIPBOARD_SUPPORT
|
||||
|
||||
// Drag & Drop, Clipboard
|
||||
#include "nsIServiceManager.h"
|
||||
#include "nsWidgetsCID.h"
|
||||
#include "nsIClipboard.h"
|
||||
#include "nsITransferable.h"
|
||||
#include "nsIDataFlavor.h"
|
||||
#include "nsIFormatConverter.h"
|
||||
|
||||
// Drag & Drop, Clipboard Support
|
||||
static NS_DEFINE_IID(kIClipboardIID, NS_ICLIPBOARD_IID);
|
||||
static NS_DEFINE_CID(kCClipboardCID, NS_CLIPBOARD_CID);
|
||||
|
||||
static NS_DEFINE_IID(kITransferableIID, NS_ITRANSFERABLE_IID);
|
||||
static NS_DEFINE_CID(kCTransferableCID, NS_TRANSFERABLE_CID);
|
||||
static NS_DEFINE_IID(kIDataFlavorIID, NS_IDATAFLAVOR_IID);
|
||||
static NS_DEFINE_IID(kCDataFlavorCID, NS_DATAFLAVOR_CID);
|
||||
|
||||
static NS_DEFINE_IID(kCXIFFormatConverterCID, NS_XIFFORMATCONVERTER_CID);
|
||||
static NS_DEFINE_IID(kIFormatConverterIID, NS_IFORMATCONVERTER_IID);
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* nsTextEditorKeyListener implementation
|
||||
*/
|
||||
@ -665,7 +690,21 @@ nsTextEditorDragListener::HandleEvent(nsIDOMEvent* aEvent)
|
||||
|
||||
|
||||
nsresult
|
||||
nsTextEditorDragListener::DragStart(nsIDOMEvent* aDragEvent)
|
||||
nsTextEditorDragListener::DragEnter(nsIDOMEvent* aDragEvent)
|
||||
{
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
nsresult
|
||||
nsTextEditorDragListener::DragOver(nsIDOMEvent* aDragEvent)
|
||||
{
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
nsresult
|
||||
nsTextEditorDragListener::DragExit(nsIDOMEvent* aDragEvent)
|
||||
{
|
||||
return NS_OK;
|
||||
}
|
||||
@ -675,7 +714,47 @@ nsTextEditorDragListener::DragStart(nsIDOMEvent* aDragEvent)
|
||||
nsresult
|
||||
nsTextEditorDragListener::DragDrop(nsIDOMEvent* aMouseEvent)
|
||||
{
|
||||
mEditor->InsertText(nsAutoString("hello"));
|
||||
|
||||
#ifdef NEW_CLIPBOARD_SUPPORT
|
||||
nsString stuffToPaste;
|
||||
nsIClipboard* clipboard;
|
||||
nsresult rv = nsServiceManager::GetService(kCClipboardCID,
|
||||
kIClipboardIID,
|
||||
(nsISupports **)&clipboard);
|
||||
nsITransferable *trans = 0;
|
||||
rv = nsComponentManager::CreateInstance(kCTransferableCID, nsnull, kITransferableIID, (void**) &trans);
|
||||
|
||||
//nsIFormatConverter * xifConverter;
|
||||
//rv = nsComponentManager::CreateInstance(kCXIFFormatConverterCID, nsnull, kIFormatConverterIID, (void**) &xifConverter);
|
||||
|
||||
//trans->SetConverter(xifConverter);
|
||||
|
||||
nsIDataFlavor *flavor = 0;
|
||||
rv = nsComponentManager::CreateInstance(kCDataFlavorCID, nsnull, kIDataFlavorIID, (void**) &flavor);
|
||||
flavor->Init(kTextMime, "Text");
|
||||
trans->AddDataFlavor(flavor);
|
||||
|
||||
clipboard->GetData(trans);
|
||||
|
||||
char *str = 0;
|
||||
PRUint32 len;
|
||||
trans->GetTransferData(flavor, (void **)&str, &len);
|
||||
|
||||
if (str) {
|
||||
if (str[len-1] == 0) {
|
||||
len--;
|
||||
}
|
||||
stuffToPaste.SetString(str, len);
|
||||
mEditor->InsertText(stuffToPaste);
|
||||
}
|
||||
|
||||
NS_IF_RELEASE(flavor);
|
||||
NS_IF_RELEASE(trans);
|
||||
NS_IF_RELEASE(clipboard);
|
||||
|
||||
#endif
|
||||
|
||||
//mEditor->InsertText(nsAutoString("hello"));
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
@ -159,7 +159,9 @@ public:
|
||||
/*BEGIN implementations of mouseevent handler interface*/
|
||||
virtual nsresult HandleEvent(nsIDOMEvent* aEvent);
|
||||
public:
|
||||
virtual nsresult DragStart(nsIDOMEvent* aDragEvent);
|
||||
virtual nsresult DragEnter(nsIDOMEvent* aDragEvent);
|
||||
virtual nsresult DragOver(nsIDOMEvent* aDragEvent);
|
||||
virtual nsresult DragExit(nsIDOMEvent* aDragEvent);
|
||||
virtual nsresult DragDrop(nsIDOMEvent* aDragEvent);
|
||||
/*END implementations of mouseevent handler interface*/
|
||||
|
||||
|
||||
@ -31,7 +31,32 @@
|
||||
static NS_DEFINE_IID(kIDOMElementIID, NS_IDOMELEMENT_IID);
|
||||
static NS_DEFINE_IID(kIDOMCharacterDataIID, NS_IDOMCHARACTERDATA_IID);
|
||||
|
||||
|
||||
//#define NEW_CLIPBOARD_SUPPORT
|
||||
|
||||
#ifdef NEW_CLIPBOARD_SUPPORT
|
||||
|
||||
// Drag & Drop, Clipboard
|
||||
#include "nsIServiceManager.h"
|
||||
#include "nsWidgetsCID.h"
|
||||
#include "nsIClipboard.h"
|
||||
#include "nsITransferable.h"
|
||||
#include "nsIDataFlavor.h"
|
||||
#include "nsIFormatConverter.h"
|
||||
|
||||
// Drag & Drop, Clipboard Support
|
||||
static NS_DEFINE_IID(kIClipboardIID, NS_ICLIPBOARD_IID);
|
||||
static NS_DEFINE_CID(kCClipboardCID, NS_CLIPBOARD_CID);
|
||||
|
||||
static NS_DEFINE_IID(kITransferableIID, NS_ITRANSFERABLE_IID);
|
||||
static NS_DEFINE_CID(kCTransferableCID, NS_TRANSFERABLE_CID);
|
||||
static NS_DEFINE_IID(kIDataFlavorIID, NS_IDATAFLAVOR_IID);
|
||||
static NS_DEFINE_IID(kCDataFlavorCID, NS_DATAFLAVOR_CID);
|
||||
|
||||
static NS_DEFINE_IID(kCXIFFormatConverterCID, NS_XIFFORMATCONVERTER_CID);
|
||||
static NS_DEFINE_IID(kIFormatConverterIID, NS_IFORMATCONVERTER_IID);
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* nsTextEditorKeyListener implementation
|
||||
*/
|
||||
@ -665,7 +690,21 @@ nsTextEditorDragListener::HandleEvent(nsIDOMEvent* aEvent)
|
||||
|
||||
|
||||
nsresult
|
||||
nsTextEditorDragListener::DragStart(nsIDOMEvent* aDragEvent)
|
||||
nsTextEditorDragListener::DragEnter(nsIDOMEvent* aDragEvent)
|
||||
{
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
nsresult
|
||||
nsTextEditorDragListener::DragOver(nsIDOMEvent* aDragEvent)
|
||||
{
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
nsresult
|
||||
nsTextEditorDragListener::DragExit(nsIDOMEvent* aDragEvent)
|
||||
{
|
||||
return NS_OK;
|
||||
}
|
||||
@ -675,7 +714,47 @@ nsTextEditorDragListener::DragStart(nsIDOMEvent* aDragEvent)
|
||||
nsresult
|
||||
nsTextEditorDragListener::DragDrop(nsIDOMEvent* aMouseEvent)
|
||||
{
|
||||
mEditor->InsertText(nsAutoString("hello"));
|
||||
|
||||
#ifdef NEW_CLIPBOARD_SUPPORT
|
||||
nsString stuffToPaste;
|
||||
nsIClipboard* clipboard;
|
||||
nsresult rv = nsServiceManager::GetService(kCClipboardCID,
|
||||
kIClipboardIID,
|
||||
(nsISupports **)&clipboard);
|
||||
nsITransferable *trans = 0;
|
||||
rv = nsComponentManager::CreateInstance(kCTransferableCID, nsnull, kITransferableIID, (void**) &trans);
|
||||
|
||||
//nsIFormatConverter * xifConverter;
|
||||
//rv = nsComponentManager::CreateInstance(kCXIFFormatConverterCID, nsnull, kIFormatConverterIID, (void**) &xifConverter);
|
||||
|
||||
//trans->SetConverter(xifConverter);
|
||||
|
||||
nsIDataFlavor *flavor = 0;
|
||||
rv = nsComponentManager::CreateInstance(kCDataFlavorCID, nsnull, kIDataFlavorIID, (void**) &flavor);
|
||||
flavor->Init(kTextMime, "Text");
|
||||
trans->AddDataFlavor(flavor);
|
||||
|
||||
clipboard->GetData(trans);
|
||||
|
||||
char *str = 0;
|
||||
PRUint32 len;
|
||||
trans->GetTransferData(flavor, (void **)&str, &len);
|
||||
|
||||
if (str) {
|
||||
if (str[len-1] == 0) {
|
||||
len--;
|
||||
}
|
||||
stuffToPaste.SetString(str, len);
|
||||
mEditor->InsertText(stuffToPaste);
|
||||
}
|
||||
|
||||
NS_IF_RELEASE(flavor);
|
||||
NS_IF_RELEASE(trans);
|
||||
NS_IF_RELEASE(clipboard);
|
||||
|
||||
#endif
|
||||
|
||||
//mEditor->InsertText(nsAutoString("hello"));
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
@ -159,7 +159,9 @@ public:
|
||||
/*BEGIN implementations of mouseevent handler interface*/
|
||||
virtual nsresult HandleEvent(nsIDOMEvent* aEvent);
|
||||
public:
|
||||
virtual nsresult DragStart(nsIDOMEvent* aDragEvent);
|
||||
virtual nsresult DragEnter(nsIDOMEvent* aDragEvent);
|
||||
virtual nsresult DragOver(nsIDOMEvent* aDragEvent);
|
||||
virtual nsresult DragExit(nsIDOMEvent* aDragEvent);
|
||||
virtual nsresult DragDrop(nsIDOMEvent* aDragEvent);
|
||||
/*END implementations of mouseevent handler interface*/
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user