MCPcopy Create free account
hub / github.com/HO-COOH/FastCopy / makeMenuFlyout

Method makeMenuFlyout

FastCopy/FileContextMenu.cpp:54–79  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

52}
53
54winrt::Microsoft::UI::Xaml::Controls::MenuFlyoutItem FileContextMenu::makeMenuFlyout(MENUITEMINFO const& menuItemInfo)
55{
56 winrt::Microsoft::UI::Xaml::Controls::MenuFlyoutItem item;
57 item.Text(menuItemInfo.dwTypeData);
58
59 item.Click([thisPtr = shared_from_this()](auto self, ...) {
60 int const id = winrt::unbox_value<decltype(m_menuData.size())>(self.as<winrt::Microsoft::UI::Xaml::Controls::MenuFlyoutItem>().Tag());
61 auto const& data = thisPtr->m_menuData[id];
62 CMINVOKECOMMANDINFOEX invokeInfo
63 {
64 .cbSize = sizeof(invokeInfo),
65 .lpVerb = reinterpret_cast<decltype(invokeInfo.lpVerb)>(MAKEINTRESOURCEW(data.menuId)),
66 .nShow = SW_SHOWNORMAL,
67 };
68 thisPtr->m_menu->InvokeCommand(reinterpret_cast<CMINVOKECOMMANDINFO*>(&invokeInfo));
69 });
70
71 if (auto source = getIconFromWin32Menu(menuItemInfo.hbmpItem))
72 {
73 winrt::Microsoft::UI::Xaml::Controls::ImageIcon icon;
74 icon.Source(source);
75 item.Icon(icon);
76 }
77 item.Tag(winrt::box_value(m_menuData.size()));
78 return item;
79}
80
81void FileContextMenu::ShowAt(winrt::Microsoft::UI::Xaml::Controls::MenuFlyout& flyout)
82{

Callers

nothing calls this directly

Calls 2

sizeMethod · 0.80
SourceMethod · 0.80

Tested by

no test coverage detected