X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f6bcfd974ef26faf6f91a62cac09827e09463fd1..9f8130d6b3012265895fd69ce394c443c045b709:/src/msw/statline.cpp diff --git a/src/msw/statline.cpp b/src/msw/statline.cpp index 605153f40d..521b9e04ca 100644 --- a/src/msw/statline.cpp +++ b/src/msw/statline.cpp @@ -16,10 +16,6 @@ // headers // ---------------------------------------------------------------------------- -#ifdef __GNUG__ - #pragma implementation "statline.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -32,63 +28,102 @@ #if wxUSE_STATLINE #include "wx/msw/private.h" -#include "wx/log.h" - -#ifndef SS_SUNKEN - #define SS_SUNKEN 0x00001000L -#endif - -#ifndef SS_NOTIFY - #define SS_NOTIFY 0x00000100L -#endif +#include "wx/msw/missing.h" // ============================================================================ // implementation // ============================================================================ +#if wxUSE_EXTENDED_RTTI +WX_DEFINE_FLAGS( wxStaticLineStyle ) + +wxBEGIN_FLAGS( wxStaticLineStyle ) + // new style border flags, we put them first to + // use them for streaming out + wxFLAGS_MEMBER(wxBORDER_SIMPLE) + wxFLAGS_MEMBER(wxBORDER_SUNKEN) + wxFLAGS_MEMBER(wxBORDER_DOUBLE) + wxFLAGS_MEMBER(wxBORDER_RAISED) + wxFLAGS_MEMBER(wxBORDER_STATIC) + wxFLAGS_MEMBER(wxBORDER_NONE) + + // old style border flags + wxFLAGS_MEMBER(wxSIMPLE_BORDER) + wxFLAGS_MEMBER(wxSUNKEN_BORDER) + wxFLAGS_MEMBER(wxDOUBLE_BORDER) + wxFLAGS_MEMBER(wxRAISED_BORDER) + wxFLAGS_MEMBER(wxSTATIC_BORDER) + wxFLAGS_MEMBER(wxBORDER) + + // standard window styles + wxFLAGS_MEMBER(wxTAB_TRAVERSAL) + wxFLAGS_MEMBER(wxCLIP_CHILDREN) + wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW) + wxFLAGS_MEMBER(wxWANTS_CHARS) + wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE) + wxFLAGS_MEMBER(wxALWAYS_SHOW_SB ) + wxFLAGS_MEMBER(wxVSCROLL) + wxFLAGS_MEMBER(wxHSCROLL) + + wxFLAGS_MEMBER(wxLI_HORIZONTAL) + wxFLAGS_MEMBER(wxLI_VERTICAL) + +wxEND_FLAGS( wxStaticLineStyle ) + +IMPLEMENT_DYNAMIC_CLASS_XTI(wxStaticLine, wxControl,"wx/statline.h") + +wxBEGIN_PROPERTIES_TABLE(wxStaticLine) + wxPROPERTY_FLAGS( WindowStyle , wxStaticLineStyle , long , SetWindowStyleFlag , GetWindowStyleFlag , EMPTY_MACROVALUE, 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // style +wxEND_PROPERTIES_TABLE() + +wxBEGIN_HANDLERS_TABLE(wxStaticLine) +wxEND_HANDLERS_TABLE() + +wxCONSTRUCTOR_5( wxStaticLine, wxWindow* , Parent , wxWindowID , Id , wxPoint , Position , wxSize , Size , long , WindowStyle) + +#else IMPLEMENT_DYNAMIC_CLASS(wxStaticLine, wxControl) +#endif + +/* + TODO PROPERTIES : + style (wxLI_HORIZONTAL) +*/ // ---------------------------------------------------------------------------- // wxStaticLine // ---------------------------------------------------------------------------- -bool wxStaticLine::Create( wxWindow *parent, - wxWindowID id, - const wxPoint &pos, - const wxSize &size, - long style, - const wxString &name) +bool wxStaticLine::Create(wxWindow *parent, + wxWindowID id, + const wxPoint& pos, + const wxSize& sizeOrig, + long style, + const wxString &name) { - if ( !CreateBase(parent, id, pos, size, style, wxDefaultValidator, name) ) - return FALSE; - - parent->AddChild(this); + wxSize size = AdjustSize(sizeOrig); - wxSize sizeReal = AdjustSize(size); + if ( !CreateControl(parent, id, pos, size, style, wxDefaultValidator, name) ) + return false; - m_hWnd = (WXHWND)::CreateWindow - ( - wxT("STATIC"), - wxT(""), - WS_VISIBLE | WS_CHILD /* | WS_CLIPSIBLINGS */ | - SS_GRAYRECT | SS_SUNKEN | SS_NOTIFY, - pos.x, pos.y, sizeReal.x, sizeReal.y, - GetWinHwnd(parent), - (HMENU)m_windowId, - wxGetInstance(), - NULL - ); + return MSWCreateControl(_T("STATIC"), wxEmptyString, pos, size); +} - if ( !m_hWnd ) - { - wxLogDebug(wxT("Failed to create static control")); +WXDWORD wxStaticLine::MSWGetStyle(long style, WXDWORD *exstyle) const +{ + // we never have border + style &= ~wxBORDER_MASK; + style |= wxBORDER_NONE; - return FALSE; - } + WXDWORD msStyle = wxControl::MSWGetStyle(style, exstyle); - SubclassWin(m_hWnd); + // add our default styles + msStyle |= SS_SUNKEN | SS_NOTIFY | WS_CLIPSIBLINGS; +#ifndef __WXWINCE__ + msStyle |= SS_GRAYRECT ; +#endif - return TRUE; + return msStyle ; } #endif // wxUSE_STATLINE