1 #ifndef LIBRARIES_OPENURL_H 2 #define LIBRARIES_OPENURL_H 3 4 /* 5 ** $VER: openurl.h 6.3 (17.4.2005) 6 ** Includes Release 6.3 7 ** 8 ** openurl.library - universal URL display and browser 9 ** launcher library 10 ** 11 ** Written by Troels Walsted Hansen <troels@thule.no> 12 ** Placed in the public domain. 13 ** 14 ** Developed by: 15 ** - Alfonso Ranieri <alforan@tin.it> 16 ** - Stefan Kost <ensonic@sonicpulse.de> 17 ** 18 */ 19 20 #ifndef EXEC_TYPES_H 21 #include <exec/types.h> 22 #endif 23 24 #ifndef EXEC_LISTS_H 25 #include <exec/lists.h> 26 #endif 27 28 #ifndef EXEC_NODES_H 29 #include <exec/nodes.h> 30 #endif 31 32 #ifndef UTILITY_TAGITEM_H 33 #include <utility/tagitem.h> 34 #endif 35 36 #if defined(__PPC__) 37 #if defined(__GNUC__) 38 #pragma pack(2) 39 #elif defined(__VBCC__) 40 #pragma amiga-align 41 #endif 42 #endif 43 44 /**************************************************************************/ 45 /* 46 ** Names 47 */ 48 49 #define OPENURLNAME "openurl.library" 50 #define OPENURLVER 6 51 52 /**************************************************************************/ 53 /* 54 ** Tags 55 */ 56 57 #define URL_Tagbase TAG_USER 58 59 #define URL_Show (URL_Tagbase + 1) /* ULONG - show/uniconify browser */ 60 #define URL_BringToFront (URL_Tagbase + 2) /* ULONG - bring browser to front */ 61 #define URL_NewWindow (URL_Tagbase + 3) /* ULONG - open URL in new window */ 62 #define URL_Launch (URL_Tagbase + 4) /* ULONG - launch browser when not running */ 63 #define URL_PubScreenName (URL_Tagbase + 5) /* STRPTR - name of public screen to launch at */ 64 65 #define URL_GetPrefs_Default (URL_Tagbase + 20) 66 #define URL_SetPrefs_Save (URL_Tagbase + 30) 67 68 #define URL_GetAttr_Version (URL_Tagbase + 60) 69 #define URL_GetAttr_Revision (URL_Tagbase + 61) 70 #define URL_GetAttr_VerString (URL_Tagbase + 62) 71 #define URL_GetAttr_PrefsVer (URL_Tagbase + 63) 72 #define URL_GetAttr_HandlerVersion (URL_Tagbase + 64) 73 #define URL_GetAttr_HandlerRevision (URL_Tagbase + 65) 74 #define URL_GetAttr_HandlerVerString (URL_Tagbase + 66) 75 76 /**************************************************************************/ 77 78 #define REXX_CMD_LEN 64 79 #define NAME_LEN 32 80 #define PATH_LEN 256 81 #define PORT_LEN 32 82 83 #define SHOWCMD_LEN REXX_CMD_LEN 84 #define TOFRONTCMD_LEN REXX_CMD_LEN 85 #define OPENURLCMD_LEN REXX_CMD_LEN 86 #define OPENURLWCMD_LEN REXX_CMD_LEN 87 #define WRITEMAILCMD_LEN (REXX_CMD_LEN * 2) 88 89 /**************************************************************************/ 90 /* 91 ** Version 4 Prefs 92 */ 93 94 #define PREFS_VERSION ((UBYTE)4) 95 96 struct URL_Prefs 97 { 98 UBYTE up_Version; /* always check this version number! */ 99 struct MinList up_BrowserList; /* list of struct URL_BrowserNodes */ 100 struct MinList up_MailerList; /* V3 - list of struct URL_MailerNodes */ 101 struct MinList up_FTPList; /* V4 - list of struct URL_MailerNodes */ 102 103 ULONG up_Flags; /* V2 - flags, see below */ 104 105 ULONG up_DefShow; /* these BOOLs are the defaults for */ 106 ULONG up_DefBringToFront; /* the similarly named tags */ 107 ULONG up_DefNewWindow; /* they are all new with Version 2 */ 108 ULONG up_DefLaunch; 109 }; 110 111 /* up_Flags */ 112 enum 113 { 114 UPF_ISDEFAULTS = 1<<0, /* V2 - structure contains the default settings */ 115 UPF_PREPENDHTTP = 1<<1, /* V3 - prepend "http://" to URLs w/o scheme */ 116 UPF_DOMAILTO = 1<<2, /* V3 - mailto: URLs get special treatment */ 117 UPF_DOFTP = 1<<3, /* V4 - ftp:// URLs get special treatment */ 118 }; 119 120 /**************************************************************************/ 121 /* 122 ** Common #?_Flags values 123 */ 124 125 enum 126 { 127 UNF_DISABLED = 1<<1, /* The entry is disabled */ 128 129 UNF_NEW = 1<<16, /* Reserved for OpenURL preferences application */ 130 UNF_NTALLOC = 1<<17, /* Reserved for OpenURL preferences application */ 131 }; 132 133 /**************************************************************************/ 134 /* 135 ** Browsers 136 */ 137 138 struct URL_BrowserNode 139 { 140 struct MinNode ubn_Node; 141 ULONG ubn_Flags; /* flags, see below */ 142 TEXT ubn_Name[NAME_LEN]; /* name of webbrowser */ 143 TEXT ubn_Path[PATH_LEN]; /* complete path to browser */ 144 TEXT ubn_Port[PORT_LEN]; /* webbrowser arexx port */ 145 TEXT ubn_ShowCmd[SHOWCMD_LEN]; /* command to show/uniconify browser */ 146 TEXT ubn_ToFrontCmd[TOFRONTCMD_LEN]; /* command to bring browser to front */ 147 TEXT ubn_OpenURLCmd[OPENURLCMD_LEN]; /* command to open url */ 148 TEXT ubn_OpenURLWCmd[OPENURLWCMD_LEN]; /* command to open url in new window */ 149 }; 150 151 /* ubn_Flags */ 152 enum 153 { 154 UBNF_URLONCMDLINE = 1<<0, /* if set, browser supports getting an URL on 155 the commandline when launched. obsolete as 156 of V3 - use %u on commandline instead */ 157 }; 158 159 /**************************************************************************/ 160 /* 161 ** Mailers 162 */ 163 164 struct URL_MailerNode 165 { 166 struct MinNode umn_Node; 167 ULONG umn_Flags; /* flags, none defined */ 168 TEXT umn_Name[NAME_LEN]; /* name of mailer */ 169 TEXT umn_Path[PATH_LEN]; /* complete path to mailer */ 170 TEXT umn_Port[PORT_LEN]; /* mailer arexx port */ 171 TEXT umn_ShowCmd[SHOWCMD_LEN]; /* command to show/uniconify mailer */ 172 TEXT umn_ToFrontCmd[TOFRONTCMD_LEN]; /* command to bring mailer to front */ 173 TEXT umn_WriteMailCmd[WRITEMAILCMD_LEN]; /* command to write mail */ 174 }; 175 176 /**************************************************************************/ 177 /* 178 ** FTPs 179 */ 180 181 struct URL_FTPNode 182 { 183 struct MinNode ufn_Node; 184 ULONG ufn_Flags; /* flags, see below */ 185 TEXT ufn_Name[NAME_LEN]; /* name of ftp client */ 186 TEXT ufn_Path[PATH_LEN]; /* complete path to ftp client */ 187 TEXT ufn_Port[PORT_LEN]; /* webbrowser arexx port */ 188 TEXT ufn_ShowCmd[SHOWCMD_LEN]; /* command to show/uniconify ftp client */ 189 TEXT ufn_ToFrontCmd[TOFRONTCMD_LEN]; /* command to bring ftp client to front */ 190 TEXT ufn_OpenURLCmd[OPENURLCMD_LEN]; /* command to open url */ 191 TEXT ufn_OpenURLWCmd[OPENURLWCMD_LEN]; /* command to open url in new window */ 192 }; 193 194 /* ufn_Flags */ 195 enum 196 { 197 UFNF_REMOVEFTP = 1<<0, /* if set, ftp:// ise removed from the URL */ 198 }; 199 200 /**************************************************************************/ 201 202 #if defined(__PPC__) 203 #if defined(__GNUC__) 204 #pragma pack() 205 #elif defined(__VBCC__) 206 #pragma default-align 207 #endif 208 #endif 209 210 #endif /* LIBRARIES_OPENURL_H */