File indexing completed on 2024-04-14 05:44:27
0001 /* 0002 * SPDX-FileCopyrightText: 2002-2003 Jesper K. Pedersen <blackie@kde.org> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.0-only 0005 **/ 0006 0007 #ifndef zerowidget 0008 #define zerowidget 0009 0010 #include "regexpwidget.h" 0011 0012 /** 0013 Represents any widget in the regular expression dialog, which do not have sub widget. 0014 @internal 0015 */ 0016 class ZeroWidget : public RegExpWidget 0017 { 0018 public: 0019 ZeroWidget(const QString &text, RegExpEditorWindow *editorWindow, QWidget *parent); 0020 void addNewChild(DragAccepter *accepter, RegExpWidget *child) override; 0021 QSize sizeHint() const override; 0022 0023 protected: 0024 void paintEvent(QPaintEvent *e) override; 0025 0026 private: 0027 QString _text; 0028 0029 mutable QSize _textSize; 0030 mutable QSize _boxSize; 0031 }; 0032 0033 /** 0034 RegExp widget for `any single character' 0035 @internal 0036 */ 0037 class AnyCharWidget : public ZeroWidget 0038 { 0039 public: 0040 AnyCharWidget(RegExpEditorWindow *editorWindow, QWidget *parent); 0041 0042 RegExp *regExp() const override; 0043 RegExpType type() const override 0044 { 0045 return DOT; 0046 } 0047 }; 0048 0049 /** 0050 RegExp widget for `beginning of line' 0051 @internal 0052 */ 0053 class BegLineWidget : public ZeroWidget 0054 { 0055 public: 0056 BegLineWidget(RegExpEditorWindow *editorWindow, QWidget *parent); 0057 RegExp *regExp() const override; 0058 RegExpType type() const override 0059 { 0060 return BEGLINE; 0061 } 0062 }; 0063 0064 /** 0065 RegExp widget for `end of line' 0066 @internal 0067 */ 0068 class EndLineWidget : public ZeroWidget 0069 { 0070 public: 0071 EndLineWidget(RegExpEditorWindow *editorWindow, QWidget *parent); 0072 RegExp *regExp() const override; 0073 RegExpType type() const override 0074 { 0075 return ENDLINE; 0076 } 0077 }; 0078 0079 /** 0080 RegExp widget for `word boundary' 0081 @internal 0082 */ 0083 class WordBoundaryWidget : public ZeroWidget 0084 { 0085 public: 0086 WordBoundaryWidget(RegExpEditorWindow *editorWindow, QWidget *parent); 0087 RegExp *regExp() const override; 0088 RegExpType type() const override 0089 { 0090 return WORDBOUNDARY; 0091 } 0092 }; 0093 0094 /** 0095 RegExp widget for `end of word' 0096 @internal 0097 */ 0098 class NonWordBoundaryWidget : public ZeroWidget 0099 { 0100 public: 0101 NonWordBoundaryWidget(RegExpEditorWindow *editorWindow, QWidget *parent); 0102 RegExp *regExp() const override; 0103 RegExpType type() const override 0104 { 0105 return NONWORDBOUNDARY; 0106 } 0107 }; 0108 0109 #endif // zerowidget