diff scripts/java/msgbox.m @ 15709:9fee0b741de6

Update Java dialog scrips to latest octave-forge status * dlgtest.m: strip away all code for reinstalling Java package * cell2mlstr.m: new function * helpdlg.m, errordlg.m, inputdlg.m, listdlg.m, questdlg.m, warndlg.m, msgbox.m: Allow cellstr arrays as first argument (ML compatibilility)
author Philip Nienhuis <prnienhuis@users.sf.net>
date Sat, 01 Dec 2012 18:10:55 +0100
parents acf0addfc610
children da26f72408a7
line wrap: on
line diff
--- a/scripts/java/msgbox.m
+++ b/scripts/java/msgbox.m
@@ -17,7 +17,11 @@
 ## @deftypefn {Function file} {@var{P} =} msgbox (@var{MESSAGE} [,@var{TITLE} [,@var{ICON}]])
 ##
 ## Displays the @var{MESSAGE} using a message dialog. 
-## The @var{TITLE} is an optional string, which can be used to decorate the dialog caption.
+##
+## @var{message} can have multiple lines separated by newline characters
+## ("\n"), or it can be a cellstr array (one element for each line).
+## The optional @var{TITLE} (character string) can be used to decorate the
+## dialog caption.
 ## The @var{ICON} can be used optionally to select a dialog icon. 
 ## It can be one of @code{'error'}, @code{'help'} or @code{'warn'}.
 ## The return value is always 1.
@@ -25,30 +29,42 @@
 ## @end deftypefn
 ## @seealso{helpdlg, questdlg, warndlg}
 
-function ret = msgbox(message,varargin)
+function ret = msgbox (message, varargin)
+
+  if (! ischar (message))
+    if (iscell (message))
+      message = cell2mlstr (message);
+    else
+      error ("msgbox: character string or cellstr array expected for message");
+    endif
+  endif
   
   switch length (varargin)
-  case 0
-     title = "";
-     dlg = 'emptydlg';
-  case 1
-     title = varargin{1};
-     dlg = 'emptydlg';
-  otherwise
-   % two or more arguments
-    title = varargin{1};
-    icon =  varargin{2};
-    if strcmp(icon,'error') == 1
-      dlg = 'errordlg';
-    elseif strcmp(icon,'help') == 1
-      dlg = 'helpdlg';
-    elseif strcmp(icon,'warn') == 1
-      dlg = 'warndlg';
-    else
+    case 0
+      title = "";
+      dlg = 'emptydlg';
+    case 1
+      title = varargin{1};
       dlg = 'emptydlg';
-    end
+    otherwise
+      % two or more arguments
+      title = varargin{1};
+      icon =  varargin{2};
+      if strcmp (icon,'error') == 1
+        dlg = 'errordlg';
+      elseif strcmp (icon,'help') == 1
+        dlg = 'helpdlg';
+      elseif strcmp (icon,'warn') == 1
+        dlg = 'warndlg';
+      else
+        dlg = 'emptydlg';
+      end
   endswitch
 
+  if (! ischar (title))
+    error ("msgbox: character string expected for title");
+  endif
+
   ret = java_invoke ('org.octave.JDialogBox', dlg, message, title );
 
 endfunction