home *** CD-ROM | disk | FTP | other *** search
/ POINT Software Programming / PPROG1.ISO / clipper / sup35s / s3menu.prg < prev    next >
Text File  |  1993-10-18  |  7KB  |  177 lines

  1.  
  2.  
  3. proc testmenu
  4. local cInscreen := savescreen(0,0,24,79)
  5. local nSelection
  6. local nMenutype := 0
  7. local aPDOptions := array(7)  // pulldown
  8. local aPDDefs    := array(7)  // pulldown
  9. local a123Def    := {;
  10.                     {"Dbf  ","Browse DBF",{||msg("Selected Browse DBF")} },;
  11.                     {"MultiArray   ","Browse a Multi-dimmed array",{||msg("Selected Browse Multi-dimmed array")} },;
  12.                     {"Delimited   ","Browse a Delimited file",{||msg("Selected Browse a Delimited file")} },;
  13.                     {"SDF   ","Browse an SDF file",;
  14.                            {;
  15.                              {"Weekly   ","Browse Weekly",{||msg("Selected Browse Weekly")} },;
  16.                              {"Monthly  ","Browse Monthly",{||msg("Selected Browse Weekly")} },;
  17.                              {"Yearly   ","Browse Yearly",{||msg("Selected Browse Weekly")} };
  18.                            }},;
  19.                     {"Quit ","Exit the demo",nil};
  20.                     }         // 1-2-3 menu
  21.  
  22. local aFiles := a2tosing(directory(),1)  // get a dir of files for the
  23.                                          // tabular menu
  24.  
  25. asize(aFiles,min(len(aFiles),10))
  26. SET WRAP ON
  27. slsf_color("S3COLOR")
  28. initsup(.f.)
  29. setcolor(sls_normcol())
  30. dispbox(0,0,24,79,"┌─┐│┘─└│▒",sls_normcol())
  31.  
  32. definePD(aPDOptions,aPDDefs)     // define pulldown menu
  33.  
  34.  
  35. while .t.
  36.    nMenuType := menu_v("Menu type:","Pulldown","1-2-3","Tabular","Bungee (new!)","Quit")
  37.    if nMenuType > 0 .and. nMenuType#5
  38.       do case
  39.       case nMenuType==1   // Pulldown
  40.         nSelection := 1.01
  41.  
  42.         while nSelection #0 .and. nSelection#7.01
  43.           nSelection := pulldn(nSelection,aPDOptions,aPDDefs)
  44.           if nSelection #0 .and. nSelection#7.01
  45.             aMsg( {"You've selected option:",nSelection } )
  46.           endif
  47.         end
  48.       case nMenuType==2   // 1-2-3
  49.         slotusmenu(1,1,1,78,a123def,.t.,.t.,.t.)
  50.         slotusclear()
  51.       case nMenuType==3   // tabular
  52.          nSelection := pstabmenu(10,10,14,70,aFiles,"Select a file:")
  53.       case nMenuType==4   // bungee
  54.          dobungee()
  55.       endcase
  56.    else
  57.      exit
  58.    endif
  59. end
  60. ss_fall(0,0,24,79,cInscreen)
  61.  
  62.  
  63.  
  64.  
  65.  
  66. //------------define pulldown menu -----------------------------
  67. static proc definePD(aPDOptions,aPDDefs)
  68.  
  69. *- menu choice definitions
  70. aPDOptions[1] := "Files:Select:Define:Copy:Append:Field Copy:Export:Mailmerge"
  71. aPDOptions[2] := "Indexes:Select:Order:New"
  72. aPDOptions[3] := "Editing:Edit:Global Replace:Tabular Edit"
  73. aPDOptions[4] := "Reporting:Build Query:Print Lists:Duplicates:Create Labels:Write Form Letters:Sum or Average a Field:DBF Field Frequency Analysis:Time Analysis:REPORT WRITER!:Statistics"
  74. aPDOptions[5] := "Appearance:Screen Appearance:Predefined Colors"
  75. aPDOptions[6] := "Utility:List text file:Directory:Todo List:Calendar:"+;
  76.                  "Solar Calculator:Weights&Measures:Appointments"
  77. aPDOptions[7] := "Quit:Quit"
  78.  
  79.  
  80. *- menu boxes
  81. aPDDefs[1] := .t.                // draw the top bar box ?
  82. aPDDefs[2] := sls_normcol()      // top bar color string
  83. aPDDefs[3] := sls_popmenu()      // drop box color
  84. aPDDefs[4] := sls_frame()        // drop box frame
  85. aPDDefs[5] := 3                  // drop box shadow position (1,3,7,9,0)
  86. aPDDefs[6] := sls_shadatt()      // drop box shadow attribute
  87. aPDDefs[7] := 0                  // row # of menu bar
  88.  
  89. return
  90.  
  91.  
  92.   #include "Inkey.ch"
  93.   #include "Box.ch"
  94.  
  95.   #translate CODEBLOCK(<b>) => <{b}>
  96.  
  97.  
  98.   PROC DOBUNGEE()
  99.   LOCAL lActive1  := .t., lActive2 := .t., lActive3:= .t.
  100.   LOCAL bExitOk   := {||MESSYN("Exit now hoss?")}
  101.   LOCAL aMiceHot  := { {23,3,23,12,CODEBLOCK(msg("The time is:"+time())) },;
  102.                        {23,16,23,27,CODEBLOCK( bungeequit() )},;
  103.                        {0,1,0,3,CODEBLOCK( bungeequit() )}  }
  104.  
  105.   LOCAL aKeysHot  := { {K_F10,CODEBLOCK(msg("The time is:"+time())) },;
  106.                        {K_ALT_X,CODEBLOCK( bungeequit() )}  }
  107.  
  108.   LOCAL cInscreen := SAVESCREEN(0,0,24,79)
  109.   LOCAL aMenu
  110.   DISPBOX(0,0,24,79,B_DOUBLE+"▒")
  111.   @1,1 SAY PADC("Bungee Sampler",78) color "+W/W"
  112.  
  113.   @23,1 say padr("  [F10=time]   [ALT-X=exit]",78)
  114.   @0,1 say "[■]"
  115.  
  116.   bungstart()
  117.   bungoption("Files")
  118.        bungdrop()
  119.        bungoption("Directory of files",{||popupdir()} )
  120.        bungoption("Disk ~Space",{||msg("Disk Space:"+alltrim(str(diskspace())))} )
  121.        bungoption("CROSSBAR")
  122.        bungoption("e~Xit",{||bungeequit()} )
  123.        bungundrop()
  124.   bungoption("Memory")
  125.        bungdrop()
  126.        bungoption("Memory ~0",{||msg("Memory 0 :"+alltrim(str(memory(0))))} )
  127.        bungoption("Memory ~1",{||msg("Memory 1 :"+alltrim(str(memory(1))))} )
  128.        bungoption("Memory ~2",{||msg("Memory 2 :"+alltrim(str(memory(2))))} )
  129.        bungundrop()
  130.   bungoption("Dropdown")
  131.        bungdrop()
  132.        bungoption("Dropdown normally")
  133.            bungdrop()
  134.            bungoption("Option ~A",{||msg("Option A")})
  135.            bungoption("Option ~B",{||msg("Option B")})
  136.            bungoption("Option ~C",{||msg("Option C")})
  137.            bungundrop()
  138.        bungoption("Dro~pdown down 5,over 5")
  139.            bungdrop(5,5)
  140.            bungoption("Option ~A",{||msg("Option A")})
  141.            bungoption("Option ~B",{||msg("Option B")})
  142.            bungoption("Option ~C",{||msg("Option C")})
  143.            bungundrop()
  144.        bungoption("Dro~pdown down 0,over -5")
  145.            bungdrop(0,-5)
  146.            bungoption("Option ~A",{||msg("Option A")})
  147.            bungoption("Option ~B",{||msg("Option B")})
  148.            bungoption("Option ~C",{||msg("Option C")})
  149.            bungundrop()
  150.        bungundrop()
  151.  
  152.   bungoption("Activation")
  153.        bungdrop()
  154.        bungoption("Option ~A")
  155.             bungdrop()
  156.             bungoption("Option ~A",{||msg("Option A")},{||lActive1})
  157.             bungoption("Option ~B",{||msg("Option B")},{||lActive2})
  158.             bungoption("Option ~C",{||msg("Option C")},{||lActive3})
  159.             bungoption("CROSSBAR")
  160.             bungoption("Toggle Option A",{||lActive1 := !lActive1} )
  161.             bungoption("T~oggle Option B",{||lActive2 := !lActive2} )
  162.             bungoption("To~ggle Option C",{||lActive3 := !lActive3} )
  163.             bungundrop()
  164.        bungoption("Option ~B",{||msg("Option B")},{||lActive2})
  165.        bungoption("Option ~C",{||msg("Option C")},{||lActive3})
  166.        bungoption("CROSSBAR")
  167.        bungoption("T~oggle Option B",{||lActive2 := !lActive2} )
  168.        bungoption("To~ggle Option C",{||lActive3 := !lActive3} )
  169.        bungundrop()
  170.  
  171.   aMenu := bungend()
  172.   bungee(2,1,78,aMenu,nil,nil,aMiceHot,aKeysHot,bExitOk,nil,nil,1)
  173.  
  174.   restscreen(0,0,24,79,cInScreen)
  175. RETURN
  176.  
  177.