1d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Copyright 2014 PDFium Authors. All rights reserved.
2d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Use of this source code is governed by a BSD-style license that can be
3d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// found in the LICENSE file.
4d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann
5d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann
7d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#ifndef FPDFSDK_PWL_CPWL_ICON_H_
8d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define FPDFSDK_PWL_CPWL_ICON_H_
9d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann
10d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#include <utility>
11d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann
12d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#include "core/fxcrt/fx_string.h"
13d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#include "core/fxcrt/unowned_ptr.h"
14d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#include "fpdfsdk/pwl/cpwl_wnd.h"
15d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann
16d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmannclass CPWL_Icon : public CPWL_Wnd {
17d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann public:
18d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann  CPWL_Icon();
19d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann  ~CPWL_Icon() override;
20d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann
21d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann  void SetIconFit(CPDF_IconFit* pIconFit) { m_pIconFit = pIconFit; }
22d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann  void SetPDFStream(CPDF_Stream* pStream) { m_pPDFStream = pStream; }
23d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann
24d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann  // horizontal scale, vertical scale
25d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann  std::pair<float, float> GetScale();
26d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann
27d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann  // x, y
28d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann  std::pair<float, float> GetImageOffset();
29d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann
30d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann  CFX_Matrix GetImageMatrix();
31d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann  ByteString GetImageAlias();
32d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann
33d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann private:
34d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann  // left, bottom
35d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann  std::pair<float, float> GetIconPosition();
36d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann
37d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann  // width, height
38d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann  std::pair<float, float> GetImageSize();
39d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann
40d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann  UnownedPtr<CPDF_Stream> m_pPDFStream;
41d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann  UnownedPtr<CPDF_IconFit> m_pIconFit;
42d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann};
43d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann
44d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#endif  // FPDFSDK_PWL_CPWL_ICON_H_
45