]>
git.saurik.com Git - wxWidgets.git/blob - contrib/samples/deprecated/resource/resource.cpp
1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: Dialog resource sample
4 // Author: Julian Smart
8 // Copyright: (c) Julian Smart
9 // Licence: wxWindows license
10 /////////////////////////////////////////////////////////////////////////////
12 // For compilers that support precompilation, includes "wx/wx.h".
13 #include "wx/wxprec.h"
23 #include "wx/deprecated/setup.h"
25 #if !wxUSE_WX_RESOURCES
26 #error "You should set wxUSE_WX_RESOURCES to 1 to compile this sample"
30 // #error "This sample can't be compiled in Unicode mode."
31 #endif // wxUSE_UNICODE
33 #include "wx/deprecated/resource.h"
38 // If we wanted to demonstrate total platform independence,
39 // then we'd use the dynamic file loading form for all platforms.
40 // But this shows how to embed the wxWidgets resources
41 // in the program code/executable for UNIX and Windows
44 // In order to get the ID of the controls defined in the
45 // dialog, we include the header automatically generated
50 // If you have a Windows compiler that can cope with long strings,
51 // then you can always use the #include form for simplicity.
53 // NOTE: Borland's brc32.exe resource compiler doesn't recognize
54 // the TEXT resource, for some reason, so either run-time file loading
55 // or file inclusion should be used.
57 #if defined(__WXMSW__) && !wxUSE_UNICODE
58 // Under Windows, some compilers can't include
59 // a whole .wxr file. So we use a .rc user-defined resource
60 // instead. dialog1 will point to the whole .wxr 'file'.
61 static wxChar
*dialog1
= NULL
;
62 static wxChar
*menu1
= NULL
;
64 // Other platforms should have sensible compilers that
65 // cope with long strings.
66 #include "dialog1.wxr"
71 MyFrame
*frame
= (MyFrame
*) NULL
;
75 // Testing of ressources
80 // The `main program' equivalent, creating the windows and returning the
82 bool MyApp::OnInit(void)
84 #if defined(__WXMSW__) && !wxUSE_UNICODE
85 // Load the .wxr 'file' from a .rc resource, under Windows.
86 // note that the resource really is a char*, not a wxChar*!
87 dialog1
= wxLoadUserResource(wxT("dialog1"), wxT("WXRDATA"));
88 menu1
= wxLoadUserResource(wxT("menu1"), wxT("WXRDATA"));
89 // All resources in the file (only one in this case) get parsed
91 wxResourceParseString(dialog1
);
92 wxResourceParseString(menu1
);
94 // Simply parse the data pointed to by the variable dialog1.
95 // If there were several resources, there would be several
96 // variables, and this would need to be called several times.
97 wxResourceParseData(dialog1
);
98 wxResourceParseData(menu1
);
101 // Create the main frame window
102 frame
= new MyFrame( (wxFrame
*) NULL
, wxID_ANY
,
103 wxT("wxWidgets Resource Sample"),
104 wxDefaultPosition
, wxSize(300, 250) );
107 // Give it a status line
108 frame
->CreateStatusBar(2);
109 #endif // wxUSE_STATUSBAR
111 wxMenuBar
*menu_bar
= wxResourceCreateMenuBar(wxT("menu1"));
113 // Associate the menu bar with the frame
114 frame
->SetMenuBar(menu_bar
);
117 frame
->panel
= new MyPanel( frame
, wxID_ANY
, wxPoint(0, 0), wxSize(400, 400),
118 0, wxT("MyMainFrame") );
128 #if defined(__WXMSW__) && !wxUSE_UNICODE
134 BEGIN_EVENT_TABLE(MyPanel
, wxPanel
)
135 EVT_LEFT_DOWN( MyPanel::OnClick
)
140 wxWindow
*parent
, wxWindowID id
, const wxPoint
& pos
,
142 int style
, const wxString
&name
143 ) : wxPanel( parent
, id
, pos
, size
, style
, name
)
147 void MyPanel::OnClick( wxMouseEvent
&WXUNUSED(event2
) )
149 MyFrame
*frame
= (MyFrame
*)(wxTheApp
->GetTopWindow());
150 wxCommandEvent event
;
151 frame
->OnTestDialog( event
);
155 BEGIN_EVENT_TABLE(MyFrame
, wxFrame
)
156 EVT_MENU(RESOURCE_ABOUT
, MyFrame::OnAbout
)
157 EVT_MENU(RESOURCE_QUIT
, MyFrame::OnQuit
)
158 EVT_MENU(RESOURCE_TESTDIALOG
, MyFrame::OnTestDialog
)
161 // Define my frame constructor
164 wxWindow
*parent
, const wxWindowID id
,
165 const wxString
& title
, const wxPoint
& pos
, const wxSize
& size
166 ) : wxFrame(parent
, id
, title
, pos
, size
)
168 panel
= (wxWindow
*) NULL
;
171 void MyFrame::OnAbout( wxCommandEvent
& WXUNUSED(event
) )
173 wxMessageBox(wxT("wxWidgets resource sample.\n")
174 wxT("(c) Julian Smart"), wxT("About wxWidgets sample"),
175 wxICON_INFORMATION
| wxOK
);
178 void MyFrame::OnQuit( wxCommandEvent
& WXUNUSED(event
) )
183 void MyFrame::OnTestDialog(wxCommandEvent
& WXUNUSED(event
) )
185 MyDialog
*dialog
= new MyDialog
;
187 if (wxLoadFromResource(dialog
, this, wxT("dialog1")))
189 wxTextCtrl
*text
= (wxTextCtrl
*)wxFindWindowByName(wxT("multitext3"), dialog
);
192 text
->SetValue(wxT("wxWidgets resource demo"));
201 BEGIN_EVENT_TABLE(MyDialog
, wxDialog
)
202 //EVT_BUTTON(RESOURCE_OK, MyDialog::OnOk)
203 EVT_BUTTON(ID_BUTTON109
, MyDialog::OnCancel
)
207 void MyDialog::OnOk(wxCommandEvent
& WXUNUSED(event
) )
209 // EndModal(RESOURCE_OK);
212 void MyDialog::OnCancel(wxCommandEvent
& WXUNUSED(event
) )
214 EndModal(ID_BUTTON109
);