diff options
author | Chris Sherlock <chris.sherlock79@gmail.com> | 2014-05-19 19:29:54 +1000 |
---|---|---|
committer | Chris Sherlock <chris.sherlock79@gmail.com> | 2014-05-19 19:33:37 +1000 |
commit | dd7260ed691c077e4c05071d61ee2086ba5bd580 (patch) | |
tree | 8134535480bbe57dd1daf4f0ba4a485d5664035c /svx | |
parent | 6ad51a071c3de339a69b01865d7c4bf7cd6a57cf (diff) |
svx: Create pixel control (bitmap editing) demo
Change-Id: Id2cacd8c080b4df0600ab48b2ce4558f3539bbbe
Diffstat (limited to 'svx')
-rw-r--r-- | svx/Executable_pixelctl.mk | 41 | ||||
-rw-r--r-- | svx/Module_svx.mk | 1 | ||||
-rw-r--r-- | svx/workben/pixelctl.cxx | 161 |
3 files changed, 203 insertions, 0 deletions
diff --git a/svx/Executable_pixelctl.mk b/svx/Executable_pixelctl.mk new file mode 100644 index 000000000000..d019d0cdba0f --- /dev/null +++ b/svx/Executable_pixelctl.mk @@ -0,0 +1,41 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# + +$(eval $(call gb_Executable_Executable,pixelctl)) + +$(eval $(call gb_Executable_use_api,pixelctl,\ + offapi \ + udkapi \ +)) + +$(eval $(call gb_Executable_use_external,pixelctl,boost_headers)) + +$(eval $(call gb_Executable_set_include,pixelctl,\ + $$(INCLUDE) \ + -I$(SRCDIR)/vcl/inc \ + -I$(SRCDIR)/svx/inc \ + -I$(SRCDIR)/solenv/inc \ +)) + +$(eval $(call gb_Executable_use_libraries,pixelctl,\ + svx \ + tl \ + sal \ + vcl \ + cppu \ + cppuhelper \ + comphelper \ +)) + +$(eval $(call gb_Executable_add_exception_objects,pixelctl,\ + svx/workben/pixelctl \ +)) + +# vim: set noet sw=4 ts=4: diff --git a/svx/Module_svx.mk b/svx/Module_svx.mk index 007fe34086b9..11e99b67c5f5 100644 --- a/svx/Module_svx.mk +++ b/svx/Module_svx.mk @@ -36,6 +36,7 @@ ifneq (,$(filter DESKTOP,$(BUILD_TYPE))) $(eval $(call gb_Module_add_targets,svx,\ Executable_gengal \ Package_gengal \ + Executable_pixelctl \ )) endif diff --git a/svx/workben/pixelctl.cxx b/svx/workben/pixelctl.cxx new file mode 100644 index 000000000000..b2196b6d4b91 --- /dev/null +++ b/svx/workben/pixelctl.cxx @@ -0,0 +1,161 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#include <sal/main.h> + +#include <cppuhelper/bootstrap.hxx> +#include <comphelper/processfactory.hxx> + +#include <com/sun/star/lang/XMultiServiceFactory.hpp> +#include <com/sun/star/uno/XComponentContext.hpp> +#include <com/sun/star/awt/ImageScaleMode.hpp> + +#include <vcl/event.hxx> +#include <vcl/svapp.hxx> +#include <vcl/wrkwin.hxx> +#include <tools/extendapplicationenvironment.hxx> + +#include <svx/dlgctrl.hxx> + +#include <rtl/strbuf.hxx> +#include <rtl/ustrbuf.hxx> + +#include <math.h> + +#include <errno.h> +#include <unistd.h> +#include <stdio.h> +#include <sys/types.h> +#include <sys/socket.h> +#include <netinet/in.h> + +using namespace ::com::sun::star::uno; +using namespace ::com::sun::star::lang; +using namespace cppu; + +// Forward declaration +void Main(); + +SAL_IMPLEMENT_MAIN() +{ + tools::extendApplicationEnvironment(); + + // create the global service-manager + Reference< XComponentContext > xContext = defaultBootstrap_InitialComponentContext(); + Reference< XMultiServiceFactory > xServiceManager( xContext->getServiceManager(), UNO_QUERY ); + + if( !xServiceManager.is() ) + Application::Abort( "Failed to bootstrap" ); + + comphelper::setProcessServiceFactory( xServiceManager ); + + InitVCL(); + ::Main(); + DeInitVCL(); + + return 0; +} + +class MyWin : public WorkWindow +{ + SvxPixelCtl maPixelCtl; + +public: + MyWin( Window* pParent, WinBits nWinStyle ); + + void MouseMove( const MouseEvent& rMEvt ); + void MouseButtonDown( const MouseEvent& rMEvt ); + void MouseButtonUp( const MouseEvent& rMEvt ); + void KeyInput( const KeyEvent& rKEvt ); + void KeyUp( const KeyEvent& rKEvt ); + void Paint( const Rectangle& rRect ); + void Resize(); + + bool Close(); + + DECL_LINK( PixelCtlHdl, SvxPixelCtl* ); +}; + +void Main() +{ + MyWin aMainWin( NULL, WB_STDWORK ); + aMainWin.SetText( OUString( "SvxPixelCtl" ) ); + aMainWin.Show(); + + Application::Execute(); +} + +MyWin::MyWin( Window* pParent, WinBits nWinStyle ) : + WorkWindow( pParent, nWinStyle ), + maPixelCtl( this ) +{ + maPixelCtl.SetPosSizePixel( Point( 10, 10 ), Size( 200, 200 ) ); + maPixelCtl.Show(); + +} + +bool MyWin::Close() +{ + bool bRet = WorkWindow::Close(); + if( bRet ) + Application::Quit(); + return bRet; +} + +IMPL_LINK( MyWin, PixelCtlHdl, SvxPixelCtl*, ) +{ + return 0; +} + +void MyWin::MouseMove( const MouseEvent& rMEvt ) +{ + WorkWindow::MouseMove( rMEvt ); +} + +void MyWin::MouseButtonDown( const MouseEvent& rMEvt ) +{ + WorkWindow::MouseButtonDown( rMEvt ); +} + +void MyWin::MouseButtonUp( const MouseEvent& rMEvt ) +{ + WorkWindow::MouseButtonUp( rMEvt ); +} + +void MyWin::KeyInput( const KeyEvent& rKEvt ) +{ + WorkWindow::KeyInput( rKEvt ); +} + +void MyWin::KeyUp( const KeyEvent& rKEvt ) +{ + WorkWindow::KeyUp( rKEvt ); +} + +void MyWin::Paint( const Rectangle& rRect ) +{ + WorkWindow::Paint( rRect ); +} + +void MyWin::Resize() +{ + WorkWindow::Resize(); +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |