File indexing completed on 2024-03-24 05:54:36
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 altnwidget 0008 #define altnwidget 0009 0010 #include "multicontainerwidget.h" 0011 0012 class QPaintEvent; 0013 class AltnRegExp; 0014 0015 /** 0016 RegExp widget for alternatives. 0017 0018 @internal 0019 */ 0020 class AltnWidget : public MultiContainerWidget 0021 { 0022 public: 0023 AltnWidget(RegExpEditorWindow *editorWindow, QWidget *parent); 0024 AltnWidget(AltnRegExp *regexp, RegExpEditorWindow *editorWindow, QWidget *parent); 0025 void addNewChild(DragAccepter *accepter, RegExpWidget *child) override; 0026 QSize sizeHint() const override; 0027 RegExp *regExp() const override; 0028 void applyRegExpToSelection(RegExpType type) override; 0029 RegExpType type() const override 0030 { 0031 return ALTN; 0032 } 0033 0034 RegExp *selection() const override; 0035 bool validateSelection() const override; 0036 void setConcChild(ConcWidget *child) override; 0037 void addNewConcChild(DragAccepter *accepter, ConcWidget *child) override; 0038 void deleteSelection() override; 0039 0040 protected: 0041 void paintEvent(QPaintEvent *e) override; 0042 0043 private: 0044 /** 0045 This functions runs through all the dragaccepters and calls @ref 0046 DragAccepter::setDrawLine. 0047 */ 0048 void updateDrawLineInfo(); 0049 0050 QString _text; 0051 mutable QSize _textSize; 0052 0053 mutable int _childrenWidth; 0054 mutable int _childrenHeight; 0055 }; 0056 0057 #endif // altnwidget