⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 htmlcell.h

📁 wxGTK 是 wxWidgets 的 linux GTK+ (>2.2.3)版本。wxWidgets 是一个跨平台的 GUI 框架
💻 H
📖 第 1 页 / 共 2 页
字号:
    // dimensions of fragment (m_Descent is used to position text & images)    long m_Width, m_Height, m_Descent;    // position where the fragment is drawn:    long m_PosX, m_PosY;    // superscript/subscript/normal:    wxHtmlScriptMode m_ScriptMode;    long m_ScriptBaseline;    // destination address if this fragment is hypertext link, NULL otherwise    wxHtmlLinkInfo *m_Link;    // true if this cell can be placed on pagebreak, false otherwise    bool m_CanLiveOnPagebreak;    // unique identifier of the cell, generated from "id" property of tags    wxString m_id;    DECLARE_ABSTRACT_CLASS(wxHtmlCell)    DECLARE_NO_COPY_CLASS(wxHtmlCell)};// ----------------------------------------------------------------------------// Inherited cells:// ----------------------------------------------------------------------------// ----------------------------------------------------------------------------// wxHtmlWordCell//                  Single word in input stream.// ----------------------------------------------------------------------------class WXDLLIMPEXP_HTML wxHtmlWordCell : public wxHtmlCell{public:    wxHtmlWordCell(const wxString& word, const wxDC& dc);    void Draw(wxDC& dc, int x, int y, int view_y1, int view_y2,              wxHtmlRenderingInfo& info);    virtual wxCursor GetMouseCursor(wxHtmlWindowInterface *window) const;    wxString ConvertToText(wxHtmlSelection *sel) const;    bool IsLinebreakAllowed() const { return m_allowLinebreak; }    void SetPreviousWord(wxHtmlWordCell *cell);protected:    void SetSelectionPrivPos(const wxDC& dc, wxHtmlSelection *s) const;    void Split(const wxDC& dc,               const wxPoint& selFrom, const wxPoint& selTo,               unsigned& pos1, unsigned& pos2) const;    wxString m_Word;    bool     m_allowLinebreak;    DECLARE_ABSTRACT_CLASS(wxHtmlWordCell)    DECLARE_NO_COPY_CLASS(wxHtmlWordCell)};// Container contains other cells, thus forming tree structure of rendering// elements. Basic code of layout algorithm is contained in this class.class WXDLLIMPEXP_HTML wxHtmlContainerCell : public wxHtmlCell{public:    wxHtmlContainerCell(wxHtmlContainerCell *parent);    virtual ~wxHtmlContainerCell();    virtual void Layout(int w);    virtual void Draw(wxDC& dc, int x, int y, int view_y1, int view_y2,                      wxHtmlRenderingInfo& info);    virtual void DrawInvisible(wxDC& dc, int x, int y,                               wxHtmlRenderingInfo& info);/*    virtual bool AdjustPagebreak(int *pagebreak, int *known_pagebreaks = NULL, int number_of_pages = 0) const;*/    virtual bool AdjustPagebreak(int *pagebreak, wxArrayInt& known_pagebreaks) const;    // insert cell at the end of m_Cells list    void InsertCell(wxHtmlCell *cell);    // sets horizontal/vertical alignment    void SetAlignHor(int al) {m_AlignHor = al; m_LastLayout = -1;}    int GetAlignHor() const {return m_AlignHor;}    void SetAlignVer(int al) {m_AlignVer = al; m_LastLayout = -1;}    int GetAlignVer() const {return m_AlignVer;}    // sets left-border indentation. units is one of wxHTML_UNITS_* constants    // what is combination of wxHTML_INDENT_*    void SetIndent(int i, int what, int units = wxHTML_UNITS_PIXELS);    // returns the indentation. ind is one of wxHTML_INDENT_* constants    int GetIndent(int ind) const;    // returns type of value returned by GetIndent(ind)    int GetIndentUnits(int ind) const;    // sets alignment info based on given tag's params    void SetAlign(const wxHtmlTag& tag);    // sets floating width adjustment    // (examples : 32 percent of parent container,    // -15 pixels percent (this means 100 % - 15 pixels)    void SetWidthFloat(int w, int units) {m_WidthFloat = w; m_WidthFloatUnits = units; m_LastLayout = -1;}    void SetWidthFloat(const wxHtmlTag& tag, double pixel_scale = 1.0);    // sets minimal height of this container.    void SetMinHeight(int h, int align = wxHTML_ALIGN_TOP) {m_MinHeight = h; m_MinHeightAlign = align; m_LastLayout = -1;}    void SetBackgroundColour(const wxColour& clr) {m_UseBkColour = true; m_BkColour = clr;}    // returns background colour (of wxNullColour if none set), so that widgets can    // adapt to it:    wxColour GetBackgroundColour();    void SetBorder(const wxColour& clr1, const wxColour& clr2) {m_UseBorder = true; m_BorderColour1 = clr1, m_BorderColour2 = clr2;}    virtual wxHtmlLinkInfo* GetLink(int x = 0, int y = 0) const;    virtual const wxHtmlCell* Find(int condition, const void* param) const;#if WXWIN_COMPATIBILITY_2_6    // this was replaced by ProcessMouseClick, don't use in new code!    virtual void OnMouseClick(wxWindow *window,                              int x, int y, const wxMouseEvent& event);#endif    virtual bool ProcessMouseClick(wxHtmlWindowInterface *window,                                   const wxPoint& pos,                                   const wxMouseEvent& event);    virtual wxHtmlCell* GetFirstChild() const { return m_Cells; }#if WXWIN_COMPATIBILITY_2_4    wxDEPRECATED( wxHtmlCell* GetFirstCell() const );#endif    // returns last child cell:    wxHtmlCell* GetLastChild() const { return m_LastCell; }    // see comment in wxHtmlCell about this method    virtual bool IsTerminalCell() const { return false; }    virtual wxHtmlCell *FindCellByPos(wxCoord x, wxCoord y,                                  unsigned flags = wxHTML_FIND_EXACT) const;    virtual wxHtmlCell *GetFirstTerminal() const;    virtual wxHtmlCell *GetLastTerminal() const;    // Removes indentation on top or bottom of the container (i.e. above or    // below first/last terminal cell). For internal use only.    virtual void RemoveExtraSpacing(bool top, bool bottom);    // Returns the maximum possible length of the container.    // Call Layout at least once before using GetMaxTotalWidth()    virtual int GetMaxTotalWidth() const { return m_MaxTotalWidth; }protected:    void UpdateRenderingStatePre(wxHtmlRenderingInfo& info,                                 wxHtmlCell *cell) const;    void UpdateRenderingStatePost(wxHtmlRenderingInfo& info,                                  wxHtmlCell *cell) const;protected:    int m_IndentLeft, m_IndentRight, m_IndentTop, m_IndentBottom;            // indentation of subcells. There is always m_Indent pixels            // big space between given border of the container and the subcells            // it m_Indent < 0 it is in PERCENTS, otherwise it is in pixels    int m_MinHeight, m_MinHeightAlign;        // minimal height.    wxHtmlCell *m_Cells, *m_LastCell;            // internal cells, m_Cells points to the first of them, m_LastCell to the last one.            // (LastCell is needed only to speed-up InsertCell)    int m_AlignHor, m_AlignVer;            // alignment horizontal and vertical (left, center, right)    int m_WidthFloat, m_WidthFloatUnits;            // width float is used in adjustWidth    bool m_UseBkColour;    wxColour m_BkColour;            // background color of this container    bool m_UseBorder;    wxColour m_BorderColour1, m_BorderColour2;            // borders color of this container    int m_LastLayout;            // if != -1 then call to Layout may be no-op            // if previous call to Layout has same argument    int m_MaxTotalWidth;            // Maximum possible length if ignoring line wrap    DECLARE_ABSTRACT_CLASS(wxHtmlContainerCell)    DECLARE_NO_COPY_CLASS(wxHtmlContainerCell)};#if WXWIN_COMPATIBILITY_2_4inline wxHtmlCell* wxHtmlContainerCell::GetFirstCell() const    { return GetFirstChild(); }#endif// ---------------------------------------------------------------------------// wxHtmlColourCell//                  Color changer.// ---------------------------------------------------------------------------class WXDLLIMPEXP_HTML wxHtmlColourCell : public wxHtmlCell{public:    wxHtmlColourCell(const wxColour& clr, int flags = wxHTML_CLR_FOREGROUND) : wxHtmlCell() {m_Colour = clr; m_Flags = flags;}    virtual void Draw(wxDC& dc, int x, int y, int view_y1, int view_y2,                      wxHtmlRenderingInfo& info);    virtual void DrawInvisible(wxDC& dc, int x, int y,                               wxHtmlRenderingInfo& info);protected:    wxColour m_Colour;    unsigned m_Flags;    DECLARE_ABSTRACT_CLASS(wxHtmlColourCell)    DECLARE_NO_COPY_CLASS(wxHtmlColourCell)};//--------------------------------------------------------------------------------// wxHtmlFontCell//                  Sets actual font used for text rendering//--------------------------------------------------------------------------------class WXDLLIMPEXP_HTML wxHtmlFontCell : public wxHtmlCell{public:    wxHtmlFontCell(wxFont *font) : wxHtmlCell() { m_Font = (*font); }    virtual void Draw(wxDC& dc, int x, int y, int view_y1, int view_y2,                      wxHtmlRenderingInfo& info);    virtual void DrawInvisible(wxDC& dc, int x, int y,                               wxHtmlRenderingInfo& info);protected:    wxFont m_Font;    DECLARE_ABSTRACT_CLASS(wxHtmlFontCell)    DECLARE_NO_COPY_CLASS(wxHtmlFontCell)};//--------------------------------------------------------------------------------// wxHtmlwidgetCell//                  This cell is connected with wxWindow object//                  You can use it to insert windows into HTML page//                  (buttons, input boxes etc.)//--------------------------------------------------------------------------------class WXDLLIMPEXP_HTML wxHtmlWidgetCell : public wxHtmlCell{public:    // !!! wnd must have correct parent!    // if w != 0 then the m_Wnd has 'floating' width - it adjust    // it's width according to parent container's width    // (w is percent of parent's width)    wxHtmlWidgetCell(wxWindow *wnd, int w = 0);    virtual ~wxHtmlWidgetCell() { m_Wnd->Destroy(); }    virtual void Draw(wxDC& dc, int x, int y, int view_y1, int view_y2,                      wxHtmlRenderingInfo& info);    virtual void DrawInvisible(wxDC& dc, int x, int y,                               wxHtmlRenderingInfo& info);    virtual void Layout(int w);protected:    wxWindow* m_Wnd;    int m_WidthFloat;            // width float is used in adjustWidth (it is in percents)    DECLARE_ABSTRACT_CLASS(wxHtmlWidgetCell)    DECLARE_NO_COPY_CLASS(wxHtmlWidgetCell)};//--------------------------------------------------------------------------------// wxHtmlLinkInfo//                  Internal data structure. It represents hypertext link//--------------------------------------------------------------------------------class WXDLLIMPEXP_HTML wxHtmlLinkInfo : public wxObject{public:    wxHtmlLinkInfo() : wxObject()          { m_Href = m_Target = wxEmptyString; m_Event = NULL, m_Cell = NULL; }    wxHtmlLinkInfo(const wxString& href, const wxString& target = wxEmptyString) : wxObject()          { m_Href = href; m_Target = target; m_Event = NULL, m_Cell = NULL; }    wxHtmlLinkInfo(const wxHtmlLinkInfo& l) : wxObject()          { m_Href = l.m_Href, m_Target = l.m_Target, m_Event = l.m_Event;            m_Cell = l.m_Cell; }    wxHtmlLinkInfo& operator=(const wxHtmlLinkInfo& l)          { m_Href = l.m_Href, m_Target = l.m_Target, m_Event = l.m_Event;            m_Cell = l.m_Cell; return *this; }    void SetEvent(const wxMouseEvent *e) { m_Event = e; }    void SetHtmlCell(const wxHtmlCell *e) { m_Cell = e; }    wxString GetHref() const { return m_Href; }    wxString GetTarget() const { return m_Target; }    const wxMouseEvent* GetEvent() const { return m_Event; }    const wxHtmlCell* GetHtmlCell() const { return m_Cell; }private:    wxString m_Href, m_Target;    const wxMouseEvent *m_Event;    const wxHtmlCell *m_Cell;};// ----------------------------------------------------------------------------// wxHtmlTerminalCellsInterator// ----------------------------------------------------------------------------class WXDLLIMPEXP_HTML wxHtmlTerminalCellsInterator{public:    wxHtmlTerminalCellsInterator(const wxHtmlCell *from, const wxHtmlCell *to)        : m_to(to), m_pos(from) {}    operator bool() const { return m_pos != NULL; }    const wxHtmlCell* operator++();    const wxHtmlCell* operator->() const { return m_pos; }    const wxHtmlCell* operator*() const { return m_pos; }private:    const wxHtmlCell *m_to, *m_pos;};#endif // wxUSE_HTML#endif // _WX_HTMLCELL_H_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -