added generic implementation and documentation for wxFindReplaceDialog
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11232 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
104
src/common/fddlgcmn.cpp
Normal file
104
src/common/fddlgcmn.cpp
Normal file
@@ -0,0 +1,104 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// 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
|
||||
|
||||
Reference in New Issue
Block a user