# Source: toeditwidget.h

Annotated List
Files
Globals
Hierarchy
Index

    /*****
     *
     * TOra - An Oracle Toolkit for DBA's and developers
     * Copyright (C) 2003-2005 Quest Software, Inc
     * Portions Copyright (C) 2005 Other Contributors
     *
     * This program is free software; you can redistribute it and/or
     * modify it under the terms of the GNU General Public License
     * as published by the Free Software Foundation;  only version 2 of
     * the License is valid for this program.
     *
     * This program 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 General Public License for more details.
     *
     * You should have received a copy of the GNU General Public License
     * along with this program; if not, write to the Free Software
     * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
     *
     *      As a special exception, you have permission to link this program
     *      with the Oracle Client libraries and distribute executables, as long
     *      as you follow the requirements of the GNU GPL in regard to all of the
     *      software in the executable aside from Oracle client libraries.
     *
     *      Specifically you are not permitted to link this program with the
     *      Qt/UNIX, Qt/Windows or Qt Non Commercial products of TrollTech.
     *      And you are not permitted to distribute binaries compiled against
     *      these libraries without written consent from Quest Software, Inc.
     *      Observe that this does not disallow linking to the Qt Free Edition.
     *
     *      You may link this product with any GPL'd Qt library such as Qt/Free
     *
     * All trademarks belong to their respective owners.
     *
     *****/

    #ifndef TOEDITWIDGET_H
    #define TOEDITWIDGET_H

    #include <list>

    #include <qwidget.h>

    class toSearchReplace;

    /** This is an abstract base class for any widget (Not included in object) that wants to
     * access copy, cut, paste, open, save commands of the user interface.
     */
    class toEditWidget {
    public:
      /** Class used to extent how to enable/disable parts of the interface as
       * focus changes.
       */
      class editHandler {
      public:
        /** Constructor.
         */
        editHandler();
        /** Destructor.
         */
        virtual ~editHandler();
        /** Called when a new widget receives the focus.
         */
        virtual void receivedFocus(toEditWidget *widget) = 0;
        /** Called when a widget loses the focus.
         */
        virtual void lostFocus(toEditWidget *widget) = 0;
      };
    private:
      bool Open;
      bool Save;
      bool Print;
      bool Undo;
      bool Redo;
      bool Cut;
      bool Copy;
      bool Paste;
      bool Search;
      bool SelectAll;
      bool ReadAll;
      void setMainSettings(void);

      static std::list<editHandler *> *Handlers;
    public:
      /** Empty constructor, all functions are disabled.
       */
      toEditWidget();
      /** Specified constructor, all functions are specified in the constructor.
       */
      toEditWidget(bool open,bool save,bool print,
    	       bool undo,bool redo,
    	       bool cut,bool copy,bool paste,
    	       bool search,
    	       bool selectAll,bool readAll);
      virtual ~toEditWidget();

      /** Specify new enabled functions.
       */
      void setEdit(bool open,bool save,bool print,
    	       bool undo,bool redo,
    	       bool cut,bool copy,bool paste,
    	       bool search,
    	       bool selectAll,bool readAll);

      /** Perform an open on this widget. Default NOP.
       * @param file The file to open, if not specified prompt for file.
       */
      virtual bool editOpen(QString file=QString::null);
      /** Perform a save on this widget. Default NOP.
       * @param askfile Ask filename even if default filename is available.
       */
      virtual bool editSave(bool askfile);
      /** Print this widgets contents. Default NOP.
       */
      virtual void editPrint(void)
      { }
      /** Perform undo. Default NOP.
       */
      virtual void editUndo(void)
      { }
      /** Perform redo. Default NOP.
       */
      virtual void editRedo(void)
      { }
      /** Perform cut. Default NOP.
       */
      virtual void editCut(void)
      { }
      /** Perform copy. Default NOP.
       */
      virtual void editCopy(void)
      { }
      /** Perform paste. Default NOP.
       */
      virtual void editPaste(void)
      { }
      /** Select all contents. Default NOP.
       */
      virtual void editSelectAll(void)
      { }
      /** Read all available data. Default NOP.
       */
      virtual void editReadAll(void)
      { }

      /** Set if open is enabled.
       */
      void openEnabled(bool val)
      { Open=val; setMainSettings(); }
      /** Set if save is enabled.
       */
      void saveEnabled(bool val)
      { Save=val; setMainSettings(); }
      /** Set if print is enabled.
       */
      void printEnabled(bool val)
      { Print=val; setMainSettings(); }
      /** Set if undo is enabled.
       */
      void undoEnabled(bool val)
      { Undo=val; setMainSettings(); }
      /** Set if redo is enabled.
       */
      void redoEnabled(bool val)
      { Redo=val; setMainSettings(); }
      /** Set if cut is enabled.
       */
      void cutEnabled(bool val)
      { Cut=val; setMainSettings(); }
      /** Set if copy is enabled.
       */
      void copyEnabled(bool val)
      { Copy=val; setMainSettings(); }
      /** Set if paste is enabled.
       */
      void pasteEnabled(bool val)
      { Paste=val; setMainSettings(); }
      /** Set if search is enabled.
       */
      void searchEnabled(bool val)
      { Search=val; setMainSettings(); }
      /** Set if select all is enabled.
       */
      void selectAllEnabled(bool val)
      { SelectAll=val; setMainSettings(); }
      /** Set if read all is enabled.
       */
      void readAllEnabled(bool val)
      { ReadAll=val; setMainSettings(); }

      /** Check if open is enabled.
       */
      bool openEnabled(void)
      { return Open; }
      /** Check if save is enabled.
       */
      bool saveEnabled(void)
      { return Save; }
      /** Check if print is enabled.
       */
      bool printEnabled(void)
      { return Print; }
      /** Check if undo is enabled.
       */
      bool undoEnabled(void)
      { return Undo; }
      /** Check if redo is enabled.
       */
      bool redoEnabled(void)
      { return Redo; }
      /** Check if cut is enabled.
       */
      bool cutEnabled(void)
      { return Cut; }
      /** Check if copy is enabled.
       */
      bool copyEnabled(void)
      { return Copy; }
      /** Check if paste is enabled.
       */
      bool pasteEnabled(void)
      { return Paste; }
      /** Check if search is enabled.
       */
      bool searchEnabled(void)
      { return Search; }
      /** Check if select all is enabled.
       */
      bool selectAllEnabled(void)
      { return SelectAll; }
      /** Check if read all is enabled.
       */
      bool readAllEnabled(void)
      { return ReadAll; }

      /** Move to top of data
       */
      virtual void searchTop(void)
      { }
      /** Search for next entry
       * @return True if found, should select the found text.
       */
      virtual bool searchNext(toSearchReplace *search);
      /** Replace entry with new data
       */
      virtual void searchReplace(const QString &newData);
      /** Check if data can be modified by search
       * @param all If true can replace all, otherwise can replace right now.
       */
      virtual bool searchCanReplace(bool all);

      /** Call this when this widget has received the focus. Must be called by the implementor.
       */
      virtual void receivedFocus(void);
      /** Called when this widget has lost the focus. Don't forget to call parent when reimplemented.
       */
      virtual void lostFocus(void);

      /** Add a hook to be called every time focus changes.
       */
      static void addHandler(editHandler *handler);
      /** Removed a hook from being called every time focus changes.
       */
      static void delHandler(editHandler *handler);
    };

    #endif

Generated by: nneul on skyhawk on Wed Feb 23 19:49:58 2005, using kdoc 2.0a54.