/* ------------------------------------------------------------- options.h (part of The KDE Dictionary Client) Copyright (C) 2000-2001 Christian Gebauer <gebauer@kde.org> This file is distributed under the Artistic License. See LICENSE for details. ------------------------------------------------------------- GlobalData manages all global data of Kdict DialgoListBox a list box which ignores Enter, usefull for dialogs OptionsDialog the "Preferences" dialog ------------------------------------------------------------- */ #ifndef _KDICT_OPTIONS_H_ #define _KDICT_OPTIONS_H_ #include <tqlistbox.h> #include <kdialogbase.h> #include <kglobalsettings.h> class TQLineEdit; class TQCheckBox; class TQComboBox; class TQRadioButton; class KColorButton; class KLineEdit; class KIntSpinBox; //********* GlobalData ****************************************** #define COL_CNT 6 #define FNT_CNT 2 class GlobalData { public: enum ColorIndex { Ctext=0, Cbackground=1, CheadingsText=2, CheadingsBackground=3, Clinks=4, CvisitedLinks=5 }; enum FontIndex { Ftext=0, Fheadings=1 }; void read(); void write(); // colors... const TQColor& color(int i) { return c_olors[i]; } const TQString& colorName(int i) { return c_olorNames[i]; } int colorCount() const { return COL_CNT; } TQColor defaultColor(int i); bool useCustomColors; TQColor textColor(); TQColor backgroundColor(); TQColor headingsTextColor(); TQColor headingsBackgroundColor(); TQColor linksColor(); TQColor visitedLinksColor(); // fonts... const TQFont& font(int i) { return f_onts[i]; } const TQString& fontName(int i) { return f_ontNames[i]; } int fontCount() const { return FNT_CNT; } TQFont defaultFont(int); bool useCustomFonts; TQFont textFont(); TQFont headingsFont(); TQString encryptStr(const TQString& aStr); bool defineClipboard; // define clipboard content on startup? TQSize optSize,setsSize,matchSize; // window geometry bool showMatchList; TQValueList<int> splitterSizes; KGlobalSettings::Completion queryComboCompletionMode; TQStringList queryHistory; bool saveHistory; // save query history to disk on exit? unsigned int maxHistEntrys, maxBrowseListEntrys, maxDefinitions; int headLayout; TQString server; // network client... int port,timeout,pipeSize,idleHold; TQString encoding; bool authEnabled; TQString user, secret; TQStringList serverDatabases, databases, strategies; TQPtrList<TQStringList> databaseSets; unsigned int currentDatabase, currentStrategy; TQColor c_olors[COL_CNT]; TQString c_olorNames[COL_CNT]; TQFont f_onts[FNT_CNT]; TQString f_ontNames[FNT_CNT]; TQWidget *topLevel; }; extern GlobalData *global; //********* OptionsDialog ****************************************** class OptionsDialog : public KDialogBase { Q_OBJECT public: OptionsDialog(TQWidget *parent=0, const char *name=0); ~OptionsDialog(); //=================================================================================== class DialogListBox : public TQListBox { public: // alwaysIgnore==false: enter is ignored when the widget isn't visible/out of focus DialogListBox(bool alwaysIgnore=false, TQWidget * parent=0, const char * name=0); ~DialogListBox(); protected: void keyPressEvent( TQKeyEvent *e ); bool a_lwaysIgnore; }; //=================================================================================== class ColorListItem : public TQListBoxText { public: ColorListItem( const TQString &text, const TQColor &color=TQt::black ); ~ColorListItem(); const TQColor& color() { return mColor; } void setColor( const TQColor &color ) { mColor = color; } protected: virtual void paint( TQPainter * ); virtual int height( const TQListBox * ) const; virtual int width( const TQListBox * ) const; private: TQColor mColor; }; //=================================================================================== class FontListItem : public TQListBoxText { public: FontListItem( const TQString &name, const TQFont & ); ~FontListItem(); const TQFont& font() { return f_ont; } void setFont( const TQFont &); protected: virtual void paint( TQPainter * ); virtual int width( const TQListBox * ) const; private: TQFont f_ont; TQString fontInfo; }; //=================================================================================== signals: void optionsChanged(); protected slots: void slotApply(); void slotOk(); void slotDefault(); void slotChanged(); //server void slotAuthRequiredToggled( bool ); //colors void slotColCheckBoxToggled(bool b); void slotColItemSelected(TQListBoxItem *); // show color dialog for the entry void slotColDefaultBtnClicked(); void slotColChangeBtnClicked(); void slotColSelectionChanged(); //fonts void slotFontCheckBoxToggled(bool b); void slotFontItemSelected(TQListBoxItem *); // show font dialog for the entry void slotFontDefaultBtnClicked(); void slotFontChangeBtnClicked(); void slotFontSelectionChanged(); private: TQFrame *serverTab; TQLabel *l_user, *l_secret; KLineEdit *w_server, *w_user, *w_secret, *w_port; TQComboBox *w_encoding; TQCheckBox *w_auth; KIntSpinBox *w_idleHold,*w_timeout,*w_pipesize; TQFrame *appTab; DialogListBox *c_List, *f_List; TQCheckBox *c_olorCB, *f_ontCB; TQPushButton *c_olDefBtn, *c_olChngBtn, *f_ntDefBtn, *f_ntChngBtn; TQFrame *layoutTab; TQRadioButton *w_layout[3]; TQFrame *otherTab; TQCheckBox *w_Clipboard, *w_Savehist; KIntSpinBox *w_Maxhist, *w_Maxbrowse, *w_MaxDefinitions; bool configChanged; }; #endif