summaryrefslogtreecommitdiffstats
path: root/kwin/kcmkwin/kwinrules/ruleswidget.h
diff options
context:
space:
mode:
Diffstat (limited to 'kwin/kcmkwin/kwinrules/ruleswidget.h')
-rw-r--r--kwin/kcmkwin/kwinrules/ruleswidget.h148
1 files changed, 148 insertions, 0 deletions
diff --git a/kwin/kcmkwin/kwinrules/ruleswidget.h b/kwin/kcmkwin/kwinrules/ruleswidget.h
new file mode 100644
index 000000000..94af87ef4
--- /dev/null
+++ b/kwin/kcmkwin/kwinrules/ruleswidget.h
@@ -0,0 +1,148 @@
+/*
+ * Copyright (c) 2004 Lubos Lunak <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+
+#ifndef __RULESWIDGET_H__
+#define __RULESWIDGET_H__
+
+#include <kdialogbase.h>
+#include <kwin.h>
+#include <kshortcutdialog.h>
+
+#include "ruleswidgetbase.h"
+#include "editshortcutbase.h"
+
+namespace KWinInternal
+{
+
+class Rules;
+class DetectDialog;
+
+class RulesWidget
+ : public RulesWidgetBase
+ {
+ Q_OBJECT
+ public:
+ RulesWidget( QWidget* parent = NULL, const char* name = NULL );
+ void setRules( Rules* r );
+ Rules* rules() const;
+ bool finalCheck();
+ void prepareWindowSpecific( WId window );
+ signals:
+ void changed( bool state );
+ protected slots:
+ virtual void detectClicked();
+ virtual void wmclassMatchChanged();
+ virtual void roleMatchChanged();
+ virtual void titleMatchChanged();
+ virtual void extraMatchChanged();
+ virtual void machineMatchChanged();
+ virtual void shortcutEditClicked();
+ private slots:
+ // geometry tab
+ void updateEnableposition();
+ void updateEnablesize();
+ void updateEnabledesktop();
+ void updateEnablemaximizehoriz();
+ void updateEnablemaximizevert();
+ void updateEnableminimize();
+ void updateEnableshade();
+ void updateEnablefullscreen();
+ void updateEnableplacement();
+ // preferences tab
+ void updateEnableabove();
+ void updateEnablebelow();
+ void updateEnablenoborder();
+ void updateEnableskiptaskbar();
+ void updateEnableskippager();
+ void updateEnableacceptfocus();
+ void updateEnablecloseable();
+ void updateEnableopacityactive();
+ void updateEnableopacityinactive();
+ // workarounds tab
+ void updateEnablefsplevel();
+ void updateEnablemoveresizemode();
+ void updateEnabletype();
+ void updateEnableignoreposition();
+ void updateEnableminsize();
+ void updateEnablemaxsize();
+ void updateEnablestrictgeometry();
+ void updateEnableshortcut();
+ void updateEnabledisableglobalshortcuts();
+ // internal
+ void detected( bool );
+ private:
+ int desktopToCombo( int d ) const;
+ int comboToDesktop( int val ) const;
+ void prefillUnusedValues( const KWin::WindowInfo& info );
+ DetectDialog* detect_dlg;
+ bool detect_dlg_ok;
+ };
+
+class RulesDialog
+ : public KDialogBase
+ {
+ Q_OBJECT
+ public:
+ RulesDialog( QWidget* parent = NULL, const char* name = NULL );
+ Rules* edit( Rules* r, WId window, bool show_hints );
+ protected:
+ virtual void accept();
+ private slots:
+ void displayHints();
+ private:
+ RulesWidget* widget;
+ Rules* rules;
+ };
+
+class EditShortcut
+ : public EditShortcutBase
+ {
+ Q_OBJECT
+ public:
+ EditShortcut( QWidget* parent = NULL, const char* name = NULL );
+ protected:
+ void editShortcut();
+ void clearShortcut();
+ };
+
+class EditShortcutDialog
+ : public KDialogBase
+ {
+ Q_OBJECT
+ public:
+ EditShortcutDialog( QWidget* parent = NULL, const char* name = NULL );
+ void setShortcut( const QString& cut );
+ QString shortcut() const;
+ private:
+ EditShortcut* widget;
+ };
+
+// slightly duped from utils.cpp
+class ShortcutDialog
+ : public KShortcutDialog
+ {
+ Q_OBJECT
+ public:
+ ShortcutDialog( const KShortcut& cut, QWidget* parent = NULL, const char* name = NULL );
+ virtual void accept();
+ };
+
+} // namespace
+
+#endif