home *** CD-ROM | disk | FTP | other *** search
/ High Voltage Shareware / high1.zip / high1 / DIR22 / JORF21_2.ZIP / TEXTEDIT.J < prev    next >
Text File  |  1993-07-05  |  5KB  |  154 lines

  1. TextEdit:Start(Name)
  2.   Mem:Ptr->Name = To:Ucs(Name)
  3.   Mem:Ptr->Edit = TextEdit:Read(Mem:Ptr->Name)
  4.  
  5.   Event:Add(Null)                       | Block prior events
  6.   Event:Add("EditKey")                  | Use standard Edit Keys
  7.   Event:Add("TextEdit")                 |  and some special ones defined here
  8.  
  9.   Jorf:File("TextEdit.Tmp",Here)        | Temporary Storage area
  10.  
  11.   If (Name == Null)
  12.     Kbd:Put("F4_Key")
  13.  
  14.   Win:Add("Josephine's Text Editor", 0, 0, 0, 0, Here)
  15.     Save:"TextEdit:Save"
  16.     Restore:"Null"
  17.     Idle:"EditKey:Message"      | When idle - display Row Col info
  18.     Flrco:"o"                   | No wrap mode
  19.     Menu:"&File"
  20.       Menu:"&New      Shift-F4",    Action:'TextEdit:New'    HotKey:"Shift_F4_Key"
  21.       Menu:"&Open           F4",    Action:'TextEdit:Open'   HotKey:"F4_Key"
  22.       Menu:"&Save     Shift-F3",    Action:'TextEdit:Save'   HotKey:"Shift_F3_Key"
  23.       Menu:"Save &As        F3",    Action:'TextEdit:SaveAs' HotKey:"F3_Key"
  24.       Menu:""
  25.       Menu:"&Print          F5",    Action:'TextEdit:Print'  HotKey:"F5_Key"
  26.       Menu:""
  27.       Menu:"A&bout"                 Action:'TextEdit:About'
  28.       Menu:"E&xit        Alt-X",    Action:'TextEdit:Exit'   HotKey:"Alt_X_Key"
  29.     Menu:"&Edit"
  30.       Menu:"&Toggle Insert Mode   Ins", Action:'TextEdit:Stuff("Ins_Key")'
  31.       Menu:"&Beginning of line   Home", Action:'TextEdit:Stuff("Home_Key")'
  32.       Menu:"&End of line          End", Action:'TextEdit:Stuff("End_Key")'
  33.       Menu:"Word &Left         Ctrl-A", Action:'TextEdit:Stuff("Ctrl_A_Key")'
  34.       Menu:"Word &Right        Ctrl-F", Action:'TextEdit:Stuff("Ctrl_F_Key")'
  35.       Menu:"&Delete Word       Ctrl-T", Action:'TextEdit:Stuff("Ctrl_T_Key")'
  36.       Menu:"De&lete to End   Ctrl-K Y", Action:'TextEdit:Stuff("Ctrl_K_Key", "Y_Key")'
  37.     Menu:"&Block"
  38.       Menu:"&Beginning  Ctrl-K B",  Action:'TextEdit:Stuff("Ctrl_K_Key","B_Key")'
  39.       Menu:"&End        Ctrl-K K",  Action:'TextEdit:Stuff("Ctrl_K_Key","K_Key")'
  40.       Menu:"&Delete     Ctrl-K Y",  Action:'TextEdit:Stuff("Ctrl_K_Key","Y_Key")'
  41.       Menu:"&Copy       Ctrl-K C",  Action:'TextEdit:Stuff("Ctrl_K_Key","C_Key")'
  42.       Menu:"&Move       Ctrl-K V",  Action:'TextEdit:Stuff("Ctrl_K_Key","V_Key")'
  43.       Menu:"&Hide       Ctrl-K H",  Action:'TextEdit:Stuff("Ctrl_K_Key","H_Key")'
  44.     Menu:"&Goto"
  45.       Menu:"&Beginning of file  Ctrl-Q R",  Action:'TextEdit:Stuff("Ctrl_Q_Key","R_Key")'
  46.       Menu:"&End of file        Ctrl-Q C",  Action:'TextEdit:Stuff("Ctrl_Q_Key","C_Key")'
  47.       Menu:"&Line Number        Ctrl-Q G",  Action:'TextEdit:Stuff("Ctrl_Q_Key","G_Key")'
  48.     Menu:"&Search"
  49.       Menu:"&Find        Ctrl-Q F", Action:'TextEdit:Stuff("Ctrl_Q_Key","F_Key")'
  50.       Menu:"Find &Next     Ctrl-L", Action:'TextEdit:Stuff("Ctrl_L_Key")'
  51.       Menu:"&Replace     Ctrl-Q A", Action:'TextEdit:Stuff("Ctrl_Q_Key","A_Key")'
  52.     Text:'', Field:'Mem:Ptr->Edit' Row:1 Col:1 Wid:78 Len:22
  53.  
  54.   File:Del("TextEdit.Tmp")              | Delete Storage area
  55.   Return
  56.  
  57. TextEdit:About
  58.   Msg:Add ("About TextEdit", "Ok")
  59.     Josephine's Text Editor is a sample program included &
  60.     with the JORF Interpreter.  It provides many of the &
  61.     functions as other text editors, and is written in &
  62.     about three pages of program code.
  63.  
  64.     Version 1.1                              May 11, 1992
  65.         Copyright (C) 1991,1992 by The JORF Company
  66.   Return (Ok)
  67.  
  68. TextEdit:Exit
  69.   If (TextEdit:Save)
  70.     Kbd:Put('Esc_Key')
  71.   Return (Null)
  72.  
  73. TextEdit:New()
  74.   If (TextEdit:Save)
  75.     EditKey:Ctrl_Page_Up_Key
  76.     Mem:Ptr->Name = Null
  77.     Mem:Ptr->Edit = Text:Add()
  78.     Win:Dsp
  79.   Return (Ok)
  80.  
  81. TextEdit:Open
  82.   New (Name)
  83.   Name = DirList:GetFile("*.txt")
  84.   If (Name)
  85.     If (TextEdit:Save)
  86.       Mem:Ptr->Name = To:Ucs(Name)
  87.       Mem:Ptr->Edit = TextEdit:Read (Name)
  88.       Win:Dsp
  89.   Return (Ok)
  90.  
  91. TextEdit:Print()
  92.   New (Dest)
  93.   Dest=Jorf:Printer()
  94.   File:Save("JREPORT.LST",Mem:Ptr->Edit)
  95.   File:Print("JREPORT.LST",Dest)
  96.   Return(Ok)
  97.  
  98. TextEdit:Read(FileName)
  99.   If (FileName)
  100.     If (File:Exist (FileName))
  101.       Win:Add ('Reading')
  102.         Loading file "{FileName}"
  103.       Return (File:Load (FileName))
  104.     Else
  105.       Msg:Add ('Error', 'Ok')
  106.         Cannot find file "{FileName}"
  107.   Return (Text:Add)
  108.  
  109. TextEdit:Save
  110.   If (Mem:Ptr->Name==Null)
  111.     TextEdit:SaveAs()
  112.   Else
  113.     TextEdit:Write (Mem:Ptr->Name, Mem:Ptr->Edit)
  114.     Jorf:Del (Win:Ptr->Copy)
  115.     Win:Ptr->Copied=False
  116.   Return (Ok)
  117.  
  118. TextEdit:SaveAs
  119.   New (Key, FileName)
  120.   FileName = Mem:Ptr->Name
  121.   If (Win:Ptr->Copied)
  122.     While (Ok)
  123.       Win:Add ('File Name')
  124.     Input:'File Name to Save ', Wid:30, Field:'FileName'
  125.       Win:Del
  126.       If (Kbd:Got == 'Esc_Key')
  127.     Return (Ok)
  128.       If (FileName != Null)
  129.     If (File:Exist (FileName) != 0)
  130.       Key=Msg:Add ('File Already Exists' 'No')
  131.         File "{FileName}" Already Exists!
  132.         Do you want to overwrite it?
  133.       If (Key==Null)          | If not ok - loop back to while OK
  134.         Continue
  135.       Break                       | Otherwise break and write file
  136.     Mem:Ptr->Name = To:Ucs(FileName)
  137.     TextEdit:Write (Mem:Ptr->Name, Mem:Ptr->Edit)
  138.   Jorf:Del (Win:Ptr->Copy)
  139.   Win:Ptr->Copied=False
  140.   Return (Ok)
  141.  
  142. TextEdit:Stuff (Key1,Key2)
  143.   Kbd:Put(Key1)
  144.   Kbd:Put(Key2)
  145.   Return(Null)
  146.  
  147. TextEdit:Write (FileName, Text)
  148.   If (FileName And Text)
  149.     Win:Add ('Writing')
  150.       Saving file "{FileName}"
  151.     File:Save (FileName, Text)
  152.   Return (Ok)
  153.  
  154.