Weekly updates.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17982 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
David Webster
2002-11-27 05:50:21 +00:00
parent ba75150d36
commit 88ecce35e8
6 changed files with 90 additions and 97 deletions

View File

@@ -189,9 +189,6 @@ protected:
//
// Helper functions
//
void ChangePage( int nOldSel
,int nSel
); // change pages
int m_nSelection; // The current selection (-1 if none)

View File

@@ -30,6 +30,7 @@ public:
{
Create(pParent, vId, rsValue, rPos, rSize, lStyle, rValidator, rsName);
}
~wxTextCtrl();
bool Create( wxWindow* pParent
,wxWindowID vId
@@ -154,12 +155,16 @@ public:
void OnPaste(wxCommandEvent& rEvent);
void OnUndo(wxCommandEvent& rEvent);
void OnRedo(wxCommandEvent& rEvent);
void OnDelete(wxCommandEvent& rEvent);
void OnSelectAll(wxCommandEvent& rEvent);
void OnUpdateCut(wxUpdateUIEvent& rEvent);
void OnUpdateCopy(wxUpdateUIEvent& rEvent);
void OnUpdatePaste(wxUpdateUIEvent& rEvent);
void OnUpdateUndo(wxUpdateUIEvent& rEvent);
void OnUpdateRedo(wxUpdateUIEvent& rEvent);
void OnUpdateDelete(wxUpdateUIEvent& rEvent);
void OnUpdateSelectAll(wxUpdateUIEvent& rEvent);
inline bool IsMLE(void) {return m_bIsMLE;}
inline void SetMLE(bool bIsMLE) {m_bIsMLE = bIsMLE;}

View File

@@ -613,7 +613,7 @@ int wxEntry(
{
if (wxTheApp->OnInit())
{
nRetValue = wxTheApp->OnRun();
wxTheApp->OnRun();
}
// Normal exit
wxWindow* pTopWindow = wxTheApp->GetTopWindow();
@@ -641,7 +641,7 @@ int wxEntry(
printf("wxTheApp->OnExit ");
fflush(stdout);
#endif
wxTheApp->OnExit();
nRetValue = wxTheApp->OnExit();
#if wxUSE_CONSOLEDEBUG
printf("wxApp::CleanUp ");
fflush(stdout);

View File

@@ -173,37 +173,8 @@ void wxComboBox::SetValue(
const wxString& rsValue
)
{
//
// If newlines are denoted by just 10, must stick 13 in front.
//
int nSingletons = 0;
int nLen = rsValue.Length();
int i;
for (i = 0; i < nLen; i ++)
{
if ((i > 0) && (rsValue[i] == 10) && (rsValue[i - 1] != 13))
nSingletons ++;
}
if (nSingletons > 0)
{
wxChar* zTmp = new wxChar[nLen + nSingletons + 1];
int j = 0;
for (i = 0; i < nLen; i ++)
{
if ((i > 0) && (rsValue[i] == 10) && (rsValue[i - 1] != 13))
{
zTmp[j] = 13;
j++;
}
zTmp[j] = rsValue[i];
j++;
}
zTmp[j] = 0;
::WinSetWindowText(GetHwnd(), zTmp);
delete[] zTmp;
}
if ( HasFlag(wxCB_READONLY) )
SetStringSelection(rsValue);
else
::WinSetWindowText(GetHwnd(), rsValue.c_str());
} // end of wxComboBox::SetValue

View File

@@ -212,19 +212,33 @@ int wxNotebook::SetSelection(
)
{
wxCHECK_MSG( IS_VALID_PAGE(nPage), -1, wxT("notebook page out of range") );
int nOldPage = GetSelection();
ChangePage( m_nSelection
,nPage
);
if (nPage != m_nSelection)
{
wxNotebookEvent event( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING
,m_windowId
);
vEvent.SetSelection(nPage);
vEvent.SetOldSelection(m_nSelection);
vEvent.SetEventObject(this);
if (!GetEventHandler()->ProcessEvent(vEvent) || vEvent.IsAllowed())
{
//
// Program allows the page change
//
vEvent.SetEventType(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED);
GetEventHandler()->ProcessEvent(vEvent);
ULONG ulPageId = (ULONG)m_alPageId[nPage];
ULONG ulPageId = (ULONG)m_alPageId[nPage];
::WinSendMsg( GetHWND()
,BKM_TURNTOPAGE
,MPFROMLONG((ULONG)m_alPageId[nPage])
,(MPARAM)0
);
::WinSendMsg( GetHWND()
,BKM_TURNTOPAGE
,MPFROMLONG((ULONG)m_alPageId[nPage])
,(MPARAM)0
);
}
}
m_nSelection = nPage;
return nPage;
} // end of wxNotebook::SetSelection
@@ -891,56 +905,5 @@ bool wxNotebook::OS2OnScroll (
);
} // end of wxNotebook::OS2OnScroll
// ----------------------------------------------------------------------------
// wxNotebook helper functions
// ----------------------------------------------------------------------------
//
// Generate the page changing and changed events, hide the currently active
// panel and show the new one
//
void wxNotebook::ChangePage (
int nOldSel
, int nSel
)
{
static bool sbInsideChangePage = FALSE;
//
// When we call ProcessEvent(), our own OnSelChange() is called which calls
// this function - break the infinite loop
//
if (sbInsideChangePage)
return;
//
// It's not an error (the message may be generated by the tab control itself)
// and it may happen - just do nothing
//
if (nSel == nOldSel)
return;
sbInsideChangePage = TRUE;
wxNotebookEvent rEvent( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING
,m_windowId
);
rEvent.SetSelection(nSel);
rEvent.SetOldSelection(nOldSel);
rEvent.SetEventObject(this);
if (GetEventHandler()->ProcessEvent(rEvent) && !rEvent.IsAllowed())
{
//
// Program doesn't allow the page change
//
sbInsideChangePage = FALSE;
return;
}
rEvent.SetEventType(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED);
GetEventHandler()->ProcessEvent(rEvent);
sbInsideChangePage = FALSE;
} // end of wxNotebook::ChangePage
#endif // wxUSE_NOTEBOOK

View File

@@ -224,6 +224,63 @@ void wxRadioButton::SetValue(
)
{
::WinSendMsg((HWND)GetHWND(), BM_SETCHECK, (MPARAM)bValue, (MPARAM)0);
if (bValue)
{
const wxWindowList& rSiblings = GetParent()->GetChildren();
wxWindowList::Node* pNodeThis = rSiblings.Find(this);
wxCHECK_RET(pNodeThis, _T("radio button not a child of its parent?"));
//
// Turn off all radio buttons before this one
//
for ( wxWindowList::Node* pNodeBefore = pNodeThis->GetPrevious();
pNodeBefore;
pNodeBefore = pNodeBefore->GetPrevious() )
{
wxRadioButton* pBtn = wxDynamicCast( pNodeBefore->GetData()
,wxRadioButton
);
if (!pBtn)
{
//
// The radio buttons in a group must be consecutive, so there
// are no more of them
//
break;
}
pBtn->SetValue(FALSE);
if (pBtn->HasFlag(wxRB_GROUP))
{
//
// Even if there are other radio buttons before this one,
// they're not in the same group with us
//
break;
}
}
//
// ... and all after this one
//
for (wxWindowList::Node* pNodeAfter = pNodeThis->GetNext();
pNodeAfter;
pNodeAfter = pNodeAfter->GetNext())
{
wxRadioButton* pBtn = wxDynamicCast( pNodeAfter->GetData()
,wxRadioButton
);
if (!pBtn || pBtn->HasFlag(wxRB_GROUP) )
{
//
// No more buttons or the first button of the next group
//
break;
}
pBtn->SetValue(FALSE);
}
}
} // end of wxRadioButton::SetValue
MRESULT wxRadioButton::OS2WindowProc(