|
|
|
/*
|
|
|
|
* Copyright (c) 2002-2003 Jesper K. Pedersen <blackie@kde.org>
|
|
|
|
*
|
|
|
|
* This library is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU Library General Public
|
|
|
|
* License version 2 as published by the Free Software Foundation.
|
|
|
|
*
|
|
|
|
* This library 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
|
|
|
|
* Library General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Library General Public License
|
|
|
|
* along with this library; see the file COPYING.LIB. If not, write to
|
|
|
|
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
|
|
* Boston, MA 02110-1301, USA.
|
|
|
|
**/
|
|
|
|
#ifndef __repeatwidget
|
|
|
|
#define __repeatwidget
|
|
|
|
|
|
|
|
#include "singlecontainerwidget.h"
|
|
|
|
#include <tqvbox.h>
|
|
|
|
class TQButtonGroup;
|
|
|
|
class KDialogBase;
|
|
|
|
class TQCheckBox;
|
|
|
|
class TQSpinBox;
|
|
|
|
class RepeatRegExp;
|
|
|
|
|
|
|
|
/**
|
|
|
|
Widget containging the configuration for a @ref RepeatWidget
|
|
|
|
@internal
|
|
|
|
*/
|
|
|
|
class RepeatRangeWindow :public TQVBox
|
|
|
|
{
|
|
|
|
TQ_OBJECT
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
enum REPEATTYPE {ANY, ATLEAST, ATMOST, EXACTLY, MINMAX};
|
|
|
|
|
|
|
|
RepeatRangeWindow( TQWidget* parent, const char* name = 0 );
|
|
|
|
TQString text();
|
|
|
|
int min();
|
|
|
|
int max();
|
|
|
|
void set( REPEATTYPE tp, int min, int max );
|
|
|
|
|
|
|
|
protected slots:
|
|
|
|
void slotItemChange( int which );
|
|
|
|
void slotUpdateMinVal( int minVal );
|
|
|
|
void slotUpdateMaxVal( int minVal );
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
void createLine( TQWidget* parent, TQString text, TQSpinBox** spin, REPEATTYPE tp );
|
|
|
|
|
|
|
|
TQSpinBox* _leastTimes;
|
|
|
|
TQSpinBox* _mostTimes;
|
|
|
|
TQSpinBox* _exactlyTimes;
|
|
|
|
TQSpinBox* _rangeFrom;
|
|
|
|
TQSpinBox* _rangeTo;
|
|
|
|
TQButtonGroup* _group;
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
RegExp widget for `repeated content'
|
|
|
|
@internal
|
|
|
|
*/
|
|
|
|
class RepeatWidget :public SingleContainerWidget
|
|
|
|
{
|
|
|
|
TQ_OBJECT
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
RepeatWidget( RegExpEditorWindow* editorWindow, TQWidget *parent,
|
|
|
|
const char *name = 0);
|
|
|
|
RepeatWidget( RepeatRegExp* regexp, RegExpEditorWindow* editorWindow,
|
|
|
|
TQWidget* parent, const char* name = 0);
|
|
|
|
void init();
|
|
|
|
virtual TQSize sizeHint() const;
|
|
|
|
virtual RegExp* regExp() const;
|
|
|
|
virtual RegExpType type() const { return REPEAT; }
|
|
|
|
virtual int edit();
|
|
|
|
|
|
|
|
protected:
|
|
|
|
virtual void paintEvent( TQPaintEvent *e );
|
|
|
|
|
|
|
|
protected slots:
|
|
|
|
void slotConfigCanceled();
|
|
|
|
void slotConfigWindowClosed();
|
|
|
|
|
|
|
|
private:
|
|
|
|
KDialogBase* _configWindow;
|
|
|
|
RepeatRangeWindow* _content;
|
|
|
|
|
|
|
|
mutable TQSize _textSize;
|
|
|
|
mutable TQSize _childSize;
|
|
|
|
TQByteArray _backup;
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#endif // __repeatwidget
|