karbon
karbon_tool_registry.h
00001 /* 00002 Copyright (c) 2004 Boudewijn Rempt <boud@valdyas.org> 00003 Copyright (c) 2005 Sven Langkamp <longamp@reallygood.de> 00004 00005 This library is free software; you can redistribute it and/or 00006 modify it under the terms of the GNU Library General Public 00007 License as published by the Free Software Foundation; either 00008 version 2 of the License, or (at your option) any later version. 00009 00010 This library is distributed in the hope that it will be useful, 00011 but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 Library General Public License for more details. 00014 00015 You should have received a copy of the GNU Library General Public License 00016 along with this library; see the file COPYING.LIB. If not, write to 00017 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 00018 * Boston, MA 02110-1301, USA. 00019 */ 00020 00021 #ifndef KARBON_TOOL_REGISTRY_H_ 00022 #define KARBON_TOOL_REGISTRY_H_ 00023 00024 #include <qvaluevector.h> 00025 #include <koffice_export.h> 00026 class KActionCollection; 00027 class VTool; 00028 class KarbonView; 00029 class KarbonAbstractToolFactory; 00030 00034 class KARBONBASE_EXPORT KarbonToolRegistry : private QValueVector<KarbonAbstractToolFactory*> 00035 { 00036 public: 00037 virtual ~KarbonToolRegistry(); 00038 00039 static KarbonToolRegistry* instance(); 00040 00041 void createTools( KActionCollection * ac, KarbonView* view ); 00042 void add(KarbonAbstractToolFactory* factory); 00043 00044 private: 00045 KarbonToolRegistry(); 00046 KarbonToolRegistry(const KarbonToolRegistry&); 00047 KarbonToolRegistry operator=(const KarbonToolRegistry&); 00048 00049 static KarbonToolRegistry *m_singleton; 00050 }; 00051 00052 #endif // KARBON_TOOL_REGISTRY_H_ 00053