wxSegmentedControl changing/changed events

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/SOC2011_WXIOS@68672 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Linas Valiukas
2011-08-12 22:30:10 +00:00
parent 18c0cff129
commit da1cb3e79c
7 changed files with 74 additions and 5 deletions
@@ -12,6 +12,7 @@
#ifndef _WX_OSX_IPHONE_PRIVATE_SEGCTRL_H_
#define _WX_OSX_IPHONE_PRIVATE_SEGCTRL_H_
#include "wx/segctrl.h"
#include "wx/osx/private.h"
@@ -19,8 +20,12 @@
@interface wxUISegmentedControl : UISegmentedControl
{
wxSegmentedCtrl *moSegmentedCtrl;
}
- (id)initWithWxSegmentedCtrl:(wxSegmentedCtrl *)initWxSegmentedCtrl;
- (void)segmentHasBeenChanged:(id)sender;
@end
+2 -1
View File
@@ -31,6 +31,7 @@
wxPageCtrl *moPageCtrl;
}
- (id)initWithWxPageCtrl:(wxPageCtrl *)initWxPageCtrl;
- (void)pageHasBeenChanged:(id)sender;
@end
@@ -38,7 +39,7 @@
@implementation wxUIPageControl
- (id)init {
if ((self = [super init])) {
if ((self = [self init])) {
moPageCtrl = NULL;
[self addTarget:self
+42
View File
@@ -29,6 +29,48 @@
@implementation wxUISegmentedControl
- (id)init {
if ((self = [super init])) {
moSegmentedCtrl = NULL;
[self addTarget:self
action:@selector(segmentHasBeenChanged:)
forControlEvents:UIControlEventValueChanged];
}
return self;
}
- (id)initWithWxSegmentedCtrl:(wxSegmentedCtrl *)initWxSegmentedCtrl {
if ((self = [self init])) {
moSegmentedCtrl = initWxSegmentedCtrl;
}
return self;
}
- (void)segmentHasBeenChanged:(id)sender {
if ( !moSegmentedCtrl ) {
return;
}
int selection = [self selectedSegmentIndex];
// wxEVT_COMMAND_TAB_SEL_CHANGING
// FIXME should be able to veto the change
wxTabEvent changingEvent(wxEVT_COMMAND_TAB_SEL_CHANGING, moSegmentedCtrl->GetId());
changingEvent.SetEventObject(moSegmentedCtrl);
changingEvent.SetEventType(wxEVT_COMMAND_TAB_SEL_CHANGING);
changingEvent.SetSelection(selection);
moSegmentedCtrl->GetEventHandler()->ProcessEvent(changingEvent);
// wxEVT_COMMAND_TAB_SEL_CHANGED
wxTabEvent changedEvent(wxEVT_COMMAND_TAB_SEL_CHANGED, moSegmentedCtrl->GetId());
changedEvent.SetEventObject(moSegmentedCtrl);
changedEvent.SetEventType(wxEVT_COMMAND_TAB_SEL_CHANGED);
changedEvent.SetSelection(selection);
moSegmentedCtrl->GetEventHandler()->ProcessEvent(changedEvent);
}
@end
+1 -1
View File
@@ -41,7 +41,7 @@ bool MobileTestsWxPageCtrlPanel::CreateControls()
// Page control
//
m_pageCtrl = new wxPageCtrl(this, wxID_ANY);
m_pageCtrl = new wxPageCtrl(this, wxID_ANY, wxPoint(0, 30), wxSize(90, 45));
m_pageCtrl->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(MobileTestsWxPageCtrlPanel::OnPageChanged), NULL, this);
m_pageCtrl->SetPageCount(6);
m_pageCtrl->SetCurrentPage(2);
+15 -1
View File
@@ -41,12 +41,26 @@ bool MobileTestsWxSegmentedCtrlPanel::CreateControls()
// Segmented control
//
m_segCtrl = new wxSegmentedCtrl(this, wxID_ANY, wxPoint(50, 50), wxSize(100, 40));
m_segCtrl = new wxSegmentedCtrl(this, wxID_ANY, wxPoint(50, 50), wxSize(300, 40));
m_segCtrl->AddItem(_("Tiger"));
m_segCtrl->AddItem(_("Cheetah"));
m_segCtrl->AddItem(_("Pig"));
m_segCtrl->SetSelection(1);
sizer->Add(m_segCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
// Events
m_segCtrl->Connect(wxEVT_COMMAND_TAB_SEL_CHANGING, wxCommandEventHandler(MobileTestsWxSegmentedCtrlPanel::OnChanging), NULL, this);
m_segCtrl->Connect(wxEVT_COMMAND_TAB_SEL_CHANGED, wxCommandEventHandler(MobileTestsWxSegmentedCtrlPanel::OnChanged), NULL, this);
return true;
}
void MobileTestsWxSegmentedCtrlPanel::OnChanging(wxCommandEvent& WXUNUSED(event))
{
wxLogMessage("Event wxEVT_COMMAND_TAB_SEL_CHANGING");
}
void MobileTestsWxSegmentedCtrlPanel::OnChanged(wxCommandEvent& WXUNUSED(event))
{
wxLogMessage("Event wxEVT_COMMAND_TAB_SEL_CHANGED");
}
+8 -1
View File
@@ -10,7 +10,10 @@
//
// TESTS:
//
// - wxMoTabCtrl (wxWindow *parent, wxWindowID id, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxTAB_TEXT|wxTAB_BITMAP, const wxString &name=wxT("tabCtrl"))
// events:
// + wxEVT_COMMAND_TAB_SEL_CHANGING
// + wxEVT_COMMAND_TAB_SEL_CHANGED
// - wxMoSegmentedCtrl (wxWindow *parent, wxWindowID id, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxTAB_TEXT|wxTAB_BITMAP, const wxString &name=wxT("segCtrl"))
// - int GetSelection () const
// - int GetCurFocus () const
// - wxImageList * GetImageList () const
@@ -55,6 +58,10 @@ public:
long style = wxTAB_TRAVERSAL,
const wxString& name = _("wxSegmentedCtrl Mobile"));
// Event tests
void OnChanging(wxCommandEvent& WXUNUSED(event));
void OnChanged(wxCommandEvent& WXUNUSED(event));
protected:
bool CreateControls();
+1 -1
View File
@@ -47,7 +47,7 @@ bool MobileTestsWxToolBarPanel::CreateControls()
// Toolbar
m_toolbar = new wxToolBar(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTB_BLACK_OPAQUE_BG);
m_toolbar = new wxToolBar(this, wxID_ANY, wxDefaultPosition, wxSize(300, 44), wxTB_BLACK_OPAQUE_BG);
sizer->Add(m_toolbar, 0, wxEXPAND, 0);
// Events