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 moveActive(ToolbarItem *item, QListViewItem *before);
00406   void initNonKPart(KActionCollection *collection, const QString& file, bool global);
00407   void initKPart(KXMLGUIFactory* factory);
00408   void loadToolbarCombo(const QString& defaultToolbar = QString::null);
00409   void loadActionList(QDomElement& elem);
00410   void updateLocal(QDomElement& elem);
00411 
00412 private:
00413   ToolbarListView *m_inactiveList;
00414   ToolbarListView *m_activeList;
00415   QComboBox *m_toolbarCombo;
00416 
00417   QToolButton *m_upAction;
00418   QToolButton *m_removeAction;
00419   QToolButton *m_insertAction;
00420   QToolButton *m_downAction;
00421 
00422 protected:
00423   virtual void virtual_hook( int id, void* data );
00424 private:
00425   KEditToolbarWidgetPrivate *d;
00426 };
00427 
00428 #endif // _KEDITTOOLBAR_H
KDE Logo
This file is part of the documentation for kdeui Library Version 3.4.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Tue Aug 2 12:04:24 2005 by doxygen 1.3.9.1 written by Dimitri van Heesch, © 1997-2003