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:
Vadim Zeitlin
1999-07-20 23:22:30 +00:00
parent 22baaed33e
commit a1665b22b0
13 changed files with 50 additions and 18 deletions

View File

@@ -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();

View File

@@ -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") );

View File

@@ -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") );

View File

@@ -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;

View File

@@ -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();