You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
koffice/karbon/dockers/vdocumentdocker.h

261 lines
6.9 KiB

/* This file is part of the KDE project
Copyright (C) 2001, 2002, 2003 The Karbon Developers
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
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 __VDOCUMENTDOCKER_H__
#define __VDOCUMENTDOCKER_H__
#include <tqlistview.h>
#include <tqptrdict.h>
class TQHButtonGroup;
class TQPoint;
class TQLabel;
class TQPixmap;
class TQCheckBox;
class VDocument;
class VLayer;
class KarbonView;
/*************************************************************************
* Document Tab *
*************************************************************************/
class VDocumentPreview : public TQWidget
{
Q_OBJECT
public:
VDocumentPreview( KarbonView* view, TQWidget* parent = 0 );
~VDocumentPreview();
void reset();
protected:
void paintEvent( TQPaintEvent* e );
virtual bool eventFilter( TQObject* object, TQEvent* event );
private:
VDocument *m_document;
KarbonView *m_view;
KoPoint m_firstPoint;
KoPoint m_lastPoint;
bool m_dragging;
TQPixmap *m_docpixmap;
}; // VDocumentPreview
class VDocumentTab : public TQWidget
{
Q_OBJECT
public:
VDocumentTab( KarbonView* view, TQWidget* parent );
~VDocumentTab();
public slots:
void updateDocumentInfo();
void slotCommandAdded( VCommand* command );
void slotZoomChanged( double );
void slotViewportChanged();
void slotCommandExecuted();
private:
VDocumentPreview* m_documentPreview;
TQLabel* m_height;
TQLabel* m_width;
TQLabel* m_layers;
TQLabel* m_format;
KarbonView* m_view;
}; // VDocumentTab
/*************************************************************************
* Layers Tab *
*************************************************************************/
class VLayerListViewItem : public TQCheckListItem
{
public:
VLayerListViewItem( TQListView* parent, VLayer* layer, VDocument *doc, TQPtrDict<VLayerListViewItem> *map );
virtual ~VLayerListViewItem();
VLayer* layer() { return m_layer; }
int pos();
void update();
virtual TQString key( int column, bool ascending ) const;
virtual int compare( TQListViewItem *i, int col, bool ascending ) const;
void setKey( uint key ) { m_key = key; }
protected:
virtual void stateChange( bool on );
private:
VLayer *m_layer;
VDocument *m_document;
uint m_key;
TQPtrDict<VLayerListViewItem> *m_map;
}; // VLayerListViewItem
class VObjectListViewItem : public TQListViewItem
{
public:
VObjectListViewItem( TQListViewItem* parent, VObject* object, VDocument *doc, uint key, TQPtrDict<VObjectListViewItem> *map );
virtual ~VObjectListViewItem();
VObject* object() { return m_object; }
void update();
virtual TQString key( int column, bool ascending ) const;
virtual int compare( TQListViewItem *i, int col, bool ascending ) const;
void setKey( uint key ) { m_key = key; }
private:
VObject *m_object;
VDocument *m_document;
uint m_key;
TQPtrDict<VObjectListViewItem> *m_map;
};
class VLayersTab : public TQWidget
{
Q_OBJECT
public:
VLayersTab( KarbonView* view, TQWidget* parent = 0 );
~VLayersTab();
public slots:
void updatePreviews();
void updateLayers();
void itemClicked( TQListViewItem* item, const TQPoint&, int col );
void selectionChangedFromList();
void selectionChangedFromTool();
void renameItem( TQListViewItem* item, const TQPoint&, int col );
void addLayer();
void raiseItem();
void lowerItem();
void deleteItem();
void slotCommandExecuted( VCommand* command );
private slots:
void slotButtonClicked( int ID );
void removeDeletedObjectsFromList();
void updateChildItems( TQListViewItem *item );
void toggleState( VObject *obj, int col );
protected:
VLayerListViewItem* listItem( int pos );
void updateObjects( VObject *object, TQListViewItem *item );
void resetSelection();
void selectActiveLayer();
private:
TQListView *m_layersListView;
TQHButtonGroup *m_buttonGroup;
KarbonView *m_view;
VDocument *m_document;
TQPtrDict<VLayerListViewItem> m_layers;
TQPtrDict<VObjectListViewItem> m_objects;
}; // VLayersTab
/*************************************************************************
* History Tab *
*************************************************************************/
class VHistoryItem;
class VHistoryGroupItem : public TQListViewItem
{
public:
VHistoryGroupItem( VHistoryItem* item, TQListView* parent, TQListViewItem* after );
~VHistoryGroupItem();
void paintCell( TQPainter* p, const TQColorGroup& cg, int column, int width, int align );
void paintFocus( TQPainter*, const TQColorGroup&, const TQRect& );
virtual TQString key( int, bool ) const { return m_key; }
virtual int rtti() const { return 1001; }
private:
TQString m_key;
}; // VHistoryGroupItem
class VHistoryItem : public TQListViewItem
{
public:
VHistoryItem( VCommand* command, TQListView* parent, TQListViewItem* after );
VHistoryItem( VCommand* command, VHistoryGroupItem* parent, TQListViewItem* after );
~VHistoryItem();
VCommand* command() { return m_command; }
void paintCell( TQPainter* p, const TQColorGroup& cg, int column, int width, int align );
void paintFocus( TQPainter*, const TQColorGroup&, const TQRect& );
virtual TQString key( int, bool ) const { return m_key; }
virtual int rtti() const { return 1002; }
private:
void init();
TQString m_key;
VCommand* m_command;
}; // VHistoryItem
class VHistoryTab : public TQWidget
{
Q_OBJECT
public:
VHistoryTab( KarbonPart* part, TQWidget* parent );
~VHistoryTab();
bool groupingEnabled();
public slots:
void historyCleared();
void commandExecuted( VCommand* command );
void slotCommandAdded( VCommand* command );
void removeFirstCommand();
void removeLastCommand();
void commandClicked( int button, TQListViewItem* item, const TQPoint& point, int col );
void groupingChanged( int );
signals:
void undoCommand( VCommand* command );
void redoCommand( VCommand* command );
void undoCommandsTo( VCommand* command );
void redoCommandsTo( VCommand* command );
private:
TQListView* m_history;
TQListViewItem* m_lastCommand;
TQCheckBox* m_groupCommands;
long m_lastCommandIndex;
KarbonPart* m_part;
}; // VHistoryTab
#endif