fdo#74697 Add Bluez 5 support for impress remote.
[LibreOffice.git] / autodoc / source / display / inc / toolkit / out_position.hxx
blobe8ed15e397228434b8abbeda3c5a3321e3bb9ec8
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
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/.
9 * This file incorporates work covered by the following license notice:
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 .
20 #ifndef ADC_DISPLAY_OUT_POSITION_HXX
21 #define ADC_DISPLAY_OUT_POSITION_HXX
24 // USED SERVICES
25 // BASE CLASSES
26 // COMPONENTS
27 #include <toolkit/out_node.hxx>
28 // PARAMETERS
32 namespace output
37 class Position
39 public:
40 // LIFECYCLE
41 Position();
42 explicit Position(
43 Node & i_directory,
44 const String & i_file = String::Null_() );
45 Position(
46 const Position & i_directory,
47 const String & i_rDifferentFile );
48 ~Position();
50 // OPERATIONS
51 Position & operator=(
52 Node & i_node );
53 Position & operator+=(
54 const String & i_nodeName );
55 Position & operator-=(
56 intt i_levels );
58 // INQUIRY
59 bool IsValid() const { return pDirectory->Depth() >= 0; }
60 const String & Name() const { return pDirectory->Name(); }
61 const String & File() const { return sFile; }
62 intt Depth() const { return pDirectory->Depth(); }
64 void Get_Chain(
65 StringVector & o_result ) const
66 { pDirectory->Get_Chain(o_result); }
67 String LinkToRoot() const;
69 void Get_LinkTo(
70 StreamStr & o_result,
71 const Position & i_destination,
72 const String & i_localLabel = String::Null_() ) const;
73 void Get_LinkToRoot(
74 StreamStr & o_result ) const;
76 static char Delimiter() { return '/'; }
78 // ACCESS
79 Node & RelatedNode() const { return *pDirectory; }
81 void Set(
82 Node & i_node,
83 const String & i_file = String::Null_() );
84 void Set_File(
85 const String & i_file );
87 private:
88 // DATA
89 String sFile;
90 Node * pDirectory;
94 /// @return No delimiter at start, with delimiter at end.
95 const char * get_UpLink(
96 uintt i_depth );
99 // IMPLEMENTATION
101 inline void
102 Position::Set_File( const String & i_file )
103 { sFile = i_file; }
105 } // namespace output
107 #endif
109 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */