wxWidgets/src/common/fddlgcmn.cpp
2001-08-01 14:55:03 +00:00

105 lines
3.2 KiB
C++

/////////////////////////////////////////////////////////////////////////////
// Name: src/common/fdrepdlg.cpp
// Purpose: common parts of wxFindReplaceDialog implementations
// Author: Vadim Zeitlin
// Modified by:
// Created: 01.08.01
// RCS-ID:
// Copyright: (c) 2001 Vadim Zeitlin
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// ============================================================================
// declarations
// ============================================================================
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
#ifdef __GNUG__
#pragma implementation "fdrepdlg.h"
#endif
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#if wxUSE_FINDREPLDLG
#ifndef WX_PRECOMP
#endif
#include "wx/fdrepdlg.h"
// ----------------------------------------------------------------------------
// wxWin macros
// ----------------------------------------------------------------------------
IMPLEMENT_DYNAMIC_CLASS(wxFindDialogEvent, wxCommandEvent)
DEFINE_EVENT_TYPE(wxEVT_COMMAND_FIND)
DEFINE_EVENT_TYPE(wxEVT_COMMAND_FIND_NEXT)
DEFINE_EVENT_TYPE(wxEVT_COMMAND_FIND_REPLACE)
DEFINE_EVENT_TYPE(wxEVT_COMMAND_FIND_REPLACE_ALL)
DEFINE_EVENT_TYPE(wxEVT_COMMAND_FIND_CLOSE)
// ============================================================================
// implementations
// ============================================================================
// ----------------------------------------------------------------------------
// wxFindReplaceData
// ----------------------------------------------------------------------------
void wxFindReplaceData::Init()
{
m_Flags = 0;
}
// ----------------------------------------------------------------------------
// wxFindReplaceDialogBase
// ----------------------------------------------------------------------------
wxFindReplaceDialogBase::~wxFindReplaceDialogBase()
{
}
void wxFindReplaceDialogBase::Send(wxFindDialogEvent& event)
{
// we copy the data to dialog->GetData() as well
m_FindReplaceData->m_Flags = event.GetFlags();
m_FindReplaceData->m_FindWhat = event.GetFindString();
if ( HasFlag(wxFR_REPLACEDIALOG) )
{
m_FindReplaceData->m_ReplaceWith = event.GetReplaceString();
}
// translate wxEVT_COMMAND_FIND_NEXT to wxEVT_COMMAND_FIND if needed
if ( event.GetEventType() == wxEVT_COMMAND_FIND_NEXT )
{
if ( m_FindReplaceData->m_FindWhat != m_lastSearch )
{
event.SetEventType(wxEVT_COMMAND_FIND);
m_lastSearch = m_FindReplaceData->m_FindWhat;
}
}
if ( !GetEventHandler()->ProcessEvent(event) )
{
// the event is not propagated upwards to the parent automatically
// because the dialog is a top level window, so do it manually as
// in 9 cases of 10 the message must be processed by the dialog
// owner and not the dialog itself
(void)GetParent()->GetEventHandler()->ProcessEvent(event);
}
}
#endif // wxUSE_FINDREPLDLG