/***************************************************************************
* Copyright (C) 2004 by Gerhard W. Gruber *
* sparhawk@gmx.at *
* *
* 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., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
/******************************************************************************
*
* PROJECT: FILOU
* $Source: /cvsroot/desktoptools/filou/src/Plugin.cpp,v $
* $Revision: 1.3 $
* $Date: 2004/09/09 16:20:35 $
* $Author: lightweave $
* $Name: $
*
* $Log: Plugin.cpp,v $
* Revision 1.3 2004/09/09 16:20:35 lightweave
* Functionality added to get the new list into the viewer frame
*
* Revision 1.2 2004/08/31 21:39:14 lightweave
* Added support for AssignPlugin dialog.
*
* Revision 1.1.1.1 2004/08/21 17:00:04 lightweave
* Initial release
*
*
*****************************************************************************/
#include "wx/wxprec.h"
#include "Plugin.h"
#include <wx/arrimpl.cpp> // this is a magic incantation which must be done!
WX_DEFINE_OBJARRAY(AReturnCode);
CPlugin::CPlugin(void)
{
m_HasConfigDlg = false;
m_HasEditor = false;
}
CPlugin::~CPlugin(void)
{
}
int CPlugin::UpdateToolbar(wxWindow *Parent, wxToolBar *Toolbar, int BaseId, AEventInfo &)
{
m_BaseId = BaseId;
return 0;
}
void CPlugin::OnToolbarItem(wxWindow *Parent, int Id, AReturnCode &rc)
{
}
bool CPlugin::HasConfigDlg(void)
{
return m_HasConfigDlg;
}
bool CPlugin::OnConfigDlg(wxWindow *w)
{
return false;
}
bool CPlugin::HasEditor(void)
{
return m_HasEditor;
}
bool CPlugin::Connect(wxWindow *w, wxFile &)
{
return true;
}
void CPlugin::Disconnect(wxWindow *w, wxFile &)
{
}
bool CPlugin::SnapToUnit(CPlugin::SRectangle &r)
{
return false;
}
bool CPlugin::CopyRectangleAsText(CPlugin::SRectangle &r, wxFile &f, wxString &s)
{
return false;
}
bool CPlugin::GetCaretSize(int &w, int &h)
{
return false;
}
bool CPlugin::EnterEditMode(wxWindow *, wxFile &, CPlugin::SRectangle &r, AReturnCode &)
{
return false;
}
bool CPlugin::LeaveEditMode(wxWindow *, wxFile &, AReturnCode &)
{
return true;
}
CPlugin::EReturnCode CPlugin::OnChar(wxWindow *, wxFile &, CPlugin::SRectangle &, wxKeyEvent &, AReturnCode &)
{
CPlugin::EReturnCode ret = CPlugin::ERC_OK;
return ret;
}
CPlugin::EReturnCode CPlugin::ProcessKeyTable(SKeyMap *km, wxWindow *win, wxFile &f, CPlugin::SRectangle &r, wxKeyEvent &e, AReturnCode &rc)
{
int i, k;
CPlugin::EReturnCode orc = CPlugin::ERC_INVALID;
bool success = false;
k = e.GetKeyCode();
i = 0;
while(km[i].m_KeyType != CPlugin::KMT_END)
{
switch(km[i].m_KeyType)
{
case CPlugin::KMT_SINGLE:
{
if(km[i].m_KeyCodeFirst == k)
success = true;
}
break;
case CPlugin::KMT_DOUBLE:
{
if(km[i].m_KeyCodeFirst == k || km[i].m_KeyCodeLast == k)
success = true;
}
break;
case CPlugin::KMT_RANGE:
{
if(k >= km[i].m_KeyCodeFirst && k <= km[i].m_KeyCodeLast)
success = true;
}
break;
}
if(success == true)
{
if((orc = (*this.*km[i].m_KeyHandler)(win, f, r, e, rc)) == CPlugin::ERC_OK)
break;
success = false;
orc = CPlugin::ERC_INVALID;
}
i++;
}
return orc;
}
bool CPlugin::GetBoundary(wxFile &f, SRectangle &r, FILE_LENGTH_TYPE &Start, FILE_LENGTH_TYPE &End)
{
return false;
}