diff options
Diffstat (limited to 'kdeui/kedittoolbar.h')
-rw-r--r-- | kdeui/kedittoolbar.h | 439 |
1 files changed, 0 insertions, 439 deletions
diff --git a/kdeui/kedittoolbar.h b/kdeui/kedittoolbar.h deleted file mode 100644 index 9033ff17f..000000000 --- a/kdeui/kedittoolbar.h +++ /dev/null @@ -1,439 +0,0 @@ -// -*- mode: c++; c-basic-offset: 2 -*- -/* This file is part of the KDE libraries - Copyright (C) 2000 Kurt Granroth <granroth@kde.org> - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License version 2 as published by the Free Software Foundation. - - 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#ifndef _KEDITTOOLBAR_H -#define _KEDITTOOLBAR_H - -#include <tqwidget.h> -#include <kxmlguiclient.h> -#include <kdialogbase.h> - -class KProcess; -class KActionCollection; -class TQComboBox; -class TQToolButton; -class KListView; -class TQListViewItem; - -class KEditToolbarWidget; -class KEditToolbarPrivate; -class KEditToolbarWidgetPrivate; -namespace -{ - class ToolbarItem; - class ToolbarListView; -} -/** - * @short A dialog used to customize or configure toolbars. - * - * This dialog only works if your application uses the XML UI - * framework for creating menus and toolbars. It depends on the XML - * files to describe the toolbar layouts and it requires the actions - * to determine which buttons are active. - * - * Typically, you would include the KStdAction::configureToolbars() - * standard action in your application. In your slot to this action, - * you would have something like so: - * - * \code - * KEditToolbar dlg(actionCollection()); - * if (dlg.exec()) - * { - * createGUI(); - * } - * \endcode - * - * That code snippet also takes care of redrawing the menu and - * toolbars if you have made any changes. - * - * If you are using KMainWindow's settings methods (either save/apply manually - * or autoSaveSettings), you should write something like: - * \code - * void MyClass::slotConfigureToolbars() - * { - * saveMainWindowSettings( KGlobal::config(), "MainWindow" ); - * KEditToolbar dlg(actionCollection()); - * connect(&dlg,TQT_SIGNAL(newToolbarConfig()),this,TQT_SLOT(slotNewToolbarConfig())); - * dlg.exec(); - * } - * - * void MyClass::slotNewToolbarConfig() // This is called when OK, Apply or Defaults is clicked - * { - * ...if you use any action list, use plugActionList on each here... - * createGUI(); - * applyMainWindowSettings( KGlobal::config(), "MainWindow" ); - * } - * \endcode - * - * Note that the procedure is a bit different for KParts applications. - * In this case, you need only pass along a pointer to your - * application's KXMLGUIFactory object. The editor will take care of - * finding all of the action collections and XML files. The editor - * aims to be semi-intelligent about where it assigns any - * modifications. In other words, it will not write out part specific - * changes to your shell's XML file. - * - * An example would be: - * - * \code - * saveMainWindowSettings( KGlobal::config(), "MainWindow" ); - * KEditToolbar dlg(factory()); - * connect(&dlg,TQT_SIGNAL(newToolbarConfig()),this,TQT_SLOT(slotNewToolbarConfig())); - * dlg.exec(); - * - * void MyClass::slotNewToolbarConfig() // This is called when OK, Apply or Defaults is clicked - * { - * ...if you use any action list, use plugActionList on each here... - * // Do NOT call createGUI()! - * applyMainWindowSettings( KGlobal::config(), "MainWindow" ); - * } - * \endcode - * - * @author Kurt Granroth <granroth@kde.org> - * @version $Id$ - */ -class KDEUI_EXPORT KEditToolbar : public KDialogBase -{ - Q_OBJECT -public: - /** - * Constructor for apps that do not use components. - * - * This is the - * only entry point to this class. You @em must pass along your - * collection of actions (some of which appear in your toolbars). - * The other two parameters are optional. - * - * The second parameter, xmlfile(), is the name (absolute or - * relative) of your application's UI resource file. If it is - * left blank, then the resource file: share/apps/appname/appnameui.rc - * is used. This is the same resource file that is used by the - * default createGUI() function in KMainWindow so you're usually - * pretty safe in leaving it blank. - * - * The third parameter, global(), controls whether or not the - * global resource file is used. If this is @p true, then you may - * edit all of the actions in your toolbars -- global ones and - * local one. If it is @p false, then you may edit only your - * application's entries. The only time you should set this to - * false is if your application does not use the global resource - * file at all (very rare). - * - * @param collection The collection of actions to work on. - * @param xmlfile The application's local resource file. - * @param global If @p true, then the global resource file will also - * be parsed. - * @param parent The parent of the dialog. - * @param name An internal name. - */ - KEditToolbar(KActionCollection *collection, - const TQString& xmlfile = TQString::null, bool global = true, - TQWidget* parent = 0, const char* name = 0); - - //KDE 4.0: merge the two constructors - /* Constructor for apps that do not use components, which has an extra argument - * specifying the toolbar to be shown. - * @param defaultToolbar The toolbar with this name will appear for editing. - * @param collection The collection of actions to work on. - * @param xmlfile The application's local resource file. - * @param global If @p true, then the global resource file will also - * be parsed. - * @param parent The parent of the dialog. - * @param name An internal name. - * @since 3.2 - */ - KEditToolbar(const TQString& defaultToolbar, KActionCollection *collection, - const TQString& xmlfile = TQString::null, bool global = true, - TQWidget* parent = 0, const char* name = 0); - /** - * Constructor for KParts based apps. - * - * The main parameter, factory(), is a pointer to the - * XML GUI factory object for your application. It contains a list - * of all of the GUI clients (along with the action collections and - * xml files) and the toolbar editor uses that. - * - * Use this like so: - * \code - * KEditToolbar edit(factory()); - * if ( edit.exec() ) - * ... - * \endcode - * - * @param factory Your application's factory object - * @param parent The usual parent for the dialog. - * @param name An internal name. - * - * Some people seem tempted to use this also in non-KParts apps, using KMainWindow::guiFactory(). - * This works, but only _if_ setting conserveMemory to false when calling - * KMainWindow::createGUI()! If not, use the other KEditToolbar constructor. - */ - KEditToolbar(KXMLGUIFactory* factory, TQWidget* parent = 0, const char* name = 0); - - //KDE 4.0: merge the two constructors - /** Constructor for KParts based apps, which has an extra argument - * specifying the toolbar to be shown. - * - * @param defaultToolbar The toolbar with this name will appear for editing. - * @param factory Your application's factory object - * @param parent The usual parent for the dialog. - * @param name An internal name. - * @since 3.2 - */ - KEditToolbar(const TQString& defaultToolbar, KXMLGUIFactory* factory, - TQWidget* parent = 0, const char* name = 0); - - /// destructor - ~KEditToolbar(); - - /** Sets the default toolbar, which will be auto-selected when the constructor without the - * defaultToolbar argument is used. - * @param toolbarName the name of the toolbar - * @since 3.3 - */ - static void setDefaultToolbar(const char *toolbarName); - -protected slots: - /** - * Overridden in order to save any changes made to the toolbars - */ - virtual void slotOk(); - /** - * idem - */ - virtual void slotApply(); - - /** should OK really save? - * @internal - **/ - void acceptOK(bool b); - - /** - * Set toolbars to default value - **/ - void slotDefault(); - -signals: - /** - * Signal emitted when 'apply' or 'ok' is clicked or toolbars were resetted. - * Connect to it, to plug action lists and to call applyMainWindowSettings - * (see sample code in this class's documentation) - */ - void newToolbarConfig(); - -private: - void init(); - KEditToolbarWidget *m_widget; -protected: - virtual void virtual_hook( int id, void* data ); -private: - KEditToolbarPrivate *d; - - static const char *s_defaultToolbar; -}; - - -/** - * @short A widget used to customize or configure toolbars - * - * This is the widget that does all of the work for the - * KEditToolbar dialog. In most cases, you will want to use the - * dialog instead of this widget directly. - * - * Typically, you would use this widget only if you wanted to embed - * the toolbar editing directly into your existing configure or - * preferences dialog. - * - * This widget only works if your application uses the XML UI - * framework for creating menus and toolbars. It depends on the XML - * files to describe the toolbar layouts and it requires the actions - * to determine which buttons are active. - * - * @author Kurt Granroth <granroth@kde.org> - * @version $Id$ - */ -class KDEUI_EXPORT KEditToolbarWidget : public TQWidget, virtual public KXMLGUIClient -{ - Q_OBJECT -public: - /** - * Constructor. This is the only entry point to this class. You - * @p must pass along your collection of actions (some of which - * appear in your toolbars). The other three parameters are - * optional. - * - * The second parameter, xmlfile, is the name (absolute or - * relative) of your application's UI resource file. If it is - * left blank, then the resource file: share/apps/appname/appnameui.rc - * is used. This is the same resource file that is used by the - * default createGUI function in KMainWindow so you're usually - * pretty safe in leaving it blank. - * - * The third parameter, global, controls whether or not the - * global resource file is used. If this is true, then you may - * edit all of the actions in your toolbars -- global ones and - * local one. If it is false, then you may edit only your - * application's entries. The only time you should set this to - * false is if your application does not use the global resource - * file at all (very rare) - * - * The last parameter, parent, is the standard parent stuff. - * - * @param collection The collection of actions to work on - * @param xmlfile The application's local resource file - * @param global If true, then the global resource file will also - * be parsed - * @param parent This widget's parent - */ - KEditToolbarWidget(KActionCollection *collection, - const TQString& xmlfile = TQString::null, - bool global = true, TQWidget *parent = 0L); - - //KDE 4.0: merge the two constructors - /* Same as above, with an extra agrument specifying the toolbar to be shown. - * - * @param defaultToolbar The toolbar with this name will appear for editing. - * @param collection The collection of actions to work on - * @param xmlfile The application's local resource file - * @param global If true, then the global resource file will also - * be parsed - * @param parent This widget's parent - * @since 3.2 - */ - KEditToolbarWidget(const TQString& defaultToolbar, - KActionCollection *collection, - const TQString& file = TQString::null, - bool global = true, - TQWidget *parent = 0L); - - /** - * Constructor for KParts based apps. - * - * The first parameter, factory, is a pointer to the XML GUI - * factory object for your application. It contains a list of all - * of the GUI clients (along with the action collections and xml - * files) and the toolbar editor uses that. - * - * The second parameter, parent, is the standard parent - * - * Use this like so: - * \code - * KEditToolbar edit(factory()); - * if ( edit.exec() ) - * ... - * \endcode - * - * @param factory Your application's factory object - * @param parent This widget's parent - */ - KEditToolbarWidget(KXMLGUIFactory* factory, TQWidget *parent = 0L); - - //KDE 4.0: merge the two constructors - /* Same as above, with an extra agrument specifying the toolbar to be shown. - * - * - * @param defaultToolbar The toolbar with this name will appear for editing. - * @param factory Your application's factory object - * @param parent This widget's parent - * @since 3.2 - */ - KEditToolbarWidget(const TQString& defaultToolbar, - KXMLGUIFactory* factory, - TQWidget *parent = 0L); - - /** - * Destructor. Note that any changes done in this widget will - * @p NOT be saved in the destructor. You @p must call save() - * to do that. - */ - virtual ~KEditToolbarWidget(); - - /** - * @internal Reimplemented for internal purposes. - */ - virtual KActionCollection *actionCollection() const; - - /** - * Save any changes the user made. The file will be in the user's - * local directory (usually $HOME/.kde/share/apps/\<appname\>). The - * filename will be the one specified in the constructor.. or the - * made up one if the filename was NULL. - * - * @return The status of whether or not the save succeeded. - */ - bool save(); - - /** - * Remove and readd all KMXLGUIClients to update the GUI - * @since 3.5 - */ - void rebuildKXMLGUIClients(); - -signals: - /** - * Emitted whenever any modifications are made by the user. - */ - void enableOk(bool); - -protected slots: - void slotToolbarSelected(const TQString& text); - - void slotInactiveSelected(TQListViewItem *item); - void slotActiveSelected(TQListViewItem *item); - - void slotDropped(KListView *list, TQDropEvent *e, TQListViewItem *after); - - void slotInsertButton(); - void slotRemoveButton(); - void slotUpButton(); - void slotDownButton(); - - void slotChangeIcon(); - -private slots: - void slotProcessExited( KProcess* ); - -protected: // KDE4: make private - void setupLayout(); - - void insertActive(ToolbarItem *item, TQListViewItem *before, bool prepend = false); - void removeActive(ToolbarItem *item); - void moveActive(ToolbarItem *item, TQListViewItem *before); - void initNonKPart(KActionCollection *collection, const TQString& file, bool global); - void initKPart(KXMLGUIFactory* factory); - void loadToolbarCombo(const TQString& defaultToolbar = TQString::null); - void loadActionList(TQDomElement& elem); - void updateLocal(TQDomElement& elem); - -private: - ToolbarListView *m_inactiveList; - ToolbarListView *m_activeList; - TQComboBox *m_toolbarCombo; - - TQToolButton *m_upAction; - TQToolButton *m_removeAction; - TQToolButton *m_insertAction; - TQToolButton *m_downAction; - -protected: - virtual void virtual_hook( int id, void* data ); -private: - KEditToolbarWidgetPrivate *d; -}; - -#endif // _KEDITTOOLBAR_H |