You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdebase/kcontrol/kthememanager/kthememanager.h

158 lines
3.7 KiB

// -*- Mode: C++; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 4; -*-
/* Copyright (C) 2003 Lukas Tinkl <lukas@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
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef KTHEMEMANAGER_H
#define KTHEMEMANAGER_H
#include <tdecmodule.h>
#include <krun.h>
#include <kservice.h>
#include <kurl.h>
#include "kthemedlg.h"
#include "ktheme.h"
class TQString;
class TDEAboutData;
#define ORIGINAL_THEME "original" // no i18n() here!!!
/*
class KIconViewItem;
class KThemeDetailsItem: public KIconViewItem
{
public:
KThemeDetailsItem( KIconView * parent, const TQString & text, const TQPixmap & icon, const TQString & execString )
: KIconViewItem( parent, text, icon ) { m_exec = execString; }
virtual ~KThemeDetailsItem() { };
void exec() {
( void ) new KRun( m_exec );
}
private:
TQString m_exec;
};
*/
/**
*
* This is the for KControl config module for installing,
* creating and removing visual themes.
*
* @brief The Theme Manager config module.
* @author Lukas Tinkl <lukas@kde.org>
*/
class kthememanager: public TDECModule
{
Q_OBJECT
public:
kthememanager( TQWidget *parent=0, const char *name=0 );
virtual ~kthememanager();
/**
* Called on module startup
*/
virtual void load();
virtual void load(bool useDefaults);
/**
* Called when applying the changes
*/
virtual void save();
/**
* Called when the user requests the default values
*/
virtual void defaults();
protected:
void dragEnterEvent ( TQDragEnterEvent * ev );
void dropEvent ( TQDropEvent * ev );
signals:
/**
* Emitted when some @p urls are dropped onto the kcm
*/
void filesDropped(const KURL::List &urls);
private slots:
/**
* Install a theme from a tarball (*.kth)
*/
void slotInstallTheme();
/**
* Remove an installed theme
*/
void slotRemoveTheme();
/**
* Create a new theme
*/
void slotCreateTheme();
/**
* Update the theme's info and preview
*/
void slotThemeChanged( TQListViewItem * item );
/**
* Invoked when one drag and drops @p urls onto the kcm
* @see signal filesDropped
*/
void slotFilesDropped( const KURL::List & urls );
void updateButton();
private:
/**
* List themes available in the system and insert them into the listview.
*/
void listThemes();
/**
* Performs the actual theme installation.
*/
void addNewTheme( const KURL & url );
/**
* Perform internal initialization of paths.
*/
void init();
/**
* Try to find out whether a theme is installed and get its version number
* @param themeName The theme name
* @return The theme's version number or -1 if not installed
*/
static float getThemeVersion( const TQString & themeName );
void queryLNFModules();
/**
* Updates the preview widget
*/
void updatePreview( const TQString & pixFile );
bool themeExist(const TQString &_themeName);
KThemeDlg * dlg;
KTheme * m_theme;
KTheme * m_origTheme;
};
#endif