MCPcopy Create free account
hub / github.com/GCWing/BitFun / selectable_index_at_row

Method selectable_index_at_row

src/apps/cli/src/ui/provider_selector.rs:279–293  ·  view source on GitHub ↗

Convert mouse row to selectable index

(&self, mouse_row: u16, popup_area: &Rect)

Source from the content-addressed store, hash-verified

277
278 /// Convert mouse row to selectable index
279 fn selectable_index_at_row(&self, mouse_row: u16, popup_area: &Rect) -> Option<usize> {
280 let content_start_y = popup_area.y + 2; // border + title
281 if mouse_row < content_start_y {
282 return None;
283 }
284 let visual_offset = (mouse_row - content_start_y) as usize;
285 let row_index = self.scroll_offset + visual_offset;
286 if row_index >= self.rows.len() {
287 return None;
288 }
289 // Find which selectable index this row corresponds to
290 self.selectable_row_indices
291 .iter()
292 .position(|&ri| ri == row_index)
293 }
294
295 pub fn handle_mouse_event(&mut self, mouse: &MouseEvent) -> Option<ProviderSelection> {
296 if !self.visible {

Callers 1

handle_mouse_eventMethod · 0.45

Calls 2

iterMethod · 0.80
lenMethod · 0.45

Tested by

no test coverage detected