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 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 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 109 MyWin::MyWin( Window* pParent, WinBits nWinStyle ) : 110 WorkWindow( pParent, nWinStyle ) 111 { 112 } 113 114 // ----------------------------------------------------------------------- 115 116 void MyWin::MouseMove( const MouseEvent& rMEvt ) 117 { 118 WorkWindow::MouseMove( rMEvt ); 119 } 120 121 // ----------------------------------------------------------------------- 122 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 133 void MyWin::MouseButtonUp( const MouseEvent& rMEvt ) 134 { 135 WorkWindow::MouseButtonUp( rMEvt ); 136 } 137 138 // ----------------------------------------------------------------------- 139 140 void MyWin::KeyInput( const KeyEvent& rKEvt ) 141 { 142 WorkWindow::KeyInput( rKEvt ); 143 } 144 145 // ----------------------------------------------------------------------- 146 147 void MyWin::KeyUp( const KeyEvent& rKEvt ) 148 { 149 WorkWindow::KeyUp( rKEvt ); 150 } 151 152 // ----------------------------------------------------------------------- 153 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 180 void MyWin::Resize() 181 { 182 WorkWindow::Resize(); 183 } 184