23 _thread_index(thread_index)
25 _menu = CreatePopupMenu();
33 ~WinStatsChartMenu() {
50 std::string thread_name;
51 if (_thread_index == 0) {
53 thread_name =
"Graphs";
59 memset(&mii, 0,
sizeof(mii));
60 mii.cbSize =
sizeof(mii);
62 mii.fMask = MIIM_STRING | MIIM_FTYPE | MIIM_SUBMENU;
63 mii.fType = MFT_STRING;
65 mii.dwTypeData = (
char *)thread_name.c_str();
66 InsertMenuItem(menu_bar, before_menu_id, FALSE, &mii);
90 int num_items = GetMenuItemCount(_menu);
91 for (
int i = num_items - 1; i >= 0; i--) {
92 DeleteMenu(_menu, i, MF_BYPOSITION);
100 bool needs_separator =
true;
102 memset(&mii, 0,
sizeof(mii));
103 mii.cbSize =
sizeof(mii);
108 for (
int tc = 0; tc < num_toplevel_collectors; tc++) {
115 if (needs_separator) {
116 mii.fMask = MIIM_FTYPE;
117 mii.fType = MFT_SEPARATOR;
118 InsertMenuItem(_menu, GetMenuItemCount(_menu), TRUE, &mii);
120 needs_separator =
false;
129 mii.fMask = MIIM_FTYPE;
130 mii.fType = MFT_SEPARATOR;
131 InsertMenuItem(_menu, GetMenuItemCount(_menu), TRUE, &mii);
136 mii.fMask = MIIM_STRING | MIIM_FTYPE | MIIM_ID;
137 mii.fType = MFT_STRING;
139 mii.dwTypeData =
"Piano Roll";
140 InsertMenuItem(_menu, GetMenuItemCount(_menu), TRUE, &mii);
147 void WinStatsChartMenu::
148 add_view(HMENU parent_menu,
const PStatViewLevel *view_level,
bool show_level) {
158 memset(&mii, 0,
sizeof(mii));
159 mii.cbSize =
sizeof(mii);
161 mii.fMask = MIIM_STRING | MIIM_FTYPE | MIIM_ID;
162 mii.fType = MFT_STRING;
164 mii.dwTypeData = (
char *)collector_name.c_str();
165 InsertMenuItem(parent_menu, GetMenuItemCount(parent_menu), TRUE, &mii);
168 if (num_children > 1) {
171 HMENU submenu = CreatePopupMenu();
172 std::string submenu_name = collector_name +
" components";
174 mii.fMask = MIIM_STRING | MIIM_FTYPE | MIIM_SUBMENU;
175 mii.fType = MFT_STRING;
176 mii.hSubMenu = submenu;
177 mii.dwTypeData = (
char *)submenu_name.c_str();
178 InsertMenuItem(parent_menu, GetMenuItemCount(parent_menu), TRUE, &mii);
183 for (
int c = num_children - 1; c >= 0; c--) {
184 add_view(submenu, view_level->
get_child(c), show_level);