home *** CD-ROM | disk | FTP | other *** search
/ Fish 'n' More 2 / fishmore-publicdomainlibraryvol.ii1991xetec.iso / dirs / convert_451.lzh / 'Liner / Source / Globals.h < prev    next >
C/C++ Source or Header  |  1991-02-06  |  8KB  |  306 lines

  1. #include <exec/types.h>
  2. #include <exec/exec.h>
  3. #include <intuition/intuition.h>
  4. #include <intuition/intuitionbase.h>
  5. #include <devices/console.h>
  6. #include <devices/clipboard.h>
  7. #include <libraries/dos.h>
  8. #include <libraries/dosextens.h>
  9. #include <devices/inputevent.h>
  10. #include <devices/keymap.h>
  11. #include <math.h>
  12. #include <workbench/startup.h>
  13. #include <libraries/asl.h>
  14. #include <libraries/gadtools.h>
  15. #include <graphics/displayinfo.h>
  16.  
  17. #include <proto/exec.h>
  18. #include <proto/intuition.h>
  19. #include <proto/asl.h>
  20. #include <proto/gadtools.h>
  21. #include <proto/dos.h>
  22. #include <clib/wb_protos.h>
  23. #include <pragmas/wb.h>
  24. #include <proto/console.h>
  25.  
  26. #include <string.h>
  27.  
  28. #include "proto.h"
  29.  
  30. struct LineItem           /*'Liner structure definition*/
  31.    {
  32.    struct LineItem *NextItem,*PrevItem;
  33.    UBYTE Level,ItemNumber;
  34.    char Text[80];
  35.    BYTE Highlighted,cont,Future[10];
  36.    };
  37.  
  38. struct Old_LineItem          /*Old (pre V1.5) 'Liner structure definition*/
  39.    {
  40.    struct LineItem *NextItem,*PrevItem;
  41.    UBYTE Level,ItemNumber;
  42.    char Text[80];
  43.    };
  44.  
  45. struct StrStrings
  46. {
  47.    char *String;
  48.    UWORD Length;
  49. };
  50.  
  51. struct WhichOne
  52. {
  53.    struct LineItem *Start,*End;
  54. };
  55.  
  56. struct LinerPrefs          /*'Liner preferences structure*/
  57. {
  58.    ULONG ScreenType;
  59.    BYTE  DS,Icons,Level;
  60.    UBYTE Color[4][3];
  61.    char  Macro[4][80],Name[4][80];
  62.    char  DefaultDir[150],DefPrintDir[150];
  63.    BOOL  Exists;
  64.    char  Future[64];
  65. };
  66.  
  67. extern struct TagItem beveltag[2];
  68.  
  69. #define WORDROUND(xxx) (((long)xxx+3)>>2)<<2)   /* Round to word boundary */
  70. #define D_S(name, type) char c_##name[sizeof(type)+3]; \
  71.             type *name = (type *)WORDROUND(c_##name);
  72.  
  73. #define Rp Window->RPort
  74. #define CSI  0x09b
  75. #define SEMI 0x03b
  76. #define NEWPAGE 0x0c
  77. #define CLOSECHAR 0x05c
  78. #define SCRNHEIGHT RowsInScreen
  79. #define REQUESTERCHARS 57
  80.  
  81. #define UP 0
  82. #define DOWN 1
  83. #define NOINV 0
  84. #define LINE_PENDING 1
  85. #define LINE_FWD 2
  86. #define LINE_BACK 3
  87.  
  88. #define BLOCK_PENDING -1
  89. #define BLOCK_DOWN -2
  90. #define BLOCK_UP -3
  91.  
  92. #define MINMEMORY 20000
  93.  
  94. extern char SaveHail[25],OpenHail[25],PrintHail[26];
  95.  
  96. extern struct TextAttr Topaz,Topaz11;
  97.  
  98. extern LONG ARexxSigBit;
  99. extern struct IntuitionBase *IntuitionBase;
  100. extern struct GfxBase *GfxBase;
  101. extern struct DosBase *DosBase;
  102. extern struct IconBase *IconBase;
  103. extern struct AslBase *AslBase;
  104. extern struct GadToolsBase *GadToolsBase;
  105.  
  106. extern struct WBStartup *WBenchMsg;
  107.  
  108. extern struct IOStdReq *consoleWriteMsg,*consoleReadMsg;
  109. extern struct Port *consoleWritePort,*consoleReadPort;
  110. extern struct IOClipReq ClipboardIO;
  111. extern struct MsgPort clipboardMsgPort;
  112. extern struct Process *ThisProc;
  113.  
  114. extern struct Screen *Screen;
  115. extern struct Window *Window,*AboutWindow;
  116. extern struct KeyMap keymap;
  117. extern APTR VisInfo;
  118.  
  119. extern UBYTE FontWidth;
  120.  
  121. extern struct LineItem *CharItem,*StartIItem,*EndIItem,*ClipStart,*ClipEnd;
  122. extern int ButtonState,PtrX,PtrY,LastX,LastY,InvsMode,StartChar,EndChar,InvY,EndIY;
  123. extern int BLastX,ClipMode,ErrorInTitle;
  124. extern UBYTE Laced,RowsInScreen,StartingLevel,Modified,Odd;
  125. extern char Indent;
  126. extern char FileName[LONG_FSIZE+LONG_DSIZE],SDirName[LONG_DSIZE];
  127. extern char PDName[LONG_FSIZE+LONG_DSIZE],PDirName[LONG_DSIZE];
  128. extern char SFileName[LONG_FSIZE],PFileName[LONG_FSIZE];
  129.  
  130. extern BYTE TopInv,BtmInv;
  131.  
  132. extern char ScreenTitle[17];
  133. extern struct LineItem *FirstItem,*LastItem,*CurrentItem,*FirstScrnItem,*ScrnBtm;
  134. extern int CurX,CurY,DispRows;
  135.  
  136. extern struct LinerPrefs prefs;
  137.  
  138. extern struct FileRequester *MainReq,*PTDReq;
  139.  
  140. extern UBYTE OLCPos[6][6];
  141. extern UBYTE MaxNumOnLevel[6];
  142.  
  143. /*Some macros*/
  144. #define PERPOS(x) OLCPos[StartingLevel][x]-3
  145. #define MinX(LI)  OLCPos[StartingLevel][(LI->Level)-1]
  146. #define MaxX(LI)  OLCPos[StartingLevel][(LI->Level)-1]+strlen(LI->Text)
  147. #define MaxLen(Level) 79-OLCPos[StartingLevel][Level-1]
  148. #define PosInText(Level) CurX-OLCPos[StartingLevel][Level-1]
  149. #define RealLevel(LI) (LI->Level+StartingLevel > 6) ? (LI->Level+StartingLevel-7) : (LI->Level+StartingLevel)
  150.     /* ^^^ == get level when StartingLevel != 0 */
  151.  
  152.  
  153. /*Function definitions*/
  154.  
  155. /*liner.c functions*/
  156. extern void GetOutlineChars();
  157. extern void RedrawOutlineChars();
  158. extern void AddItem();
  159. extern void WriteConsole();
  160. extern HandleIDCMP();
  161. extern void HandleBS();
  162. extern HandleReturn();
  163. extern void CloseStuff();
  164. extern void Leave();
  165. extern PushIn();
  166. extern Push();
  167. extern PullOutBlock();
  168. extern void JumpToTop();
  169. extern void JumpToBottom();
  170. extern void PrintItemList();
  171. extern void PrintItem();
  172. extern void PlotCursor();
  173. extern CursorUp();
  174. extern CursorDown();
  175. extern void InsertChar();
  176. extern void DeleteChar();
  177. extern struct LineItem *InsertItem();
  178. extern struct LineItem *FindPrev();
  179. extern struct LineItem *FindNext();
  180. extern void InsertLineAtTop();
  181. extern WholeScreenDown();
  182. extern WholeScreenUp();
  183. extern IsOnScreen();
  184. extern IsBefore();
  185. extern IsAfter();
  186. extern struct LineItem *FindNextNonCont();
  187. extern struct LineItem *FindPrevNonCont();
  188.  
  189. /*console.c */
  190. extern HandleTAB();
  191. extern void CursorRight();
  192. extern void CursorLeft();
  193.  
  194. /*windows.c functions*/
  195. extern void MakeMenus();
  196. extern void OpenGraphics();
  197. extern void CloseGraphics();
  198. extern void GetMenuPointers();
  199. extern BOOL SetupFileRequestor();
  200. extern void ChangeDisplay();
  201. extern void PutScreenTypeInMenu();
  202. extern BOOL ChangeScreenSize();
  203. extern BOOL HandleStartingLevel();
  204. extern BOOL DoubleSpacing();
  205. extern void InterpretPrefs();
  206. extern void ModifyMenus();
  207. extern void ModifyIconMenu();
  208. extern void GetLinerPrefs();
  209. extern void InterpretPrefs();
  210. extern PutPrefs();
  211. extern void CopyPrefsToMenus();
  212. extern struct MenuItem *GetFirstItemAddress();
  213. extern void SaveColors();
  214. extern void LoadColors();
  215. extern void ClearMenus();
  216. extern void SetRowsInScreen();
  217. extern NewAll();
  218. extern HandleAbout();
  219.  
  220. /*mouse.c functions*/
  221. extern void NormBlock();
  222. extern void MovedMouse();
  223. extern HandleButton();
  224. extern void HandleInvs();
  225. extern HandleBlockInvs();
  226. extern void RvsBlock();
  227. extern void EndBlockInvs();
  228. extern HandleLineInvs();
  229. extern MoveForward();
  230. extern void EndLineInvs();
  231. extern void NormText();
  232. extern HandleDelBlock();
  233. extern void FindStartEnd();
  234. extern void DelBlock();
  235. extern void FreeListMem();
  236. extern void DelTextBlock();
  237. extern CancelInvs();
  238. extern DelInvs();
  239. extern void TitleError();
  240. extern void TitleErrorCancel();
  241. extern void BackSearchRefresh();
  242. extern void RvsText();
  243. extern CancelLineInvs();
  244. extern void NormIt();
  245.  
  246. /*sure.c functions*/
  247. extern BOOL AreYouSure();
  248.  
  249. /*disk.c functions*/
  250. extern WriteItemList();
  251. extern ReadItemList();
  252. extern struct LineItem *BreakLineApart();
  253. extern void CreatePrefsIcon();
  254.  
  255. /*clip.c functions*/
  256. extern void SetupClipboard();
  257. extern void WriteInvsTextToClip();
  258. extern void WriteStringClip();
  259. extern ReadString();
  260. extern ReadClip();
  261. extern void AddBlock();
  262. extern void WriteClip();
  263. extern SnagBlock();
  264.  
  265. /*menu.c functions*/
  266. extern NewAll();
  267. extern void HandleNew();
  268. extern void MakeFilename();
  269. extern HandleOpen();
  270. extern void Save();
  271. extern void HandleSaveAs();
  272. extern HandlePrintDisk();
  273. extern HandlePrintPrinter();
  274. extern void HandleQuit();
  275. extern HandleCut();
  276. extern HandleCopy();
  277. extern void HandlePaste();
  278. extern HandleErase();
  279. extern void Refresh();
  280. extern void CheckModified();
  281. extern void MakeTextLine();
  282. extern void HandleIcons();
  283. extern void HandlePalette();
  284. extern void HandleReloadPrefs();
  285.  
  286. /*From PopColours.c*/
  287. extern void PopColours();
  288.  
  289. /*From Search.c*/
  290. extern struct LineItem *SearchText();
  291. extern DoSearch();
  292. extern void ModifyParams();
  293. extern void ReplaceAll();
  294. extern BYTE AskChange();
  295.  
  296. /*From ARexx.c*/
  297. extern void OpenARexx();
  298. extern void CloseARexx();
  299. extern void CheckRexxPort();
  300. extern void GetWord();
  301. extern void EngageMacro();
  302. extern void GetMacroInfo();
  303. extern void SplitFilename();
  304.  
  305. /*~~~End of Globals.h*/
  306.