42 lines
1.7 KiB
C++
42 lines
1.7 KiB
C++
|
|
// Copyright 2020 The PDFium Authors
|
||
|
|
// Use of this source code is governed by a BSD-style license that can be
|
||
|
|
// found in the LICENSE file.
|
||
|
|
|
||
|
|
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
||
|
|
|
||
|
|
#include "core/fxge/cfx_drawutils.h"
|
||
|
|
|
||
|
|
#include "core/fxge/cfx_fillrenderoptions.h"
|
||
|
|
#include "core/fxge/cfx_graphstatedata.h"
|
||
|
|
#include "core/fxge/cfx_path.h"
|
||
|
|
#include "core/fxge/cfx_renderdevice.h"
|
||
|
|
#include "third_party/base/check.h"
|
||
|
|
|
||
|
|
// static
|
||
|
|
void CFX_DrawUtils::DrawFocusRect(CFX_RenderDevice* render_device,
|
||
|
|
const CFX_Matrix& user_to_device,
|
||
|
|
const CFX_FloatRect& view_bounding_box) {
|
||
|
|
DCHECK(render_device);
|
||
|
|
CFX_Path path;
|
||
|
|
path.AppendPoint(CFX_PointF(view_bounding_box.left, view_bounding_box.top),
|
||
|
|
CFX_Path::Point::Type::kMove);
|
||
|
|
path.AppendPoint(CFX_PointF(view_bounding_box.left, view_bounding_box.bottom),
|
||
|
|
CFX_Path::Point::Type::kLine);
|
||
|
|
path.AppendPoint(
|
||
|
|
CFX_PointF(view_bounding_box.right, view_bounding_box.bottom),
|
||
|
|
CFX_Path::Point::Type::kLine);
|
||
|
|
path.AppendPoint(CFX_PointF(view_bounding_box.right, view_bounding_box.top),
|
||
|
|
CFX_Path::Point::Type::kLine);
|
||
|
|
path.AppendPoint(CFX_PointF(view_bounding_box.left, view_bounding_box.top),
|
||
|
|
CFX_Path::Point::Type::kLine);
|
||
|
|
|
||
|
|
CFX_GraphStateData graph_state_data;
|
||
|
|
graph_state_data.m_DashArray = {1.0f};
|
||
|
|
graph_state_data.m_DashPhase = 0;
|
||
|
|
graph_state_data.m_LineWidth = 1.0f;
|
||
|
|
|
||
|
|
render_device->DrawPath(path, &user_to_device, &graph_state_data, 0,
|
||
|
|
ArgbEncode(255, 0, 0, 0),
|
||
|
|
CFX_FillRenderOptions::EvenOddOptions());
|
||
|
|
}
|