Update ooo320-m1
[ooovba.git] / binfilter / inc / bf_svx / svdxcgv.hxx
blobe134cefb44cc7700e00a9279b5b2f34ff63c53d4
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: svdxcgv.hxx,v $
10 * $Revision: 1.6 $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 #ifndef _SVDXCGV_HXX
32 #define _SVDXCGV_HXX
34 // HACK to avoid too deep includes and to have some
35 // levels free in svdmark itself (MS compiler include depth limit)
36 #ifndef _SVDHDL_HXX
37 #include <bf_svx/svdhdl.hxx>
38 #endif
40 #include <bf_svx/svdedxv.hxx>
42 #ifndef _GDIMTF_HXX //autogen
43 #include <vcl/gdimtf.hxx>
44 #endif
45 namespace binfilter {
47 ////////////////////////////////////////////////////////////////////////////////////////////////////
48 ////////////////////////////////////////////////////////////////////////////////////////////////////
50 // @@@@@ @@ @@ @@@@ @@ @@ @@@@ @@ @@ @@@@ @@@@@ @@ @@ @@ @@@@@ @@ @@
51 // @@ @@@ @@@ @@ @@ @@ @@ @@ @@ @@@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@
52 // @@ @@@@@ @@ @@ @@ @@ @@ @@@@@@ @@ @@ @@ @@ @@ @@ @@ @ @@
53 // @@@@ @@@ @@ @@@@@@ @@@@@@ @@@@@@ @@ @@@ @@@@ @@@@@ @@ @@@@ @@@@@@@
54 // @@ @@@@@ @@ @@ @@ @@ @@ @@ @@@ @@ @@ @@ @@@ @@ @@ @@@@@@@
55 // @@ @@@ @@@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@@ @@ @@ @@@ @@@
56 // @@@@@ @@ @@ @@@@ @@ @@ @@ @@ @@ @@ @@@@@ @@@@@ @ @@ @@@@@ @@ @@
58 ////////////////////////////////////////////////////////////////////////////////////////////////////
59 ////////////////////////////////////////////////////////////////////////////////////////////////////
61 class SdrExchangeView: public SdrObjEditView
63 friend class SdrPageView;
65 protected:
67 //STRIP001 void ImpGetPasteObjList(Point& rPos, SdrObjList*& rpLst);
69 // liefert True, wenn rPt geaendert wurde
71 public:
73 SdrExchangeView(SdrModel* pModel1, OutputDevice* pOut=NULL);
75 // Alle markierten Objekte auf dem angegebenen OutputDevice ausgeben.
77 // Z.B. fuer's Clipboard, Drag&Drop, ...
78 // Alle markierten Objekte in ein Metafile stecken. Z.Zt. noch etwas
79 // buggee (Offset..., Fremdgrafikobjekte (SdrGrafObj), Virtuelle
80 // Objektkopien (SdrVirtObj) mit Ankerpos<>(0,0)).
81 virtual GDIMetaFile GetMarkedObjMetaFile(BOOL bNoVDevIfOneMtfMarked=FALSE) const;
83 // Alle markierten Objekte auf eine Bitmap malen. Diese hat die Farbtiefe
84 // und Aufloesung des Bildschirms.
86 // Alle markierten Objekte in ein neues Model kopieren. Dieses neue Model
87 // hat dann genau eine Page. Das Flag PageNotValid an diesem Model ist
88 // gesetzt. Daran ist zu erkennen, dass nur die Objekte der Page Gueltikeit
89 // haben, die Page sebst jedoch nicht (Seitengroesse, Raender). Das neue
90 // Model wird auf dem Heap erzeugt und wird an den Aufrufer dieser Methode
91 // uebergeben. Dieser hat es dann spaeter zu entsorgen.
92 // Beim einfuegen der markierten Objekte in die eine Page des neuen Model
93 // findet ein Merging der seitenlokalen Layer statt. Sollte kein Platz mehr
94 // fuer weitere seitenlokale Layer sein, wird den entsprechenden Objekten
95 // der Default-Layer zugewiesen (Layer 0, (dokumentglobaler Standardlayer).
97 GDIMetaFile GetAllMarkedMetaFile(BOOL bNoVDevIfOneMtfMarked=FALSE) const { return GetMarkedObjMetaFile(bNoVDevIfOneMtfMarked); }
100 // Bestimmung des View-Mittelpunktes, z.B. zum Pasten
102 // Bei allen Paste-Methoden werden die neuen Draw-Objekte markiert.
103 // Wird der Parameter bAddMark auf TRUE gesetzt, so werden die neuen
104 // DrawObjekte zu einer bereits bestehenden Selektion "hinzumarkiert".
105 // Dieser Fall ist fuer Drag&Drop mit mehreren Items gedacht.
106 // Die Methoden mit Point-Parameter fuegen neue Objekte zentriert an
107 // dieser Position ein, die anderen zentriert am 1.OutputDevice der View.
108 // Ist der Parameter pPg gesetzt, werden die Objekte and dieser Seite
109 // eingefuegt. Die Positionierung (rPos bzw. Zentrierung) bezieht sich
110 // dann nichtmehr auf die View sondern auf die Page.
111 // Hinweis: SdrObjList ist Basisklasse von SdrPage.
112 // Die Methoden liefern TRUE, wenn die Objekte erfolgreich erzeugt und
113 // eingefuegt wurden. Bei pLst=FALSE und kein TextEdit aktiv kann man
114 // sich dann auch darauf verlassen, dass diese an der View markiert sind.
115 // Andernfalls erfolgt die Markierung nur, wenn pLst z.Zt. auch an der
116 // View angezeigt wird.
117 // Gueltige Werte fuer nOptions sind SDRINSERT_DONTMARK und
118 // SDRINSERT_ADDMARK (siehe svdedtv.hxx).
121 }//end of namespace binfilter
122 #endif //_SVDXCGV_HXX