]>
git.saurik.com Git - wxWidgets.git/blob - src/common/rendcmn.cpp
1 ///////////////////////////////////////////////////////////////////////////////
2 // Name: common/rendcmn.cpp
3 // Purpose: wxRendererNative common functions
4 // Author: Vadim Zeitlin
8 // Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwindows.org>
9 // License: wxWindows license
10 ///////////////////////////////////////////////////////////////////////////////
12 // ============================================================================
14 // ============================================================================
16 // ----------------------------------------------------------------------------
18 // ----------------------------------------------------------------------------
20 #include "wx/wxprec.h"
29 #include "wx/apptrait.h"
30 #include "wx/renderer.h"
32 #include "wx/ptr_scpd.h"
34 // ----------------------------------------------------------------------------
35 // wxRendererPtr: auto pointer holding the global renderer
36 // ----------------------------------------------------------------------------
38 wxDECLARE_SCOPED_PTR(wxRendererNative
, wxRendererPtrBase
);
39 wxDEFINE_SCOPED_PTR(wxRendererNative
, wxRendererPtrBase
);
41 class wxRendererPtr
: public wxRendererPtrBase
44 wxRendererPtr() : wxRendererPtrBase(NULL
) { m_initialized
= false; }
46 // return true if we have a renderer, false otherwise
51 // only try to create the renderer once
63 wxAppTraits
*traits
= wxTheApp
? wxTheApp
->GetTraits() : NULL
;
66 // ask the traits object to create a renderer for us
67 reset(traits
->CreateRenderer());
73 DECLARE_NO_COPY_CLASS(wxRendererPtr
)
76 // ============================================================================
77 // wxRendererNative implementation
78 // ============================================================================
81 wxRendererNative
& wxRendererNative::Get()
83 static wxRendererPtr s_renderer
;
85 return s_renderer
.IsOk() ? *s_renderer
.get() : GetDefault();