cleanup: derive wxGauge from wxGaugeBase; removed redundant code from Create() (use base class methods instead); implemented MSWGetStyle() and GetBestSize()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@23814 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -23,51 +23,43 @@
|
|||||||
WXDLLEXPORT_DATA(extern const wxChar*) wxGaugeNameStr;
|
WXDLLEXPORT_DATA(extern const wxChar*) wxGaugeNameStr;
|
||||||
|
|
||||||
// Group box
|
// Group box
|
||||||
class WXDLLEXPORT wxGauge95 : public wxControl
|
class WXDLLEXPORT wxGauge95 : public wxGaugeBase
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
wxGauge95(void) { m_rangeMax = 0; m_gaugePos = 0; }
|
wxGauge95() { }
|
||||||
|
|
||||||
wxGauge95(wxWindow *parent, wxWindowID id,
|
wxGauge95(wxWindow *parent,
|
||||||
int range,
|
wxWindowID id,
|
||||||
const wxPoint& pos = wxDefaultPosition,
|
int range,
|
||||||
const wxSize& size = wxDefaultSize,
|
const wxPoint& pos = wxDefaultPosition,
|
||||||
long style = wxGA_HORIZONTAL,
|
const wxSize& size = wxDefaultSize,
|
||||||
const wxValidator& validator = wxDefaultValidator,
|
long style = wxGA_HORIZONTAL,
|
||||||
const wxString& name = wxGaugeNameStr)
|
const wxValidator& validator = wxDefaultValidator,
|
||||||
|
const wxString& name = wxGaugeNameStr)
|
||||||
{
|
{
|
||||||
Create(parent, id, range, pos, size, style, validator, name);
|
(void)Create(parent, id, range, pos, size, style, validator, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Create(wxWindow *parent, wxWindowID id,
|
bool Create(wxWindow *parent,
|
||||||
int range,
|
wxWindowID id,
|
||||||
const wxPoint& pos = wxDefaultPosition,
|
int range,
|
||||||
const wxSize& size = wxDefaultSize,
|
const wxPoint& pos = wxDefaultPosition,
|
||||||
long style = wxGA_HORIZONTAL,
|
const wxSize& size = wxDefaultSize,
|
||||||
const wxValidator& validator = wxDefaultValidator,
|
long style = wxGA_HORIZONTAL,
|
||||||
const wxString& name = wxGaugeNameStr);
|
const wxValidator& validator = wxDefaultValidator,
|
||||||
|
const wxString& name = wxGaugeNameStr);
|
||||||
|
|
||||||
void SetShadowWidth(int w);
|
// set gauge range/value
|
||||||
void SetBezelFace(int w);
|
virtual void SetRange(int range);
|
||||||
void SetRange(int r);
|
virtual void SetValue(int pos);
|
||||||
void SetValue(int pos);
|
|
||||||
|
|
||||||
int GetShadowWidth(void) const ;
|
|
||||||
int GetBezelFace(void) const ;
|
|
||||||
int GetRange(void) const ;
|
|
||||||
int GetValue(void) const ;
|
|
||||||
|
|
||||||
bool SetForegroundColour(const wxColour& col);
|
|
||||||
bool SetBackgroundColour(const wxColour& col);
|
|
||||||
|
|
||||||
// overriden base class virtuals
|
// overriden base class virtuals
|
||||||
virtual bool AcceptsFocus() const { return FALSE; }
|
virtual bool SetForegroundColour(const wxColour& col);
|
||||||
|
virtual bool SetBackgroundColour(const wxColour& col);
|
||||||
virtual void Command(wxCommandEvent& WXUNUSED(event)) {} ;
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
int m_rangeMax;
|
virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const;
|
||||||
int m_gaugePos;
|
virtual wxSize DoGetBestSize() const;
|
||||||
|
|
||||||
|
|
||||||
DECLARE_DYNAMIC_CLASS_NO_COPY(wxGauge95)
|
DECLARE_DYNAMIC_CLASS_NO_COPY(wxGauge95)
|
||||||
|
@@ -25,19 +25,19 @@
|
|||||||
#include "wx/wxprec.h"
|
#include "wx/wxprec.h"
|
||||||
|
|
||||||
#ifdef __BORLANDC__
|
#ifdef __BORLANDC__
|
||||||
#pragma hdrstop
|
#pragma hdrstop
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef WX_PRECOMP
|
#ifndef WX_PRECOMP
|
||||||
#include "wx/defs.h"
|
#include "wx/defs.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if wxUSE_GAUGE && defined(__WIN95__)
|
#if wxUSE_GAUGE
|
||||||
|
|
||||||
#include "wx/msw/gauge95.h"
|
#include "wx/msw/gauge95.h"
|
||||||
#include "wx/msw/private.h"
|
#include "wx/msw/private.h"
|
||||||
|
|
||||||
#if defined(__WIN95__) && !(defined(__GNUWIN32_OLD__) && !defined(__CYGWIN10__))
|
#if !(defined(__GNUWIN32_OLD__) && !defined(__CYGWIN10__))
|
||||||
#include <commctrl.h>
|
#include <commctrl.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -107,10 +107,10 @@ wxEND_FLAGS( wxGaugeStyle )
|
|||||||
IMPLEMENT_DYNAMIC_CLASS_XTI(wxGauge, wxControl,"wx/gauge.h")
|
IMPLEMENT_DYNAMIC_CLASS_XTI(wxGauge, wxControl,"wx/gauge.h")
|
||||||
|
|
||||||
wxBEGIN_PROPERTIES_TABLE(wxGauge95)
|
wxBEGIN_PROPERTIES_TABLE(wxGauge95)
|
||||||
wxPROPERTY( Value , int , SetValue, GetValue, 0 , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
|
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( Range , int , SetRange, GetRange, 0 , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
|
||||||
wxPROPERTY( ShadowWidth , int , SetShadowWidth, GetShadowWidth, 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( 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
|
wxPROPERTY_FLAGS( WindowStyle , wxGaugeStyle , long , SetWindowStyleFlag , GetWindowStyleFlag , , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // style
|
||||||
wxEND_PROPERTIES_TABLE()
|
wxEND_PROPERTIES_TABLE()
|
||||||
|
|
||||||
@@ -123,139 +123,102 @@ IMPLEMENT_DYNAMIC_CLASS(wxGauge95, wxControl)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
// implementation
|
// wxGauge95 implementation
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
|
|
||||||
bool wxGauge95::Create(wxWindow *parent, wxWindowID id,
|
// ----------------------------------------------------------------------------
|
||||||
int range,
|
// wxGauge95 creation
|
||||||
const wxPoint& pos,
|
// ----------------------------------------------------------------------------
|
||||||
const wxSize& size,
|
|
||||||
long style,
|
bool wxGauge95::Create(wxWindow *parent,
|
||||||
const wxValidator& wxVALIDATOR_PARAM(validator),
|
wxWindowID id,
|
||||||
const wxString& name)
|
int range,
|
||||||
|
const wxPoint& pos,
|
||||||
|
const wxSize& size,
|
||||||
|
long style,
|
||||||
|
const wxValidator& validator,
|
||||||
|
const wxString& name)
|
||||||
{
|
{
|
||||||
SetName(name);
|
if ( !CreateControl(parent, id, pos, size, style, validator, name) )
|
||||||
#if wxUSE_VALIDATORS
|
return false;
|
||||||
SetValidator(validator);
|
|
||||||
#endif // wxUSE_VALIDATORS
|
|
||||||
|
|
||||||
if (parent) parent->AddChild(this);
|
if ( !MSWCreateControl(PROGRESS_CLASS, wxEmptyString, pos, size) )
|
||||||
m_gaugePos = 0;
|
return false;
|
||||||
|
|
||||||
m_windowStyle = style;
|
SetBackgroundColour(parent->GetBackgroundColour());
|
||||||
|
SetForegroundColour(parent->GetForegroundColour());
|
||||||
|
|
||||||
if ( id == -1 )
|
SetRange(range);
|
||||||
m_windowId = (int)NewControlId();
|
|
||||||
else
|
|
||||||
m_windowId = id;
|
|
||||||
|
|
||||||
int x = pos.x;
|
return true;
|
||||||
int y = pos.y;
|
|
||||||
int width = size.x;
|
|
||||||
int height = size.y;
|
|
||||||
|
|
||||||
WXDWORD exStyle = 0;
|
|
||||||
long msFlags = MSWGetStyle(style, & exStyle) ;
|
|
||||||
|
|
||||||
if (m_windowStyle & wxGA_VERTICAL)
|
|
||||||
msFlags |= PBS_VERTICAL;
|
|
||||||
|
|
||||||
if (m_windowStyle & wxGA_SMOOTH)
|
|
||||||
msFlags |= PBS_SMOOTH;
|
|
||||||
|
|
||||||
HWND wx_button =
|
|
||||||
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);
|
|
||||||
|
|
||||||
SetRange(range);
|
|
||||||
|
|
||||||
SetFont(parent->GetFont());
|
|
||||||
|
|
||||||
if (width == -1)
|
|
||||||
width = 50;
|
|
||||||
if (height == -1)
|
|
||||||
height = 28;
|
|
||||||
SetSize(x, y, width, height);
|
|
||||||
|
|
||||||
ShowWindow(GetHwnd(), SW_SHOW);
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxGauge95::SetShadowWidth(int WXUNUSED(w))
|
WXDWORD wxGauge95::MSWGetStyle(long style, WXDWORD *exstyle) const
|
||||||
{
|
{
|
||||||
|
WXDWORD msStyle = wxControl::MSWGetStyle(style, exstyle);
|
||||||
|
|
||||||
|
if ( style & wxGA_VERTICAL )
|
||||||
|
msStyle |= PBS_VERTICAL;
|
||||||
|
|
||||||
|
if ( style & wxGA_SMOOTH )
|
||||||
|
msStyle |= PBS_SMOOTH;
|
||||||
|
|
||||||
|
return msStyle;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxGauge95::SetBezelFace(int WXUNUSED(w))
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxGauge95 geometry
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
wxSize wxGauge95::DoGetBestSize() const
|
||||||
{
|
{
|
||||||
|
// VZ: no idea where does 28 come from, it was there before my changes and
|
||||||
|
// as nobody ever complained I guess we can leave it...
|
||||||
|
return wxSize(100, 28);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxGauge95 setters
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
void wxGauge95::SetRange(int r)
|
void wxGauge95::SetRange(int r)
|
||||||
{
|
{
|
||||||
m_rangeMax = r;
|
m_rangeMax = r;
|
||||||
|
|
||||||
#ifdef PBM_SETRANGE32
|
#ifdef PBM_SETRANGE32
|
||||||
SendMessage(GetHwnd(), PBM_SETRANGE32, 0, r);
|
::SendMessage(GetHwnd(), PBM_SETRANGE32, 0, r);
|
||||||
#else // !PBM_SETRANGE32
|
#else // !PBM_SETRANGE32
|
||||||
// fall back to PBM_SETRANGE (limited to 16 bits)
|
// fall back to PBM_SETRANGE (limited to 16 bits)
|
||||||
SendMessage(GetHwnd(), PBM_SETRANGE, 0, MAKELPARAM(0, r));
|
::SendMessage(GetHwnd(), PBM_SETRANGE, 0, MAKELPARAM(0, r));
|
||||||
#endif // PBM_SETRANGE32/!PBM_SETRANGE32
|
#endif // PBM_SETRANGE32/!PBM_SETRANGE32
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxGauge95::SetValue(int pos)
|
void wxGauge95::SetValue(int pos)
|
||||||
{
|
{
|
||||||
m_gaugePos = pos;
|
m_gaugePos = pos;
|
||||||
|
|
||||||
SendMessage(GetHwnd(), PBM_SETPOS, pos, 0);
|
::SendMessage(GetHwnd(), PBM_SETPOS, pos, 0);
|
||||||
}
|
|
||||||
|
|
||||||
int wxGauge95::GetShadowWidth() const
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int wxGauge95::GetBezelFace() const
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int wxGauge95::GetRange() const
|
|
||||||
{
|
|
||||||
return m_rangeMax;
|
|
||||||
}
|
|
||||||
|
|
||||||
int wxGauge95::GetValue() const
|
|
||||||
{
|
|
||||||
return m_gaugePos;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxGauge95::SetForegroundColour(const wxColour& col)
|
bool wxGauge95::SetForegroundColour(const wxColour& col)
|
||||||
{
|
{
|
||||||
if ( !wxControl::SetForegroundColour(col) )
|
if ( !wxControl::SetForegroundColour(col) )
|
||||||
return FALSE;
|
return false;
|
||||||
|
|
||||||
SendMessage(GetHwnd(), PBM_SETBARCOLOR, 0, (LPARAM)wxColourToRGB(col));
|
::SendMessage(GetHwnd(), PBM_SETBARCOLOR, 0, (LPARAM)wxColourToRGB(col));
|
||||||
|
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxGauge95::SetBackgroundColour(const wxColour& col)
|
bool wxGauge95::SetBackgroundColour(const wxColour& col)
|
||||||
{
|
{
|
||||||
if ( !wxControl::SetBackgroundColour(col) )
|
if ( !wxControl::SetBackgroundColour(col) )
|
||||||
return FALSE;
|
return false;
|
||||||
|
|
||||||
SendMessage(GetHwnd(), PBM_SETBKCOLOR, 0, (LPARAM)wxColourToRGB(col));
|
::SendMessage(GetHwnd(), PBM_SETBKCOLOR, 0, (LPARAM)wxColourToRGB(col));
|
||||||
|
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // wxUSE_GAUGE
|
#endif // wxUSE_GAUGE
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user