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

Class Index

kdelibs'KDockWidgetHeader (./kdelibs/kdeui/kdockwidget.h:181)

class KDockWidgetHeader : public KDockWidgetAbstractHeader
{
  Q_OBJECT
public:

  /** 
   * Constructs this.
   * 
   * @param parent the parent widget (usually a dockwidget)
   * @param name   the object instance name
   */
  KDockWidgetHeader( KDockWidget* parent, const char* name = 0L );

  /**
   * Destructs this.
   */
  virtual ~KDockWidgetHeader(){};

  /**
   * Hides the close button and stay button when switching to toplevel or vice versa shows them.
   *
   * @param t toplevel or not
   */
  virtual void setTopLevel( bool t);

  /**
   * Saves the current button state to a KDE config container object.
   *
   * @param c the configuration safe
   */
  virtual void saveConfig( KConfig* c);

  /**
   * Loads the current button state from a KDE config container object.
   *
   * @param c the configuration safe
   */
  virtual void loadConfig( KConfig* );

protected slots:
  /**
   * Set dragging the dockwidget off when the stay button is pressed down and vice versa.
   */
  void slotStayClicked();

protected:

  /** A layout manager for placing the embedded buttons (close and stay) */
  QHBoxLayout* layout;
  
  /** a little button for closing (undocking and hiding) the dockwidget */
  KDockButton_Private* closeButton;
  
  /** a little button for enabling/disabling dragging the dockwidget with the mouse */
  KDockButton_Private* stayButton;
  
  /** the drag panel (double line) */
  KDockWidgetHeaderDrag* drag;
};

/**
 * It just hides the special implementation of a dockwidget tab groups (and is member of the dockwidget class set). 
 * An abstraction what it is currently.
 * In general it is like @ref QTabWidget but is more useful for the dockwidget class set.  
 * More or less a minor helper class for the dockwidget class set.
 *
 * @author Max Judin (documentation: Falk Brettschneider).
 * @version $Id: kdockwidget.h,v 1.9 2000/04/11 22:22:25 falkbr Exp $
 */

kdelibs'KDockWidgetHeader::KDockWidgetHeader() (./kdelibs/kdeui/kdockwidget.cpp:536)

KDockWidgetHeader::KDockWidgetHeader( KDockWidget* parent, const char* name )
:KDockWidgetAbstractHeader( parent, name )
{
  layout = new QHBoxLayout( this );
  layout->setResizeMode( QLayout::Minimum );

  drag = new KDockWidgetHeaderDrag( this, parent );

  closeButton = new KDockButton_Private( this, "DockCloseButton" );
  closeButton->setPixmap(close_xpm);
  closeButton->setFixedSize(9,9);
  connect( closeButton, SIGNAL(clicked()), parent, SLOT(undock()));

  stayButton = new KDockButton_Private( this, "DockStayButton" );
  stayButton->setToggleButton( true );
  stayButton->setPixmap(not_close_xpm);
  stayButton->setFixedSize(9,9);
  connect( stayButton, SIGNAL(clicked()), this, SLOT(slotStayClicked()));

  layout->addWidget( drag );
  layout->addWidget( stayButton );
  layout->addWidget( closeButton );
  layout->activate();
  drag->setFixedHeight( layout->minimumSize().height() );
}


kdelibs'KDockWidgetHeader::setTopLevel() (./kdelibs/kdeui/kdockwidget.cpp:562)

void KDockWidgetHeader::setTopLevel( bool isTopLevel )
{
  if ( isTopLevel ){
    stayButton->hide();
    closeButton->hide();
    drag->setEnabled( true );
  } else {
    stayButton->show();
    closeButton->show();
  }
  layout->activate();
  updateGeometry();
}


kdelibs'KDockWidgetHeader::slotStayClicked() (./kdelibs/kdeui/kdockwidget.cpp:576)

void KDockWidgetHeader::slotStayClicked()
{
  closeButton->setEnabled( !stayButton->isOn() );
  drag->setEnabled( !stayButton->isOn() );
}


kdelibs'KDockWidgetHeader::saveConfig() (./kdelibs/kdeui/kdockwidget.cpp:582)

void KDockWidgetHeader::saveConfig( KConfig* c )
{
  c->writeEntry( QString("%1%2").arg(parent()->name()).arg(":stayButton"), stayButton->isOn() );
}


kdelibs'KDockWidgetHeader::loadConfig() (./kdelibs/kdeui/kdockwidget.cpp:587)

void KDockWidgetHeader::loadConfig( KConfig* c )
{
  stayButton->setOn( c->readBoolEntry( QString("%1%2").arg(parent()->name()).arg(":stayButton"), false ) );
  slotStayClicked();
}
/*************************************************************************/