merged 2.2 branch

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@7748 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Bryan Petty
2000-07-15 19:51:35 +00:00
parent 8a693e6e04
commit f6bcfd974e
1835 changed files with 237729 additions and 67990 deletions

View File

@@ -88,6 +88,8 @@ public:
void OnChoice( wxCommandEvent &event );
void OnChoiceButtons( wxCommandEvent &event );
void OnCombo( wxCommandEvent &event );
void OnComboTextChanged( wxCommandEvent &event );
void OnComboTextEnter( wxCommandEvent &event );
void OnComboButtons( wxCommandEvent &event );
void OnRadio( wxCommandEvent &event );
void OnRadioButtons( wxCommandEvent &event );
@@ -183,6 +185,96 @@ private:
DECLARE_EVENT_TABLE()
};
// a button which intercepts double clicks (for testing...)
class MyButton : public wxButton
{
public:
MyButton(wxWindow *parent,
wxWindowID id,
const wxString& label = wxEmptyString,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize)
: wxButton(parent, id, label, pos, size)
{
}
void OnDClick(wxMouseEvent& event)
{
wxLogMessage(_T("MyButton::OnDClick"));
event.Skip();
}
private:
DECLARE_EVENT_TABLE()
};
// a combo which intercepts chars (to test Windows behaviour)
class MyComboBox : public wxComboBox
{
public:
MyComboBox(wxWindow *parent, wxWindowID id,
const wxString& value = wxEmptyString,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
int n = 0, const wxString choices[] = NULL,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxComboBoxNameStr)
: wxComboBox(parent, id, value, pos, size, n, choices, style,
validator, name) { }
protected:
void OnChar(wxKeyEvent& event);
void OnKeyDown(wxKeyEvent& event);
void OnKeyUp(wxKeyEvent& event);
void OnFocusGot(wxFocusEvent& event)
{
wxLogMessage(_T("MyComboBox::OnFocusGot"));
event.Skip();
}
private:
DECLARE_EVENT_TABLE()
};
// a radiobox which handles focus set/kill (for testing)
class MyRadioBox : public wxRadioBox
{
public:
MyRadioBox(wxWindow *parent,
wxWindowID id,
const wxString& title = wxEmptyString,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
int n = 0, const wxString choices[] = NULL,
int majorDim = 1,
long style = wxRA_HORIZONTAL,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxComboBoxNameStr)
: wxRadioBox(parent, id, title, pos, size, n, choices, majorDim,
style, validator, name) { }
protected:
void OnFocusGot(wxFocusEvent& event)
{
wxLogMessage(_T("MyRadioBox::OnFocusGot"));
event.Skip();
}
void OnFocusLost(wxFocusEvent& event)
{
wxLogMessage(_T("MyRadioBox::OnFocusLost"));
event.Skip();
}
private:
DECLARE_EVENT_TABLE()
};
//----------------------------------------------------------------------
// other
//----------------------------------------------------------------------
@@ -356,6 +448,8 @@ EVT_BUTTON (ID_CHOICE_DELETE, MyPanel::OnChoiceButtons)
EVT_BUTTON (ID_CHOICE_FONT, MyPanel::OnChoiceButtons)
EVT_CHECKBOX (ID_CHOICE_ENABLE, MyPanel::OnChoiceButtons)
EVT_COMBOBOX (ID_COMBO, MyPanel::OnCombo)
EVT_TEXT (ID_COMBO, MyPanel::OnComboTextChanged)
EVT_TEXT_ENTER(ID_COMBO, MyPanel::OnComboTextEnter)
EVT_BUTTON (ID_COMBO_SEL_NUM, MyPanel::OnComboButtons)
EVT_BUTTON (ID_COMBO_SEL_STR, MyPanel::OnComboButtons)
EVT_BUTTON (ID_COMBO_CLEAR, MyPanel::OnComboButtons)
@@ -387,6 +481,27 @@ EVT_BUTTON (ID_BUTTON_TEST2, MyPanel::OnTestButton)
EVT_BUTTON (ID_BITMAP_BTN, MyPanel::OnBmpButton)
END_EVENT_TABLE()
BEGIN_EVENT_TABLE(MyButton, wxButton)
EVT_LEFT_DCLICK(MyButton::OnDClick)
END_EVENT_TABLE()
BEGIN_EVENT_TABLE(MyComboBox, wxComboBox)
EVT_CHAR(MyComboBox::OnChar)
EVT_KEY_DOWN(MyComboBox::OnKeyDown)
EVT_KEY_UP(MyComboBox::OnKeyUp)
EVT_SET_FOCUS(MyComboBox::OnFocusGot)
END_EVENT_TABLE()
BEGIN_EVENT_TABLE(MyRadioBox, wxRadioBox)
EVT_SET_FOCUS(MyRadioBox::OnFocusGot)
EVT_KILL_FOCUS(MyRadioBox::OnFocusLost)
END_EVENT_TABLE()
// ============================================================================
// implementation
// ============================================================================
MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h )
: wxPanel( frame, -1, wxPoint(x, y), wxSize(w, h) ),
m_text(NULL), m_notebook(NULL)
@@ -485,9 +600,9 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h )
m_lbSelectNum = new wxButton( panel, ID_LISTBOX_SEL_NUM, "Select #&2", wxPoint(180,30), wxSize(140,30) );
m_lbSelectThis = new wxButton( panel, ID_LISTBOX_SEL_STR, "&Select 'This'", wxPoint(340,30), wxSize(140,30) );
(void)new wxButton( panel, ID_LISTBOX_CLEAR, "&Clear", wxPoint(180,80), wxSize(140,30) );
(void)new wxButton( panel, ID_LISTBOX_APPEND, "&Append 'Hi!'", wxPoint(340,80), wxSize(140,30) );
(void)new MyButton( panel, ID_LISTBOX_APPEND, "&Append 'Hi!'", wxPoint(340,80), wxSize(140,30) );
(void)new wxButton( panel, ID_LISTBOX_DELETE, "D&elete selected item", wxPoint(180,130), wxSize(140,30) );
wxButton *button = new wxButton( panel, ID_LISTBOX_FONT, "Set &Italic font", wxPoint(340,130), wxSize(140,30) );
wxButton *button = new MyButton( panel, ID_LISTBOX_FONT, "Set &Italic font", wxPoint(340,130), wxSize(140,30) );
button->SetDefault();
@@ -512,10 +627,8 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h )
m_choiceSorted = new wxChoice( panel, ID_CHOICE_SORTED, wxPoint(10,70), wxSize(120,-1),
5, choices, wxCB_SORT );
#ifndef __WXMOTIF__
SetControlClientData("choice", m_choice);
SetControlClientData("choice", m_choiceSorted);
#endif
m_choice->SetSelection(2);
m_choice->SetBackgroundColour( "red" );
@@ -532,7 +645,11 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h )
panel = new wxPanel(m_notebook);
(void)new wxStaticBox( panel, -1, "&Box around combobox",
wxPoint(5, 5), wxSize(150, 100));
m_combo = new wxComboBox( panel, ID_COMBO, "This", wxPoint(20,25), wxSize(120,-1), 5, choices, wxCB_READONLY );
m_combo = new MyComboBox( panel, ID_COMBO, "This",
wxPoint(20,25), wxSize(120, -1),
5, choices,
/* wxCB_READONLY | */ wxPROCESS_ENTER);
(void)new wxButton( panel, ID_COMBO_SEL_NUM, "Select #&2", wxPoint(180,30), wxSize(140,30) );
(void)new wxButton( panel, ID_COMBO_SEL_STR, "&Select 'This'", wxPoint(340,30), wxSize(140,30) );
(void)new wxButton( panel, ID_COMBO_CLEAR, "&Clear", wxPoint(180,80), wxSize(140,30) );
@@ -551,7 +668,7 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h )
};
panel = new wxPanel(m_notebook);
(void)new wxRadioBox( panel, ID_RADIOBOX, "&That", wxPoint(10,160), wxSize(-1,-1), WXSIZEOF(choices2), choices2, 1, wxRA_SPECIFY_ROWS );
(void)new MyRadioBox( panel, ID_RADIOBOX, "&That", wxPoint(10,160), wxSize(-1,-1), WXSIZEOF(choices2), choices2, 1, wxRA_SPECIFY_ROWS );
m_radio = new wxRadioBox( panel, ID_RADIOBOX, "T&his", wxPoint(10,10), wxSize(-1,-1), WXSIZEOF(choices), choices, 1, wxRA_SPECIFY_COLS );
#if wxUSE_TOOLTIPS
@@ -571,7 +688,9 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h )
panel = new wxPanel(m_notebook);
(void)new wxStaticBox( panel, -1, "&wxGauge and wxSlider", wxPoint(10,10), wxSize(200,130) );
m_gauge = new wxGauge( panel, -1, 200, wxPoint(18,50), wxSize(155, 30) );
m_gauge = new wxGauge( panel, -1, 200, wxPoint(18,50), wxSize(155, 30), wxGA_HORIZONTAL|wxNO_BORDER );
m_gauge->SetBackgroundColour(*wxGREEN);
m_gauge->SetForegroundColour(*wxRED);
m_slider = new wxSlider( panel, ID_SLIDER, 0, 0, 200, wxPoint(18,90), wxSize(155,-1), wxSL_LABELS );
(void)new wxStaticBox( panel, -1, "&Explanation", wxPoint(220,10), wxSize(270,130) );
#ifdef __WXMOTIF__
@@ -662,7 +781,7 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h )
(void)new wxButton(panel, ID_BUTTON_LABEL, "&Toggle label", wxPoint(250, 20));
m_label = new wxStaticText(panel, -1, "Label with some long text",
wxPoint(250, 60), wxDefaultSize,
wxALIGN_RIGHT | wxST_NO_AUTORESIZE);
wxALIGN_RIGHT /*| wxST_NO_AUTORESIZE*/);
m_label->SetForegroundColour( *wxBLUE );
m_notebook->AddPage(panel, "wxBitmapXXX");
@@ -727,7 +846,7 @@ void MyPanel::OnPageChanging( wxNotebookEvent &event )
"page change from taking place - if you select\n"
"[No] the current page will stay the third one\n",
"Control sample",
wxICON_QUESTION | wxYES_NO) != wxYES )
wxICON_QUESTION | wxYES_NO, this) != wxYES )
{
event.Veto();
@@ -875,9 +994,11 @@ void MyPanel::OnListBoxButtons( wxCommandEvent &event )
{
int idx;
idx = m_listbox->GetSelection();
m_listbox->Delete( idx );
if ( idx != wxNOT_FOUND )
m_listbox->Delete( idx );
idx = m_listboxSorted->GetSelection();
m_listboxSorted->Delete( idx );
if ( idx != wxNOT_FOUND )
m_listboxSorted->Delete( idx );
break;
}
case ID_LISTBOX_FONT:
@@ -958,9 +1079,11 @@ void MyPanel::OnChoiceButtons( wxCommandEvent &event )
case ID_CHOICE_DELETE:
{
int idx = m_choice->GetSelection();
m_choice->Delete( idx );
if ( idx != wxNOT_FOUND )
m_choice->Delete( idx );
idx = m_choiceSorted->GetSelection();
m_choiceSorted->Delete( idx );
if ( idx != wxNOT_FOUND )
m_choiceSorted->Delete( idx );
break;
}
case ID_CHOICE_FONT:
@@ -982,6 +1105,18 @@ void MyPanel::OnCombo( wxCommandEvent &event )
m_text->AppendText( "\n" );
}
void MyPanel::OnComboTextChanged(wxCommandEvent& WXUNUSED(event))
{
wxLogMessage(_T("Text in the combobox changed: now is '%s'."),
m_combo->GetValue().c_str());
}
void MyPanel::OnComboTextEnter(wxCommandEvent& WXUNUSED(event))
{
wxLogMessage(_T("Enter pressed in the combobox: value is '%s'."),
m_combo->GetValue().c_str());
}
void MyPanel::OnComboButtons( wxCommandEvent &event )
{
switch (event.GetId())
@@ -1070,7 +1205,7 @@ void MyPanel::OnUpdateLabel( wxCommandEvent &WXUNUSED(event) )
static bool s_long = TRUE;
s_long = !s_long;
m_label->SetLabel(s_long ? "very very very long text" : "shorter text");
m_label->SetLabel(s_long ? "Very very very very very long text." : "Shorter text.");
}
void MyPanel::OnSliderUpdate( wxCommandEvent &WXUNUSED(event) )
@@ -1323,6 +1458,33 @@ void MyFrame::OnIdle( wxIdleEvent& WXUNUSED(event) )
}
}
void MyComboBox::OnChar(wxKeyEvent& event)
{
wxLogMessage(_T("MyComboBox::OnChar"));
if ( event.KeyCode() == 'w' )
wxLogMessage(_T("MyComboBox: 'w' will be ignored."));
else
event.Skip();
}
void MyComboBox::OnKeyDown(wxKeyEvent& event)
{
wxLogMessage(_T("MyComboBox::OnKeyDown"));
if ( event.KeyCode() == 'w' )
wxLogMessage(_T("MyComboBox: 'w' will be ignored."));
else
event.Skip();
}
void MyComboBox::OnKeyUp(wxKeyEvent& event)
{
wxLogMessage(_T("MyComboBox::OnKeyUp"));
event.Skip();
}
static void SetControlClientData(const char *name,
wxControlWithItems *control)
{