Enable setting icon for addUserTasks
This commit is contained in:
parent
0db2769781
commit
0b1b0940d2
3 changed files with 12 additions and 0 deletions
|
@ -35,6 +35,7 @@ using atom::Browser;
|
||||||
|
|
||||||
namespace mate {
|
namespace mate {
|
||||||
|
|
||||||
|
#if defined(OS_WIN)
|
||||||
template<>
|
template<>
|
||||||
struct Converter<Browser::UserTask> {
|
struct Converter<Browser::UserTask> {
|
||||||
static bool FromV8(v8::Isolate* isolate, v8::Handle<v8::Value> val,
|
static bool FromV8(v8::Isolate* isolate, v8::Handle<v8::Value> val,
|
||||||
|
@ -45,11 +46,15 @@ struct Converter<Browser::UserTask> {
|
||||||
if (!dict.Get("program", &(out->program)) ||
|
if (!dict.Get("program", &(out->program)) ||
|
||||||
!dict.Get("title", &(out->title)))
|
!dict.Get("title", &(out->title)))
|
||||||
return false;
|
return false;
|
||||||
|
if (dict.Get("iconPath", &(out->icon_path)) &&
|
||||||
|
!dict.Get("iconIndex", &(out->icon_index)))
|
||||||
|
return false;
|
||||||
dict.Get("arguments", &(out->arguments));
|
dict.Get("arguments", &(out->arguments));
|
||||||
dict.Get("description", &(out->description));
|
dict.Get("description", &(out->description));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
} // namespace mate
|
} // namespace mate
|
||||||
|
|
||||||
|
|
|
@ -91,6 +91,8 @@ class Browser : public WindowListObserver {
|
||||||
base::string16 arguments;
|
base::string16 arguments;
|
||||||
base::string16 title;
|
base::string16 title;
|
||||||
base::string16 description;
|
base::string16 description;
|
||||||
|
base::FilePath icon_path;
|
||||||
|
int icon_index;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Add a custom task to jump list.
|
// Add a custom task to jump list.
|
||||||
|
|
|
@ -96,6 +96,11 @@ void Browser::AddUserTasks(const std::vector<UserTask>& tasks) {
|
||||||
FAILED(link->SetDescription(task.description.c_str())))
|
FAILED(link->SetDescription(task.description.c_str())))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (!task.icon_path.empty() &&
|
||||||
|
FAILED(link->SetIconLocation(task.icon_path.value().c_str(),
|
||||||
|
task.icon_index)))
|
||||||
|
return;
|
||||||
|
|
||||||
CComQIPtr<IPropertyStore> property_store = link;
|
CComQIPtr<IPropertyStore> property_store = link;
|
||||||
if (!base::win::SetStringValueForPropertyStore(property_store, PKEY_Title,
|
if (!base::win::SetStringValueForPropertyStore(property_store, PKEY_Title,
|
||||||
task.title.c_str()))
|
task.title.c_str()))
|
||||||
|
|
Loading…
Reference in a new issue