00001
00032 #ifndef INC_MGUI_HTML_H
00033 #define INC_MGUI_HTML_H
00034
00035 #ifndef INC_MGUI_DLGSHELL_H
00036 #include <mgui/dlgshell.h>
00037 #endif
00038
00039 #ifndef GENERATING_DOXYGEN_OUTPUT
00040 class FILEPATH;
00041 #endif
00042
00043
00044 namespace MGUI {
00045
00046
00047
00056 class FORM_HTML : public MGUI::FORM_COMPOSITE {
00057 public:
00058
00059 typedef fastdelegate::FastDelegate<void(const MISTRING& href)> DELEGATE_HYPERLINK;
00060
00062 FORM_HTML (
00063 );
00064
00066 ~FORM_HTML (
00067 );
00068
00069 void Create (
00070 LAYOUT_PANE_BASE& ParentPane,
00071 int height,
00072 int width,
00073 LAYOUT_SIZEALIGN sizealign = LAYOUT_SIZEALIGN_Expand
00074 );
00075
00078 void GetRenderedDocSize(
00079 int &height,
00080 int &width
00081 ) const;
00082
00084 void GetTitle (
00085 MISTRING& title
00086 ) const;
00087
00089 void Redraw ();
00090
00093 void SetBackgroundColor (
00094 const COLOR& BgColor
00095 );
00096
00098 void SetDelegateOnHyperLink (
00099 DELEGATE_HYPERLINK delegate
00100 ) { m_DelegateOnHyperLink = delegate; }
00101
00102
00103 void SetMinimumSize (
00104 int height,
00105 int width
00106 );
00107
00108 void SetValue (
00109 const MISTRING& value
00110 );
00111
00112 void SetValue (
00113 const FILEPATH& filepath
00114 );
00115
00116 private:
00117 #ifndef GENERATING_DOXYGEN_OUTPUT
00118 class PRIV;
00119 PRIV* m_priv;
00120 friend class PRIV;
00121
00122 DELEGATE_HYPERLINK m_DelegateOnHyperLink;
00123
00124 FORM_HTML (const FORM_HTML&);
00125 FORM_HTML& operator= (const FORM_HTML&);
00126 #endif // GENERATING_DOXYGEN_OUTPUT
00127
00128
00129 };
00130
00132 class DLG_HTML : public DLGSHELL {
00133 public:
00134 enum STYLE {
00135 STYLE_None = 0x00000000,
00136 STYLE_ShowAddressBar = 0x00000001,
00137 STYLE_ShowToolBar = 0x00000002,
00138 STYLE_AllLinksToExternalBrowser = 0x00000004
00139 };
00140
00141 DLG_HTML (
00142 STYLE style = STYLE_None
00143 );
00144
00145 virtual ~DLG_HTML();
00146
00149 void GetRenderedDocSize(
00150 int &height,
00151 int &width
00152 ) const;
00153
00155 void SetSize (
00156 INT32 height,
00157 INT32 width
00158 );
00159
00166 void SetDelegateOnHyperLink (
00167 FORM_HTML::DELEGATE_HYPERLINK delegate
00168 );
00169
00170 void SetURL (
00171 const MISTRING& url
00172 );
00173
00174 void SetValue (
00175 const FILEPATH& filepath
00176 );
00177
00178 void SetValue (
00179 const MISTRING& value
00180 );
00181
00182 private:
00183 #ifndef GENERATING_DOXYGEN_OUTPUT
00184 class PRIV;
00185 PRIV* m_priv;
00186 friend class PRIV;
00187
00188 ERRVALUE v_CreateContent();
00189
00190 DLG_HTML (const DLG_HTML&);
00191 DLG_HTML& operator= (const DLG_HTML&);
00192 #endif // GENERATING_DOXYGEN_OUTPUT
00193
00194 };
00195
00196 #ifndef GENERATING_DOXYGEN_OUTPUT
00197 DEFINE_ENUM_OP_BITWISE(DLG_HTML::STYLE)
00198 #endif
00199
00200
00201 }
00202
00203 #endif // INC_MGUI_HTML_H