void frmMain::OnSelActivated(wxTreeEvent &event) { // This handler will primarily deal with displaying item // properties in seperate windows and 'Add xxx...' clicks // Get the item data, and feed it to the relevant handler, // cast as required. wxTreeItemId item = event.GetItem(); pgObject *data = browser->GetObject(item); if (!data) return; pgServer *server; wxCommandEvent nullEvent; if (data->IsCreatedBy(serverFactory)) { server = (pgServer *)data; if (!server->GetConnected()) { if (ReconnectServer(server) == PGCONN_OK) { // prevent from being collapsed immediately denyCollapseItem=item; } } } else { if (settings->GetDoubleClickProperties() && propFactory->CheckEnable(data)) { propFactory->StartDialog(this, data); event.Skip(); return; } } #ifndef __WXMSW__ browser->Expand(item); #endif }
void frmMain::OnNew(wxCommandEvent &ev) { pgaFactory *factory = pgaFactory::GetFactory(ev.GetId() - MNU_NEW); if (factory == &serverFactory) { if (currentObject && currentObject->IsCreatedBy(serverFactory)) { pgServer *server = (pgServer *)currentObject; if (!server->GetConnected()) ReconnectServer(server); } return; } if (currentObject) { if (!dlgProperty::CreateObjectDialog(this, currentObject, factory)) CheckAlive(); } }