/*************************************************************************** kcoloreditdoc.h - description ------------------- begin : Sat Jul 8 09:57:28 CEST 2000 copyright : (C) 2000 by Artur Rataj email : art@zeus.polsl.gliwice.pl ***************************************************************************/ /*************************************************************************** * * * 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; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifndef KCOLOREDITDOC_H #define KCOLOREDITDOC_H #ifdef HAVE_CONFIG_H #include #endif // include files for QT #include #include #include // application specific includes #include "palette.h" #include "palettehistory.h" // forward declaration of the KColorEdit classes class KColorEditView; /** KColorEditDoc provides a document object for a document-view model. * * The KColorEditDoc class provides a document object that can be used in conjunction with the classes KColorEditApp and KColorEditView * to create a document-view model for standard TDE applications based on TDEApplication and TDEMainWindow. Thereby, the document object * is created by the KColorEditApp instance and contains the document structure with the according methods for manipulation of the document * data by KColorEditView objects. Also, KColorEditDoc contains the methods for serialization of the document data from and to files. * * @author Source Framework Automatically Generated by KDevelop, (c) The KDevelop Team. * @version KDevelop version 0.4 code generation */ class KColorEditDoc : public TQObject { TQ_OBJECT public: /** Constructor for the fileclass of the application */ KColorEditDoc(TQWidget *parent, const char *name=0); /** Destructor for the fileclass of the application */ ~KColorEditDoc(); /** adds a view to the document which represents the document contents. Usually this is your main view. */ void addView(KColorEditView *view); /** removes a view from the list of currently connected views */ void removeView(KColorEditView *view); /** sets the modified flag for the document after a modifying action on the view connected to the document.*/ void setModified(bool modified); /** returns if the document is modified or not. Use this to determine if your document needs saving by the user on closing.*/ bool isModified() const { return m_modified; }; /** "save modified" - asks the user for saving if the document is modified */ bool saveModified(); /** deletes the document's contents */ void deleteContents(); /** initializes the document generally */ bool newDocument(); /** closes the actual document */ void closeDocument(); /** loads the document */ bool openDocument(const TQString& filename); /** saves the document */ bool saveDocument(const TQString& filename); /** sets the path to the file connected with the document */ void setAbsFilePath(const TQString &filename); /** returns the pathname of the current document file*/ const TQString& absFilePath() const; /** sets the filename of the document */ void setTitle(const TQString &_t); /** returns the title of the document */ const TQString& title() const; /** @return a description of a possible unsuccessfull IO operation */ const TQString& errorString() const; /** returns a pointer to paletteHistory */ PaletteHistory* paletteHistory(); /** sets a palette cursor position */ void setPaletteCursorPos(const int pos); /** @return a palette cursor position */ int paletteCursorPos(); /** Sets palette selection and enables or disables cut/paste * depending on whether any colors are selected */ void setPaletteSelection(const int begin, const int end); /** Gets lesser selection position or equal selection position * if no colors are selected */ int paletteSelectionBegin() const; /** Gets greater selection position or equal selection position * if no colors are selected */ int paletteSelectionEnd() const; /** Copies a selection into a clipboard */ void copy(); /** Cuts a selection into a clipboard */ void cut(); /** Pastes a selection from a clipboard */ void paste(); /** Inserts a color at index */ void insert(int index, const Color& color); /** Replaces a color at index */ void replace(int index, const Color& color); protected: /** Sets an error string if an IO operation was unsuccesfull */ void setErrorString(const TQString& string); /** Copies a palette to clipboard */ void copyToClipboard(Palette& palette); public slots: /** Calls redraw() on all views connected to the document object, * except for sender if sender is not null */ void slotRedrawAllViews(KColorEditView* sender, bool newDocument = false); /** Sets a view mode */ void slotChangeViewMode(bool viewColorNames); signals: void selectionChanged( int, int ); void clipboardChanged(); void modified( bool ); void paletteAvailable( bool ); public: /** the list of the views currently connected to the document */ TQPtrList *m_pViewList; private: /** the modified flag of the current document */ bool m_modified; TQString m_title; TQString m_absFilePath; TQString m_errorString; protected: Palette m_palette; PaletteHistory m_paletteHistory; int m_paletteCursorPos; int m_paletteSelectionBegin; int m_paletteSelectionEnd; }; #endif // KCOLOREDITDOC_H