summaryrefslogtreecommitdiffstats
path: root/kcontrol/kicker/main.h
blob: 97de653b569662b0978b22086e38d3467c49250a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
/*
 *  Copyright (c) 2000 Matthias Elter <elter@kde.org>
 *
 *  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
 */

#ifndef __main_h__
#define __main_h__

#include <dcopobject.h>
#include <kconfig.h>

#include "extensionInfo.h"

class TQComboBox;
class KAboutData;
class KDirWatch;

class KickerConfig : public TQObject, public DCOPObject
{
    Q_OBJECT
    K_DCOP

public:
    static KickerConfig *the();
    ~KickerConfig();

    void populateExtensionInfoList(TQComboBox* list);
    void reloadExtensionInfo();
    void saveExtentionInfo();
    const ExtensionInfoList& extensionsInfo();

    TQString configName();
    void notifyKicker();
    void restartKicker();

    TQString quickHelp() const;
    KAboutData *aboutData();

    int currentPanelIndex() const { return m_currentPanelIndex; }

k_dcop:
    void jumpToPanel(const TQString& panelConfig);

signals:
    void positionPanelChanged(int);
    void hidingPanelChanged(int);
    void extensionInfoChanged();
    void extensionAdded(ExtensionInfo*);
    void extensionRemoved(ExtensionInfo*);
    void extensionChanged(const TQString&);
    void extensionAboutToChange(const TQString&);
    void aboutToNotifyKicker();

protected:
    void init();
    void setupExtensionInfo(KConfig& c, bool checkExists, bool reloadIfExists = false);

protected slots:
    void configChanged(const TQString&);
    void setCurrentPanelIndex(int);

private:
    KickerConfig(TQWidget *parent = 0, const char *name = 0);

    static KickerConfig *m_self;

    KDirWatch *configFileWatch;
    ExtensionInfoList m_extensionInfo;
    int m_screenNumber;
    uint m_currentPanelIndex;
};

#endif // __main_h__