File Exchange

image thumbnail

msgboxFontSize

version 2.3 (3.32 KB) by Adam Danz
Change the fontsize and other text properties in a msgbox(), errordlg(), warndlg() etc.

8 Downloads

Updated 24 Jul 2019

View License

Editor's Note: This file was selected as MATLAB Central Pick of the Week

h = msgbox('Hello world (20 pt font)', 'Example');
msgboxFontSize(h, fontsize)
msgboxFontSize(h, fontsize, 'FontName', 'Consolas', 'Color', 'b')
msgboxFontSize(h, fontsize, 'ignorebuttons', true) % does not apply change to buttons.

The text properties in Matlab's msgbox(), errordlg(), warndlg(), etc cannot be directly
edited and the default 'fontsize' is quite small. This function gets around that problem
by searching for text within the msgbox handle, changes its fontsize, and then changes
the window size to fit the new fontsize. The position of the lower, left corner of
the msgbox will not change and the resize property is turned on. Additional name-value
text properties can be set except for 'units' (see examples).

Outputs include the handle to the text object and handles to all pushbuttons. The help section
shows how to get the handle to the icon in errordlg & warndlg as well.

List of text properties: https://www.mathworks.com/help/matlab/ref/matlab.graphics.primitive.text-properties.html

** Also see supersizeme() which contains an interactive GUI with a slider that allows you to scale the font size of all text within a figure or axes.
https://www.mathworks.com/matlabcentral/fileexchange/67644-supersizeme

Cite As

Adam Danz (2019). msgboxFontSize (https://www.mathworks.com/matlabcentral/fileexchange/68460-msgboxfontsize), MATLAB Central File Exchange. Retrieved .

Comments and Ratings (3)

Adam Danz

Thanks, Jiro. I added the conditional the suppresses the set() outputs. Applying properties to the buttons is a somewhat larger task since the button placement will have to be carefully manipulated so that larger buttons do not overlap with the main text or other buttons. That will take a bit more time than I have right now. In the meantime, I've included a 2nd output that lists handles to all buttons so the user can change the color, fontsize, fontname, etc manually. In the help section, I've also included two lines of code that shows how to get the handle to the icon and change its size.

jiro

Great utility!

One code suggestion and one feature request.
Around line 91, you have

set(th(i), unmatchNameVal{:});

I suggest you wrap that line with the following

if ~isempty(unmatchNameVal)
set(th(i), unmatchNameVal{:});
end

This will prevent the set function from displaying output when there are no unmatched name-value pairs.

As for feature request, it would be great if you could also scale the font of the buttons (Okay, cancel, etc.). Also, this could be challenging, but if you could scale the icons used in errordlg, warndlg, etc.

Anyway, thanks for the tool!

Msutto51

Hey thanks!!

Updates

2.3

Now compatible with older releases (tested in r2014a, r2016a, r2017b, r2019a).
Replaces isvalid() with ishghandle() and dot notation with get/set.

2.2

Properties now applied to buttons though the buttons are not resized.

2.1.1

Just updated the description. No change to m file.

2.1

1) suppresses output from set() when inputs do not include property-value pairs.
2) includes button handle outputs.

2.0

Added the ability to specify all name-value text properties.

1.0.1

Simplified one line by replacing set() with dot notation.

MATLAB Release Compatibility
Created with R2014a
Compatible with R2014a to any release
Platform Compatibility
Windows macOS Linux