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.
65 lines
1.6 KiB
65 lines
1.6 KiB
15 years ago
|
/***************************************************************************
|
||
|
copyright : (C) 2005-2006 by Robby Stephenson
|
||
|
email : robby@periapsis.org
|
||
|
***************************************************************************/
|
||
|
|
||
|
/***************************************************************************
|
||
|
* *
|
||
|
* This program is free software; you can redistribute it and/or modify *
|
||
|
* it under the terms of version 2 of the GNU General Public License as *
|
||
|
* published by the Free Software Foundation; *
|
||
|
* *
|
||
|
***************************************************************************/
|
||
|
|
||
|
#ifndef TELLICO_CITE_ACTIONMANAGER_H
|
||
|
#define TELLICO_CITE_ACTIONMANAGER_H
|
||
|
|
||
|
#include "../datavectors.h"
|
||
|
#include "handler.h"
|
||
|
|
||
|
namespace Tellico {
|
||
|
namespace Cite {
|
||
|
|
||
|
enum CiteAction {
|
||
|
CiteClipboard,
|
||
|
CiteLyxpipe,
|
||
|
CiteOpenOffice
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* @author Robby Stephenson
|
||
|
*/
|
||
|
class Action {
|
||
|
public:
|
||
|
Action() {}
|
||
|
virtual ~Action() {}
|
||
|
|
||
|
virtual CiteAction type() const = 0;
|
||
|
virtual bool connect() { return true; }
|
||
|
virtual bool cite(Data::EntryVec entries) = 0;
|
||
|
virtual State state() const { return Success; }
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* @author Robby Stephenson
|
||
|
*/
|
||
|
class ActionManager {
|
||
|
public:
|
||
|
static ActionManager* self();
|
||
|
~ActionManager();
|
||
|
|
||
|
bool cite(CiteAction action, Data::EntryVec entries);
|
||
|
static bool isEnabled(CiteAction action);
|
||
|
|
||
|
private:
|
||
|
ActionManager();
|
||
|
bool connect(CiteAction action);
|
||
|
|
||
|
Action* m_action;
|
||
|
};
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#endif
|