kdeui Library API Documentation

kedittoolbar.h

00001 // -*- mode: c++; c-basic-offset: 2 -*- 00002 /* This file is part of the KDE libraries 00003 Copyright (C) 2000 Kurt Granroth <granroth@kde.org> 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 version 2 as published by the Free Software Foundation. 00008 00009 This library is distributed in the hope that it will be useful, 00010 but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 Library General Public License for more details. 00013 00014 You should have received a copy of the GNU Library General Public License 00015 along with this library; see the file COPYING.LIB. If not, write to 00016 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00017 Boston, MA 02111-1307, USA. 00018 */ 00019 #ifndef _KEDITTOOLBAR_H 00020 #define _KEDITTOOLBAR_H 00021 00022 #include <qwidget.h> 00023 #include <kxmlguiclient.h> 00024 #include <kdialogbase.h> 00025 00026 class KProcess; 00027 class KActionCollection; 00028 class QComboBox; 00029 class QToolButton; 00030 class KListView; 00031 class QListViewItem; 00032 00033 class KEditToolbarWidget; 00034 class KEditToolbarPrivate; 00035 class KEditToolbarWidgetPrivate; 00036 namespace 00037 { 00038 class ToolbarItem; 00039 class ToolbarListView; 00040 } 00110 class KDEUI_EXPORT KEditToolbar : public KDialogBase 00111 { 00112 Q_OBJECT 00113 public: 00144 KEditToolbar(KActionCollection *collection, 00145 const QString& xmlfile = QString::null, bool global = true, 00146 QWidget* parent = 0, const char* name = 0); 00147 00148 //KDE 4.0: merge the two constructors 00149 /* Constructor for apps that do not use components, which has an extra argument 00150 * specifying the toolbar to be shown. 00151 * @param defaultToolbar The toolbar with this name will appear for editing. 00152 * @param collection The collection of actions to work on. 00153 * @param xmlfile The application's local resource file. 00154 * @param global If @p true, then the global resource file will also 00155 * be parsed. 00156 * @param parent The parent of the dialog. 00157 * @param name An internal name. 00158 * @since 3.2 00159 */ 00160 KEditToolbar(const QString& defaultToolbar, KActionCollection *collection, 00161 const QString& xmlfile = QString::null, bool global = true, 00162 QWidget* parent = 0, const char* name = 0); 00186 KEditToolbar(KXMLGUIFactory* factory, QWidget* parent = 0, const char* name = 0); 00187 00188 //KDE 4.0: merge the two constructors 00198 KEditToolbar(const QString& defaultToolbar, KXMLGUIFactory* factory, 00199 QWidget* parent = 0, const char* name = 0); 00200 00202 ~KEditToolbar(); 00203 00209 static void setDefaultToolbar(const char *toolbarName); 00210 00211 protected slots: 00215 virtual void slotOk(); 00219 virtual void slotApply(); 00220 00224 void acceptOK(bool b); 00225 00226 signals: 00232 void newToolbarConfig(); 00233 00234 private: 00235 void init(); 00236 KEditToolbarWidget *m_widget; 00237 protected: 00238 virtual void virtual_hook( int id, void* data ); 00239 private: 00240 KEditToolbarPrivate *d; 00241 00242 static const char *s_defaultToolbar; 00243 }; 00244 00245 00265 class KDEUI_EXPORT KEditToolbarWidget : public QWidget, virtual public KXMLGUIClient 00266 { 00267 Q_OBJECT 00268 public: 00298 KEditToolbarWidget(KActionCollection *collection, 00299 const QString& xmlfile = QString::null, 00300 bool global = true, QWidget *parent = 0L); 00301 00302 //KDE 4.0: merge the two constructors 00303 /* Same as above, with an extra agrument specifying the toolbar to be shown. 00304 * 00305 * @param defaultToolbar The toolbar with this name will appear for editing. 00306 * @param collection The collection of actions to work on 00307 * @param xmlfile The application's local resource file 00308 * @param global If true, then the global resource file will also 00309 * be parsed 00310 * @param parent This widget's parent 00311 * @since 3.2 00312 */ 00313 KEditToolbarWidget(const QString& defaultToolbar, 00314 KActionCollection *collection, 00315 const QString& file = QString::null, 00316 bool global = true, 00317 QWidget *parent = 0L); 00318 00339 KEditToolbarWidget(KXMLGUIFactory* factory, QWidget *parent = 0L); 00340 00341 //KDE 4.0: merge the two constructors 00342 /* Same as above, with an extra agrument specifying the toolbar to be shown. 00343 * 00344 * 00345 * @param defaultToolbar The toolbar with this name will appear for editing. 00346 * @param factory Your application's factory object 00347 * @param parent This widget's parent 00348 * @since 3.2 00349 */ 00350 KEditToolbarWidget(const QString& defaultToolbar, 00351 KXMLGUIFactory* factory, 00352 QWidget *parent = 0L); 00353 00359 virtual ~KEditToolbarWidget(); 00360 00364 virtual KActionCollection *actionCollection() const; 00365 00374 bool save(); 00375 00376 signals: 00380 void enableOk(bool); 00381 00382 protected slots: 00383 void slotToolbarSelected(const QString& text); 00384 00385 void slotInactiveSelected(QListViewItem *item); 00386 void slotActiveSelected(QListViewItem *item); 00387 00388 void slotDropped(KListView *list, QDropEvent *e, QListViewItem *after); 00389 00390 void slotInsertButton(); 00391 void slotRemoveButton(); 00392 void slotUpButton(); 00393 void slotDownButton(); 00394 00395 void slotChangeIcon(); 00396 00397 private slots: 00398 void slotProcessExited( KProcess* ); 00399 00400 protected: 00401 void setupLayout(); 00402 00403 void insertActive(ToolbarItem *item, QListViewItem *before, bool prepend = false); 00404 void removeActive(ToolbarItem *item); 00405 void initNonKPart(KActionCollection *collection, const QString& file, bool global); 00406 void initKPart(KXMLGUIFactory* factory); 00407 void loadToolbarCombo(const QString& defaultToolbar = QString::null); 00408 void loadActionList(QDomElement& elem); 00409 void updateLocal(QDomElement& elem); 00410 00411 private: 00412 ToolbarListView *m_inactiveList; 00413 ToolbarListView *m_activeList; 00414 QComboBox *m_toolbarCombo; 00415 00416 QToolButton *m_upAction; 00417 QToolButton *m_removeAction; 00418 QToolButton *m_insertAction; 00419 QToolButton *m_downAction; 00420 00421 protected: 00422 virtual void virtual_hook( int id, void* data ); 00423 private: 00424 KEditToolbarWidgetPrivate *d; 00425 }; 00426 00427 #endif // _KEDITTOOLBAR_H
KDE Logo
This file is part of the documentation for kdeui Library Version 3.4.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Thu Apr 14 00:10:11 2005 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003