annotate extra/tk_octave/tk_dialog.m @ 0:6b33357c7561 octave-forge

Initial revision
author pkienzle
date Wed, 10 Oct 2001 19:54:49 +0000
parents
children 999cd0f401d9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
1 ## Copyright (C) 1998, 1999, 2000 Joao Cardoso.
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
2 ##
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
3 ## This program is free software; you can redistribute it and/or modify it
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
4 ## under the terms of the GNU General Public License as published by the
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
5 ## Free Software Foundation; either version 2 of the License, or (at your
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
6 ## option) any later version.
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
7 ##
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
8 ## This program is distributed in the hope that it will be useful, but
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
9 ## WITHOUT ANY WARRANTY; without even the implied warranty of
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
10 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
11 ## General Public License for more details.
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
12 ##
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
13 ## This file is part of tk_octave.
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
14
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
15 ## value = tk_dialog(title, text, bitmap, default, ...)
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
16 ##
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
17 ## open a dialog window named 'title' with 'text' printed and N buttons
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
18 ## named as the optional arguments, with button numbered 'default' being
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
19 ## the default action. The return value is the number of the clicked button.
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
20 ## First button is number 0.
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
21 ##
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
22 ## eg: ret = tk_dialog("Warning", "You are about to erase the whole disk. Are
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
23 ## you sure?", "questhead", 0, "No","Yes", "Have I asked you something?")
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
24 ## will return 0 if the first button (No) is clicked, etc.
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
25 ##
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
26 ## there are 6 meaningfull bitmap names: error, hourglass, info, questhead,
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
27 ## question and warning. All arguments must be strings, except 'default'.
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
28
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
29 ## 2001-09-14 Paul Kienzle <pkienzle@users.sf.net>
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
30 ## * spelling corrections
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
31 ## * modified to work with pthreads version of tk_interp
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
32
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
33
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
34 function value = tk_dialog(title, text, bitmap, default, ...)
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
35
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
36 eval("tk_interp","");
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
37
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
38 if (nargin < 5 )
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
39 help tk_dialog
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
40 return
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
41 endif
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
42
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
43 if (! (isstr(title) & isstr(text) & isstr(bitmap) & is_scalar(default)))
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
44 error("'title', 'text' and 'bitmap' must be strings, and 'default' must be scalar.\n");
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
45 return
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
46 endif
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
47
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
48 if (!(strcmp(bitmap, "error") || strcmp(bitmap, "hourglass") || \
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
49 strcmp(bitmap, "info") || strcmp(bitmap, "questhead") || \
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
50 strcmp(bitmap, "question") || strcmp(bitmap, "warning")))
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
51 error("'bitmap' must be one of 'error', 'hourglass', 'info', \
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
52 'questhead', 'question', 'warning'");
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
53 return
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
54 endif
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
55
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
56 if (default > nargin-5)
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
57 error("'default' must be less then or equal to the number of buttons -1\n");
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
58 return
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
59 endif
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
60
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
61 cmd = sprintf("tk_dialog .top_tk_dialog \"%s\" \"%s\" \"%s\" %d", title, text, bitmap, default);
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
62
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
63 while(--nargin != 3)
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
64 arg = va_arg;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
65 if (! isstr(arg))
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
66 error("The arguments must be strings.\n");
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
67 return
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
68 endif
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
69 cmd = [cmd " " '"' arg '"'];
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
70 endwhile
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
71
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
72 value = str2num(tk_cmd( cmd ));
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
73
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
74 endfunction