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;
    }
}
示例#2
0
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 );
}
示例#4
0
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();
}
示例#5
0
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 );
        }
    }
}
示例#9
0
文件: VTable.cpp 项目: alex3696/wh3
//-----------------------------------------------------------------------------
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));

}
示例#10
0
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();
}
示例#11
0
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() );
}