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

Class Index

kicker'DockAreaApplet (./kdebase/kicker/internalapplets/dock/dockapplet.h:21)

class DockAreaApplet : public InternalApplet
{
    Q_OBJECT
public:

    DockAreaApplet( QWidget* parent, const char* name = 0 );
    ~DockAreaApplet();

    int widthForHeight(int h);
    int heightForWidth(int w);

protected:
    void resizeEvent( QResizeEvent* );
    void paintEvent( QPaintEvent* );

private slots:
    void dockWindowAdd( WId );
    void updateDockWindows();
    void layoutDockingArea();

private:

    QList<KXEmbed> m_Docks;
};

kicker'DockAreaApplet::DockAreaApplet() (./kdebase/kicker/internalapplets/dock/dockapplet.cpp:41)

DockAreaApplet::DockAreaApplet( QWidget* parent, const char* name )
    : InternalApplet( parent, name )
{
    connect( kwin_module, SIGNAL( dockWindowAdd(WId) ), this, SLOT( dockWindowAdd(WId) ) );
    connect( kwin_module, SIGNAL( dockWindowRemove(WId) ), this, SLOT( updateDockWindows() ) );

    m_Docks.setAutoDelete(true);
}


kicker'DockAreaApplet::~DockAreaApplet() (./kdebase/kicker/internalapplets/dock/dockapplet.cpp:50)

DockAreaApplet::~DockAreaApplet()
{
    m_Docks.clear();
}


kicker'DockAreaApplet::paintEvent() (./kdebase/kicker/internalapplets/dock/dockapplet.cpp:55)

void DockAreaApplet::paintEvent( QPaintEvent* )
{
    QPainter p( this );
    style().drawPanel( &p, 0, 0, width(), height(), colorGroup(), TRUE );
}


kicker'DockAreaApplet::widthForHeight() (./kdebase/kicker/internalapplets/dock/dockapplet.cpp:61)

int DockAreaApplet::widthForHeight(int)
{
  if (m_Docks.count() < 1)
    return 32;
  else
    return m_Docks.count()*24 + 8;
}


kicker'DockAreaApplet::heightForWidth() (./kdebase/kicker/internalapplets/dock/dockapplet.cpp:69)

int DockAreaApplet::heightForWidth(int)
{
  if (m_Docks.count() < 1)
    return 32;
  else
    return m_Docks.count()*24 + 8;
}


kicker'DockAreaApplet::resizeEvent() (./kdebase/kicker/internalapplets/dock/dockapplet.cpp:77)

void DockAreaApplet::resizeEvent( QResizeEvent* )
{
    layoutDockingArea();
}


kicker'DockAreaApplet::dockWindowAdd() (./kdebase/kicker/internalapplets/dock/dockapplet.cpp:82)

void DockAreaApplet::dockWindowAdd( WId w )
{
    KXEmbed *emb = new KXEmbed(this);
    connect(emb, SIGNAL(embeddedWindowDestroyed()), SLOT(updateDockWindows()));
    m_Docks.append(emb);

    emb->embed(w);
    emb->resize(24, 24);
    emb->show();

    layoutDockingArea();
}


kicker'DockAreaApplet::updateDockWindows() (./kdebase/kicker/internalapplets/dock/dockapplet.cpp:95)

void DockAreaApplet::updateDockWindows()
{
    KXEmbed *emb = m_Docks.first();
    while ((emb = m_Docks.current()) != 0L) {
	WId wid = emb->embeddedWinId();
	if ((wid == 0) || !kwin_module->dockWindows().contains(wid))
	    m_Docks.remove(emb);
	else
	    m_Docks.next();
    }
    layoutDockingArea();
}
	

kicker'DockAreaApplet::layoutDockingArea() (./kdebase/kicker/internalapplets/dock/dockapplet.cpp:108)

void DockAreaApplet::layoutDockingArea()
{
    if (m_Docks.count() == 0) {
        setMinimumSize(0, 0);
        hide();
	return;
    }
    int i;

    KXEmbed *emb;
    if (orientation() == Vertical) {
      i = 0;
      for (emb = m_Docks.first(); emb != 0L; emb = m_Docks.next()) {
        emb->move(width()/2-12, 2 + i*24);
        i++;
      }
    }
    else {
      i = 0;
      for (emb = m_Docks.first(); emb != 0L; emb = m_Docks.next()) {
        emb->move(2 + i*24, height()/2-12);
        i++;
      }
    }
    updateGeometry();
    show();
}