Source Code (Use browser search to find items of interest.)

Class Index

kdelibs'KActionMenu (./kdelibs/kdeui/kaction.h:1177)

class KActionMenu : public KAction
{
  Q_OBJECT
public:
    KActionMenu( const QString& text, QObject* parent = 0,
                 const char* name = 0 );
    KActionMenu( const QString& text, const QIconSet& icon,
                 QObject* parent = 0, const char* name = 0 );
    KActionMenu( const QString& text, const QString& icon,
                 QObject* parent = 0, const char* name = 0 );
    KActionMenu( QObject* parent = 0, const char* name = 0 );
    virtual ~KActionMenu();

    virtual void insert( KAction*, int index = -1 );
    virtual void remove( KAction* );

    QPopupMenu* popupMenu();
    void popup( const QPoint& global );

    virtual int plug( QWidget* widget, int index = -1 );
    virtual void unplug( QWidget* widget );

protected:
    virtual void setEnabled( int id, bool b );

    virtual void setText( int id, const QString& text );

    virtual void setIconSet( int id, const QIconSet& iconSet );

private:
    class KActionMenuPrivate;
    KActionMenuPrivate *d;
};


kdelibs'KActionMenu::KActionMenu() (./kdelibs/kdeui/kaction.cpp:1914)

KActionMenu::KActionMenu( QObject* parent, const char* name )
  : KAction( parent, name )
{
  d = new KActionMenuPrivate;
}


kdelibs'KActionMenu::KActionMenu() (./kdelibs/kdeui/kaction.cpp:1920)

KActionMenu::KActionMenu( const QString& text, QObject* parent,
                          const char* name )
  : KAction( text, 0, parent, name )
{
  d = new KActionMenuPrivate;
}


kdelibs'KActionMenu::KActionMenu() (./kdelibs/kdeui/kaction.cpp:1927)

KActionMenu::KActionMenu( const QString& text, const QIconSet& icon,
                          QObject* parent, const char* name )
  : KAction( text, icon, 0, parent, name )
{
  d = new KActionMenuPrivate;
}


kdelibs'KActionMenu::KActionMenu() (./kdelibs/kdeui/kaction.cpp:1934)

KActionMenu::KActionMenu( const QString& text, const QString& icon,
                          QObject* parent, const char* name )
  : KAction( text, icon, 0, parent, name )
{
  d = new KActionMenuPrivate;
}


kdelibs'KActionMenu::~KActionMenu() (./kdelibs/kdeui/kaction.cpp:1941)

KActionMenu::~KActionMenu()
{
  delete d; d = 0;
}


kdelibs'KActionMenu::popup() (./kdelibs/kdeui/kaction.cpp:1946)

void KActionMenu::popup( const QPoint& global )
{
  popupMenu()->popup( global );
}


kdelibs'KActionMenu::popupMenu() (./kdelibs/kdeui/kaction.cpp:1951)

QPopupMenu* KActionMenu::popupMenu()
{
  return d->m_popup;
}


kdelibs'KActionMenu::insert() (./kdelibs/kdeui/kaction.cpp:1956)

void KActionMenu::insert( KAction* cmd, int index )
{
  if ( cmd )
    cmd->plug( d->m_popup, index );
}


kdelibs'KActionMenu::remove() (./kdelibs/kdeui/kaction.cpp:1962)

void KActionMenu::remove( KAction* cmd )
{
  if ( cmd )
    cmd->unplug( d->m_popup );
}



kdelibs'KActionMenu::plug() (./kdelibs/kdeui/kaction.cpp:1969)

int KActionMenu::plug( QWidget* widget, int index )
{
  if ( widget->inherits("QMenuBar") )
  {
    QMenuBar* bar = (QMenuBar*)widget;
    int id;
    id = bar->insertItem( text(), d->m_popup, -1, index );

    bar->setItemEnabled( id, isEnabled() );
	
    addContainer( bar, id );
    connect( bar, SIGNAL( destroyed() ), this, SLOT( slotDestroyed() ) );

    return containerCount() - 1;	
  }
  else if ( widget->inherits("QPopupMenu") )
  {
    QPopupMenu* menu = (QPopupMenu*)widget;
    int id;
    if ( !pixmap().isNull() )
      id = menu->insertItem( pixmap(), d->m_popup, -1, index );	
    else
    {
      if ( hasIconSet() )
        id = menu->insertItem( iconSet(), text(), d->m_popup, -1, index );
      else
        id = menu->insertItem( text(), d->m_popup, -1, index );
    }

    menu->setItemEnabled( id, isEnabled() );

    addContainer( menu, id );
    connect( menu, SIGNAL( destroyed() ), this, SLOT( slotDestroyed() ) );

    return containerCount() - 1;	
  }
  else if ( widget->inherits( "KToolBar" ) )
  {
    KToolBar *bar = (KToolBar *)widget;

    int id_ = KAction::getToolButtonID();
    bar->insertButton( iconSet().pixmap(), id_, SIGNAL( clicked() ), this,
                       SLOT( slotActivated() ), isEnabled(), plainText(),
                       index );

    addContainer( bar, id_ );

    connect( bar, SIGNAL( destroyed() ), this, SLOT( slotDestroyed() ) );

    bar->setDelayedPopup( id_, popupMenu() );

    return containerCount() - 1;
  }
  else if ( widget->inherits( "KMenuBar" ) )
  {
    KMenuBar *bar = (KMenuBar *)widget;

    int id;

    id = bar->insertItem( text(), popupMenu(), -1, index );
    bar->setItemEnabled( id, isEnabled() );

    addContainer( bar, id );
    connect( bar, SIGNAL( destroyed() ), this, SLOT( slotDestroyed() ) );

    return containerCount() - 1;
  }

  return -1;
}


kdelibs'KActionMenu::unplug() (./kdelibs/kdeui/kaction.cpp:2040)

void KActionMenu::unplug( QWidget* widget )
{
  if ( widget->inherits("QMenuBar") )
  {
    QMenuBar* bar = (QMenuBar*)widget;
    int i = findContainer( bar );
    if ( i != -1 )
    {
      bar->removeItem( menuId( i ) );
      removeContainer( i );
    }
  }
  if ( widget->inherits( "KToolBar" ) )
  {
    KToolBar *bar = (KToolBar *)widget;

    int idx = findContainer( bar );

    if ( idx != -1 )
    {
      bar->removeItem( menuId( idx ) );
      removeContainer( idx );
    }

    return;
  }
  else if ( widget->inherits( "KMenuBar" ) )
  {
    KMenuBar *bar = (KMenuBar *)widget;
    int i = findContainer( bar );
    if ( i != -1 )
    {
      bar->removeItem( menuId( i ) );
      removeContainer( i );
    }

    return;
  }
  else
    KAction::unplug( widget );
}


kdelibs'KActionMenu::setEnabled() (./kdelibs/kdeui/kaction.cpp:2082)

void KActionMenu::setEnabled( int id, bool b )
{
  QWidget *w = container( id );

  if ( w->inherits( "KToolBar" ) )
    ((KToolBar *)w)->setItemEnabled( menuId( id ), b );

  KAction::setEnabled( id, b );
}


kdelibs'KActionMenu::setText() (./kdelibs/kdeui/kaction.cpp:2092)

void KActionMenu::setText( int id, const QString& text )
{
  QWidget *w = container( id );

  if ( w->inherits( "KToolBar" ) )
  {
    QWidget *button = ((KToolBar *)w)->getWidget( menuId( id ) );
    if ( button->inherits( "KToolBarButton" ) )
     ((KToolBarButton *)button)->setText( text );
  }

  KAction::setText( id, text );
}



kdelibs'KActionMenu::setIconSet() (./kdelibs/kdeui/kaction.cpp:2107)

void KActionMenu::setIconSet( int id, const QIconSet& iconSet )
{
  QWidget *w = container( id );

  if ( w->inherits( "KToolBar" ) )
    ((KToolBar *)w)->setButtonPixmap( menuId( id ), iconSet.pixmap() );

  KAction::setIconSet( id, iconSet );
}