sync master with lastest vba changes
[ooovba.git] / binfilter / inc / bf_svx / svdpoev.hxx
blobb98fc0fc9ae7d4543b2ecb9882a4fd744b09f596
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: svdpoev.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 _SVDPOEV_HXX
32 #define _SVDPOEV_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/svdedtv.hxx>
41 namespace binfilter {
43 //************************************************************
44 // Defines
45 //************************************************************
47 enum SdrPathSmoothKind {SDRPATHSMOOTH_DONTCARE, // nur fuer Statusabfrage
48 SDRPATHSMOOTH_ANGULAR, // Eckig
49 SDRPATHSMOOTH_ASYMMETRIC, // unsymmetrisch, normales Smooth
50 SDRPATHSMOOTH_SYMMETRIC}; // symmetrisch
52 enum SdrPathSegmentKind {SDRPATHSEGMENT_DONTCARE, // nur fuer Statusabfrage
53 SDRPATHSEGMENT_LINE, // gerader Streckenabschnitt
54 SDRPATHSEGMENT_CURVE, // Kurvenabschnitt (Bezier)
55 SDRPATHSEGMENT_TOGGLE}; // nur fuer Set: Toggle
57 enum SdrObjClosedKind {SDROBJCLOSED_DONTCARE, // nur fuer Statusabfrage
58 SDROBJCLOSED_OPEN, // Objekte geoeffnet (Linie, Polyline, ...)
59 SDROBJCLOSED_CLOSED, // Objekte geschlossen (Polygon, ...)
60 SDROBJCLOSED_TOGGLE}; // nur fuer Set: Toggle (not implemented yet)
62 ////////////////////////////////////////////////////////////////////////////////////////////////////
63 ////////////////////////////////////////////////////////////////////////////////////////////////////
65 // @@@@@ @@@@ @@ @@ @@ @@@@@ @@@@@ @@ @@@@@@ @@ @@ @@ @@@@@ @@ @@
66 // @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@
67 // @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @ @@
68 // @@@@@ @@ @@ @@ @@@@ @@@@ @@ @@ @@ @@ @@@@@ @@ @@@@ @@@@@@@
69 // @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@@ @@ @@ @@@@@@@
70 // @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@@ @@ @@ @@@ @@@
71 // @@ @@@@ @@@@@ @@ @@@@@ @@@@@ @@ @@ @ @@ @@@@@ @@ @@
73 ////////////////////////////////////////////////////////////////////////////////////////////////////
74 ////////////////////////////////////////////////////////////////////////////////////////////////////
76 class SdrPolyEditView: public SdrEditView
78 friend class SdrEditView;
80 protected:
81 BOOL bSetMarkedPointsSmoothPossible : 1;
82 BOOL bSetMarkedSegmentsKindPossible : 1;
84 SdrPathSmoothKind eMarkedPointsSmooth;
85 SdrPathSegmentKind eMarkedSegmentsKind;
87 private:
88 void ImpClearVars();
89 void ImpResetPolyPossibilityFlags();
90 void ImpCheckPolyPossibilities();
92 // Markierte Punkte kopieren und anstelle der alten markieren
93 // ist noch nicht implementiert!
94 typedef void (*PPolyTrFunc)(Point&, Point*, Point*, const void*, const void*, const void*, const void*, const void*);
96 public:
97 SdrPolyEditView(SdrModel* pModel1, OutputDevice* pOut=NULL);
98 virtual ~SdrPolyEditView();
100 BOOL IsSetMarkedPointsSmoothPossible() const { ForcePossibilities(); return bSetMarkedPointsSmoothPossible; }
101 SdrPathSmoothKind GetMarkedPointsSmooth() const { ForcePossibilities(); return eMarkedPointsSmooth; }
103 // Ein PolySegment kann eine Strecke oder eine Bezierkurve sein.
104 BOOL IsSetMarkedSegmentsKindPossible() const { ForcePossibilities(); return bSetMarkedSegmentsKindPossible; }
105 SdrPathSegmentKind GetMarkedSegmentsKind() const { ForcePossibilities(); return eMarkedSegmentsKind; }
107 // Moeglicherweise ist das Obj hinterher geloescht:
108 BOOL IsDeleteMarkedPointsPossible() const { return HasMarkedPoints(); }
111 // Hierbei entstehen eventuell beliebig viele neue Objekte:
113 // Alle markierten Polylines werden zu Polygonen, alle offenen
114 // Bezierkurven zu geschlossenen.
117 }//end of namespace binfilter
118 #endif //_SVDPOEV_HXX