X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5267aefd85739afd26bd19bfba998005119db446..f2b6dd8c508ddc1ebfee5b7d6e68a44b4e05a50f:/interface/wx/html/htmlcell.h?ds=sidebyside diff --git a/interface/wx/html/htmlcell.h b/interface/wx/html/htmlcell.h index 86f728562a..86351e6055 100644 --- a/interface/wx/html/htmlcell.h +++ b/interface/wx/html/htmlcell.h @@ -3,64 +3,70 @@ // Purpose: interface of wxHtml*Cell // Author: wxWidgets team // RCS-ID: $Id$ -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// + + /** - @class wxHtmlColourCell + @class wxHtmlRenderingStyle - This cell changes the colour of either the background or the foreground. + Allows HTML rendering customizations. + This class is used when rendering wxHtmlCells as a callback. @library{wxhtml} @category{html} + + @see wxHtmlRenderingInfo */ -class wxHtmlColourCell : public wxHtmlCell +class wxHtmlRenderingStyle { public: /** - Constructor. + Returns the colour to use for the selected text. + */ + virtual wxColour GetSelectedTextColour(const wxColour& clr) = 0; - @param clr - The color - @param flags - Can be one of following: - - wxHTML_CLR_FOREGROUND: change color of text - - wxHTML_CLR_BACKGROUND: change background color + /** + Returns the colour to use for the selected text's background. */ - wxHtmlColourCell(const wxColour& clr, int flags = wxHTML_CLR_FOREGROUND); + virtual wxColour GetSelectedTextBgColour(const wxColour& clr) = 0; }; - /** - @class wxHtmlWidgetCell + @class wxHtmlRenderingInfo - wxHtmlWidgetCell is a class that provides a connection between HTML cells and - widgets (an object derived from wxWindow). - You can use it to display things like forms, input boxes etc. in an HTML window. - - wxHtmlWidgetCell takes care of resizing and moving window. + This class contains information given to cells when drawing them. + Contains rendering state, selection information and rendering style object + that can be used to customize the output. @library{wxhtml} @category{html} + + @see @ref overview_html_cells, wxHtmlCell */ -class wxHtmlWidgetCell : public wxHtmlCell +class wxHtmlRenderingInfo { public: /** - Constructor. + Default ctor. + */ + wxHtmlRenderingInfo(); - @param wnd - Connected window. It is parent window @b must be the wxHtmlWindow object - within which it is displayed! - @param w - Floating width. If non-zero width of wnd window is adjusted so that it is - always w percents of parent container's width. (For example w = 100 means - that the window will always have same width as parent container). + //@{ + /** + Accessors. */ - wxHtmlWidgetCell(wxWindow* wnd, int w = 0); -}; + void SetSelection(wxHtmlSelection *s); + wxHtmlSelection *GetSelection() const; + void SetStyle(wxHtmlRenderingStyle *style); + wxHtmlRenderingStyle& GetStyle(); + + wxHtmlRenderingState& GetState(); + //@} +}; /** @@ -89,25 +95,39 @@ public: /** This method is used to adjust pagebreak position. - The parameter is variable that contains y-coordinate of page break + The first parameter is a variable that contains the y-coordinate of the page break (= horizontal line that should not be crossed by words, images etc.). If this cell cannot be divided into two pieces (each one on another page) - then it moves the pagebreak few pixels up. + then it either moves the pagebreak a few pixels up, if possible, or, if + the cell cannot fit on the page at all, then the cell is forced to + split unconditionally. + Returns @true if pagebreak was modified, @false otherwise. + @param pagebreak + position in pixel of the pagebreak. + + @param known_pagebreaks + the list of the previous pagebreaks + + @param pageHeight + the height in pixel of the page drawable area + Usage: @code - while (container->AdjustPagebreak(&p)) {} + while (container->AdjustPagebreak(&p, kp, ph)) {} @endcode + */ virtual bool AdjustPagebreak(int* pagebreak, - wxArrayInt& known_pagebreaks) const; + const wxArrayInt& known_pagebreaks, + int pageHeight) const; /** Renders the cell. @param dc - Device context to which the cell is to be drawn + Device context to which the cell is to be drawn. @param x,y Coordinates of parent's upper left corner (origin). You must add this to m_PosX,m_PosY when passing coordinates to dc's methods @@ -117,10 +137,12 @@ public: @endcode @param view_y1 y-coord of the first line visible in window. - This is used to optimize rendering speed + This is used to optimize rendering speed. @param view_y2 y-coord of the last line visible in window. - This is used to optimize rendering speed + This is used to optimize rendering speed. + @param info + Additional information for the rendering of the cell. */ virtual void Draw(wxDC& dc, int x, int y, int view_y1, int view_y2, wxHtmlRenderingInfo& info); @@ -138,8 +160,10 @@ public: @code dc->DrawText("hello", x + m_PosX, y + m_PosY) @endcode + @param info + Additional information for the rendering of the cell. */ - virtual void DrawInvisible(wxDC& cd, int x , int y, wxHtmlRenderingInfo& info); + virtual void DrawInvisible(wxDC& dc, int x , int y, wxHtmlRenderingInfo& info); /** Returns pointer to itself if this cell matches condition (or if any of the @@ -161,7 +185,7 @@ public: /** Returns descent value of the cell (m_Descent member). See explanation: - @image html descent.png + @image html htmlcell_descent.png */ int GetDescent() const; @@ -235,9 +259,11 @@ public: int GetWidth() const; /** + Layouts the cell. + This method performs two actions: -# adjusts the cell's width according to the fact that maximal possible - width is @e w. (this has sense when working with horizontal lines, tables etc.) + width is @e w (this has sense when working with horizontal lines, tables etc.) -# prepares layout (=fill-in m_PosX, m_PosY (and sometimes m_Height) members) based on actual width @e w @@ -250,7 +276,7 @@ public: This function is simple event handler. Each time the user clicks mouse button over a cell within wxHtmlWindow this method of that cell is called. - Default behavior is to call wxHtmlWindow::LoadPage. + Default behaviour is to call wxHtmlWindow::LoadPage. @param window interface to the parent HTML window @@ -385,7 +411,7 @@ public: - wxHTML_ALIGN_CENTER: cells are centered on line - wxHTML_ALIGN_TOP: cells are under the line - @image html alignv.png + @image html htmlcontcell_alignv.png */ void SetAlignVer(int al); @@ -401,13 +427,15 @@ public: Colour of top and left lines @param clr2 Colour of bottom and right lines + @param border + Size of the border in pixels */ - void SetBorder(const wxColour& clr1, const wxColour& clr2); + void SetBorder(const wxColour& clr1, const wxColour& clr2, int border = 1); /** Sets the indentation (free space between borders of container and subcells). - @image html indent.png + @image html htmlcontcell_indent.png @param i Indentation value. @@ -537,3 +565,57 @@ public: wxString GetTarget() const; }; +/** + @class wxHtmlColourCell + + This cell changes the colour of either the background or the foreground. + + @library{wxhtml} + @category{html} +*/ +class wxHtmlColourCell : public wxHtmlCell +{ +public: + /** + Constructor. + + @param clr + The color + @param flags + Can be one of following: + - wxHTML_CLR_FOREGROUND: change color of text + - wxHTML_CLR_BACKGROUND: change background color + */ + wxHtmlColourCell(const wxColour& clr, int flags = wxHTML_CLR_FOREGROUND); +}; + + + +/** + @class wxHtmlWidgetCell + + wxHtmlWidgetCell is a class that provides a connection between HTML cells and + widgets (an object derived from wxWindow). + You can use it to display things like forms, input boxes etc. in an HTML window. + + wxHtmlWidgetCell takes care of resizing and moving window. + + @library{wxhtml} + @category{html} +*/ +class wxHtmlWidgetCell : public wxHtmlCell +{ +public: + /** + Constructor. + + @param wnd + Connected window. It is parent window @b must be the wxHtmlWindow object + within which it is displayed! + @param w + Floating width. If non-zero width of wnd window is adjusted so that it is + always w percents of parent container's width. (For example w = 100 means + that the window will always have same width as parent container). + */ + wxHtmlWidgetCell(wxWindow* wnd, int w = 0); +};