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.
387 lines
9.6 KiB
387 lines
9.6 KiB
/*
|
|
* Kivio - Visual Modelling and Flowcharting
|
|
* Copyright (C) 2000-2001 theKompany.com & Dave Marotti
|
|
*
|
|
* 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.
|
|
*
|
|
* 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
*/
|
|
#ifndef __kivio_gui_h__
|
|
#define __kivio_gui_h__
|
|
|
|
class KivioView;
|
|
class KivioCanvas;
|
|
class KivioPage;
|
|
class KivioDoc;
|
|
class KivioPainter;
|
|
class KivioPaperLayout;
|
|
class KivioShell;
|
|
class KivioStackBar;
|
|
class KivioStencilSpawner;
|
|
class KivioStencilSpawnerSet;
|
|
class KivioTabBar;
|
|
class TKSelectColorAction;
|
|
class StencilBarDockManager;
|
|
class KivioArrowHeadAction;
|
|
|
|
namespace Kivio {
|
|
class ToolController;
|
|
class PluginManager;
|
|
class AddStencilSetDialog;
|
|
class AddStencilTool;
|
|
class ObjectListPalette;
|
|
}
|
|
|
|
class KivioBirdEyePanel;
|
|
class KivioLayerPanel;
|
|
class KivioProtectionPanel;
|
|
class KivioStencilGeometryPanel;
|
|
|
|
class KoDocumentEntry;
|
|
class KoTabBar;
|
|
|
|
class KAction;
|
|
class KFontAction;
|
|
class KFontSizeAction;
|
|
class KToggleAction;
|
|
|
|
class KSelectColorAction;
|
|
class KActionMenu;
|
|
|
|
class TQStringList;
|
|
class TQPushButton;
|
|
class TQProgressBar;
|
|
class TQScrollBar;
|
|
class DCOPObject;
|
|
class KoRuler;
|
|
class KoZoomHandler;
|
|
class KoUnitDoubleSpinBox;
|
|
class KStatusBarLabel;
|
|
class KoLineWidthAction;
|
|
class KoLineStyleAction;
|
|
class KoPaletteManager;
|
|
|
|
#include <tqdom.h>
|
|
#include <tqptrlist.h>
|
|
#include <tqframe.h>
|
|
|
|
#include <KoView.h>
|
|
#include <KoDocument.h>
|
|
#include <KoUnit.h>
|
|
|
|
#include <koffice_export.h>
|
|
using namespace Kivio;
|
|
|
|
class KIVIO_EXPORT KivioView : public KoView
|
|
{
|
|
Q_OBJECT
|
|
TQ_OBJECT
|
|
friend class KivioCanvas;
|
|
|
|
public:
|
|
KivioView( TQWidget *_parent, const char *_name, KivioDoc *_doc );
|
|
~KivioView();
|
|
|
|
virtual DCOPObject* dcopObject();
|
|
|
|
KivioCanvas* canvasWidget() const { return m_pCanvas; }
|
|
KivioDoc* doc()const { return m_pDoc; }
|
|
|
|
KivioPage* activePage() const;
|
|
|
|
void setActiveSpawnerSet( KivioStencilSpawnerSet* );
|
|
KivioStencilSpawnerSet *activeSpawnerSet();
|
|
|
|
KoTabBar* tabBar()const { return m_pTabBar;}
|
|
KoPaletteManager* paletteManager() { return m_pPaletteManager; };
|
|
void updateMenuPage( );
|
|
|
|
virtual void setupPrinter(KPrinter&);
|
|
virtual void print(KPrinter&);
|
|
|
|
virtual TQWidget* canvas() const;
|
|
virtual int canvasXOffset() const;
|
|
virtual int canvasYOffset() const;
|
|
|
|
bool isSnapGuides()const { return m_bSnapGuides; }
|
|
bool isShowGuides()const { return m_bShowGuides; }
|
|
bool isShowRulers()const { return m_bShowRulers; }
|
|
bool isShowPageMargins()const { return m_bShowPageMargins; }
|
|
|
|
virtual int leftBorder() const;
|
|
virtual int rightBorder() const;
|
|
virtual int topBorder() const;
|
|
virtual int bottomBorder() const;
|
|
|
|
|
|
// Returns the current interface color/lineWidth settings
|
|
TQColor fgColor()const;
|
|
TQColor bgColor()const;
|
|
double lineWidth()const;
|
|
int lineStyle() const;
|
|
void updateButton();
|
|
void insertPage( KivioPage* page );
|
|
void resetLayerPanel();
|
|
void updateProtectPanelCheckBox();
|
|
|
|
KoZoomHandler* zoomHandler() const;
|
|
|
|
KoRuler* horzRuler() const { return hRuler; }
|
|
KoRuler* vertRuler() const { return vRuler; }
|
|
|
|
Kivio::PluginManager* pluginManager();
|
|
|
|
int hTextAlign();
|
|
int vTextAlign();
|
|
|
|
signals:
|
|
void zoomChanged(int);
|
|
void updateStencilSetList();
|
|
|
|
protected:
|
|
void createGeometryDock();
|
|
void createLayerDock();
|
|
void createBirdEyeDock();
|
|
void createProtectionDock();
|
|
void createObjectListPalette();
|
|
|
|
public slots:
|
|
void paperLayoutDlg();
|
|
|
|
void togglePageMargins(bool);
|
|
void toggleShowRulers(bool);
|
|
void toggleShowGrid(bool);
|
|
void toggleSnapGrid(bool);
|
|
void toggleShowGuides(bool);
|
|
|
|
void toggleStencilGeometry(bool);
|
|
void toggleViewManager(bool);
|
|
|
|
void addPage( KivioPage* );
|
|
void removePage( KivioPage* );
|
|
void insertPage();
|
|
void removePage();
|
|
void renamePage();
|
|
void hidePage();
|
|
void showPage();
|
|
void viewZoom(int);
|
|
|
|
void groupStencils();
|
|
void ungroupStencils();
|
|
|
|
void selectAllStencils();
|
|
void unselectAllStencils();
|
|
|
|
void bringStencilToFront();
|
|
void sendStencilToBack();
|
|
|
|
void addStencilFromSpawner( KivioStencilSpawner *pSpawner, double x = 0.0, double y = 0.0 );
|
|
|
|
void changePage( const TQString& _name );
|
|
|
|
void updateToolBars();
|
|
|
|
void cutStencil();
|
|
void copyStencil();
|
|
void pasteStencil();
|
|
/// Called by the delete action
|
|
void deleteObject();
|
|
|
|
void alignStencilsDlg();
|
|
void optionsDialog();
|
|
|
|
void slotPageHidden( KivioPage* page );
|
|
void slotPageShown( KivioPage* page );
|
|
|
|
void setRulerPageLayout(const KoPageLayout& l);
|
|
|
|
void popupTabBarMenu( const TQPoint& point );
|
|
|
|
void initStatusBarProgress();
|
|
void setStatusBarProgress(int progress);
|
|
void removeStatusBarProgress();
|
|
|
|
void setActivePage( KivioPage* );
|
|
|
|
void setStatusBarInfo(const TQString& text);
|
|
|
|
protected slots:
|
|
void slotPageRenamed( KivioPage* page, const TQString& old_name );
|
|
void slotUpdateView( KivioPage *_page );
|
|
void slotUpdateGrid();
|
|
|
|
void setFGColor();
|
|
void setBGColor();
|
|
void setTextColor();
|
|
|
|
void setFontFamily( const TQString & );
|
|
void setFontSize( int );
|
|
|
|
void setLineWidth(double);
|
|
void setLineStyle(int);
|
|
|
|
void toggleFontBold(bool);
|
|
void toggleFontItalics(bool);
|
|
void toggleFontUnderline(bool);
|
|
|
|
void setHParaAlign( int );
|
|
void setVParaAlign( int );
|
|
void textAlignLeft();
|
|
void textAlignCenter();
|
|
void textAlignRight();
|
|
void textSuperScript();
|
|
void textSubScript();
|
|
void showAlign( int align );
|
|
void showVAlign( int align );
|
|
|
|
void slotSetStartArrow( int );
|
|
void slotSetEndArrow( int );
|
|
|
|
void slotSetStartArrowSize();
|
|
void slotSetEndArrowSize();
|
|
|
|
void slotChangeStencilPosition(double, double);
|
|
void slotChangeStencilSize(double, double);
|
|
void slotChangeStencilRotation(int);
|
|
|
|
void viewZoom(const TQString& s);
|
|
|
|
void addSpawnerToStackBar( KivioStencilSpawnerSet * );
|
|
void addStencilSet( const TQString& );
|
|
|
|
void setMousePos( int mx, int my );
|
|
void setRulerUnit(KoUnit::Unit);
|
|
void setRulerHOffset(int h);
|
|
void setRulerVOffset(int v);
|
|
void rulerChangedUnit(KoUnit::Unit u);
|
|
|
|
void textFormat();
|
|
void stencilFormat();
|
|
void arrowHeadFormat();
|
|
|
|
void clipboardDataChanged();
|
|
|
|
void installStencilSet();
|
|
|
|
/// This slot gets called when the loading has finished (doh!)
|
|
void loadingFinished();
|
|
|
|
void moveTab(unsigned tab, unsigned target);
|
|
|
|
void addGuideLine();
|
|
|
|
void showAddStencilSetDialog();
|
|
|
|
void updateRulers();
|
|
|
|
protected:
|
|
void setupActions();
|
|
void initActions();
|
|
|
|
virtual void updateReadWrite( bool readwrite );
|
|
virtual void partActivateEvent(KParts::PartActivateEvent* event);
|
|
|
|
void updatePageStatusLabel();
|
|
|
|
private:
|
|
KivioCanvas *m_pCanvas;
|
|
KoTabBar *m_pTabBar;
|
|
|
|
KAction* m_paperLayout;
|
|
KAction* m_insertPage;
|
|
KAction* m_removePage;
|
|
KAction* m_renamePage;
|
|
KAction* m_hidePage;
|
|
KAction* m_showPage;
|
|
KAction* m_arrowHeadsMenuAction;
|
|
KAction* m_menuTextFormatAction;
|
|
KAction* m_menuStencilConnectorsAction;
|
|
|
|
TKSelectColorAction *m_setFGColor;
|
|
TKSelectColorAction *m_setBGColor;
|
|
|
|
KFontAction *m_setFontFamily;
|
|
KFontSizeAction *m_setFontSize;
|
|
KToggleAction *m_setBold;
|
|
KToggleAction *m_setItalics;
|
|
KToggleAction *m_setUnderline;
|
|
TKSelectColorAction *m_setTextColor;
|
|
KToggleAction* m_textAlignLeft;
|
|
KToggleAction* m_textAlignCenter;
|
|
KToggleAction* m_textAlignRight;
|
|
KToggleAction* m_textVAlignSuper;
|
|
KToggleAction* m_textVAlignSub;
|
|
|
|
KivioArrowHeadAction* m_setArrowHeads;
|
|
|
|
TQStringList m_lineWidthList;
|
|
|
|
KivioDoc* m_pDoc;
|
|
KivioPage* m_pActivePage;
|
|
KivioStencilSpawnerSet* m_pActiveSpawnerSet;
|
|
|
|
StencilBarDockManager* m_pStencilBarDockManager;
|
|
KoPaletteManager* m_pPaletteManager;
|
|
|
|
KoRuler* vRuler;
|
|
KoRuler* hRuler;
|
|
|
|
KivioStencilGeometryPanel* m_pStencilGeometryPanel;
|
|
KivioLayerPanel* m_pLayersPanel;
|
|
KivioBirdEyePanel* m_pBirdEyePanel;
|
|
KivioProtectionPanel* m_pProtectionPanel;
|
|
Kivio::ObjectListPalette* m_objectListPalette;
|
|
KToggleAction* showPageMargins;
|
|
KToggleAction* showRulers;
|
|
KToggleAction* showGrid;
|
|
KToggleAction* showGuides;
|
|
KAction *m_selectAll;
|
|
KAction *m_selectNone;
|
|
KAction *m_editCopy;
|
|
KAction* m_editCut;
|
|
KAction* m_editPaste;
|
|
KAction* m_editDelete;
|
|
bool m_bShowPageMargins;
|
|
bool m_bShowRulers;
|
|
bool m_bSnapGuides;
|
|
bool m_bShowGuides;
|
|
|
|
DCOPObject *dcop;
|
|
|
|
KoZoomHandler* m_zoomHandler;
|
|
|
|
KStatusBarLabel* m_coordSLbl;
|
|
KStatusBarLabel* m_pageCountSLbl;
|
|
KStatusBarLabel* m_infoSLbl;
|
|
|
|
Kivio::PluginManager* m_pluginManager;
|
|
|
|
KAction* m_groupAction;
|
|
KAction* m_ungroupAction;
|
|
KAction* m_stencilToFront;
|
|
KAction* m_stencilToBack;
|
|
KAction* m_alignAndDistribute;
|
|
KoLineWidthAction* m_lineWidthAction;
|
|
KoLineStyleAction* m_lineStyleAction;
|
|
|
|
TQProgressBar* m_statusBarProgress;
|
|
|
|
TQScrollBar* m_vertScrollBar;
|
|
TQScrollBar* m_horzScrollBar;
|
|
Kivio::AddStencilTool* m_addStencilTool;
|
|
|
|
Kivio::AddStencilSetDialog* m_addStencilSetDialog;
|
|
};
|
|
|
|
#endif
|