1. panels pass focus to the next item in parent panel
2. warnings removed from iniconf.cpp and it's removed for Win32 compilation 3. wxWindow::PopupMenu(wxPoint) added, documented 4. Docs for wxTextCtrl explicitly mention that EVT_TEXT is triggered by programmatic updates too git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@3066 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -109,16 +109,34 @@ void wxPanel::OnNavigationKey( wxNavigationKeyEvent& event )
|
||||
}
|
||||
|
||||
wxWindowList::Node *start_node = GetChildren().Find( winFocus );
|
||||
if (!start_node)
|
||||
if ( !start_node )
|
||||
start_node = GetChildren().Find( m_winLastFocused );
|
||||
if ( !start_node )
|
||||
start_node = GetChildren().GetFirst();
|
||||
|
||||
wxWindowList::Node *node = event.GetDirection() ? start_node->GetNext()
|
||||
: start_node->GetPrevious();
|
||||
|
||||
while (node != start_node)
|
||||
while ( node != start_node )
|
||||
{
|
||||
if (!node)
|
||||
if ( !node )
|
||||
{
|
||||
// check if our (may be grand) parent is another panel: if this is
|
||||
// the case, they will know what to do with this navigation key and
|
||||
// so give them the chance to process it instead of looping inside
|
||||
// this panel (normally, the focus will go to the next/previous
|
||||
// item after this panel in the parent panel)
|
||||
for ( wxWindow *p = GetParent(); p; p = p->GetParent() )
|
||||
{
|
||||
if ( wxDynamicCast(p, wxPanel) )
|
||||
{
|
||||
event.Skip();
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// no, we are not inside another panel so process this ourself
|
||||
node = event.GetDirection() ? GetChildren().GetFirst()
|
||||
: GetChildren().GetLast();
|
||||
|
||||
@@ -127,7 +145,7 @@ void wxPanel::OnNavigationKey( wxNavigationKeyEvent& event )
|
||||
|
||||
wxWindow *child = node->GetData();
|
||||
|
||||
if (child->AcceptsFocus())
|
||||
if ( child->AcceptsFocus() )
|
||||
{
|
||||
// ok, event processed
|
||||
child->SetFocus();
|
||||
|
@@ -2869,7 +2869,7 @@ static void pop_pos_callback( GtkMenu * WXUNUSED(menu),
|
||||
*y = gs_pop_y;
|
||||
}
|
||||
|
||||
bool wxWindow::PopupMenu( wxMenu *menu, int x, int y )
|
||||
bool wxWindow::DoPopupMenu( wxMenu *menu, int x, int y )
|
||||
{
|
||||
wxCHECK_MSG( m_widget != NULL, FALSE, _T("invalid window") );
|
||||
|
||||
|
@@ -2869,7 +2869,7 @@ static void pop_pos_callback( GtkMenu * WXUNUSED(menu),
|
||||
*y = gs_pop_y;
|
||||
}
|
||||
|
||||
bool wxWindow::PopupMenu( wxMenu *menu, int x, int y )
|
||||
bool wxWindow::DoPopupMenu( wxMenu *menu, int x, int y )
|
||||
{
|
||||
wxCHECK_MSG( m_widget != NULL, FALSE, _T("invalid window") );
|
||||
|
||||
|
@@ -442,9 +442,13 @@ bool wxIniConfig::DeleteAll()
|
||||
char szBuf[MAX_PATH];
|
||||
size_t nRc = GetWindowsDirectory(szBuf, WXSIZEOF(szBuf));
|
||||
if ( nRc == 0 )
|
||||
{
|
||||
wxLogLastError("GetWindowsDirectory");
|
||||
}
|
||||
else if ( nRc > WXSIZEOF(szBuf) )
|
||||
{
|
||||
wxFAIL_MSG("buffer is too small for Windows directory.");
|
||||
}
|
||||
|
||||
wxString strFile = szBuf;
|
||||
strFile << '\\' << m_strLocalFilename;
|
||||
|
@@ -1422,7 +1422,7 @@ void wxWindow::GetCaretPos(int *x, int *y) const
|
||||
// popup menu
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
bool wxWindow::PopupMenu(wxMenu *menu, int x, int y)
|
||||
bool wxWindow::DoPopupMenu(wxMenu *menu, int x, int y)
|
||||
{
|
||||
menu->SetInvokingWindow(this);
|
||||
menu->UpdateUI();
|
||||
|
Reference in New Issue
Block a user