From: Vadim Zeitlin Date: Sat, 7 Apr 2007 23:53:06 +0000 (+0000) Subject: added GetIconOfExactSize() X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/9b5933bcbc58f62ba5e3423cbf56a7064c00b62e?ds=sidebyside added GetIconOfExactSize() git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45323 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/docs/latex/wx/iconbndl.tex b/docs/latex/wx/iconbndl.tex index efd9defb84..ac9fdece25 100644 --- a/docs/latex/wx/iconbndl.tex +++ b/docs/latex/wx/iconbndl.tex @@ -72,6 +72,14 @@ returns the icon with size wxSYS\_ICON\_X/wxSYS\_ICON\_Y. Same as GetIcon( wxSize( size, size ) ). +\membersection{wxIconBundle::GetIconOfExactSize}\label{wxiconbundlegeticonofexactsize} + +\constfunc{wxIcon}{GetIconOfExactSize}{\param{const wxSize\& }{size}} + +Returns the icon with exactly the given size or \texttt{wxNullIcon} if this +size is not available. + + \membersection{wxIconBundle::IsEmpty}\label{wxiconbundleisempty} \constfunc{bool}{IsEmpty}{\void} diff --git a/include/wx/iconbndl.h b/include/wx/iconbndl.h index 8f8e3d1f5b..e96b199547 100644 --- a/include/wx/iconbndl.h +++ b/include/wx/iconbndl.h @@ -64,10 +64,15 @@ public: // returns the first icon in the bundle wxIcon GetIcon(const wxSize& size) const; - // equivalent to GetIcon( wxSize( size, size ) ) + // equivalent to GetIcon(wxSize(size, size)) wxIcon GetIcon(wxCoord size = wxDefaultCoord) const - { return GetIcon( wxSize( size, size ) ); } + { return GetIcon(wxSize(size, size)); } + // returns the icon exactly of the specified size or wxNullIcon if no icon + // of exactly given size are available + wxIcon GetIconOfExactSize(const wxSize& size) const; + wxIcon GetIconOfExactSize(wxCoord size) const + { return GetIconOfExactSize(wxSize(size, size)); } // enumerate all icons in the bundle: don't use these functions if ti can // be avoided, using GetIcon() directly is better diff --git a/src/common/iconbndl.cpp b/src/common/iconbndl.cpp index f5b2b2cafe..961eb7f4a3 100644 --- a/src/common/iconbndl.cpp +++ b/src/common/iconbndl.cpp @@ -191,6 +191,18 @@ wxIcon wxIconBundle::GetIcon(const wxSize& size) const #endif } +wxIcon wxIconBundle::GetIconOfExactSize(const wxSize& size) const +{ + wxIcon icon = GetIcon(size); + if ( icon.Ok() && + (icon.GetWidth() != size.x || icon.GetHeight() != size.y) ) + { + icon = wxNullIcon; + } + + return icon; +} + void wxIconBundle::AddIcon(const wxIcon& icon) { wxCHECK_RET( icon.IsOk(), _T("invalid icon") );