1 /////////////////////////////////////////////////////////////////////////////
2 // Name:        src/xrc/xh_bmpbt.cpp
3 // Purpose:     XRC resource for bitmap buttons
4 // Author:      Brian Gavin
5 // Created:     2000/09/09
6 // Copyright:   (c) 2000 Brian Gavin
7 // Licence:     wxWindows licence
8 /////////////////////////////////////////////////////////////////////////////
9 
10 // For compilers that support precompilation, includes "wx.h".
11 #include "wx/wxprec.h"
12 
13 #ifdef __BORLANDC__
14     #pragma hdrstop
15 #endif
16 
17 #if wxUSE_XRC && wxUSE_BMPBUTTON
18 
19 #include "wx/xrc/xh_bmpbt.h"
20 
21 #ifndef WX_PRECOMP
22     #include "wx/bmpbuttn.h"
23 #endif
24 
IMPLEMENT_DYNAMIC_CLASS(wxBitmapButtonXmlHandler,wxXmlResourceHandler)25 IMPLEMENT_DYNAMIC_CLASS(wxBitmapButtonXmlHandler, wxXmlResourceHandler)
26 
27 wxBitmapButtonXmlHandler::wxBitmapButtonXmlHandler()
28 : wxXmlResourceHandler()
29 {
30     XRC_ADD_STYLE(wxBU_AUTODRAW);
31     XRC_ADD_STYLE(wxBU_LEFT);
32     XRC_ADD_STYLE(wxBU_RIGHT);
33     XRC_ADD_STYLE(wxBU_TOP);
34     XRC_ADD_STYLE(wxBU_BOTTOM);
35     XRC_ADD_STYLE(wxBU_EXACTFIT);
36     AddWindowStyles();
37 }
38 
DoCreateResource()39 wxObject *wxBitmapButtonXmlHandler::DoCreateResource()
40 {
41     XRC_MAKE_INSTANCE(button, wxBitmapButton)
42 
43     button->Create(m_parentAsWindow,
44                    GetID(),
45                    GetBitmap(wxT("bitmap"), wxART_BUTTON),
46                    GetPosition(), GetSize(),
47                    GetStyle(wxT("style"), wxBU_AUTODRAW),
48                    wxDefaultValidator,
49                    GetName());
50     if (GetBool(wxT("default"), 0))
51         button->SetDefault();
52     SetupWindow(button);
53 
54     if (GetParamNode(wxT("selected")))
55         button->SetBitmapSelected(GetBitmap(wxT("selected")));
56     if (GetParamNode(wxT("focus")))
57         button->SetBitmapFocus(GetBitmap(wxT("focus")));
58     if (GetParamNode(wxT("disabled")))
59         button->SetBitmapDisabled(GetBitmap(wxT("disabled")));
60     if (GetParamNode(wxT("hover")))
61         button->SetBitmapHover(GetBitmap(wxT("hover")));
62 
63     return button;
64 }
65 
CanHandle(wxXmlNode * node)66 bool wxBitmapButtonXmlHandler::CanHandle(wxXmlNode *node)
67 {
68     return IsOfClass(node, wxT("wxBitmapButton"));
69 }
70 
71 #endif // wxUSE_XRC && wxUSE_BMPBUTTON
72