Logo Search packages:      
Sourcecode: ktechlab version File versions  Download package

view.h

/***************************************************************************
 *   Copyright (C) 2005 by David Saxton                                    *
 *   david@bluehaze.org                                                    *
 *                                                                         *
 *   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 VIEW_H
#define VIEW_H

#include <kstatusbar.h>
#include <kurl.h>
#include <kxmlguiclient.h>
#include <qguardedptr.h>
#include <qpixmap.h>

class DCOPObject;
class Document;
class KSqueezedTextLabel;
class KTechlab;
class View;
class ViewContainer;
class ViewIface;
class QVBoxLayout;

class ViewStatusBar : public KStatusBar
{
Q_OBJECT
public:
      ViewStatusBar( View *view );
      
      enum InfoId
      {
            SimulationState,
            LineCol,
            InsertMode,
            SelectionMode
      };
      
public slots:
      void slotModifiedStateChanged();
      void slotFileNameChanged( const KURL &url );
      void slotViewFocused( View * );
      void slotViewUnfocused();
      
protected:
      View *p_view;
      QLabel* m_modifiedLabel;
      KSqueezedTextLabel* m_fileNameLabel;
      QPixmap m_modifiedPixmap;
      QPixmap m_unmodifiedPixmap;
};

/**
@author David Saxton
*/
00060 class View : public QWidget, public KXMLGUIClient
{
Q_OBJECT
public:
      View( Document *document, ViewContainer *viewContainer, uint viewAreaId, const char *name = 0 );
      virtual ~View();
      
      KAction * action( const QString & name ) const;
      bool isFocused() const { return b_isFocused; }
      /**
       * Pointer to the parent document
       */
00072       Document *document() const { return m_pDocument; }
      /**
       * Returns the DCOP object from this view
       */
      DCOPObject * dcopObject() const;
      /**
       * Returns the dcop suffix for this view - a unique ID for the current the
       * view within all views associated with the parent document. DCOP name
       * will become "View#docID#viewID".
       */
00082       unsigned dcopID() const { return m_dcopID; }
      /**
       * Sets the dcop suffix. The DCOP object for this view will be renamed.
       * @see dcopID
       */
      void setDCOPID( unsigned id );
      /**
       * Pointer to the ViewContainer that we're in
       */
00091       ViewContainer *viewContainer() const { return p_viewContainer; }
      /**
       * Tells the view container which contains this view to close this view,
       * returning true if successful (i.e. not both last view and unsaved, etc)
       */
      virtual bool closeView();
      /**
       * Returns the unique (for the view container) view area id associated with this view
       */
00100       uint viewAreaId() const { return m_viewAreaId; }
      /**
       * Zoom in
       */
00104       virtual void viewZoomIn() {};
      /**
       * Zoom out
       */
00108       virtual void viewZoomOut() {};
      virtual bool canZoomIn() const { return true; }
      virtual bool canZoomOut() const { return true; }
      /**
       * Restore view to actual size
       */
00114       virtual void actualSize() {};
      
      virtual void toggleBreakpoint() {};
      /**
       * Called by ktechlab when it has entered its destructor to avoid calls to
       * it (such as from the TextView destructor).
       */
00121       void setKTechlabDeleted() { p_ktechlab = 0l; }
      
public slots:
      /**
       * Called when the view is to be focused (enables actions, etc)
       */
      virtual void setFocused();
      /**
       * Called when the view is to be unfocused (disables actions, etc)
       */
      virtual void setUnfocused();

protected slots:
      /**
       * Called when the user changes the configuration.
       */
00137       virtual void slotUpdateConfiguration() {};
      
signals:
      void viewFocused( View *view );
      void viewUnfocused();
      
protected:
      QGuardedPtr<Document> m_pDocument;
      KTechlab * p_ktechlab;
      QGuardedPtr<ViewContainer> p_viewContainer;
      uint m_viewAreaId;
      bool b_isFocused;
      ViewStatusBar *m_statusBar;
      QVBoxLayout *m_layout;
      ViewIface * m_pViewIface;
      unsigned m_dcopID;
};

#endif

Generated by  Doxygen 1.6.0   Back to index