X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/77f5549a2b8bc550b276a6d84589a0d47dbbf50b..841f23e18a9d9e3d987b60422c3a220571868337:/samples/splash/splash.cpp diff --git a/samples/splash/splash.cpp b/samples/splash/splash.cpp index 4791c1f4c0..9fe6957fe7 100644 --- a/samples/splash/splash.cpp +++ b/samples/splash/splash.cpp @@ -32,6 +32,7 @@ #include "wx/image.h" #include "wx/splash.h" +#include "wx/mediactrl.h" // ---------------------------------------------------------------------------- // resources @@ -43,6 +44,10 @@ #include "../sample.xpm" #endif +// for smartphone, pda and other small screens use resized embedded image +// instead of full colour png dedicated to desktops +#include "mobile.xpm" + // ---------------------------------------------------------------------------- // private classes // ---------------------------------------------------------------------------- @@ -71,6 +76,8 @@ public: void OnQuit(wxCommandEvent& event); void OnAbout(wxCommandEvent& event); + bool m_isPda; + private: // any class wishing to process wxWidgets events must use this macro DECLARE_EVENT_TABLE() @@ -122,7 +129,15 @@ bool MyApp::OnInit() MyFrame *frame = new MyFrame(_T("wxSplashScreen sample application")); wxBitmap bitmap; - if (bitmap.LoadFile(_T("splash.png"), wxBITMAP_TYPE_PNG)) + + if (frame->m_isPda) + bitmap = wxBitmap(mobile_xpm); + + bool ok = frame->m_isPda + ? bitmap.Ok() + : bitmap.LoadFile(_T("splash.png"), wxBITMAP_TYPE_PNG); + + if (ok) { new wxSplashScreen(bitmap, wxSPLASH_CENTRE_ON_SCREEN|wxSPLASH_TIMEOUT, @@ -149,6 +164,8 @@ bool MyApp::OnInit() MyFrame::MyFrame(const wxString& title) : wxFrame(NULL, wxID_ANY, title) { + m_isPda = (wxSystemSettings::GetScreenType() <= wxSYS_SCREEN_PDA); + // set the frame icon SetIcon(wxICON(sample)); @@ -190,20 +207,40 @@ void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event)) void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event)) { wxBitmap bitmap; - if (bitmap.LoadFile(_T("splash.png"), wxBITMAP_TYPE_PNG)) + + if (m_isPda) bitmap = wxBitmap(mobile_xpm); + + bool ok = m_isPda + ? bitmap.Ok() + : bitmap.LoadFile(_T("splash.png"), wxBITMAP_TYPE_PNG); + + if (ok) { wxImage image = bitmap.ConvertToImage(); - image.Rescale( bitmap.GetWidth()/2, bitmap.GetHeight()/2 ); - bitmap = wxBitmap(image); + // do not scale on already small screens + if (!m_isPda) + image.Rescale( bitmap.GetWidth()/2, bitmap.GetHeight()/2 ); + bitmap = wxBitmap(image); wxSplashScreen *splash = new wxSplashScreen(bitmap, wxSPLASH_CENTRE_ON_PARENT | wxSPLASH_NO_TIMEOUT, 0, this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSIMPLE_BORDER|wxSTAY_ON_TOP); - wxStaticText *text = new wxStaticText( splash->GetSplashWindow(), wxID_EXIT, _T("click somewhere\non image"), wxPoint(13,11) ); + wxWindow *win = splash->GetSplashWindow(); +#if wxUSE_MEDIACTRL + wxMediaCtrl *media = new wxMediaCtrl( win, wxID_EXIT, _T("press.mpg"), wxPoint(2,2)); + media->Play(); +#else + wxStaticText *text = new wxStaticText( win, + wxID_EXIT, + _T("click somewhere\non image"), + wxPoint(m_isPda ? 0 : 13, + m_isPda ? 0 : 11) + ); text->SetBackgroundColour(*wxWHITE); text->SetForegroundColour(*wxBLACK); wxFont font = text->GetFont(); font.SetPointSize(2*font.GetPointSize()/3); text->SetFont(font); +#endif } }