source: branches/guitools-2.0/evfsgui/evfsgui.VRX@ 413

Last change on this file since 413 was 410, checked in by Herwig Bauernfeind, 16 years ago

GUI-Tools: Latest EVFSGUI changes

File size: 130.0 KB
Line 
1/*:VRX Main
2*/
3/* Main
4*/
5Main:
6/* Process the arguments.
7 Get the parent window.
8*/
9 parse source . calledAs .
10 parent = ""
11 argCount = arg()
12 argOff = 0
13 if( calledAs \= "COMMAND" )then do
14 if argCount >= 1 then do
15 parent = arg(1)
16 argCount = argCount - 1
17 argOff = 1
18 end
19 end; else do
20 call VROptions 'ImplicitNames'
21 call VROptions 'NoEchoQuit'
22 end
23 InitArgs.0 = argCount
24 if( argCount > 0 )then do i = 1 to argCount
25 InitArgs.i = arg( i + argOff )
26 end
27 drop calledAs argCount argOff
28
29/* Load the windows
30*/
31 call VRInit
32 parse source . . spec
33 _VREPrimaryWindowPath = ,
34 VRParseFileName( spec, "dpn" ) || ".VRW"
35 _VREPrimaryWindow = ,
36 VRLoad( parent, _VREPrimaryWindowPath )
37 drop parent spec
38 if( _VREPrimaryWindow == "" )then do
39 call VRMessage "", "Cannot load window:" VRError(), ,
40 "Error!"
41 _VREReturnValue = 32000
42 signal _VRELeaveMain
43 end
44
45/* Process events
46*/
47 call Init
48 signal on halt
49 do while( \ VRGet( _VREPrimaryWindow, "Shutdown" ) )
50 _VREEvent = VREvent()
51 interpret _VREEvent
52 end
53_VREHalt:
54 _VREReturnValue = Fini()
55 call VRDestroy _VREPrimaryWindow
56_VRELeaveMain:
57 call VRFini
58exit _VREReturnValue
59
60VRLoadSecondary:
61 __vrlsWait = abbrev( 'WAIT', translate(arg(2)), 1 )
62 if __vrlsWait then do
63 call VRFlush
64 end
65 __vrlsHWnd = VRLoad( VRWindow(), VRWindowPath(), arg(1) )
66 if __vrlsHWnd = '' then signal __vrlsDone
67 if __vrlsWait \= 1 then signal __vrlsDone
68 call VRSet __vrlsHWnd, 'WindowMode', 'Modal'
69 __vrlsTmp = __vrlsWindows.0
70 if( DataType(__vrlsTmp) \= 'NUM' ) then do
71 __vrlsTmp = 1
72 end
73 else do
74 __vrlsTmp = __vrlsTmp + 1
75 end
76 __vrlsWindows.__vrlsTmp = VRWindow( __vrlsHWnd )
77 __vrlsWindows.0 = __vrlsTmp
78 do while( VRIsValidObject( VRWindow() ) = 1 )
79 __vrlsEvent = VREvent()
80 interpret __vrlsEvent
81 end
82 __vrlsTmp = __vrlsWindows.0
83 __vrlsWindows.0 = __vrlsTmp - 1
84 call VRWindow __vrlsWindows.__vrlsTmp
85 __vrlsHWnd = ''
86__vrlsDone:
87return __vrlsHWnd
88
89/*:VRX __VXREXX____APPENDS__
90*/
91__VXREXX____APPENDS__:
92/*
93#append U:\Develop\Samba\guitools-2.0\shared\cltinit.vrs
94#append U:\Develop\Samba\guitools-2.0\shared\inittempdir.vrs
95#append U:\Develop\Samba\guitools-2.0\shared\nlv.vrs
96#append U:\Develop\Samba\guitools-2.0\shared\rexx_md5.vrs
97#append U:\Develop\Samba\guitools-2.0\shared\smbtree.vrs
98*/
99return
100/*:VRX _AddTemplates
101*/
102_AddTemplates:
103
104 VolTplRH = VRMethod('CN_CURRENT', 'AddRecord', , 'First', 'Volume template', '#10:PMWP.DLL' )
105 MpTplRH = VRMethod('CN_CURRENT', 'AddRecord', VolTplRH, 'First', 'Mountpoint template', '#10:PMWP.DLL' )
106return
107
108/*:VRX _ContainersInit
109*/
110_ContainersInit:
111
112 /* Connection details */
113 CD.StatusFH = VRMethod( "CN_CONDET", "AddField", "Icon", "Status" )
114 CD.mpointFH = VRMethod( "CN_CONDET", "AddField", "String", "mpoint" )
115 CD.mpidxFH = VRMethod( "CN_CONDET", "AddField", "String", "index" )
116 CD.workgroupFH = VRMethod( "CN_CONDET", "AddField", "String", "workgroup" )
117 CD.serverFH = VRMethod( "CN_CONDET", "AddField", "String", "server" )
118 CD.shareFH = VRMethod( "CN_CONDET", "AddField", "String", "share" )
119 CD.userFH = VRMethod( "CN_CONDET", "AddField", "String", "user" )
120 CD.passwordFH = VRMethod( "CN_CONDET", "AddField", "String", "password" )
121 CD.spasswordFH = VRMethod( "CN_CONDET", "AddField", "String", "spassword" )
122 CD.masterFH = VRMethod( "CN_CONDET", "AddField", "String", "master" )
123 CD.mtypeFH = VRMethod( "CN_CONDET", "AddField", "String", "mastertype" )
124 CD.memlenFH = VRMethod( "CN_CONDET", "AddField", "String", "memlen" )
125 CD.easupportFH = VRMethod( "CN_CONDET", "AddField", "String", "easupport" )
126 CD.logfileFH = VRMethod( "CN_CONDET", "AddField", "String", "logfile" )
127 CD.loglevelFH = VRMethod( "CN_CONDET", "AddField", "String", "loglevel" )
128 CD.rwFH = VRMethod( "CN_CONDET", "AddField", "String", "readonly" )
129 CD.hashFH = VRMethod( "CN_CONDET", "AddField", "String", "hash" )
130
131 /* Connection details */
132 ok = VRMethod("CN_CONDET", "SetFieldAttr", cd.mpidxfh , "Visible", 0)
133 ok = VRMethod("CN_CONDET", "SetFieldAttr", cd.passwordfh , "Visible", 0)
134 ok = VRMethod("CN_CONDET", "SetFieldAttr", cd.spasswordfh , "Visible", 0)
135 ok = VRMethod("CN_CONDET", "SetFieldAttr", cd.masterFH , "Visible", 0)
136 ok = VRMethod("CN_CONDET", "SetFieldAttr", cd.mtypeFH , "Visible", 0)
137 ok = VRMethod("CN_CONDET", "SetFieldAttr", cd.memlenfh , "Visible", 0)
138 ok = VRMethod("CN_CONDET", "SetFieldAttr", cd.logfilefh , "Visible", 0)
139 ok = VRMethod("CN_CONDET", "SetFieldAttr", cd.loglevelfh , "Visible", 0)
140 ok = VRMethod("CN_CONDET", "SetFieldAttr", cd.hashfh , "Visible", 0)
141
142 ok = VRSet("CN_CONDET", "DetailSort", cd.mpointfh )
143
144 /* NLV columns */
145 ok = VRMethod("CN_CONDET", "SetFieldAttr", cd.statusfh , "Title", strip(NLVGetMessage(67),"T",":"))
146 ok = VRMethod("CN_CONDET", "SetFieldAttr", cd.mpointfh , "Title", strip(NLVGetMessage(27),"T",":"))
147 ok = VRMethod("CN_CONDET", "SetFieldAttr", cd.workgroupfh , "Title", strip(NLVGetMessage(21),"T",":"))
148 ok = VRMethod("CN_CONDET", "SetFieldAttr", cd.serverFH , "Title", strip(NLVGetMessage(19),"T",":"))
149 ok = VRMethod("CN_CONDET", "SetFieldAttr", cd.shareFH , "Title", strip(NLVGetMessage(20),"T",":"))
150 ok = VRMethod("CN_CONDET", "SetFieldAttr", cd.userfh , "Title", strip(NLVGetMessage(25),"T",":"))
151 ok = VRMethod("CN_CONDET", "SetFieldAttr", cd.easupportfh , "Title", strip(NLVGetMessage(68),"T",":"))
152 ok = VRMethod("CN_CONDET", "SetFieldAttr", cd.rwfh , "Title", strip(NLVGetMessage(69),"T",":"))
153return
154/*:VRX _CreateSmbConf
155*/
156_CreateSmbConf:
157 IF options.!debug == 1 THEN SAY time()' '||"_CreateSmbConf started"
158 call lineout samba.!smbconf, '# Samba config file created using EVFSGUI ver. 'word(VRGet("Main","Hinttext"),2)
159 call lineout samba.!smbconf, '# from 'value("USER",,'OS2ENVIRONMENT')'@'value("HOSTNAME",,'OS2ENVIRONMENT')
160 call lineout samba.!smbconf, '# Date: 'date()' 'time()
161 call lineout samba.!smbconf, '[global]'
162 if settings.!network <> '' then do
163 call lineout samba.!smbconf, '09'x||'workgroup = 'settings.!network
164 end
165 else do
166 call lineout samba.!smbconf, '09'x||'workgroup = WORKGROUP'
167 end
168 call lineout samba.!smbconf, '09'x||'log level = 0'
169 ok = stream(samba.!smbconf,'c','close')
170 IF options.!debug == 1 THEN SAY time()' '||"_CreateSmbConf done"
171return
172
173/*:VRX _DialogPopulate
174*/
175_DialogPopulate:
176
177 ok = VRMethod( "CN_smbtree", "GetRecordList", "Visible", "rh." )
178
179 ok = VRMethod("EF_SHARE", "Reset")
180 ok = VRMethod("EF_SERVER", "Reset")
181 ok = VRMethod("EF_NETWORK", "Reset")
182
183 do I = 1 to rh.0
184
185 Userdata = VRMethod("CN_smbtree","GetRecordAttr",rh.I,"Userdata")
186 ResName = VRMethod("CN_smbtree","GetRecordAttr",rh.I,"Caption")
187
188 parse var ResName ResName '0D0A'x .
189 ResName = strip(ResName)
190 parse var userdata ResType '|' .
191
192 select
193 when ResType = "WORKGROUP" then ok = VRMethod("EF_NETWORK","AddString", ResName)
194 when ResType = "SERVER" then ok = VRMethod("EF_SERVER", "AddString", ResName)
195 when ResType = "DISK" then ok = VRMethod("EF_SHARE", "AddString", ResName)
196 otherwise nop
197 end
198 end
199
200return
201
202/*:VRX _GUIInit
203*/
204_GUIInit:
205 CALL VRSet 'Main', 'HelpFile', settings.!helpfile
206
207 CALL NLVSetText 'Main', 'Caption', 1
208 CALL NLVSetText 'DT_CURRENT', 'Caption', 10
209 CALL NLVSetText 'PB_DETACH', 'Caption', 11
210 CALL NLVSetText 'PB_UNMOUNT', 'Caption', 12
211 CALL NLVSetText 'DT_DIALOG', 'Caption', 13
212 CALL NLVSetText 'DT_MOUNT', 'Caption', 14
213
214 CALL NLVSetText 'DT_SERVER', 'Caption', 19
215 CALL NLVSetText 'DT_SHARE', 'Caption', 20
216 CALL NLVSetText 'CHK_MTYPE', 'Caption', 23
217 CALL NLVSetText 'PB_ADVANCED', 'Caption', 24
218 CALL NLVSetText 'DT_USER', 'Caption', 25
219 CALL NLVSetText 'DT_PASSWORD', 'Caption', 26
220 CALL NLVSetText 'DT_MPOINT', 'Caption', 27
221 CALL NLVSetText 'PB_MOUNT', 'Caption', 28
222 CALL NLVSetText 'PB_EDITCANCEL','Caption', 3
223
224 CALL NLVSetText 'PB_AUTOSTART','Caption', 35
225 CALL NLVSetText 'PB_CLOSE', 'Caption', 29
226 CALL NLVSetText 'PB_SAVE', 'Caption', 30
227 CALL NLVSetText 'PB_LOAD', 'Caption', 31
228 CALL NLVSetText 'PB_HELP', 'Caption', 4
229
230 /* Herwig B. */
231 CALL NLVSetText 'MENU_CONTEXT_DETACH', 'Caption', 11
232 CALL NLVSetText 'MENU_CONTEXT_UNMOUNT', 'Caption', 12
233 CALL NLVSetText 'MENU_CONTEXT_EDIT', 'Caption', 32
234 CALL NLVSetText 'MENU_CONTEXT_OPEN', 'Caption', 94
235
236 CALL NLVSetText 'Menu_File', 'Caption', 80
237 CALL NLVSetText 'Menu_Context', 'Caption', 81
238 CALL NLVSetText 'Menu_View', 'Caption', 82
239 CALL NLVSetText 'Menu_Selected', 'Caption', 83
240 CALL NLVSetText 'Menu_Help', 'Caption', 84
241
242 CALL NLVSetText 'Menu_View_Dialog', 'Caption', 85
243 CALL NLVSetText 'Menu_View_SmbTree', 'Caption', 86
244 CALL NLVSetText 'Menu_View_Buttons', 'Caption', 87
245 CALL NLVSetText 'Menu_View_ConDet', 'Caption', 88
246 CALL NLVSetText 'Menu_View_MiniIcons','Caption', 70
247
248 CALL NLVSetText 'Menu_File_Autostart', 'Caption', 35
249 CALL NLVSetText 'Menu_File_Autostart_Activate', 'Caption', 76
250 CALL NLVSetText 'Menu_File_Autostart_Deactivate','Caption', 77
251 CALL NLVSetText 'Menu_File_CLOSE', 'Caption', 29
252 CALL NLVSetText 'Menu_File_SAVE', 'Caption', 30
253 CALL NLVSetText 'Menu_File_LOAD', 'Caption', 31
254 CALL NLVSetText 'Menu_File_SETTINGS', 'Caption', 47
255 CALL NLVSetText 'Menu_File_ADVANCED', 'Caption', 40
256
257 CALL NLVSetText 'Menu_Selected_Connect', 'Caption', 28
258 CALL NLVSetText 'Menu_Selected_Remove', 'Caption', 12
259 CALL NLVSetText 'Menu_Selected_Retry', 'Caption', 90
260 CALL NLVSetText 'Menu_Selected_Info', 'Caption', 92
261 CALL NLVSetText 'Menu_Selected_Default_Workgroup','Caption',75
262
263 CALL NLVSetText 'Menu_Help_Extended', 'Caption', 4
264 CALL NLVSetText 'Menu_Help_About', 'Caption', 91
265
266 CALL NLVSetText 'DT_SMBTREE', 'Caption', 39
267 CALL NLVSetText 'PB_CONNECT', 'Caption', 28
268 CALL NLVSetText 'PB_REFRESH', 'Caption', 38
269
270 CALL NLVSetText 'DT_CONDET', 'Caption', 63
271 CALL NLVSetText 'PB_CONDET_SAVE', 'Caption', 30
272 CALL NLVSetText 'PB_CONDET_LOAD', 'Caption', 31
273
274
275 mtype.0 = 4
276 mtype.1 = NLVGetMessage( 15 )
277 mtype.2 = NLVGetMessage( 16 )
278 mtype.3 = NLVGetMessage( 17 )
279 mtype.4 = NLVGetMessage( 18 )
280 IF (mtype.1 \= '' & mtype.2 \= '' & mtype.3 \= '' & mtype.4 \= '') THEN DO
281 CALL VRMethod CB_MOUNT, 'Clear'
282 CALL VRMethod CB_MOUNT, 'AddStringList', 'mtype.'
283 END
284
285 ok = VRSet("Main","Width", 8200)
286 ok = VRseT("Pict_Throbber","Width", VRMethod( "Screen", "PixelsToTwips", 32 ))
287 ok = VRseT("Pict_Throbber","Height", VRMethod( "Screen", "PixelsToTwips", 32 ))
288
289 /* Setup SmbTree View */
290 ok = VRset("GB_SMBTREE","Painting", 0)
291
292 /* Common margin around controls */
293 margin = ((VRGet("Main", "InteriorLeft") / 3) * 2) + 2
294
295 ok = VRSet("DT_STATUSBAR", "Caption", VRGet("Main", "HintText"))
296 call Main_Resize
297return
298
299/*:VRX _PassiveLoad
300*/
301_PassiveLoad:
302Say "_PassiveLoad started"
303 do cnt = 1 to 255
304 resdata = VRGetIni( "PassiveConnections", cnt, settings.!ini )
305 if resdata = "" then leave
306
307 PARSE Var resdata p_mpoint resource rwFlag
308
309say "resdata ="resdata
310say "p_mpoint ="p_mpoint
311say "resource ="resource
312say "rwFlag ="rwFlag
313
314
315
316/* vfs.!drive = FILESPEC('DRIVE', node )
317 vfs.!mountpoint = STRIP( node, 'T', '\') */
318
319 /* In case we only have a volume we reattach the backslash, otherwise restore will fail */
320 if vfs.!drive = vfs.!mountpoint then vfs.!mountpoint = vfs.!mountpoint||'\'
321
322 p_mpidx = ""
323
324 PARSE VAR resource . 'WORKGROUP=' p_workgroup ';' .
325 PARSE VAR resource . 'SERVER=' p_server ';' .
326 PARSE VAR resource . 'SHARE=' p_share ';' .
327 PARSE VAR resource . 'USER=' p_user ';' .
328 PARSE VAR resource . 'PASSWORD=' p_password ';' .
329 PARSE VAR resource . 'SPASSWORD=' p_spassword ';' .
330 PARSE VAR resource . 'MASTER=' p_master ';' .
331 PARSE VAR resource . 'MASTERTYPE=' p_mtype ';' .
332 PARSE VAR resource . 'MEMLEN=' p_memlen ';' .
333 PARSE VAR resource . 'LOGFILE=' p_logfile ';'.
334 PARSE VAR resource . 'LOGLEVEL=' p_loglevel ';' .
335 PARSE VAR resource . 'EASUPPORT=' p_easupport .
336
337 p_rw = rwFlag
338
339 cd.lastrh = VRMethod("CN_CONDET","AddRecord")
340say "cd.lastrh="cd.lastrh
341
342 ok = VRMethod("CN_CONDET", "SetFieldData", cd.lastrh, cd.mpointFH, p_mpoint, cd.mpidxfh, p_mpidx, cd.workgroupfh, p_workgroup, cd.serverfh, p_server, cd.sharefh, p_share, cd.userfh, p_user)
343 ok = VRMethod("CN_CONDET", "SetFieldData", cd.lastrh, cd.passwordfh, p_password, cd.spasswordfh, p_spassword, cd.masterfh, p_master, cd.mtypefh, p_mtype)
344 ok = VRMethod("CN_CONDET", "SetFieldData", cd.lastrh, cd.memlenfh, p_memlen, cd.easupportfh, p_easupport, cd.logfilefh, p_logfile, cd.loglevelfh, p_loglevel, cd.rwfh, p_rw)
345 ok = VRMethod("CN_CONDET", "SetFieldData", cd.lastrh, cd.statusfh, '#68:PMWP.DLL') /* Passive */
346 ok = VRMethod("CN_CONDET", "SetRecordAttr", cd.lastrh, "Icon", '#68:PMWP.DLL') /* Active */
347
348 hashstr = p_mpoint' 'translate(p_domain)' 'translate(p_server)' 'translate(p_share)' 'p_user' 'p_spassword' 'p_easupport' 'p_rw
349
350 md5 = rexx_md5(hashstr)
351
352 ok = VRMethod("CN_CONDET", "SetFieldData", cd.lastrh, cd.hashfh,md5)
353
354 end
355Say "_PassiveLoad done"
356return
357/*:VRX _PassiveSave
358*/
359_PassiveSave:
360 ok = VRDelIni( "PassiveConnections", "ALL", settings.!ini )
361
362 ok = SysIni(settings.!ini, 'PassiveConnections', 'DELETE:')
363
364 CALL VRMethod 'CN_CONDET', 'GetRecordList', 'All', 'records.'
365 cnt = 0
366 DO i = 1 TO records.0
367
368 if VRMethod( 'CN_CONDET', "GetFieldData", records.i, CD.StatusFH) = '#68:PMWP.DLL' then do
369 cnt = cnt + 1
370 resdata = ""
371 resdata = resdata||VRMethod("CN_CONDET","GetFieldData", records.i, cd.mpointfh)||" "
372 resdata = resdata||'\\'||VRMethod("CN_CONDET","GetFieldData", records.i, cd.workgroupfh)
373 resdata = resdata||':'||VRMethod("CN_CONDET","GetFieldData", records.i, cd.serverfh)
374 resdata = resdata||'\'||VRMethod("CN_CONDET","GetFieldData", records.i, cd.sharefh)
375 resdata = resdata||'@'||VRMethod("CN_CONDET","GetFieldData", records.i, cd.userfh)
376 resdata = resdata||';WORKGROUP='||VRMethod("CN_CONDET","GetFieldData", records.i, cd.workgroupfh)
377 resdata = resdata||';SERVER='||VRMethod("CN_CONDET","GetFieldData", records.i, cd.serverfh)
378 resdata = resdata||';SHARE='||VRMethod("CN_CONDET","GetFieldData", records.i, cd.sharefh)
379 resdata = resdata||';USER='||VRMethod("CN_CONDET","GetFieldData", records.i, cd.userfh)
380 resdata = resdata||';PASSWORD='||VRMethod("CN_CONDET","GetFieldData", records.i, cd.passwordfh)
381 resdata = resdata||';SPASSWORD='||VRMethod("CN_CONDET","GetFieldData", records.i, cd.spasswordfh)
382 resdata = resdata||';MASTER='||VRMethod("CN_CONDET","GetFieldData", records.i, cd.masterfh)
383 resdata = resdata||';MASTERTYPE='||VRMethod("CN_CONDET","GetFieldData", records.i, cd.mtypefh)
384 resdata = resdata||';MEMLEN='||VRMethod("CN_CONDET","GetFieldData", records.i, cd.memlenfh)
385 resdata = resdata||';LOGFILE='||VRMethod("CN_CONDET","GetFieldData", records.i, cd.logfilefh)
386 resdata = resdata||';LOGLEVEL='||VRMethod("CN_CONDET","GetFieldData", records.i, cd.loglevelfh)
387 resdata = resdata||';EASUPPORT='||VRMethod("CN_CONDET","GetFieldData", records.i, cd.easupportfh)
388 resdata = resdata||' '||VRMethod("CN_CONDET","GetFieldData", records.i, cd.rwfh)
389 ok = VRSetIni( "PassiveConnections", cnt, resdata, settings.!ini )
390 END
391 else iterate
392 end
393return
394
395/*:VRX _PrinterInfo
396*/
397_PrinterInfo:
398 /* rh = currently selected record handle */
399 capt = VRMethod("CN_SMBTREE", "GetRecordAttr", rh, "Caption")
400 parse var Capt p_printer '0D0A'x .
401 parRH = VRMethod("CN_SMBTREE", "GetRecordAttr", rh, "Parent")
402 capt = VRMethod("CN_SMBTREE", "GetRecordAttr", Parrh, "Caption")
403 parse var Capt p_prtsrv '0D0A'x .
404 p_prtsrv = strip(p_prtsrv)
405 GparRH = VRMethod("CN_SMBTREE", "GetRecordAttr", Parrh, "Parent")
406 capt = VRMethod("CN_SMBTREE", "GetRecordAttr", GParrh, "Caption")
407 parse var Capt p_workgroup '0D0A'x .
408 DescStr = translate(p_prtsrv'#'p_printer'#'p_workgroup'#')
409say '"'DescStr'"'
410 LDescStr = length(DescStr)
411 ok = SysIni('SYSTEM','PM_SPOOLER_PORT',"All:",'ports')
412
413 FoundPort = 0
414 do I = 1 to ports.0
415 if left(ports.i,3) = 'SMB' then do
416 say ports.I
417 say translate(left(SysIni('SYSTEM','PM_'ports.I,'INITIALIZATION'),LDescStr))
418 say DescStr
419 if translate(left(SysIni('SYSTEM','PM_'ports.I,'INITIALIZATION'),LDescStr)) = DescStr then do
420 OurPort = ports.I
421 FoundPort = 1
422 leave
423 end
424 end
425 end
426
427 if Foundport then do
428 ok = SysIni('SYSTEM','PM_SPOOLER_PRINTER',"All:",'printer')
429
430 do I = 1 to printer.0
431 say printer.I
432 prtsummary = SysINi('SYSTEM','PM_SPOOLER_PRINTER',printer.i)
433 parse var prtsummary port ';'PrinterDriver';'PrinterQueue';' .
434 if port = ourPort then do
435 PrinterName = SysINi('SYSTEM','PM_SPOOLER_PRINTER_DESCR',printer.i)
436 parse var Printername Printername ';' .
437 leave
438 end
439
440 end
441 CALL VRMessage 'Main', PrinterName' ('PrinterQueue') prints to port ' Port' connected to \\'p_workgroup'\'p_prtsrv'\'p_printer, NLVGetMessage( 1 ), 'I'
442 end
443 else do
444 CALL VRMessage 'Main', NLVGetMessage( 62 ), NLVGetMessage( 5 ), 'E'
445 end
446return
447
448/*:VRX _ShowMsg
449*/
450_ShowMsg:
451 /* preliminary implementation - we just do not ignore it anymore -
452 - ShowMsg from smbmon/smbusers shoule become a shared library */
453 ok = VRSet("DT_StatusBar", "Caption", Msg.Text)
454return
455
456/*:VRX _UserCredUpdate
457*/
458_UserCredUpdate:
459 credentials.!username = VRGet("EF_USER","Value")
460 credentials.!password = VRGet("EF_PASSWORD","Value")
461
462 if pos("4OS2", value("COMSPEC",,"OS2ENVIRONMENT")) = 0
463 then UserCred = '--user='Credentials.!username'%'Credentials.!password
464 else UserCred = '--user='Credentials.!username'%%'Credentials.!password
465return
466
467/*:VRX CB_DEBUG_Click
468*/
469CB_DEBUG_Click:
470
471return
472
473/*:VRX CB_LOGGING_Click
474*/
475CB_LOGGING_Click:
476 if VRFileExists(SysBootDrive()'\ndpsmb.dbg') then
477 ok = SysFileDelete(SysBootDrive()'\ndpsmb.dbg')
478 else do
479 call lineout SysBootDrive()'\ndpsmb.dbg','EVFS debug flag file'
480 ok = stream(SysBootDrive()'\ndpsmb.dbg','c','close')
481 end
482
483 CALL VRSet 'CB_LOGGING', 'Set', VRFileExists(SysBootDrive()'\ndpsmb.dbg')
484return
485
486/*:VRX CB_MOUNT_Change
487*/
488CB_MOUNT_Change:
489 IF options.!debug == 1 THEN SAY time()' '||"CB_MOUNT_Change started"
490
491 mount = VRGet("CB_MOUNT", "Selected")
492
493 SELECT
494 WHEN mount == 1 THEN DO
495 CALL VRSet "DT_SHARE", "Visible", 1
496 CALL VRSet "EF_SHARE", "Visible", 1
497 CALL VRSet "DT_SERVER", "Visible", 1
498 CALL VRSet "EF_SERVER", "Visible", 1
499 CALL VRSet "CHK_MTYPE", "Visible", 0
500 CALL NLVSetText "DT_NETWORK", "Caption", 21
501 /* Does not make sense anymore
502 if options.!editmode = 0 Then CALL VRSet "EF_NETWORK", "Value", settings.!network
503 */
504 END
505 WHEN mount == 2 THEN DO
506 CALL VRSet "DT_SHARE", "Visible", 0
507 CALL VRSet "EF_SHARE", "Visible", 0
508 CALL VRSet "DT_SERVER", "Visible", 1
509 CALL VRSet "EF_SERVER", "Visible", 1
510 CALL VRSet "CHK_MTYPE", "Visible", 0
511 CALL NLVSetText "DT_NETWORK", "Caption", 21
512 /* Does not make sense anymore
513 CALL VRSet "EF_NETWORK", "Value", settings.!network
514 */
515 END
516 WHEN mount == 3 THEN DO
517 CALL VRSet "DT_SHARE", "Visible", 0
518 CALL VRSet "EF_SHARE", "Visible", 0
519 CALL VRSet "DT_SERVER", "Visible", 0
520 CALL VRSet "EF_SERVER", "Visible", 0
521 CALL VRSet "CHK_MTYPE", "Visible", 0
522 CALL NLVSetText "DT_NETWORK", "Caption", 21
523 /* Does not make sense anymore
524 CALL VRSet "EF_NETWORK", "Value", settings.!network
525 */
526 END
527 WHEN mount == 4 THEN DO
528 CALL VRSet "DT_SHARE", "Visible", 0
529 CALL VRSet "EF_SHARE", "Visible", 0
530 CALL VRSet "DT_SERVER", "Visible", 0
531 CALL VRSet "EF_SERVER", "Visible", 0
532 CALL VRSet "CHK_MTYPE", "Visible", 1
533 CALL NLVSetText "DT_NETWORK", "Caption", 22
534 /* Does not make sense anymore
535 CALL VRSet "EF_NETWORK", "Value", ""
536 */
537 END
538 END
539 IF options.!debug == 1 THEN SAY time()' '||"CB_MOUNT_Change done"
540
541RETURN
542
543/*:VRX CN_CONDET_Click
544*/
545CN_CONDET_Click:
546 ok = VRset("DT_StatusBar","Caption", VRGet("Main", "HintText"))
547return
548
549/*:VRX CN_CONDET_ContextMenu
550*/
551CN_CONDET_ContextMenu:
552 rh = VRInfo('Record')
553 if VRMethod( 'CN_CONDET', "ValidateRecord", rh) <> 1 then return
554
555 /* This is the place to enable specific context menu entries */
556 ok = VRMethod( "CN_CONDET", "GetRecordList", "All", "records." )
557 ok = VRSet("Menu_Selected_Remove", "Visible", (records.0 <> 0))
558 ok = VRSet("Menu_Selected_Retry", "Visible", (records.0 <> 0))
559
560 if VRMethod( 'CN_CONDET', "GetFieldData", rh, CD.StatusFH) = '#68:PMWP.DLL' then do
561 ok = VRSet("Menu_Selected_Retry", "Enabled",1)
562 ok = VRSet("Menu_Selected_Remove", "Enabled",1)
563 end
564 ok = VRMethod( "Menu_Selected", "Popup", , , "", "" )
565return
566/*:VRX CN_CONDET_DragStart
567*/
568CN_CONDET_DragStart:
569
570 obj = VRInfo( "object" )
571 ok = VRMethod( "CN_CONDET", "GetRecordList", "SourceOrSelected", "selrec." )
572 if selrec.0 = 0 then return
573
574 Icon = VRMethod("CN_CONDET", "GetRecordAttr", selrec.1, "Icon")
575
576 if Icon = "#65:PMWP.DLL" then do /* Printers not supported at the moment */
577 CALL VRMessage 'Main', NLVGetMessage( 62 ), NLVGetMessage( 5 ), 'E'
578 end
579 else call VRMethod obj, 'StartDrag'
580return
581
582/*:VRX CN_CURRENT_Click
583*/
584CN_CURRENT_Click:
585 IF options.!debug == 1 THEN SAY time()' CN_CURRENT_Click started'
586 ok = VRset("DT_StatusBar","Caption", VRGet("Main", "HintText"))
587
588 /* Herwig B. */
589 CALL VRSet "TM_AUTOCLOSE", "ENABLED", 0
590
591 rh = VRInfo('Record')
592 if VRMethod( 'CN_CURRENT', "ValidateRecord", rh) <> 1 then return
593
594 data = VRMethod('CN_CURRENT', 'GetRecordAttr', rh, 'UserData')
595 ok = VRset("DT_StatusBar","Caption", data' - 'VRGet("Main", "HintText"))
596
597 PARSE VAR data p_node ';' p_mounts ';' p_string
598
599 IF options.!debug == 1 THEN do
600 SAY ' data = "'data'"'
601 SAY ' p_node = "'p_node'"'
602 SAY ' p_mounts = "'p_mounts'"'
603 SAY ' p_string = "'p_string'"'
604 end
605/*
606 infotext = p_node
607 DO i = 1 TO p_mounts
608 infotext = infotext ' ['p_string']'
609 END
610*/
611 if p_string = "" then
612 infotext = fs.!name' 'fs.!version
613 else
614 infotext = p_string
615
616/* Herwig B.
617 CALL VRSet 'Main', 'StatusText', infotext */
618 if infotext = "" then infotext = " "
619 CALL VRSet 'CN_CURRENT', 'Caption', infotext
620 CALL VRSet 'CN_CURRENT', 'HintText',infotext
621/* Herwig B. */
622
623 IF p_mounts > 0 THEN DO
624 CALL VRSet 'MENU_CONTEXT_UNMOUNT', 'Visible', 1
625 CALL VRSet 'PB_UNMOUNT', 'Enabled', 1
626 if pos("*",p_string) > 0 | pos(";",p_string) > 0 then CALL VRSet 'MENU_CONTEXT_EDIT', 'Visible', 0
627 else CALL VRSet 'MENU_CONTEXT_EDIT', 'Visible', 1
628 END
629 ELSE DO
630 CALL VRSet 'PB_UNMOUNT', 'Enabled', 0
631 CALL VRSet 'MENU_CONTEXT_UNMOUNT', 'Visible', 0
632 CALL VRSet 'MENU_CONTEXT_EDIT', 'Visible', 0
633 END
634
635 parent = VRMethod('CN_CURRENT', 'GetRecordAttr', rh, 'Parent')
636
637 IF parent == '' THEN DO
638 CALL VRSet 'PB_DETACH', 'Enabled', 1
639 CALL VRSet 'MENU_CONTEXT_DETACH', 'Visible', 1
640 END
641 ELSE DO
642 CALL VRSet 'PB_DETACH', 'Enabled', 0
643 CALL VRSet 'MENU_CONTEXT_DETACH', 'Visible', 0
644 END
645 /* Herwig B. */
646 IF options.!debug == 1 THEN SAY time()' CN_CURRENT_Click done'
647RETURN
648
649/*:VRX CN_CURRENT_ContextMenu
650*/
651CN_CURRENT_ContextMenu: /* PROCEDURE EXPOSE existrec. options. fs. */
652 /* Herwig B. */
653 CALL VRSet "TM_AUTOCLOSE", "ENABLED", 0
654
655 rh = VRInfo('Record')
656
657 /* Herwig B. */
658 /* we have to check whether the record still exists because under certain
659 circumstances the event routine is executed after the record was already
660 removed */
661 if VRMethod( 'CN_CURRENT', "ValidateRecord", rh) <> 1 then return
662 /* Herwig B. */
663
664 data = VRMethod('CN_CURRENT', 'GetRecordAttr', rh, 'UserData')
665 PARSE VAR data p_node ';' p_mounts ';' p_string
666
667 IF options.!debug == 1 THEN SAY time()' '||data
668 IF options.!debug == 1 THEN SAY time()' '||p_node
669 IF options.!debug == 1 THEN SAY time()' '||p_mounts
670 IF options.!debug == 1 THEN SAY time()' '||p_string
671/*
672 infotext = p_node
673 DO i = 1 TO p_mounts
674 infotext = infotext ' ['p_string']'
675 END
676*/
677 if p_string = "" then
678 infotext = fs.!name' 'fs.!version
679 else
680 infotext = p_string
681
682/* Herwig B.
683 CALL VRSet 'Main', 'StatusText', infotext */
684 if infotext = "" then infotext = " "
685 CALL VRSet 'CN_CURRENT', 'Caption', infotext
686 CALL VRSet 'CN_CURRENT', 'HintText',infotext
687/* Herwig B. */
688
689 CALL VRSet 'MENU_CONTEXT_OPEN', 'Visible', 1
690
691 IF p_mounts > 0 THEN DO
692
693 CALL VRSet 'MENU_CONTEXT_UNMOUNT', 'Visible', 1
694 CALL VRSet 'PB_UNMOUNT', 'Enabled', 1
695 if pos("*",p_string) > 0 | pos(";",p_string) > 0 then CALL VRSet 'MENU_CONTEXT_EDIT', 'Visible', 0
696 else CALL VRSet 'MENU_CONTEXT_EDIT', 'Visible', 1
697 END
698 ELSE DO
699 CALL VRSet 'PB_UNMOUNT', 'Enabled', 0
700 CALL VRSet 'MENU_CONTEXT_UNMOUNT', 'Visible', 0
701 CALL VRSet 'MENU_CONTEXT_EDIT', 'Visible', 0
702 END
703
704 parent = VRMethod('CN_CURRENT', 'GetRecordAttr', rh, 'Parent')
705
706 IF parent == '' THEN DO
707 CALL VRSet 'PB_DETACH', 'Enabled', 1
708 CALL VRSet 'MENU_CONTEXT_DETACH', 'Visible', 1
709 END
710 ELSE DO
711 CALL VRSet 'PB_DETACH', 'Enabled', 0
712 CALL VRSet 'MENU_CONTEXT_DETACH', 'Visible', 0
713 END
714 /* Herwig B. */
715
716 ok = VRMethod( "Menu_Context", "Popup", , , "", "" )
717return
718
719/*:VRX CN_CURRENT_DoubleClick
720*/
721CN_CURRENT_DoubleClick:
722 call beep 880, 20
723say "double click"
724 rh = VRInfo('Record')
725 /* Herwig B. */
726 /* we have to check whether the record still exists because under certain
727 circumstances the event routine is executed after the record was already
728 removed */
729 if VRMethod( 'CN_CURRENT', "ValidateRecord", rh) <> 1 then return
730 /* Herwig B. */
731
732 data = VRMethod('CN_CURRENT', 'GetRecordAttr', rh, 'UserData')
733 IF options.!debug == 1 THEN SAY time()' '||"data = "data
734return
735
736/*:VRX CN_CURRENT_DragDrop
737*/
738CN_CURRENT_DragDrop:
739say "settings.!network = "settings.!network
740 p_workgroup = ''
741 p_server = ''
742 p_share = ''
743
744 srcFile = VRInfo( "SourceFile" )
745 srcCtn = VRInfo( "SourceObject" )
746 srcRec = VRInfo( "SourceRecord" )
747 trgCtn = VRInfo( "TargetObject" )
748 trgRec = VRInfo( "TargetRecord" )
749
750say "srcFile = '"srcFile"'"
751say "srcCtn = '"srcCtn"'"
752say "srcRec = '"srcRec"'"
753say "TrgCtn = '"trgCtn"'"
754say "TrgRec = '"trgRec"'"
755
756 if srcFile <> "" then do /* A file was dropped onto the conatainer - load it */
757 if translate(VRParseFileName(srcFile,'E')) <> translate(fs.!profileext) then do
758 buttons.0 = 1
759 buttons.1 = NLVGetMessage(9)
760 ok = VRMessage('Main', "TITEL" , "TEXT", 'E','buttons.')
761 end
762 else do
763 options.!autoload = 1
764 Profile = srcFile
765 call PB_LOAD_Click
766 end
767 return
768 end
769
770 say VRGet(srcCtn,'Name')
771
772 ok = VRMethod("CB_MOUNT", "GetStringList", "ShareLevels." )
773
774 if VRGet(srcCtn,'Name') = "CN_CONDET" then do
775 p_mpoint = VRMethod("CN_CONDET", "GetFieldData", srcRec, CD.MpointFH)
776
777 p_workgroup = VRMethod("CN_CONDET", "GetFieldData", srcRec, CD.WorkgroupFH)
778 p_server = VRMethod("CN_CONDET", "GetFieldData", srcRec, CD.ServerFH)
779 p_share = VRMethod("CN_CONDET", "GetFieldData", srcRec, CD.ShareFH)
780 p_user = VRMethod("CN_CONDET", "GetFieldData", srcRec, CD.UserFH)
781 p_password = x2c(VRMethod("CN_CONDET", "GetFieldData", srcRec, CD.SpasswordFH))
782
783 ShareLevel = 1
784 if p_share = "" then ShareLevel = 2
785 if p_server = "" then ShareLevel = 3
786 if p_workgroup = "" then ShareLevel = 4
787
788 ok = VRSet( "CB_MOUNT", "Selected", Sharelevel )
789 ok = VRset("CB_MOUNT" , "Value", mtype.sharelevel)
790
791 ok = VRset("EF_SERVER" , "Value", p_server)
792 ok = VRset("EF_SHARE" , "Value", p_share)
793 ok = VRset("EF_NETWORK", "Value", p_workgroup)
794 ok = VRset("EF_USER" , "Value", p_user)
795 ok = VRset("EF_PASSWORD", "Value", p_password)
796
797 parse var p_mpoint p_drv '\' p_dir
798
799 p_dir = strip(p_dir,'T','\')
800
801 ok = VRset("CB_DRIVES" , "Value", p_drv)
802 ok = VRset("EF_DIRECTORY" , "Value", p_dir)
803 end
804 else do /* SmbTree */
805 DragCapt = VRMethod(srcCtn, "GetRecordAttr", srcRec, "Caption")
806 parRH = VRMethod(srcCtn, "GetRecordAttr", srcRec, "Parent")
807
808 if parRH = "" then do /* A workgroup was dragged */
809 say "Workgroup dragged!"
810 parse var DragCapt p_workgroup '0D0A'x .
811 p_workgroup = strip(p_workgroup)
812 ok = VRSet("EF_NETWORK","Value",strip(p_workgroup))
813 ok = VRSet("EF_SERVER","Value","")
814 ok = VRSet("EF_SHARE","Value","")
815
816 ShareLevel = 3
817 end
818 else do
819 ParDragCapt = VRMethod(srcCtn, "GetRecordAttr", ParRH, "Caption")
820 GParRH = VRMethod(srcCtn, "GetRecordAttr", ParRH, "Parent")
821
822 if GParRH = "" then do /* A server was dragged */
823 say "Server dragged!"
824 parse var ParDragCapt p_workgroup '0D0A'x .
825 ok = VRSet("EF_NETWORK","Value",strip(p_workgroup))
826 p_workgroup = strip(p_workgroup)
827
828 parse var DragCapt p_server '0D0A'x .
829 p_server = strip(p_server)
830 ok = VRSet("EF_SERVER","Value",strip(p_server))
831 ok = VRSet("EF_Share","Value","")
832
833 ShareLevel = 2
834 end
835 else do /* A share was dragged */
836 say "Share dragged!"
837 GParDragCapt = VRMethod(srcCtn, "GetRecordAttr", GParRH, "Caption")
838
839 parse var GParDragCapt p_workgroup '0D0A'x .
840 p_workgroup = strip(p_workgroup)
841 ok = VRSet("EF_NETWORK","Value",strip(p_workgroup))
842
843 parse var ParDragCapt p_server '0D0A'x .
844 p_server = strip(p_server)
845 ok = VRSet("EF_SERVER","Value",strip(p_server))
846
847 parse var DragCapt p_share '0D0A'x .
848 p_share = strip(p_share)
849 ok = VRSet("EF_Share","Value",strip(p_share))
850
851 ShareLevel = 1
852 end
853 end
854 end
855
856 say 'p_workgroup = "'p_workgroup'"'
857 say 'p_server = "'p_server'"'
858 say 'p_share = "'p_share'"'
859
860 ok = VRSet( "CB_MOUNT", "Selected", Sharelevel )
861
862 settings.!network = VRGet("EF_NETWORK","Value")
863 call CB_MOUNT_Change
864
865 if trgRec = "" then do
866 ok = VRSet("CB_DRIVES","Value", "")
867 ok = VRSet("EF_DIRECTORY","Value", "")
868
869 window = VRLoadSecondary( "SW_MOUNTPOINT", "W" )
870
871 if VRGet("CB_DRIVES","Value") = "" then return
872 end
873 else do
874
875 TargetString = VRMethod(trgCtn, "GetRecordAttr", trgRec, "Caption")
876
877 parTrgRH = VRMethod(trgCtn, "GetRecordAttr", trgRec, "Parent")
878
879 do while parTrgRH <> ""
880 partrgCapt = VRMethod(trgCtn, "GetRecordAttr", partrgRH, "Caption")
881 TargetString = partrgCapt||'\'||TargetString
882 parTrgRH = VRMethod(trgCtn, "GetRecordAttr", partrgRH , "Parent")
883 end
884 say 'TargetString = "'TargetString'"'
885 ok = VRSet("CB_DRIVES","Value", left(TargetString,2))
886 ok = VRSet("EF_DIRECTORY","Value", substr(TargetString,4))
887 window = VRLoadSecondary( "SW_MOUNTPOINT", "W" )
888 if VRGet("CB_DRIVES","Value") = "" then return
889 end
890 window = VRLoadSecondary( "SW_LOGIN", "W" )
891 call PB_MOUNT_CLICK
892
893 if VRGet(srcCtn,'Name') = "CN_CONDET" & VRMethod( 'CN_CONDET', "ValidateRecord", srcRec) = 1 then do
894 if VRMethod("CN_CONDET", "GetRecordAttr", srcRec, "Icon") = '#68:PMWP.DLL' then ok = VRMethod( "CN_CONDET", "RemoveRecord", srcRec)
895 end
896return
897
898/*:VRX CN_SMBTREE_Click
899*/
900CN_SMBTREE_Click:
901 ok = VRset("DT_StatusBar","Caption", VRGet("Main", "HintText"))
902 rh = VRInfo('Record')
903 if VRMethod( 'CN_SMBTREE', "ValidateRecord", rh) <> 1 then return
904 udata = VRMethod('CN_smbtree', 'GetRecordAttr', rh, 'UserData')
905 parse var udata udatatype'|'udatamsg
906say udatatype
907say udatamsg
908 ok = VRset("DT_Statusbar", "Caption", udatamsg)
909 drop udatatype
910 drop udatamsg
911
912return
913
914/*:VRX CN_SMBTREE_ContextMenu
915*/
916CN_SMBTREE_ContextMenu:
917 rh = VRInfo('Record')
918 if VRMethod( 'CN_SMBTREE', "ValidateRecord", rh) <> 1 then return
919
920 Icon = VRMethod("CN_SMBTREE", "GetRecordAttr", rh, "Icon")
921
922 ok = VRset("MItem_64","Visible", (Icon = "#35:PMWP.DLL")|(Icon = "#62:PMWP.DLL"))
923 ok = VRset("Menu_Selected_Info","Visible", (Icon = "#35:PMWP.DLL"))
924 ok = VRset("Menu_Selected_Default_Workgroup","Visible", (Icon = "#62:PMWP.DLL"))
925
926 if Icon = "#65:PMWP.DLL" then do /* Printer installation not supported at the moment */
927 /* call _Printerinfo */
928 CALL VRMessage 'Main', NLVGetMessage( 62 ), NLVGetMessage( 5 ), 'E'
929 return
930 end
931
932 /* This is the place to enable specific context menu entries */
933 ok = VRMethod( "CN_SMBTREE", "GetRecordList", "All", "records." )
934 ok = VRSet("Menu_Selected_Connect", "Visible", (records.0 <> 0 & (Icon <> "#61:PMWP.DLL") ))
935
936 ok = VRMethod( "Menu_Selected", "Popup", , , "", "" )
937return
938
939/*:VRX CN_SMBTREE_DragStart
940*/
941CN_SMBTREE_DragStart:
942
943 obj = VRInfo( "object" )
944 ok = VRMethod( "CN_SMBTREE", "GetRecordList", "SourceOrSelected", "selrec." )
945 if selrec.0 = 0 then return
946
947 Icon = VRMethod("CN_SMBTREE", "GetRecordAttr", selrec.1, "Icon")
948
949 if Icon = "#65:PMWP.DLL" then do /* Printers not supported at the moment */
950 CALL VRMessage 'Main', NLVGetMessage( 62 ), NLVGetMessage( 5 ), 'E'
951 end
952 else call VRMethod obj, 'StartDrag'
953return
954
955/*:VRX CreateObject
956*/
957CreateObject: procedure
958 Parse Arg Class, Title, Location, Setup, Collision
959 /* Say 'Creating ['Title']' */
960 rc = SysCreateObject( Class, Title, Location, Setup, Collision )
961 If rc <> 1 Then do
962 Msg.Text = ' > failed to create ['Title' | 'Class'] at location ['Location']'
963 Msg.Type = 'Error'
964 say Msg.Text
965 end
966return rc
967/*:VRX DT_STATUSBAR_ContextMenu
968*/
969DT_STATUSBAR_ContextMenu:
970 ok = VRSet("DT_STATUSBAR","Caption", VRGet("Main", "HintText"))
971return
972
973/*:VRX EF_PASSWORD1_KeyPress
974*/
975EF_PASSWORD1_KeyPress:
976 obj = VRInfo( "Object" )
977 keystr = VRGet( obj, "KeyString" )
978/* say keystr */
979 select
980 when keystr = "{Enter}" then call PB_LOGIN_OK_Click
981 when keystr = "{Newline}" then call PB_LOGIN_OK_Click
982 when keystr = "{Esc}" then call PB_LOGIN_CANCEL_Click
983 otherwise nop
984 end
985return
986
987/*:VRX EF_PASSWORD_Change
988*/
989EF_PASSWORD_Change:
990 call _UserCredUpdate
991return
992
993/*:VRX EF_SERVER_Change
994*/
995EF_SERVER_Change:
996 Now = VRGet("EF_SERVER","value")
997 if Now = "" then return
998 ok = SysSleep(1)
999 if Now <> VRGet("EF_SERVER","value") then return
1000
1001 /* Do nothing for incomplete IP addresses */
1002 if strip(translate(VRGet("EF_SERVER","value"),copies(' ',11),'01234567890.')) = "" & length(VRGet("EF_SERVER","value")) < 7 then return
1003
1004 ok = VRMethod( "CN_smbtree", "GetRecordList", "Visible", "rh." )
1005
1006 FoundServer = 0
1007
1008 do I = 1 to rh.0
1009
1010 Userdata = VRMethod("CN_smbtree","GetRecordAttr",rh.I,"Userdata")
1011 ResName = VRMethod("CN_smbtree","GetRecordAttr",rh.I,"Caption")
1012 ParentRH = VRMethod("CN_smbtree","GetRecordAttr",rh.I,"Parent")
1013
1014 parse var ResName ResName '0D0A'x .
1015 ResName = strip(ResName)
1016 parse var userdata ResType '|' .
1017
1018 if VRGet("EF_SERVER","value") = ResName then do /* we found the server the field was changed to */
1019 /* Workgroup properly */
1020 if ParentRH = "" then do
1021 ok = VRSet("EF_NETWORK", "Value", "") /* The workgroup might be unknown at this moment */
1022 end
1023 else do
1024 ok = VRSet("EF_NETWORK", "Value", VRMethod("CN_smbtree","GetRecordAttr",ParentRH,"Caption"))
1025 end
1026
1027 /* clear shares */
1028 ok = VRMethod("EF_SHARE", "Reset")
1029 ok = VRset("EF_SHARE","Value", "")
1030
1031 do J = 1 to rh.0 /* populate shares with valid entries */
1032
1033 Userdata = VRMethod("CN_smbtree","GetRecordAttr",rh.J,"Userdata")
1034 ResName = VRMethod("CN_smbtree","GetRecordAttr",rh.J,"Caption")
1035 ParentRH = VRMethod("CN_smbtree","GetRecordAttr",rh.J,"Parent")
1036
1037 parse var ResName ResName '0D0A'x .
1038 ResName = strip(ResName)
1039 parse var userdata ResType '|' .
1040
1041 if ParentRH = rh.I then do /* we found a share belonging to our server */
1042 if ResType = "DISK" then ok = VRMethod("EF_SHARE","AddString", ResName)
1043 end
1044 end
1045 FoundServer = 1
1046 leave
1047 end
1048 end
1049 if Foundserver = 0 then do
1050 machine = VRGet("EF_SERVER","value")
1051 smbtree.!machine = VRMethod( "CN_smbtree", "AddRecord",,, machine)
1052 /* We make any machine as sleeping initially */
1053 ok = VRMethod( "CN_smbtree", "SetRecordAttr", smbtree.!machine, "Icon","#61:PMWP.DLL")
1054 ok = VRMethod( "CN_smbtree", "SetRecordAttr", smbtree.!machine, "ReadOnly", 1)
1055 ok = VRMethod( "CN_smbtree", "SetFieldData", smbtree.!machine, NBFH, machine)
1056 call _RefreshShares
1057 end
1058return
1059
1060/*:VRX EF_USER1_KeyPress
1061*/
1062EF_USER1_KeyPress:
1063 obj = VRInfo( "Object" )
1064 keystr = VRGet( obj, "KeyString" )
1065/* say keystr */
1066 select
1067 when keystr = "{Enter}" then ok = VRMethod( "EF_Password1", "SetFocus" )
1068 when keystr = "{Newline}" then ok = VRMethod( "EF_Password1", "SetFocus" )
1069 when keystr = "{Esc}" then call PB_LOGIN_CANCEL_Click
1070 otherwise nop
1071 end
1072return
1073
1074/*:VRX EF_USER_Change
1075*/
1076EF_USER_Change:
1077 call _UserCredUpdate
1078return
1079
1080/*:VRX Fini
1081*/
1082Fini:
1083 window = VRWindow()
1084 call VRSet window, "Visible", 0
1085 drop window
1086return 0
1087
1088/*:VRX GetChildren
1089*/
1090GetChildren: PROCEDURE EXPOSE existrec. exc options. fs. cd. samba.
1091 IF options.!debug == 1 THEN SAY time()' GetChildren started'
1092 PARSE ARG node, parec
1093
1094 dyn = "CALL "fs.!prefix"RxGetMount node, 'info.', 'points.', 'res.'"
1095 IF options.!debug == 1 THEN SAY ' Dyn code: 'dyn
1096 interpret dyn; drop dyn
1097
1098
1099 IF info.2 > 0 THEN icon = '#64:PMWP.DLL'
1100 ELSE icon = '#68:PMWP.DLL'
1101 rh = VRMethod('CN_CURRENT', 'AddRecord', parec, 'Last', info.0, icon )
1102 IF rh == '' THEN RETURN
1103
1104 exc = exc + 1
1105 existrec.exc = rh
1106 userdata = node';'info.2
1107 DO i = 1 TO res.0
1108 userdata = ParseResourceData( userdata, res.i )
1109 END
1110 if userdata = "UNKNOWN" then ok = VRMethod('CN_CURRENT', 'RemoveRecord', rh)
1111 else CALL VRMethod 'CN_CURRENT', 'SetRecordAttr', rh, 'UserData', userdata
1112
1113 DO i = 1 TO points.0
1114 childnode = node || points.i || '\'
1115 CALL GetChildren childnode, rh
1116 END
1117 IF options.!debug == 1 THEN SAY time()' GetChildren done'
1118RETURN
1119
1120/*:VRX GetMountPoints
1121*/
1122GetMountPoints: PROCEDURE EXPOSE existrec. options. fs. cd. samba.
1123 IF options.!debug == 1 THEN SAY time()' GetMountPoints started'
1124 CALL VRSet 'CN_CURRENT', 'Painting', 0
1125/* IF options.!debug == 1 THEN SAY time()' '||"GetMountPoints: SysDriveMap(USED) started" */
1126 drvs = SysDriveMap('C:', 'USED') /* was "REMOTE" */
1127/* IF options.!debug == 1 THEN SAY time()' '||"GetMountPoints: SysDriveMap(USED) done" */
1128 ac = 0
1129 DO i = 1 TO WORDS( drvs )
1130 fs = TRANSLATE( SysFileSystemType( WORD( drvs, i )))
1131 IF fs == fs.!fileSystemtype THEN DO
1132 ac = ac + 1
1133 attached.ac = WORD( drvs, i )
1134 END
1135 END
1136 attached.0 = ac
1137
1138 exc = 0
1139 DO i = 1 TO attached.0
1140 node = attached.i'\'
1141
1142 CALL VRMethod 'CB_DRIVES', 'AddString', attached.i
1143
1144 dyn = "CALL "fs.!prefix"RxGetMount node, 'info.', 'points.', 'res.'"
1145 IF options.!debug == 1 THEN SAY ' Dyn code: 'dyn
1146 interpret dyn; drop dyn
1147
1148 IF info.2 > 0 THEN icon = '#16:PMWP.DLL'
1149 ELSE icon = '#70:PMWP.DLL'
1150
1151 rh = VRMethod('CN_CURRENT', 'AddRecord',, 'Last', attached.i, icon )
1152 IF rh == '' THEN ITERATE
1153
1154 exc = exc + 1
1155 existrec.exc = rh
1156 userdata = node';'info.2
1157 DO j = 1 TO res.0
1158 userdata = ParseResourceData( userdata, res.j )
1159 END
1160/* IF options.!debug == 1 THEN say ' "'attached.i'" "'userdata'"' */
1161 CALL VRMethod 'CN_CURRENT', 'SetRecordAttr', rh, 'UserData', userdata
1162 CALL VRMethod 'CN_CURRENT', 'SetRecordAttr', rh, 'Expanded', 1
1163
1164 DO j = 1 TO points.0
1165 childnode = node || points.j || '\'
1166 CALL GetChildren childnode, rh
1167 END
1168
1169 END
1170 existrec.0 = exc
1171 CALL VRSet 'CN_CURRENT', 'Painting', 1
1172 IF options.!debug == 1 THEN SAY time()' '||"GetMountPoints done"
1173RETURN
1174
1175/*:VRX Halt
1176*/
1177Halt:
1178 signal _VREHalt
1179return
1180
1181/*:VRX Init
1182*/
1183Init:
1184/* Herwig */
1185/* CALL VRSet 'Console', 'WindowListTitle', '' */
1186
1187 window = VRWindow()
1188 call VRSet window, "Visible", 0
1189 call VRMethod window, "Activate"
1190 drop window
1191
1192RETURN
1193
1194/*:VRX LoadFileSysFuncs
1195*/
1196LoadFileSysFuncs:
1197 IF options.!debug == 1 THEN SAY time()' LoadFileSysFuncs() started'
1198 Fatal = 1
1199 RestartCount = 0
1200 FoundEVFS = 1
1201 FoundND = 1
1202
1203 if SysSearchPath("PATH", "EVFSCTL.EXE") = "" then do
1204 FoundEVFS = 0
1205 ForceNDFS = 1
1206 end
1207
1208CtlRestart:
1209 if \ForceNDFS then signal NoNetDrive
1210
1211ForceNDFS:
1212 IF options.!debug == 1 THEN SAY ' NDFS check entered'
1213 call RxFuncAdd 'NdRxLoadFuncs', 'NDCALLS', 'NdRxLoadFuncs'
1214 SIGNAL ON SYNTAX NAME NoNetdrive
1215 call NdRxLoadFuncs
1216 FoundND = 1
1217 SIGNAL OFF SYNTAX
1218 fs.!prefix = 'ND'
1219 fs.!fileSystemtype = "NDFS32"
1220 fs.!profileext = "ndc"
1221 signal CommonToBothFS
1222NoNetdrive:
1223 IF options.!debug == 1 THEN SAY ' NDFS not found'
1224 CALL RxFuncAdd 'EvfsRxLoadFuncs', 'EVFSCALL.DLL', 'EvfsRxLoadFuncs'
1225 SIGNAL ON SYNTAX NAME NoEVFSCALL
1226 CALL EvfsRxLoadFuncs
1227 FoundEVFS = 1
1228 SIGNAL OFF SYNTAX
1229 fs.!prefix = 'EVFS'
1230 fs.!fileSystemtype = "EVFS"
1231 fs.!profileext = "evp"
1232CommonToBothFS:
1233 IF options.!debug == 1 THEN SAY ' Common version check'
1234 dyn = "fsstat = "fs.!prefix"RxQueryIFS()"
1235 IF options.!debug == 1 THEN SAY ' Dyn code: '||dyn
1236 interpret dyn; drop dyn
1237 IF options.!debug == 1 THEN SAY ' Dyn res fsstat = '||fsstat
1238 if fsstat = 252 then do
1239 dyn = "Found"fs.!prefix" = 0"
1240 interpret dyn
1241 end
1242 if word(fsstat,1) = '0' then do
1243 PARSE VAR fsstat '0 'fsname fsver fsctl .
1244 fs.!name = fsname
1245 fs.!version = fsver
1246
1247 IF options.!debug == 1 THEN DO
1248 say ' fs.!prefix = 'fs.!prefix
1249 say ' fs.!name = 'fs.!Name
1250 say ' Version = 'fsver
1251 say ' fsctl = 'fsctl
1252 end
1253 end
1254 else do
1255 if FoundND = 0 & FoundEVFS = 0 then do
1256 CALL VRMessage 'Main', 'FATAL: Neither EVFS nor Netdrive found: 'fs.!prefix'RxQueryIFS()='fsstat, NLVGetMessage( 5 ), 'E'
1257 signal Halt
1258 end
1259 signal ForceNDFS
1260 end
1261 IF fsctl \= 1 THEN DO
1262 if ReStartCount = 0 then do
1263 'detach 'fs.!prefix'ctl.exe'
1264 RestartCount = 1
1265 ok = SysSleep(1)
1266 signal CtlRestart
1267 end
1268 else do
1269 CALL VRMessage 'Main', NLVGetMessage( 101 ), NLVGetMessage( 5 ), 'E'
1270 signal Halt
1271 end
1272 END
1273
1274 Fatal = 0
1275 IF options.!debug == 1 THEN SAY time()' LoadFileSysFuncs() done'
1276return
1277
1278/*:VRX LoadSettings
1279*/
1280LoadSettings: PROCEDURE EXPOSE settings. options. fs. advanced. samba. ShowHidden margin
1281 IF options.!debug == 1 THEN SAY time()' LoadSettings started'
1282
1283 /* Locate the profile.
1284 */
1285 os2_ini = VALUE('USER_INI',,'OS2ENVIRONMENT')
1286 inipath = VRParseFilePath( os2_ini, 'DP')
1287 IF inipath == '' THEN inipath = SysBootDrive() || '\OS2'
1288
1289 settings.!ini = inipath'\evfsgui.ini'
1290 IF options.!debug == 1 THEN SAY ' EVFSGUI INIfile = "'settings.!ini'"'
1291
1292 IF STREAM( settings.!ini, 'C', 'QUERY EXISTS') == '' THEN DO
1293 IF options.!debug == 1 THEN say " First start!"
1294 settings.!network = ""
1295 settings.!buttonson = 1
1296 settings.!smbtreeon = 1
1297 advanced.!browseimme = 1
1298 advanced.!savepassive = 0
1299 advanced.!broadcast = 0
1300 advanced.!bigicons = 1
1301
1302 ShowHidden = 0
1303
1304 CALL VRSet VRWindow(), 'Height', 7576
1305 CALL VRSet VRWindow(), 'Width', 8200
1306 CALL VRSet "SPLIT_MAIN", 'Left', 2915
1307 CALL VRMethod VRWindow(), 'CenterWindow'
1308 call Menu_View_Buttons_Click
1309 call Menu_View_SmbTree_Click
1310 ok = VRset("GB_SMBTREE","Painting", 1)
1311 ok = VRset("GB_SMBTREE","Visible", 1)
1312
1313 call VRSet 'Main', 'Visible', 1
1314 call Main_Resize
1315 END
1316 ELSE DO
1317
1318 /* Load window position settings.
1319 */
1320 settings.!x = VRGetIni('Settings', 'X', settings.!ini, 'NoClose')
1321 settings.!y = VRGetIni('Settings', 'Y', settings.!ini, 'NoClose')
1322 IF settings.!x == '' THEN settings.!x = -1
1323 IF settings.!y == '' THEN settings.!y = -1
1324
1325 settings.!h = VRGetIni('Settings', 'H', settings.!ini, 'NoClose')
1326 settings.!w = VRGetIni('Settings', 'W', settings.!ini, 'NoClose')
1327 IF settings.!h == '' THEN settings.!h = -1
1328 IF settings.!w == '' THEN settings.!w = -1
1329
1330 settings.!s = VRGetIni('Settings', 'S', settings.!ini, 'NoClose')
1331 IF settings.!s == '' THEN settings.!s = -1
1332
1333 /* Herwig B. */
1334 settings.!curbcolor = VRGetIni('Settings', 'TitleBarBackground', settings.!ini, 'NoClose')
1335 settings.!curfcolor = VRGetIni('Settings', 'TitleBarForeground', settings.!ini, 'NoClose')
1336 IF (settings.!curbcolor = '' | settings.!curbcolor = '<default>') THEN settings.!curbcolor = 'SystemActiveTitle'
1337 IF (settings.!curfcolor = '' | settings.!curfcolor = '<default>') THEN settings.!curfcolor = 'SystemActiveTitleText'
1338
1339 settings.!buttonson = VRGetIni('Settings', 'ButtonsOn', settings.!ini, 'NoClose')
1340 IF settings.!buttonson = "" then settings.!buttonson = 1
1341
1342 settings.!smbtreeon = VRGetIni('Settings', 'SmbtreeOn', settings.!ini, 'NoClose')
1343 IF settings.!smbtreeon = "" then settings.!smbtreeon = 0
1344
1345 settings.!dialogon = VRGetIni('Settings', 'DialogOn', settings.!ini, 'NoClose')
1346 IF settings.!dialogon = "" then settings.!dialogon = 1
1347
1348 settings.!condeton = VRGetIni('Settings', 'ConDetOn', settings.!ini, 'NoClose')
1349 IF settings.!condeton = "" then settings.!condeton = 1
1350
1351 /* Load network - does not make sense anymore
1352 settings.!network = VRGetIni('Settings', 'Network', settings.!ini, 'NoClose')
1353 IF settings.!network == '' THEN settings.!network = '' */
1354 settings.!network = ''
1355
1356 if \VRFileExists( samba.!smbconf ) then call _CreateSmbConf
1357
1358 /* Load font settings.
1359 */
1360 IF VRFileExists( SysBootDrive() || '\OS2DBCS') == 1 THEN
1361 default_font = '9.WarpSans Combined'
1362 ELSE
1363 default_font = '9.WarpSans'
1364 settings.!cfont = VRGetIni('Settings', 'ContainerFont', settings.!ini, 'NoClose')
1365 settings.!wfont = VRGetIni('Settings', 'WindowFont', settings.!ini, 'NoClose' )
1366 IF settings.!cfont == '' THEN settings.!cfont = default_font
1367 IF settings.!wfont == '' THEN settings.!wfont = default_font
1368
1369 advanced.!browseauth = VRGetIni('Settings', 'BrowseAuth', settings.!ini, 'NoClose')
1370 IF advanced.!browseauth == '' THEN advanced.!browseauth = 0
1371
1372 advanced.!browseimme = VRGetIni('Settings', 'BrowseImme', settings.!ini)
1373 IF advanced.!browseimme == '' THEN advanced.!browseimme = 1
1374
1375 advanced.!debug = VRGetIni('Settings', 'Debug', settings.!ini)
1376 IF advanced.!debug == '' THEN advanced.!debug = 0 /* Turn off debug by default for release builds */
1377
1378 /* This is a hack and should be reworked! - using several variables for debug is bad! */
1379 options.!debug = advanced.!debug
1380 IF options.!debug <> 1 THEN ok = VRRedirectStdIO("OFF")
1381
1382 advanced.!alwaysmp = VRGetIni('Settings', 'AlwaysMP', settings.!ini)
1383 IF advanced.!alwaysmp == '' THEN advanced.!alwaysmp = 1
1384
1385 advanced.!special = VRGetIni('Settings', 'SpecialShares', settings.!ini)
1386 IF advanced.!special == '' THEN advanced.!special = 0
1387
1388 advanced.!bigicons = VRGetIni('Settings', 'BigIcons', settings.!ini)
1389 IF advanced.!bigicons == '' THEN advanced.!bigicons = 1
1390
1391 advanced.!savepassive = VRGetIni('Settings', 'SavePassive', settings.!ini)
1392 IF advanced.!savepassive == '' THEN advanced.!savepassive = 0
1393
1394 advanced.!broadcast = VRGetIni('Settings', 'Broadcast', settings.!ini)
1395 IF advanced.!broadcast == '' THEN advanced.!broadcast = 0
1396
1397 /* Apply the settings
1398 */
1399 /* Does not make sense anymore
1400 ok = VRSet("EF_NETWORK","Value", settings.!network)
1401 */
1402 ok = VRSet("DT_CURRENT","BACKCOLOR", settings.!curbcolor )
1403 ok = VRSet("DT_CURRENT","FORECOLOR", settings.!curfcolor )
1404 ok = VRSet("DT_DIALOG","BACKCOLOR", settings.!curbcolor )
1405 ok = VRSet("DT_DIALOG","FORECOLOR", settings.!curfcolor )
1406 ok = VRSet("DT_SMBTREE","BACKCOLOR", settings.!curbcolor )
1407 ok = VRSet("DT_SMBTREE","FORECOLOR", settings.!curfcolor )
1408 ok = VRSet("DT_CONDET","BACKCOLOR", settings.!curbcolor )
1409 ok = VRSet("DT_CONDET","FORECOLOR", settings.!curfcolor )
1410
1411 ok = VRset("CN_CURRENT", "MiniIcons", \advanced.!bigicons)
1412 ok = VRset("CN_SMBTREE", "MiniIcons", \advanced.!bigicons)
1413 ok = VRset("CN_CONDET", "MiniIcons", \advanced.!bigicons)
1414 ok = VRset("Menu_View_MiniIcons", "Checked", \advanced.!bigicons)
1415
1416 ok = VRSet("Menu_View_Buttons","Checked", settings.!buttonson)
1417 ok = VRset("GB_Buttons","Visible", settings.!buttonson)
1418 options.!buttondelta = 440 * settings.!buttonson
1419
1420 ok = VRSet("Menu_View_Dialog","Checked", settings.!dialogon)
1421 if settings.!dialogon then call Menu_View_Dialog_Click
1422
1423 ok = VRSet("Menu_View_ConDet","Checked", settings.!condeton)
1424 if settings.!condeton then do
1425 call Menu_View_ConDet_Click
1426 ok = VRset("GB_CONDET","Painting", 1)
1427 ok = VRset("GB_CONDET","Visible", 1)
1428 end
1429
1430
1431 ok = VRSet("Menu_View_Smbtree","Checked", settings.!smbtreeon)
1432 if settings.!smbtreeon then do
1433 call Menu_View_SmbTree_Click
1434 ok = VRset("GB_SMBTREE","Painting", 1)
1435 ok = VRset("GB_SMBTREE","Visible", 1)
1436 end
1437
1438 if advanced.!debug == 1 then ok = VRRedirectStdio("ON")
1439
1440 IF ( settings.!x >= 0 ) & ( settings.!y >= 0 ) & ( settings.!l >= 0 ) & ( settings.!w >= 0 ) & ( settings.!s >= 0 ) THEN DO
1441 CALL VRSet VRWindow(), 'Left', settings.!x
1442 CALL VRSet VRWindow(), 'Top', settings.!y
1443 CALL VRSet VRWindow(), 'Height', settings.!h
1444 CALL VRSet VRWindow(), 'Width', settings.!w
1445 CALL VRSet "SPLIT_MAIN", 'Left', settings.!s
1446 END
1447 ELSE
1448 CALL VRMethod VRWindow(), 'CenterWindow'
1449
1450 CALL VRSet 'CN_CURRENT', 'Font', settings.!cfont
1451 CALL VRSet 'Main', 'Font', settings.!wfont
1452 CALL VRSet 'Main', 'StatusFont', settings.!wfont
1453
1454 END
1455
1456 if options.!nogui == 1 then CALL VRLoadSecondary "SW_PROGRESS","W"
1457 /* This is too early if a profile was loaded and Main_Resize does it anyway */
1458 /* else call VRSet 'Main', 'Visible', 1 */
1459
1460 /* in non debug versions this is normally not visible */
1461 IF options.!debug == 1 THEN SAY ' NLV MessageFile = "'settings.!messages'"'
1462 IF options.!debug == 1 THEN SAY ' NLV HelpFile = "'settings.!helpfile'"'
1463
1464 IF options.!debug == 1 THEN SAY time()' LoadSettings done'
1465RETURN
1466
1467/*:VRX Main_Close
1468*/
1469Main_Close:
1470 CALL Quit
1471RETURN
1472
1473/*:VRX Main_Create
1474*/
1475Main_Create:
1476 ok = VRRedirectStdIO("OFF")
1477 options.!debug = 1
1478
1479 IF options.!debug == 1 THEN ok = VRREdirectStdIO("ON")
1480 IF options.!debug == 1 THEN SAY time()' Main_Create started'
1481
1482 CALL RxFuncAdd 'SysLoadFuncs', 'REXXUTIL', 'SysLoadFuncs'
1483 CALL SysLoadFuncs
1484
1485 CALL _InitTempDir
1486
1487 CALL NLVSetup
1488
1489 CALL StemsInit
1490
1491 CALL _ContainersInit
1492
1493 CALL _GUIInit
1494
1495 CALL ParseCommandLine
1496
1497 CALL LoadFileSysFuncs
1498
1499 CALL _CltInit
1500
1501 CALL LoadSettings
1502
1503 CALL Refresh
1504
1505 if advanced.!savepassive == 1 then CALL _PassiveLoad
1506
1507 IF options.!autoload == 1 THEN CALL PB_LOAD_Click
1508
1509 CALL VRSet "CB_MOUNT", "Selected", 1
1510 CALL VRSet "CB_DRIVES", "Selected", 1
1511 IF options.!autoclose == 1 THEN CALL TM_AutoClose_Trigger
1512 /* For whatever reason the timer is not triggered anymore....
1513 CALL VRSet "TM_AUTOCLOSE", "ENABLED", 1 */
1514 ELSE do
1515 if advanced.!browseauth == 1 then do
1516 window = VRLoadSecondary( "SW_LOGIN", "W" )
1517 call Main_Resize
1518 end
1519 if advanced.!browseimme == 1 then call PB_REFRESH_Click
1520 end
1521
1522 IF options.!debug == 1 THEN SAY time()' Main_Create done'
1523return
1524
1525/*:VRX Main_KeyPress
1526*/
1527Main_KeyPress:
1528 key = VRGet('Main', 'KeyString')
1529 IF key == '{F5}' THEN CALL Refresh
1530RETURN
1531
1532/*:VRX Main_Resize
1533*/
1534Main_Resize:
1535 if datatype(options.!buttondelta) = 'CHAR' then return
1536
1537 IF options.!debug == 1 THEN SAY time()' Main_Resize started'
1538 ok = VRset("Main","Painting", 0)
1539
1540 /* Basic measurements */
1541 main_iwidth = VRGet("Main","InteriorWidth") /* Width of window client-area */
1542 main_iheight = VRGet("Main","InteriorHeight") /* Height of window client-area */
1543 sbar_height = VRGet("GB_STATUSBAR","Height") /* Height of status-bar */
1544 split_left = VRGet("SPLIT_Main","Left") /* Position of the left edge of the split-bar */
1545 marginx2 = margin * 2 /* Common margin around controls */
1546 pbtn_height = 400 /* Height of the panels' internal button areas */
1547 buttons_top = main_iheight - sbar_height - margin - options.!buttondelta /* Top of the common button area */
1548 pane_height = buttons_top - (margin * 3) /* Height of a split-bar panel */
1549 lpane_width = split_left - margin /* Width of the left split-bar panel */
1550 rpane_width = main_iwidth - split_left - 60 - margin /* Width of the right split-bar panel */
1551
1552 /* Button bar */
1553 ok = VRSet("GB_BUTTONS", "Top", buttons_top )
1554 ok = VRSet("GB_BUTTONS", "Left", main_iwidth - VRGet("GB_Buttons","Width") - margin )
1555
1556 /* Current Panel */
1557 ok = VRSet("GB_CURRENT", "Visible", 1 )
1558 ok = VRSet("GB_CURRENT", "Top", marginx2 )
1559 ok = VRSet("GB_CURRENT", "Left", margin )
1560 ok = VRSet("GB_CURRENT", "Width", lpane_width )
1561 ok = VRSet("GB_CURRENT", "Height", pane_height )
1562
1563 ok = VRset("GB_CURRENT3", "Top", margin )
1564 ok = VRset("GB_CURRENT3", "Left", margin )
1565 ok = VRset("GB_CURRENT3", "Height", 245 )
1566 ok = VRset("GB_CURRENT3", "Width", lpane_width - marginx2)
1567
1568 ok = VRset("DT_CURRENT", "Top", 8 )
1569 ok = VRset("DT_CURRENT", "Left", 8 )
1570 ok = VRset("DT_CURRENT", "Height", 213 )
1571 ok = VRset("DT_CURRENT", "Width", (lpane_width - marginx2) - 24 )
1572
1573 ok = VRset("GB_CURRENT2", "Left", margin )
1574 ok = VRset("GB_CURRENT2", "Top", 245 + marginx2 )
1575 ok = VRset("GB_CURRENT2", "Width", lpane_width - marginx2)
1576 ok = VRset("GB_CURRENT2", "Height", pane_height - (margin * 5) - pbtn_height - 245 )
1577
1578 ok = VRset("CN_CURRENT", "Top", margin )
1579 ok = VRset("CN_CURRENT", "Left", margin )
1580 ok = VRset("CN_CURRENT", "Width", VRGet("GB_CURRENT2","Width") - marginx2)
1581 ok = VRset("CN_CURRENT", "Height", VRGet("GB_CURRENT2","Height") - marginx2)
1582
1583 ok = VRset("PB_DETACH", "Left", margin )
1584 ok = VRset("PB_DETACH", "Top", pane_height - pbtn_height - marginx2 )
1585 ok = VRset("PB_DETACH", "Width", min((lpane_width-margin*3) % 2, 1313) )
1586 ok = VRset("PB_UNMOUNT", "Left", VRGet("PB_DETACH","Width") + marginx2)
1587 ok = VRset("PB_UNMOUNT", "Top", pane_height - pbtn_height - marginx2 )
1588 ok = VRset("PB_UNMOUNT", "Width", min((lpane_width-margin*3) % 2, 1313) )
1589
1590 /* SMBTree stuff */
1591 ok = VRSet("GB_SMBTREE", "Top", marginx2 )
1592 ok = VRSet("GB_SMBTREE", "Left", split_left + 60 )
1593 ok = VRset("GB_SMBTREE", "Height", pane_height )
1594 ok = VRset("GB_SMBTREE", "Width", rpane_width )
1595
1596 ok = VRset("GB_SMBTREE3","Top", margin )
1597 ok = VRset("GB_SMBTREE3","Left", margin )
1598 ok = VRset("GB_SMBTREE3","Height", 245 )
1599 ok = VRset("GB_SMBTREE3","Width", rpane_width - marginx2)
1600
1601 ok = VRset("DT_SMBTREE", "Top", 8 )
1602 ok = VRset("DT_SMBTREE", "Left", 8 )
1603 ok = VRset("DT_SMBTREE", "Width", (rpane_width - marginx2) - 24 )
1604
1605 ok = VRset("GB_SMBTREE2","Left", margin )
1606 ok = VRset("GB_SMBTREE2","Top", 245 + marginx2 )
1607 ok = VRset("GB_SMBTREE2","Width", rpane_width - marginx2)
1608 ok = VRset("GB_SMBTREE2","Height", pane_height - (margin * 5) - pbtn_height - 245 )
1609
1610 ok = VRset("CN_SMBTREE", "Top", margin )
1611 ok = VRset("CN_SMBTREE", "Left", margin )
1612 ok = VRset("CN_SMBTREE", "Width", VRGet("GB_SMBTREE2","Width") - marginx2)
1613 ok = VRset("CN_SMBTREE", "Height", VRGet("GB_SMBTREE2","Height") - marginx2)
1614
1615 ok = VRset("PB_CONNECT", "Left", margin)
1616 ok = VRset("PB_CONNECT", "Top", pane_height - pbtn_height - marginx2)
1617 ok = VRset("PB_REFRESH", "Left", VRGet("PB_CONNECT","Width") + marginx2)
1618 ok = VRset("PB_REFRESH", "Top", pane_height - pbtn_height - marginx2)
1619
1620 ok = VRset("PICT_THROBBER", "Top", VRGet("CN_SMBTREE","Height") % 2 + 100 )
1621 ok = VRset("PICT_THROBBER", "Left", VRGet("CN_SMBTREE","Width") % 2 - 200 )
1622
1623 /* Connection details stuff */
1624 ok = VRSet("GB_CONDET", "Top", marginx2 )
1625 ok = VRSet("GB_CONDET", "Left", split_left + 60 )
1626 ok = VRset("GB_CONDET", "Height", pane_height )
1627 ok = VRset("GB_CONDET", "Width", rpane_width )
1628
1629 ok = VRset("GB_CONDET3","Top", margin )
1630 ok = VRset("GB_CONDET3","Left", margin )
1631 ok = VRset("GB_CONDET3","Height", 245 )
1632 ok = VRset("GB_CONDET3","Width", rpane_width - marginx2)
1633
1634 ok = VRset("DT_CONDET", "Top", 8 )
1635 ok = VRset("DT_CONDET", "Left", 8 )
1636 ok = VRset("DT_CONDET", "Width", (rpane_width - marginx2) - 24 )
1637
1638 ok = VRset("GB_CONDET2", "Left", margin )
1639 ok = VRset("GB_CONDET2", "Top", 245 + marginx2)
1640 ok = VRset("GB_CONDET2", "Width", rpane_width - marginx2)
1641 ok = VRset("GB_CONDET2", "Height", pane_height - (margin * 5) - pbtn_height - 245 )
1642
1643 ok = VRset("CN_CONDET", "Top", margin )
1644 ok = VRset("CN_CONDET", "Left", margin )
1645 ok = VRset("CN_CONDET", "Width", VRGet("GB_CONDET2","Width") - marginx2)
1646 ok = VRset("CN_CONDET", "Height", VRGet("GB_CONDET2","Height") - marginx2)
1647
1648 ok = VRset("PB_CONDET_SAVE", "Left", margin )
1649 ok = VRset("PB_CONDET_SAVE", "Top", pane_height - pbtn_height - marginx2 )
1650 ok = VRset("PB_CONDET_LOAD", "Left", VRGet("PB_CONDET_SAVE","Width") + marginx2)
1651 ok = VRset("PB_CONDET_LOAD", "Top", pane_height - pbtn_height - marginx2 )
1652
1653 /* Dialog stuff */
1654 ok = VRSet("GB_DIALOG", "Top", marginx2 )
1655 ok = VRSet("GB_DIALOG", "Left", split_left + 60 )
1656 ok = VRset("GB_DIALOG", "Height", pane_height )
1657 ok = VRset("GB_DIALOG", "Width", rpane_width )
1658
1659 ok = VRset("GB_DIALOG3", "Top", margin )
1660 ok = VRset("GB_DIALOG3", "Left", margin )
1661 ok = VRset("GB_DIALOG3", "Height", 245 )
1662 ok = VRset("GB_DIALOG3", "Width", rpane_width - marginx2)
1663
1664 ok = VRset("DT_DIALOG", "Top", 8 )
1665 ok = VRset("DT_DIALOG", "Left", 8 )
1666 ok = VRset("DT_DIALOG", "Width", (rpane_width - marginx2) - 24 )
1667
1668 ok = VRset("PB_MOUNT", "Left", margin )
1669 ok = VRset("PB_MOUNT", "Top", pane_height - pbtn_height - marginx2)
1670 ok = VRset("PB_EDITCANCEL", "Left", VRGet("PB_MOUNT","Width") + marginx2)
1671 ok = VRset("PB_EDITCANCEL", "Top", pane_height - pbtn_height - marginx2)
1672
1673 ok = VRset("GB_SHARE", "Left", margin )
1674 ok = VRset("GB_SHARE", "Top", 245 + marginx2)
1675 ok = VRset("GB_SHARE", "Width", rpane_width - marginx2)
1676
1677 ok = VRset("GB_AUTH", "Left", margin )
1678 ok = VRset("GB_AUTH", "Top", 245 + (margin * 3) + VRGet("GB_SHARE","Height"))
1679 ok = VRset("GB_AUTH", "Width", rpane_width - marginx2)
1680
1681 ok = VRset("GB_MPOINT","Left", margin )
1682 ok = VRset("GB_MPOINT","Top", 245 + (margin * 4) + VRGet("GB_SHARE","Height") + VRGet("GB_AUTH","Height"))
1683 ok = VRset("GB_MPOINT","Width", rpane_width - marginx2)
1684
1685 ok = VRset("SPLIT_Main", "Visible", 1 )
1686 ok = VRset("SPLIT_Main", "Top", marginx2 )
1687 ok = VRset("SPLIT_Main", "Height", pane_height )
1688
1689 ok = VRSet("GB_STATUSBAR", "Left", margin )
1690 ok = VRSet("GB_STATUSBAR", "Top", main_iheight - sbar_height - margin )
1691 ok = VRSet("GB_STATUSBAR", "Width", lpane_width + 50 + rpane_width )
1692
1693 ok = VRset("DT_STATUSBAR", "Top", 12 )
1694 ok = VRset("DT_STATUSBAR", "Left", 12 )
1695 ok = VRset("DT_STATUSBAR", "Width", (lpane_width + 50 + rpane_width) - 24 )
1696 ok = VRset("Main","Painting", 1)
1697
1698 /* check and empty event queue, trash spurious resize events */
1699 EventString = ''
1700 TrashedResize = 0
1701
1702 do until EventString = 'nop'
1703 EventString = VREvent('N')
1704 if EventString <> 'nop' then do
1705 if EventString = 'CALL Main_Resize' then TrashedResize = 1
1706 else interpret eventString
1707 end
1708 end
1709 if TrashedResize then CALL Main_Resize
1710
1711 IF options.!debug == 1 THEN SAY time()' Main_Resize done'
1712return
1713/*:VRX Menu_Context_ChangeView_Click
1714*/
1715Menu_Context_ChangeView_Click:
1716 ok = VRSet("Cn_Current","View","NameTree")
1717return
1718
1719/*:VRX Menu_Context_Detach_Click
1720*/
1721Menu_Context_Detach_Click:
1722 call PB_DETACH_Click
1723return
1724
1725/*:VRX Menu_Context_Edit_Click
1726*/
1727Menu_Context_Edit_Click:
1728 IF options.!debug == 1 THEN SAY time()' Menu_Context_Edit_Click started'
1729 options.!editmode = 1
1730 if \VRGet("Menu_View_Dialog","Checked") then call Menu_View_Dialog_Click
1731 CALL VRSet "PB_EDITCANCEL","Visible", 1
1732 CALL VRSet "PB_UNMOUNT","Enabled", 0
1733 CALL VRSet "PB_SAVE","Enabled", 0
1734 CALL VRSet "PB_LOAD","Enabled", 0
1735 CALL NLVSetText "DT_DIALOG","Caption",33
1736 CALL VRSet "GB_CURRENT", "ENABLED", 0
1737
1738 ok = VRSet("CB_MOUNT","Value","")
1739 ok = VRSet("CB_MOUNT","Selected",1)
1740 ok = VRSet("CB_MOUNT","Value",mtype.1)
1741
1742 parse var p_string p_domain':\\'p_server'\'p_share
1743
1744 /* IF options.!debug == 1 THEN SAY time()' '||p_domain */
1745
1746 IF options.!debug == 1 THEN SAY time()' data '||data
1747 IF options.!debug == 1 THEN SAY time()' domain '||p_domain
1748 IF options.!debug == 1 THEN SAY time()' server '||p_server
1749 IF options.!debug == 1 THEN SAY time()' share '||p_share
1750 IF options.!debug == 1 THEN SAY time()' string '||p_string
1751
1752
1753 CALL VRSet "EF_SHARE", "VALUE", p_share
1754 CALL VRSet "EF_SERVER", "VALUE", p_server
1755 CALL VRSet "EF_NETWORK","VALUE", p_domain
1756
1757 /* IF options.!debug == 1 THEN SAY time()' '||p_node */
1758 parse var p_node p_drive'\'p_directory'\'
1759 CALL VRSet "CB_DRIVES", "Value", p_drive
1760 CALL VRSet "EF_DIRECTORY", "Value", p_directory
1761 IF options.!debug == 1 THEN SAY time()' Menu_Context_Edit_Click done'
1762return
1763
1764/*:VRX Menu_Context_Open_Click
1765*/
1766Menu_Context_Open_Click:
1767 IF options.!debug == 1 THEN SAY time()' '||"Menu_Context_Open_Click started"
1768 userdata = VRMethod( 'CN_CURRENT', 'GetRecordAttr', rh, 'UserData')
1769 PARSE VAR userdata mountpoint ';' mounts ';' .
1770
1771
1772 if length(mountpoint) > 3 then mountpoint = strip(mountpoint,'T','\')
1773 IF options.!debug == 1 THEN SAY ' Opening WPS folder "'mountpoint'"'
1774 call VRSet VRWindow(), 'Pointer', 'Wait'
1775 rc = SysOpenObject(mountpoint, "DEFAULT", 1)
1776 call VRSet VRWindow(), 'Pointer', '<default>'
1777
1778 IF options.!debug == 1 THEN SAY time()' '||"Menu_Context_Open_Click done"
1779return
1780
1781/*:VRX Menu_Context_Unmount_Click
1782*/
1783Menu_Context_Unmount_Click:
1784 call PB_UNMOUNT_Click
1785return
1786
1787/*:VRX Menu_File_Advanced_Click
1788*/
1789Menu_File_Advanced_Click:
1790 call PB_ADVANCED_Click
1791return
1792
1793/*:VRX Menu_File_Autostart_Activate_Click
1794*/
1795Menu_File_Autostart_Activate_Click:
1796 call PB_AUTOSTART_Click
1797return
1798
1799/*:VRX Menu_File_Autostart_Click
1800*/
1801Menu_File_Autostart_Click:
1802
1803return
1804
1805/*:VRX Menu_File_Autostart_Deactivate_Click
1806*/
1807Menu_File_Autostart_Deactivate_Click:
1808 ok = SysDestroyObject("<EVFSGUI_AUTOSTART>")
1809 IF ok == 1 THEN CALL VRMessage 'Main', NLVGetMessage( 79 ), NLVGetMessage( 1 )
1810 ELSE CALL VRMessage 'Main', NLVGetMessage( 78 ), NLVGetMessage( 5 ), 'E'
1811return
1812
1813/*:VRX Menu_File_Close_Click
1814*/
1815Menu_File_Close_Click:
1816 call PB_CLOSE_Click
1817return
1818
1819/*:VRX Menu_File_Load_Click
1820*/
1821Menu_File_Load_Click:
1822 call PB_LOAD_Click
1823return
1824
1825/*:VRX Menu_File_Save_Click
1826*/
1827Menu_File_Save_Click:
1828 call PB_CONDET_SAVE_Click
1829return
1830
1831/*:VRX Menu_File_Settings_Click
1832*/
1833Menu_File_Settings_Click:
1834 adv_changed = 0
1835 CALL VRLoadSecondary "SW_SETTINGS", "W"
1836 IF adv_changed == 1 THEN DO
1837 advanced.!logfile = adv_logfile
1838 advanced.!loglevel = adv_loglevel
1839 advanced.!browseauth= adv_browseauth
1840 advanced.!browseimme= adv_browseimme
1841 advanced.!debug = adv_debug
1842 advanced.!special = adv_special
1843 advanced.!savepassive=adv_savepassive
1844 advanced.!broadcast =adv_broadcast
1845 END
1846return
1847
1848/*:VRX Menu_Help_About_Click
1849*/
1850Menu_Help_About_Click:
1851 CALL VRMessage 'Main', VRGet("Main", "HintText")||'0D0A'x||'(c) 2007-2010 Alex Taylor and Herwig Bauernfeind',NLVGetMessage( 1 ), 'I'
1852return
1853
1854/*:VRX Menu_Help_Extended_Click
1855*/
1856Menu_Help_Extended_Click:
1857 call PB_HELP_Click
1858return
1859
1860/*:VRX Menu_Selected_Connect_Click
1861*/
1862Menu_Selected_Connect_Click:
1863 call PB_CONNECT_Click
1864return
1865
1866/*:VRX Menu_Selected_Default_Workgroup_Click
1867*/
1868Menu_Selected_Default_Workgroup_Click:
1869 workgroupname = VRMethod("CN_smbtree","GetRecordAttr",rh,"Caption")
1870 ok = TRSetIni("[global]","workgroup", workgroupname, samba.!smbconf)
1871return
1872
1873/*:VRX Menu_Selected_Info_Click
1874*/
1875Menu_Selected_Info_Click:
1876 ok = VRMethod( "CN_smbtree", "GetRecordList", "SourceOrSelected", "srcrec." )
1877 if srcrec.0 = 0 then return
1878
1879 Userdata = VRMethod("CN_smbtree","GetRecordAttr",srcrec.1,"Userdata")
1880 machine = VRMethod("CN_smbtree","GetRecordAttr",srcrec.1,"Caption")
1881
1882 parse var machine machine '0D0A'x .
1883 parse var userdata . '|' userdata
1884
1885 say samba.!smbclientexe' -L "'strip(machine)'" -N 'debuglevel' 2>'samba.!msg' 1>NUL'
1886 address cmd samba.!smbclientexe' -L "'strip(machine)'" -N 'debuglevel' 2>'samba.!msg' 1>NUL'
1887 infoline = linein(samba.!msg)
1888 if word(infoline,1) = "creating" then do /* upcase tables are missing */
1889 say "Missing upcase tables detected!"
1890 infoline = linein(samba.!msg)
1891 infoline = linein(samba.!msg)
1892 end
1893 say '"'Infoline'"'
1894 ok = stream(samba.!msg,'c','close')
1895 ok = SysFileDelete(samba.!msg)
1896
1897 window = VRLoadSecondary( "SW_INFO", "W" )
1898return
1899
1900/*:VRX Menu_Selected_Remove_Click
1901*/
1902Menu_Selected_Remove_Click:
1903 ok = VRMethod( "CN_CONDET", "GetRecordList", "SourceOrSelected", "selrec." )
1904 if selrec.0 = 0 then return
1905
1906 do I = 1 to selrec.0
1907 if VRMethod("CN_CONDET", "GetFieldData", selrec.I, cd.statusfh) = '#68:PMWP.DLL' then do
1908 CALL VRMethod 'CN_CONDET', 'RemoveRecord', selrec.I
1909 end
1910 else do
1911 mountpoint = VRMethod('CN_CONDET', "GetFieldData", selrec.I, cd.mpointfh)
1912 mpidx = VRMethod('CN_CONDET', "GetFieldData", selrec.I, cd.mpidxfh)
1913 if mpidx = 1 then do
1914 btns.0 = 2
1915 btns.1 = NLVGetMessage( 6 )
1916 btns.2 = NLVGetMessage( 7 )
1917 confirm = VRMessage('Main', NLVGetMessage( 72, mountpoint ), NLVGetMessage( 8 ), 'Q', 'btns.', 1, 2 )
1918 IF confirm \= 1 THEN RETURN
1919
1920 dyn ="ok = "fs.!prefix"RxUnmount( mountpoint, mpidx )"
1921 IF options.!debug == 1 THEN SAY time()' '||dyn
1922 interpret dyn; drop dyn
1923 CALL VRMethod 'CN_CONDET', 'RemoveRecord', selrec.I
1924 CALL Refresh
1925 end
1926 else do
1927 CALL VRMessage 'Main', NLVGetMessage( 71 ) , NLVGetMessage( 89 )||" "||mountpoint , 'E'
1928 end
1929 end
1930 end
1931return
1932
1933/*:VRX Menu_Selected_Retry_Click
1934*/
1935Menu_Selected_Retry_Click: PROCEDURE EXPOSE settings. options. vfs. fs. advanced. cd. samba.
1936
1937 ok = VRMethod( "CN_CONDET", "GetRecordList", "SourceOrSelected", "srcrec." )
1938 if srcrec.0 = 0 then return
1939
1940 srcrec = srcrec.1
1941
1942 p_mpoint = VRMethod("CN_CONDET", "GetFieldData", srcrec, CD.MpointFH)
1943
1944 p_workgroup = VRMethod("CN_CONDET", "GetFieldData", srcrec, CD.WorkgroupFH)
1945 p_server = VRMethod("CN_CONDET", "GetFieldData", srcrec, CD.ServerFH)
1946 p_share = VRMethod("CN_CONDET", "GetFieldData", srcrec, CD.ShareFH)
1947 p_user = VRMethod("CN_CONDET", "GetFieldData", srcrec, CD.UserFH)
1948 p_password = x2c(VRMethod("CN_CONDET", "GetFieldData", srcrec, CD.SpasswordFH))
1949
1950 ShareLevel = 1
1951 if p_share = "" then ShareLevel = 2
1952 if p_server = "" then ShareLevel = 3
1953 if p_workgroup = "" then ShareLevel = 4
1954
1955 ok = VRSet( "CB_MOUNT", "Selected", Sharelevel )
1956 ok = VRset("CB_MOUNT" , "Value", mtype.sharelevel)
1957
1958 ok = VRset("EF_SERVER" , "Value", p_server)
1959 ok = VRset("EF_SHARE" , "Value", p_share)
1960 ok = VRset("EF_NETWORK", "Value", p_workgroup)
1961 ok = VRset("EF_USER" , "Value", p_user)
1962 ok = VRset("EF_PASSWORD", "Value", p_password)
1963
1964 parse var p_mpoint p_drv '\' p_dir
1965
1966 p_dir = strip(p_dir,'T','\')
1967
1968 ok = VRset("CB_DRIVES" , "Value", p_drv)
1969 ok = VRset("EF_DIRECTORY" , "Value", p_dir)
1970
1971 CALL PB_MOUNT_Click
1972
1973 if VRMethod( 'CN_CONDET', "ValidateRecord", srcRec) = 1 then do
1974 if VRMethod("CN_CONDET", "GetRecordAttr", srcRec, "Icon") = '#68:PMWP.DLL' then ok = VRMethod( "CN_CONDET", "RemoveRecord", srcRec)
1975 end
1976return
1977
1978/*:VRX Menu_View_Buttons_Click
1979*/
1980Menu_View_Buttons_Click:
1981 current_height = VRGet("Main", "Height")
1982 buttons_height = margin * 2 + 400
1983 if settings.!buttonson = 1 then do
1984 ok = VRSet("Menu_View_Buttons","Checked",0)
1985 ok = VRset("GB_Buttons","Visible", 0)
1986 options.!buttondelta = 0
1987 settings.!buttonson = 0
1988 new_height = current_height - buttons_height
1989 end
1990 else do
1991 ok = VRSet("GB_Buttons","Visible", 1)
1992 ok = VRSet("Menu_View_Buttons","Checked",1)
1993 options.!buttondelta = buttons_height
1994 settings.!buttonson = 1
1995 new_height = current_height + buttons_height
1996 end
1997
1998 ok = VRSet("Main", "Height", new_height )
1999return
2000
2001/*:VRX Menu_View_ConDet_Click
2002*/
2003Menu_View_ConDet_Click:
2004 if VRGet("TM_Throbber","Enabled") = 1 then ok = VRset("Pict_Throbber", "Visible", 0)
2005
2006 ok = VRset("GB_SMBTREE","Visible", 0)
2007 ok = VRset("GB_SMBTREE","Painting", 0)
2008 ok = VRset("GB_Dialog", "Visible", 0)
2009 ok = VRset("GB_Dialog", "Painting", 0)
2010 ok = VRset("GB_CONDET", "Visible", 1)
2011 ok = VRset("GB_CONDET", "Painting", 1)
2012
2013 ok = VRSet("Menu_View_SmbTree","Checked", 0)
2014 ok = VRSet("Menu_View_Dialog", "Checked", 0)
2015 ok = VRSet("Menu_View_ConDet", "Checked", 1)
2016
2017 /* Hide any "foreign" menu entries */
2018 ok = VRSet("Menu_Selected_Connect", "Visible", 0)
2019return
2020
2021/*:VRX Menu_View_Dialog_Click
2022*/
2023Menu_View_Dialog_Click:
2024 if VRGet("TM_Throbber","Enabled") = 1 then ok = VRset("Pict_Throbber", "Visible", 0)
2025
2026 ok = VRset("GB_SMBTREE","Visible", 0)
2027 ok = VRset("GB_SMBTREE","Painting", 0)
2028 ok = VRset("GB_CONDET", "Visible", 0)
2029 ok = VRset("GB_CONDET", "Painting", 0)
2030 ok = VRset("GB_Dialog", "Visible", 1)
2031 ok = VRset("GB_Dialog", "Painting", 1)
2032
2033 ok = VRSet("Menu_View_SmbTree","Checked", 0)
2034 ok = VRSet("Menu_View_ConDet", "Checked", 0)
2035 ok = VRSet("Menu_View_Dialog", "Checked", 1)
2036
2037 ok = VRSet("Menu_Selected_Remove", "Visible", 0)
2038 ok = VRSet("Menu_Selected_Retry", "Visible", 0)
2039
2040 ok = VRSet("Menu_Selected_Connect", "Visible", 0)
2041
2042 call _DialogPopulate
2043return
2044
2045/*:VRX Menu_View_MiniIcons_Click
2046*/
2047Menu_View_MiniIcons_Click:
2048 advanced.!bigicons = \advanced.!bigicons
2049 ok = VRset("CN_CURRENT", "MiniIcons", \advanced.!bigicons)
2050 ok = VRset("CN_SMBTREE", "MiniIcons", \advanced.!bigicons)
2051 ok = VRset("CN_CONDET", "MiniIcons", \advanced.!bigicons)
2052 ok = VRset("Menu_View_MiniIcons", "Checked", \advanced.!bigicons)
2053return
2054
2055/*:VRX Menu_View_SmbTree_Click
2056*/
2057Menu_View_SmbTree_Click:
2058 if VRGet("TM_Throbber","Enabled") = 1 then ok = VRset("Pict_Throbber", "Visible", 1)
2059
2060 ok = VRset("GB_Dialog", "Visible", 0)
2061 ok = VRset("GB_Dialog", "Painting", 0)
2062 ok = VRset("GB_CONDET", "Visible", 0)
2063 ok = VRset("GB_CONDET", "Painting", 0)
2064 ok = VRset("GB_SMBTREE","Painting", 1)
2065 ok = VRset("GB_SMBTREE","Visible", 1)
2066
2067 ok = VRSet("Menu_View_Dialog","Checked", 0)
2068 ok = VRSet("Menu_View_ConDet","Checked", 0)
2069 ok = VRSet("Menu_View_SmbTree","Checked", 1)
2070
2071 /* Hide any "foreign" menu entries */
2072 ok = VRSet("Menu_Selected_Remove", "Visible", 0)
2073 ok = VRSet("Menu_Selected_Retry", "Visible", 0)
2074return
2075
2076/*:VRX Mount
2077*/
2078Mount: PROCEDURE EXPOSE settings. options. vfs. fs. advanced. cd. samba.
2079 IF options.!debug == 1 THEN SAY time()' Mount procedure started'
2080 /* Set mouse pointer to wait - this operation might take a few seconds */
2081 call VRSet VRWindow(), 'Pointer', 'Wait'
2082
2083/* Disabled because we merge profile now - in earlier revisions
2084 we replaced it but only for preexisting drives - this made only
2085 as long as we were unabled to detect double connections - this could be made an option!
2086 IF options.!autoload then do
2087 dyn = "ok = "fs.!prefix"RxDetach(vfs.!drive)"
2088 IF options.!debug == 1 THEN SAY time()' '||dyn
2089 interpret dyn; drop dyn
2090
2091 IF options.!debug == 1 THEN SAY time()' '||'Autoload Detach "'vfs.!drive'" =' ok
2092 end */
2093
2094 /* Attach the virtual drive - only if drive is not already attached */
2095 if pos(vfs.!drive,MyFreeDriveMap("C:","FREE")) > 0 then do
2096 dyn = "ok = "fs.!prefix"RxAttach( vfs.!drive )"
2097 IF options.!debug == 1 THEN SAY time()' '||dyn
2098
2099 interpret dyn; drop dyn
2100
2101 IF options.!debug == 1 THEN SAY time()' '||'Attach "'vfs.!drive'" =' ok
2102 end
2103
2104 /* Create the mount point and store whether it was created or already existed */
2105 dyn = "CreateMP = "fs.!prefix"RxCreateMountPoint( vfs.!mountpoint )"
2106 IF options.!debug == 1 THEN SAY time()' '||dyn
2107 interpret dyn; drop dyn
2108
2109 IF options.!debug == 1 THEN SAY time()' '||'Create "'vfs.!mountpoint'" = 'CreateMP
2110
2111
2112 /* Build the resource parameter string */
2113 src = ''
2114 IF options.!workgroup \= '' THEN src = src';WORKGROUP='options.!workgroup
2115 IF options.!server \= '' THEN src = src';SERVER='options.!server
2116 IF options.!share \= '' THEN src = src';SHARE='options.!share
2117 IF options.!user \= '' THEN src = src';USER='options.!user
2118 IF options.!password \= '' THEN src = src';PASSWORD='options.!password
2119 IF options.!spassword \= '' THEN src = src';SPASSWORD='options.!spassword
2120 IF options.!master \= '' THEN src = src';MASTER='options.!master
2121 IF options.!mastertype \= '' THEN src = src';MASTERTYPE='options.!mastertype
2122/* IF options.!memlen \= '' THEN src = src';MEMLEN='options.!memlen
2123 IF options.!logfile \= '' THEN src = src';LOGFILE='options.!logfile
2124 IF options.!loglevel \= '' THEN src = src';LOGLEVEL='options.!loglevel */
2125 IF options.!easupport \= '' THEN src = src';EASUPPORT='options.!easupport
2126
2127 IF options.!readonly = 1 then rwFlag = 'R'; else rwFlag = 'W'
2128
2129 parse var vfs.!mountpoint mpoint ';' .
2130 mpoint = strip(mpoint,'T','\')||'\'
2131
2132 if options.!master = "" then options.!master = "WORKGROUP"
2133 if options.!mtype = "" then options.!mtype = "1"
2134 if options.!loglevel = "" then options.!loglevel = "0"
2135 if options.!memlen = "" then options.!memlen = "2"
2136 if options.!easupport= "" | options.!easupport= " " then options.!easupport = strip(options.!easupport)
2137 if options.!password <> "" & options.!spassword = "" then do
2138 options.!spassword = c2x(options.!password)
2139 options.!password = ""
2140 end
2141
2142 hashstr = mpoint' 'translate(options.!workgroup)' 'translate(options.!server)' 'translate(options.!share)' 'options.!user' 'options.!spassword' 'options.!easupport' 'rwFlag
2143
2144 md5 = rexx_md5(hashstr)
2145
2146 CALL VRMethod 'CN_CONDET', 'GetRecordList', 'All', 'records.'
2147 DO i = 1 TO records.0
2148 hash = VRMethod("CN_CONDET","GetFieldData", records.i, cd.hashfh)
2149 say hash
2150 say md5
2151 if hash = md5 & VRMethod("CN_CONDET","GetFieldData", records.i, cd.statusfh) = '#64:PMWP.DLL' then do /* Same hash, status active */
2152 say "Double connection deteced!!"
2153 if options.!spassword <> "" then upw = ":********"
2154 else upw = ""
2155 buttons.0 = 2
2156 buttons.1 = NLVGetMessage(9)
2157 buttons.2 = NLVGetMessage(3)
2158 Answer = VRMessage('Main',NLVGetMessage(64) , NLVGetMessage( 36,options.!user||upw'@'options.!workgroup'\\'options.!server'\'options.!share, vfs.!mountpoint ), 'W','buttons.')
2159 if Answer = 2 then do
2160 call VRSet VRWindow(), 'Pointer', '<default>'
2161 say "Double connection - do not mount!!"
2162 return
2163 end
2164 end
2165 end
2166
2167 cd.lastrh = ""
2168 ok = ParseResourceData(vfs.!mountpoint,'SMBFS SMBFS64 \\'options.!workgroup':'options.!server'\'options.!share'@'options.!user||src' 'rwFlag)
2169
2170 /* Now mount the resource */
2171 dyn ="ok = "fs.!prefix"RxMount('smbfs', vfs.!mountpoint, src, rwFlag)"
2172 IF options.!debug == 1 THEN SAY time()' '||dyn
2173 interpret dyn; drop dyn
2174
2175 IF options.!debug == 1 THEN SAY time()' '||'Mount "'vfs.!mountpoint'" =' ok
2176 if ok <> 0 then do
2177 if options.!password <> "" then upw = ":********"
2178 else upw = ""
2179 buttons.0 = 2
2180 buttons.1 = NLVGetMessage(2)
2181 buttons.2 = NLVGetMessage(37)
2182 Answer = VRMessage('Main', SysGetMessage(ok), NLVGetMessage( 36, options.!user||upw'@'options.!workgroup'\\'options.!server'\'options.!share, vfs.!mountpoint ), 'W','buttons.')
2183 if Answer = 2 then do /* Show explanation */
2184 xx = VRMessage('Main', NLVGetMessage( 36, options.!user||upw'@'options.!workgroup'\\'options.!server'\'options.!share, vfs.!mountpoint )||'0D0A'x||'0D0A'x||SysGetMessage(ok)||'0D0A'x||'0D0A'x||SysGetMessage(ok, 'OSO001H.MSG'), NLVGetMessage(37), 'W')
2185 end
2186 if cd.lastrh <> '' then do
2187 ok = VRMethod("CN_CONDET", "SetFieldData", cd.lastrh, cd.statusfh, '#68:PMWP.DLL') /* Passive Connection icon */
2188 ok = VRMethod("CN_CONDET", "SetRecordAttr", cd.lastrh, "Icon", '#68:PMWP.DLL') /* Passive Connection icon */
2189 ok = VRMethod("CN_CONDET", "SetFieldData", cd.lastrh, cd.passwordfh, '') /* remove pain text password */
2190 end
2191
2192 /* In case the mountpoint was created for this failed operation, it is (optionally) removed again */
2193 if CreateMP = 0 & \advanced.!alwaysmp then do
2194 dyn ="ok = "fs.!prefix"RxDeleteMountPoint( vfs.!mountpoint )"
2195 interpret dyn
2196 IF options.!debug == 1 THEN SAY time()' '||'Remove "'vfs.!mountpoint'" = 'ok
2197 end
2198 end
2199 drop CreateMP /* not required anymore */
2200
2201/* Obsolete - the IOCtl will not be implemented this way in the plugin
2202 The REXX function is present, but is has no counterpart in the plugin
2203 ok = EvfsRxIoctl( 100 , vfs.!mountpoint, outstring)
2204 IF options.!debug == 1 THEN SAY time()' '||'RxIoctl "'vfs.!mountpoint'" = 'ok', 'outstring
2205 */
2206 /* Set mouse pointer to default again */
2207 call VRSet VRWindow(), 'Pointer', '<default>'
2208 IF options.!debug == 1 THEN SAY time()' Mount procedure done'
2209RETURN ok
2210
2211/*:VRX MyFreeDriveMap
2212*/
2213MyFreeDriveMap: procedure expose options. fs. samba.
2214 IF options.!debug == 1 THEN SAY time()' MyFreeDriveMap(proc) started'
2215 alldrives = "C: D: E: F: G: H: I: J: K: L: M: N: O: P: Q: R: S: T: U: V: W: X: Y: Z:"
2216/* IF options.!debug == 1 THEN SAY time()' '||"SysDriveMap(USED) started" */
2217 useddrives= SysDriveMap("C:","USED")
2218/* IF options.!debug == 1 THEN SAY time()' '||"SysDriveMap(USED) done" */
2219
2220 Alldr = words(alldrives)
2221 FreeDriveMap = ""
2222 do I = 1 to AllDr
2223 if word(alldrives,1) = word(useddrives,1) then do
2224 Useddrives = subword(useddrives,2)
2225 Alldrives = subword(Alldrives,2)
2226 end
2227 else do
2228 FreeDriveMap = FreeDriveMap||word(alldrives,1)||' '
2229 Alldrives = subword(Alldrives,2)
2230 end
2231 end
2232 IF options.!debug == 1 THEN SAY time()' MyFreeDriveMap(proc) done, result "'FreeDriveMap'"'
2233return FreeDriveMap
2234/*:VRX NoEVFSCALL
2235*/
2236NoEVFSCALL:
2237 CALL VRMessage 'Main', NLVGetMessage( 100 ), NLVGetMessage( 5 ), 'E'
2238 signal Halt
2239RETURN
2240
2241/*:VRX ParseCommandLine
2242*/
2243ParseCommandLine:
2244 IF options.!debug == 1 THEN SAY time()' ParseCommandLine() started'
2245 CmdLine = VRGet("Application","Commandline")
2246 upCmdLine = translate(CmdLine)
2247 IF options.!debug == 1 THEN SAY ' Commandline = "'CmdLine'"'
2248
2249 ForceNDFS = 0
2250 if wordpos('-NDFS',upCmdLine) > 0 then do
2251 IF options.!debug == 1 THEN SAY " NDFS switch detected"
2252 CmdLine = delWord(CmdLine,wordpos('-NDFS',upCmdLine),1)
2253 upCmdLine = translate(CmdLine)
2254 ForceNDFS = 1
2255 CALL VRSet "PB_AutoStart","Visible", 0
2256 end
2257
2258 if wordpos('-AUTOCLOSE',upCmdLine) > 0 then do
2259 options.!autoclose = 1
2260 IF options.!debug == 1 THEN SAY " AutoClose switch detected"
2261 CmdLine = delWord(CmdLine,wordpos('-AUTOCLOSE',upCmdLine),1)
2262 upCmdLine = translate(CmdLine)
2263 end
2264 if wordpos('-NOGUI',upCmdLine) > 0 then do
2265 options.!nogui = 1
2266 options.!autoclose = 1
2267 IF options.!debug == 1 THEN SAY " -NOGUI switch detected"
2268 CmdLine = delWord(CmdLine,wordpos('-NOGUI',upCmdLine),1)
2269 upCmdLine = translate(CmdLine)
2270 end
2271
2272 Profile = strip(CmdLine,,'"')
2273 if Profile <> "" then do
2274 Profile = strip(VRParseFilename(Profile,"DPNE"))
2275 options.!autoload = 1
2276 IF options.!debug == 1 THEN SAY ' Profile = "'Profile'"'
2277 if \VRFileExists(Profile) then do
2278 CALL VRMessage 'Main', NLVGetMessage( 102, Profile ), NLVGetMessage( 1 ), 'E'
2279 /* Disable all switches in case of an error */
2280 options.!autoload = 0
2281 options.!autoclose = 0
2282 options.!nogui = 0
2283 end
2284 end
2285 IF options.!debug == 1 THEN SAY time()' ParseCommandLine done'
2286return
2287
2288/*:VRX ParseResourceData
2289*/
2290ParseResourceData: PROCEDURE EXPOSE userdata options. advanced. fs. cd. samba.
2291 PARSE ARG userdata, resdata
2292 IF options.!debug == 1 THEN SAY time()' ParseResourceData started'
2293 IF options.!debug == 1 THEN SAY ' receiving "'userdata'" "'resdata'" length ('length(resdata)')'
2294
2295/* WARNING! resdata has a maximal length of 255 and is truncated otherwise */
2296
2297/* PARSE VAR resdata . ';WORKGROUP='p_domain';SERVER='p_server';SHARE='p_share';' . */
2298
2299 if left(word(resdata,1),5) <> "SMBFS" then do
2300 /* Support for other filesystems would come here! */
2301 userData = "UNKNOWN"
2302 end
2303 else do
2304 cd.lastrh = VRMethod("CN_CONDET","AddRecord")
2305 PARSE VAR userdata p_mpoint ';' p_mpidx ';' .
2306
2307 p_mpoint = strip(p_mpoint,'T','\')||'\'
2308 p_rw = word(resdata, words(resdata))
2309
2310 /* Workaround for truncated resdata string */
2311 if length(p_rw) > 1 then do
2312 /* The resdata string must have been truncated
2313 p_rw is already wrong and
2314 p_easupport will most likely be also wrong (look below for workaround!) */
2315 p_rw ="W" /* this is guessed only!!! */
2316 IF options.!debug == 1 THEN SAY ' WARNING! Detected truncated resdata string - shorten workgroup name, server name, share name until this message goes away!'
2317 end
2318 /* this should be done unconditionally if the resdata string is never truncated */
2319 else resdata = left(resdata,length(resdata)-length(p_rw))
2320
2321 PARSE VAR resdata . 'WORKGROUP=' p_domain ';' .
2322 PARSE VAR resdata . 'SERVER=' p_server ';' .
2323 PARSE VAR resdata . 'SHARE=' p_share ';' .
2324 PARSE VAR resdata . 'USER=' p_user ';' .
2325 PARSE VAR resdata . ';PASSWORD=' p_password ';' .
2326 PARSE VAR resdata . 'SPASSWORD=' p_spassword ';' .
2327 PARSE VAR resdata . 'MASTER=' p_master ';' .
2328 PARSE VAR resdata . 'MASTERTYPE=' p_mtype ';' .
2329 PARSE VAR resdata . 'MEMLEN=' p_memlen ';' .
2330 PARSE VAR resdata . 'LOGFILE=' p_logfile ';' .
2331 PARSE VAR resdata . 'LOGLEVEL=' p_loglevel ';' .
2332 PARSE VAR resdata . 'EASUPPORT=' p_easupport ' '
2333
2334 if p_master = "" then p_master = "WORKGROUP"
2335 if p_mtype = "" then p_mtype = "1"
2336 if p_loglevel = "" then p_loglevel = "0"
2337 if p_memlen = "" then p_memlen = "2"
2338
2339 /* Also works around for a truncated resdata string! */
2340 if p_easupport= "" | p_easupport= " " then p_easupport = strip(options.!easupport)
2341
2342 if p_password <> "" & p_spassword = "" then do
2343 p_spassword = c2x(p_password)
2344 p_password = ""
2345 end
2346
2347 ok = VRMethod("CN_CONDET", "SetFieldData", cd.lastrh, cd.mpointFH, p_mpoint, cd.mpidxfh, p_mpidx, cd.workgroupfh, p_domain, cd.serverfh, p_server, cd.sharefh, p_share, cd.userfh, p_user)
2348 ok = VRMethod("CN_CONDET", "SetFieldData", cd.lastrh, cd.passwordfh, p_password, cd.spasswordfh, p_spassword, cd.masterfh, p_master, cd.mtypefh, p_mtype)
2349 ok = VRMethod("CN_CONDET", "SetFieldData", cd.lastrh, cd.memlenfh, p_memlen, cd.easupportfh, p_easupport, cd.logfilefh, p_logfile, cd.loglevelfh, p_loglevel, cd.rwfh, p_rw)
2350 ok = VRMethod("CN_CONDET", "SetFieldData", cd.lastrh, cd.statusfh, '#64:PMWP.DLL') /* Active */
2351 ok = VRMethod("CN_CONDET", "SetRecordAttr", cd.lastrh, "Icon", '#64:PMWP.DLL') /* Active */
2352
2353 hashstr = p_mpoint' 'translate(p_domain)' 'translate(p_server)' 'translate(p_share)' 'p_user' 'p_spassword' 'p_easupport' 'p_rw
2354
2355 md5 = rexx_md5(hashstr)
2356
2357 ok = VRMethod("CN_CONDET", "SetFieldData", cd.lastrh, cd.hashfh,md5)
2358
2359 SELECT
2360 WHEN p_share == '' & p_server \= '' THEN DO /* all shares on server */
2361 IF p_domain == '' THEN
2362 userdata = userdata';\\'p_server'\*'
2363 ELSE
2364 userdata = userdata';'p_domain':\\'p_server'\*'
2365 END
2366 WHEN p_server == '' & p_domain \= '' THEN /* all servers in workgroup */
2367 userdata = userdata';'p_domain':\\*'
2368 WHEN p_server == '' & p_domain == '' THEN /* all workgroups */
2369 userdata = userdata';*:\\*'
2370 OTHERWISE DO
2371 IF p_domain == '' THEN
2372 userdata = userdata';\\'p_server'\'p_share
2373 ELSE
2374 userdata = userdata';'p_domain':\\'p_server'\'p_share
2375 END
2376 END
2377 end
2378
2379 IF options.!debug == 1 THEN SAY ' returning "'userdata'"'
2380 IF options.!debug == 1 THEN SAY time()' ParseresdataData done'
2381RETURN userdata
2382
2383/*:VRX PB_ADVANCED_Click
2384*/
2385PB_ADVANCED_Click:
2386 adv_changed = 0
2387 CALL VRLoadSecondary "SW_ADVANCED", "W"
2388 IF adv_changed == 1 THEN DO
2389 advanced.!memlen = adv_memlen
2390 advanced.!easupport = adv_eas
2391 advanced.!readonly = adv_readonly
2392 advanced.!alwaysmp = adv_alwaysmp
2393 END
2394RETURN
2395
2396/*:VRX PB_ADVCANCEL_Click
2397*/
2398PB_ADVCANCEL_Click:
2399
2400 adv_changed = 0
2401 CALL SW_ADVANCED_Close
2402
2403RETURN
2404
2405/*:VRX PB_ADVHELP_Click
2406*/
2407PB_ADVHELP_Click:
2408 CALL VRMethod 'SW_ADVANCED', 'InvokeHelp'
2409return
2410
2411/*:VRX PB_ADVOK_Click
2412*/
2413PB_ADVOK_Click:
2414
2415 adv_memlen = VRGet( "SPB_MEMLEN", "Value" )
2416 adv_eas = VRGet( "CB_EAS", "Set" )
2417 adv_readonly = VRGet( "CB_READONLY", "Set" )
2418 adv_alwaysmp = VRGet( "CB_ALWAYSMP", "Set" )
2419
2420 CALL SW_ADVANCED_Close
2421
2422return
2423
2424/*:VRX PB_AUTOSTART_Click
2425*/
2426PB_AUTOSTART_Click: PROCEDURE EXPOSE settings. options. Profile fs. cd. advanced. samba.
2427 options.!autostart = 1
2428 Profile = VRParseFilename(settings.!ini,'DPN')'.'fs.!profileext
2429
2430 CALL PB_SAVE_Click
2431
2432 rc = CreateObject( 'WPProgram', NLVGetMessage( 59 ),'<WP_START>',,
2433 'EXENAME='||VRParseFileName(VRget("Application","Program"),'DPNE')||';'||,
2434 'PROGTYPE=PM;'||,
2435 'TITLE='NLVGetMessage( 59 )';'||,
2436 'PARAMETERS='Profile' -AUTOCLOSE -NOGUI;'||,
2437 'STARTUPDIR='VRParseFileName(VRget("Application","Program"),'DP')';'||,
2438 'NOPRINT=YES;'||,
2439 'HIDEBUTTON=DEFAULT;'||,
2440 'MINWIN=DEFAULT;'||,
2441 'CCVIEW=DEFAULT;'||,
2442 'DEFAULTVIEW=DEFAULT;'||,
2443 'OBJECTID=<EVFSGUI_AUTOSTART>',,
2444 'REPLACE' )
2445
2446 IF rc == 1 THEN CALL VRMessage 'Main', NLVGetMessage( 60 ), NLVGetMessage( 1 )
2447 ELSE CALL VRMessage 'Main', NLVGetMessage( 61 ), NLVGetMessage( 5 ), 'E'
2448
2449 options.!autostart = 0
2450RETURN
2451
2452/*:VRX PB_CLOSE_Click
2453*/
2454PB_CLOSE_Click:
2455 CALL Quit
2456return
2457
2458/*:VRX PB_CONDET_LOAD_Click
2459*/
2460PB_CONDET_LOAD_Click:
2461 IF options.!debug == 1 THEN SAY time()' '||"PB_REFRESH_Click started"
2462 call PB_LOAD_CLICK
2463 IF options.!debug == 1 THEN SAY time()' '||"PB_REFRESH_Click done"
2464RETURN
2465
2466/*:VRX PB_CONDET_SAVE_Click
2467*/
2468PB_CONDET_SAVE_Click: PROCEDURE EXPOSE settings. options. Profile fs. cd. advanced. samba.
2469 IF options.!debug == 1 THEN SAY time()' '||"PB_CONDET_SAVE_Click started"
2470
2471 if options.!autostart == 0 THEN filename = VRFileDialog('Main', NLVGetMessage( 50 ), 'S', '*.'fs.!profileext)
2472 ELSE filename = Profile
2473
2474 IF filename == '' THEN RETURN
2475
2476 IF STREAM( filename, 'C', 'QUERY EXISTS') \= '' THEN DO
2477 btns.0 = 2
2478 btns.1 = NLVGetMessage( 6 )
2479 btns.2 = NLVGetMessage( 7 )
2480 confirm = VRMessage('Main', NLVGetMessage( 54, filename ), NLVGetMessage( 53 ), 'W', 'btns.', 1, 2 )
2481 IF confirm \= 1 THEN RETURN
2482 CALL VRChAttr filename,, 'HSR'
2483 CALL VRDeleteFile filename
2484 END
2485
2486 CALL VRMethod 'CN_CONDET', 'GetRecordList', 'All', 'records.'
2487 DO i = 1 TO records.0
2488 resdata = ""
2489 resdata = resdata||VRMethod("CN_CONDET","GetFieldData", records.i, cd.mpointfh)||" "
2490 resdata = resdata||'\\'||VRMethod("CN_CONDET","GetFieldData", records.i, cd.workgroupfh)
2491 resdata = resdata||':'||VRMethod("CN_CONDET","GetFieldData", records.i, cd.serverfh)
2492 resdata = resdata||'\'||VRMethod("CN_CONDET","GetFieldData", records.i, cd.sharefh)
2493 resdata = resdata||'@'||VRMethod("CN_CONDET","GetFieldData", records.i, cd.userfh)
2494 resdata = resdata||';WORKGROUP='||VRMethod("CN_CONDET","GetFieldData", records.i, cd.workgroupfh)
2495 resdata = resdata||';SERVER='||VRMethod("CN_CONDET","GetFieldData", records.i, cd.serverfh)
2496 resdata = resdata||';SHARE='||VRMethod("CN_CONDET","GetFieldData", records.i, cd.sharefh)
2497 resdata = resdata||';USER='||VRMethod("CN_CONDET","GetFieldData", records.i, cd.userfh)
2498 resdata = resdata||';PASSWORD='||VRMethod("CN_CONDET","GetFieldData", records.i, cd.passwordfh)
2499 resdata = resdata||';SPASSWORD='||VRMethod("CN_CONDET","GetFieldData", records.i, cd.spasswordfh)
2500 resdata = resdata||';MASTER='||VRMethod("CN_CONDET","GetFieldData", records.i, cd.masterfh)
2501 resdata = resdata||';MASTERTYPE='||VRMethod("CN_CONDET","GetFieldData", records.i, cd.mtypefh)
2502/* resdata = resdata||';MEMLEN='||VRMethod("CN_CONDET","GetFieldData", records.i, cd.memlenfh)
2503 resdata = resdata||';LOGFILE='||VRMethod("CN_CONDET","GetFieldData", records.i, cd.logfilefh)
2504 resdata = resdata||';LOGLEVEL='||VRMethod("CN_CONDET","GetFieldData", records.i, cd.loglevelfh) */
2505 resdata = resdata||';EASUPPORT='||VRMethod("CN_CONDET","GetFieldData", records.i, cd.easupportfh)
2506 resdata = resdata||' '||VRMethod("CN_CONDET","GetFieldData", records.i, cd.rwfh)
2507 call lineout filename, resdata
2508 END
2509 CALL STREAM filename, 'C', 'CLOSE'
2510
2511 if options.!autostart == 0 THEN CALL VRMessage 'Main', NLVGetMessage( 52, filename ), NLVGetMessage( 51 ), 'I'
2512
2513 IF options.!debug == 1 THEN SAY time()' '||"PB_CONDET_SAVE_Click done"
2514RETURN
2515
2516/*:VRX PB_CONNECT_Click
2517*/
2518PB_CONNECT_Click: PROCEDURE EXPOSE settings. options. fs. advanced. cd. samba.
2519 IF options.!debug == 1 THEN SAY time()' '||"PB_CONNECT_Click started"
2520 p_workgroup = ''
2521 p_server = ''
2522 p_share = ''
2523
2524 ok = VRMethod( "CN_SMBTREE", "GetRecordList", "Selected", "handle." )
2525
2526 say "handle.0="handle.0
2527
2528 if handle.0 = 0 then return
2529
2530 srcCtn = "CN_SMBTree"
2531 srcRec = handle.1
2532 trgCtn = "CN_Current"
2533 trgRec = ""
2534
2535 ok = VRMethod("CB_MOUNT", "GetStringList", "ShareLevels." )
2536
2537 say VRGet(srcCtn,'Name')
2538 say "TargetRecord = '"trgRec"'"
2539
2540 DragCapt = VRMethod(srcCtn, "GetRecordAttr", srcRec, "Caption")
2541 parRH = VRMethod(srcCtn, "GetRecordAttr", srcRec, "Parent")
2542
2543 if parRH = "" then do /* A workgroup was dragged */
2544 say "Workgroup dragged!"
2545 parse var DragCapt p_workgroup '0D0A'x .
2546 p_workgroup = strip(p_workgroup)
2547 ok = VRSet("EF_NETWORK","Value",strip(p_workgroup))
2548 ok = VRSet("EF_SERVER","Value","")
2549 ok = VRSet("EF_SHARE","Value","")
2550
2551 ShareLevel = 3
2552 end
2553 else do
2554 ParDragCapt = VRMethod(srcCtn, "GetRecordAttr", ParRH, "Caption")
2555 GParRH = VRMethod(srcCtn, "GetRecordAttr", ParRH, "Parent")
2556
2557 if GParRH = "" then do /* A server was dragged */
2558 say "Server dragged!"
2559 parse var ParDragCapt p_workgroup '0D0A'x .
2560 ok = VRSet("EF_NETWORK","Value",strip(p_workgroup))
2561 p_workgroup = strip(p_workgroup)
2562
2563 parse var DragCapt p_server '0D0A'x .
2564 p_server = strip(p_server)
2565 ok = VRSet("EF_SERVER","Value",strip(p_server))
2566 ok = VRSet("EF_Share","Value","")
2567
2568 ShareLevel = 2
2569 end
2570 else do /* A share was dragged */
2571 say "Share dragged!"
2572 GParDragCapt = VRMethod(srcCtn, "GetRecordAttr", GParRH, "Caption")
2573
2574 parse var GParDragCapt p_workgroup '0D0A'x .
2575 p_workgroup = strip(p_workgroup)
2576 ok = VRSet("EF_NETWORK","Value",strip(p_workgroup))
2577
2578 parse var ParDragCapt p_server '0D0A'x .
2579 p_server = strip(p_server)
2580 ok = VRSet("EF_SERVER","Value",strip(p_server))
2581
2582 parse var DragCapt p_share '0D0A'x .
2583 p_share = strip(p_share)
2584 ok = VRSet("EF_Share","Value",strip(p_share))
2585
2586 ShareLevel = 1
2587 end
2588 end
2589
2590 say 'p_workgroup = "'p_workgroup'"'
2591 say 'p_server = "'p_server'"'
2592 say 'p_share = "'p_share'"'
2593
2594 ok = VRSet( "CB_MOUNT", "Selected", Sharelevel )
2595 call CB_MOUNT_Change
2596
2597 if trgRec = "" then do
2598 window = VRLoadSecondary( "SW_MOUNTPOINT", "W" )
2599 if VRGet("CB_DRIVES","Value") = "" then return
2600 end
2601 else do
2602
2603 TargetString = VRMethod(trgCtn, "GetRecordAttr", trgRec, "Caption")
2604
2605 parTrgRH = VRMethod(trgCtn, "GetRecordAttr", trgRec, "Parent")
2606
2607 do while parTrgRH <> ""
2608 partrgCapt = VRMethod(trgCtn, "GetRecordAttr", partrgRH, "Caption")
2609 TargetString = partrgCapt||'\'||TargetString
2610 parTrgRH = VRMethod(trgCtn, "GetRecordAttr", partrgRH , "Parent")
2611 end
2612 say 'TargetString = "'TargetString'"'
2613 ok = VRSet("CB_DRIVES","Value", left(TargetString,2))
2614 ok = VRSet("EF_DIRECTORY","Value", substr(TargetString,4))
2615 end
2616
2617 window = VRLoadSecondary( "SW_LOGIN", "W" )
2618
2619 call PB_MOUNT_CLICK
2620
2621 IF options.!debug == 1 THEN SAY time()' '||"PB_CONNECT_Click done"
2622RETURN
2623
2624/*:VRX PB_DETACH_Click
2625*/
2626PB_DETACH_Click: PROCEDURE EXPOSE settings. options. fs. cd. samba.
2627 IF options.!debug == 1 THEN SAY time()' '||"PB_DETACH_Click started"
2628 CALL VRMethod 'CN_CURRENT', 'GetRecordList', 'Selected', 'select.'
2629 IF select.0 < 1 THEN RETURN
2630
2631 userdata = VRMethod( 'CN_CURRENT', 'GetRecordAttr', select.1, 'UserData')
2632 PARSE VAR userdata mountpoint ';' mounts ';' .
2633 drive = STRIP( mountpoint, 'T', '\')
2634
2635 btns.0 = 2
2636 btns.1 = NLVGetMessage( 6 )
2637 btns.2 = NLVGetMessage( 7 )
2638 confirm = VRMessage('Main', NLVGetMessage( 58, drive ), NLVGetMessage( 8 ), 'Q', 'btns.', 1, 2 )
2639 IF confirm \= 1 THEN RETURN
2640
2641 /* TODO: ?? Unmount & delete all child mountpoints? */
2642
2643 /* Unmount any resources */
2644 DO i = 1 TO mounts
2645 dyn ="ok = "fs.!prefix"RxUnmount( mountpoint, i-1 )"
2646 IF options.!debug == 1 THEN SAY time()' '||dyn
2647 interpret dyn; drop dyn
2648/* IF options.!debug == 1 THEN SAY time()' '||'Unmount resource' i-1 '=' ok */
2649 END
2650
2651 dyn ="ok = "fs.!prefix"RxDetach( drive )"
2652 IF options.!debug == 1 THEN SAY time()' '||dyn
2653 interpret dyn; drop dyn
2654/* IF options.!debug == 1 THEN SAY time()' '||'Detach' drive '=' ok */
2655
2656 CALL Refresh
2657 IF options.!debug == 1 THEN SAY time()' '||"PB_DETACH_Click done"
2658RETURN
2659
2660/*:VRX PB_EDITCANCEL_Click
2661*/
2662PB_EDITCANCEL_Click:
2663 options.!editmode = 0
2664 CALL VRSet "PB_UNMOUNT","Enabled", 1
2665 CALL VRSet "PB_SAVE","Enabled", 1
2666 CALL VRSet "PB_LOAD","Enabled", 1
2667 CALL VRSet "GB_CURRENT", "ENABLED", 1
2668 ok = VRSet("PB_EDITCANCEL","Visible", 0)
2669 CALL NLVSetText 'DT_DIALOG', 'Caption', 13
2670RETURN 0
2671
2672/*:VRX PB_HELP_Click
2673*/
2674PB_HELP_Click:
2675 CALL VRMethod 'Main', 'InvokeHelp'
2676return
2677
2678/*:VRX PB_INFO_OK_Click
2679*/
2680PB_INFO_OK_Click:
2681 call SW_INFO_Close
2682RETURN
2683
2684/*:VRX PB_LOAD_Click
2685*/
2686PB_LOAD_Click: PROCEDURE EXPOSE settings. options. advanced. vfs. Profile fs. cd. samba.
2687 IF options.!autoload == 1 then filename = Profile
2688 else filename = VRFileDialog('Main', NLVGetMessage( 55 ), 'L', '*.'fs.!profileext)
2689 IF filename == '' THEN RETURN
2690 IF STREAM( filename, 'C', 'QUERY EXISTS') == '' THEN DO
2691 CALL VRMessage 'Main', NLVGetMessage( 56, filename ), NLVGetMessage( 5 ), 'E'
2692 RETURN
2693 END
2694
2695 CALL LINEIN filename, 1, 0
2696 DO WHILE LINES( filename )
2697 PARSE VALUE LINEIN( filename ) WITH node resource rwFlag
2698
2699 vfs.!drive = FILESPEC('DRIVE', node )
2700 vfs.!mountpoint = STRIP( node, 'T', '\')
2701
2702 /* In case we only have a volume we reattach the backslash, otherwise restore will fail */
2703 if vfs.!drive = vfs.!mountpoint then vfs.!mountpoint = vfs.!mountpoint||'\'
2704
2705
2706 PARSE VAR resource . 'WORKGROUP=' workgroup ';' .
2707 PARSE VAR resource . 'SERVER=' server ';' .
2708 PARSE VAR resource . 'SHARE=' share ';' .
2709 PARSE VAR resource . 'USER=' user ';' .
2710 PARSE VAR resource . 'PASSWORD=' password ';' .
2711 PARSE VAR resource . 'SPASSWORD=' spassword ';' .
2712 PARSE VAR resource . 'MASTER=' master ';' .
2713 PARSE VAR resource . 'MASTERTYPE=' mtype ';' .
2714/* PARSE VAR resource . 'MEMLEN=' memlen ';' .
2715 PARSE VAR resource . 'LOGFILE=' logfile ';'.
2716 PARSE VAR resource . 'LOGLEVEL=' loglevel ';' . */
2717 PARSE VAR resource . 'EASUPPORT=' easupport .
2718
2719 options.!workgroup = workgroup
2720 options.!server = server
2721 options.!share = share
2722 options.!user = user
2723 options.!password = password
2724 options.!spassword = spassword
2725 options.!master = master
2726 options.!mastertype = mtype
2727 options.!memlen = memlen
2728 options.!easupport = easupport
2729 options.!logfile = logfile
2730 options.!loglevel = loglevel
2731
2732 IF rwFlag == 'R' THEN
2733 options.!readonly = 1
2734 ELSE
2735 options.!readonly = 0
2736
2737 CALL Mount
2738
2739 END
2740 CALL STREAM filename, 'C', 'CLOSE'
2741
2742 options.!autoload = 0
2743
2744 CALL Refresh
2745RETURN
2746
2747/*:VRX PB_LOGIN_CANCEL_Click
2748*/
2749PB_LOGIN_CANCEL_Click:
2750 call SW_LOGIN_Close
2751RETURN 0
2752
2753/*:VRX PB_LOGIN_OK_Click
2754*/
2755PB_LOGIN_OK_Click:
2756 ok = VRSet("EF_USER","Value",VRGet("EF_USER1","Value"))
2757 ok = VRSet("EF_PASSWORD","Value",VRGet("EF_PASSWORD1","Value"))
2758
2759 call SW_LOGIN_Close
2760RETURN
2761
2762/*:VRX PB_MOUNT_Click
2763*/
2764PB_MOUNT_Click:
2765 IF options.!debug == 1 THEN SAY time()' '||"PB_MOUNT_Click started"
2766say "network = "network
2767 if options.!editmode = 1 then do
2768 CALL PB_UNMOUNT_Click
2769 options.!editmode = 0
2770 CALL NLVSetText 'DT_DIALOG', 'Caption', 13
2771 CALL VRSet "PB_UNMOUNT","Enabled", 1
2772 CALL VRSet "PB_SAVE","Enabled", 1
2773 CALL VRSet "PB_LOAD","Enabled", 1
2774 CALL VRSet "GB_CURRENT", "ENABLED", 1
2775 end
2776
2777 options.!workgroup = ''
2778 options.!server = ''
2779 options.!share = ''
2780 options.!user = ''
2781 options.!password = ''
2782 options.!master = ''
2783 options.!mastertype = ''
2784 options.!memlen = advanced.!memlen
2785 options.!easupport = advanced.!easupport
2786 options.!readonly = advanced.!readonly
2787 options.!loglevel = advanced.!loglevel
2788 options.!logfile = advanced.!logfile
2789
2790 vfs.!drive = ''
2791 vfs.!mountpoint = ''
2792
2793 stype = VRGet( "CB_MOUNT", "Selected" )
2794 share = STRIP( VRGet( "EF_SHARE", "Value" ))
2795 server = STRIP( VRGet( "EF_SERVER", "Value" ))
2796 network = STRIP( VRGet( "EF_NETWORK", "Value" ))
2797 mtype = VRGet( "CHK_MTYPE", "Set" )
2798 userid = STRIP( VRGet( "EF_USER", "Value" ))
2799 password = STRIP( VRGet( "EF_PASSWORD", "Value" ))
2800 mdrive = VRGet( "CB_DRIVES", "SelectedText" )
2801 if mdrive = "" then mdrive = VRGet( "CB_DRIVES", "Value" )
2802 mpath = STRIP( VRGet( "EF_DIRECTORY", "Value" ))
2803
2804 IF ( stype < 1 | stype > 4 ) THEN stype = 1
2805
2806 /* The required/optional/ignored parameters depend on the type of mount
2807 * requested. (Note, however, that the user, password, easupport and
2808 * memlen parameters are always optional.)
2809 */
2810 SELECT
2811 /* Scenario 1: Mount a single share.
2812 * Required: share, server
2813 * Optional: workgroup
2814 * Unused: master, mastertype
2815 */
2816 WHEN stype = 1 THEN DO
2817 IF server == '' | share == '' THEN DO
2818 /* error */
2819 RETURN 1
2820 END
2821 options.!server = server
2822 options.!share = share
2823 options.!workgroup = network
2824 END
2825
2826 /* Scenario 2: Mount all shares on a server.
2827 * Required: server
2828 * Optional: workgroup
2829 * Unused: share, master, mastertype
2830 */
2831 WHEN stype = 2 THEN DO
2832 IF server == '' THEN DO
2833 /* error */
2834 RETURN 1
2835 END
2836 options.!server = server
2837 options.!workgroup = network
2838 END
2839
2840 /* Scenario 3: Mount all servers in a workgroup.
2841 * Required: workgroup
2842 * Optional: -
2843 * Unused: share, server, master, mastertype
2844 */
2845 WHEN stype = 3 THEN DO
2846 IF workgroup == '' THEN DO
2847 /* error */
2848 RETURN 1
2849 END
2850 options.!workgroup = network
2851 END
2852
2853 /* Scenario 4: Mount all workgroups known to a master.
2854 * Required: master, mastertype
2855 * Optional: -
2856 * Unused: share, server, workgroup
2857 */
2858 WHEN stype = 4 THEN DO
2859 IF master == '' | mastertype == '' THEN DO
2860 /* error */
2861 RETURN 1
2862 END
2863 options.!master = network
2864 options.!mastertype = mtype
2865 END
2866 END
2867
2868 options.!user = userid
2869 options.!password = password
2870
2871 vfs.!drive = mdrive
2872 vfs.!mountpoint = mdrive'\'mpath
2873
2874 CALL Mount
2875 CALL Refresh
2876 IF options.!debug == 1 THEN SAY time()' '||"PB_MOUNT_Click done"
2877RETURN 0
2878
2879/*:VRX PB_NEWMOUNTPOINTCANCEL_Click
2880*/
2881PB_NEWMOUNTPOINTCANCEL_Click:
2882 ok = VRSet("CB_DRIVES","Value","")
2883 ok = VRSet("EF_DIRECTORY","Value","")
2884 call SW_MOUNTPOINT_Close
2885RETURN 0
2886
2887/*:VRX PB_NEWMOUNTPOINTOK_Click
2888*/
2889PB_NEWMOUNTPOINTOK_Click:
2890 ok = VRSet("CB_DRIVES","Value",VRGet("CB_DRIVES1","Value"))
2891 ok = VRSet("EF_DIRECTORY","Value",VRGet("EF_DIRECTORY1","Value"))
2892 advanced.!readonly = VRGet("CB_READONLY1","Set")
2893 advanced.!easupport = VRGet("CB_EAS1","Set")
2894 advanced.!alwaysmp = VRGet("CB_ALWAYSMP1","Set")
2895say "advanced.!readonly = "advanced.!readonly
2896say "options.!readonly = "options.!readonly
2897 call SW_MOUNTPOINT_Close
2898RETURN
2899
2900/*:VRX PB_PROGRESS_ABORT_Click
2901*/
2902PB_PROGRESS_ABORT_Click:
2903 options.!autoload = 0
2904 options.!autoclose = 0
2905 call VRSet 'Main', 'Visible', 1
2906 call SW_PROGRESS_Close
2907return
2908
2909/*:VRX PB_REFRESH_Click
2910*/
2911PB_REFRESH_Click: PROCEDURE EXPOSE settings. options. fs. samba. debuglevel advanced. UserCred Refreshmode
2912 IF options.!debug == 1 THEN SAY time()' '||"PB_REFRESH_Click started"
2913 call _UserCredUpdate
2914 ok = VRset("Pict_Throbber", "Visible", 1)
2915 ok = VRset("Menu_Selected_Connect", "Visible", 0)
2916 ok = VRset("TM_Throbber", "Enabled", 1)
2917 ShowHidden = advanced.!special
2918 BroadCast = advanced.!broadcast
2919 ok = time('R')
2920 call _RefreshTree
2921 IF options.!debug == 1 THEN SAY time()' '||"PB_REFRESH_Click done"
2922RETURN
2923
2924/*:VRX PB_SAVE_Click
2925*/
2926PB_SAVE_Click: PROCEDURE EXPOSE settings. options. Profile fs. cd. advanced. samba.
2927 call PB_CONDET_SAVE_Click
2928
2929/* if options.!autostart == 0 THEN filename = VRFileDialog('Main', NLVGetMessage( 50 ), 'S', '*.'fs.!profileext)
2930 ELSE filename = Profile
2931
2932 IF filename == '' THEN RETURN
2933
2934 IF STREAM( filename, 'C', 'QUERY EXISTS') \= '' THEN DO
2935 btns.0 = 2
2936 btns.1 = NLVGetMessage( 6 )
2937 btns.2 = NLVGetMessage( 7 )
2938 confirm = VRMessage('Main', NLVGetMessage( 54, filename ), NLVGetMessage( 53 ), 'W', 'btns.', 1, 2 )
2939 IF confirm \= 1 THEN RETURN
2940 CALL VRChAttr filename,, 'HSR'
2941 CALL VRDeleteFile filename
2942 END
2943
2944 CALL VRMethod 'CN_CURRENT', 'GetRecordList', 'All', 'records.'
2945 DO i = 1 TO records.0
2946 data = VRMethod('CN_CURRENT', 'GetRecordAttr', records.i, 'UserData')
2947 IF data == '' THEN ITERATE
2948 PARSE VAR data node ';' mounts ';' .
2949 dyn = "ok = "fs.!prefix"RxGetMount( node, 'info.', 'mounts.', 'resource.')"
2950 IF options.!debug == 1 THEN SAY time()' '||dyn
2951 interpret dyn; drop dyn
2952
2953 IF ok \= 0 THEN ITERATE
2954
2955 DO j = 1 TO resource.0
2956 CALL LINEOUT filename, node SUBWORD( resource.j, 3 )
2957 END
2958
2959 END
2960 CALL STREAM filename, 'C', 'CLOSE'
2961
2962 if options.!autostart == 0 THEN CALL VRMessage 'Main', NLVGetMessage( 52, filename ), NLVGetMessage( 51 ), 'I'
2963*/
2964RETURN
2965
2966/*:VRX PB_SETTINGS_CANCEL_Click
2967*/
2968PB_SETTINGS_CANCEL_Click:
2969
2970 adv_changed = 0
2971 CALL SW_SETTINGS_Close
2972
2973return
2974
2975/*:VRX PB_SETTINGS_HELP_Click
2976*/
2977PB_SETTINGS_HELP_Click:
2978 CALL VRMethod 'SW_SETTINGS', 'InvokeHelp'
2979return
2980
2981/*:VRX PB_SETTINGS_OK_Click
2982*/
2983PB_SETTINGS_OK_Click:
2984
2985 adv_loglevel = VRGet( "SPIN_LOGLEVEL", "Value" )
2986 adv_logfile = VRGet( "EF_LOGFILE", "Value" )
2987 adv_browseauth = VRGet( "CB_BROWSEAUTH", "Set" )
2988 adv_browseimme = VRGet( "CB_BROWSEIMME", "Set" )
2989 adv_debug = VRGet( "CB_DEBUG", "Set" )
2990 adv_special = VRGet( "CB_SPECIAL", "Set" )
2991 adv_savepassive= VRGet( "CB_SAVEPASSIVE","Set" )
2992 adv_broadcast = VRGet( "CB_BROADCAST", "Set" )
2993
2994 adv_changed = 1
2995 if adv_debug == 1 then ok = VRRedirectStdio("ON")
2996 else ok = VRRedirectStdio("OFF")
2997
2998 CALL SW_SETTINGS_Close
2999
3000return
3001
3002/*:VRX PB_UNMOUNT_Click
3003*/
3004PB_UNMOUNT_Click: PROCEDURE EXPOSE settings. options. fs. cd. samba.
3005 IF options.!debug == 1 THEN SAY time()' '||"PB_UNMOUNT_Click started"
3006 IF options.!debug == 1 THEN SAY time()' '||'options.!editmode = 'options.!editmode
3007 CALL VRMethod 'CN_CURRENT', 'GetRecordList', 'Selected', 'select.'
3008 IF select.0 < 1 THEN RETURN
3009
3010 userdata = VRMethod( 'CN_CURRENT', 'GetRecordAttr', select.1, 'UserData')
3011 PARSE VAR userdata mountpoint ';' mounts ';' .
3012say 'userdata="'userdata'"'
3013 IF mounts > 0 & options.!editmode = 0 THEN DO
3014 btns.0 = 2
3015 btns.1 = NLVGetMessage( 6 )
3016 btns.2 = NLVGetMessage( 7 )
3017 confirm = VRMessage('Main', NLVGetMessage( 57, mountpoint ), NLVGetMessage( 8 ), 'Q', 'btns.', 1, 2 )
3018 IF confirm \= 1 THEN RETURN
3019 END
3020
3021 /* Unmount any resources */
3022 DO i = 1 TO mounts
3023 dyn ="ok = "fs.!prefix"RxUnmount( mountpoint, i-1 )"
3024 IF options.!debug == 1 THEN SAY time()' '||dyn
3025 interpret dyn; drop dyn
3026
3027/* IF options.!debug == 1 THEN SAY time()' '||'Unmount resource' i-1 '=' ok */
3028 END
3029
3030 /* Delete mountpoint */
3031 parent = VRMethod('CN_CURRENT', 'GetRecordAttr', select.1, 'Parent')
3032 IF parent \= '' THEN DO
3033 dyn ="ok = "fs.!prefix"RxDeleteMountPoint( mountpoint )"
3034 IF options.!debug == 1 THEN SAY time()' '||dyn
3035 interpret dyn; drop dyn
3036
3037/* IF options.!debug == 1 THEN SAY time()' '||'Delete mountpoint' mountpoint '=' ok */
3038 END
3039
3040 CALL Refresh
3041 IF options.!debug == 1 THEN SAY time()' '||"PB_UNMOUNT_Click done"
3042RETURN 0
3043
3044/*:VRX Quit
3045*/
3046Quit:
3047 if Fatal <> 1 then CALL SaveSettings
3048 ok = VRREdirectSTdio("OFF")
3049 window = VRWindow()
3050 call VRSet window, "Shutdown", 1
3051 drop window
3052
3053RETURN
3054
3055/*:VRX Refresh
3056*/
3057Refresh:
3058 IF options.!debug == 1 THEN SAY time()' Refresh started'
3059 CALL VRMethod 'CN_CURRENT', 'RemoveRecord', 'All'
3060
3061 /* Remove Active connections from details view */
3062 ok = VRMethod( 'CN_CONDET', "GetRecordList", 'All', "rh." )
3063
3064 do I = 1 to rh.0
3065 /* This catches the bug we observed exactly once and were unable to reproduce! */
3066 if cd.statusfh = 'CD.STATUSFH' then do
3067 call beep 880, 50
3068 call beep 880, 50
3069 IF options.!debug == 1 THEN say " cd.statusfh is undefined - check why!!!!!!"
3070 leave
3071 end
3072 IF options.!debug == 1 THEN say " "||VRMethod( "CN_CONDET", "GetFieldData", rh.i, cd.statusfh)
3073 if VRMethod("CN_CONDET","GetFieldData", rh.i, cd.statusfh) = '#64:PMWP.DLL' then CALL VRMethod 'CN_CONDET', 'RemoveRecord', rh.i
3074 end
3075
3076/* call _AddTemplates */
3077 CALL VRSet "PB_DETACH", "Enabled", 0
3078 CALL VRSet "PB_UNMOUNT", "Enabled", 0
3079
3080 ok = VRSet("Menu_Context_Detach", "Visible", 0)
3081 ok = VRSet("Menu_Context_Unmount", "Visible", 0)
3082 ok = VRSet("Menu_Context_Edit", "Visible", 0)
3083
3084 ok = VRSet("Menu_Selected_Remove", "Visible", 0)
3085 ok = VRSet("Menu_Selected_Retry", "Visible", 0)
3086
3087 IF options.!debug == 1 THEN SAY ' Remove records, disable buttons done.'
3088
3089 CALL VRMethod 'CB_DRIVES', 'Clear'
3090
3091/* Herwig B.
3092 CALL VRSet 'Main', 'StatusText', ' ' */
3093 CALL VRSet 'CN_CURRENT', 'Caption', ' '
3094/* Herwig B. */
3095
3096/* Herwig B.: Attention! The SysDrivemap function with the "free" parameter causes hangs in case it is called repeatedly! */
3097 drvs = MyFreeDriveMap('C:', 'FREE')
3098
3099 DO i = 1 TO WORDS( drvs )
3100 drvstem.i = WORD( drvs, i )
3101 END
3102
3103 drvstem.0 = WORDS( drvs )
3104
3105 /* Add any existing EVFS drives */
3106 CALL GetMountPoints
3107
3108 CALL VRMethod "CB_DRIVES", "AddStringList", "drvstem."
3109 IF options.!debug == 1 THEN SAY time()' '||"Refresh done"
3110RETURN 0
3111
3112/*:VRX SaveSettings
3113*/
3114SaveSettings: PROCEDURE EXPOSE settings. options. fs. advanced. cd. samba.
3115 IF options.!debug == 1 THEN SAY time()' '||"SaveSettings started"
3116
3117 if advanced.!savepassive then call _PassiveSave
3118
3119/* This does not make sense anymore
3120 settings.!network = VRGet("EF_NETWORK","Value")
3121 CALL VRSetIni 'Settings', 'Network', settings.!network, settings.!ini, 'NoClose'
3122 */
3123
3124 font = VRGet('CN_CURRENT', 'Font')
3125 CALL VRSetIni 'Settings', 'ContainerFont', font, settings.!ini, 'NoClose'
3126
3127 font = VRGet('Main', 'Font')
3128 CALL VRSetIni 'Settings', 'WindowFont', font, settings.!ini, 'NoClose'
3129
3130 settings.!curbcolor = VRGet("DT_CURRENT","BackColor")
3131 CALL VRSetIni 'Settings', 'TitleBarBackground', settings.!curbcolor, settings.!ini, 'NoClose'
3132
3133 settings.!curfcolor = VRGet("DT_CURRENT","ForeColor")
3134 CALL VRSetIni 'Settings', 'TitleBarForeground', settings.!curfcolor, settings.!ini, 'NoClose'
3135
3136 settings.!buttonson = VRGet("Menu_View_Buttons","Checked")
3137 CALL VRSetIni 'Settings', 'ButtonsOn', settings.!buttonson, settings.!ini, 'NoClose'
3138
3139 settings.!smbtreeon = VRGet("Menu_View_Smbtree","Checked")
3140 CALL VRSetIni 'Settings', 'SmbtreeOn', settings.!smbtreeon, settings.!ini, 'NoClose'
3141
3142 settings.!dialogon = VRGet("Menu_View_Dialog","Checked")
3143 CALL VRSetIni 'Settings', 'DialogOn', settings.!dialogon, settings.!ini, 'NoClose'
3144
3145 settings.!condeton = VRGet("Menu_View_ConDet","Checked")
3146 CALL VRSetIni 'Settings', 'ConDetOn', settings.!condeton, settings.!ini, 'NoClose'
3147
3148 CALL VRSetIni 'Settings', 'BrowseAuth', advanced.!browseauth , settings.!ini, 'NoClose'
3149 CALL VRSetIni 'Settings', 'BrowseImme', advanced.!browseimme , settings.!ini, 'NoClose'
3150 CALL VRSetIni 'Settings', 'Debug', advanced.!debug , settings.!ini, 'NoClose'
3151 CALL VRSetIni 'Settings', 'AlwaysMP', advanced.!alwaysmp , settings.!ini, 'NoClose'
3152 CALL VRSetIni 'Settings', 'SpecialShares', advanced.!special , settings.!ini, 'NoClose'
3153 CALL VRSetIni 'Settings', 'BigIcons', advanced.!bigicons , settings.!ini, 'NoClose'
3154 CALL VRSetIni 'Settings', 'SavePassive', advanced.!savepassive, settings.!ini, 'NoClose'
3155 CALL VRSetIni 'Settings', 'Broadcast', advanced.!broadcast , settings.!ini, 'NoClose'
3156
3157 /* Save position and size */
3158 settings.!l = VRGet("Main", 'Left' )
3159 settings.!t = VRGet("Main", 'Top' )
3160 settings.!h = VRGet("Main", 'Height')
3161 settings.!w = VRGet("Main", 'Width' )
3162 settings.!s = VRGet("SPLIT_Main", 'Left' )
3163
3164 CALL VRSetIni 'Settings', 'X', settings.!l, settings.!ini, 'NoClose'
3165 CALL VRSetIni 'Settings', 'Y', settings.!t, settings.!ini, 'NoClose'
3166 CALL VRSetIni 'Settings', 'H', settings.!h, settings.!ini, 'NoClose'
3167 CALL VRSetIni 'Settings', 'W', settings.!w, settings.!ini, 'NoClose'
3168 CALL VRSetIni 'Settings', 'S', settings.!s, settings.!ini
3169
3170 IF options.!debug == 1 THEN SAY time()' '||"SaveSettings done"
3171RETURN
3172
3173/*:VRX SPLIT_Main_Move
3174*/
3175SPLIT_Main_Move:
3176 ok = VRset("Main", "Painting", 0)
3177 NewPos = VRInfo("Left")
3178 OldPos = VRGet("SPLIT_Main","Left")
3179 ok = VRSet("SPLIT_Main","Left", NewPos)
3180 ok = VRset("GB_SMBTREE","Left",NewPos+60)
3181 call Main_Resize
3182 ok = VRset("Main", "Painting", 1)
3183return
3184
3185/*:VRX StemsInit
3186*/
3187StemsInit:
3188 options.!workgroup = ''
3189 options.!server = ''
3190 options.!share = ''
3191 options.!user = ''
3192 options.!password = ''
3193 options.!spassword = ''
3194 options.!master = ''
3195 options.!mastertype = ''
3196 options.!memlen = '2'
3197 options.!easupport = '1'
3198 options.!readonly = ''
3199 options.!loglevel = 0
3200 options.!logfile = ''
3201
3202 options.!autoload = 0
3203 options.!autoclose = 0
3204 options.!nogui = 0
3205 options.!autostart = 0
3206 options.!editmode = 0
3207
3208 vfs.!drive = ''
3209 vfs.!mountpoint = ''
3210
3211 advanced.!memlen = ''
3212 advanced.!easupport = '1'
3213 advanced.!readonly = ''
3214 advanced.!loglevel = '0'
3215 advanced.!logfile = ''
3216 advanced.!browseauth = ''
3217 advanced.!browseimme = ''
3218 advanced.!savepassive= ''
3219 advanced.!broadcast = ''
3220 advanced.!debug = ''
3221 advanced.!alwaysmp = ''
3222 advanced.!special = ''
3223 advanced.!bigicons = ''
3224
3225 credentials.!username = ""
3226 credentials.!password = ""
3227 UserCred = ""
3228 RefreshMode = ""
3229return
3230
3231/*:VRX SW_ADVANCED_Close
3232*/
3233SW_ADVANCED_Close:
3234 call SW_ADVANCED_Fini
3235return
3236
3237/*:VRX SW_ADVANCED_Create
3238*/
3239SW_ADVANCED_Create:
3240 call SW_ADVANCED_Init
3241return
3242
3243/*:VRX SW_ADVANCED_Fini
3244*/
3245SW_ADVANCED_Fini:
3246 window = VRInfo( "Window" )
3247 call VRDestroy window
3248 drop window
3249return
3250/*:VRX SW_ADVANCED_Init
3251*/
3252SW_ADVANCED_Init:
3253
3254 CALL NLVSetText 'SW_ADVANCED', 'Caption', 40
3255 CALL NLVSetText 'GB_MISC', 'Caption', 43
3256
3257 CALL NLVSetText 'CB_EAS', 'Caption', 44
3258 CALL NLVSetText 'CB_READONLY', 'Caption', 45
3259 CALL NLVSetText 'CB_ALWAYSMP', 'Caption', 65
3260
3261 CALL NLVSetText 'PB_ADVOK', 'Caption', 2
3262 CALL NLVSetText 'PB_ADVCANCEL', 'Caption', 3
3263 CALL NLVSetText 'PB_ADVHELP', 'Caption', 4
3264
3265 CALL VRSet "SW_ADVANCED", "HelpTag", NLVGetMessage(40)
3266
3267 /* Obsolete */
3268 CALL NLVSetText 'GB_MEM', 'Caption', 41
3269
3270 IF advanced.!memlen \= '' THEN
3271 CALL VRSet 'SPB_MEMLEN', 'Value', advanced.!memlen
3272 IF advanced.!easupport \= '' THEN
3273 CALL VRSet 'CB_EAS', 'Set', advanced.!easupport
3274 IF advanced.!readonly \= '' THEN
3275 CALL VRSet 'CB_READONLY', 'Set', advanced.!readonly
3276 IF advanced.!alwaysmp \= '' THEN
3277 CALL VRSet 'CB_alwaysmp', 'Set', advanced.!alwaysmp
3278
3279 window = VRInfo( "Object" )
3280 if( \VRIsChildOf( window, "Notebook" ) ) then do
3281 call VRMethod window, "CenterWindow"
3282 call VRSet window, "Visible", 1
3283 call VRMethod window, "Activate"
3284 end
3285 drop window
3286return
3287
3288/*:VRX SW_INFO_Close
3289*/
3290SW_INFO_Close:
3291 call SW_INFO_Fini
3292return
3293
3294/*:VRX SW_INFO_Create
3295*/
3296SW_INFO_Create:
3297 call SW_INFO_Init
3298 CALL NLVSetText 'SW_INFO', 'Caption', 92
3299 CALL NLVSetText 'PB_INFO_OK', 'Caption', 2
3300
3301 Info.TypeFH = VRMethod( "CN_INFO", "AddField", "String", "Type" )
3302 Info.ValueFH = VRMethod( "CN_INFO", "AddField", "String", "Value" )
3303
3304 parse var infoline "Domain=["WorkGroup"] OS=["OS"] Server=["Server"]"Rest
3305 Info.!domain = VRMethod( "CN_INFO", "AddRecord")
3306 ok = VRMethod( "CN_INFO", "SetFieldData", Info.!domain, Info.TypeFH, strip(NLVGetMessage(21),'T',':'),Info.ValueFH, Workgroup )
3307 Info.!os = VRMethod( "CN_INFO", "AddRecord")
3308 ok = VRMethod( "CN_INFO", "SetFieldData", Info.!os, Info.TypeFH, strip(NLVGetMessage(93),'T',':'),Info.ValueFH, OS )
3309 Info.!server = VRMethod( "CN_INFO", "AddRecord")
3310 ok = VRMethod( "CN_INFO", "SetFieldData", Info.!server, Info.TypeFH, strip(NLVGetMessage(19),'T',':'),Info.ValueFH, Server )
3311
3312 Info.!status = VRMethod( "CN_INFO", "AddRecord")
3313 ok = VRMethod( "CN_INFO", "SetFieldData", Info.!status, Info.TypeFH, strip(NLVGetMessage(67),'T',':'),Info.ValueFH, Userdata )
3314
3315return
3316
3317/*:VRX SW_INFO_Fini
3318*/
3319SW_INFO_Fini:
3320 window = VRInfo( "Window" )
3321 call VRDestroy window
3322 drop window
3323return
3324/*:VRX SW_INFO_Init
3325*/
3326SW_INFO_Init:
3327 window = VRInfo( "Object" )
3328 if( \VRIsChildOf( window, "Notebook" ) ) then do
3329 call VRMethod window, "CenterWindow"
3330 call VRSet window, "Visible", 1
3331 call VRMethod window, "Activate"
3332 end
3333 drop window
3334return
3335
3336/*:VRX SW_LOGIN_Close
3337*/
3338SW_LOGIN_Close:
3339 call SW_LOGIN_Fini
3340return
3341
3342/*:VRX SW_LOGIN_Create
3343*/
3344SW_LOGIN_Create:
3345 call SW_LOGIN_Init
3346 CALL NLVSetText 'DT_USER1', 'Caption', 25
3347 CALL NLVSetText 'DT_PASSWORD1', 'Caption', 26
3348 CALL NLVSetText 'PB_LOGIN_OK', 'Caption', 2
3349 CALL NLVSetText 'PB_LOGIN_CANCEL','Caption', 3
3350 ok = VRSet("EF_USER1","Value",VRGet("EF_USER","Value"))
3351 ok = VRSet("EF_PASSWORD1","Value",VRGet("EF_PASSWORD","Value"))
3352return
3353
3354/*:VRX SW_LOGIN_Fini
3355*/
3356SW_LOGIN_Fini:
3357 window = VRInfo( "Window" )
3358 call VRDestroy window
3359 drop window
3360return
3361/*:VRX SW_LOGIN_Init
3362*/
3363SW_LOGIN_Init:
3364 window = VRInfo( "Object" )
3365 if( \VRIsChildOf( window, "Notebook" ) ) then do
3366 call VRMethod window, "CenterWindow"
3367 call VRSet window, "Visible", 1
3368 call VRMethod window, "Activate"
3369 end
3370 drop window
3371return
3372
3373/*:VRX SW_LOGIN_KeyPress
3374*/
3375SW_LOGIN_KeyPress:
3376 obj = VRInfo( "Object" )
3377 keystr = VRGet( obj, "KeyString" )
3378/* say keystr */
3379 select
3380 when keystr = "{Enter}" then ok = VRMethod( "EF_LoginPassword", "SetFocus" )
3381 when keystr = "{Newline}" then ok = VRMethod( "EF_LoginPassword", "SetFocus" )
3382 when keystr = "{Esc}" then call PB_LOGIN_CANCEL_Click
3383 otherwise nop
3384 end
3385return
3386
3387/*:VRX SW_MOUNTPOINT_Close
3388*/
3389SW_MOUNTPOINT_Close:
3390 call SW_MOUNTPOINT_Fini
3391return
3392
3393/*:VRX SW_MOUNTPOINT_Create
3394*/
3395SW_MOUNTPOINT_Create:
3396 call SW_MOUNTPOINT_Init
3397/* NLVGetMessage(14)' ' */
3398 ok = VRSet("SW_MOUNTPOINT","Caption",strip(p_workgroup' \\'p_server'\'p_share,'T','\'))
3399 CALL NLVSetText 'DT_MPOINT1', 'Caption', 27
3400 CALL NLVSetText 'PB_NEWMOUNTPOINTOK', 'Caption', 2
3401 CALL NLVSetText 'PB_NEWMOUNTPOINTCANCEL','Caption', 3
3402 CALL NLVSetText 'CB_EAS1', 'Caption', 44
3403 CALL NLVSetText 'CB_READONLY1', 'Caption', 45
3404 CALL NLVSetText 'CB_ALWAYSMP1', 'Caption', 65
3405 ok = VRMethod( "CB_DRIVES", "GetStringList", "freedrives." )
3406 ok = VRMethod( "CB_DRIVES1", "AddStringList", "freedrives." )
3407 ok = VRSet("CB_DRIVES1", "Value", VRGet("CB_Drives","Value"))
3408 ok = VRSet("EF_DIRECTORY1", "Value", VRGet("EF_Directory","Value"))
3409 ok = VRMethod("EF_DIRECTORY1","AddString",p_share)
3410 ok = VRSet("CB_ALWAYSMP1","set",advanced.!alwaysmp)
3411return
3412
3413/*:VRX SW_MOUNTPOINT_Fini
3414*/
3415SW_MOUNTPOINT_Fini:
3416 window = VRInfo( "Window" )
3417 call VRDestroy window
3418 drop window
3419return
3420/*:VRX SW_MOUNTPOINT_Init
3421*/
3422SW_MOUNTPOINT_Init:
3423 window = VRInfo( "Object" )
3424 if( \VRIsChildOf( window, "Notebook" ) ) then do
3425 call VRMethod window, "CenterWindow"
3426 call VRSet window, "Visible", 1
3427 call VRMethod window, "Activate"
3428 end
3429 drop window
3430return
3431
3432/*:VRX SW_PROGRESS_Close
3433*/
3434SW_PROGRESS_Close:
3435 call SW_PROGRESS_Fini
3436return
3437
3438/*:VRX SW_PROGRESS_Create
3439*/
3440SW_PROGRESS_Create:
3441 call SW_PROGRESS_Init
3442 CALL NLVSetText 'SW_PROGRESS', 'Caption', 1
3443 CALL NLVSetText 'DT_PROGRESS', 'Caption', 34
3444 CALL VRSet "TM_TheCloser","Enabled", 1
3445return
3446
3447/*:VRX SW_PROGRESS_Fini
3448*/
3449SW_PROGRESS_Fini:
3450 window = VRInfo( "Window" )
3451 call VRDestroy window
3452 drop window
3453return
3454/*:VRX SW_PROGRESS_Init
3455*/
3456SW_PROGRESS_Init:
3457 window = VRInfo( "Object" )
3458 if( \VRIsChildOf( window, "Notebook" ) ) then do
3459 call VRMethod window, "CenterWindow"
3460 call VRSet window, "Visible", 1
3461 call VRMethod window, "Activate"
3462 end
3463 drop window
3464return
3465
3466/*:VRX SW_SETTINGS_Close
3467*/
3468SW_SETTINGS_Close:
3469 call SW_SETTINGS_Fini
3470return
3471
3472/*:VRX SW_SETTINGS_Create
3473*/
3474SW_SETTINGS_Create:
3475 call SW_SETTINGS_Init
3476return
3477
3478/*:VRX SW_SETTINGS_Fini
3479*/
3480SW_SETTINGS_Fini:
3481 window = VRInfo( "Window" )
3482 call VRDestroy window
3483 drop window
3484return
3485/*:VRX SW_SETTINGS_Init
3486*/
3487SW_SETTINGS_Init:
3488
3489 CALL NLVSetText 'SW_SETTINGS', 'Caption', 47
3490
3491 CALL NLVSetText 'GB_GLOBAL', 'Caption', 47
3492 CALL NLVSetText 'CB_DEBUG', 'Caption', 42
3493 CALL NLVSetText 'CB_LOGGING', 'Caption', 46
3494 CALL NLVSetText 'CB_BROWSEIMME', 'Caption', 48
3495 CALL NLVSetText 'CB_BROWSEAUTH', 'Caption', 49
3496 CALL NLVSetText 'CB_SPECIAL', 'Caption', 66
3497 CALL NLVSetText 'CB_SAVEPASSIVE','Caption', 73
3498 CALL NLVSetText 'CB_BROADCAST', 'Caption', 74
3499
3500 CALL NLVSetText 'PB_SETTINGS_OK', 'Caption', 2
3501 CALL NLVSetText 'PB_SETTINGS_CANCEL', 'Caption', 3
3502 CALL NLVSetText 'PB_SETTINGS_HELP', 'Caption', 4
3503
3504/* CALL VRSet "SW_ADVANCED", "HelpTag", NLVGetMessage(40) */
3505
3506 IF advanced.!logfile \= '' THEN
3507 CALL VRSet 'EF_LOGFILE', 'Value', advanced.!logfile
3508 IF advanced.!loglevel \= '0' THEN
3509 CALL VRSet 'SPIN_LOGLEVEL', 'Value', advanced.!loglevel
3510 CALL VRSet 'CB_LOGGING', 'Set', VRFileExists(SysBootDrive()'\ndpsmb.dbg')
3511 IF advanced.!browseauth \= '' THEN
3512 CALL VRSet 'CB_BROWSEAUTH', 'Set', advanced.!browseauth
3513 IF advanced.!browseimme \= '' THEN
3514 CALL VRSet 'CB_BROWSEimme', 'Set', advanced.!browseimme
3515 IF advanced.!debug \= '' THEN
3516 CALL VRSet 'CB_debug', 'Set', advanced.!debug
3517 IF advanced.!special \= '' THEN
3518 CALL VRSet 'CB_SPECIAL', 'Set', advanced.!special
3519 IF advanced.!savepassive \= '' THEN
3520 CALL VRSet 'CB_SAVEPASSIVE', 'Set', advanced.!savepassive
3521 IF advanced.!broadcast \= '' THEN
3522 CALL VRSet 'CB_BROADCAST', 'Set', advanced.!broadcast
3523
3524 window = VRInfo( "Object" )
3525 if( \VRIsChildOf( window, "Notebook" ) ) then do
3526 call VRMethod window, "CenterWindow"
3527 call VRSet window, "Visible", 1
3528 call VRMethod window, "Activate"
3529 end
3530 drop window
3531return
3532
3533/*:VRX TM_AutoClose_Trigger
3534*/
3535TM_AutoClose_Trigger:
3536 call PB_CLOSE_Click
3537return
3538
3539/*:VRX TM_RefreshTreeDisplay_Trigger
3540*/
3541TM_RefreshTreeDisplay_Trigger:
3542 ShowHidden = advanced.!special
3543 BroadCast = advanced.!broadcast
3544
3545 select
3546 when RefreshMode = "TREE" then do
3547 call _RefreshTreeDisplay
3548
3549 if VRget("Menu_View_SmbTree", "Checked") then do
3550 if smbtree.!workgroup <> 'SMBTREE.!WORKGROUP' then do
3551 ok = VRset("Menu_Selected_Connect", "Visible", VRMethod("CN_SmbTree", "ValidateRecord", smbtree.!workgroup ) )
3552 end
3553 end
3554 end
3555 when RefreshMode = "SHARE" then do
3556 call _AddSharesDisplay
3557 end
3558 otherwise say "RefreshMode = "RefreshMode
3559 end
3560 call _DialogPopulate
3561return
3562
3563/*:VRX TM_TheCloser_Trigger
3564*/
3565TM_TheCloser_Trigger:
3566 call SW_PROGRESS_Close
3567return
3568
3569/*:VRX TM_Throbber_Trigger
3570*/
3571TM_Throbber_Trigger:
3572 pIdx = VRGet("Pict_Throbber","PicturePath")
3573 parse var pIdx '#' pidx
3574 pidx = pidx + 1
3575 if pidx = 36 then pidx = 11
3576 ok = VRSet("Pict_Throbber","PicturePath","#"pidx)
3577return
3578
Note: See TracBrowser for help on using the repository browser.