#include "ui/views/button_drag_utils.h"
#include <memory>
#include <utility>
#include "base/memory/raw_ptr.h"
#include "base/strings/utf_string_conversions.h"
#include "ui/base/dragdrop/os_exchange_data.h"
#include "ui/base/models/image_model.h"
#include "ui/base/resource/resource_bundle.h"
#include "ui/color/color_id.h"
#include "ui/color/color_provider.h"
#include "ui/compositor/canvas_painter.h"
#include "ui/compositor/compositor.h"
#include "ui/gfx/canvas.h"
#include "ui/gfx/geometry/point.h"
#include "ui/gfx/geometry/vector2d.h"
#include "ui/gfx/image/image.h"
#include "ui/resources/grit/ui_resources.h"
#include "ui/views/background.h"
#include "ui/views/border.h"
#include "ui/views/controls/button/label_button.h"
#include "ui/views/controls/button/label_button_border.h"
#include "ui/views/drag_utils.h"
#include "ui/views/paint_info.h"
#include "ui/views/widget/widget.h"
#include "url/gurl.h"
namespace button_drag_utils {
static constexpr int kLinkDragImageMaxWidth = …;
class ScopedWidget { … };
void SetURLAndDragImage(const GURL& url,
const std::u16string& title,
const gfx::ImageSkia& icon,
const gfx::Point* press_pt,
ui::OSExchangeData* data) { … }
void SetDragImage(const GURL& url,
const std::u16string& title,
const gfx::ImageSkia& icon,
const gfx::Point* press_pt,
ui::OSExchangeData* data) { … }
}