git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37393 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			111 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			111 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
///////////////////////////////////////////////////////////////////////////////
 | 
						|
// Name:        wx/univ/statusbr.h
 | 
						|
// Purpose:     wxStatusBarUniv: wxStatusBar for wxUniversal declaration
 | 
						|
// Author:      Vadim Zeitlin
 | 
						|
// Modified by:
 | 
						|
// Created:     14.10.01
 | 
						|
// RCS-ID:      $Id$
 | 
						|
// Copyright:   (c) 2001 SciTech Software, Inc. (www.scitechsoft.com)
 | 
						|
// Licence:     wxWindows licence
 | 
						|
///////////////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
#ifndef _WX_UNIV_STATUSBR_H_
 | 
						|
#define _WX_UNIV_STATUSBR_H_
 | 
						|
 | 
						|
#include "wx/univ/inpcons.h"
 | 
						|
#include "wx/arrstr.h"
 | 
						|
 | 
						|
// ----------------------------------------------------------------------------
 | 
						|
// wxStatusBar: a window near the bottom of the frame used for status info
 | 
						|
// ----------------------------------------------------------------------------
 | 
						|
 | 
						|
class WXDLLEXPORT wxStatusBarUniv : public wxStatusBarBase,
 | 
						|
                                    public wxInputConsumer
 | 
						|
{
 | 
						|
public:
 | 
						|
    wxStatusBarUniv() { Init(); }
 | 
						|
 | 
						|
    wxStatusBarUniv(wxWindow *parent,
 | 
						|
                    wxWindowID id = wxID_ANY,
 | 
						|
                    long style = 0,
 | 
						|
                    const wxString& name = wxPanelNameStr)
 | 
						|
    {
 | 
						|
        Init();
 | 
						|
 | 
						|
        (void)Create(parent, id, style, name);
 | 
						|
    }
 | 
						|
 | 
						|
    bool Create(wxWindow *parent,
 | 
						|
                wxWindowID id = wxID_ANY,
 | 
						|
                long style = 0,
 | 
						|
                const wxString& name = wxPanelNameStr);
 | 
						|
 | 
						|
    // set field count/widths
 | 
						|
    virtual void SetFieldsCount(int number = 1, const int *widths = NULL);
 | 
						|
    virtual void SetStatusWidths(int n, const int widths[]);
 | 
						|
 | 
						|
    // get/set the text of the given field
 | 
						|
    virtual void SetStatusText(const wxString& text, int number = 0);
 | 
						|
    virtual wxString GetStatusText(int number = 0) const;
 | 
						|
 | 
						|
    // Get the position and size of the field's internal bounding rectangle
 | 
						|
    virtual bool GetFieldRect(int i, wxRect& rect) const;
 | 
						|
 | 
						|
    // sets the minimal vertical size of the status bar
 | 
						|
    virtual void SetMinHeight(int height);
 | 
						|
 | 
						|
    // get the dimensions of the horizontal and vertical borders
 | 
						|
    virtual int GetBorderX() const;
 | 
						|
    virtual int GetBorderY() const;
 | 
						|
 | 
						|
    // wxInputConsumer pure virtual
 | 
						|
    virtual wxWindow *GetInputWindow() const
 | 
						|
        { return wx_const_cast(wxStatusBar*, this); }
 | 
						|
 | 
						|
protected:
 | 
						|
    // recalculate the field widths
 | 
						|
    void OnSize(wxSizeEvent& event);
 | 
						|
 | 
						|
    // draw the statusbar
 | 
						|
    virtual void DoDraw(wxControlRenderer *renderer);
 | 
						|
 | 
						|
    // tell them about our preferred height
 | 
						|
    virtual wxSize DoGetBestSize() const;
 | 
						|
 | 
						|
    // override DoSetSize() to prevent the status bar height from changing
 | 
						|
    virtual void DoSetSize(int x, int y,
 | 
						|
                           int width, int height,
 | 
						|
                           int sizeFlags = wxSIZE_AUTO);
 | 
						|
 | 
						|
    // get the (fixed) status bar height
 | 
						|
    wxCoord GetHeight() const;
 | 
						|
 | 
						|
    // get the rectangle containing all the fields and the border between them
 | 
						|
    //
 | 
						|
    // also updates m_widthsAbs if necessary
 | 
						|
    wxRect GetTotalFieldRect(wxCoord *borderBetweenFields);
 | 
						|
 | 
						|
    // get the rect for this field without ani side effects (see code)
 | 
						|
    wxRect DoGetFieldRect(int n) const;
 | 
						|
 | 
						|
    // refresh the given field
 | 
						|
    void RefreshField(int i);
 | 
						|
 | 
						|
    // common part of all ctors
 | 
						|
    void Init();
 | 
						|
 | 
						|
private:
 | 
						|
    // the status fields strings
 | 
						|
    wxArrayString m_statusText;
 | 
						|
 | 
						|
    // the absolute status fields widths
 | 
						|
    wxArrayInt m_widthsAbs;
 | 
						|
 | 
						|
    DECLARE_DYNAMIC_CLASS(wxStatusBarUniv)
 | 
						|
    DECLARE_EVENT_TABLE()
 | 
						|
    WX_DECLARE_INPUT_CONSUMER()
 | 
						|
};
 | 
						|
 | 
						|
#endif // _WX_UNIV_STATUSBR_H_
 | 
						|
 |