OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 // | 4 // |
5 // This file declares methods that are useful for integrating Chrome in | 5 // This file declares methods that are useful for integrating Chrome in |
6 // Windows shell. These methods are all static and currently part of | 6 // Windows shell. These methods are all static and currently part of |
7 // ShellUtil class. | 7 // ShellUtil class. |
8 | 8 |
9 #ifndef CHROME_INSTALLER_UTIL_SHELL_UTIL_H_ | 9 #ifndef CHROME_INSTALLER_UTIL_SHELL_UTIL_H_ |
10 #define CHROME_INSTALLER_UTIL_SHELL_UTIL_H_ | 10 #define CHROME_INSTALLER_UTIL_SHELL_UTIL_H_ |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
142 } | 142 } |
143 | 143 |
144 // Forces the shortcut's name to |shortcut_name_in|. | 144 // Forces the shortcut's name to |shortcut_name_in|. |
145 // Default: the current distribution's GetShortcutName(SHORTCUT_CHROME). | 145 // Default: the current distribution's GetShortcutName(SHORTCUT_CHROME). |
146 // The ".lnk" extension will automatically be added to this name. | 146 // The ".lnk" extension will automatically be added to this name. |
147 void set_shortcut_name(const base::string16& shortcut_name_in) { | 147 void set_shortcut_name(const base::string16& shortcut_name_in) { |
148 shortcut_name = shortcut_name_in; | 148 shortcut_name = shortcut_name_in; |
149 options |= PROPERTIES_SHORTCUT_NAME; | 149 options |= PROPERTIES_SHORTCUT_NAME; |
150 } | 150 } |
151 | 151 |
152 // Sets whether this is a dual mode shortcut (Win8+). | |
153 // Documentation on usage of the dual mode property on Win8: | |
154 // http://go.microsoft.com/fwlink/p/?linkid=243079 | |
155 // NOTE: Only the default (no arguments and default browser appid) browser | |
156 // shortcut in the Start menu (Start screen on Win8+) should be made dual | |
157 // mode. | |
158 void set_dual_mode(bool dual_mode_in) { | |
159 dual_mode = dual_mode_in; | |
160 options |= PROPERTIES_DUAL_MODE; | |
161 } | |
162 | |
163 // Sets whether to pin this shortcut to the taskbar after creating it | 152 // Sets whether to pin this shortcut to the taskbar after creating it |
164 // (ignored if the shortcut is only being updated). | 153 // (ignored if the shortcut is only being updated). |
165 // Note: This property doesn't have a mask in |options|. | 154 // Note: This property doesn't have a mask in |options|. |
166 void set_pin_to_taskbar(bool pin_to_taskbar_in) { | 155 void set_pin_to_taskbar(bool pin_to_taskbar_in) { |
167 pin_to_taskbar = pin_to_taskbar_in; | 156 pin_to_taskbar = pin_to_taskbar_in; |
168 } | 157 } |
169 | 158 |
170 bool has_target() const { | 159 bool has_target() const { |
171 return (options & PROPERTIES_TARGET) != 0; | 160 return (options & PROPERTIES_TARGET) != 0; |
172 } | 161 } |
(...skipping 11 matching lines...) Expand all Loading... |
184 } | 173 } |
185 | 174 |
186 bool has_app_id() const { | 175 bool has_app_id() const { |
187 return (options & PROPERTIES_APP_ID) != 0; | 176 return (options & PROPERTIES_APP_ID) != 0; |
188 } | 177 } |
189 | 178 |
190 bool has_shortcut_name() const { | 179 bool has_shortcut_name() const { |
191 return (options & PROPERTIES_SHORTCUT_NAME) != 0; | 180 return (options & PROPERTIES_SHORTCUT_NAME) != 0; |
192 } | 181 } |
193 | 182 |
194 bool has_dual_mode() const { | |
195 return (options & PROPERTIES_DUAL_MODE) != 0; | |
196 } | |
197 | |
198 // The level to install this shortcut at (CURRENT_USER for a per-user | 183 // The level to install this shortcut at (CURRENT_USER for a per-user |
199 // shortcut and SYSTEM_LEVEL for an all-users shortcut). | 184 // shortcut and SYSTEM_LEVEL for an all-users shortcut). |
200 ShellChange level; | 185 ShellChange level; |
201 | 186 |
202 base::FilePath target; | 187 base::FilePath target; |
203 base::string16 arguments; | 188 base::string16 arguments; |
204 base::string16 description; | 189 base::string16 description; |
205 base::FilePath icon; | 190 base::FilePath icon; |
206 int icon_index; | 191 int icon_index; |
207 base::string16 app_id; | 192 base::string16 app_id; |
208 base::string16 shortcut_name; | 193 base::string16 shortcut_name; |
209 bool dual_mode; | |
210 bool pin_to_taskbar; | 194 bool pin_to_taskbar; |
211 // Bitfield made of IndividualProperties. Properties set in |options| will | 195 // Bitfield made of IndividualProperties. Properties set in |options| will |
212 // be used to create/update the shortcut, others will be ignored on update | 196 // be used to create/update the shortcut, others will be ignored on update |
213 // and possibly replaced by default values on create (see individual | 197 // and possibly replaced by default values on create (see individual |
214 // property setters above for details on default values). | 198 // property setters above for details on default values). |
215 uint32_t options; | 199 uint32_t options; |
216 }; | 200 }; |
217 | 201 |
218 // Relative path of the URL Protocol registry entry (prefixed with '\'). | 202 // Relative path of the URL Protocol registry entry (prefixed with '\'). |
219 static const wchar_t* kRegURLProtocol; | 203 static const wchar_t* kRegURLProtocol; |
(...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
656 // Set/CreateRegWorkItems and runs them using WorkItemList. | 640 // Set/CreateRegWorkItems and runs them using WorkItemList. |
657 static bool AddRegistryEntries(HKEY root, | 641 static bool AddRegistryEntries(HKEY root, |
658 const ScopedVector<RegistryEntry>& entries); | 642 const ScopedVector<RegistryEntry>& entries); |
659 | 643 |
660 private: | 644 private: |
661 DISALLOW_COPY_AND_ASSIGN(ShellUtil); | 645 DISALLOW_COPY_AND_ASSIGN(ShellUtil); |
662 }; | 646 }; |
663 | 647 |
664 | 648 |
665 #endif // CHROME_INSTALLER_UTIL_SHELL_UTIL_H_ | 649 #endif // CHROME_INSTALLER_UTIL_SHELL_UTIL_H_ |
OLD | NEW |