X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/655719367ac5e131d9642e5783f3ecf64d1a3385..8a68e8dbbe6bc8f90d116634a96ebcd025ba7e5a:/include/wx/msw/private.h diff --git a/include/wx/msw/private.h b/include/wx/msw/private.h index cb372c1e3b..b1ee23b549 100644 --- a/include/wx/msw/private.h +++ b/include/wx/msw/private.h @@ -46,6 +46,11 @@ static const double twips2mm = (1/(METRIC_CONVERSION_CONSTANT*1440)); static const double mm2pt = (METRIC_CONVERSION_CONSTANT*72); static const double pt2mm = (1/(METRIC_CONVERSION_CONSTANT*72)); +// 260 was taken from windef.h +#ifndef MAX_PATH + #define MAX_PATH 260 +#endif + // --------------------------------------------------------------------------- // standard icons from the resources // --------------------------------------------------------------------------- @@ -138,11 +143,11 @@ WXDLLEXPORT_DATA(extern HFONT) wxSTATUS_LINE_FONT; #define STATIC_FLAGS (SS_LEFT|WS_CHILD|WS_VISIBLE) #define CHECK_CLASS wxT("BUTTON") #define CHECK_FLAGS (BS_AUTOCHECKBOX|WS_TABSTOP|WS_CHILD) -#define CHECK_IS_FAFA FALSE +#define CHECK_IS_FAFA FALSE #define RADIO_CLASS wxT("BUTTON") #define RADIO_FLAGS (BS_AUTORADIOBUTTON|WS_CHILD|WS_VISIBLE) #define RADIO_SIZE 20 -#define RADIO_IS_FAFA FALSE +#define RADIO_IS_FAFA FALSE #define PURE_WINDOWS #define GROUP_CLASS wxT("BUTTON") #define GROUP_FLAGS (BS_GROUPBOX|WS_CHILD|WS_VISIBLE) @@ -325,7 +330,9 @@ struct WinStruct : public T WinStruct() { ::ZeroMemory(this, sizeof(T)); - cbSize = sizeof(T); + + // explicit qualification is required here for this to be valid C++ + this->cbSize = sizeof(T); } }; @@ -346,6 +353,22 @@ private: DECLARE_NO_COPY_CLASS(ScreenHDC) }; +// the same as ScreenHDC but for window DCs +class WindowHDC +{ +public: + WindowHDC(HWND hwnd) { m_hdc = ::GetDC(m_hwnd = hwnd); } + ~WindowHDC() { ::ReleaseDC(m_hwnd, m_hdc); } + + operator HDC() const { return m_hdc; } + +private: + HWND m_hwnd; + HDC m_hdc; + + DECLARE_NO_COPY_CLASS(WindowHDC) +}; + // the same as ScreenHDC but for memory DCs: creates the HDC compatible with // the given one (screen by default) in ctor and destroys it in dtor class MemoryHDC @@ -485,13 +508,30 @@ extern "C" WXDLLIMPEXP_BASE void wxSetInstance(HINSTANCE hInst); +// return the full name of the program file +inline wxString wxGetFullModuleName() +{ + wxString fullname; + if ( !::GetModuleFileName + ( + (HMODULE)wxGetInstance(), + wxStringBuffer(fullname, MAX_PATH), + MAX_PATH + ) ) + { + wxLogLastError(_T("GetModuleFileName")); + } + + return fullname; +} + #if wxUSE_GUI // cursor stuff extern HCURSOR wxGetCurrentBusyCursor(); // from msw/utils.cpp extern const wxCursor *wxGetGlobalCursor(); // from msw/cursor.cpp -WXDLLEXPORT void wxGetCharSize(WXHWND wnd, int *x, int *y, const wxFont *the_font); +WXDLLEXPORT void wxGetCharSize(WXHWND wnd, int *x, int *y, const wxFont& the_font); WXDLLEXPORT void wxFillLogFont(LOGFONT *logFont, const wxFont *font); WXDLLEXPORT wxFont wxCreateFontFromLogFont(const LOGFONT *logFont); WXDLLEXPORT wxFontEncoding wxGetFontEncFromCharSet(int charset);