| 791 | } |
| 792 | |
| 793 | void MapTree::OnRightClick(wxMouseEvent& event) |
| 794 | { |
| 795 | select_id = GetLegendClick(event); |
| 796 | if (select_id < 0) { |
| 797 | OnSwitchClick(event); |
| 798 | return; |
| 799 | } |
| 800 | wxMenu* popupMenu = new wxMenu(wxEmptyString); |
| 801 | |
| 802 | wxString map_name = map_titles[ new_order[select_id] ]; |
| 803 | BackgroundMapLayer* ml = GetMapLayer(map_name); |
| 804 | |
| 805 | wxString menu_name = _("Layer Full Extent"); |
| 806 | popupMenu->Append(XRCID("MAPTREE_SET_LAYER_EXTENT"), menu_name); |
| 807 | Connect(XRCID("MAPTREE_SET_LAYER_EXTENT"), wxEVT_COMMAND_MENU_SELECTED, |
| 808 | wxCommandEventHandler(MapTree::OnZoomToLayer)); |
| 809 | menu_name = _("Zoom to Selected"); |
| 810 | popupMenu->Append(XRCID("MAPTREE_ZOOM_TO_SELECTED"), menu_name); |
| 811 | Connect(XRCID("MAPTREE_ZOOM_TO_SELECTED"), wxEVT_COMMAND_MENU_SELECTED, |
| 812 | wxCommandEventHandler(MapTree::OnZoomToSelected)); |
| 813 | popupMenu->AppendSeparator(); |
| 814 | |
| 815 | menu_name = _("Set Highlight Association"); |
| 816 | popupMenu->Append(XRCID("MAPTREE_SET_FOREIGN_KEY"), menu_name); |
| 817 | Connect(XRCID("MAPTREE_SET_FOREIGN_KEY"), wxEVT_COMMAND_MENU_SELECTED, |
| 818 | wxCommandEventHandler(MapTree::OnSetAssociateLayer)); |
| 819 | |
| 820 | popupMenu->Append(XRCID("MAPTREE_CLEAR_FOREIGN_KEY"), |
| 821 | _("Clear Highlight Association")); |
| 822 | Connect(XRCID("MAPTREE_CLEAR_FOREIGN_KEY"), wxEVT_COMMAND_MENU_SELECTED, |
| 823 | wxCommandEventHandler(MapTree::OnClearAssociateLayer)); |
| 824 | |
| 825 | popupMenu->Append(XRCID("MAPTREE_CHANGE_ASSOCIATELINE_COLOR"), _("Change Associate Line Color")); |
| 826 | Connect(XRCID("MAPTREE_CHANGE_ASSOCIATELINE_COLOR"), wxEVT_COMMAND_MENU_SELECTED, |
| 827 | wxCommandEventHandler(MapTree::OnChangeAssociatelineColor)); |
| 828 | if (ml == NULL) { |
| 829 | // if it's current map, then no other options other than "Set Highlight" |
| 830 | PopupMenu(popupMenu, event.GetPosition()); |
| 831 | return; |
| 832 | } |
| 833 | |
| 834 | popupMenu->AppendSeparator(); |
| 835 | popupMenu->Append(XRCID("MAPTREE_CHANGE_FILL_COLOR"), _("Change Fill Color")); |
| 836 | popupMenu->Append(XRCID("MAPTREE_CHANGE_OUTLINE_COLOR"), _("Change Outline Color")); |
| 837 | popupMenu->Append(XRCID("MAPTREE_OUTLINE_VISIBLE"), _("Outline Visible")); |
| 838 | |
| 839 | // check menu items |
| 840 | wxMenuItem* outline = popupMenu->FindItem(XRCID("MAPTREE_OUTLINE_VISIBLE")); |
| 841 | if (outline && outline->IsCheckable() && outline->GetMenu()) { |
| 842 | outline->SetCheckable(true); |
| 843 | if (ml->GetPenSize() > 0) outline->Check(); |
| 844 | } |
| 845 | Connect(XRCID("MAPTREE_CHANGE_FILL_COLOR"), wxEVT_COMMAND_MENU_SELECTED, |
| 846 | wxCommandEventHandler(MapTree::OnChangeFillColor)); |
| 847 | Connect(XRCID("MAPTREE_CHANGE_OUTLINE_COLOR"), wxEVT_COMMAND_MENU_SELECTED, |
| 848 | wxCommandEventHandler(MapTree::OnChangeOutlineColor)); |
| 849 | Connect(XRCID("MAPTREE_OUTLINE_VISIBLE"), wxEVT_COMMAND_MENU_SELECTED, |
| 850 | wxCommandEventHandler(MapTree::OnOutlineVisible)); |
no test coverage detected