Modify gcbo in callback
[scilab.git] / scilab / modules / m2sci / tcl / m2sci.tcl
1 # Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 # Copyright (C) 2002-2004 - INRIA - Vincent COUVERT
3
4 # This file is distributed under the same license as the Scilab package.
5
6 # GUI for M2SCI tools
7
8 #!/bin/sh
9 #exec wish "$0" "$1" & exit 0 
10
11 # Scilab specification
12 toplevel .m2sci
13
14 ScilabEval "TCL_SetVar(\"localizedtitle\",gettext(\"Matlab to Scilab conversion tool\"))" "sync"
15 wm title .m2sci $localizedtitle
16
17
18 bind .m2sci <Destroy> {cancelConversionCross}
19 ######################################################################
20 # Gets the directory to convert, and initialize the eTranslatePath
21 ######################################################################
22 proc setPathToConvert {} { 
23     global rFlagWhatToConvert
24     set ePathToConvert [ tk_chooseDirectory ]
25     
26     # Refresh the entry text
27     .m2sci.mainframe.eDirName delete 0 end 
28     .m2sci.mainframe.eDirName insert 1 $ePathToConvert
29     set rFlagWhatToConvert 0
30
31
32
33 ######################################################################
34 # Gets the file to convert
35 ######################################################################
36 proc setFileToConvert {} { 
37     global rFlagWhatToConvert
38     set eFileToConvert [ tk_getOpenFile ]
39     
40     # Refresh the entry text
41     .m2sci.mainframe.eFileName delete 0 end 
42     .m2sci.mainframe.eFileName insert 1 $eFileToConvert
43     set rFlagWhatToConvert 1
44
45
46
47 ######################################################################
48 # Gets the result directory
49 ######################################################################
50 proc setResDirName {} { 
51     set eResDirName [ tk_chooseDirectory ]
52
53     # Refresh the entry text
54     .m2sci.mainframe.eResDirName delete 0 end 
55     .m2sci.mainframe.eResDirName insert 1 $eResDirName
56
57
58
59 ######################################################################
60 # Close the window when conversion is launched
61 ######################################################################
62 proc launchConversion {} {
63     global rFlagWhatToConvert
64     global eDirName
65     global eFileName
66     global eResDirName
67     global rRecMode
68     global rOnlyDouble
69     global rVerbMode
70     global rPrettyPrint
71     global rToDo
72     global rWindowKilled
73
74     set rWindowKilled 0
75     set rToDo 1
76     
77     destroy .m2sci
78 }
79
80 ######################################################################
81 # Close the window when cancel button clicked
82 ######################################################################
83 proc cancelConversion {} {
84     global rToDo
85     global rWindowKilled
86  
87     set rWindowKilled 0
88     set rToDo -1
89     
90     destroy .m2sci
91 }
92
93 ######################################################################
94 # Close the window when cross clicked
95 ######################################################################
96 proc cancelConversionCross {} {
97  global rWindowKilled
98  set rWindowKilled 1
99
100  destroy .m2sci
101 }
102
103 ######################################################################
104 # Window creation
105 ######################################################################
106 global rFlagWhatToConvert
107
108 frame .m2sci.mainframe
109
110 # FILES SELECTION
111 ScilabEval "TCL_SetVar(\"localizedLabelFiles\",gettext(\"FILES SELECTION\"))" "sync"
112 label .m2sci.mainframe.lFileSelect -textvariable localizedLabelFiles -background lightblue
113
114 grid .m2sci.mainframe.lFileSelect -column 0 -columnspan 4 -row 1 -sticky news
115
116 # Whole directory
117 radiobutton .m2sci.mainframe.rDir -variable rFlagWhatToConvert -value 0 
118 ScilabEval "TCL_SetVar(\"localizedlDir\",gettext(\"Convert a whole directory\"))" "sync"
119 label .m2sci.mainframe.lDir -textvariable localizedlDir
120
121 grid .m2sci.mainframe.rDir -column 0 -row 2
122 grid .m2sci.mainframe.lDir -column 1 -columnspan 3 -row 2 -sticky w
123
124 ScilabEval "TCL_SetVar(\"localizedlDirName\",gettext(\"Directory name: \"))" "sync"
125 label .m2sci.mainframe.lDirName -textvariable localizedlDirName
126 entry .m2sci.mainframe.eDirName -textvariable ePathToConvert -width 50
127 bind .m2sci.mainframe.eDirName <FocusIn> {set rFlagWhatToConvert 0}
128 ScilabEval "TCL_SetVar(\"localizedBrowse\",gettext(\"Browse\"))" "sync"
129 button .m2sci.mainframe.bBrowseDir -textvariable localizedBrowse -command {setPathToConvert}
130
131 grid .m2sci.mainframe.lDirName -column 1 -row 3
132 grid .m2sci.mainframe.eDirName -column 2 -row 3
133 grid .m2sci.mainframe.bBrowseDir -column 3 -row 3
134
135 # Single file
136 radiobutton .m2sci.mainframe.rFile -variable rFlagWhatToConvert -value 1
137 ScilabEval "TCL_SetVar(\"localizedlFile\",gettext(\"Convert a single file\"))" "sync"
138 label .m2sci.mainframe.lFile -textvariable localizedlFile  
139
140 grid .m2sci.mainframe.rFile -column 0 -row 4
141 grid .m2sci.mainframe.lFile -column 1 -columnspan 3 -row 4 -sticky w
142
143 ScilabEval "TCL_SetVar(\"localizedlFileName\",gettext(\"File name: \"))" "sync"
144 label .m2sci.mainframe.lFileName -textvariable localizedlFileName
145 entry .m2sci.mainframe.eFileName -textvariable eFileToConvert -width 50
146 bind .m2sci.mainframe.eFileName <FocusIn> {set rFlagWhatToConvert 1}
147 button .m2sci.mainframe.bBrowseFile -textvariable localizedBrowse -command {setFileToConvert} 
148
149 grid .m2sci.mainframe.lFileName -column 1 -row 5
150 grid .m2sci.mainframe.eFileName -column 2 -row 5
151 grid .m2sci.mainframe.bBrowseFile -column 3 -row 5
152
153 # RESULTING FILES DIRECTORY
154 ScilabEval "TCL_SetVar(\"localizedlResDirSelect\",gettext(\"OUTPUT FILES DIRECTORY\"))" "sync"
155 label .m2sci.mainframe.lResDirSelect -textvariable localizedlResDirSelect -background lightblue
156
157 grid .m2sci.mainframe.lResDirSelect -column 0 -columnspan 4 -row 6 -sticky news
158
159 ScilabEval "TCL_SetVar(\"localizedlResDirName\",gettext(\"Directory name:\"))" "sync"
160 label .m2sci.mainframe.lResDirName -textvariable localizedlResDirName
161 entry .m2sci.mainframe.eResDirName -textvariable eResDirName -width 50
162 button .m2sci.mainframe.bBrowseResDir -textvariable localizedBrowse -command {setResDirName}
163
164 grid .m2sci.mainframe.lResDirName -column 1 -row 7
165 grid .m2sci.mainframe.eResDirName -column 2 -row 7
166 grid .m2sci.mainframe.bBrowseResDir -column 3 -row 7
167
168 # OPTIONS
169 ScilabEval "TCL_SetVar(\"localizedlOptions\",gettext(\"CONVERSION OPTIONS\"))" "sync"
170 label .m2sci.mainframe.lOptions -textvariable localizedlOptions -background lightblue
171
172 grid .m2sci.mainframe.lOptions -column 0 -columnspan 4 -row 8 -sticky news
173
174 # RecMode
175 ScilabEval "TCL_SetVar(\"localizedlRecMode\",gettext(\"Recursive conversion:\"))" "sync"
176 label .m2sci.mainframe.lRecMode -textvariable localizedlRecMode
177 frame .m2sci.mainframe.fRecMode
178 ScilabEval "TCL_SetVar(\"localizedYes\",gettext(\"Yes\"))" "sync"
179 ScilabEval "TCL_SetVar(\"localizedNo\",gettext(\"No\"))" "sync"
180 ScilabEval "TCL_SetVar(\"localizedYES\",gettext(\"YES\"))" "sync"
181 ScilabEval "TCL_SetVar(\"localizedNO\",gettext(\"NO\"))" "sync"
182 radiobutton .m2sci.mainframe.fRecMode.rRecModeYES -textvariable localizedYes -variable rRecMode -value $localizedYES
183 radiobutton .m2sci.mainframe.fRecMode.rRecModeNO -textvariable localizedNo -variable rRecMode -value $localizedNO 
184                    
185 pack configure  .m2sci.mainframe.fRecMode.rRecModeYES \
186                 .m2sci.mainframe.fRecMode.rRecModeNO  \
187                 -side left
188
189 grid .m2sci.mainframe.lRecMode -column 0 -columnspan 2 -row 9 
190 grid .m2sci.mainframe.fRecMode -column 1 -columnspan 2 -row 9 
191
192 # OnlyDouble
193 ScilabEval "TCL_SetVar(\"localizedlOnlyDouble\",gettext(\"Only double values used:\"))" "sync"
194 label .m2sci.mainframe.lOnlyDouble -textvariable localizedlOnlyDouble
195 frame .m2sci.mainframe.fOnlyDouble
196 radiobutton .m2sci.mainframe.fOnlyDouble.rOnlyDoubleYES -textvariable localizedYes -variable rOnlyDouble -value $localizedYES  
197 radiobutton .m2sci.mainframe.fOnlyDouble.rOnlyDoubleNO -textvariable localizedNo -variable rOnlyDouble -value $localizedNO
198                    
199 pack configure  .m2sci.mainframe.fOnlyDouble.rOnlyDoubleYES \
200                 .m2sci.mainframe.fOnlyDouble.rOnlyDoubleNO  \
201                 -side left
202
203 grid .m2sci.mainframe.lOnlyDouble -column 0 -columnspan 2 -row 10
204 grid .m2sci.mainframe.fOnlyDouble -column 1 -columnspan 2 -row 10
205
206 # VerbMode
207 ScilabEval "TCL_SetVar(\"localizedlVerbMode\",gettext(\"Verbose Mode:\"))" "sync"
208 label .m2sci.mainframe.lVerbMode -textvariable localizedlVerbMode
209 frame .m2sci.mainframe.fVerbMode
210 radiobutton .m2sci.mainframe.fVerbMode.rVerbMode0 -text "0" -variable rVerbMode -value 0  
211 radiobutton .m2sci.mainframe.fVerbMode.rVerbMode1 -text "1" -variable rVerbMode -value 1 
212 radiobutton .m2sci.mainframe.fVerbMode.rVerbMode2 -text "2" -variable rVerbMode -value 2 
213 radiobutton .m2sci.mainframe.fVerbMode.rVerbMode3 -text "3" -variable rVerbMode -value 3 
214                    
215 pack configure  .m2sci.mainframe.fVerbMode.rVerbMode0 \
216                 .m2sci.mainframe.fVerbMode.rVerbMode1 \
217                 .m2sci.mainframe.fVerbMode.rVerbMode2 \
218                 .m2sci.mainframe.fVerbMode.rVerbMode3 \
219                 -side left
220
221 grid .m2sci.mainframe.lVerbMode -column 0 -columnspan 2 -row 11
222 grid .m2sci.mainframe.fVerbMode -column 1 -columnspan 2 -row 11
223
224 # PrettyPrint
225 ScilabEval "TCL_SetVar(\"localizedlPrettyPrint\",gettext(\"Generate pretty printed code:\"))" "sync"
226 label .m2sci.mainframe.lPrettyPrint -textvariable localizedlPrettyPrint
227 frame .m2sci.mainframe.fPrettyPrint
228 radiobutton .m2sci.mainframe.fPrettyPrint.rPrettyPrintYES -textvariable localizedYes -variable rPrettyPrint -value $localizedYES  
229 radiobutton .m2sci.mainframe.fPrettyPrint.rPrettyPrintNO -textvariable localizedNo -variable rPrettyPrint -value $localizedNO
230                    
231 pack configure  .m2sci.mainframe.fPrettyPrint.rPrettyPrintYES \
232                 .m2sci.mainframe.fPrettyPrint.rPrettyPrintNO  \
233                 -side left
234
235 grid .m2sci.mainframe.lPrettyPrint -column 0 -columnspan 2 -row 12
236 grid .m2sci.mainframe.fPrettyPrint -column 1 -columnspan 2 -row 12
237
238 # VALIDATION
239 ScilabEval "TCL_SetVar(\"localizedlButtons\",gettext(\"VALIDATION\"))" "sync"
240 label .m2sci.mainframe.lButtons -textvariable localizedlButtons -background lightblue
241
242 grid .m2sci.mainframe.lButtons -column 0 -columnspan 4 -row 13 -sticky news
243
244 frame .m2sci.mainframe.fButtons
245 ScilabEval "TCL_SetVar(\"localizedbConvert\",gettext(\"Convert\"))" "sync"
246 button .m2sci.mainframe.fButtons.bConvert -textvariable localizedbConvert -command {launchConversion} 
247 ScilabEval "TCL_SetVar(\"localizedbCancel\",gettext(\"Cancel\"))" "sync"
248 button .m2sci.mainframe.fButtons.bCancel -textvariable localizedbCancel -command {cancelConversion} 
249
250 pack configure  .m2sci.mainframe.fButtons.bCancel  \
251                 .m2sci.mainframe.fButtons.bConvert \
252                 -side left
253
254 grid .m2sci.mainframe.fButtons -column 0 -columnspan 4 -row 14
255
256 pack .m2sci.mainframe