Skip to content

Commit

Permalink
feat: add width option to dialog.showMessageBox() (#31089)
Browse files Browse the repository at this point in the history
Co-authored-by: Milan Burda <milan.burda@gmail.com>
  • Loading branch information
trop[bot] and miniak committed Sep 23, 2021
1 parent 2f543c3 commit 0080a61
Show file tree
Hide file tree
Showing 5 changed files with 13 additions and 1 deletion.
2 changes: 2 additions & 0 deletions docs/api/dialog.md
Expand Up @@ -234,6 +234,7 @@ expanding and collapsing the dialog.
* `title` String (optional) - Title of the message box, some platforms will not show it.
* `detail` String (optional) - Extra information of the message.
* `icon` ([NativeImage](native-image.md) | String) (optional)
* `textWidth` Integer (optional) _macOS_ - Custom width of the text in the message box.
* `cancelId` Integer (optional) - The index of the button to be used to cancel the dialog, via
the `Esc` key. By default this is assigned to the first button with "cancel" or "no" as the
label. If no such labeled buttons exist and this option is not set, `0` will be used as the
Expand Down Expand Up @@ -285,6 +286,7 @@ If `browserWindow` is not shown dialog will not be attached to it. In such case
* `checkboxChecked` Boolean (optional) - Initial checked state of the
checkbox. `false` by default.
* `icon` [NativeImage](native-image.md) (optional)
* `textWidth` Integer (optional) _macOS_ - Custom width of the text in the message box.
* `cancelId` Integer (optional) - The index of the button to be used to cancel the dialog, via
the `Esc` key. By default this is assigned to the first button with "cancel" or "no" as the
label. If no such labeled buttons exist and this option is not set, `0` will be used as the
Expand Down
4 changes: 3 additions & 1 deletion lib/browser/api/dialog.ts
Expand Up @@ -168,6 +168,7 @@ const messageBox = (sync: boolean, window: BrowserWindow | null, options?: Messa
defaultId = -1,
detail = '',
icon = null,
textWidth = 0,
noLink = false,
message = '',
title = '',
Expand Down Expand Up @@ -225,7 +226,8 @@ const messageBox = (sync: boolean, window: BrowserWindow | null, options?: Messa
detail,
checkboxLabel,
checkboxChecked,
icon
icon,
textWidth
};

if (sync) {
Expand Down
1 change: 1 addition & 0 deletions shell/browser/ui/message_box.h
Expand Up @@ -38,6 +38,7 @@ struct MessageBoxSettings {
std::string checkbox_label;
bool checkbox_checked = false;
gfx::ImageSkia icon;
int text_width = 0;

MessageBoxSettings();
MessageBoxSettings(const MessageBoxSettings&);
Expand Down
6 changes: 6 additions & 0 deletions shell/browser/ui/message_box_mac.mm
Expand Up @@ -98,6 +98,12 @@
[alert setIcon:image];
}

if (settings.text_width > 0) {
NSRect rect = NSMakeRect(0, 0, settings.text_width, 0);
NSView* accessoryView = [[NSView alloc] initWithFrame:rect];
[alert setAccessoryView:[accessoryView autorelease]];
}

return alert;
}

Expand Down
1 change: 1 addition & 0 deletions shell/common/gin_converters/message_box_converter.cc
Expand Up @@ -32,6 +32,7 @@ bool Converter<electron::MessageBoxSettings>::FromV8(
dict.Get("noLink", &out->no_link);
dict.Get("checkboxChecked", &out->checkbox_checked);
dict.Get("icon", &out->icon);
dict.Get("textWidth", &out->text_width);
return true;
}

Expand Down

0 comments on commit 0080a61

Please sign in to comment.