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.
205 lines
5.7 KiB
205 lines
5.7 KiB
/***************************************************************************
|
|
ksworkspace.h - description
|
|
-------------------
|
|
begin : Thu Jan 17 2002
|
|
copyright : (C) 2002 by kamil
|
|
email : kamil@localhost.localdomain
|
|
***************************************************************************/
|
|
|
|
/***************************************************************************
|
|
* *
|
|
* 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 KSWORKSPACE_H
|
|
#define KSWORKSPACE_H
|
|
|
|
#include <qwidget.h>
|
|
#include <qstring.h>
|
|
#include <qpixmap.h>
|
|
#include <qpushbutton.h>
|
|
|
|
class QAction;
|
|
class QWorkspace;
|
|
class QPushButton;
|
|
class QHButtonGroup;
|
|
class KMatplotShell;
|
|
class KSWorkspaceWindow;
|
|
class KSWindowButton;
|
|
|
|
/**
|
|
* MDI interface for KSWorkspace windows.
|
|
*@author kamil
|
|
*/
|
|
class KSWorkspace : public QWidget {
|
|
friend class KSWorkspaceWindow;
|
|
Q_OBJECT
|
|
public:
|
|
/**
|
|
* Constructor
|
|
*/
|
|
KSWorkspace( KMatplotShell *shell, const char *name=0 );
|
|
/**
|
|
* Destructor
|
|
*/
|
|
virtual ~KSWorkspace();
|
|
QWorkspace *workspace() const { return m_workspace; }
|
|
KMatplotShell *shell() const { return m_shell; }
|
|
KSWorkspaceWindow *activeWindow() const;
|
|
virtual bool eventFilter( QObject *o, QEvent *e );
|
|
|
|
protected:
|
|
/**
|
|
* This is called by the contructor of the workspace window. It creates window button.
|
|
*/
|
|
KSWindowButton *addWindow( KSWorkspaceWindow *w );
|
|
/**
|
|
* Called form KSWorkspaceWindow destructor. Deactivates window if it is active and deletes
|
|
* window button.
|
|
*/
|
|
void removeWindow( KSWorkspaceWindow *w );
|
|
/**
|
|
* Called when window 'w' is activated. Sets window active, sets window button to 'on'
|
|
* creates object and property panels.
|
|
*/
|
|
void windowActivate( KSWorkspaceWindow *w );
|
|
/**
|
|
* Called when window 'w' is deactivated. Deactivates window, sets window button to 'off',
|
|
* deletes object and property panel.
|
|
*/
|
|
void windowDeactivate( KSWorkspaceWindow *w );
|
|
QWorkspace *m_workspace;
|
|
KMatplotShell *m_shell;
|
|
QWidget *m_button_bar;
|
|
QHButtonGroup *m_buttons;
|
|
|
|
protected slots:
|
|
void slot_window_activated( QWidget *w );
|
|
};
|
|
|
|
|
|
//--------------------------------------------------------------------//
|
|
|
|
/**
|
|
* MDI child window of KSWorkspace..
|
|
*/
|
|
class KSWorkspaceWindow : public QWidget {
|
|
friend class KSWorkspace;
|
|
public:
|
|
/**
|
|
* Constructor.
|
|
*/
|
|
KSWorkspaceWindow( KSWorkspace *workspace, const QString& caption, const QPixmap& icon, WFlags f=0 );
|
|
/**
|
|
* Destructor.
|
|
*/
|
|
virtual ~KSWorkspaceWindow();
|
|
/**
|
|
* Sets caption and a button title.
|
|
*/
|
|
void setTitle( const QString& newTitle );
|
|
/**
|
|
* Return caption.
|
|
*/
|
|
QString title() const { return caption(); }
|
|
/**
|
|
* Returns if the window is active.
|
|
*/
|
|
bool isActive() const { return m_active; }
|
|
/**
|
|
* Sets the main widget.
|
|
*/
|
|
void setContents( QWidget *contents );
|
|
/**
|
|
* Returns the main widget.
|
|
*/
|
|
QWidget *contents() const { return m_contents; }
|
|
/**
|
|
* Returns a button attached to this window.
|
|
*/
|
|
KSWindowButton *button() const { return m_button; }
|
|
/**
|
|
* Called when window is activated( gains focus ).
|
|
*/
|
|
virtual void activated() {}
|
|
/**
|
|
* Called when window is deactivated.
|
|
*/
|
|
virtual void deactivated() {}
|
|
/**
|
|
* Action cut called in the main window
|
|
*/
|
|
virtual void cut() {}
|
|
/**
|
|
* Action copy called in the main window
|
|
*/
|
|
virtual void copy() {}
|
|
/**
|
|
* Action copyAll called in the main window
|
|
*/
|
|
virtual void copyAll() {}
|
|
/**
|
|
* Action paste called in the main window
|
|
*/
|
|
virtual void paste() {}
|
|
/**
|
|
* Action delete called in the main window
|
|
*/
|
|
virtual void del() {}
|
|
/**
|
|
* The main window - KMatplotShell routes called actions to the currently active
|
|
* window by this fuction. Notice
|
|
* that the standard actions: cut, sopy, paste, delete, are not
|
|
* routed by this function but a special functions are called directly.
|
|
*/
|
|
virtual void doAction( QAction* /*action*/ ) {}
|
|
/**
|
|
* Reimplement this function to create an object ( side ) panel.
|
|
* This panel is created when windows becomes active and is deleted
|
|
* when it becomes inactive.
|
|
*/
|
|
virtual QWidget *createObjectPanel( QWidget *parent ) { return NULL; }
|
|
/**
|
|
* Reimplement this function to create an property ( bottom ) panel.
|
|
* This panel is created when windows becomes active and is deleted
|
|
* when it becomes inactive.
|
|
*/
|
|
virtual QWidget *createPropertyPanel( QWidget *parent ) { return NULL; }
|
|
|
|
protected:
|
|
virtual void setActive( bool enable );
|
|
virtual void resizeEvent( QResizeEvent *event );
|
|
virtual void focusInEvent( QFocusEvent *event );
|
|
virtual void focusOutEvent( QFocusEvent *event );
|
|
KSWorkspace *m_workspace;
|
|
QWidget *m_contents;
|
|
KSWindowButton *m_button;
|
|
bool m_active;
|
|
};
|
|
|
|
//--------------------------------------------------------------------//
|
|
|
|
/*
|
|
* Internal
|
|
*/
|
|
class KSWindowButton : public QPushButton
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
KSWindowButton( KSWorkspaceWindow *window, QWidget *parent );
|
|
virtual ~KSWindowButton();
|
|
virtual KSWorkspaceWindow *window() const { return m_window; }
|
|
protected:
|
|
KSWorkspaceWindow *m_window;
|
|
virtual void contextMenuEvent ( QContextMenuEvent *e );
|
|
protected slots:
|
|
void slot_button_pressed();
|
|
|
|
};
|
|
|
|
#endif
|