xref: /trunk/main/vcl/workben/vcldemo.cxx (revision 9f62ea84)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 // MARKER(update_precomp.py): autogen include statement, do not remove
25 #include "precompiled_vcl.hxx"
26 
27 #include <sal/main.h>
28 #include <tools/extendapplicationenvironment.hxx>
29 #include <com/sun/star/lang/XMultiServiceFactory.hpp>
30 
31 #include <vcl/event.hxx>
32 #include <vcl/svapp.hxx>
33 #include <vcl/wrkwin.hxx>
34 #include <vcl/msgbox.hxx>
35 #include <vcl/introwin.hxx>
36 #include <vcl/msgbox.hxx>
37 
38 #include <comphelper/processfactory.hxx>
39 #include <cppuhelper/servicefactory.hxx>
40 #include <cppuhelper/bootstrap.hxx>
41 
42 #include <unistd.h>
43 #include <stdio.h>
44 
45 using namespace ::com::sun::star::uno;
46 using namespace ::com::sun::star::lang;
47 // -----------------------------------------------------------------------
48 
49 // Forward declaration
50 void Main();
51 
52 // -----------------------------------------------------------------------
53 
SAL_IMPLEMENT_MAIN()54 SAL_IMPLEMENT_MAIN()
55 {
56     tools::extendApplicationEnvironment();
57 
58     Reference< XMultiServiceFactory > xMS;
59     xMS = cppu::createRegistryServiceFactory( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "types.rdb" ) ), rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "applicat.rdb" ) ), sal_True );
60 
61     InitVCL( xMS );
62     ::Main();
63     DeInitVCL();
64 
65     return 0;
66 }
67 
68 // -----------------------------------------------------------------------
69 
70 class MyWin : public WorkWindow
71 {
72 public:
73 				MyWin( Window* pParent, WinBits nWinStyle );
74 
75 	void		MouseMove( const MouseEvent& rMEvt );
76 	void		MouseButtonDown( const MouseEvent& rMEvt );
77 	void		MouseButtonUp( const MouseEvent& rMEvt );
78 	void		KeyInput( const KeyEvent& rKEvt );
79 	void		KeyUp( const KeyEvent& rKEvt );
80 	void		Paint( const Rectangle& rRect );
81 	void		Resize();
82 };
83 
84 // -----------------------------------------------------------------------
85 
Main()86 void Main()
87 {
88     /*
89     IntroWindow splash;
90     splash.Show();
91     sleep(5);
92     splash.Hide();
93     */
94 
95 	MyWin aMainWin( NULL, WB_APP | WB_STDWORK );
96 	aMainWin.SetText( XubString( RTL_CONSTASCII_USTRINGPARAM( "VCLDemo - VCL Workbench" ) ) );
97 	aMainWin.Show();
98 
99     /*
100     InfoBox ib(NULL, String((sal_Char*)"Test", sizeof("Test")));
101     ib.Execute();
102     */
103 
104 	Application::Execute();
105 }
106 
107 // -----------------------------------------------------------------------
108 
MyWin(Window * pParent,WinBits nWinStyle)109 MyWin::MyWin( Window* pParent, WinBits nWinStyle ) :
110 	WorkWindow( pParent, nWinStyle )
111 {
112 }
113 
114 // -----------------------------------------------------------------------
115 
MouseMove(const MouseEvent & rMEvt)116 void MyWin::MouseMove( const MouseEvent& rMEvt )
117 {
118 	WorkWindow::MouseMove( rMEvt );
119 }
120 
121 // -----------------------------------------------------------------------
122 
MouseButtonDown(const MouseEvent & rMEvt)123 void MyWin::MouseButtonDown( const MouseEvent& rMEvt )
124 {
125     Rectangle aRect(0,0,4,4);
126 	aRect.SetPos( rMEvt.GetPosPixel() );
127 	SetFillColor(Color(COL_RED));
128 	DrawRect( aRect );
129 }
130 
131 // -----------------------------------------------------------------------
132 
MouseButtonUp(const MouseEvent & rMEvt)133 void MyWin::MouseButtonUp( const MouseEvent& rMEvt )
134 {
135     WorkWindow::MouseButtonUp( rMEvt );
136 }
137 
138 // -----------------------------------------------------------------------
139 
KeyInput(const KeyEvent & rKEvt)140 void MyWin::KeyInput( const KeyEvent& rKEvt )
141 {
142 	WorkWindow::KeyInput( rKEvt );
143 }
144 
145 // -----------------------------------------------------------------------
146 
KeyUp(const KeyEvent & rKEvt)147 void MyWin::KeyUp( const KeyEvent& rKEvt )
148 {
149 	WorkWindow::KeyUp( rKEvt );
150 }
151 
152 // -----------------------------------------------------------------------
153 
Paint(const Rectangle & rRect)154 void MyWin::Paint( const Rectangle& rRect )
155 {
156 	fprintf(stderr, "MyWin::Paint(%ld,%ld,%ld,%ld)\n", rRect.getX(), rRect.getY(), rRect.getWidth(), rRect.getHeight());
157 
158     Size aSz(GetSizePixel());
159     Point aPt;
160     Rectangle r(aPt, aSz);
161 
162 	SetFillColor(Color(COL_BLUE));
163     SetLineColor(Color(COL_YELLOW));
164 
165 	DrawRect( r );
166 
167     for(int i=0; i<aSz.Height(); i+=15)
168         DrawLine( Point(r.nLeft, r.nTop+i), Point(r.nRight, r.nBottom-i) );
169     for(int i=0; i<aSz.Width(); i+=15)
170         DrawLine( Point(r.nLeft+i, r.nBottom), Point(r.nRight-i, r.nTop) );
171 
172     SetTextColor( Color( COL_WHITE ) );
173     Font aFont( String( RTL_CONSTASCII_USTRINGPARAM( "Times" ) ), Size( 0, 25 ) );
174     SetFont( aFont );
175     DrawText( Point( 20, 30 ), String( RTL_CONSTASCII_USTRINGPARAM( "Just a simple test text" ) ) );
176 }
177 
178 // -----------------------------------------------------------------------
179 
Resize()180 void MyWin::Resize()
181 {
182 	WorkWindow::Resize();
183 }
184