98 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #ifndef breezedetectwidget_h
 | |
| #define breezedetectwidget_h
 | |
| 
 | |
| //////////////////////////////////////////////////////////////////////////////
 | |
| // breezedetectwidget.h
 | |
| // Note: this class is a stripped down version of
 | |
| // /kdebase/workspace/kwin/kcmkwin/kwinrules/detectwidget.h
 | |
| // SPDX-FileCopyrightText: 2004 Lubos Lunak <l.lunak@kde.org>
 | |
| 
 | |
| // -------------------
 | |
| //
 | |
| // SPDX-FileCopyrightText: 2009 Hugo Pereira Da Costa <hugo.pereira@free.fr>
 | |
| //
 | |
| // SPDX-License-Identifier: MIT
 | |
| //////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| #include "breezesettings.h"
 | |
| #include "ui_breezedetectwidget.h"
 | |
| 
 | |
| #include <QByteArray>
 | |
| #include <QCheckBox>
 | |
| #include <QDialog>
 | |
| #include <QEvent>
 | |
| #include <QLabel>
 | |
| 
 | |
| #include <kwindowsystem.h>
 | |
| 
 | |
| namespace Breeze
 | |
| {
 | |
| 
 | |
|     class DetectDialog : public QDialog
 | |
|     {
 | |
| 
 | |
|         Q_OBJECT
 | |
| 
 | |
|         public:
 | |
| 
 | |
|         //* constructor
 | |
|         explicit DetectDialog( QWidget* );
 | |
| 
 | |
|         //* read window properties or select one from mouse grab
 | |
|         void detect( WId window );
 | |
| 
 | |
|         //* selected class
 | |
|         QByteArray selectedClass() const;
 | |
| 
 | |
|         //* window information
 | |
|         const KWindowInfo& windowInfo() const
 | |
|         { return *(m_info.data()); }
 | |
| 
 | |
|         //* exception type
 | |
|         InternalSettings::EnumExceptionType exceptionType() const
 | |
|         {
 | |
|             if( m_ui.windowClassCheckBox->isChecked() ) return InternalSettings::ExceptionWindowClassName;
 | |
|             else if( m_ui.windowTitleCheckBox->isChecked() ) return InternalSettings::ExceptionWindowTitle;
 | |
|             else return InternalSettings::ExceptionWindowClassName;
 | |
|         }
 | |
| 
 | |
|         Q_SIGNALS:
 | |
| 
 | |
|         void detectionDone( bool );
 | |
| 
 | |
|         protected:
 | |
| 
 | |
|         bool eventFilter( QObject* o, QEvent* e ) override;
 | |
| 
 | |
|         private:
 | |
| 
 | |
|         //* select window from grab
 | |
|         void selectWindow();
 | |
| 
 | |
|         //* read window properties
 | |
|         void readWindow( WId window );
 | |
| 
 | |
|         //* find window under cursor
 | |
|         WId findWindow();
 | |
| 
 | |
|         //* execute
 | |
|         void executeDialog();
 | |
| 
 | |
|         //* ui
 | |
|         Ui::BreezeDetectWidget m_ui;
 | |
| 
 | |
|         //* invisible dialog used to grab mouse
 | |
|         QDialog* m_grabber = nullptr;
 | |
| 
 | |
|         //* current window information
 | |
|         QScopedPointer<KWindowInfo> m_info;
 | |
| 
 | |
|         //* wm state atom
 | |
|         quint32 m_wmStateAtom = 0;
 | |
| 
 | |
|     };
 | |
| 
 | |
| } // namespace
 | |
| 
 | |
| #endif
 | 
