mirror of
https://github.com/wxWidgets/wxWidgets.git
synced 2026-09-26 18:18:26 +08:00
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:
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user