• Skip to content
  • Skip to link menu
Trinity API Reference
  • Trinity API Reference
  • tdeui
 

tdeui

kxmlguiclient.h
00001 /* This file is part of the KDE libraries
00002    Copyright (C) 2000 Simon Hausmann <hausmann@kde.org>
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., 51 Franklin Street, Fifth Floor,
00017    Boston, MA 02110-1301, USA.
00018 */
00019 #ifndef _KXMLGUICLIENT_H
00020 #define _KXMLGUICLIENT_H
00021 
00022 #include <tqdom.h>
00023 #include <tqptrlist.h>
00024 #include <tqmap.h>
00025 #include <tqstringlist.h>
00026 
00027 #include <tdelibs_export.h>
00028 
00029 class TQWidget;
00030 class TDEAction;
00031 class TDEActionCollection;
00032 class TDEInstance;
00033 class KXMLGUIClientPrivate;
00034 class KXMLGUIFactory;
00035 class KXMLGUIBuilder;
00036 
00043 class TDEUI_EXPORT KXMLGUIClient
00044 {
00045     friend class KEditToolbarWidget; // for setXMLFile(3 args)
00046 public:
00052   KXMLGUIClient();
00053 
00065   KXMLGUIClient( KXMLGUIClient *parent );
00066 
00070   virtual ~KXMLGUIClient();
00071 
00077   TDEAction* action( const char* name ) const;
00078 
00084   virtual TDEAction *action( const TQDomElement &element ) const;
00085 
00095   virtual TDEActionCollection* actionCollection() const;
00096 
00100   virtual TDEInstance *instance() const;
00101 
00107   virtual TQDomDocument domDocument() const;
00108 
00122   virtual TQString xmlFile() const;
00123 
00124   virtual TQString localXMLFile() const;
00125 
00129   void setXMLGUIBuildDocument( const TQDomDocument &doc );
00133   TQDomDocument xmlguiBuildDocument() const;
00134 
00139   void setFactory( KXMLGUIFactory *factory );
00145   KXMLGUIFactory *factory() const;
00146 
00152   KXMLGUIClient *parentClient() const;
00153 
00160   void insertChildClient( KXMLGUIClient *child );
00161 
00165   void removeChildClient( KXMLGUIClient *child );
00166 
00170   const TQPtrList<KXMLGUIClient> *childClients();
00171 
00180   void setClientBuilder( KXMLGUIBuilder *builder );
00181 
00186   KXMLGUIBuilder *clientBuilder() const;
00187 
00195   void reloadXML();
00196 
00237   void plugActionList( const TQString &name, const TQPtrList<TDEAction> &actionList );
00238 
00242   void unplugActionList( const TQString &name );
00243 
00244   static TQString findMostRecentXMLFile( const TQStringList &files, TQString &doc );
00245 
00246   void addStateActionEnabled(const TQString& state, const TQString& action);
00247 
00248   void addStateActionDisabled(const TQString& state, const TQString& action);
00249 
00250   enum ReverseStateChange { StateNoReverse, StateReverse };
00251   struct StateChange
00252   {
00253     TQStringList actionsToEnable;
00254     TQStringList actionsToDisable;
00255   };
00256 
00257   StateChange getActionsToChangeForState(const TQString& state);
00258 
00260   void beginXMLPlug( TQWidget * );
00262   void endXMLPlug();
00264   void prepareXMLUnplug( TQWidget * );
00265 
00266 protected:
00271   //bool addSuperClient( KXMLGUIClient * );
00272 
00279   virtual void setInstance( TDEInstance *instance );
00280 
00294   virtual void setXMLFile( const TQString& file, bool merge = false, bool setXMLDoc = true );
00295 
00296   virtual void setLocalXMLFile( const TQString &file );
00297 
00304   virtual void setXML( const TQString &document, bool merge = false );
00305 
00312   virtual void setDOMDocument( const TQDomDocument &document, bool merge = false );
00313 
00319   virtual void conserveMemory();
00320 
00332    virtual void stateChanged(const TQString &newstate, ReverseStateChange reverse = StateNoReverse);
00333 
00334    // Use this one for KDE 4.0
00335    //virtual void stateChanged(const TQString &newstate, bool reverse = false);
00336 
00337 private:
00338   struct DocStruct
00339   {
00340     TQString file;
00341     TQString data;
00342   };
00343 
00344   bool mergeXML( TQDomElement &base, const TQDomElement &additive,
00345                  TDEActionCollection *actionCollection );
00346 
00347   TQDomElement findMatchingElement( const TQDomElement &base,
00348                                    const TQDomElement &additive );
00349 
00350   typedef TQMap<TQString, TQMap<TQString, TQString> > ActionPropertiesMap;
00351 
00352   static ActionPropertiesMap extractActionProperties( const TQDomDocument &doc );
00353 
00354   static void storeActionProperties( TQDomDocument &doc, const ActionPropertiesMap &properties );
00355 
00356   static TQString findVersionNumber( const TQString &_xml );
00357 
00358   // Actions to enable/disable on a state change
00359   TQMap<TQString,StateChange> m_actionsStateMap;
00360 
00361 protected:
00362   virtual void virtual_hook( int id, void* data );
00363 private:
00364   KXMLGUIClientPrivate *d;
00365 };
00366 
00367 #endif

tdeui

Skip menu "tdeui"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

tdeui

Skip menu "tdeui"
  • arts
  • dcop
  • dnssd
  • interfaces
  •   kspeech
  •     interface
  •     library
  •   tdetexteditor
  • kate
  • kded
  • kdoctools
  • kimgio
  • kjs
  • libtdemid
  • libtdescreensaver
  • tdeabc
  • tdecmshell
  • tdecore
  • tdefx
  • tdehtml
  • tdeinit
  • tdeio
  •   bookmarks
  •   httpfilter
  •   kpasswdserver
  •   kssl
  •   tdefile
  •   tdeio
  •   tdeioexec
  • tdeioslave
  •   http
  • tdemdi
  •   tdemdi
  • tdenewstuff
  • tdeparts
  • tdeprint
  • tderandr
  • tderesources
  • tdespell2
  • tdesu
  • tdeui
  • tdeunittest
  • tdeutils
  • tdewallet
Generated for tdeui by doxygen 1.7.6.1
This website is maintained by Timothy Pearson.