mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-20 16:55:40 +00:00
5dc21d568c
The inclusions were removed with the following very crude script and the resulting breakage was fixed up by hand. The manual fixups did either revert the changes done by the script, replace a generic header with a more specific one or replace a header with a forward declaration. find . -name "*.idl" | grep -v web-platform | grep -v third_party | while read path; do interfaces=$(grep "^\(class\|interface\).*:.*" "$path" | cut -d' ' -f2) if [ -n "$interfaces" ]; then if [[ "$interfaces" == *$'\n'* ]]; then regexp="\(" for i in $interfaces; do regexp="$regexp$i\|"; done regexp="${regexp%%\\\|}\)" else regexp="$interfaces" fi interface=$(basename "$path") rg -l "#include.*${interface%%.idl}.h" . | while read path2; do hits=$(grep -v "#include.*${interface%%.idl}.h" "$path2" | grep -c "$regexp" ) if [ $hits -eq 0 ]; then echo "Removing ${interface} from ${path2}" grep -v "#include.*${interface%%.idl}.h" "$path2" > "$path2".tmp mv -f "$path2".tmp "$path2" fi done fi done Differential Revision: https://phabricator.services.mozilla.com/D55444 --HG-- extra : moz-landing-system : lando
104 lines
3.6 KiB
C++
104 lines
3.6 KiB
C++
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
#ifndef _nsNativeDragTarget_h_
|
|
#define _nsNativeDragTarget_h_
|
|
|
|
#include "nsCOMPtr.h"
|
|
#include <ole2.h>
|
|
#include <shlobj.h>
|
|
|
|
#ifndef IDropTargetHelper
|
|
# include <shobjidl.h> // Vista drag image interfaces
|
|
# undef LogSeverity // SetupAPI.h #defines this as DWORD
|
|
#endif
|
|
|
|
#include "mozilla/Attributes.h"
|
|
#include "mozilla/EventForwards.h"
|
|
|
|
class nsIDragService;
|
|
class nsIWidget;
|
|
|
|
/*
|
|
* nsNativeDragTarget implements the IDropTarget interface and gets most of its
|
|
* behavior from the associated adapter (m_dragDrop).
|
|
*/
|
|
|
|
class nsNativeDragTarget final : public IDropTarget {
|
|
public:
|
|
explicit nsNativeDragTarget(nsIWidget* aWidget);
|
|
~nsNativeDragTarget();
|
|
|
|
// IUnknown members - see iunknown.h for documentation
|
|
STDMETHODIMP QueryInterface(REFIID, void**);
|
|
STDMETHODIMP_(ULONG) AddRef();
|
|
STDMETHODIMP_(ULONG) Release();
|
|
|
|
// IDataTarget members
|
|
|
|
// Set pEffect based on whether this object can support a drop based on
|
|
// the data available from pSource, the key and mouse states specified
|
|
// in grfKeyState, and the coordinates specified by point. This is
|
|
// called by OLE when a drag enters this object's window (as registered
|
|
// by Initialize).
|
|
STDMETHODIMP DragEnter(LPDATAOBJECT pSource, DWORD grfKeyState, POINTL point,
|
|
DWORD* pEffect);
|
|
|
|
// Similar to DragEnter except it is called frequently while the drag
|
|
// is over this object's window.
|
|
MOZ_CAN_RUN_SCRIPT_BOUNDARY STDMETHODIMP DragOver(DWORD grfKeyState,
|
|
POINTL point,
|
|
DWORD* pEffect);
|
|
|
|
// Release the drag-drop source and put internal state back to the point
|
|
// before the call to DragEnter. This is called when the drag leaves
|
|
// without a drop occurring.
|
|
MOZ_CAN_RUN_SCRIPT_BOUNDARY STDMETHODIMP DragLeave();
|
|
|
|
// If point is within our region of interest and pSource's data supports
|
|
// one of our formats, get the data and set pEffect according to
|
|
// grfKeyState (DROPEFFECT_MOVE if the control key was not pressed,
|
|
// DROPEFFECT_COPY if the control key was pressed). Otherwise return
|
|
// E_FAIL.
|
|
MOZ_CAN_RUN_SCRIPT_BOUNDARY STDMETHODIMP Drop(LPDATAOBJECT pSource,
|
|
DWORD grfKeyState, POINTL point,
|
|
DWORD* pEffect);
|
|
/**
|
|
* Cancel the current drag session, if any.
|
|
*/
|
|
MOZ_CAN_RUN_SCRIPT_BOUNDARY void DragCancel();
|
|
|
|
static void DragImageChanged() { gDragImageChanged = true; }
|
|
|
|
protected:
|
|
void GetGeckoDragAction(DWORD grfKeyState, LPDWORD pdwEffect,
|
|
uint32_t* aGeckoAction);
|
|
void ProcessDrag(mozilla::EventMessage aEventMessage, DWORD grfKeyState,
|
|
POINTL pt, DWORD* pdwEffect);
|
|
void DispatchDragDropEvent(mozilla::EventMessage aEventMessage,
|
|
const POINTL& aPT);
|
|
void AddLinkSupportIfCanBeGenerated(LPDATAOBJECT aIDataSource);
|
|
|
|
// Native Stuff
|
|
ULONG m_cRef; // reference count
|
|
HWND mHWnd;
|
|
DWORD mEffectsAllowed;
|
|
DWORD mEffectsPreferred;
|
|
bool mTookOwnRef;
|
|
|
|
// Gecko Stuff
|
|
nsIWidget* mWidget;
|
|
nsIDragService* mDragService;
|
|
// Drag target helper
|
|
IDropTargetHelper* GetDropTargetHelper();
|
|
|
|
private:
|
|
// Drag target helper
|
|
IDropTargetHelper* mDropTargetHelper;
|
|
|
|
static bool gDragImageChanged;
|
|
};
|
|
|
|
#endif // _nsNativeDragTarget_h_
|