Initial import of Scalos. To decrease size I have
[AROS-Contrib.git] / scalos / include / libraries / openurl.h
blobb8dda136a59a6585ce49618eea3cf7d161352534
1 #ifndef LIBRARIES_OPENURL_H
2 #define LIBRARIES_OPENURL_H
4 /*
5 ** $VER: openurl.h 7.2 (1.12.2005)
6 ** Includes Release 7.2
7 **
8 ** openurl.library - universal URL display and browser
9 ** launcher library
11 ** Written by Troels Walsted Hansen <troels@thule.no>
12 ** Placed in the public domain.
14 ** Developed by:
15 ** - Alfonso Ranieri <alforan@tin.it>
16 ** - Stefan Kost <ensonic@sonicpulse.de>
20 #ifndef EXEC_TYPES_H
21 #include <exec/types.h>
22 #endif
24 #ifndef EXEC_LISTS_H
25 #include <exec/lists.h>
26 #endif
28 #ifndef EXEC_NODES_H
29 #include <exec/nodes.h>
30 #endif
32 #ifndef UTILITY_TAGITEM_H
33 #include <utility/tagitem.h>
34 #endif
36 #if defined(__PPC__)
37 #if defined(__GNUC__)
38 #pragma pack(2)
39 #elif defined(__VBCC__)
40 #pragma amiga-align
41 #endif
42 #endif
44 /**************************************************************************/
46 ** Names
49 #define OPENURLNAME "openurl.library"
50 #define OPENURLVER 7
51 #define OPENURLREV 2
53 /**************************************************************************/
55 ** Tags
58 #define URL_Tagbase ((int)0x81480000)
60 #define URL_Show (URL_Tagbase + 1) /* BOOL - Uniconify browser */
61 #define URL_BringToFront (URL_Tagbase + 2) /* BOOL - Bring browser to front */
62 #define URL_NewWindow (URL_Tagbase + 3) /* BOOL - Open URL in new window */
63 #define URL_Launch (URL_Tagbase + 4) /* BOOL - Launch browser when not running */
64 #define URL_PubScreenName (URL_Tagbase + 5) /* UBYTE * - Name of public screen to launch at */
66 #define URL_GetPrefs_Mode (URL_Tagbase + 20) /* BOOL - Get default prefs */
67 #define URL_GetPrefs_FallBack (URL_Tagbase + 21) /* BOOL - Do not fail (TRUE) */
69 #define URL_SetPrefs_Save (URL_Tagbase + 30) /* BOOL - Save prefs to ENVARC: also */
71 #define URL_GetAttr_Version (URL_Tagbase + 60) /* ULONG - Library version */
72 #define URL_GetAttr_Revision (URL_Tagbase + 61) /* ULONG - Library revision */
73 #define URL_GetAttr_VerString (URL_Tagbase + 62) /* STRPTR - "openurl.library 6.4 (27.7.2005)" */
74 #define URL_GetAttr_PrefsVer (URL_Tagbase + 63) /* ULONG - Library preferences version */
76 #define URL_GetAttr_HandlerVersion (URL_Tagbase + 64) /* Obsolete !!! DON'T USE !!! */
77 #define URL_GetAttr_HandlerRevision (URL_Tagbase + 65) /* Obsolete !!! DON'T USE !!! */
78 #define URL_GetAttr_HandlerVerString (URL_Tagbase + 66) /* Obsolete !!! DON'T USE !!! */
80 enum
82 URL_GetPrefs_Mode_Env,
83 URL_GetPrefs_Mode_Envarc,
84 URL_GetPrefs_Mode_Default,
85 URL_GetPrefs_Mode_InUse,
88 /**************************************************************************/
90 #define REXX_CMD_LEN 64
91 #define NAME_LEN 32
92 #define PATH_LEN 256
93 #define PORT_LEN 32
95 #define SHOWCMD_LEN REXX_CMD_LEN
96 #define TOFRONTCMD_LEN REXX_CMD_LEN
97 #define OPENURLCMD_LEN REXX_CMD_LEN
98 #define OPENURLWCMD_LEN REXX_CMD_LEN
99 #define WRITEMAILCMD_LEN (REXX_CMD_LEN*2)
101 /**************************************************************************/
103 ** Version 4 Prefs
106 #define PREFS_VERSION ((UBYTE)4)
108 struct URL_Prefs
110 UBYTE up_Version; /* always check this version number! */
111 struct MinList up_BrowserList; /* list of struct URL_BrowserNodes */
112 struct MinList up_MailerList; /* list of struct URL_MailerNodes */
113 struct MinList up_FTPList; /* list of struct URL_MailerNodes */
115 ULONG up_Flags; /* flags, see below */
117 ULONG up_DefShow; /* these BOOLs are the defaults for */
118 ULONG up_DefBringToFront; /* the similarly named tags */
119 ULONG up_DefNewWindow; /* they are all new with Version 2 */
120 ULONG up_DefLaunch;
123 /* up_Flags */
124 enum
126 UPF_ISDEFAULTS = 1<<0, /* structure contains the default settings */
127 UPF_PREPENDHTTP = 1<<1, /* prepend "http://" to URLs w/o scheme */
128 UPF_DOMAILTO = 1<<2, /* mailto: URLs get special treatment */
129 UPF_DOFTP = 1<<3, /* ftp:// URLs get special treatment */
132 /**************************************************************************/
134 ** Common #?_Flags values
137 enum
139 UNF_DISABLED = 1<<1, /* The entry is disabled */
141 UNF_NEW = 1<<16, /* Reserved for OpenURL preferences application */
142 UNF_NTALLOC = 1<<17, /* Reserved for OpenURL preferences application */
145 /**************************************************************************/
147 ** Browsers
150 struct URL_BrowserNode
152 struct MinNode ubn_Node;
153 ULONG ubn_Flags; /* flags, see below */
154 UBYTE ubn_Name[NAME_LEN]; /* name of webbrowser */
155 UBYTE ubn_Path[PATH_LEN]; /* complete path to browser */
156 UBYTE ubn_Port[PORT_LEN]; /* webbrowser arexx port */
157 UBYTE ubn_ShowCmd[SHOWCMD_LEN]; /* command to show/uniconify browser */
158 UBYTE ubn_ToFrontCmd[TOFRONTCMD_LEN]; /* command to bring browser to front */
159 UBYTE ubn_OpenURLCmd[OPENURLCMD_LEN]; /* command to open url */
160 UBYTE ubn_OpenURLWCmd[OPENURLWCMD_LEN]; /* command to open url in new window */
163 /* ubn_Flags */
164 enum
167 ** If set, browser supports getting an URL on
168 ** the commandline when launched. obsolete as
169 ** of V3 - use %u on commandline instead
171 UBNF_URLONCMDLINE = 1<<0,
174 /**************************************************************************/
176 ** Mailers
179 struct URL_MailerNode
181 struct MinNode umn_Node;
182 ULONG umn_Flags; /* flags, none defined */
183 UBYTE umn_Name[NAME_LEN]; /* name of mailer */
184 UBYTE umn_Path[PATH_LEN]; /* complete path to mailer */
185 UBYTE umn_Port[PORT_LEN]; /* mailer arexx port */
186 UBYTE umn_ShowCmd[SHOWCMD_LEN]; /* command to show/uniconify mailer */
187 UBYTE umn_ToFrontCmd[TOFRONTCMD_LEN]; /* command to bring mailer to front */
188 UBYTE umn_WriteMailCmd[WRITEMAILCMD_LEN]; /* command to write mail */
191 /**************************************************************************/
193 ** FTPs
196 struct URL_FTPNode
198 struct MinNode ufn_Node;
199 ULONG ufn_Flags; /* flags, see below */
200 UBYTE ufn_Name[NAME_LEN]; /* name of ftp client */
201 UBYTE ufn_Path[PATH_LEN]; /* complete path to ftp client */
202 UBYTE ufn_Port[PORT_LEN]; /* webbrowser arexx port */
203 UBYTE ufn_ShowCmd[SHOWCMD_LEN]; /* command to show/uniconify ftp client */
204 UBYTE ufn_ToFrontCmd[TOFRONTCMD_LEN]; /* command to bring ftp client to front */
205 UBYTE ufn_OpenURLCmd[OPENURLCMD_LEN]; /* command to open url */
206 UBYTE ufn_OpenURLWCmd[OPENURLWCMD_LEN]; /* command to open url in new window */
209 /* ufn_Flags */
210 enum
212 /* If set, ftp:// ise removed from the URL */
213 UFNF_REMOVEFTP = 1<<0,
216 /**************************************************************************/
218 #if defined(__PPC__)
219 #if defined(__GNUC__)
220 #pragma pack()
221 #elif defined(__VBCC__)
222 #pragma default-align
223 #endif
224 #endif
226 #endif /* LIBRARIES_OPENURL_H */