#include "vtkKWMainCallback.h" #include #include #include #include #include #include vtkKWMainCallback::vtkKWMainCallback() { this->Application = NULL; } vtkKWMainCallback::~vtkKWMainCallback() { if (this->Application) this->Application->UnRegister (this); } void vtkKWMainCallback::SetApplication (vtkKWApplication* application) { if (!application) return; if (this->Application) { if (application==this->Application) return; this->Application->UnRegister (this); this->Application = NULL; } this->Application = application; this->Application->Register(this); } void vtkKWMainCallback::Execute(vtkObject* caller, unsigned long event, void* callData) { if (event == vtkDataManager::MetaDataSetPickEvent ) { vtkMetaDataSet* metadataset = reinterpret_cast( callData ); if (metadataset) { if (this->Application) { vtkKWDialog* dialog = vtkKWDialog::New(); dialog->SetApplication(this->Application); dialog->Create(); dialog->SetDisplayPositionToDefault(); dialog->SetPosition (100,100); dialog->SetTitle(metadataset->GetName()); vtkKWMetaInfoWidget* infowidget = vtkKWMetaInfoWidget::New(); infowidget->SetParent(dialog->GetFrame()); infowidget->Create(); infowidget->SetMetaDataSet(metadataset); this->Application->Script("pack %s -side top -anchor nw -expand y -padx 10 -pady 10", infowidget->GetWidgetName()); dialog->Invoke(); infowidget->Delete(); dialog->Delete(); } } } }