Make it able to set close button text

This commit is contained in:
Zhuo Lu 2018-01-16 11:26:41 -08:00
parent 647d04cf92
commit be118d4f13
4 changed files with 21 additions and 1 deletions

View file

@ -70,6 +70,7 @@ Notification::Notification(v8::Isolate* isolate,
opts.Get("hasReply", &has_reply_); opts.Get("hasReply", &has_reply_);
opts.Get("actions", &actions_); opts.Get("actions", &actions_);
opts.Get("sound", &sound_); opts.Get("sound", &sound_);
opts.Get("closeButtonText", &close_button_text_);
} }
} }
@ -120,6 +121,10 @@ base::string16 Notification::GetSound() const {
return sound_; return sound_;
} }
base::string16 Notification::GetCloseButtonText() const {
return close_button_text_;
}
// Setters // Setters
void Notification::SetTitle(const base::string16& new_title) { void Notification::SetTitle(const base::string16& new_title) {
title_ = new_title; title_ = new_title;
@ -154,6 +159,10 @@ void Notification::SetSound(const base::string16& new_sound) {
sound_ = new_sound; sound_ = new_sound;
} }
void Notification::SetCloseButtonText(const base::string16& text) {
close_button_text_ = text;
}
void Notification::NotificationAction(int index) { void Notification::NotificationAction(int index) {
Emit("action", index); Emit("action", index);
} }
@ -201,6 +210,7 @@ void Notification::Show() {
options.reply_placeholder = reply_placeholder_; options.reply_placeholder = reply_placeholder_;
options.actions = actions_; options.actions = actions_;
options.sound = sound_; options.sound = sound_;
options.close_button_text = close_button_text_;
notification_->Show(options); notification_->Show(options);
} }
} }
@ -230,7 +240,9 @@ void Notification::BuildPrototype(v8::Isolate* isolate,
.SetProperty("actions", &Notification::GetActions, .SetProperty("actions", &Notification::GetActions,
&Notification::SetActions) &Notification::SetActions)
.SetProperty("sound", &Notification::GetSound, .SetProperty("sound", &Notification::GetSound,
&Notification::SetSound); &Notification::SetSound)
.SetProperty("closeButtonText", &Notification::GetCloseButtonText,
&Notification::SetCloseButtonText);
} }
} // namespace api } // namespace api

View file

@ -56,6 +56,7 @@ class Notification : public mate::TrackableObject<Notification>,
bool GetHasReply() const; bool GetHasReply() const;
std::vector<brightray::NotificationAction> GetActions() const; std::vector<brightray::NotificationAction> GetActions() const;
base::string16 GetSound() const; base::string16 GetSound() const;
base::string16 GetCloseButtonText() const;
// Prop Setters // Prop Setters
void SetTitle(const base::string16& new_title); void SetTitle(const base::string16& new_title);
@ -66,6 +67,7 @@ class Notification : public mate::TrackableObject<Notification>,
void SetHasReply(bool new_has_reply); void SetHasReply(bool new_has_reply);
void SetActions(const std::vector<brightray::NotificationAction>& actions); void SetActions(const std::vector<brightray::NotificationAction>& actions);
void SetSound(const base::string16& sound); void SetSound(const base::string16& sound);
void SetCloseButtonText(const base::string16& text);
private: private:
base::string16 title_; base::string16 title_;
@ -79,6 +81,7 @@ class Notification : public mate::TrackableObject<Notification>,
bool has_reply_ = false; bool has_reply_ = false;
std::vector<brightray::NotificationAction> actions_; std::vector<brightray::NotificationAction> actions_;
base::string16 sound_; base::string16 sound_;
base::string16 close_button_text_;
brightray::NotificationPresenter* presenter_; brightray::NotificationPresenter* presenter_;

View file

@ -73,6 +73,10 @@ void CocoaNotification::Show(const NotificationOptions& options) {
[notification_ setHasReplyButton:true]; [notification_ setHasReplyButton:true];
} }
if (!options.close_button_text.empty()) {
[notification_ setOtherButtonTitle:base::SysUTF16ToNSString(options.close_button_text)];
}
[NSUserNotificationCenter.defaultUserNotificationCenter [NSUserNotificationCenter.defaultUserNotificationCenter
deliverNotification:notification_]; deliverNotification:notification_];
} }

View file

@ -35,6 +35,7 @@ struct NotificationOptions {
base::string16 reply_placeholder; base::string16 reply_placeholder;
base::string16 sound; base::string16 sound;
std::vector<NotificationAction> actions; std::vector<NotificationAction> actions;
base::string16 close_button_text;
}; };
class Notification { class Notification {