wxWidgets/include/wx/osx/statusbr.h
Václav Slavík c146103c64 Make wxStatusBar look (more) native on macOS
Significantly improve the appearance of wxStatusBar on macOS, both the
modern flat look since 10.10 and older versions. Increase the size to
match native bottom bars, center the text inside it, use appropriate
background and border colors and the same gray for the text as Finder
uses, correctly change the appearance for inactive windows.

This is still far from ideal - that would be using
setContentBorderThickness:forEdge: and rendering the text atop it. But
that seems to be much easier said than done due to interference from
other parts of wx. This is much better than the previous state.
2016-10-31 14:31:11 +01:00

48 lines
1.5 KiB
C++

///////////////////////////////////////////////////////////////////////////////
// Name: wx/osx/statusbr.h
// Purpose: native implementation of wxStatusBar.
// Optional: can use generic version instead.
// Author: Stefan Csomor
// Modified by:
// Created: 1998-01-01
// Copyright: (c) Stefan Csomor
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#ifndef _WX_STATBAR_H_
#define _WX_STATBAR_H_
class WXDLLIMPEXP_CORE wxStatusBarMac : public wxStatusBarGeneric
{
public:
wxStatusBarMac();
wxStatusBarMac(wxWindow *parent, wxWindowID id = wxID_ANY,
long style = wxSTB_DEFAULT_STYLE,
const wxString& name = wxStatusBarNameStr);
virtual ~wxStatusBarMac();
bool Create(wxWindow *parent, wxWindowID id = wxID_ANY,
long style = wxSTB_DEFAULT_STYLE,
const wxString& name = wxStatusBarNameStr);
// Implementation
virtual void MacHiliteChanged() wxOVERRIDE;
void OnPaint(wxPaintEvent& event);
protected:
virtual void DrawFieldText(wxDC& dc, const wxRect& rc, int i, int textHeight) wxOVERRIDE;
virtual void DrawField(wxDC& dc, int i, int textHeight) wxOVERRIDE;
virtual void DoUpdateStatusText(int number = 0) wxOVERRIDE;
private:
wxColour m_textActive, m_textInactive,
m_bgActiveFrom, m_bgActiveTo,
m_borderActive, m_borderInactive;
wxDECLARE_DYNAMIC_CLASS(wxStatusBarMac);
wxDECLARE_EVENT_TABLE();
};
#endif // _WX_STATBAR_H_