X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c42404a58eac2c9eb0557565a471a794c387a715..7a9dfa3c40f3324391759a27644880b5395a8ffc:/src/msw/gauge95.cpp diff --git a/src/msw/gauge95.cpp b/src/msw/gauge95.cpp index c43b527cb6..421f8062d7 100644 --- a/src/msw/gauge95.cpp +++ b/src/msw/gauge95.cpp @@ -1,16 +1,24 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: gauge95.cpp +// Name: src/msw/gauge95.cpp // Purpose: wxGauge95 class // Author: Julian Smart // Modified by: // Created: 01/02/97 // RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence +// Copyright: (c) Julian Smart +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "gauge95.h" +// ============================================================================ +// declarations +// ============================================================================ + +// ---------------------------------------------------------------------------- +// headers +// ---------------------------------------------------------------------------- + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma implementation "gauge95.h" #endif // For compilers that support precompilation, includes "wx.h". @@ -21,7 +29,7 @@ #endif #ifndef WX_PRECOMP -#include "wx/defs.h" + #include "wx/defs.h" #endif #if wxUSE_GAUGE && defined(__WIN95__) @@ -29,18 +37,101 @@ #include "wx/msw/gauge95.h" #include "wx/msw/private.h" -#if defined(__WIN95__) && !(defined(__GNUWIN32_OLD__) || defined(__TWIN32__)) +#if defined(__WIN95__) && !(defined(__GNUWIN32_OLD__) && !defined(__CYGWIN10__)) #include #endif +// ---------------------------------------------------------------------------- +// constants +// ---------------------------------------------------------------------------- + +// old commctrl.h (< 4.71) don't have those +#ifndef PBS_SMOOTH + #define PBS_SMOOTH 0x01 +#endif + +#ifndef PBS_VERTICAL + #define PBS_VERTICAL 0x04 +#endif + +#ifndef PBM_SETBARCOLOR + #define PBM_SETBARCOLOR (WM_USER+9) +#endif + +#ifndef PBM_SETBKCOLOR + #define PBM_SETBKCOLOR 0x2001 +#endif + +// ---------------------------------------------------------------------------- +// wxWin macros +// ---------------------------------------------------------------------------- + +#if wxUSE_EXTENDED_RTTI +WX_DEFINE_FLAGS( wxGaugeStyle ) + +wxBEGIN_FLAGS( wxGaugeStyle ) + // 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(wxNO_BORDER) + + // standard window styles + wxFLAGS_MEMBER(wxTAB_TRAVERSAL) + wxFLAGS_MEMBER(wxCLIP_CHILDREN) + wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW) + wxFLAGS_MEMBER(wxWANTS_CHARS) + wxFLAGS_MEMBER(wxNO_FULL_REPAINT_ON_RESIZE) + wxFLAGS_MEMBER(wxALWAYS_SHOW_SB ) + wxFLAGS_MEMBER(wxVSCROLL) + wxFLAGS_MEMBER(wxHSCROLL) + + wxFLAGS_MEMBER(wxGA_HORIZONTAL) + wxFLAGS_MEMBER(wxGA_VERTICAL) + wxFLAGS_MEMBER(wxGA_PROGRESSBAR) + wxFLAGS_MEMBER(wxGA_SMOOTH) + +wxEND_FLAGS( wxGaugeStyle ) + +IMPLEMENT_DYNAMIC_CLASS_XTI(wxGauge, wxControl,"wx/gauge.h") + +wxBEGIN_PROPERTIES_TABLE(wxGauge95) + wxPROPERTY( Value , int , SetValue, GetValue, 0 , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) + wxPROPERTY( Range , int , SetRange, GetRange, 0 , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) + wxPROPERTY( ShadowWidth , int , SetShadowWidth, GetShadowWidth, 0 , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) + wxPROPERTY( BezelFace , int , SetBezelFace, GetBezelFace, 0 , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) + wxPROPERTY_FLAGS( WindowStyle , wxGaugeStyle , long , SetWindowStyleFlag , GetWindowStyleFlag , , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // style +wxEND_PROPERTIES_TABLE() + +wxBEGIN_HANDLERS_TABLE(wxGauge95) +wxEND_HANDLERS_TABLE() + +wxCONSTRUCTOR_6( wxGauge95 , wxWindow* , Parent , wxWindowID , Id , int , Range , wxPoint , Position , wxSize , Size , long , WindowStyle ) +#else IMPLEMENT_DYNAMIC_CLASS(wxGauge95, wxControl) +#endif + +// ============================================================================ +// implementation +// ============================================================================ bool wxGauge95::Create(wxWindow *parent, wxWindowID id, int range, const wxPoint& pos, const wxSize& size, long style, - const wxValidator& validator, + const wxValidator& wxVALIDATOR_PARAM(validator), const wxString& name) { SetName(name); @@ -52,9 +143,6 @@ bool wxGauge95::Create(wxWindow *parent, wxWindowID id, m_rangeMax = range; m_gaugePos = 0; - SetBackgroundColour(parent->GetBackgroundColour()) ; - SetForegroundColour(parent->GetForegroundColour()) ; - m_windowStyle = style; if ( id == -1 ) @@ -67,29 +155,25 @@ bool wxGauge95::Create(wxWindow *parent, wxWindowID id, int width = size.x; int height = size.y; - long msFlags = WS_CHILD | WS_VISIBLE; - -#ifndef PBS_VERTICAL -#define PBS_VERTICAL 0x04 -#endif + WXDWORD exStyle = 0; + long msFlags = MSWGetStyle(style, & exStyle) ; if (m_windowStyle & wxGA_VERTICAL) msFlags |= PBS_VERTICAL; -#ifndef PBS_SMOOTH -#define PBS_SMOOTH 0x01 -#endif - if (m_windowStyle & wxGA_SMOOTH) msFlags |= PBS_SMOOTH; HWND wx_button = - CreateWindowEx(MakeExtendedStyle(m_windowStyle), PROGRESS_CLASS, NULL, msFlags, + CreateWindowEx(exStyle, PROGRESS_CLASS, NULL, msFlags, 0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)m_windowId, wxGetInstance(), NULL); m_hWnd = (WXHWND)wx_button; + SetBackgroundColour(parent->GetBackgroundColour()); + SetForegroundColour(parent->GetForegroundColour()); + // Subclass again for purposes of dialog editing mode SubclassWin((WXHWND) wx_button); @@ -108,11 +192,11 @@ bool wxGauge95::Create(wxWindow *parent, wxWindowID id, return TRUE; } -void wxGauge95::SetShadowWidth(int w) +void wxGauge95::SetShadowWidth(int WXUNUSED(w)) { } -void wxGauge95::SetBezelFace(int w) +void wxGauge95::SetBezelFace(int WXUNUSED(w)) { } @@ -130,22 +214,22 @@ void wxGauge95::SetValue(int pos) SendMessage((HWND) GetHWND(), PBM_SETPOS, pos, 0); } -int wxGauge95::GetShadowWidth(void) const +int wxGauge95::GetShadowWidth() const { return 0; } -int wxGauge95::GetBezelFace(void) const +int wxGauge95::GetBezelFace() const { return 0; } -int wxGauge95::GetRange(void) const +int wxGauge95::GetRange() const { return m_rangeMax; } -int wxGauge95::GetValue(void) const +int wxGauge95::GetValue() const { return m_gaugePos; } @@ -155,7 +239,7 @@ bool wxGauge95::SetForegroundColour(const wxColour& col) if ( !wxControl::SetForegroundColour(col) ) return FALSE; - m_foregroundColour = col ; + SendMessage(GetHwnd(), PBM_SETBARCOLOR, 0, (LPARAM)wxColourToRGB(col)); return TRUE; } @@ -165,7 +249,7 @@ bool wxGauge95::SetBackgroundColour(const wxColour& col) if ( !wxControl::SetBackgroundColour(col) ) return FALSE; - m_backgroundColour = col ; + SendMessage(GetHwnd(), PBM_SETBKCOLOR, 0, (LPARAM)wxColourToRGB(col)); return TRUE; }