1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be
3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file.
4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#ifndef BASE_FILE_VERSION_INFO_MAC_H_
6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#define BASE_FILE_VERSION_INFO_MAC_H_
73345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#pragma once
8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include <string>
10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
11c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "base/file_version_info.h"
12ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/memory/scoped_nsobject.h"
13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#ifdef __OBJC__
15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch@class NSBundle;
16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#else
17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass NSBundle;
18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#endif
19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass FileVersionInfoMac : public FileVersionInfo {
21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch public:
22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  explicit FileVersionInfoMac(NSBundle *bundle);
23dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual ~FileVersionInfoMac();
24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // Accessors to the different version properties.
26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // Returns an empty string if the property is not found.
2721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  virtual string16 company_name();
2821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  virtual string16 company_short_name();
2921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  virtual string16 product_name();
3021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  virtual string16 product_short_name();
3121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  virtual string16 internal_name();
3221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  virtual string16 product_version();
3321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  virtual string16 private_build();
3421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  virtual string16 special_build();
3521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  virtual string16 comments();
3621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  virtual string16 original_filename();
3721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  virtual string16 file_description();
3821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  virtual string16 file_version();
3921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  virtual string16 legal_copyright();
4021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  virtual string16 legal_trademarks();
4121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  virtual string16 last_change();
42c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  virtual bool is_official_build();
43c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
44c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch private:
4521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  // Returns a string16 value for a property name.
4621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  // Returns the empty string if the property does not exist.
4721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  string16 GetString16Value(CFStringRef name);
4821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen
4921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  scoped_nsobject<NSBundle> bundle_;
50c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
51c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  DISALLOW_COPY_AND_ASSIGN(FileVersionInfoMac);
52c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch};
53c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
54c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#endif  // BASE_FILE_VERSION_INFO_MAC_H_
55