11320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Copyright 2014 The Chromium Authors. All rights reserved.
21320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Use of this source code is governed by a BSD-style license that can be
31320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// found in the LICENSE file.
41320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "components/pdf/renderer/pdf_resource_util.h"
61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "base/strings/utf_string_conversions.h"
81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "components/strings/grit/components_strings.h"
91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "grit/components_scaled_resources.h"
101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "ui/base/l10n/l10n_util.h"
111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "ui/base/resource/resource_bundle.h"
121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccinamespace {
141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccistruct ResourceImageInfo {
161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  PP_ResourceImage pp_id;
171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  int res_id;
181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci};
191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccistatic const ResourceImageInfo kResourceImageMap[] = {
211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_BUTTON_FTP, IDR_PDF_BUTTON_FTP},
221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_BUTTON_FTP_HOVER, IDR_PDF_BUTTON_FTP_HOVER},
231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_BUTTON_FTP_PRESSED, IDR_PDF_BUTTON_FTP_PRESSED},
241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_BUTTON_FTW, IDR_PDF_BUTTON_FTW},
251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_BUTTON_FTW_HOVER, IDR_PDF_BUTTON_FTW_HOVER},
261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_BUTTON_FTW_PRESSED, IDR_PDF_BUTTON_FTW_PRESSED},
271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMIN_END, IDR_PDF_BUTTON_ZOOMIN_END},
281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMIN_END_HOVER,
291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci     IDR_PDF_BUTTON_ZOOMIN_END_HOVER},
301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMIN_END_PRESSED,
311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci     IDR_PDF_BUTTON_ZOOMIN_END_PRESSED},
321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMIN, IDR_PDF_BUTTON_ZOOMIN},
331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMIN_HOVER, IDR_PDF_BUTTON_ZOOMIN_HOVER},
341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMIN_PRESSED, IDR_PDF_BUTTON_ZOOMIN_PRESSED},
351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMOUT, IDR_PDF_BUTTON_ZOOMOUT},
361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMOUT_HOVER, IDR_PDF_BUTTON_ZOOMOUT_HOVER},
371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMOUT_PRESSED,
381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci     IDR_PDF_BUTTON_ZOOMOUT_PRESSED},
391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_BUTTON_SAVE, IDR_PDF_BUTTON_SAVE},
401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_BUTTON_SAVE_HOVER, IDR_PDF_BUTTON_SAVE_HOVER},
411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_BUTTON_SAVE_PRESSED, IDR_PDF_BUTTON_SAVE_PRESSED},
421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_BUTTON_PRINT, IDR_PDF_BUTTON_PRINT},
431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_BUTTON_PRINT_HOVER, IDR_PDF_BUTTON_PRINT_HOVER},
441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_BUTTON_PRINT_PRESSED, IDR_PDF_BUTTON_PRINT_PRESSED},
451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_BUTTON_PRINT_DISABLED, IDR_PDF_BUTTON_PRINT_DISABLED},
461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_0, IDR_PDF_THUMBNAIL_0},
471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_1, IDR_PDF_THUMBNAIL_1},
481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_2, IDR_PDF_THUMBNAIL_2},
491320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_3, IDR_PDF_THUMBNAIL_3},
501320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_4, IDR_PDF_THUMBNAIL_4},
511320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_5, IDR_PDF_THUMBNAIL_5},
521320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_6, IDR_PDF_THUMBNAIL_6},
531320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_7, IDR_PDF_THUMBNAIL_7},
541320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_8, IDR_PDF_THUMBNAIL_8},
551320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_9, IDR_PDF_THUMBNAIL_9},
561320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_NUM_BACKGROUND,
571320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci     IDR_PDF_THUMBNAIL_NUM_BACKGROUND},
581320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_PROGRESS_BAR_0, IDR_PDF_PROGRESS_BAR_0},
591320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_PROGRESS_BAR_1, IDR_PDF_PROGRESS_BAR_1},
601320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_PROGRESS_BAR_2, IDR_PDF_PROGRESS_BAR_2},
611320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_PROGRESS_BAR_3, IDR_PDF_PROGRESS_BAR_3},
621320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_PROGRESS_BAR_4, IDR_PDF_PROGRESS_BAR_4},
631320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_PROGRESS_BAR_5, IDR_PDF_PROGRESS_BAR_5},
641320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_PROGRESS_BAR_6, IDR_PDF_PROGRESS_BAR_6},
651320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_PROGRESS_BAR_7, IDR_PDF_PROGRESS_BAR_7},
661320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_PROGRESS_BAR_8, IDR_PDF_PROGRESS_BAR_8},
671320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_PROGRESS_BAR_BACKGROUND,
681320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci     IDR_PDF_PROGRESS_BAR_BACKGROUND},
691320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_PAGE_INDICATOR_BACKGROUND,
701320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci     IDR_PDF_PAGE_INDICATOR_BACKGROUND},
711320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_PAGE_DROPSHADOW, IDR_PDF_PAGE_DROPSHADOW},
721320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    {PP_RESOURCEIMAGE_PDF_PAN_SCROLL_ICON, IDR_PDF_PAN_SCROLL_ICON},
731320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci};
741320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
751320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}  // namespace
761320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
771320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccinamespace pdf {
781320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
791320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccigfx::ImageSkia* GetImageResource(PP_ResourceImage image_id) {
801320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  int resource_id = 0;
811320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  for (size_t i = 0; i < arraysize(kResourceImageMap); ++i) {
821320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    if (kResourceImageMap[i].pp_id == image_id) {
831320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      resource_id = kResourceImageMap[i].res_id;
841320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      break;
851320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    }
861320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  }
871320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
881320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  return resource_id ? ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
891320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci                           resource_id)
901320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci                     : NULL;
911320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}
921320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
931320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccistd::string GetStringResource(PP_ResourceString string_id) {
941320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  int resource_id = 0;
951320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  switch (string_id) {
961320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    case PP_RESOURCESTRING_PDFGETPASSWORD:
971320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      resource_id = IDS_PDF_NEED_PASSWORD;
981320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      break;
991320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    case PP_RESOURCESTRING_PDFLOADING:
1001320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      resource_id = IDS_PDF_PAGE_LOADING;
1011320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      break;
1021320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    case PP_RESOURCESTRING_PDFLOAD_FAILED:
1031320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      resource_id = IDS_PDF_PAGE_LOAD_FAILED;
1041320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      break;
1051320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    case PP_RESOURCESTRING_PDFPROGRESSLOADING:
1061320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      resource_id = IDS_PDF_PROGRESS_LOADING;
1071320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      break;
1081320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  }
1091320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
1101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  return base::UTF16ToUTF8(l10n_util::GetStringUTF16(resource_id));
1111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}
1121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
1131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}  // namespace pdf
114