]>
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"
30 #include "wx/apptrait.h"
31 #include "wx/renderer.h"
33 #include "wx/ptr_scpd.h"
35 // ----------------------------------------------------------------------------
36 // wxRendererPtr: auto pointer holding the global renderer
37 // ----------------------------------------------------------------------------
39 wxDECLARE_SCOPED_PTR(wxRendererNative
, wxRendererPtrBase
);
40 wxDEFINE_SCOPED_PTR(wxRendererNative
, wxRendererPtrBase
);
42 class wxRendererPtr
: public wxRendererPtrBase
45 wxRendererPtr() : wxRendererPtrBase(NULL
) { m_initialized
= false; }
47 // return true if we have a renderer, false otherwise
52 // only try to create the renderer once
64 wxAppTraits
*traits
= wxTheApp
? wxTheApp
->GetTraits() : NULL
;
67 // ask the traits object to create a renderer for us
68 reset(traits
->CreateRenderer());
74 DECLARE_NO_COPY_CLASS(wxRendererPtr
)
77 // ============================================================================
78 // wxRendererNative implementation
79 // ============================================================================
82 wxRendererNative
& wxRendererNative::Get()
84 static wxRendererPtr s_renderer
;
86 return s_renderer
.IsOk() ? *s_renderer
.get() : GetDefault();