| 139 | } |
| 140 | |
| 141 | void PatternsPanel::OnTreeClick(wxMouseEvent& event) |
| 142 | { |
| 143 | // determine if an item was clicked |
| 144 | wxTreeCtrl* treectrl = patternctrl->GetTreeCtrl(); |
| 145 | wxPoint pt = event.GetPosition(); |
| 146 | int flags; |
| 147 | wxTreeItemId id = treectrl->HitTest(pt, flags); |
| 148 | if (!id.IsOk()) { |
| 149 | // click wasn't in any item |
| 150 | event.Skip(); |
| 151 | return; |
| 152 | } |
| 153 | |
| 154 | if (treectrl->ItemHasChildren(id)) { |
| 155 | // click was in a folder item |
| 156 | event.Skip(); |
| 157 | return; |
| 158 | } |
| 159 | |
| 160 | // set global flag for testing in OnTreeSelChanged |
| 161 | edit_file = event.ControlDown() || event.RightDown(); |
| 162 | |
| 163 | // check for click in an already selected item |
| 164 | if (id == treectrl->GetSelection()) { |
| 165 | // force a selection change so OnTreeSelChanged gets called |
| 166 | treectrl->Unselect(); |
| 167 | } |
| 168 | |
| 169 | treectrl->SelectItem(id); |
| 170 | treectrl->SetFocus(); |
| 171 | // OnTreeSelChanged will be called -- don't call event.Skip() |
| 172 | } |
| 173 | |
| 174 | void PatternsPanel::OnTreeSelChanged(wxTreeEvent& event) |
| 175 | { |
nothing calls this directly
no outgoing calls
no test coverage detected