void DIALOG_BOM_EDITOR::OnColumnItemToggled( wxDataViewEvent& event ) { wxDataViewItem item = event.GetItem(); int row = m_columnListCtrl->ItemToRow( item ); int col = event.GetColumn(); if( row == wxNOT_FOUND || row < 0 || row >= (int) m_bom->ColumnCount() ) return; BOM_COLUMN* bomColumn = m_bom->ColumnList.GetColumnByIndex( row ); if( nullptr == bomColumn ) return; bool bValue = m_columnListCtrl->GetToggleValue( row, col ); switch ( col ) { default: break; case 1: // Column visibility bomColumn->SetVisible( bValue ); // Insert a new column if( bValue ) { m_bom->AddColumn( bomColumn ); } else { m_bom->RemoveColumn( bomColumn ); } break; } }
void mmPayeeDialog::OnDataChanged(wxDataViewEvent& event) { int row = payeeListBox_->ItemToRow(event.GetItem()); wxVariant var; payeeListBox_->GetValue(var, row, event.GetColumn()); const wxString value = var.GetString(); auto payee = Model_Payee::instance().get(m_payee_rename); if (!payee || value == payee->PAYEENAME) return; const auto payees = Model_Payee::instance().find(Model_Payee::PAYEENAME(value)); if (payees.empty()) { if (payee) { payee->PAYEENAME = value; Model_Payee::instance().save(payee); mmWebApp::MMEX_WebApp_UpdatePayee(); refreshRequested_ = true; } } else { wxMessageBox(_("Payee with same name exists") , _("Organize Payees: Add Payee"), wxOK | wxICON_ERROR); } fillControls(); }
void DIALOG_KEEPOUT_AREA_PROPERTIES::OnLayerSelection( wxDataViewEvent& event ) { if( event.GetColumn() != 0 ) return; int row = m_layers->ItemToRow( event.GetItem() ); wxVariant layerID; m_layers->GetValue( layerID, row, 2 ); bool selected = m_layers->GetToggleValue( row, 0 ); m_zonesettings.m_Layers.set( ToLAYER_ID( layerID.GetInteger() ), selected ); }
void TableSettings::OnKeyChanged(wxDataViewEvent& event) { Constraint *key = reinterpret_cast<Constraint*>( m_dvKeys->GetItemData( event.GetItem() ) ); if( key ) { wxVariant val; event.GetModel()->GetValue( val, event.GetItem(), event.GetColumn() ); if( ! val.IsNull() ) { key->SetName( val.GetString() ); } } event.Skip(); }
void wxTreeListCtrl::SendColumnEvent(wxEventType evt, wxDataViewEvent& eventDV) { wxTreeListEvent eventTL(evt, this, wxTreeListItem()); eventTL.SetColumn(eventDV.GetColumn()); if ( !ProcessWindowEvent(eventTL) ) { eventDV.Skip(); return; } if ( !eventTL.IsAllowed() ) { eventDV.Veto(); } }
void MissionInfoEditDialog::onTitleEdited(wxDataViewEvent& ev) { wxutil::TreeModel::Row row(ev.GetItem(), *_missionTitleStore); int titleNum = row[_missionTitleColumns.number].getInteger(); map::DarkmodTxt::TitleList list = _darkmodTxt->getMissionTitles(); assert(titleNum >= 0 && titleNum < static_cast<int>(list.size())); if (ev.GetColumn() == _missionTitleColumns.title.getColumnIndex()) { list[titleNum] = static_cast<std::string>(ev.GetValue()); _darkmodTxt->setMissionTitles(list); } }
/** * @brief This callback is trigered when user click on checkbox - wants un/mark error. * @param event just wxDataViewEvent */ void MemCheckOutputView::OnValueChanged(wxDataViewEvent& event) { // CL_DEBUG1(PLUGIN_PREFIX("MemCheckOutputView::OnValueChanged()")); int col = GetColumnByName(_("Suppress")); if(col == wxNOT_FOUND) { return; } if(m_onValueChangedLocked || event.GetColumn() != col) return; m_onValueChangedLocked = true; wxVariant variant; m_dataViewCtrlErrorsModel->GetValue(variant, event.GetItem(), col); MarkTree(GetTopParent(event.GetItem()), variant.GetBool()); variant.GetBool() ? ++m_markedErrorsCount : --m_markedErrorsCount; m_onValueChangedLocked = false; }
void DIALOG_NON_COPPER_ZONES_EDITOR::OnLayerSelection( wxDataViewEvent& event ) { if( event.GetColumn() != 0 ) return; int row = m_layers->ItemToRow( event.GetItem() ); if( m_layers->GetToggleValue( row, 0 ) ) { wxVariant layerID; m_layers->GetValue( layerID, row, 2 ); m_settings.m_CurrentZone_Layer = ToLAYER_ID( layerID.GetInteger() ); // Turn all other checkboxes off. for( int ii = 0; ii < m_layers->GetItemCount(); ++ii ) { if( ii != row ) m_layers->SetToggleValue( false, ii, 0 ); } } }
//----------------------------------------------------------------------------- void VTable::OnColumnHeaderlClick(wxDataViewEvent &event) { if (!mModel) return; auto clicked_column_no = event.GetColumn(); auto clicked_column = event.GetDataViewColumn(); // очистить всю сортировку и сделать сортировку в выбранном столбце for (unsigned int i = 0; i < mModel->mFieldVec->GetChildQty(); ++i) { auto field = mModel->mFieldVec->at(i)->GetData(); if (i == clicked_column->GetModelColumn()) { switch (field.mSort) { case -1: field.mSort = 0; break; case 0: field.mSort = 1; break; case 1: field.mSort = -1; break; default:break; } mModel->mFieldVec->at(i)->SetData(field); } else if (field.mSort != 0) { field.mSort = 0; mModel->mFieldVec->at(i)->SetData(field); } } //auto itemLimit = mModel->GetClientSize().GetHeight() / mTableView->GetRowHeight() - 1; //mModel->mPageLimit->SetData(itemLimit, true); mModel->mPageNo->SetData(0, true); mModel->Load(); //OnCmdLoad(wxCommandEvent(wxID_REFRESH)); }
void TableSettings::OnColumnChanged(wxDataViewEvent& event) { Column *col = reinterpret_cast<Column*>(m_dvColumns->GetItemData( event.GetItem() ) ); if( col ) { wxVariant val; event.GetModel()->GetValue( val, event.GetItem(), event.GetColumn() ); if( ! val.IsNull() ) { switch( event.GetColumn() ) { case 0: { // rename local columns in keys SerializableList keys; GetConstraints( keys, col->GetName() ); for(SerializableList::iterator it = keys.begin(); it != keys.end(); ++it ) { Constraint *key = (Constraint*) *it; if( key->GetType() == Constraint::primaryKey ) key->SetName( wxT("PK_") + val.GetString() ); key->SetLocalColumn( val.GetString() ); } // rename table column col->SetName( val.GetString() ); break; } case 1: { col->SetType( m_pDbAdapter->GetDbTypeByName( val.GetString() ) ); break; } case 2: { long s1, s2; s1 = s2 = 0; wxSscanf( val.GetString(), wxT("%ld,%ld"), &s1, &s2 ); IDbType *type = col->GetType(); if( type->HaveSize() ) type->SetSize( s1 ); else { m_infobar->ShowMessage( wxT("This data type doesn't support size definition."), wxICON_WARNING ); Refresh(); } if( type->HaveSize2() ) type->SetSize2( s1 ); else { m_infobar->ShowMessage( wxT("This data type doesn't support size definition."), wxICON_WARNING ); Refresh(); } break; } case 3: { IDbType *type = col->GetType(); if( type->HaveNotNull() ) type->SetNotNull( val.GetBool() ); else { m_infobar->ShowMessage( wxT("This data type doesn't support NOT NULL feature."), wxICON_WARNING ); Refresh(); } break; } case 4: { IDbType *type = col->GetType(); if( type->HaveAutoIncrement() ) type->SetAutoIncrement( val.GetBool() ); else { m_infobar->ShowMessage( wxT("This data type doesn't support AUTOINCREMENT feature."), wxICON_WARNING ); Refresh(); } break; } case 5: { Constraint *key = GetConstraint( Constraint::primaryKey, col->GetName() ); if( key ) { // remove primary key if exists m_lstKeys.DeleteObject( key ); delete key; } else { // create new primary key key = new Constraint( wxT("PK_") + col->GetName(), col->GetName(), Constraint::primaryKey, Constraint::noAction, Constraint::noAction ); m_lstKeys.Append( key ); } break; } } } } event.Skip(); UpdateView(); }
void MyFrame::OnValueChanged( wxDataViewEvent &event ) { wxString title = m_music_model->GetTitle( event.GetItem() ); wxLogMessage( "wxEVT_DATAVIEW_ITEM_VALUE_CHANGED, Item Id: %s; Column: %d", title, event.GetColumn() ); }