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.

122 lines
3.5 KiB

/***************************************************************************
ksgraphwizard.h - description
-------------------
begin : Thu Mar 14 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 KSGRAPHWIZARD_H
#define KSGRAPHWIZARD_H
#include <qwidget.h>
#include <qvaluevector.h>
#include <qiconview.h>
#include "ksgraphwizardinterf.h"
#include "../ksdataobjectfactory.h"
class QSAxes;
class QSPlotView;
class KSWorkbook;
class KSSheet;
class QSAxesChild;
class KSMatrixEditorInterf;
//---------------------------------------------------------------------------//
struct KSGraphChannelInfo {
KSSheet *m_sheet;
QPoint m_editor_pos;
QRect m_selection;
bool m_use_formula;
QString m_formula;
QString m_name;
QString m_description;
KSGraphChannelInfo() { m_sheet = NULL; m_use_formula=false; }
~KSGraphChannelInfo() {}
};
//---------------------------------------------------------------------------//
typedef QValueVector<KSGraphChannelInfo> KSGraphInfo;
//---------------------------------------------------------------------------//
class KSGraphSubtypeItem : public QIconViewItem
{
public:
KSGraphSubtypeItem( QIconView *parent, KSDataObjectFactory::DataObject objectType, const QString& title, const QString& icon );
virtual ~KSGraphSubtypeItem();
virtual void initChannels( KSGraphInfo *info );
virtual QWidget *additionalPage( QWidget *parent );
virtual QSAxesChild *createObject( QSAxes *parent );
private:
KSGraphInfo m_graph_info;
KSDataObjectFactory::DataObject m_object_type;
void show_page_1();
};
/**
class KSGraphPreview : public QWidget
{
Q_OBJECT
public:
void setAxes( bool axes3d );
QSAxes *axes();
};
*/
//---------------------------------------------------------------------------//
/**
*@author kamil
*/
class KSGraphWizard : public KSGraphWizardInterf {
Q_OBJECT
public:
KSGraphWizard( QSPlotView *view, KSWorkbook *workbook, QWidget *parent=0, const char *name=0);
virtual ~KSGraphWizard();
virtual void showPage( QWidget *page );
virtual bool eventFilter( QObject *watched, QEvent *e );
private:
QSAxes *m_preview_axes;
QSAxes *m_new_axes;
QSAxesChild *m_new_dataset;
QSPlotView *m_view;
KSWorkbook *m_workbook;
KSGraphInfo m_graph_info;
KSMatrixEditorInterf *m_sheet_editor;
bool m_watch_data_page;
QSAxesChild *create_graph();
void set_watch_data_page( bool enabled );
void show_page_data();
void show_page_finish();
void create_data( QSData *object );
void clear_preview();
void apply_dataset();
private slots:
void slot_page_type_changed();
void slot_graph_type_changed( int index );
void slot_channel_selected( int index );
void slot_clear_channel();
void slot_channel_data_changed();
void accept();
};
#endif