diff options
author | Ariel Constenla-Haile <arielch@apache.org> | 2012-06-15 01:18:26 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2013-05-12 16:11:53 +0100 |
commit | b30c970602b522dce958c521b26a5dfbb8aaacb4 (patch) | |
tree | 5b1658aee2f92aafcceecb944d08a622159c523d /odk/examples | |
parent | 379c7011157abae07ceb895cba22b85dcb67c8b9 (diff) |
Make Custom Panel example build and run
(cherry picked from commit 5aff353f227ecfeb36ef6b8be787495916610490)
Conflicts:
odk/examples/cpp/custompanel/ctp_factory.cxx
odk/examples/cpp/custompanel/ctp_services.cxx
Change-Id: I5b561fec12415b2c05ff1369629a8f88b420510b
Diffstat (limited to 'odk/examples')
-rw-r--r-- | odk/examples/cpp/custompanel/CalcWindowState.xcu | 4 | ||||
-rw-r--r-- | odk/examples/cpp/custompanel/DrawWindowState.xcu | 4 | ||||
-rw-r--r-- | odk/examples/cpp/custompanel/ImpressWindowState.xcu | 4 | ||||
-rw-r--r-- | odk/examples/cpp/custompanel/Makefile | 180 | ||||
-rw-r--r-- | odk/examples/cpp/custompanel/WriterWindowState.xcu | 8 | ||||
-rw-r--r-- | odk/examples/cpp/custompanel/ctp_panel.cxx | 7 | ||||
-rw-r--r-- | odk/examples/cpp/custompanel/ctp_services.cxx | 17 | ||||
-rw-r--r-- | odk/examples/cpp/custompanel/description.xml | 4 |
8 files changed, 194 insertions, 34 deletions
diff --git a/odk/examples/cpp/custompanel/CalcWindowState.xcu b/odk/examples/cpp/custompanel/CalcWindowState.xcu index 1a9cebb4e625..427734289c1f 100644 --- a/odk/examples/cpp/custompanel/CalcWindowState.xcu +++ b/odk/examples/cpp/custompanel/CalcWindowState.xcu @@ -28,10 +28,10 @@ <value>false</value> </prop> <prop oor:name="ImageURL" oor:type="xs:string"> - <value>vnd.sun.star.extension://UPDATED_IDENTIFIER/panel.png</value> + <value>vnd.sun.star.extension://org.apache.openoffice.custom-tool-panel/panel.png</value> </prop> <prop oor:name="HelpURL" oor:type="xs:string"> - <value>vnd.sun.star.help://UPDATED_IDENTIFIER/colorpanel</value> + <value>vnd.sun.star.help://org.apache.openoffice.custom-tool-panel/colorpanel</value> </prop> </node> </node> diff --git a/odk/examples/cpp/custompanel/DrawWindowState.xcu b/odk/examples/cpp/custompanel/DrawWindowState.xcu index c8e63b172aec..ca7037a9cf3a 100644 --- a/odk/examples/cpp/custompanel/DrawWindowState.xcu +++ b/odk/examples/cpp/custompanel/DrawWindowState.xcu @@ -28,10 +28,10 @@ <value>false</value> </prop> <prop oor:name="ImageURL" oor:type="xs:string"> - <value>vnd.sun.star.extension://UPDATED_IDENTIFIER/panel.png</value> + <value>vnd.sun.star.extension://org.apache.openoffice.custom-tool-panel/panel.png</value> </prop> <prop oor:name="HelpURL" oor:type="xs:string"> - <value>vnd.sun.star.help://UPDATED_IDENTIFIER/colorpanel</value> + <value>vnd.sun.star.help://org.apache.openoffice.custom-tool-panel/colorpanel</value> </prop> </node> </node> diff --git a/odk/examples/cpp/custompanel/ImpressWindowState.xcu b/odk/examples/cpp/custompanel/ImpressWindowState.xcu index f1f393da1710..372ac726ed39 100644 --- a/odk/examples/cpp/custompanel/ImpressWindowState.xcu +++ b/odk/examples/cpp/custompanel/ImpressWindowState.xcu @@ -28,10 +28,10 @@ <value>false</value> </prop> <prop oor:name="ImageURL" oor:type="xs:string"> - <value>vnd.sun.star.extension://UPDATED_IDENTIFIER/panel.png</value> + <value>vnd.sun.star.extension://org.apache.openoffice.custom-tool-panel/panel.png</value> </prop> <prop oor:name="HelpURL" oor:type="xs:string"> - <value>vnd.sun.star.help://UPDATED_IDENTIFIER/colorpanel</value> + <value>vnd.sun.star.help://org.apache.openoffice.custom-tool-panel/colorpanel</value> </prop> </node> </node> diff --git a/odk/examples/cpp/custompanel/Makefile b/odk/examples/cpp/custompanel/Makefile new file mode 100644 index 000000000000..1e81c9b1e84e --- /dev/null +++ b/odk/examples/cpp/custompanel/Makefile @@ -0,0 +1,180 @@ +# +# 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 . +# + +# Builds the custom-tool-panel C++ component example of the SDK. + +PRJ=../../.. +SETTINGS=$(PRJ)/settings + +include $(SETTINGS)/settings.mk +include $(SETTINGS)/std.mk +include $(SETTINGS)/dk.mk + +# Define non-platform/compiler specific settings +COMP_NAME=custom-tool-panel +COMP_IMPL_NAME=$(COMP_NAME).uno.$(SHAREDLIB_EXT) +OUT_COMP_INC=$(OUT_INC)/$(COMP_NAME) +OUT_COMP_GEN=$(OUT_MISC)/$(COMP_NAME) +OUT_COMP_SLO=$(OUT_SLO)/$(COMP_NAME) +COMP_PACKAGE = $(OUT_BIN)/$(COMP_NAME).$(UNOOXT_EXT) +COMP_PACKAGE_URL = $(subst \\,\,"$(COMP_PACKAGE_DIR)$(PS)$(COMP_NAME).$(UNOOXT_EXT)") +COMP_UNOPKG_MANIFEST = $(OUT_COMP_GEN)/$(COMP_NAME)/META-INF/manifest.xml +COMP_MAPFILE = $(OUT_COMP_GEN)/$(COMP_NAME).uno.map +COMP_COMPONENTS = $(OUT_COMP_GEN)/$(COMP_NAME).components +COMP_REGISTERFLAG = $(OUT_MISC)/cpp_$(COMP_NAME)_register_component.flag +COMP_TYPEFLAG = $(OUT_MISC)/cpp_$(COMP_NAME)_types.flag + + +# Allow deploying the extension when running it + +#this should be in odk/settings/std.mk +OUT_DEPLOY=$(OUT)/deploy + +OUT_COMP_DEPLOY=$(OUT_DEPLOY)/$(COMP_NAME) +OUT_DEPLOY_DIR=$(subst /,$(PS),$(OUT_COMP_DEPLOY)) +OUT_DEPLOY_URL=$(URLPREFIX)$(subst \\,\,$(OUT_DEPLOY_DIR)) +ENV_USER_INSTALL=-env:"UserInstallation=$(OUT_DEPLOY_URL)" +OFFICE_START_OPTIONS=-nologo -nofirststartwizard -norestore -writer +OXT_DEPLOYEDFLAG=$(OUT_MISC)/cpp_$(COMP_NAME)_deployed_oxt.flag + + +CXXFILES = \ + ctp_factory.cxx \ + ctp_panel.cxx \ + ctp_services.cxx + +SLOFILES = $(patsubst %.cxx,$(OUT_COMP_SLO)/%.$(OBJ_EXT),$(CXXFILES)) + +# Add OSL_DEBUG_LEVEL to compiler the flags (for OSL_TRACE et. al.) +ifeq "$(DEBUG)" "yes" +CC_FLAGS += -DOSL_DEBUG_LEVEL=2 +endif + +# Targets +.PHONY: ALL +ALL : \ + CustomToolPanelExample + +include $(SETTINGS)/stdtarget.mk + +$(OUT_COMP_SLO)/%.$(OBJ_EXT) : %.cxx $(SDKTYPEFLAG) + -$(MKDIR) $(subst /,$(PS),$(@D)) + $(CC) $(CC_FLAGS) $(STL_INCLUDES) $(CC_INCLUDES) -I$(OUT_COMP_INC) $(CC_DEFINES) $(CC_OUTPUT_SWITCH)$(subst /,$(PS),$@) $< + + +#$(COMP_MAPFILE) : $(SLOFILES) +# -$(MKDIR) $(subst /,$(PS),$(@D)) +# cat $(PRJ)/settings/component.uno.map > $(COMP_MAPFILE) +#ifeq "$(OS)" "MACOSX" +# nm -gx $(SLOFILES) | $(ADDSYMBOLS) >> $(COMP_MAPFILE) +#endif + +ifeq "$(OS)" "WIN" +$(SHAREDLIB_OUT)/%.$(SHAREDLIB_EXT) : $(SLOFILES) + -$(MKDIR) $(subst /,$(PS),$(@D)) + -$(MKDIR) $(subst /,$(PS),$(OUT_COMP_GEN)) + $(LINK) $(COMP_LINK_FLAGS) /OUT:$@ \ + /MAP:$(OUT_COMP_GEN)/$(subst $(SHAREDLIB_EXT),map,$(@F)) $(SLOFILES) \ + $(CPPUHELPERLIB) $(CPPULIB) $(SALLIB) $(STLPORTLIB) msvcrt.lib kernel32.lib + $(LINK_MANIFEST) +else +#$(SHAREDLIB_OUT)/%.$(SHAREDLIB_EXT) : $(SLOFILES) $(COMP_MAPFILE) +$(SHAREDLIB_OUT)/%.$(SHAREDLIB_EXT) : $(SLOFILES) + -$(MKDIR) $(subst /,$(PS),$(@D)) + $(LINK) $(COMP_LINK_FLAGS) $(LINK_LIBS) -o $@ $(SLOFILES) \ + $(CPPUHELPERLIB) $(CPPULIB) $(SALLIB) $(STLPORTLIB) $(STC++LIB) $(CPPUHELPERDYLIB) $(CPPUDYLIB) $(SALDYLIB) +ifeq "$(OS)" "MACOSX" + $(INSTALL_NAME_URELIBS) $@ +endif +endif + +# rule for component package manifest +$(OUT_COMP_GEN)/%/manifest.xml : + -$(MKDIR) $(subst /,$(PS),$(@D)) + @echo $(OSEP)?xml version="$(QM)1.0$(QM)" encoding="$(QM)UTF-8$(QM)"?$(CSEP) > $@ + @echo $(OSEP)!DOCTYPE manifest:manifest PUBLIC "$(QM)-//OpenOffice.org//DTD Manifest 1.0//EN$(QM)" "$(QM)Manifest.dtd$(QM)"$(CSEP) >> $@ + @echo $(OSEP)manifest:manifest xmlns:manifest="$(QM)http://openoffice.org/2001/manifest$(QM)"$(CSEP) >> $@ + @echo $(SQM) $(SQM)$(OSEP)manifest:file-entry manifest:meda-type="$(QM)application/vnd.sun.star.configuration-data$(QM)" >> $@ + @echo $(SQM) $(SQM)manifest:full-path="$(QM)CalcWindowState.xcu$(QM)"/$(CSEP) >> $@ + @echo $(SQM) $(SQM)$(OSEP)manifest:file-entry manifest:media-type="$(QM)application/vnd.sun.star.configuration-data$(QM)" >> $@ + @echo $(SQM) $(SQM)manifest:full-path="$(QM)DrawWindowState.xcu$(QM)"/$(CSEP) >> $@ + @echo $(SQM) $(SQM)$(OSEP)manifest:file-entry manifest:media-type="$(QM)application/vnd.sun.star.configuration-data$(QM)" >> $@ + @echo $(SQM) $(SQM)manifest:full-path="$(QM)ImpressWindowState.xcu$(QM)"/$(CSEP) >> $@ + @echo $(SQM) $(SQM)$(OSEP)manifest:file-entry manifest:media-type="$(QM)application/vnd.sun.star.configuration-data$(QM)" >> $@ + @echo $(SQM) $(SQM)manifest:full-path="$(QM)WriterWindowState.xcu$(QM)"/$(CSEP) >> $@ + @echo $(SQM) $(SQM)$(OSEP)manifest:file-entry manifest:media-type="$(QM)application/vnd.sun.star.configuration-data$(QM)" >> $@ + @echo $(SQM) $(SQM)manifest:full-path="$(QM)Factories.xcu$(QM)"/$(CSEP) >> $@ + @echo $(SQM) $(SQM)$(OSEP)manifest:file-entry manifest:media-type="$(QM)application/vnd.sun.star.uno-components;platform=$(UNOPKG_PLATFORM)$(QM)">> $@ + @echo $(SQM) $(SQM)manifest:full-path="$(QM)$(COMP_NAME).components$(QM)"/$(CSEP)>> $@ + @echo $(OSEP)/manifest:manifest$(CSEP) >> $@ + +$(COMP_COMPONENTS) : + -$(MKDIR) $(subst /,$(PS),$(@D)) + @echo $(OSEP)?xml version="$(QM)1.0$(QM)" encoding="$(QM)UTF-8$(QM)"?$(CSEP) > $@ + @echo $(OSEP)components xmlns="$(QM)http://openoffice.org/2010/uno-components$(QM)"$(CSEP) >> $@ + @echo $(SQM) $(SQM)$(OSEP)component loader="$(QM)com.sun.star.loader.SharedLibrary$(QM)" uri="$(QM)$(UNOPKG_PLATFORM)/$(COMP_IMPL_NAME)$(QM)"$(CSEP) >> $@ + @echo $(SQM) $(SQM)$(OSEP)implementation name="$(QM)org.openoffice.comp.example.custompanel.ToolPanelFactory$(QM)"$(CSEP) >> $@ + @echo $(SQM) $(SQM)$(OSEP)service name="$(QM)org.openoffice.example.colorpanel.ToolPanelFactory$(QM)"/$(CSEP) >> $@ + @echo $(SQM) $(SQM)$(OSEP)/implementation$(CSEP) >> $@ + @echo $(SQM) $(SQM)$(OSEP)/component$(CSEP) >> $@ + @echo $(OSEP)/components$(CSEP) >> $@ + +# rule for component package file +$(COMP_PACKAGE) : $(SHAREDLIB_OUT)/$(COMP_IMPL_NAME) WriterWindowState.xcu CalcWindowState.xcu DrawWindowState.xcu ImpressWindowState.xcu Factories.xcu $(COMP_UNOPKG_MANIFEST) $(COMP_COMPONENTS) + -$(MKDIR) $(subst /,$(PS),$(@D)) && $(DEL) $(subst \\,\,$(subst /,$(PS),$@)) + -$(MKDIR) $(subst /,$(PS),$(OUT_COMP_GEN)/$(UNOPKG_PLATFORM)) + $(COPY) $(subst /,$(PS),$<) $(subst /,$(PS),$(OUT_COMP_GEN)/$(UNOPKG_PLATFORM)) + cd $(subst /,$(PS),$(OUT_COMP_GEN)) && $(SDK_ZIP) -u ../../bin/$(@F) $(COMP_NAME).components + cd $(subst /,$(PS),$(OUT_COMP_GEN)) && $(SDK_ZIP) -u ../../bin/$(@F) $(UNOPKG_PLATFORM)/$(<F) + $(SDK_ZIP) -u $@ WriterWindowState.xcu CalcWindowState.xcu DrawWindowState.xcu ImpressWindowState.xcu Factories.xcu panel.png + cd $(subst /,$(PS),$(OUT_COMP_GEN)/$(subst .$(UNOOXT_EXT),,$(@F))) && $(SDK_ZIP) -u ../../../bin/$(@F) META-INF/manifest.xml + + +CustomToolPanelExample : $(COMP_PACKAGE) + @echo -------------------------------------------------------------------------------- + @echo Please use the following command to deploy the example! + @echo - + @echo $(MAKE) CustomToolPanelExample.run + @echo - + @echo -------------------------------------------------------------------------------- + + +CustomToolPanelExample.run: $(OXT_DEPLOYEDFLAG) + "$(OFFICE_PROGRAM_PATH)$(PS)soffice" $(OFFICE_START_OPTIONS) $(ENV_USER_INSTALL) + +$(OXT_DEPLOYEDFLAG) : $(COMP_PACKAGE) + -$(DEL) $(subst \\,\,$(subst /,$(PS),$@)) + -$(MKDIR) $(subst /,$(PS),$(OUT_DEPLOY)) + -$(MKDIR) $(subst /,$(PS),$(OUT_DEPLOY_DIR)) + $(DEPLOYTOOL) $(COMP_PACKAGE_URL) $(ENV_USER_INSTALL) + @echo flagged > $(subst /,$(PS),$@) + + + + +.PHONY: clean +clean : + -$(DELRECURSIVE) $(subst /,$(PS),$(OUT_COMP_INC)) + -$(DELRECURSIVE) $(subst /,$(PS),$(OUT_COMP_GEN)) + -$(DELRECURSIVE) $(subst /,$(PS),$(OUT_COMP_SLO)) + -$(DELRECURSIVE) $(subst /,$(PS),$(OUT_DEPLOY_DIR)) + -$(DEL) $(subst \\,\,$(subst /,$(PS),$(COMP_PACKAGE_URL))) + -$(DEL) $(subst \\,\,$(subst /,$(PS),$(COMP_REGISTERFLAG))) + -$(DEL) $(subst \\,\,$(subst /,$(PS),$(COMP_TYPEFLAG))) + -$(DEL) $(subst \\,\,$(subst /,$(PS),$(OXT_DEPLOYEDFLAG))) + -$(DEL) $(subst \\,\,$(subst /,$(PS),$(SHAREDLIB_OUT)/$(COMP_NAME).*)) diff --git a/odk/examples/cpp/custompanel/WriterWindowState.xcu b/odk/examples/cpp/custompanel/WriterWindowState.xcu index 38cace901575..c0ca084a6e51 100644 --- a/odk/examples/cpp/custompanel/WriterWindowState.xcu +++ b/odk/examples/cpp/custompanel/WriterWindowState.xcu @@ -28,10 +28,10 @@ <value>false</value> </prop> <prop oor:name="ImageURL" oor:type="xs:string"> - <value>vnd.sun.star.extension://UPDATED_IDENTIFIER/panel.png</value> + <value>vnd.sun.star.extension://org.apache.openoffice.custom-tool-panel/panel.png</value> </prop> <prop oor:name="HelpURL" oor:type="xs:string"> - <value>vnd.sun.star.help://UPDATED_IDENTIFIER/colorpanel</value> + <value>vnd.sun.star.help://org.apache.openoffice.custom-tool-panel/colorpanel</value> </prop> </node> <node oor:name="private:resource/toolpanel/org.openoffice.example.colorpanel/FF0000" oor:op="replace"> @@ -42,10 +42,10 @@ <value>false</value> </prop> <prop oor:name="ImageURL" oor:type="xs:string"> - <value>vnd.sun.star.extension://UPDATED_IDENTIFIER/panel.png</value> + <value>vnd.sun.star.extension://org.apache.openoffice.custom-tool-panel/panel.png</value> </prop> <prop oor:name="HelpURL" oor:type="xs:string"> - <value>vnd.sun.star.help://UPDATED_IDENTIFIER/colorpanel</value> + <value>vnd.sun.star.help://org.apache.openoffice.custom-tool-panel/colorpanel</value> </prop> </node> </node> diff --git a/odk/examples/cpp/custompanel/ctp_panel.cxx b/odk/examples/cpp/custompanel/ctp_panel.cxx index 98b58a8e95de..6848f3557359 100644 --- a/odk/examples/cpp/custompanel/ctp_panel.cxx +++ b/odk/examples/cpp/custompanel/ctp_panel.cxx @@ -30,7 +30,7 @@ #include <com/sun/star/awt/XGraphics.hpp> #include <com/sun/star/ui/UIElementType.hpp> -#include <tools/diagnose_ex.h> +#include <osl/diagnose.h> //...................................................................................................................... namespace sd { namespace colortoolpanel @@ -78,7 +78,7 @@ namespace sd { namespace colortoolpanel { try { - ENSURE_OR_THROW( i_rContext.is(), "illegal component context" ); + OSL_ENSURE( i_rContext.is(), "illegal component context" ); Reference< XMultiComponentFactory > xFactory( i_rContext->getServiceManager(), UNO_SET_THROW ); Reference< XToolkit2 > xToolkit = Toolkit::create(i_rContext); @@ -93,7 +93,6 @@ namespace sd { namespace colortoolpanel } catch( const Exception& ) { - DBG_UNHANDLED_EXCEPTION(); } return NULL; } @@ -168,7 +167,6 @@ namespace sd { namespace colortoolpanel } catch( const Exception& ) { - DBG_UNHANDLED_EXCEPTION(); } } @@ -193,7 +191,6 @@ namespace sd { namespace colortoolpanel } catch( const Exception& ) { - DBG_UNHANDLED_EXCEPTION(); } m_xWindow.clear(); } diff --git a/odk/examples/cpp/custompanel/ctp_services.cxx b/odk/examples/cpp/custompanel/ctp_services.cxx index 26bacd3bc603..c096a7bd710a 100644 --- a/odk/examples/cpp/custompanel/ctp_services.cxx +++ b/odk/examples/cpp/custompanel/ctp_services.cxx @@ -26,17 +26,6 @@ namespace sd { namespace colortoolpanel { //...................................................................................................................... - using ::com::sun::star::uno::Reference; - using ::com::sun::star::uno::XInterface; - using ::com::sun::star::uno::UNO_QUERY; - using ::com::sun::star::uno::UNO_QUERY_THROW; - using ::com::sun::star::uno::UNO_SET_THROW; - using ::com::sun::star::uno::Exception; - using ::com::sun::star::uno::RuntimeException; - using ::com::sun::star::uno::Any; - using ::com::sun::star::uno::makeAny; - using ::com::sun::star::uno::Sequence; - using ::com::sun::star::uno::Type; //================================================================================================================== //= descriptors for the services implemented in this component @@ -59,12 +48,6 @@ namespace sd { namespace colortoolpanel extern "C" { //------------------------------------------------------------------------------------------------------------------ - sal_Bool SAL_CALL component_writeInfo( void * pServiceManager, void * pRegistryKey ) - { - return ::cppu::component_writeInfoHelper( pServiceManager, pRegistryKey, ::sd::colortoolpanel::s_aServiceEntries ); - } - - //------------------------------------------------------------------------------------------------------------------ SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey ) { return ::cppu::component_getFactoryHelper( pImplName, pServiceManager, pRegistryKey , ::sd::colortoolpanel::s_aServiceEntries ); diff --git a/odk/examples/cpp/custompanel/description.xml b/odk/examples/cpp/custompanel/description.xml index b562508f447a..431305fd5d38 100644 --- a/odk/examples/cpp/custompanel/description.xml +++ b/odk/examples/cpp/custompanel/description.xml @@ -21,13 +21,13 @@ xmlns:d="http://openoffice.org/extensions/description/2006" xmlns:xlink="http://www.w3.org/1999/xlink"> - <identifier value="UPDATED_IDENTIFIER"/> + <identifier value="org.apache.openoffice.custom-tool-panel"/> <version value="0.1" /> <platform value="UPDATED_SUPPORTED_PLATFORM" /> <display-name> <name>Custom Tool Panel Example</name> </display-name> <dependencies> - <OpenOffice.org-minimal-version value="3.3" d:name="OpenOffice.org 3.3"/> + <OpenOffice.org-minimal-version value="3.4" d:name="OpenOffice.org 3.4"/> </dependencies> </description> |