summaryrefslogtreecommitdiff
path: root/svx/source/sdr
diff options
context:
space:
mode:
authorVladimir Glazounov <vg@openoffice.org>2008-08-19 22:11:46 +0000
committerVladimir Glazounov <vg@openoffice.org>2008-08-19 22:11:46 +0000
commitc09298f4782b847c5f84f76515dda58353b19aa4 (patch)
tree48c9c89c2e31165a12a6028af57bd3ae9cbdcf71 /svx/source/sdr
parentd7367c6eea277270ae2d00242e853a2ad7ffb8e2 (diff)
INTEGRATION: CWS aw033 (1.1.2); FILE ADDED
2008/08/19 16:46:29 cl 1.1.2.11: fixed license files 2008/06/03 13:41:12 aw 1.1.2.10: corrections 2008/05/27 14:49:58 aw 1.1.2.9: #i39532# changes DEV300 m12 resync corrections 2008/01/29 10:27:32 aw 1.1.2.8: updated refresh for ActionChanged(), diverse removals 2008/01/22 12:29:30 aw 1.1.2.7: adaptions and 1st stripping 2007/08/13 15:34:33 aw 1.1.2.6: #i39532# changes after resync 2007/01/23 10:46:32 aw 1.1.2.5: changes after resync 2006/10/19 10:59:17 aw 1.1.2.4: #i39532# primitive 2006/08/09 17:12:26 aw 1.1.2.3: #i39532# 2006/06/02 14:17:51 aw 1.1.2.2: #i39532# adaptions to new primitives, error corrections 2006/05/12 12:41:16 aw 1.1.2.1: code for primitive support
Diffstat (limited to 'svx/source/sdr')
-rw-r--r--svx/source/sdr/contact/viewobjectcontactofsdrobj.cxx141
1 files changed, 141 insertions, 0 deletions
diff --git a/svx/source/sdr/contact/viewobjectcontactofsdrobj.cxx b/svx/source/sdr/contact/viewobjectcontactofsdrobj.cxx
new file mode 100644
index 0000000000..21b544a91d
--- /dev/null
+++ b/svx/source/sdr/contact/viewobjectcontactofsdrobj.cxx
@@ -0,0 +1,141 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: viewobjectcontactofsdrobj.cxx,v $
+ *
+ * $Revision: 1.2 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_svx.hxx"
+
+#include <svx/sdr/contact/viewobjectcontactofsdrobj.hxx>
+#include <svx/sdr/contact/viewcontactofsdrobj.hxx>
+#include <svx/sdr/contact/objectcontact.hxx>
+#include <svx/sdr/contact/displayinfo.hxx>
+#include <svx/svdobj.hxx>
+#include <svx/svdoole2.hxx>
+#include <svx/svdview.hxx>
+
+//////////////////////////////////////////////////////////////////////////////
+
+namespace sdr
+{
+ namespace contact
+ {
+ const SdrObject& ViewObjectContactOfSdrObj::getSdrObject() const
+ {
+ return static_cast< ViewContactOfSdrObj& >(GetViewContact()).GetSdrObject();
+ }
+
+ ViewObjectContactOfSdrObj::ViewObjectContactOfSdrObj(ObjectContact& rObjectContact, ViewContact& rViewContact)
+ : ViewObjectContact(rObjectContact, rViewContact)
+ {
+ }
+
+ ViewObjectContactOfSdrObj::~ViewObjectContactOfSdrObj()
+ {
+ }
+
+ bool ViewObjectContactOfSdrObj::isPrimitiveVisible(const DisplayInfo& rDisplayInfo) const
+ {
+ const SdrObject& rObject = getSdrObject();
+
+ // Test layer visibility
+ if(!rDisplayInfo.GetProcessLayers().IsSet(rObject.GetLayer()))
+ {
+ return false;
+ }
+
+ // Test if print output but not printable
+ if(GetObjectContact().isOutputToPrinter() && !rObject.IsPrintable())
+ {
+ return false;
+ }
+
+ // Test for hidden object on MasterPage
+ if(rDisplayInfo.GetSubContentActive() && rObject.IsNotVisibleAsMaster())
+ {
+ return false;
+ }
+
+ // Test for Calc object hiding (for OLE and Graphic it's extra, see there)
+ const SdrPageView* pSdrPageView = GetObjectContact().TryToGetSdrPageView();
+
+ if(pSdrPageView)
+ {
+ const SdrView& rSdrView = pSdrPageView->GetView();
+ const bool bHideOle(rSdrView.getHideOle());
+ const bool bHideChart(rSdrView.getHideChart());
+ const bool bHideDraw(rSdrView.getHideDraw());
+
+ if(bHideOle || bHideChart || bHideDraw)
+ {
+ if(OBJ_OLE2 == rObject.GetObjIdentifier())
+ {
+ if(((SdrOle2Obj&)rObject).IsChart())
+ {
+ // chart
+ if(bHideChart)
+ {
+ return false;
+ }
+ }
+ else
+ {
+ // OLE
+ if(bHideOle)
+ {
+ return false;
+ }
+ }
+ }
+ else if(OBJ_GRAF == rObject.GetObjIdentifier())
+ {
+ // graphic handled like OLE
+ if(bHideOle)
+ {
+ return false;
+ }
+ }
+ else
+ {
+ // any other draw object
+ if(bHideDraw)
+ {
+ return false;
+ }
+ }
+ }
+ }
+
+ return true;
+ }
+ } // end of namespace contact
+} // end of namespace sdr
+
+//////////////////////////////////////////////////////////////////////////////
+// eof