]> git.saurik.com Git - wxWidgets.git/blob - src/html/m_hline.cpp
3fbad4d47c714f7bb7d94265a361e403344bd8cd
[wxWidgets.git] / src / html / m_hline.cpp
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: mod_hline.cpp
3 // Purpose: wxHtml module for horizontal line (HR tag)
4 // Author: Vaclav Slavik
5 // RCS-ID: $Id$
6 // Copyright: (c) 1999 Vaclav Slavik
7 // Licence: wxWindows Licence
8 /////////////////////////////////////////////////////////////////////////////
9
10 #ifdef __GNUG__
11 #pragma implementation
12 #endif
13
14 #include <wx/wxprec.h>
15
16
17 #include "wx/defs.h"
18 #if wxUSE_HTML
19 #ifdef __BORDLANDC__
20 #pragma hdrstop
21 #endif
22
23 #ifndef WXPRECOMP
24 #include <wx/wx.h>
25 #endif
26
27
28
29 #include "wx/html/forcelnk.h"
30 #include "wx/html/m_templ.h"
31
32 #include "wx/html/htmlcell.h"
33
34 FORCE_LINK_ME(mod_hline)
35
36
37 //-----------------------------------------------------------------------------
38 // wxHtmlLineCell
39 //-----------------------------------------------------------------------------
40
41 class wxHtmlLineCell : public wxHtmlCell
42 {
43 public:
44 wxHtmlLineCell(int size) : wxHtmlCell() {m_Height = size;}
45 void Draw(wxDC& dc, int x, int y, int view_y1, int view_y2);
46 void Layout(int w) {m_Width = w; if (m_Next) m_Next -> Layout(w);}
47 };
48
49
50 void wxHtmlLineCell::Draw(wxDC& dc, int x, int y, int view_y1, int view_y2)
51 {
52 wxBrush mybrush("BLACK", wxSOLID);
53 wxPen mypen("BLACK", 1, wxSOLID);
54 dc.SetBrush(mybrush);
55 dc.SetPen(mypen);
56 dc.DrawRectangle(x + m_PosX, y + m_PosY, m_Width, m_Height);
57 wxHtmlCell::Draw(dc, x, y, view_y1, view_y2);
58 }
59
60
61
62
63 //-----------------------------------------------------------------------------
64 // The list handler:
65 //-----------------------------------------------------------------------------
66
67
68 TAG_HANDLER_BEGIN(HR, "HR")
69
70 TAG_HANDLER_PROC(tag)
71 {
72 wxHtmlContainerCell *c;
73 int sz;
74
75 m_WParser -> CloseContainer();
76 c = m_WParser -> OpenContainer();
77
78 c -> SetIndent(m_WParser -> GetCharHeight(), wxHTML_INDENT_VERTICAL);
79 c -> SetAlignHor(wxHTML_ALIGN_CENTER);
80 c -> SetAlign(tag);
81 c -> SetWidthFloat(tag);
82 if (tag.HasParam("SIZE") && tag.ScanParam("SIZE", "%i", &sz) == 1) {}
83 else sz = 1;
84 c -> InsertCell(new wxHtmlLineCell(sz));
85
86 m_WParser -> CloseContainer();
87 m_WParser -> OpenContainer();
88
89 return FALSE;
90 }
91
92 TAG_HANDLER_END(HR)
93
94
95
96
97
98 TAGS_MODULE_BEGIN(HLine)
99
100 TAGS_MODULE_ADD(HR)
101
102 TAGS_MODULE_END(HLine)
103
104 #endif