summaryrefslogtreecommitdiffstats log msg author committer range
path: root/tdespell2/broker.h
blob: c41fa298832a0bc6a035748a268399689505b9fd (plain)
 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136  // -*- Mode: C++; c-basic-offset: 4; indent-tabs-mode: nil; -*- /** * broker.h * * Copyright (C) 2003 Zack Rusin * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * 02110-1301 USA */ #ifndef TDESPELL_BROKER_H #define TDESPELL_BROKER_H #include #include #include #include class TDESharedConfig; template class TQPtrDict; namespace KSpell2 { class Settings; class Dictionary; class DefaultDictionary; /** * @short Class used to deal with dictionaries * * This class manages all dictionaries. It's the top level * KSpell2 class, you can think of it as the kernel or manager * of the KSpell2 architecture. */ class KDE_EXPORT Broker : public TQObject, public TDEShared { Q_OBJECT public: typedef TDESharedPtr Ptr; /** * Constructs the broker. * * It's very important that you assign it to Broker::Ptr * as soon as possible. Broker is reference counted so * if you don't want to have it deleted under you simply * have to hold it in a Broker::Ptr for as long as you're * using it. * * @param config is the name of config file which * broker should use to read default language * and default client values. If no value will * be passed Broker will use global tdespellrc file. */ static Broker *openBroker( TDESharedConfig *config = 0 ); public: ~Broker(); /** * Function returns the so-called DefaultDictionary. It's a * special form a dictionary which automatically mutates * according to changes tot the KSpell2::Settings object. * You also can't delete it like other dictionaries since * it's owned by the Broker and it will take care of it. */ DefaultDictionary *defaultDictionary() const; /** * Returns dictionary for the given language and preferred client. * * @param language specifies the language of the dictionary. If an * empty string will be passed the default language will * be used. Has to be one of the values returned by * \ref languages() * @param client specifies the preferred client. If no client is * specified a client which supports the given * language is picked. If a few clients supports * the same language the one with the biggest * reliability value is returned. * */ Dictionary *dictionary( const TQString& language = TQString::null, const TQString& client = TQString::null ) const; /** * Returns names of all supported clients (e.g. ISpell, ASpell) */ TQStringList clients() const; /** * Returns a list of supported languages. */ TQStringList languages() const; /** * Returns the Settings object used by the broker. */ Settings *settings() const; signals: /** * Signal is emitted whenever the Settings object * associated with this Broker changes. */ void configurationChanged(); protected: friend class Settings; void changed(); private: Broker( TDESharedConfig *config ); void loadPlugins(); void loadPlugin( const TQString& ); private: class Private; Private *d; private: static TQPtrDict *s_brokers; }; } #endif