chromium/ui/base/hit_test.h

// Copyright 2011 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef UI_BASE_HIT_TEST_H_
#define UI_BASE_HIT_TEST_H_

#include "build/build_config.h"

#if BUILDFLAG(IS_WIN)

// Define the HT* values so that this header can be included whether or not
// windows.h has been included. The definitions must exactly match to avoid
// redefinition errors when compiling source files which also include windows.h.
// Those source files conveniently provide a check that these values match.
// windows.h is not included here because of the namespace pollution it causes.
#define HTERROR
#define HTTRANSPARENT
#define HTNOWHERE
#define HTCLIENT
#define HTCAPTION
#define HTSYSMENU
#define HTGROWBOX
#define HTSIZE
#define HTMENU
#define HTHSCROLL
#define HTVSCROLL
#define HTMINBUTTON
#define HTMAXBUTTON
#define HTLEFT
#define HTRIGHT
#define HTTOP
#define HTTOPLEFT
#define HTTOPRIGHT
#define HTBOTTOM
#define HTBOTTOMLEFT
#define HTBOTTOMRIGHT
#define HTBORDER
#define HTREDUCE
#define HTZOOM
#define HTSIZEFIRST
#define HTSIZELAST
#define HTOBJECT
#define HTCLOSE
#define HTHELP

#else

// Defines the same symbolic names used by the WM_NCHITTEST Notification under
// win32 (the integer values are not guaranteed to be equivalent). We do this
// because we have a whole bunch of code that deals with window resizing and
// such that requires these values.
enum HitTestCompat {};

#endif  // BUILDFLAG(IS_WIN)

namespace ui {

// Returns true if the |component| is for resizing, like HTTOP or HTBOTTOM.
bool IsResizingComponent(int component);

// Returns true if the |component| is HTCAPTION or one of the resizing
// components.
bool CanPerformDragOrResize(int component);

}  // namespace ui

#endif  // UI_BASE_HIT_TEST_H_