blob: 675919eea803de949f22265ac9cb5c185f035be4 [file] [log] [blame]
// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROMEOS_UI_FRAME_FRAME_UTILS_H_
#define CHROMEOS_UI_FRAME_FRAME_UTILS_H_
#include "base/component_export.h"
#include "chromeos/ui/base/window_state_type.h"
#include "chromeos/ui/frame/caption_buttons/snap_controller.h"
#include "ui/gfx/geometry/rounded_corners_f.h"
#include "ui/views/widget/widget.h"
namespace gfx {
class Point;
} // namespace gfx
namespace views {
class FrameView;
}
namespace chromeos {
// Returns the HitTestCompat for the specified point.
COMPONENT_EXPORT(CHROMEOS_UI_FRAME)
int FrameBorderNonClientHitTest(views::FrameView* view,
const gfx::Point& point_in_widget);
// Resolve the inferred opacity and updates the params.
COMPONENT_EXPORT(CHROMEOS_UI_FRAME)
void ResolveInferredOpacity(views::Widget::InitParams* params);
// Checks whether we should draw the restored window frame on |widget|.
COMPONENT_EXPORT(CHROMEOS_UI_FRAME)
bool ShouldUseRestoreFrame(const views::Widget* widget);
// Gets the snap direction given a button associated with left/top or
// right/bottom. Takes into account the orientation of the display.
SnapDirection GetSnapDirectionForWindow(aura::Window* window, bool left_top);
// Returns the radii of the window's corners.
COMPONENT_EXPORT(CHROMEOS_UI_FRAME)
gfx::RoundedCornersF GetWindowRoundedCorners();
// Returns true if the ClassProperty can effect the radii of the window.
COMPONENT_EXPORT(CHROMEOS_UI_FRAME)
bool CanPropertyEffectWindowRoundedCorners(const void* class_property_key);
} // namespace chromeos
#endif // CHROMEOS_UI_FRAME_FRAME_UTILS_H_