You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
bibletime/bibletime/frontend/keychooser/ckeychooser.h

118 lines
2.7 KiB

/*********
*
* This file is part of BibleTime's source code, http://www.bibletime.info/.
*
* Copyright 1999-2006 by the BibleTime developers.
* The BibleTime source code is licensed under the GNU General Public License version 2.0.
*
**********/
#ifndef CKEYCHOOSER_H
#define CKEYCHOOSER_H
#include <tqwidget.h>
#include "backend/cswordmoduleinfo.h"
class CSwordModuleInfo;
class CSwordKey;
/**
* The base class for the KeyChooser.
* Do not use directly, create a KeyChooser with
* @ref #createInstance , this will create the proper one
* of the classes that inherit from @ref CKeyChooser
*
* @author The BibleTime team
*/
class CKeyChooser : public TQWidget {
TQ_OBJECT
public:
/**
* Creates a proper Instance, either
*
@ref CLexiconKeyChooser or
* @ref CBibleKeyChooser
* @param info the @ref CModuleInfo to be represented by the KeyChooser
* @param key if not NULL, the @ref CKey the KeyChooser should be set to
* @param parent the parent of the widget to create
*/
static CKeyChooser* createInstance(ListCSwordModuleInfo modules, CSwordKey *key, TQWidget *parent);
const TQStringList getPreviousKeys() const;
const TQStringList getNextKeys() const;
public slots:
/**
* sets the @ref CKey
* @param key the key which the widget should be set to
*/
virtual void setKey(CSwordKey* key) = 0;
/**
* sets the @ref CKey
* @param key the key which the widget should be set to
*/
virtual void updateKey(CSwordKey* key) = 0;
/**
* gets the current @ref CKey
*
* @return the current @ref CKey
*/
#ifndef Q_MOC_RUN
virtual CSwordKey* const key() = 0;
#endif // Q_MOC_RUN
/**
* Sets the module of this keychooser and refreshes the comboboxes
*/
virtual void setModules( const ListCSwordModuleInfo& modules, const bool refresh = true ) = 0;
/**
* Freshes the content of the different key chooser parts.
*/
virtual void refreshContent() = 0;
void addToHistory(CSwordKey*);
void backInHistory();
void backInHistory(int);
void forwardInHistory();
void forwardInHistory(int);
signals:
/**
* is emitted if the @ref CKey was changed by the user
*/
void keyChanged(CSwordKey* key);
/**
* Is emitted before the key is changed!
*/
void beforeKeyChange(const TQString& key);
void historyChanged();
protected:
/**
* the constructor - DO NOT USE! -- use @ref #createInstance instead!
*/
CKeyChooser(ListCSwordModuleInfo info, CSwordKey *key=0, TQWidget *parent=0, const char *name=0);
virtual ~CKeyChooser();
/**
* Set the appropriate font do display the modules
*/
virtual void adjustFont() = 0;
private:
TQStringList m_prevKeyHistoryList;
TQStringList m_nextKeyHistoryList;
int m_currentKeyHistoryPos;
bool m_inHistoryFunction;
protected:
virtual void polish();
};
#endif