void LayersMgrWidget::onDelLayer(wxCommandEvent& event) { int index = getEditLayerIndex(); m_layersSizer->Detach(m_layers.size() - 1 - index); delete m_layers[index]->getLayer(); delete m_layers[index]; m_layers.erase(m_layers.begin() + index); if (index < m_layers.size()) setEditable(m_layers[index]); else setEditable(m_layers.back()); if (m_layers.empty()) m_editedLayer = NULL; if (m_layers.size() == 1) m_btnDel->Enable(false); m_parent->Fit(); wxWindow* root = m_parent; while (root->GetParent()) root = root->GetParent(); root->Refresh(); }
void LayersMgrWidget::onLayerDown(wxCommandEvent& event) { int index = getEditLayerIndex(); LayerWidget* layer = m_layers[index]; m_layers[index] = m_layers[index - 1]; m_layers[index - 1] = layer; m_layersSizer->Remove(m_layers.size() - 1 - index); m_layersSizer->Insert(m_layers.size() - 1 - (index - 1), layer); if (index - 1 == 0) { m_btnDown->Enable(false); m_btnUp->Enable(true); // debug fix setEditable(layer); } else { m_btnDown->Enable(true); m_btnUp->Enable(true); } Layout(); Refresh(); }
void LayersMgrWidget::onLayerUp(wxCommandEvent& event) { int index = getEditLayerIndex(); LayerWidget* layer = m_layers[index]; m_layers[index] = m_layers[index + 1]; m_layers[index + 1] = layer; m_layersSizer->Remove(m_layers.size() - 1 - index); m_layersSizer->Insert(m_layers.size() - 1 - (index + 1), layer); if (index + 1 == m_layers.size() - 1) { m_btnDown->Enable(true); m_btnUp->Enable(false); } else { m_btnDown->Enable(true); m_btnUp->Enable(true); } m_stage->Refresh(); Layout(); Refresh(); }