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.
kpilot/kpilot/pilotComponent.h

143 lines
3.9 KiB

#ifndef _KPILOT_PILOTCOMPONENT_H
#define _KPILOT_PILOTCOMPONENT_H
/* pilotComponent.h KPilot
**
** Copyright (C) 1998-2001 by Dan Pilone
** Copyright (C) 2003-2004 Reinhold Kainhofer <reinhold@kainhofer.com>
**
** See the .cpp file for an explanation of what this file is for.
*/
/*
** 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 in a file called COPYING; if not, write to
** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
** MA 02110-1301, USA.
*/
/*
** Bug reports and questions can be sent to kde-pim@kde.org
*/
/**
* Base class for any module to KPilot
*/
#include <tqwidget.h>
struct CategoryAppInfo;
class TQComboBox;
class TQString;
class PilotComponent : public TQWidget
{
TQ_OBJECT
friend class KPilotInstaller;
public:
PilotComponent(TQWidget* parent,
const char *id,
const TQString& dbPath);
/**
* Called when the component is shown in kpilot. It should
* load the database and populate the widgets.
*/
virtual void showComponent() {}
/**
* Called when the component is hidden in kpilot. It should
* unload the databases and clean up to save memory. This method
* can be called even if the component is not visible.
* If there are some editing dlgs open, this needs to be deferred
* until they are all closed. Then, one can explicitly call hideComponent().
*/
virtual void hideComponent() {}
/**
* Set the shown variable to true or false, then call showComponent
* or hideComponent.
*/
void showKPilotComponent( bool toShow );
/**
* Get ready for a hotsync -- write any unflushed records
* to disk, close windows, whatever. Returns false if it
* is impossible to go into a sync now (due to open windows
* or strange state.).
*
* The default implementation returns true.
*
* If the function returns false, it can also put a string
* stating the reason why into @p s. This string will be
* displayed to the user:
* "Can't start HotSync. %1"
* where %1 is replaced by s.
*/
virtual bool preHotSync(TQString &s) ;
/**
* Reload data (possibly changed by the hotsync) etc. etc.
*/
virtual void postHotSync() { } ;
protected:
/**
* Look up the selected category from the combo box in the
* Pilot's register of categories. We need this functon because
* the combo box doesn't contain any reference to the category
* ID, and we need that ID to do anything with the Pilot.
*
* If AllIsUnfiled is true, then when the user selects the
* category "All" in the combo box (always the first category),
* Unfiled (0) is returned. Otherwise if the category "All"
* is selected -1 is returned. For all other categories
* selected, their ID is returned. If nothing is selected,
* behave as if "All" is selected.
*/
int findSelectedCategory(TQComboBox *,
CategoryAppInfo *,
bool AllIsUnfiled=false);
/**
* Populate the combo box with the categories found in
* the Pilot's application categories block. Erases
* combo box's contents first.
*
* Always includes the category "All" as the first
* entry in the combo box.
*
* If info is a NULL pointer, just put "All" in the combo box.
*/
void populateCategories(TQComboBox *,
CategoryAppInfo *info=0);
void setDBPath(const TQString &path) { fDBPath = path; } ;
const TQString& dbPath() const { return fDBPath; } ;
void markDBDirty(const TQString db);
public slots:
void slotShowComponent();
signals:
void showComponent(PilotComponent *);
private:
TQString fDBPath;
protected:
bool shown;
} ;
#endif