lots'o' wxpython modules files
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@3345 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
146
utils/wxPython/modules/lseditor/finddlg.cpp
Normal file
146
utils/wxPython/modules/lseditor/finddlg.cpp
Normal file
@@ -0,0 +1,146 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: No names yet.
|
||||
// Purpose: Contrib. demo
|
||||
// Author: Aleksandras Gluchovas
|
||||
// Modified by:
|
||||
// Created: 08/05/1999
|
||||
// RCS-ID: $Id$
|
||||
// Copyright: (c) Aleksandars Gluchovas
|
||||
// Licence: GNU General Public License
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// For compilers that support precompilation, includes "wx/wx.h".
|
||||
#include "wx/wxprec.h"
|
||||
|
||||
#ifdef __BORLANDC__
|
||||
#pragma hdrstop
|
||||
#endif
|
||||
|
||||
#ifndef WX_PRECOMP
|
||||
#include "wx/wx.h"
|
||||
#endif
|
||||
|
||||
#include "finddlg.h"
|
||||
|
||||
/***** Implementation for class wxFindTextDialog *****/
|
||||
|
||||
//#define wxID_OK 3453453
|
||||
|
||||
BEGIN_EVENT_TABLE( wxFindTextDialog, wxDialog )
|
||||
|
||||
// FIXME:: why OnOk() is not called??
|
||||
//EVT_BUTTON( wxID_OK, wxFindTextDialog::OnOK )
|
||||
|
||||
EVT_CHAR_HOOK(wxFindTextDialog::OnKeyHook)
|
||||
|
||||
END_EVENT_TABLE()
|
||||
|
||||
wxString wxFindTextDialog::mLastExpr;
|
||||
bool wxFindTextDialog::mMatchCase = TRUE;
|
||||
bool wxFindTextDialog::mMatchWord = FALSE;
|
||||
StrListT wxFindTextDialog::mExprList;
|
||||
|
||||
// FIXME:: workaround for mystic. crashes wiht MSDev4.0
|
||||
|
||||
static wxComboBox* __gpCombo = NULL;
|
||||
|
||||
wxFindTextDialog::wxFindTextDialog( wxWindow* parent, const string& expr )
|
||||
|
||||
: wxDialog( parent, -1, "Find",
|
||||
wxDefaultPosition, wxSize( 335, 130 ),
|
||||
wxDIALOG_MODAL | wxCAPTION | wxTAB_TRAVERSAL |
|
||||
wxDEFAULT_DIALOG_STYLE
|
||||
)
|
||||
{
|
||||
mLastExpr = expr;
|
||||
|
||||
int leftMargin = 20;
|
||||
int inputY = 20;
|
||||
int inputWidth = 200;
|
||||
|
||||
wxStaticText* pStatic =
|
||||
new wxStaticText( this, -1, "Fi&nd what:",
|
||||
wxPoint( leftMargin, inputY ) );
|
||||
|
||||
int checkY = inputY + 25;
|
||||
|
||||
mpWordCheck = new wxCheckBox( this, -1, "Match &whole word only",
|
||||
wxPoint( leftMargin, checkY ) );
|
||||
|
||||
mpCaseCheck = new wxCheckBox( this, -1, "Match &case",
|
||||
wxPoint( leftMargin, checkY + 20 ) );
|
||||
|
||||
mpCaseCheck->SetValue( mMatchCase );
|
||||
mpWordCheck->SetValue( mMatchWord );
|
||||
|
||||
int btnX = inputWidth + leftMargin + 23;
|
||||
int btnY = inputY - 4;
|
||||
|
||||
wxSize btnSize( 70, 25 );
|
||||
|
||||
wxButton* pOkBtn = new wxButton( this, wxID_OK, "&Find",
|
||||
wxPoint( btnX, btnY ), btnSize );
|
||||
|
||||
wxButton* pCancelBtn = new wxButton( this, wxID_CANCEL, "&Cancel",
|
||||
wxPoint( btnX, btnY + 10 + btnSize.y ), btnSize );
|
||||
|
||||
__gpCombo = new wxComboBox( this, -1, mLastExpr,
|
||||
wxPoint( leftMargin + 60, inputY - 2 ),
|
||||
wxSize( inputWidth - 50, 20 ) );
|
||||
|
||||
for( size_t i = 0; i != mExprList.size(); ++i )
|
||||
|
||||
__gpCombo->Append( mExprList[i] );
|
||||
|
||||
pOkBtn->SetDefault();
|
||||
__gpCombo->SetFocus();
|
||||
|
||||
Center( wxBOTH );
|
||||
}
|
||||
|
||||
void wxFindTextDialog::SetExpr( const wxString& expr )
|
||||
{
|
||||
mLastExpr = expr;
|
||||
__gpCombo->SetValue( mLastExpr );
|
||||
|
||||
}
|
||||
|
||||
wxComboBox* wxFindTextDialog::GetCombo()
|
||||
{
|
||||
return __gpCombo;
|
||||
}
|
||||
|
||||
bool wxFindTextDialog::TransferDataFromWindow()
|
||||
{
|
||||
mLastExpr = GetCombo()->GetValue();
|
||||
mMatchCase = mpCaseCheck->GetValue();
|
||||
mMatchWord = mpWordCheck->GetValue();
|
||||
|
||||
if ( mLastExpr != "" )
|
||||
{
|
||||
for( size_t i = 0; i != mExprList.size(); ++i )
|
||||
|
||||
if ( mExprList[i] == mLastExpr )
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if ( mExprList.size() > 20 )
|
||||
|
||||
mExprList.pop_back();
|
||||
|
||||
mExprList.push_back( mLastExpr );
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void wxFindTextDialog::OnKeyHook( wxKeyEvent& event )
|
||||
{
|
||||
if ( event.m_keyCode == WXK_RETURN )
|
||||
{
|
||||
TransferDataFromWindow();
|
||||
EndModal( wxID_OK );
|
||||
}
|
||||
else
|
||||
event.Skip();
|
||||
}
|
Reference in New Issue
Block a user