home *** CD-ROM | disk | FTP | other *** search
- #include <exec/types.h>
- #include <exec/exec.h>
- #include <intuition/intuition.h>
- #include <intuition/intuitionbase.h>
- #include <devices/console.h>
- #include <devices/clipboard.h>
- #include <libraries/dos.h>
- #include <libraries/dosextens.h>
- #include <devices/inputevent.h>
- #include <devices/keymap.h>
- #include <math.h>
- #include <workbench/startup.h>
-
- #include <proto/exec.h>
- #include <proto/intuition.h>
-
- struct LineItem /*'Liner structure definition*/
- {
- struct LineItem *NextItem,*PrevItem;
- UBYTE Level,ItemNumber;
- char Text[80];
- BYTE Highlighted,cont,Future[10];
- };
-
- struct Old_LineItem /*Old (pre V1.5) 'Liner structure definition*/
- {
- struct LineItem *NextItem,*PrevItem;
- UBYTE Level,ItemNumber;
- char Text[80];
- };
-
- struct WhichOne
- {
- struct LineItem *Start,*End;
- };
-
- struct LinerPrefs /*'Liner preferences structure*/
- {
- BYTE DS,Laced,Icons,Level,Screen;
- UBYTE Color[4][3];
- char Macro[4][80],Name[4][80];
- char DefaultDir[150],DefPrintDir[150],DefPattern[150];
- };
-
- #define WORDROUND(xxx) (((long)xxx+3)>>2)<<2) /* Round to word boundary */
- #define D_S(name, type) char c_##name[sizeof(type)+3]; \
- type *name = (type *)WORDROUND(c_##name);
-
- #define Rp Window->RPort;
- #define CSI 0x09b
- #define SEMI 0x03b
- #define NEWPAGE 0x0c
- #define CLOSECHAR 0x05c
- #define SCRNHEIGHT RowsInScreen
- #define REQUESTERCHARS 57
-
- #define UP 0
- #define DOWN 1
- #define NOINV 0
- #define LINE_PENDING 1
- #define LINE_FWD 2
- #define LINE_BACK 3
-
- #define BLOCK_PENDING -1
- #define BLOCK_DOWN -2
- #define BLOCK_UP -3
-
- #define MINMEMORY 20000
-
- extern LONG ARexxSigBit;
- extern struct IntuitionBase *IntuitionBase;
- extern struct GfxBase *GfxBase;
- extern ULONG DosBase,IconBase;
- extern struct WBStartup *WBenchMsg;
-
- extern struct IOStdReq *consoleWriteMsg,*consoleReadMsg;
- extern struct Port *consoleWritePort,*consoleReadPort;
- extern struct IOClipReq ClipboardIO;
- extern struct MsgPort clipboardMsgPort;
- extern struct Process *ThisProc;
-
- extern struct Screen *Screen;
- extern struct Window *Window,*AboutWindow;
- extern struct KeyMap keymap;
- extern APTR ConsoleDevice;
- extern struct LineItem *CharItem,*StartIItem,*EndIItem,*ClipStart,*ClipEnd;
- extern int ButtonState,PtrX,PtrY,LastX,LastY,InvsMode,StartChar,EndChar,InvY,EndIY;
- extern int BLastX,ClipMode,ErrorInTitle;
- extern UBYTE Laced,RowsInScreen,StartingLevel,Modified,Odd;
- extern char Indent;
- extern char FileName[183],SDirName[150],SFileName[33],SExt[150];
- extern char PDName[183],PDirName[150],PFileName[33],PExt[150];
- extern BYTE TopInv,BtmInv;
-
- extern char ScreenTitle[17];
- extern struct LineItem *FirstItem,*LastItem,*CurrentItem,*FirstScrnItem,*ScrnBtm;
- extern int CurX,CurY,DispRows;
-
- extern struct LinerPrefs prefs;
-
- extern UBYTE OLCPos[6][6];
- extern UBYTE MaxNumOnLevel[6];
-
- /*Some macros*/
- #define PERPOS(x) OLCPos[StartingLevel][x]-3
- #define MinX(LI) OLCPos[StartingLevel][(LI->Level)-1]
- #define MaxX(LI) OLCPos[StartingLevel][(LI->Level)-1]+strlen(LI->Text)
- #define MaxLen(Level) 79-OLCPos[StartingLevel][Level-1]
- #define PosInText(Level) CurX-OLCPos[StartingLevel][Level-1]
- #define RealLevel(LI) (LI->Level+StartingLevel > 6) ? (LI->Level+StartingLevel-7) : (LI->Level+StartingLevel)
- /* ^^^ == get level when StartingLevel != 0 */
-
-
- /*Function definitions*/
-
- /*liner.c functions*/
- extern void GetOutlineChars();
- extern void RedrawOutlineChars();
- extern void AddItem();
- extern void WriteConsole();
- extern HandleIDCMP();
- extern void HandleBS();
- extern HandleReturn();
- extern void CloseStuff();
- extern void Leave();
- extern PushIn();
- extern Push();
- extern PullOutBlock();
- extern void JumpToTop();
- extern void JumpToBottom();
- extern void PrintItemList();
- extern void PrintItem();
- extern void PlotCursor();
- extern CursorUp();
- extern CursorDown();
- extern void InsertChar();
- extern void DeleteChar();
- extern struct LineItem *InsertItem();
- extern struct LineItem *FindPrev();
- extern struct LineItem *FindNext();
- extern void InsertLineAtTop();
- extern WholeScreenDown();
- extern WholeScreenUp();
- extern IsOnScreen();
- extern IsBefore();
- extern IsAfter();
- extern struct LineItem *FindNextNonCont();
- extern struct LineItem *FindPrevNonCont();
-
- /*console.c */
- extern HandleTAB();
- extern void CursorRight();
- extern void CursorLeft();
-
- /*windows.c functions*/
- extern void OpenGraphics();
- extern void CloseGraphics();
- extern BOOL HandleInterlaced();
- extern void ModifyMenus();
- extern void InterpretPrefs();
- extern GetWBHeight();
- extern void GetLinerPrefs();
- extern PutPrefs();
- extern BOOL SwapScrnSize();
- extern struct MenuItem *GetFirstItemAddress();
- extern void SaveColors();
- extern void LoadColors();
- extern void ClearMenus();
- extern void SetRowsInScreen();
- extern void CopyPrefsToMenus();
- extern NewAll();
- extern HandleAbout();
- extern BOOL DoubleSpacing();
- extern BOOL HandleStartingLevel();
- extern void ChangeDisplay();
-
- /*mouse.c functions*/
- extern void NormBlock();
- extern void MovedMouse();
- extern HandleButton();
- extern void HandleInvs();
- extern HandleBlockInvs();
- extern void RvsBlock();
- extern void EndBlockInvs();
- extern HandleLineInvs();
- extern MoveForward();
- extern void EndLineInvs();
- extern void NormText();
- extern HandleDelBlock();
- extern void FindStartEnd();
- extern void DelBlock();
- extern void FreeListMem();
- extern void DelTextBlock();
- extern CancelInvs();
- extern DelInvs();
- extern void TitleError();
- extern void TitleErrorCancel();
- extern void BackSearchRefresh();
- extern void RvsText();
- extern CancelLineInvs();
- extern void NormIt();
-
- /*sure.c functions*/
- extern AreYouSure();
-
- /*disk.c functions*/
- extern WriteItemList();
- extern ReadItemList();
- extern struct LineItem *BreakLineApart();
- extern void CreatePrefsIcon();
-
- /*clip.c functions*/
- extern void SetupClipboard();
- extern void WriteInvsTextToClip();
- extern void WriteStringClip();
- extern ReadString();
- extern ReadClip();
- extern void AddBlock();
- extern void WriteClip();
- extern SnagBlock();
-
- /*menu.c functions*/
- extern NewAll();
- extern void HandleNew();
- extern HandleOpen();
- extern void Save();
- extern void HandleSaveAs();
- extern HandlePrintDisk();
- extern HandlePrintPrinter();
- extern void HandleQuit();
- extern HandleCut();
- extern HandleCopy();
- extern void HandlePaste();
- extern HandleErase();
- extern void Refresh();
- extern void CheckModified();
- extern void MakeTextLine();
- extern void HandleIcons();
- extern void HandlePalette();
- extern void HandleReloadPrefs();
-
- /*From PopColours.c*/
- extern void PopColours();
-
- /*From Search.c*/
- extern struct LineItem *SearchText();
- extern DoSearch();
- extern void ModifyParams();
- extern void ReplaceAll();
- extern BYTE AskChange();
-
- /*From ARexx.c*/
- extern void OpenARexx();
- extern void CloseARexx();
- extern void CheckRexxPort();
- extern void GetWord();
- extern void EngageMacro();
- extern void GetMacroInfo();
- extern void SplitFilename();
-