mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-11 20:35:50 +00:00
New clipboard interface for unix selection clipboard.
This commit is contained in:
parent
7990ffae73
commit
3f8b4c9bc6
@ -224,7 +224,7 @@ void nsClipboard::Init(void)
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
NS_IMETHODIMP nsClipboard::SetNativeClipboardData()
|
||||
NS_IMETHODIMP nsClipboard::SetNativeClipboardData( PRInt32 aWhichClipboard )
|
||||
{
|
||||
mIgnoreEmptyNotification = PR_TRUE;
|
||||
|
||||
@ -507,7 +507,8 @@ PRBool nsClipboard::DoConvert(gint format)
|
||||
//
|
||||
//-------------------------------------------------------------------------
|
||||
NS_IMETHODIMP
|
||||
nsClipboard::GetNativeClipboardData(nsITransferable * aTransferable)
|
||||
nsClipboard::GetNativeClipboardData(nsITransferable * aTransferable,
|
||||
PRInt32 aWhichClipboard)
|
||||
{
|
||||
|
||||
#ifdef DEBUG_CLIPBOARD
|
||||
@ -729,7 +730,7 @@ nsClipboard::SelectionReceiver (GtkWidget *aWidget,
|
||||
*
|
||||
* @result NS_OK if successful.
|
||||
*/
|
||||
NS_IMETHODIMP nsClipboard::ForceDataToClipboard()
|
||||
NS_IMETHODIMP nsClipboard::ForceDataToClipboard( PRInt32 aWhichClipboard )
|
||||
{
|
||||
#ifdef DEBUG_CLIPBOARD
|
||||
printf(" nsClipboard::ForceDataToClipboard()\n");
|
||||
@ -744,7 +745,9 @@ NS_IMETHODIMP nsClipboard::ForceDataToClipboard()
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsClipboard::HasDataMatchingFlavors(nsISupportsArray* aFlavorList, PRBool * outResult)
|
||||
nsClipboard::HasDataMatchingFlavors(nsISupportsArray* aFlavorList,
|
||||
PRInt32 aWhichClipboard,
|
||||
PRBool * outResult)
|
||||
{
|
||||
// XXX this doesn't work right. need to fix it.
|
||||
|
||||
@ -932,7 +935,8 @@ void nsClipboard::SelectionClearCB(GtkWidget *aWidget,
|
||||
nsClipboard *cb = (nsClipboard *)gtk_object_get_data(GTK_OBJECT(aWidget),
|
||||
"cb");
|
||||
|
||||
cb->EmptyClipboard();
|
||||
//XXX which clipboard do we empty here?!
|
||||
cb->EmptyClipboard(kGlobalClipboard);
|
||||
}
|
||||
|
||||
|
||||
|
@ -43,15 +43,18 @@ public:
|
||||
virtual ~nsClipboard();
|
||||
|
||||
// nsIClipboard
|
||||
NS_IMETHOD ForceDataToClipboard();
|
||||
NS_IMETHOD HasDataMatchingFlavors(nsISupportsArray* aFlavorList, PRBool * outResult);
|
||||
NS_IMETHOD ForceDataToClipboard ( PRInt32 aWhichClipboard );
|
||||
NS_IMETHOD HasDataMatchingFlavors(nsISupportsArray* aFlavorList,
|
||||
PRInt32 aWhichClipboard,
|
||||
PRBool * outResult);
|
||||
|
||||
// invisible widget. also used by dragndrop
|
||||
static GtkWidget *sWidget;
|
||||
|
||||
protected:
|
||||
NS_IMETHOD SetNativeClipboardData();
|
||||
NS_IMETHOD GetNativeClipboardData(nsITransferable * aTransferable);
|
||||
NS_IMETHOD SetNativeClipboardData ( PRInt32 aWhichClipboard );
|
||||
NS_IMETHOD GetNativeClipboardData(nsITransferable * aTransferable,
|
||||
PRInt32 aWhichClipboard );
|
||||
|
||||
PRBool mIgnoreEmptyNotification;
|
||||
|
||||
|
@ -175,8 +175,11 @@ nsresult nsClipboard::SetupNativeDataObject(nsITransferable * aTransferable, IDa
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
NS_IMETHODIMP nsClipboard::SetNativeClipboardData()
|
||||
NS_IMETHODIMP nsClipboard::SetNativeClipboardData ( PRInt32 aWhichClipboard )
|
||||
{
|
||||
if ( aWhichClipboard != kGlobalClipboard )
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
mIgnoreEmptyNotification = PR_TRUE;
|
||||
|
||||
// make sure we have a good transferable
|
||||
@ -623,10 +626,10 @@ nsresult nsClipboard::GetDataFromDataObject(IDataObject * aDataObject,
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
NS_IMETHODIMP nsClipboard::GetNativeClipboardData(nsITransferable * aTransferable)
|
||||
NS_IMETHODIMP nsClipboard::GetNativeClipboardData ( nsITransferable * aTransferable, PRInt32 aWhichClipboard )
|
||||
{
|
||||
// make sure we have a good transferable
|
||||
if (nsnull == aTransferable) {
|
||||
if ( !aTransferable || aWhichClipboard != kGlobalClipboard ) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
@ -676,10 +679,10 @@ static void PlaceDataOnClipboard(PRUint32 aFormat, char * aData, int aLength)
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
NS_IMETHODIMP nsClipboard::ForceDataToClipboard()
|
||||
NS_IMETHODIMP nsClipboard::ForceDataToClipboard ( PRInt32 aWhichClipboard )
|
||||
{
|
||||
// make sure we have a good transferable
|
||||
if (nsnull == mTransferable) {
|
||||
if ( !mTransferable || aWhichClipboard != kGlobalClipboard ) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
@ -732,11 +735,13 @@ NS_IMETHODIMP nsClipboard::ForceDataToClipboard()
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
NS_IMETHODIMP nsClipboard::HasDataMatchingFlavors(nsISupportsArray *aFlavorList,
|
||||
NS_IMETHODIMP nsClipboard::HasDataMatchingFlavors(nsISupportsArray *aFlavorList, PRInt32 aWhichClipboard,
|
||||
PRBool *_retval)
|
||||
{
|
||||
*_retval = PR_FALSE;
|
||||
|
||||
if ( aWhichClipboard != kGlobalClipboard )
|
||||
return NS_OK;
|
||||
|
||||
PRUint32 cnt;
|
||||
aFlavorList->Count(&cnt);
|
||||
for (PRUint32 i = 0;i < cnt; i++) {
|
||||
|
@ -43,8 +43,8 @@ public:
|
||||
virtual ~nsClipboard();
|
||||
|
||||
// nsIClipboard
|
||||
NS_IMETHOD ForceDataToClipboard();
|
||||
NS_IMETHOD HasDataMatchingFlavors(nsISupportsArray *aFlavorList, PRBool *_retval);
|
||||
NS_IMETHOD ForceDataToClipboard ( PRInt32 aWhichClipboard );
|
||||
NS_IMETHOD HasDataMatchingFlavors(nsISupportsArray *aFlavorList, PRInt32 aWhichClipboard, PRBool *_retval);
|
||||
|
||||
// Internal Native Routines
|
||||
static nsresult CreateNativeDataObject(nsITransferable * aTransferable,
|
||||
@ -67,8 +67,8 @@ public:
|
||||
|
||||
|
||||
protected:
|
||||
NS_IMETHOD SetNativeClipboardData();
|
||||
NS_IMETHOD GetNativeClipboardData(nsITransferable * aTransferable);
|
||||
NS_IMETHOD SetNativeClipboardData ( PRInt32 aWhichClipboard );
|
||||
NS_IMETHOD GetNativeClipboardData ( nsITransferable * aTransferable, PRInt32 aWhichClipboard );
|
||||
|
||||
nsIWidget * mWindow;
|
||||
IDataObject * mDataObj;
|
||||
|
@ -2662,7 +2662,7 @@ PRBool nsWindow::ProcessMessage(UINT msg, WPARAM wParam, LPARAM lParam, LRESULT
|
||||
nsresult rv = nsServiceManager::GetService(kCClipboardCID,
|
||||
NS_GET_IID(nsIClipboard),
|
||||
(nsISupports **)&clipboard);
|
||||
clipboard->EmptyClipboard();
|
||||
clipboard->EmptyClipboard(nsIClipboard::kGlobalClipboard);
|
||||
nsServiceManager::ReleaseService(kCClipboardCID, clipboard);
|
||||
} break;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user