/*! Returns \c true if this tool button is a split button. */ bool QAccessibleToolButton::isSplitButton() const { #ifndef QT_NO_MENU return toolButton()->menu() && toolButton()->popupMode() == QToolButton::MenuButtonPopup; #else return false; #endif }
QAccessibleInterface *QAccessibleToolButton::child(int index) const { #ifndef QT_NO_MENU if (index == 0 && toolButton()->menu()) { return QAccessible::queryAccessibleInterface(toolButton()->menu()); } #endif return 0; }
/* The three different tool button types can have the following actions: | DelayedPopup | ShowMenuAction + (PressedAction || CheckedAction) | | MenuButtonPopup | ShowMenuAction + (PressedAction || CheckedAction) | | InstantPopup | ShowMenuAction | */ QStringList QAccessibleToolButton::actionNames() const { QStringList names; if (widget()->isEnabled()) { if (toolButton()->menu()) names << showMenuAction(); if (toolButton()->popupMode() != QToolButton::InstantPopup) names << QAccessibleButton::actionNames(); } return names; }
QAccessible::State QAccessibleToolButton::state() const { QAccessible::State st = QAccessibleButton::state(); if (toolButton()->autoRaise()) st.hotTracked = true; #ifndef QT_NO_MENU if (toolButton()->menu()) st.hasPopup = true; #endif return st; }
/*! \internal Returns the button's text label, depending on the text \a t, and the \a child. */ QString QAccessibleToolButton::text(QAccessible::Text t) const { QString str; switch (t) { case QAccessible::Name: str = toolButton()->accessibleName(); if (str.isEmpty()) str = toolButton()->text(); break; default: break; } if (str.isEmpty()) str = QAccessibleButton::text(t); return qt_accStripAmp(str); }
void QAccessibleToolButton::doAction(const QString &actionName) { if (!widget()->isEnabled()) return; if (actionName == pressAction()) { button()->click(); } else if (actionName == showMenuAction()) { if (toolButton()->popupMode() != QToolButton::InstantPopup) { toolButton()->setDown(true); #ifndef QT_NO_MENU toolButton()->showMenu(); #endif } } else { QAccessibleButton::doAction(actionName); } }
void QmitkToolSelectionBox::SetOrUnsetButtonForActiveTool() { // we want to emit a signal in any case, whether we selected ourselves or somebody else changes "our" tool manager. --> emit before check on m_SelfCall int id = m_ToolManager->GetActiveToolID(); // don't emit signal for shape model tools bool emitSignal = true; mitk::Tool* tool = m_ToolManager->GetActiveTool(); if(tool && std::string(tool->GetGroup()) == "organ_segmentation") emitSignal = false; if(emitSignal) emit ToolSelected(id); // delete old GUI (if any) if ( m_LastToolGUI && m_ToolGUIWidget ) { if (m_ToolGUIWidget->layout()) { m_ToolGUIWidget->layout()->removeWidget(m_LastToolGUI); } //m_LastToolGUI->reparent(NULL, QPoint(0,0)); // TODO: reparent <-> setParent, Daniel fragen m_LastToolGUI->setParent(0); delete m_LastToolGUI; // will hopefully notify parent and layouts m_LastToolGUI = NULL; QLayout* layout = m_ToolGUIWidget->layout(); if (layout) { layout->activate(); } } QToolButton* toolButton(NULL); //mitk::Tool* tool = m_ToolManager->GetActiveTool(); if (m_ButtonIDForToolID.find(id) != m_ButtonIDForToolID.end()) // if this tool is in our box { //toolButton = dynamic_cast<QToolButton*>( Q3ButtonGroup::find( m_ButtonIDForToolID[id] ) ); toolButton = dynamic_cast<QToolButton*>( m_ToolButtonGroup->buttons().at( m_ButtonIDForToolID[id] ) ); } if ( toolButton ) { // mmueller // uncheck all other buttons QAbstractButton* tmpBtn = 0; QList<QAbstractButton*>::iterator it; for(int i=0; i < m_ToolButtonGroup->buttons().size(); ++i) { tmpBtn = m_ToolButtonGroup->buttons().at(i); if(tmpBtn != toolButton) dynamic_cast<QToolButton*>( tmpBtn )->setChecked(false); } toolButton->setChecked(true); if (m_ToolGUIWidget && tool) { // create and reparent new GUI (if any) itk::Object::Pointer possibleGUI = tool->GetGUI("Qmitk", "GUI").GetPointer(); // prefix and postfix QmitkToolGUI* gui = dynamic_cast<QmitkToolGUI*>( possibleGUI.GetPointer() ); //! m_LastToolGUI = gui; if (gui) { gui->SetTool( tool ); // mmueller //gui->reparent(m_ToolGUIWidget, gui->geometry().topLeft(), true ); gui->setParent(m_ToolGUIWidget); gui->move(gui->geometry().topLeft()); gui->show(); QLayout* layout = m_ToolGUIWidget->layout(); if (!layout) { layout = new QVBoxLayout( m_ToolGUIWidget ); } if (layout) { // mmueller layout->addWidget( gui ); //layout->add( gui ); layout->activate(); } } } } else { // disable all buttons QToolButton* selectedToolButton = dynamic_cast<QToolButton*>( m_ToolButtonGroup->checkedButton() ); //QToolButton* selectedToolButton = dynamic_cast<QToolButton*>( Q3ButtonGroup::find( Q3ButtonGroup::selectedId() ) ); if (selectedToolButton) { // mmueller selectedToolButton->setChecked(false); //selectedToolButton->setOn(false); } } }
/*! Creates a QAccessibleToolButton object for \a w. */ QAccessibleToolButton::QAccessibleToolButton(QWidget *w) : QAccessibleButton(w) { Q_ASSERT(toolButton()); }
/*! Creates a QAccessibleToolButton object for \a w. \a role is propagated to the QAccessibleWidget constructor. */ QAccessibleToolButton::QAccessibleToolButton(QWidget *w, QAccessible::Role role) : QAccessibleButton(w, role) { Q_ASSERT(toolButton()); }