xref: /aoo41x/main/svtools/workben/stest.cxx (revision cdf0e10c)
1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 
28 // MARKER(update_precomp.py): autogen include statement, do not remove
29 #include "precompiled_svtools.hxx"
30 #include <svtools/svmedit.hxx>
31 #include <txtcmp.hxx>
32 
33 #ifndef _SV_BUTTON_HXX //autogen
34 #include <vcl/button.hxx>
35 #endif
36 #include <vcl/wrkwin.hxx>
37 #include <vcl/fixed.hxx>
38 #include <vcl/svapp.hxx>
39 
40 class MyApp : public Application
41 {
42 public:
43 	virtual void Main( );
44 };
45 
46 class SearchWindow : public WorkWindow
47 {
48 	PushButton		aPB;
49 	FixedText 		aFT1, aFT2, aFT3;
50 	MultiLineEdit 	aEText, aESrch;
51 	RadioButton 	aModeN, aModeR, aModeL;
52 	SearchParam 	aParam;
53 
54 public:
55 					SearchWindow();
56 
57 	DECL_LINK( ClickHdl, Button * );
58 };
59 
60 // --- SearchWindow::SearchWindow() ------------------------------------
61 
62 SearchWindow::SearchWindow() :
63 				WorkWindow( NULL, WinBits( WB_APP | WB_STDWORK )),
64 	aPB( this, WinBits( 0 )),
65 	aFT1( this, WinBits( 0 )),
66 	aFT2( this, WinBits( 0 )),
67 	aFT3( this, WinBits( 0 )),
68 	aEText( this, WinBits( WB_BORDER )),
69 	aESrch( this, WinBits( WB_BORDER )),
70 	aModeN( this, WinBits( 0 )),
71 	aModeR( this, WinBits( 0 )),
72 	aModeL( this, WinBits( 0 )),
73 	aParam( "" )
74 {
75 	aPB.SetClickHdl( LINK( this, SearchWindow, ClickHdl ));
76 	aModeN.SetClickHdl( LINK( this, SearchWindow, ClickHdl ));
77 	aModeR.SetClickHdl( LINK( this, SearchWindow, ClickHdl ));
78 	aModeL.SetClickHdl( LINK( this, SearchWindow, ClickHdl ));
79 
80 	SetMapMode( MapMode( MAP_APPFONT ));
81 	SetSizePixel( LogicToPixel( Size( 300, 180 ) ) );
82 
83 	aEText.SetPosSizePixel( LogicToPixel( Point( 0, 22 )), LogicToPixel(Size( 270, 32 )) );
84 	aFT1.SetPosSizePixel( LogicToPixel( Point( 0, 10 )), LogicToPixel(Size( 18, 11 )) );
85 	aFT2.SetPosSizePixel( LogicToPixel( Point( 0, 60 )), LogicToPixel(Size( 24, 10 )) );
86 	aESrch.SetPosSizePixel( LogicToPixel( Point( 0, 70 )), LogicToPixel(Size( 270, 24 )) );
87 	aPB.SetPosSizePixel( LogicToPixel( Point( 223, 139 )), LogicToPixel(Size( 48, 12 )) );
88 	aFT3.SetPosSizePixel( LogicToPixel( Point( 0, 104 )), LogicToPixel(Size( 270, 15 )) );
89 	aModeN.SetPosSizePixel( LogicToPixel( Point( 5, 116 ) ), LogicToPixel( Size( 40, 12 ) ) );
90 	aModeR.SetPosSizePixel( LogicToPixel( Point( 5, 126 ) ), LogicToPixel( Size( 40, 12 ) ) );
91 	aModeL.SetPosSizePixel( LogicToPixel( Point( 5, 136 ) ), LogicToPixel( Size( 40, 12 ) ) );
92 
93 	aEText.Show();
94 	aFT1.Show();
95 	aFT2.Show();
96 	aESrch.Show();
97 	aPB.Show();
98 	aFT3.Show();
99 	aModeN.Show();
100 	aModeR.Show();
101 	aModeL.Show();
102 
103 	aFT3.SetText( "gefunden:" );
104 	aFT1.SetText( "Text:" );
105 	aFT2.SetText( "Suche:" );
106 	aPB.SetText( "starte Suche" );
107 	aModeN.SetText( "normal" );
108 	aModeR.SetText( "RegExp" );
109 	aModeL.SetText( "LevDis" );
110 
111 	SetText( "Such-Demo" );
112 }
113 
114 
115 // --- SearchWindow::SearchSelectHdl() ---------------------------------
116 
117 IMPL_LINK( SearchWindow, ClickHdl, Button *, pButton )
118 {
119 	if( pButton == &aPB )
120 	{
121 		String sText( aEText.GetText() );
122 		String sSrch( aESrch.GetText() );
123 
124 /*		InfoBox( this, String( "T: " ) + sText +
125 					   String( "\nS: " ) + sSrch ).Execute();
126 */
127 		sal_Bool bRet = sal_False;
128 		sal_uInt16 nStt = 0, nEnd = sText.Len();
129 
130 		{
131 			aParam.SetSrchStr( sSrch );
132 			SearchText aSrchText( aParam, GetpApp()->GetAppInternational() );
133 			bRet = aSrchText.SearchFrwrd( sText, &nStt, &nEnd );
134 
135 //			sal_Bool SearchBkwrd( const String &rStr, sal_uInt16* pStart, sal_uInt16* pEnde );
136 		}
137 
138 		String sFound( "gefunden" );
139 		if( !bRet )
140 			sFound.Insert( "nicht ", 0 );
141 
142 		sFound += ": S<";
143 		sFound += nStt;
144 		sFound += "> E<";
145 		sFound += nEnd;
146 		sFound += '>';
147 
148 		if( bRet )
149 		{
150 			sFound += '<';
151 			sFound += sText.Copy( nStt, nEnd - nStt +1 );
152 			sFound += '>';
153 		}
154 
155 		aFT3.SetText( sFound );
156 	}
157 	else if( pButton == &aModeN )
158 	{
159 		aParam.SetSrchType( SearchParam::SRCH_NORMAL );
160 	}
161 	else if( pButton == &aModeR )
162 	{
163 		aParam.SetSrchType( SearchParam::SRCH_REGEXP );
164 	}
165 	else if( pButton == &aModeL )
166 	{
167 		aParam.SetSrchType( SearchParam::SRCH_LEVDIST );
168 	}
169 	return 0;
170 }
171 
172 
173 // --- MyApp::Main() -----------------------------------------------
174 
175 void MyApp::Main( )
176 {
177 	SearchWindow*	pSearchWindow = new SearchWindow;
178 	pSearchWindow->Show();
179 	Execute();
180 	delete pSearchWindow;
181 
182 }
183 
184 // --- aMyApp ------------------------------------------------------
185 
186 MyApp aMyApp;
187