WinBatch Tech Support Home

Database Search

If you can't find the information using the categories below, post a question over in our WinBatch Tech Support Forum.

TechHome

WspopupMnu Service Utilities

Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.

WSPOPUP - MakeCall Tool

 Keywords: WSPOPUP WSPOPUP.MNU WinBatch Studio

The script creates 'Call(zxc,"...")' statements from special title lines with the same spelling as the related keyword in the line before. It runs solely in the WBStudio debug mode because of using editor capabilities in animated mode. Have fun!

Recommendation for the action taken by the WBStudio.WspopupMnu service utilities.

1. SpellCheck 
2. MakeCall
3. CleanUp
;==========================================================================================================================================
; WBStudio Utility for use within WinBatch Studio debug mode.
;==========================================================================================================================================
;
; "MakeCall" resp. "Call Unifier" for WSPOPUP.MNU - Read/Write -
;
; The sript creates 'Call(zxc,"...")' statements from special title lines
; with the same spelling as the related keyword in the line before.
;
; It works directly on the file wspopup.mnu - virtually in WBStudio editor -
; but user must decide to save changes afterwards.
;
; This tool is part of the WBStudio.WspopupMnu service utilities.
; 1. WBStudio.WspopupMnu.SpellCheck.wbt
; 2. WBStudio.WspopupMnu.CleanUp.wbt
; 3. WBStudio.WspopupMnu.MakeCall.wbt
; 4. ...
;..........................................................................................................................................
;
; >>> The running script can be terminated by pressing the Shift key. <<<
;
; Adapt the filepath to your environment and other options to your need (see "Options - Tweak Section").
;
;..........................................................................................................................................
; Version History:
; 20090712. Changed StrCat() to colon ":" concatenator and beautified the code.
; 20051215. Initial version.
;
; Detlev Dalitz.20051215.20090712.
;==========================================================================================================================================

;------------------------------------------------------------------------------------------------------------------------------------------
Terminate (RtStatus () != 10, IntControl (1004, 0, 0, 0, 0), "Terminated. Script runs only in WinBatch Studio debug mode.")
;------------------------------------------------------------------------------------------------------------------------------------------


;------------------------------------------------------------------------------------------------------------------------------------------
; ****** Options - Tweak Section ****** adapt it to your environment and your needs ******
;
sWorkFile = DirHome () : "Wspopup.mnu"
;
iLeftMargin = 4    ; First column to start with code is col 5, because col 1-4 are reserved for menu structure.
;
;iLeftMargin = 51  ; Experimental.
; Nice alignment with comments in column 60 when used in combination
; with "FirstColumnPadding" by "WBStudio.WspopupMnu.CleanUp" tool.
;
sMask_Call = `Call(zxc,"{1}")` ; Should not be changed.
;
;------------------------------------------------------------------------------------------------------------------------------------------


;------------------------------------------------------------------------------------------------------------------------------------------
; Set Editor AutoIndent OFF.
iAutoIndent = RegQueryDword (@REGCURRENT, "Software\Wilson WindowWare\WinBatch Studio\Settings\File types\WIL Files[Autoindent]")
If iAutoIndent
   ;SendKey("!vo^{TAB}!a{ENTER}") ; Function wViewOptions() does not fit in this case.
   SendKey ("!vo!a~") ; Function wViewOptions() does not fit in this case.
   TimeDelay (1)
   iAutoIndent = RegQueryDword (@REGCURRENT, "Software\Wilson WindowWare\WinBatch Studio\Settings\File types\WIL Files[Autoindent]")
   Terminate (iAutoIndent, IntControl (1004, 0, 0, 0, 0), "Terminated. Cannot set registry value [Autoindent]=off.")
EndIf
;------------------------------------------------------------------------------------------------------------------------------------------
wFileOpen (sWorkFile)
wTopOfFile ()
iLineCount = wLineCount ()
;------------------------------------------------------------------------------------------------------------------------------------------
SendKey ("!wh") ; Tile horizontal MDI windows in WBStudio editor. ; Function wWinTile() does not fit in this case.
;------------------------------------------------------------------------------------------------------------------------------------------
; Search within WSPOPUP.MNU for menu title lines.
wf_sPattern = "^.*\^.*\^.*\^.*$"          ; Pattern for menu title lines.
wf_iForward = @TRUE
wf_iMatchCase = @TRUE
wf_iRegExp = @TRUE
wf_iWrap = @FALSE
;------------------------------------------------------------------------------------------------------------------------------------------
iLeftMargin = Min (Max (4, iLeftMargin), 132)
While @TRUE
   wClearSel ()
   wf_iResult = wFind (wf_sPattern, wf_iForward, wf_iMatchCase, wf_iRegExp, wf_iWrap)
   If !wf_iResult Then Break

   ; Fill selection buffer with hit line from wspopup.mnu.
   sPopLine = wGetWord ()
   wClearSel ()                           ; Release selection.

   ;..........................................................................................................................................
   ; Work on Item2
   ;..........................................................................................................................................
   ; Fetch Item2 Keyword from selection buffer.
   ; Assuming that there is no quirkie value in there.
   ; A "cleaning" has to be done before! See description at top of this file.
   sPopLine2 = ItemExtract (2, sPopLine, "^")

   ; Prepare the Call statement.
   sCall = StrReplace (sMask_Call, "{1}", sPopLine2)
   sCall = StrFill (" ", iLeftMargin) : sCall

   ;..........................................................................................................................................
   ; Lookup into following line and modify line.
   ;..........................................................................................................................................
   iLine = wGetLineNo ()                  ; Current line. Our homebase for the following activities.

   wGotoLine (iLine + 1)                  ; Following line. Already Call statement? If so, delete it.
   wGotoCol (1)
   wStartSel ()
   wEnd ()
   wEndSel ()
   sPopLine = wGetWord ()
   If StrIndexWild (sPopLine, "Call*(*)", 1)
      wDelete ()                          ; Delete Selection.
      wDelete ()                          ; Delete EOL.
   EndIf

   wGotoLine (iLine + 1)                  ; Following line. Menu title or a codeline?
   wGotoCol (1)
   wStartSel ()
   wEnd ()
   wEndSel ()
   sPopLine = wGetWord ()
   wClearSel ()
   If (StrSub (sPopLine, 1, 4) != "    ") ; If not a codeline (codeline has min. 4 leading spaces).
      wGotoLine (iLine + 1)
      wGotoCol (1)
      wInsLine (sCall)                    ; Insert Call statement.
   EndIf

   ; Note: Possible commentline with first nonblank ";" is not handled here.
   ;..........................................................................................................................................

   sLineNum = StrFixLeft (iLine, " ", 6)
   iLineCount = wLineCount ()
   sStatusMsg = iLineCount : "/" : sLineNum : "  |" : sPopLine
   wStatusMsg (sStatusMsg)

   If IsKeyDown (@SHIFT) Then Break
EndWhile

wTopOfFile ()

:CANCEL
;------------------------------------------------------------------------------------------------------------------------------------------
RegSetDword (@REGCURRENT, "Software\Wilson WindowWare\WinBatch Studio\Settings\File types\WIL Files[Autoindent]", iAutoIndent)
;------------------------------------------------------------------------------------------------------------------------------------------
wWinMaximize ()  ; SendKey("!-x") ; Maximize MDI window in WBStudio editor.
;------------------------------------------------------------------------------------------------------------------------------------------
Exit
;------------------------------------------------------------------------------------------------------------------------------------------
;;;

Article ID:   W18455
Filename:   WSPOPUP - MakeCall Tool.txt
File Created: 2014:07:18:09:51:40
Last Updated: 2014:07:18:09:51:40