]> git.saurik.com Git - wxWidgets.git/blame_incremental - src/mac/carbon/pen.cpp
Patch by David Brinegar to fix menubar updating after modal dialog shown
[wxWidgets.git] / src / mac / carbon / pen.cpp
... / ...
CommitLineData
1/////////////////////////////////////////////////////////////////////////////
2// Name: pen.cpp
3// Purpose: wxPen
4// Author: Stefan Csomor
5// Modified by:
6// Created: 1998-01-01
7// RCS-ID: $Id$
8// Copyright: (c) Stefan Csomor
9// Licence: wxWindows licence
10/////////////////////////////////////////////////////////////////////////////
11
12#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
13#pragma implementation "pen.h"
14#endif
15
16#include "wx/wxprec.h"
17
18#include "wx/utils.h"
19#include "wx/pen.h"
20
21#if !USE_SHARED_LIBRARIES
22IMPLEMENT_DYNAMIC_CLASS(wxPen, wxGDIObject)
23#endif
24
25wxPenRefData::wxPenRefData()
26{
27 m_style = wxSOLID;
28 m_width = 1;
29 m_join = wxJOIN_ROUND ;
30 m_cap = wxCAP_ROUND ;
31 m_nbDash = 0 ;
32 m_dash = 0 ;
33}
34
35wxPenRefData::wxPenRefData(const wxPenRefData& data)
36: wxGDIRefData()
37{
38 m_style = data.m_style;
39 m_width = data.m_width;
40 m_join = data.m_join;
41 m_cap = data.m_cap;
42 m_nbDash = data.m_nbDash;
43 m_dash = data.m_dash;
44 m_colour = data.m_colour;
45}
46
47wxPenRefData::~wxPenRefData()
48{
49}
50
51// Pens
52
53wxPen::wxPen()
54{
55}
56
57wxPen::~wxPen()
58{
59}
60
61// Should implement Create
62wxPen::wxPen(const wxColour& col, int Width, int Style)
63{
64 m_refData = new wxPenRefData;
65
66 M_PENDATA->m_colour = col;
67 M_PENDATA->m_width = Width;
68 M_PENDATA->m_style = Style;
69 M_PENDATA->m_join = wxJOIN_ROUND ;
70 M_PENDATA->m_cap = wxCAP_ROUND ;
71 M_PENDATA->m_nbDash = 0 ;
72 M_PENDATA->m_dash = 0 ;
73
74 RealizeResource();
75}
76
77wxPen::wxPen(const wxBitmap& stipple, int Width)
78{
79 m_refData = new wxPenRefData;
80
81 M_PENDATA->m_stipple = stipple;
82 M_PENDATA->m_width = Width;
83 M_PENDATA->m_style = wxSTIPPLE;
84 M_PENDATA->m_join = wxJOIN_ROUND ;
85 M_PENDATA->m_cap = wxCAP_ROUND ;
86 M_PENDATA->m_nbDash = 0 ;
87 M_PENDATA->m_dash = 0 ;
88
89 RealizeResource();
90}
91
92void wxPen::Unshare()
93{
94 // Don't change shared data
95 if (!m_refData)
96 {
97 m_refData = new wxPenRefData();
98 }
99 else
100 {
101 wxPenRefData* ref = new wxPenRefData(*(wxPenRefData*)m_refData);
102 UnRef();
103 m_refData = ref;
104 }
105}
106
107void wxPen::SetColour(const wxColour& col)
108{
109 Unshare();
110
111 M_PENDATA->m_colour = col;
112
113 RealizeResource();
114}
115
116void wxPen::SetColour(unsigned char r, unsigned char g, unsigned char b)
117{
118 Unshare();
119
120 M_PENDATA->m_colour.Set(r, g, b);
121
122 RealizeResource();
123}
124
125void wxPen::SetWidth(int Width)
126{
127 Unshare();
128
129 M_PENDATA->m_width = Width;
130
131 RealizeResource();
132}
133
134void wxPen::SetStyle(int Style)
135{
136 Unshare();
137
138 M_PENDATA->m_style = Style;
139
140 RealizeResource();
141}
142
143void wxPen::SetStipple(const wxBitmap& Stipple)
144{
145 Unshare();
146
147 M_PENDATA->m_stipple = Stipple;
148 M_PENDATA->m_style = wxSTIPPLE;
149
150 RealizeResource();
151}
152
153void wxPen::SetDashes(int nb_dashes, const wxDash *Dash)
154{
155 Unshare();
156
157 M_PENDATA->m_nbDash = nb_dashes;
158 M_PENDATA->m_dash = (wxDash *)Dash;
159
160 RealizeResource();
161}
162
163void wxPen::SetJoin(int Join)
164{
165 Unshare();
166
167 M_PENDATA->m_join = Join;
168
169 RealizeResource();
170}
171
172void wxPen::SetCap(int Cap)
173{
174 Unshare();
175
176 M_PENDATA->m_cap = Cap;
177
178 RealizeResource();
179}
180
181bool wxPen::RealizeResource()
182{
183 // nothing to do here for mac
184 return TRUE;
185}
186
187