LibreOffice Module sw (master) 1
swcont.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19
20#ifndef INCLUDED_SW_SOURCE_UIBASE_INC_SWCONT_HXX
21#define INCLUDED_SW_SOURCE_UIBASE_INC_SWCONT_HXX
22
23#include <rtl/ustring.hxx>
24#include <tools/long.hxx>
25#include <vcl/naturalsort.hxx>
26
27class SwContentType;
28
29enum class ContentTypeId
30{
31 OUTLINE = 0,
32 TABLE = 1,
33 FRAME = 2,
34 GRAPHIC = 3,
35 OLE = 4,
36 BOOKMARK = 5,
37 REGION = 6,
38 URLFIELD = 7,
39 REFERENCE = 8,
40 INDEX = 9,
41 POSTIT = 10,
42 DRAWOBJECT = 11,
43 TEXTFIELD = 12,
44 FOOTNOTE = 13,
45 ENDNOTE = 14,
46 LAST = ENDNOTE,
47 UNKNOWN = -1
48};
49
50// strings for context menus
51#define CONTEXT_COUNT 17
52#define GLOBAL_CONTEXT_COUNT 14
53
54// modes for Drag 'n Drop
55enum class RegionMode
56{
57 NONE = 0,
58 LINK = 1,
59 EMBEDDED = 2
60};
61
62//mini rtti
64{
66
67 public:
69 virtual ~SwTypeNumber();
70
71 sal_uInt8 GetTypeId() const { return m_nTypeId;}
72};
73
74class SwContent : public SwTypeNumber
75{
79 // some subclasses appear to use this for a tools/gen.hxx-style
80 // geometric Y position, while e.g. SwOutlineContent wants to store
81 // the index in its subtree
83public:
84 SwContent(const SwContentType* pCnt, OUString aName, double nYPos);
85
86 virtual bool IsProtect() const;
87 const SwContentType* GetParent() const {return m_pParent;}
88 const OUString& GetName() const {return m_sContentName;}
89 bool operator==(const SwContent& /*rCont*/) const
90 {
91 // they're never equal, otherwise they'd fall out of the array
92 return false;
93 }
94 bool operator<(const SwContent& rCont) const
95 {
96 // at first sort by position and then by name
97 if (m_nYPosition != rCont.m_nYPosition)
98 return m_nYPosition < rCont.m_nYPosition;
100 }
101
102 bool IsInvisible() const {return m_bInvisible;}
103 void SetInvisible(){ m_bInvisible = true;}
104};
105
106#endif
107
108/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Content type, knows it's contents and the WrtShell.
Definition: content.hxx:173
bool operator==(const SwContent &) const
Definition: swcont.hxx:89
double m_nYPosition
Definition: swcont.hxx:78
bool m_bInvisible
Definition: swcont.hxx:82
OUString m_sContentName
Definition: swcont.hxx:77
bool IsInvisible() const
Definition: swcont.hxx:102
bool operator<(const SwContent &rCont) const
Definition: swcont.hxx:94
const OUString & GetName() const
Definition: swcont.hxx:88
const SwContentType * GetParent() const
Definition: swcont.hxx:87
void SetInvisible()
Definition: swcont.hxx:103
SwContent(const SwContentType *pCnt, OUString aName, double nYPos)
Definition: content.cxx:204
virtual bool IsProtect() const
Definition: content.cxx:218
const SwContentType * m_pParent
Definition: swcont.hxx:76
virtual ~SwTypeNumber()
Definition: content.cxx:214
sal_uInt8 GetTypeId() const
Definition: swcont.hxx:71
sal_uInt8 m_nTypeId
Definition: swcont.hxx:65
SwTypeNumber(sal_uInt8 nId)
Definition: swcont.hxx:68
UNKNOWN
NONE
RegionMode
sal_Int32 NaturalSortCompare(const OUString &rA, const OUString &rB)
FRAME
FOOTNOTE
sal_Int16 nId
ContentTypeId
Definition: swcont.hxx:30
unsigned char sal_uInt8
TABLE