| 801 | } |
| 802 | |
| 803 | void ChildFrame::RedrawCxList(const std::vector<std::unique_ptr<mdf::detail::MdfBlock>>& cx_list, |
| 804 | const wxTreeItemId &root) { |
| 805 | if (cx_list.empty()) { |
| 806 | return; |
| 807 | } |
| 808 | |
| 809 | for (const auto& cx4 : cx_list) { |
| 810 | if (!cx4) { |
| 811 | continue; |
| 812 | } |
| 813 | if (cx4->BlockType() == "CA") { |
| 814 | const auto* ca_block = dynamic_cast<const detail::Ca4Block*>(cx4.get()); |
| 815 | if (ca_block == nullptr) { |
| 816 | continue; |
| 817 | } |
| 818 | RedrawCaBlock(*ca_block, root); |
| 819 | } else if (cx4->BlockType() == "CN") { |
| 820 | const auto* cn_block = dynamic_cast<const detail::Cn4Block*>(cx4.get()); |
| 821 | if (cn_block == nullptr) { |
| 822 | continue; |
| 823 | } |
| 824 | RedrawCnBlock(*cn_block, root); |
| 825 | } |
| 826 | } |
| 827 | } |
| 828 | |
| 829 | void ChildFrame::RedrawCcBlock(const detail::Cc3Block &cc3, const wxTreeItemId &root) { |
| 830 | std::ostringstream sub_string; |