#include "MyListView.h" #include #include #include #include "TrackList.h" #include "main_window.h" MyListView::MyListView(BRect frame, const char *name, list_view_type type, uint32 resizingMode, uint32 flags): BListView(frame, name, type, resizingMode, flags) { status_t err; BMenuItem *tmpI; BMenu *tmpM; PopUp = new BPopUpMenu("", false, false); //tmpM = new BMenu("Utilities"); tmpI = new BMenuItem("Transpose", new BMessage(MENU_TRANSPOSE_TRACK), 0); //tmpM->AddItem(tmpI); //PopUp->AddItem(tmpM); PopUp->AddItem(tmpI); tmpI = new BMenuItem("Delete Track", new BMessage(MENU_DELETE_TRACK), 0); PopUp->AddItem(tmpI); } MyListView::~MyListView() { if (PopUp) delete PopUp; } void MyListView::AttachedToWindow(void) { if (PopUp) PopUp->SetTargetForItems((BHandler *)Window()); BListView::AttachedToWindow(); } #if 0 void MyListView::MessageReceived(BMessage *msg) { switch (msg->what) { case MENU_DELETE: msg->PrintToStream(); break; default: BListView::MessageReceived(msg); } } #endif void MyListView::MouseDown(BPoint where) { BPoint loc2; uint32 buttons; int32 index; GetMouse(&loc2, &buttons); index = IndexOf(loc2); ConvertToScreen(&loc2); if ( (buttons & B_SECONDARY_MOUSE_BUTTON) && (index >= 0)) { Select(index); PopUp->Go(loc2, TRUE, FALSE, TRUE); } else BListView::MouseDown(where); }