Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(236)

Side by Side Diff: chrome/installer/util/shell_util.h

Issue 57173002: Adds the concept of a 'safe mode' hotkey start (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 // setting |options| as desired. 71 // setting |options| as desired.
72 struct ShortcutProperties { 72 struct ShortcutProperties {
73 enum IndividualProperties { 73 enum IndividualProperties {
74 PROPERTIES_TARGET = 1 << 0, 74 PROPERTIES_TARGET = 1 << 0,
75 PROPERTIES_ARGUMENTS = 1 << 1, 75 PROPERTIES_ARGUMENTS = 1 << 1,
76 PROPERTIES_DESCRIPTION = 1 << 2, 76 PROPERTIES_DESCRIPTION = 1 << 2,
77 PROPERTIES_ICON = 1 << 3, 77 PROPERTIES_ICON = 1 << 3,
78 PROPERTIES_APP_ID = 1 << 4, 78 PROPERTIES_APP_ID = 1 << 4,
79 PROPERTIES_SHORTCUT_NAME = 1 << 5, 79 PROPERTIES_SHORTCUT_NAME = 1 << 5,
80 PROPERTIES_DUAL_MODE = 1 << 6, 80 PROPERTIES_DUAL_MODE = 1 << 6,
81 PROPERTIES_HOTKEY = 1 << 7,
81 }; 82 };
82 83
83 explicit ShortcutProperties(ShellChange level_in) 84 explicit ShortcutProperties(ShellChange level_in)
84 : level(level_in), icon_index(0), dual_mode(false), 85 : level(level_in), icon_index(0), dual_mode(false),
85 pin_to_taskbar(false), options(0U) {} 86 pin_to_taskbar(false), hotkey(0), options(0U) {}
86 87
87 // Sets the target executable to launch from this shortcut. 88 // Sets the target executable to launch from this shortcut.
88 // This is mandatory when creating a shortcut. 89 // This is mandatory when creating a shortcut.
89 void set_target(const base::FilePath& target_in) { 90 void set_target(const base::FilePath& target_in) {
90 target = target_in; 91 target = target_in;
91 options |= PROPERTIES_TARGET; 92 options |= PROPERTIES_TARGET;
92 } 93 }
93 94
94 // Sets the arguments to be passed to |target| when launching from this 95 // Sets the arguments to be passed to |target| when launching from this
95 // shortcut. 96 // shortcut.
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 options |= PROPERTIES_DUAL_MODE; 144 options |= PROPERTIES_DUAL_MODE;
144 } 145 }
145 146
146 // Sets whether to pin this shortcut to the taskbar after creating it 147 // Sets whether to pin this shortcut to the taskbar after creating it
147 // (ignored if the shortcut is only being updated). 148 // (ignored if the shortcut is only being updated).
148 // Note: This property doesn't have a mask in |options|. 149 // Note: This property doesn't have a mask in |options|.
149 void set_pin_to_taskbar(bool pin_to_taskbar_in) { 150 void set_pin_to_taskbar(bool pin_to_taskbar_in) {
150 pin_to_taskbar = pin_to_taskbar_in; 151 pin_to_taskbar = pin_to_taskbar_in;
151 } 152 }
152 153
154 void set_hotkey(int hotkey_in) {
155 hotkey = hotkey_in;
156 options |= PROPERTIES_HOTKEY;
157 }
158
153 bool has_target() const { 159 bool has_target() const {
154 return (options & PROPERTIES_TARGET) != 0; 160 return (options & PROPERTIES_TARGET) != 0;
155 } 161 }
156 162
157 bool has_arguments() const { 163 bool has_arguments() const {
158 return (options & PROPERTIES_ARGUMENTS) != 0; 164 return (options & PROPERTIES_ARGUMENTS) != 0;
159 } 165 }
160 166
161 bool has_description() const { 167 bool has_description() const {
162 return (options & PROPERTIES_DESCRIPTION) != 0; 168 return (options & PROPERTIES_DESCRIPTION) != 0;
163 } 169 }
164 170
165 bool has_icon() const { 171 bool has_icon() const {
166 return (options & PROPERTIES_ICON) != 0; 172 return (options & PROPERTIES_ICON) != 0;
167 } 173 }
168 174
169 bool has_app_id() const { 175 bool has_app_id() const {
170 return (options & PROPERTIES_APP_ID) != 0; 176 return (options & PROPERTIES_APP_ID) != 0;
171 } 177 }
172 178
173 bool has_shortcut_name() const { 179 bool has_shortcut_name() const {
174 return (options & PROPERTIES_SHORTCUT_NAME) != 0; 180 return (options & PROPERTIES_SHORTCUT_NAME) != 0;
175 } 181 }
176 182
177 bool has_dual_mode() const { 183 bool has_dual_mode() const {
178 return (options & PROPERTIES_DUAL_MODE) != 0; 184 return (options & PROPERTIES_DUAL_MODE) != 0;
179 } 185 }
180 186
187 bool has_hotkey() const {
188 return (options & PROPERTIES_HOTKEY) != 0;
189 }
181 // The level to install this shortcut at (CURRENT_USER for a per-user 190 // The level to install this shortcut at (CURRENT_USER for a per-user
182 // shortcut and SYSTEM_LEVEL for an all-users shortcut). 191 // shortcut and SYSTEM_LEVEL for an all-users shortcut).
183 ShellChange level; 192 ShellChange level;
184 193
185 base::FilePath target; 194 base::FilePath target;
186 string16 arguments; 195 string16 arguments;
187 string16 description; 196 string16 description;
188 base::FilePath icon; 197 base::FilePath icon;
189 int icon_index; 198 int icon_index;
190 string16 app_id; 199 string16 app_id;
191 string16 shortcut_name; 200 string16 shortcut_name;
192 bool dual_mode; 201 bool dual_mode;
193 bool pin_to_taskbar; 202 bool pin_to_taskbar;
203 int hotkey;
194 // Bitfield made of IndividualProperties. Properties set in |options| will 204 // Bitfield made of IndividualProperties. Properties set in |options| will
195 // be used to create/update the shortcut, others will be ignored on update 205 // be used to create/update the shortcut, others will be ignored on update
196 // and possibly replaced by default values on create (see individual 206 // and possibly replaced by default values on create (see individual
197 // property setters above for details on default values). 207 // property setters above for details on default values).
198 uint32 options; 208 uint32 options;
199 }; 209 };
200 210
201 // Relative path of the URL Protocol registry entry (prefixed with '\'). 211 // Relative path of the URL Protocol registry entry (prefixed with '\').
202 static const wchar_t* kRegURLProtocol; 212 static const wchar_t* kRegURLProtocol;
203 213
(...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after
561 // required by the base32 standard for inputs that aren't a multiple of 5 571 // required by the base32 standard for inputs that aren't a multiple of 5
562 // bytes. 572 // bytes.
563 static string16 ByteArrayToBase32(const uint8* bytes, size_t size); 573 static string16 ByteArrayToBase32(const uint8* bytes, size_t size);
564 574
565 private: 575 private:
566 DISALLOW_COPY_AND_ASSIGN(ShellUtil); 576 DISALLOW_COPY_AND_ASSIGN(ShellUtil);
567 }; 577 };
568 578
569 579
570 #endif // CHROME_INSTALLER_UTIL_SHELL_UTIL_H_ 580 #endif // CHROME_INSTALLER_UTIL_SHELL_UTIL_H_
OLDNEW
« no previous file with comments | « chrome/installer/util/google_chrome_distribution_dummy.cc ('k') | chrome/installer/util/shell_util.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698