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.
tdeaddons/konq-plugins/searchbar/searchbar.h

198 lines
4.8 KiB

/* This file is part of the KDE project
Copyright (C) 2005 by Tobi Vollebregt <tobivollebregt@gmail.com>
Copyright (C) 2004 by Vinay Khaitan <vkhaitan@iitk.ac.in>
Copyright (C) 2004 Arend van Beelen jr. <arend@auton.nl>
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; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef SEARCHBAR_PLUGIN
#define SEARCHBAR_PLUGIN
#include <kcombobox.h>
#include <klibloader.h>
#include <tdeparts/plugin.h>
#include <tdeparts/mainwindow.h>
#include <tqguardedptr.h>
#include <tqpixmap.h>
#include <tqstring.h>
class KHTMLPart;
class TDEProcess;
class TQPopupMenu;
class TQTimer;
/**
* Combo box which catches mouse clicks on the pixmap.
*/
class SearchBarCombo : public KHistoryCombo
{
Q_OBJECT
public:
/**
* Constructor.
*/
SearchBarCombo(TQWidget *parent, const char *name);
/**
* Returns the icon currently displayed in the combo box.
*/
const TQPixmap &icon() const;
/**
* Sets the icon displayed in the combo box.
*/
void setIcon(const TQPixmap &icon);
/**
* Finds a history item by its text.
* @return The item number, or -1 if the item is not found.
*/
int findHistoryItem(const TQString &text);
/**
* Sets whether the plugin is active. It can be inactive
* in case the current Konqueror part isn't a KHTML part.
*/
void setPluginActive(bool pluginActive);
public slots:
virtual void show();
signals:
/**
* Emitted when the icon was clicked.
*/
void iconClicked();
protected:
/**
* Captures mouse clicks and emits iconClicked() if the icon
* was clicked.
*/
virtual void mousePressEvent(TQMouseEvent *e);
private slots:
void historyCleared();
private:
TQPixmap m_icon;
bool m_pluginActive;
};
/**
* Plugin that provides a search bar for Konqueror. This search bar is located
* next to the location bar and will show a small icon indicating the search
* provider it will use.
*
* @author Arend van Beelen jr. <arend@auton.nl>
* @version $Id$
*/
class SearchBarPlugin : public KParts::Plugin
{
Q_OBJECT
public:
/** Possible search modes */
enum SearchModes { FindInThisPage = 0, UseSearchProvider };
SearchBarPlugin(TQObject *parent, const char *name,
const TQStringList &);
virtual ~SearchBarPlugin();
protected:
bool eventFilter(TQObject *o, TQEvent *e);
private slots:
/**
* Starts a search by putting the query URL from the selected
* search provider in the locationbar and calling goURL()
*/
void startSearch(const TQString &search);
/**
* Sets the icon to indicate which search engine is used.
*/
void setIcon();
/**
* Opens the selection menu.
*/
void showSelectionMenu();
void useFindInThisPage();
void useSearchProvider(int);
void selectSearchEngines();
void searchEnginesSelected(TDEProcess *process);
void configurationChanged();
/**
* We keep track of part activations to know when to show or hide ourselves
*/
void partChanged(KParts::Part *newPart);
/**
* Show or hide the combo box
*/
void updateComboVisibility();
void focusSearchbar();
// Google Suggest private slots
void selectGoogleSuggestMode();
void gsStartDelay();
void gsMakeCompletionList();
void gsDataArrived(TDEIO::Job*, const TQByteArray& data);
void gsJobFinished(TDEIO::Job* job);
void gsSetCompletedText(const TQString& text);
void gsPutTextInBox(const TQString& text);
signals:
// Google Suggest signals
void gsCompleteDelayed();
private:
void nextSearchEntry();
void previousSearchEntry();
TQGuardedPtr<KHTMLPart> m_part;
SearchBarCombo *m_searchCombo;
KWidgetAction *m_searchComboAction;
TQPopupMenu *m_popupMenu;
KSelectAction *m_googleMenu;
TQPixmap m_searchIcon;
SearchModes m_searchMode;
TQString m_providerName;
bool m_urlEnterLock;
TQString m_currentEngine;
TQStringList m_searchEngines;
// Google Suggest private members
TQTimer m_gsTimer;
TQString m_gsData;
enum GoogleMode {GoogleOnly,ForAll,Never};
GoogleMode m_googleMode;
};
#endif // SEARCHBAR_PLUGIN