MCPcopy Index your code
hub / github.com/encounter/objdiff / demangle_window

Function demangle_window

objdiff-gui/src/views/demangle.rs:12–50  ·  view source on GitHub ↗
(
    ctx: &egui::Context,
    show: &mut bool,
    state: &mut DemangleViewState,
    appearance: &Appearance,
)

Source from the content-addressed store, hash-verified

10}
11
12pub fn demangle_window(
13 ctx: &egui::Context,
14 show: &mut bool,
15 state: &mut DemangleViewState,
16 appearance: &Appearance,
17) {
18 egui::Window::new("Demangle").open(show).show(ctx, |ui| {
19 egui::ComboBox::from_label("Demangler")
20 .selected_text(state.demangler.name().to_string())
21 .show_ui(ui, |ui| {
22 for demangler in Demangler::variants() {
23 if *demangler != Demangler::None {
24 let response =
25 ui.selectable_value(&mut state.demangler, *demangler, demangler.name());
26 if let Some(description) = demangler.description() {
27 response.on_hover_text(description);
28 }
29 }
30 }
31 });
32 ui.separator();
33 ui.text_edit_singleline(&mut state.text);
34 ui.add_space(10.0);
35 if let Some(demangled) = state.demangler.demangle(&state.text) {
36 ui.scope(|ui| {
37 ui.style_mut().override_text_style = Some(TextStyle::Monospace);
38 ui.colored_label(appearance.replace_color, &demangled);
39 });
40 if ui.button("Copy").clicked() {
41 ctx.copy_text(demangled);
42 }
43 } else {
44 ui.scope(|ui| {
45 ui.style_mut().override_text_style = Some(TextStyle::Monospace);
46 ui.colored_label(appearance.replace_color, "[invalid]");
47 });
48 }
49 });
50}

Callers 1

updateMethod · 0.85

Calls 3

nameMethod · 0.80
demangleMethod · 0.80
separatorMethod · 0.45

Tested by

no test coverage detected