Subversion Repositories Scribus


Rev 6057 | Rev 6722 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

For general Scribus (>=1.3.2) copyright and licensing information please refer
to the COPYING file provided with the program. Following this notice may exist
a copyright and/or license notice that predates the release of Scribus 1.3.2
for which a new license (GPL+exception) is in place.

#ifndef MPALETTE_H
#define MPALETTE_H

#include <qbuttongroup.h>
#include <qcheckbox.h>
#include <qcombobox.h>
#include <qframe.h>
#include <qgroupbox.h>
#include <qlabel.h>
#include <qpushbutton.h>
#include <qradiobutton.h>
#include <qspinbox.h>
#include <qtoolbutton.h>
#include <qwidget.h>
#include <qwidgetstack.h>
#include <qlayout.h>
#include <qtooltip.h>
#include <qimage.h>
#include <qpixmap.h>
#include <qlistbox.h>
#include <qlineedit.h>
#include <qtimer.h>
#include <qtoolbox.h>
#include <qpopupmenu.h>

#include "scribusapi.h"
#include "scrpalettebase.h"
#include "mspinbox.h"
#include "pageitem.h"
#include "page.h"
class ScribusDoc;
#include "linkbutton.h"
#include "linecombo.h"
#include "spalette.h"
#include "fontcombo.h"
#include "colorcombo.h"
class StyleSelect;
#include "alignselect.h"
#include "shadebutton.h"
class Cpalette;
class Autoforms;
class ArrowChooser;
class ScComboBox;
class ScribusMainWindow;
class UserActionSniffer;
class SCRIBUS_API LabelButton : public QLabel

        LabelButton(QWidget* parent, QString text1, QString text2);
        ~LabelButton() {};
        void setTexts(QString text1, QString text2);
        bool getState();

        bool state;
        QString TextA;
        QString TextB;

        void clicked();

        virtual void enterEvent(QEvent*);
        virtual void leaveEvent(QEvent*);
        virtual void mousePressEvent(QMouseEvent*);
        virtual void mouseReleaseEvent(QMouseEvent *);

class SCRIBUS_API NameWidget : public QLineEdit

        NameWidget(QWidget* parent);
        ~NameWidget() {};

        void Leaved();

        virtual void focusOutEvent(QFocusEvent *);

class SCRIBUS_API Mpalette : public ScrPaletteBase

        Mpalette(QWidget* parent);
        ~Mpalette() {};
        void updateColorSpecialGradient();
        const VGradient getFillGradient();
        void updateColorList();
        void setGradientEditMode(bool);
        void updateCList();
        void updateCmsList();
        void setTextFlowMode(PageItem::TextFlowMode mode);
        void ShowCMS();
        /*! \brief fills the langs combobox in language specific order
        \author 10/07/2004 - Petr Vanek - rewritten to fix #1185.
        Uses sortQStringList from utils.cpp - STL!
        \param langMap a structure with languages/hyphs*/

        void fillLangCombo(QMap<QString,QString> langMap);
        /** @brief Returns true if there is a user action going on at the moment of call. */
        bool userActionOn(); // not yet implemented!!! This is needed badly.
                         // When user releases the mouse button or arrow key, changes must be checked
                         // and if in ScribusView a groupTransaction has been started it must be also
                         // commmited

        Cpalette *Cpal;
        Autoforms* SCustom;
        Autoforms* SCustom2;
        Spalette *Spal;
        FontComboH* Fonts;
        ArrowChooser* startArrow;
        ArrowChooser* endArrow;
        QButtonGroup* RotationGroup;
        QButtonGroup* textFlowOptions; 
public slots:
        void setMainWindow(ScribusMainWindow *mw);
        void languageChange();
        void setDoc(ScribusDoc *d);
        void unsetDoc();
        void unsetItem();
        void setCurrentItem(PageItem *);
        void setMultipleSelection(bool);
        void NewSel(int nr);
        void SetCurItem(PageItem *i);
        void unitChange();
        void setLevel(uint l);
        void setXY(double x, double y);
        void setBH(double x, double y);
        void setR(double r);
        void setRR(double r);
        void setCols(int r, double g);
        void setLspMode(int id);
        void setLsp(double r);
        void setSize(int s);
        void setFontFace(QString);
        void setExtra(int e);
        void setDvals(double left, double top, double bottom, double right);
        void ChangeScaling();
        void setLvalue(double scx, double scy, double x, double y);
        void setSvalue(double s);
        void setLIvalue(Qt::PenStyle p, Qt::PenCapStyle pc, Qt::PenJoinStyle pj);
        void setStil(int s);
        void setAli(int e);
        void setParStyle(int e);
        void setShadowOffs(int x, int y);
        void setUnderline(int p, int w);
        void newUnderline();
        void setStrike(int p, int w);
        void newStrike();
        void setOutlineW(int x);
        void newOutlineW();
        void setTScale(int e);
        void NewTScale();
        void NewTScaleV();
        void NewTBase();
        void setTScaleV(int e);
        void setTBase(int e);
        void SetLineFormats(ScribusDoc *dd);
        void SetSTline(QListBoxItem *c);
        void NewTFont(QString);
        void newTxtFill();
        void newTxtStroke();
        void setActShade();
        void setActFarben(QString p, QString b, int shp, int shb);
        void ManageTabs();
        void setLocked(bool);
        void setSizeLocked(bool);
        void setPrintingEnabled(bool);
        void setFlippedH(bool);
        void setFlippedV(bool);

private slots:

        void SelTab(int t);
        void NewX();
        void NewY();
        void NewW();
        void NewH();
        void NewR();
        void NewRR();
        void NewLsp();
        void HandleGapSwitch();
        void NewCols();
        void NewGap();
        void NewSize();
        void NewExtra();
        void handleFlipH();
        void handleFlipV();
        void ToggleKette();
        void HChange();
        void VChange();
        void ToggleKetteD();
        void HChangeD();
        void VChangeD();
        void NewLocalXY();
        void NewLocalSC();
        void NewLocalDpi();
        void EditEff();
        void EditPSD();
        void NewLS();
        void NewLSty();
        void NewLJoin();
        void NewLEnd();
        void NewAli(int a);
        void setTypeStyle(int s);
        void newShadowOffs();
        void NewLMode();
        void DoLower();
        void DoRaise();
        void DoFront();
        void DoBack();
        void NewRotMode(int m);
        void DoFlow(int id);
        void MakeIrre(int f, int c, double *vals);
        void EditSh();
        void EditSh2();
        void NewTDist();
        void NewSpGradient(double x1, double y1, double x2, double y2);
        void toggleGradientEdit();
        void DoRevert();
        void handleLock();
        void handleLockSize();
        void handlePrint();
        void handlePathLine();
        void handlePathDist();
        void handlePathOffs();
        void handleFillRule();
        void handleOverprint();
        void ChProf(const QString& prn);
        void ChIntent();
        void NewName();
        void NewLanguage();
        void HandleTLines();
        void setStartArrow(int id);
        void setEndArrow(int id);
        void setGroupTransparency(int trans);
        void setGroupBlending(int blend);

protected slots:
        //virtual void reject();
        void mspinboxStartUserAction();
        void mspinboxFinishUserAction();
        void updateSpinBoxConstants();

        void DocChanged();
        void NewParStyle(int);
        void NewAlignment(int);
        void NewEffects(int);
        void ShapeEdit();
        void NewFont(const QString&);
        void UpdtGui(int);

        ScribusMainWindow *m_ScMW;
        QVBoxLayout* MpalLayout;
        QVBoxLayout* pageLayout;
        QVBoxLayout* pageLayout_2;
        QVBoxLayout* pageLayout_2a;
        QVBoxLayout* pageLayout_2b;
        QVBoxLayout* pageLayout_2c;
        QVBoxLayout* pageLayout_3;
        QVBoxLayout* pageLayout_4;
        QVBoxLayout* pageLayout_5;
        QVBoxLayout* pageLayout_5a;
        QVBoxLayout* pageLayout_5b;
        QVBoxLayout* pageLayout_6;
        QVBoxLayout* OverPLayout;
        QVBoxLayout* TLineLayout;
        QHBoxLayout* layout60;
        QGridLayout* Layout44;
        QHBoxLayout* Layout13;
        QGridLayout* Layout12;
        QHBoxLayout* layout47;
        QVBoxLayout* layout46;
        QGridLayout* layout41;
        QHBoxLayout* Layout1;
        QGridLayout* layout43;
        QVBoxLayout* Layout24;
        QHBoxLayout* Layout18;
        QHBoxLayout* Layout13_2;
        QGridLayout* Layout12_2;
        QHBoxLayout* NameGroupLayout;
        QGridLayout* GeoGroupLayout;
        QGridLayout* LayerGroupLayout;
        QHBoxLayout* RotationGroupLayout;
        QHBoxLayout* ShapeGroupLayout;
        QGridLayout* DistanceLayout;
        QGridLayout* DistanceLayout2;
        QVBoxLayout* DistanceLayout3;
        QGridLayout* GroupBox3aLayout;
        QVBoxLayout* GroupBoxCMLayout;
        QVBoxLayout* textFlowOptionsLayout;
        QHBoxLayout* layout23;
        QHBoxLayout* layout24;
        QVBoxLayout* page_group_layout;
        QHBoxLayout* ShapeGroupLayout2;
        QGridLayout* Layout1t;
        NameWidget* NameEdit;
        QWidget* page;
        QWidget* page_2;
        QWidget* page_2a;
        QWidget* page_2b;
        QWidget* page_2c;
        QWidget* page_3;
        QWidget* page_4;
        QWidget* page_5;
        QWidget* page_5a;
        QWidget* page_5b;
        QWidget* page_6;
        QWidget* page_group;
        QLabel* xposLabel;
        QLabel* widthLabel;
        QLabel* yposLabel;
        QLabel* heightLabel;
        QLabel* rotationLabel;
        QLabel* basepointLabel;
        QLabel* LevelTxt;
        QLabel* SRect;
        QLabel* SRect2;
        QLabel* rndcornersLabel;
        QLabel* startoffsetLabel;
        QLabel* distfromcurveLabel;
        QLabel* topLabel;
        QLabel* columnsLabel;
        QLabel* bottomLabel;
        QLabel* leftLabel;
        QLabel* rightLabel;
        QLabel* trackingLabel;
        QLabel* fontsizeLabel;
        QLabel* yscaleLabel;
        QLabel* xscaleLabel;
        QLabel* xposImgLabel;
        QLabel* yposImgLabel;
        QLabel* linewidthLabel;
        QLabel* endingsLabel;
        QLabel* linetypeLabel;
        QLabel* StrokeIcon;
        QLabel* ShadeTxt2;
        QLabel* ShadeTxt1;
        QLabel* FillIcon;
        QLabel* styleLabel;
        QLabel* langLabel;
        QLabel* LineModeT;
        QLabel* TextCms1;
        QLabel* TextCms2;
        QLabel* edgesLabel;
        QLabel* ChBaseTxt;
        QLabel* ScaleTxt;
        QLabel* ScaleTxtV;
        QLabel* imgDPIXLabel;
        QLabel* imgDPIYLabel;
        QLabel* startArrowText;
        QLabel* endArrowText;
        QLabel* TransTxt;
        QLabel* TransTxt2;

//      LabelButton* colgapLabel;
        ScComboBox* colgapLabel;
        StyleSelect* SeStyle;
        AlignSelect* GroupAlign;

        LinkButton* keepImageWHRatioButton;
        LinkButton* keepFrameWHRatioButton;
        LinkButton* keepImageDPIRatioButton;
        LineCombo* LStyle;

        ShadeButton *PM1;
        ShadeButton *PM2;
        PageItem *CurItem;
        bool HaveDoc;
        bool HaveItem;
        ScribusDoc *doc;
        double Umrech;
        bool LMode;
        double RoVal;

        QButtonGroup* ShapeGroup;
        QButtonGroup* ShapeGroup2;
        QButtonGroup* Distance3;
        QButtonGroup* OverP;

        QToolButton* TabsButton;

        QToolButton* Zup;
        QToolButton* ZDown;
        QToolButton* ZTop;
        QToolButton* ZBottom;

        QToolBox* TabStack;
        QWidgetStack* TabStack2;
        QWidgetStack* TabStack3;

        QGroupBox* NameGroup;
        QGroupBox* GeoGroup;
        QGroupBox* LayerGroup;
        QGroupBox* Distance;
        QGroupBox* Distance2;
        QGroupBox* GroupBoxCM;
        QGroupBox* TLines;
        QGroupBox* GroupBox3a;
        QGroupBox* TransGroup;

        QToolButton* textFlowDisabled;
        QToolButton* textFlowUsesFrameShape;
        QToolButton* textFlowUsesBoundingBox;
        QToolButton* textFlowUsesContourLine;
        QCheckBox* Aspect;
        QCheckBox* showcurveCheckBox;
        QCheckBox* TopLine;
        QCheckBox* LeftLine;
        QCheckBox* RightLine;
        QCheckBox* BottomLine;

        QComboBox* langCombo;
        QComboBox* InputP;
        QComboBox* MonitorI;
        QComboBox* LineMode;
        ColorCombo* TxStroke;
        QComboBox* LJoinStyle;
        QComboBox* LEndStyle;
        ColorCombo* TxFill;
        ScComboBox* blendMode;

        QListBox* StyledLine;

        MSpinBox* Width;
        MSpinBox* Xpos;
        MSpinBox* Ypos;
        MSpinBox* Height;
        MSpinBox* Rot;
        MSpinBox* RoundRect;
        MSpinBox* dGap;
        MSpinBox* DTop;
        MSpinBox* DBottom;
        MSpinBox* DLeft;
        MSpinBox* DRight;
        MSpinBox* Dist;
        MSpinBox* LineW;
        MSpinBox* Size;
        MSpinBox* LineSp;
        MSpinBox* Extra;
        MSpinBox* imageYOffsetSpinBox;
        MSpinBox* imageXOffsetSpinBox;
        MSpinBox* imageYScaleSpinBox;
        MSpinBox* imageXScaleSpinBox;
        MSpinBox* imgDpiX;
        MSpinBox* imgDpiY;
        MSpinBox* LSize;

        MSpinBox* ChScale;
        MSpinBox* ChScaleV;
        MSpinBox* ChBase;
        QSpinBox* DCol;
        QSpinBox* TransSpin;

        QRadioButton* TopLeft;
        QRadioButton* TopRight;
        QRadioButton* Center;
        QRadioButton* BottomLeft;
        QRadioButton* BottomRight;
        QRadioButton* FreeScale;
        QRadioButton* FrameScale;
        QRadioButton* EvenOdd;
        QRadioButton* NonZero;
        QRadioButton* KnockOut;
        QRadioButton* Overprint;

        QFrame* Line1;
        QFrame* Line2;
        QFrame* Line4;
        QFrame* Line5;
        QFrame* Line5_2;
        QFrame* Frame4;

        QPopupMenu* lineSpacingPop;

        QToolButton* linespacingButton;
        QToolButton* FlipH;
        QToolButton* FlipV;
        QToolButton* Locked;
        QToolButton* NoPrint;
        QToolButton* NoResize;
        QToolButton* Revert;
        QToolButton* EditShape;
        QToolButton* EditShape2;
        QToolButton* EditEffects;
        QToolButton* EditPSDProps;

        bool _userActionOn;
        UserActionSniffer *userActionSniffer;
        void installSniffer(MSpinBox *spinBox);
        int idXYZItem;
        int idShapeItem;
        int idTextItem;
        int idImageItem;
        int idLineItem;
        int idColorsItem;
        int idGroupItem;

class SCRIBUS_API UserActionSniffer : public QObject

        bool eventFilter( QObject *o, QEvent *e );
        void actionStart();
        void actionEnd();