X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/51596bcb982d1147c00f869acf18062ca150fa91..7848088476db284a94f19eeb24411b45d676ac46:/src/msw/button.cpp diff --git a/src/msw/button.cpp b/src/msw/button.cpp index 4e93fe7cd8..46d520bcf7 100644 --- a/src/msw/button.cpp +++ b/src/msw/button.cpp @@ -17,7 +17,7 @@ // headers // ---------------------------------------------------------------------------- -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "button.h" #endif @@ -47,16 +47,60 @@ // ---------------------------------------------------------------------------- #if wxUSE_EXTENDED_RTTI + +WX_DEFINE_FLAGS( wxButtonStyle ) + +wxBEGIN_FLAGS( wxButtonStyle ) + // 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(wxBU_LEFT) + wxFLAGS_MEMBER(wxBU_RIGHT) + wxFLAGS_MEMBER(wxBU_TOP) + wxFLAGS_MEMBER(wxBU_BOTTOM) + wxFLAGS_MEMBER(wxBU_EXACTFIT) +wxEND_FLAGS( wxButtonStyle ) + IMPLEMENT_DYNAMIC_CLASS_XTI(wxButton, wxControl,"wx/button.h") -WX_BEGIN_PROPERTIES_TABLE(wxButton) - WX_DELEGATE( OnClick , wxEVT_COMMAND_BUTTON_CLICKED , wxCommandEvent ) -WX_END_PROPERTIES_TABLE() +wxBEGIN_PROPERTIES_TABLE(wxButton) + wxEVENT_PROPERTY( Click , wxEVT_COMMAND_BUTTON_CLICKED , wxCommandEvent) + + wxPROPERTY( Font , wxFont , SetFont , GetFont , , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) + wxPROPERTY( Label, wxString , SetLabel, GetLabel, wxString(), 0 /*flags*/ , wxT("Helpstring") , wxT("group") ) + + wxPROPERTY_FLAGS( WindowStyle , wxButtonStyle , long , SetWindowStyleFlag , GetWindowStyleFlag , , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // style + +wxEND_PROPERTIES_TABLE() -WX_BEGIN_HANDLERS_TABLE(wxButton) -WX_END_HANDLERS_TABLE() +wxBEGIN_HANDLERS_TABLE(wxButton) +wxEND_HANDLERS_TABLE() -WX_CONSTRUCTOR_5( wxButton , wxWindow* , Parent , wxWindowID , Id , wxString , Title , wxPoint , Position , wxSize , Size ) +wxCONSTRUCTOR_6( wxButton , wxWindow* , Parent , wxWindowID , Id , wxString , Label , wxPoint , Position , wxSize , Size , long , WindowStyle ) #else @@ -139,6 +183,11 @@ WXDWORD wxButton::MSWGetStyle(long style, WXDWORD *exstyle) const msStyle |= BS_TOP; if ( style & wxBU_BOTTOM ) msStyle |= BS_BOTTOM; +#ifndef __WXWINCE__ + // flat 2d buttons + if ( style & wxNO_BORDER ) + msStyle |= BS_FLAT; +#endif // __WXWINCE__ #endif // __WIN32__ return msStyle; @@ -386,7 +435,7 @@ bool wxButton::MSWCommand(WXUINT param, WXWORD WXUNUSED(id)) return processed; } -long wxButton::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam) +WXLRESULT wxButton::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam) { // when we receive focus, we want to temporary become the default button in // our parent panel so that pressing "Enter" would activate us -- and when