]> git.saurik.com Git - wxWidgets.git/blame_incremental - include/wx/url.h
Use CmdDown in mouse events instead of ControlDown so Mac users can
[wxWidgets.git] / include / wx / url.h
... / ...
CommitLineData
1/////////////////////////////////////////////////////////////////////////////
2// Name: url.h
3// Purpose: URL parser
4// Author: Guilhem Lavaux
5// Modified by: Ryan Norton
6// Created: 20/07/1997
7// RCS-ID: $Id$
8// Copyright: (c) 1997, 1998 Guilhem Lavaux
9// Licence: wxWindows licence
10/////////////////////////////////////////////////////////////////////////////
11
12#ifndef _WX_URL_H
13#define _WX_URL_H
14
15#include "wx/defs.h"
16
17#if wxUSE_URL
18
19#include "wx/uri.h"
20#include "wx/protocol/protocol.h"
21
22#if wxUSE_PROTOCOL_HTTP
23 #include "wx/protocol/http.h"
24#endif
25
26typedef enum {
27 wxURL_NOERR = 0,
28 wxURL_SNTXERR,
29 wxURL_NOPROTO,
30 wxURL_NOHOST,
31 wxURL_NOPATH,
32 wxURL_CONNERR,
33 wxURL_PROTOERR
34} wxURLError;
35
36#if wxUSE_URL_NATIVE
37class WXDLLIMPEXP_NET wxURL;
38
39class WXDLLIMPEXP_NET wxURLNativeImp : public wxObject
40{
41public:
42 virtual ~wxURLNativeImp() { }
43 virtual wxInputStream *GetInputStream(wxURL *owner) = 0;
44};
45#endif // wxUSE_URL_NATIVE
46
47class WXDLLIMPEXP_NET wxURL : public wxURI
48{
49public:
50 wxURL(const wxString& sUrl);
51 wxURL(const wxURI& url);
52 virtual ~wxURL();
53
54 wxURL& operator = (const wxString& url);
55 wxURL& operator = (const wxURI& url);
56
57 wxProtocol& GetProtocol() { return *m_protocol; }
58 wxURLError GetError() const { return m_error; }
59 wxString GetURL() const { return m_url; }
60
61 wxInputStream *GetInputStream();
62
63#if wxUSE_PROTOCOL_HTTP
64 static void SetDefaultProxy(const wxString& url_proxy);
65 void SetProxy(const wxString& url_proxy);
66#endif // wxUSE_PROTOCOL_HTTP
67
68#if WXWIN_COMPATIBILITY_2_4
69 //Use the proper wxURI accessors instead
70 wxDEPRECATED( wxString GetProtocolName() const );
71 wxDEPRECATED( wxString GetHostName() const );
72 wxDEPRECATED( wxString GetPath() const );
73
74 //Use wxURI instead - this does not work that well
75 wxDEPRECATED( static wxString ConvertToValidURI(
76 const wxString& uri,
77 const wxChar* delims = wxT(";/?:@&=+$,")
78 ) );
79
80 //Use wxURI::Unescape instead
81 wxDEPRECATED( static wxString ConvertFromURI(const wxString& uri) );
82#endif
83
84protected:
85 static wxProtoInfo *ms_protocols;
86
87#if wxUSE_PROTOCOL_HTTP
88 static wxHTTP *ms_proxyDefault;
89 static bool ms_useDefaultProxy;
90 wxHTTP *m_proxy;
91#endif // wxUSE_PROTOCOL_HTTP
92
93#if wxUSE_URL_NATIVE
94 friend class wxURLNativeImp;
95 // pointer to a native URL implementation object
96 wxURLNativeImp *m_nativeImp;
97 // Creates on the heap and returns a native
98 // implementation object for the current platform.
99 static wxURLNativeImp *CreateNativeImpObject();
100#endif
101 wxProtoInfo *m_protoinfo;
102 wxProtocol *m_protocol;
103
104 wxURLError m_error;
105 wxString m_url;
106 bool m_useProxy;
107
108 void Init(const wxString&);
109 bool ParseURL();
110 void CleanData();
111 bool FetchProtocol();
112
113 friend class wxProtoInfo;
114 friend class wxURLModule;
115
116private:
117 DECLARE_DYNAMIC_CLASS(wxURL)
118};
119
120#endif // wxUSE_URL
121
122#endif // _WX_URL_H
123