]> git.saurik.com Git - wxWidgets.git/blame - src/html/m_hline.cpp
doubleclick selects word
[wxWidgets.git] / src / html / m_hline.cpp
CommitLineData
5526e819 1/////////////////////////////////////////////////////////////////////////////
c88293a4 2// Name: m_hline.cpp
5526e819
VS
3// Purpose: wxHtml module for horizontal line (HR tag)
4// Author: Vaclav Slavik
69941f05 5// RCS-ID: $Id$
5526e819
VS
6// Copyright: (c) 1999 Vaclav Slavik
7// Licence: wxWindows Licence
8/////////////////////////////////////////////////////////////////////////////
9
3364ab79
RS
10#ifdef __GNUG__
11#pragma implementation
12#endif
13
3096bd2f 14#include "wx/wxprec.h"
3364ab79 15
5526e819
VS
16
17#include "wx/defs.h"
f6bcfd97 18#if wxUSE_HTML && wxUSE_STREAMS
2b5f62a0 19#ifdef __BORLANDC__
3364ab79
RS
20#pragma hdrstop
21#endif
22
23#ifndef WXPRECOMP
04dbb646
VZ
24 #include "wx/brush.h"
25 #include "wx/pen.h"
26 #include "wx/dc.h"
3364ab79
RS
27#endif
28
69941f05
VS
29#include "wx/html/forcelnk.h"
30#include "wx/html/m_templ.h"
5526e819 31
69941f05 32#include "wx/html/htmlcell.h"
5526e819 33
c88293a4 34FORCE_LINK_ME(m_hline)
5526e819
VS
35
36
37//-----------------------------------------------------------------------------
38// wxHtmlLineCell
39//-----------------------------------------------------------------------------
40
41class wxHtmlLineCell : public wxHtmlCell
42{
43 public:
51072df2 44 wxHtmlLineCell(int size, bool shading) : wxHtmlCell() {m_Height = size; m_HasShading = shading;}
36c4ff4d 45 void Draw(wxDC& dc, int x, int y, int view_y1, int view_y2,
285f58ab 46 wxHtmlRenderingInfo& info);
d699f48b 47 void Layout(int w)
bf7d7ee7 48 { m_Width = w; wxHtmlCell::Layout(w); }
51072df2
VS
49
50 private:
51 // Should we draw 3-D shading or not
52 bool m_HasShading;
5526e819
VS
53};
54
55
36c4ff4d
VS
56void wxHtmlLineCell::Draw(wxDC& dc, int x, int y,
57 int WXUNUSED(view_y1), int WXUNUSED(view_y2),
285f58ab 58 wxHtmlRenderingInfo& WXUNUSED(info))
5526e819 59{
51072df2
VS
60 wxBrush mybrush(wxT("GREY"), (m_HasShading) ? wxTRANSPARENT : wxSOLID);
61 wxPen mypen(wxT("GREY"), 1, wxSOLID);
5526e819
VS
62 dc.SetBrush(mybrush);
63 dc.SetPen(mypen);
64 dc.DrawRectangle(x + m_PosX, y + m_PosY, m_Width, m_Height);
5526e819
VS
65}
66
67
68
69
70//-----------------------------------------------------------------------------
71// The list handler:
72//-----------------------------------------------------------------------------
73
74
75TAG_HANDLER_BEGIN(HR, "HR")
76
77 TAG_HANDLER_PROC(tag)
78 {
79 wxHtmlContainerCell *c;
80 int sz;
51072df2 81 bool HasShading;
5526e819 82
4f9297b0
VS
83 m_WParser->CloseContainer();
84 c = m_WParser->OpenContainer();
5526e819 85
4f9297b0
VS
86 c->SetIndent(m_WParser->GetCharHeight(), wxHTML_INDENT_VERTICAL);
87 c->SetAlignHor(wxHTML_ALIGN_CENTER);
88 c->SetAlign(tag);
89 c->SetWidthFloat(tag);
ec74539c 90 sz = 1;
8bd72d90 91 tag.GetParamAsInt(wxT("SIZE"), &sz);
51072df2
VS
92 HasShading = !(tag.HasParam(wxT("NOSHADE")));
93 c->InsertCell(new wxHtmlLineCell((int)((double)sz * m_WParser->GetPixelScale()), HasShading));
5526e819 94
4f9297b0
VS
95 m_WParser->CloseContainer();
96 m_WParser->OpenContainer();
5526e819
VS
97
98 return FALSE;
99 }
100
101TAG_HANDLER_END(HR)
102
103
104
105
106
107TAGS_MODULE_BEGIN(HLine)
108
109 TAGS_MODULE_ADD(HR)
110
111TAGS_MODULE_END(HLine)
112
113#endif