]>
git.saurik.com Git - wxWidgets.git/blob - src/msw/gauge95.cpp
20ca1b55f55d85408a7ca45a4a064efef2aadfa9
   1 ///////////////////////////////////////////////////////////////////////////// 
   2 // Name:        src/msw/gauge95.cpp 
   3 // Purpose:     wxGauge95 class 
   4 // Author:      Julian Smart 
   8 // Copyright:   (c) Julian Smart 
   9 // Licence:     wxWindows licence 
  10 ///////////////////////////////////////////////////////////////////////////// 
  12 // ============================================================================ 
  14 // ============================================================================ 
  16 // ---------------------------------------------------------------------------- 
  18 // ---------------------------------------------------------------------------- 
  20 // For compilers that support precompilation, includes "wx.h". 
  21 #include "wx/wxprec.h" 
  33 #include "wx/msw/private.h" 
  35 // include <commctrl.h> "properly" 
  36 #include "wx/msw/wrapcctl.h" 
  38 // ---------------------------------------------------------------------------- 
  40 // ---------------------------------------------------------------------------- 
  42 // old commctrl.h (< 4.71) don't have those 
  44     #define PBS_SMOOTH 0x01 
  48     #define PBS_VERTICAL 0x04 
  51 #ifndef PBM_SETBARCOLOR 
  52     #define PBM_SETBARCOLOR         (WM_USER+9) 
  55 #ifndef PBM_SETBKCOLOR 
  56     #define PBM_SETBKCOLOR          0x2001 
  59 // ---------------------------------------------------------------------------- 
  61 // ---------------------------------------------------------------------------- 
  63 #if wxUSE_EXTENDED_RTTI 
  64 WX_DEFINE_FLAGS( wxGaugeStyle 
) 
  66 wxBEGIN_FLAGS( wxGaugeStyle 
) 
  67     // new style border flags, we put them first to 
  68     // use them for streaming out 
  69     wxFLAGS_MEMBER(wxBORDER_SIMPLE
) 
  70     wxFLAGS_MEMBER(wxBORDER_SUNKEN
) 
  71     wxFLAGS_MEMBER(wxBORDER_DOUBLE
) 
  72     wxFLAGS_MEMBER(wxBORDER_RAISED
) 
  73     wxFLAGS_MEMBER(wxBORDER_STATIC
) 
  74     wxFLAGS_MEMBER(wxBORDER_NONE
) 
  76     // old style border flags 
  77     wxFLAGS_MEMBER(wxSIMPLE_BORDER
) 
  78     wxFLAGS_MEMBER(wxSUNKEN_BORDER
) 
  79     wxFLAGS_MEMBER(wxDOUBLE_BORDER
) 
  80     wxFLAGS_MEMBER(wxRAISED_BORDER
) 
  81     wxFLAGS_MEMBER(wxSTATIC_BORDER
) 
  82     wxFLAGS_MEMBER(wxBORDER
) 
  84     // standard window styles 
  85     wxFLAGS_MEMBER(wxTAB_TRAVERSAL
) 
  86     wxFLAGS_MEMBER(wxCLIP_CHILDREN
) 
  87     wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW
) 
  88     wxFLAGS_MEMBER(wxWANTS_CHARS
) 
  89     wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE
) 
  90     wxFLAGS_MEMBER(wxALWAYS_SHOW_SB 
) 
  91     wxFLAGS_MEMBER(wxVSCROLL
) 
  92     wxFLAGS_MEMBER(wxHSCROLL
) 
  94     wxFLAGS_MEMBER(wxGA_HORIZONTAL
) 
  95     wxFLAGS_MEMBER(wxGA_VERTICAL
) 
  96 #if WXWIN_COMPATIBILITY_2_6 
  97     wxFLAGS_MEMBER(wxGA_PROGRESSBAR
) 
  98 #endif // WXWIN_COMPATIBILITY_2_6 
  99     wxFLAGS_MEMBER(wxGA_SMOOTH
) 
 101 wxEND_FLAGS( wxGaugeStyle 
) 
 103 IMPLEMENT_DYNAMIC_CLASS_XTI(wxGauge
, wxControl
,"wx/gauge.h") 
 105 wxBEGIN_PROPERTIES_TABLE(wxGauge95
) 
 106     wxPROPERTY( Value 
, int , SetValue
, GetValue
, 0 , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) 
 107     wxPROPERTY( Range 
, int , SetRange
, GetRange
, 0 , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) 
 108     wxPROPERTY( ShadowWidth 
, int , SetShadowWidth
, GetShadowWidth
, 0 , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) 
 109     wxPROPERTY( BezelFace 
, int , SetBezelFace
, GetBezelFace
, 0 , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) 
 110     wxPROPERTY_FLAGS( WindowStyle 
, wxGaugeStyle 
, long , SetWindowStyleFlag 
, GetWindowStyleFlag 
, EMPTY_MACROVALUE 
, 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // style 
 111 wxEND_PROPERTIES_TABLE() 
 113 wxBEGIN_HANDLERS_TABLE(wxGauge95
) 
 114 wxEND_HANDLERS_TABLE() 
 116 wxCONSTRUCTOR_6( wxGauge95 
, wxWindow
* , Parent 
, wxWindowID 
, Id 
, int , Range 
, wxPoint 
, Position 
, wxSize 
, Size 
, long , WindowStyle 
) 
 118 IMPLEMENT_DYNAMIC_CLASS(wxGauge95
, wxControl
) 
 121 // ============================================================================ 
 122 // wxGauge95 implementation 
 123 // ============================================================================ 
 125 // ---------------------------------------------------------------------------- 
 126 // wxGauge95 creation 
 127 // ---------------------------------------------------------------------------- 
 129 bool wxGauge95::Create(wxWindow 
*parent
, 
 135                        const wxValidator
& validator
, 
 136                        const wxString
& name
) 
 138     if ( !CreateControl(parent
, id
, pos
, size
, style
, validator
, name
) ) 
 141     if ( !MSWCreateControl(PROGRESS_CLASS
, wxEmptyString
, pos
, size
) ) 
 149 WXDWORD 
wxGauge95::MSWGetStyle(long style
, WXDWORD 
*exstyle
) const 
 151     WXDWORD msStyle 
= wxControl::MSWGetStyle(style
, exstyle
); 
 153     if ( style 
& wxGA_VERTICAL 
) 
 154         msStyle 
|= PBS_VERTICAL
; 
 156     if ( style 
& wxGA_SMOOTH 
) 
 157         msStyle 
|= PBS_SMOOTH
; 
 162 // ---------------------------------------------------------------------------- 
 163 // wxGauge95 geometry 
 164 // ---------------------------------------------------------------------------- 
 166 wxSize 
wxGauge95::DoGetBestSize() const 
 168     // VZ: no idea where does 28 come from, it was there before my changes and 
 169     //     as nobody ever complained I guess we can leave it... 
 170     if (HasFlag(wxGA_VERTICAL
)) 
 171         return wxSize(28, 100); 
 173         return wxSize(100, 28); 
 176 // ---------------------------------------------------------------------------- 
 178 // ---------------------------------------------------------------------------- 
 180 void wxGauge95::SetRange(int r
) 
 184 #ifdef PBM_SETRANGE32 
 185     ::SendMessage(GetHwnd(), PBM_SETRANGE32
, 0, r
); 
 186 #else // !PBM_SETRANGE32 
 187     // fall back to PBM_SETRANGE (limited to 16 bits) 
 188     ::SendMessage(GetHwnd(), PBM_SETRANGE
, 0, MAKELPARAM(0, r
)); 
 189 #endif // PBM_SETRANGE32/!PBM_SETRANGE32 
 192 void wxGauge95::SetValue(int pos
) 
 196     ::SendMessage(GetHwnd(), PBM_SETPOS
, pos
, 0); 
 199 bool wxGauge95::SetForegroundColour(const wxColour
& col
) 
 201     if ( !wxControl::SetForegroundColour(col
) ) 
 204     ::SendMessage(GetHwnd(), PBM_SETBARCOLOR
, 0, (LPARAM
)wxColourToRGB(col
)); 
 209 bool wxGauge95::SetBackgroundColour(const wxColour
& col
) 
 211     if ( !wxControl::SetBackgroundColour(col
) ) 
 214     ::SendMessage(GetHwnd(), PBM_SETBKCOLOR
, 0, (LPARAM
)wxColourToRGB(col
)); 
 219 #endif // wxUSE_GAUGE