Show status bar panes rectangles in the sample.
Display the rectangles returned by wxStatusBar::GetFieldRect() to be able to visually check if they are correct. See #10696. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61989 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
		@@ -30,6 +30,7 @@
 | 
				
			|||||||
// for all others, include the necessary headers
 | 
					// for all others, include the necessary headers
 | 
				
			||||||
#ifndef WX_PRECOMP
 | 
					#ifndef WX_PRECOMP
 | 
				
			||||||
    #include "wx/app.h"
 | 
					    #include "wx/app.h"
 | 
				
			||||||
 | 
					    #include "wx/dcclient.h"
 | 
				
			||||||
    #include "wx/log.h"
 | 
					    #include "wx/log.h"
 | 
				
			||||||
    #include "wx/frame.h"
 | 
					    #include "wx/frame.h"
 | 
				
			||||||
    #include "wx/statusbr.h"
 | 
					    #include "wx/statusbr.h"
 | 
				
			||||||
@@ -163,6 +164,7 @@ public:
 | 
				
			|||||||
    void OnPopStatusText(wxCommandEvent& event);
 | 
					    void OnPopStatusText(wxCommandEvent& event);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    void OnResetFieldsWidth(wxCommandEvent& event);
 | 
					    void OnResetFieldsWidth(wxCommandEvent& event);
 | 
				
			||||||
 | 
					    void OnShowFieldsRect(wxCommandEvent& event);
 | 
				
			||||||
    void OnSetStatusFields(wxCommandEvent& event);
 | 
					    void OnSetStatusFields(wxCommandEvent& event);
 | 
				
			||||||
    void OnSetStatusFont(wxCommandEvent& event);
 | 
					    void OnSetStatusFont(wxCommandEvent& event);
 | 
				
			||||||
    void OnRecreateStatusBar(wxCommandEvent& event);
 | 
					    void OnRecreateStatusBar(wxCommandEvent& event);
 | 
				
			||||||
@@ -221,6 +223,7 @@ enum
 | 
				
			|||||||
    StatusBar_PopText,
 | 
					    StatusBar_PopText,
 | 
				
			||||||
    StatusBar_SetFont,
 | 
					    StatusBar_SetFont,
 | 
				
			||||||
    StatusBar_ResetFieldsWidth,
 | 
					    StatusBar_ResetFieldsWidth,
 | 
				
			||||||
 | 
					    StatusBar_ShowFieldsRect,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    StatusBar_Recreate,
 | 
					    StatusBar_Recreate,
 | 
				
			||||||
    StatusBar_Toggle,
 | 
					    StatusBar_Toggle,
 | 
				
			||||||
@@ -260,6 +263,7 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame)
 | 
				
			|||||||
    EVT_MENU(StatusBar_PopText, MyFrame::OnPopStatusText)
 | 
					    EVT_MENU(StatusBar_PopText, MyFrame::OnPopStatusText)
 | 
				
			||||||
    EVT_MENU(StatusBar_SetFont, MyFrame::OnSetStatusFont)
 | 
					    EVT_MENU(StatusBar_SetFont, MyFrame::OnSetStatusFont)
 | 
				
			||||||
    EVT_MENU(StatusBar_ResetFieldsWidth, MyFrame::OnResetFieldsWidth)
 | 
					    EVT_MENU(StatusBar_ResetFieldsWidth, MyFrame::OnResetFieldsWidth)
 | 
				
			||||||
 | 
					    EVT_MENU(StatusBar_ShowFieldsRect, MyFrame::OnShowFieldsRect)
 | 
				
			||||||
    EVT_MENU(StatusBar_Recreate, MyFrame::OnRecreateStatusBar)
 | 
					    EVT_MENU(StatusBar_Recreate, MyFrame::OnRecreateStatusBar)
 | 
				
			||||||
    EVT_MENU(StatusBar_About, MyFrame::OnAbout)
 | 
					    EVT_MENU(StatusBar_About, MyFrame::OnAbout)
 | 
				
			||||||
    EVT_MENU(StatusBar_Toggle, MyFrame::OnStatusBarToggle)
 | 
					    EVT_MENU(StatusBar_Toggle, MyFrame::OnStatusBarToggle)
 | 
				
			||||||
@@ -411,6 +415,9 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    statbarMenu->Append(StatusBar_ResetFieldsWidth, wxT("Reset field widths"),
 | 
					    statbarMenu->Append(StatusBar_ResetFieldsWidth, wxT("Reset field widths"),
 | 
				
			||||||
                        wxT("Sets all fields to the same width"));
 | 
					                        wxT("Sets all fields to the same width"));
 | 
				
			||||||
 | 
					    statbarMenu->Append(StatusBar_ShowFieldsRect,
 | 
				
			||||||
 | 
					                        wxT("Sho&w field rectangles\tCtrl-W"),
 | 
				
			||||||
 | 
					                        wxT("Visually show field rectangles"));
 | 
				
			||||||
    statbarMenu->AppendSeparator();
 | 
					    statbarMenu->AppendSeparator();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    statbarMenu->AppendCheckItem(StatusBar_Toggle, wxT("&Toggle Status Bar"),
 | 
					    statbarMenu->AppendCheckItem(StatusBar_Toggle, wxT("&Toggle Status Bar"),
 | 
				
			||||||
@@ -659,6 +666,25 @@ void MyFrame::OnResetFieldsWidth(wxCommandEvent& WXUNUSED(event))
 | 
				
			|||||||
        pStat->SetStatusText("same size", i);
 | 
					        pStat->SetStatusText("same size", i);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void MyFrame::OnShowFieldsRect(wxCommandEvent& WXUNUSED(event))
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    wxStatusBar *pStat = GetStatusBar();
 | 
				
			||||||
 | 
					    if ( !pStat )
 | 
				
			||||||
 | 
					        return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    wxClientDC dc(pStat);
 | 
				
			||||||
 | 
					    dc.SetPen(*wxRED_PEN);
 | 
				
			||||||
 | 
					    dc.SetBrush(*wxTRANSPARENT_BRUSH);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const int n = pStat->GetFieldsCount();
 | 
				
			||||||
 | 
					    for ( int i = 0; i < n; i++ )
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        wxRect r;
 | 
				
			||||||
 | 
					        if ( pStat->GetFieldRect(i, r) )
 | 
				
			||||||
 | 
					            dc.DrawRectangle(r);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void MyFrame::OnUpdateStatusBarToggle(wxUpdateUIEvent& event)
 | 
					void MyFrame::OnUpdateStatusBarToggle(wxUpdateUIEvent& event)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    event.Check(GetStatusBar() != NULL);
 | 
					    event.Check(GetStatusBar() != NULL);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user