Kode for header-filen

Givet disse begrænsninger vil vi nu se at header-filen theme2k.h ser sådan her ud:

Eksempel 5.1. Visning af theme2k.h

#ifndef __THEME2K_H__
#define __THEME2K_H__

#include <qlabel.h>
#include <qwidget.h>

#include <kdialogbase.h>
#include <kpixmap.h>
#include <ksplash/themeengine.h>

class RotWidget;

class Cfg2k: public ThemeEngineConfig
{
  Q_OBJECT
public:
  Cfg2k( KConfig * );
};

class ObjKsTheme;
class Theme2k: public ThemeEngine
{
  Q_OBJECT
public:
  Theme2k( QWidget *, const char *, const QStringList& );

  inline const QString name()
  {
    return( QString("KSplash2k") );
  }
  inline const KDialogBase *config( KConfig *kc )
  {
    return new Cfg2k( kc );
  }
  static QStringList names()
  {
    QStringList Names;
    Names << "KSplash2k";
    Names << "ks2k";
    Names << "2k";
    Names << "2000";
    return( Names );
  };

public slots:
  inline void slotSetText( const QString& s )
  {
    if( mText && mText->text() != s ) mText->setText( s );
  };

private:
  void initUi();
  void readSettings();

  QLabel *mText;
  RotWidget *mRotator;
  QColor mTBgColor, mTFgColor, mRotColor1, mRotColor2, mStatusColor;
  int mRotSpeed;
  QString mWndTitle, mLogoFile;
};

#endif

Lad os analysere ovenstående. Theme2k-klassen tilfredsstiller navnekonventionerne, og er arvet fra ThemeEngine. Den sørger for en Theme2k::names(), og har en konstruktør der tager de krævede parametre: Theme2k( QWidget *, const char *, const QStringList& ); og sørger også for en simpel Theme2k::slotSetText() metode. Indtil videre bekymrer vi os ikke om RotWidget-klassen. Det er en lille kontrol der sørger for nogle øjenlækkerier for brugeren. Vores plugin er meget simpelt og viser ikke nogen ikoner og har ingen fremgangslinje. Hvis du gerne vil vise ikoner, så sæt slotSetPixmap-funktionen ud af kraft. Lignende funktioner eksisterer til at sætte fremgangslinjens område (slotUpdateSteps) og til at forøge (slotUpdateProgress) det nuværende skridt.