void TableFrame::DisplayPopupMenu( wxGridEvent& ev ) { wxMenu* optMenu = wxXmlResource::Get()->LoadMenu("ID_TABLE_VIEW_MENU_CONTEXT"); TableInterface* ti = table_base->GetTableInt(); SetEncodingCheckmarks(optMenu, ti->GetFontEncoding()); popup_col = ev.GetCol(); // Set Group item vector<int> sel_cols; table_base->GetSelectedCols(sel_cols); bool any_sel_time_variant = false; for (int i=0; i<sel_cols.size(); i++) { if (ti->IsColTimeVariant(sel_cols[i])) { any_sel_time_variant = true; break; } } bool all_sel_compatible = false; if (!any_sel_time_variant && sel_cols.size() > 1) { // check for compatible types all_sel_compatible = true; for (int i=0; i<sel_cols.size(); ++i) { if (!ti->IsColNumeric(sel_cols[i])) { all_sel_compatible = false; break; } } } // Set Rename item wxString rename_str(_("Rename Variable")); if (popup_col != -1) { rename_str << " \"" << ti->GetColName(popup_col) << "\""; } optMenu->FindItem(XRCID("ID_TABLE_RENAME_VARIABLE"))->SetItemLabel(rename_str); bool enable_rename = false; if (popup_col!=-1) { if (ti->IsColTimeVariant(popup_col)) { enable_rename = true; } else { enable_rename = ti->PermitRenameSimpleCol(); } } optMenu->FindItem(XRCID("ID_TABLE_RENAME_VARIABLE"))->Enable(enable_rename); PopupMenu(optMenu, ev.GetPosition()); }