(
ui: &mut egui::Ui,
obj: &Object,
ins_diff: &InstructionDiffRow,
symbol_idx: usize,
appearance: &Appearance,
ins_view_state: &FunctionViewState,
diff_config: &DiffObjConfi
| 215 | |
| 216 | #[must_use] |
| 217 | fn asm_row_ui( |
| 218 | ui: &mut egui::Ui, |
| 219 | obj: &Object, |
| 220 | ins_diff: &InstructionDiffRow, |
| 221 | symbol_idx: usize, |
| 222 | appearance: &Appearance, |
| 223 | ins_view_state: &FunctionViewState, |
| 224 | diff_config: &DiffObjConfig, |
| 225 | column: usize, |
| 226 | response_cb: impl Fn(Response) -> Response, |
| 227 | ) -> Option<DiffViewAction> { |
| 228 | let mut ret = None; |
| 229 | ui.spacing_mut().item_spacing.x = 0.0; |
| 230 | ui.style_mut().wrap_mode = Some(egui::TextWrapMode::Extend); |
| 231 | if ins_diff.kind != InstructionDiffKind::None { |
| 232 | ui.painter().rect_filled(ui.available_rect_before_wrap(), 0.0, ui.visuals().faint_bg_color); |
| 233 | } |
| 234 | let space_width = ui.fonts_mut(|f| f.glyph_width(&appearance.code_font, ' ')); |
| 235 | display_row(obj, symbol_idx, ins_diff, diff_config, |segment| { |
| 236 | if let Some(action) = |
| 237 | diff_text_ui(ui, segment, appearance, ins_view_state, column, space_width, &response_cb) |
| 238 | { |
| 239 | ret = Some(action); |
| 240 | } |
| 241 | Ok(()) |
| 242 | }) |
| 243 | .unwrap(); |
| 244 | ret |
| 245 | } |
| 246 | |
| 247 | #[must_use] |
| 248 | pub(crate) fn asm_col_ui( |
no test coverage detected