void ClassDiagramView::displayDrawContextMenu(guint button, guint32 acttime, gpointer data) { GdkEventButton *event = static_cast<GdkEventButton*>(data); ClassNode *node = getNode(static_cast<int>(event->x), static_cast<int>(event->y)); OovStringRef const nodeMenus[] = { "GotoClassMenuitem", "ClassPreferencesMenuitem", "AddSelectedMenuitem", "AddStandardMenuitem", "AddAllMenuitem", "AddSuperclassesMenuitem", "AddSubclassesMenuitem", "AddMembersUsingMenuitem", "AddMemberUsersMenuitem", "AddTemplateMenuItem", "AddFuncParamsUsingMenuitem", "AddFuncParamUsersMenuitem", "AddFuncBodyVarUsingMenuitem", "AddFuncBodyVarUsersMenuitem", "RemoveClassMenuitem", "ViewSourceMenuitem" }; Builder *builder = Builder::getBuilder(); for(size_t i=0; i<sizeof(nodeMenus)/sizeof(nodeMenus[i]); i++) { gtk_widget_set_sensitive(builder->getWidget( nodeMenus[i]), node != nullptr); } GtkMenu *menu = builder->getMenu("DrawClassPopupMenu"); gtk_menu_popup(menu, nullptr, nullptr, nullptr, nullptr, button, acttime); gStartPosInfo.set(static_cast<int>(event->x), static_cast<int>(event->y)); }
static void displayContextMenu(guint button, guint32 acttime, gpointer data) { GdkEventButton *event = static_cast<GdkEventButton*>(data); const OperationClass *node = gOperationDiagramView->getDiagram().getNode( static_cast<int>(event->x), static_cast<int>(event->y)); const OperationCall *opcall = gOperationDiagramView->getDiagram().getOperation( gStartPosInfo.x, gStartPosInfo.y); OovStringRef const nodeitems[] = { "OperGotoClassMenuitem", "RemoveOperClassMenuitem", }; Builder *builder = Builder::getBuilder(); for(size_t i=0; i<sizeof(nodeitems)/sizeof(nodeitems[i]); i++) { gtk_widget_set_sensitive(builder->getWidget(nodeitems[i]), node != nullptr); } OovStringRef const operitems[] = { "OperGotoOperationMenuitem", "AddCallsMenuitem", "AddCallersMenuitem", "RemoveCallsMenuitem" }; for(size_t i=0; i<sizeof(operitems)/sizeof(operitems[i]); i++) { gtk_widget_set_sensitive(builder->getWidget(operitems[i]), opcall != nullptr); } gtk_widget_set_sensitive(builder->getWidget("ViewOperSourceMenuitem"), opcall != nullptr || node != nullptr); GtkMenu *menu = builder->getMenu("DrawOperationPopupMenu"); gtk_menu_popup(menu, nullptr, nullptr, nullptr, nullptr, button, acttime); gStartPosInfo.set(static_cast<int>(event->x), static_cast<int>(event->y)); }
void ZoneDiagramView::graphButtonPressEvent(const GdkEventButton *event) { sZoneDiagramView = this; sStartPosInfo.set(event->x, event->y); }
void OperationDiagramView::graphButtonPressEvent(const GdkEventButton *event) { gOperationDiagramView = this; gStartPosInfo.set(static_cast<int>(event->x), static_cast<int>(event->y)); }
void ComponentDiagramView::buttonPressEvent(const GdkEventButton *event) { gComponentDiagramView = this; gStartPosInfo.set(static_cast<int>(event->x), static_cast<int>(event->y)); }
void IncludeDiagramView::graphButtonPressEvent(const GdkEventButton *event) { sStartPosInfo.set(event->x, event->y); sIncludeDiagramView = this; }