Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add textWidth option to dialog.showMessageBox() #31089

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
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