solenv/clang-format/excludelist |    1 
 vcl/source/edit/TextLine.hxx    |   89 ++++++++++++++++++++++++++++++++++++++++
 vcl/source/edit/textdat2.hxx    |   59 --------------------------
 vcl/source/edit/textdata.cxx    |    3 -
 vcl/source/edit/texteng.cxx     |    2 
 vcl/source/edit/textview.cxx    |    2 
 6 files changed, 97 insertions(+), 59 deletions(-)

New commits:
commit 8d01f7a927970bc205b816be6be4f79570192808
Author:     Christopher Sherlock <[email protected]>
AuthorDate: Fri Jan 3 19:36:17 2025 +1100
Commit:     Michael Weghorn <[email protected]>
CommitDate: Mon Feb 17 09:00:13 2025 +0100

    vcl: move TextLine to own header file
    
    Change-Id: I0e7097cc4a020d945a90e732539a0b5773bccf11
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/179711
    Reviewed-by: Michael Weghorn <[email protected]>
    Tested-by: Jenkins

diff --git a/solenv/clang-format/excludelist b/solenv/clang-format/excludelist
index a55868834074..3e308c87a8b4 100644
--- a/solenv/clang-format/excludelist
+++ b/solenv/clang-format/excludelist
@@ -14589,6 +14589,7 @@ vcl/source/control/tabctrl.cxx
 vcl/source/control/throbber.cxx
 vcl/source/control/wizardmachine.cxx
 vcl/source/control/wizimpldata.hxx
+vcl/source/edit/TextLine.hxx
 vcl/source/edit/textdat2.hxx
 vcl/source/edit/textdata.cxx
 vcl/source/edit/textdoc.cxx
diff --git a/vcl/source/edit/TextLine.hxx b/vcl/source/edit/TextLine.hxx
new file mode 100644
index 000000000000..a6b46997803a
--- /dev/null
+++ b/vcl/source/edit/TextLine.hxx
@@ -0,0 +1,89 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; 
fill-column: 100 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ *   Licensed to the Apache Software Foundation (ASF) under one or more
+ *   contributor license agreements. See the NOTICE file distributed
+ *   with this work for additional information regarding copyright
+ *   ownership. The ASF licenses this file to you under the Apache
+ *   License, Version 2.0 (the "License"); you may not use this file
+ *   except in compliance with the License. You may obtain a copy of
+ *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#pragma once
+
+#include <vcl/seleng.hxx>
+#include <vcl/cursor.hxx>
+#include <vcl/idle.hxx>
+#include <vcl/textdata.hxx>
+
+#include <cstddef>
+#include <limits>
+#include <vector>
+
+class TextLine
+{
+private:
+    sal_Int32           mnStart;
+    sal_Int32           mnEnd;
+    std::size_t         mnStartPortion;
+    std::size_t         mnEndPortion;
+
+    short               mnStartX;
+
+    bool                mbInvalid;  // for clever formatting/output
+
+public:
+                    TextLine()
+                        : mnStart {0}
+                        , mnEnd {0}
+                        , mnStartPortion {0}
+                        , mnEndPortion {0}
+                        , mnStartX {0}
+                        , mbInvalid {true}
+                    {}
+
+    bool            IsIn( sal_Int32 nIndex, bool bInclEnd ) const
+                        { return nIndex >= mnStart && ( bInclEnd ? nIndex <= 
mnEnd : nIndex < mnEnd ); }
+
+    void            SetStart( sal_Int32 n )         { mnStart = n; }
+    sal_Int32       GetStart() const                { return mnStart; }
+
+    void            SetEnd( sal_Int32 n )           { mnEnd = n; }
+    sal_Int32       GetEnd() const                  { return mnEnd; }
+
+    void            SetStartPortion( std::size_t n ) { mnStartPortion = n; }
+    std::size_t     GetStartPortion() const         { return mnStartPortion; }
+
+    void            SetEndPortion( std::size_t n )  { mnEndPortion = n; }
+    std::size_t     GetEndPortion() const           { return mnEndPortion; }
+
+    sal_Int32       GetLen() const                  { return mnEnd - mnStart; }
+
+    bool            IsInvalid() const               { return mbInvalid; }
+    bool            IsValid() const                 { return !mbInvalid; }
+    void            SetInvalid()                    { mbInvalid = true; }
+    void            SetValid()                      { mbInvalid = false; }
+
+    short           GetStartX() const               { return mnStartX; }
+    void            SetStartX( short n )            { mnStartX = n; }
+
+    inline bool operator == ( const TextLine& rLine ) const;
+};
+
+inline bool TextLine::operator == ( const TextLine& rLine ) const
+{
+    return mnStart == rLine.mnStart &&
+           mnEnd == rLine.mnEnd &&
+           mnStartPortion == rLine.mnStartPortion &&
+           mnEndPortion == rLine.mnEndPortion;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s 
cinkeys+=0=break: */
diff --git a/vcl/source/edit/textdat2.hxx b/vcl/source/edit/textdat2.hxx
index e0174848f74a..e811fee53182 100644
--- a/vcl/source/edit/textdat2.hxx
+++ b/vcl/source/edit/textdat2.hxx
@@ -28,6 +28,7 @@
 #include <limits>
 #include <vector>
 
+class TextLine;
 class TextNode;
 class TextView;
 
@@ -109,64 +110,6 @@ struct TEWritingDirectionInfo
     {}
 };
 
-class TextLine
-{
-private:
-    sal_Int32           mnStart;
-    sal_Int32           mnEnd;
-    std::size_t         mnStartPortion;
-    std::size_t         mnEndPortion;
-
-    short               mnStartX;
-
-    bool                mbInvalid;  // for clever formatting/output
-
-public:
-                    TextLine()
-                        : mnStart {0}
-                        , mnEnd {0}
-                        , mnStartPortion {0}
-                        , mnEndPortion {0}
-                        , mnStartX {0}
-                        , mbInvalid {true}
-                    {}
-
-    bool            IsIn( sal_Int32 nIndex, bool bInclEnd ) const
-                        { return nIndex >= mnStart && ( bInclEnd ? nIndex <= 
mnEnd : nIndex < mnEnd ); }
-
-    void            SetStart( sal_Int32 n )         { mnStart = n; }
-    sal_Int32       GetStart() const                { return mnStart; }
-
-    void            SetEnd( sal_Int32 n )           { mnEnd = n; }
-    sal_Int32       GetEnd() const                  { return mnEnd; }
-
-    void            SetStartPortion( std::size_t n ) { mnStartPortion = n; }
-    std::size_t     GetStartPortion() const         { return mnStartPortion; }
-
-    void            SetEndPortion( std::size_t n )  { mnEndPortion = n; }
-    std::size_t     GetEndPortion() const           { return mnEndPortion; }
-
-    sal_Int32       GetLen() const                  { return mnEnd - mnStart; }
-
-    bool            IsInvalid() const               { return mbInvalid; }
-    bool            IsValid() const                 { return !mbInvalid; }
-    void            SetInvalid()                    { mbInvalid = true; }
-    void            SetValid()                      { mbInvalid = false; }
-
-    short           GetStartX() const               { return mnStartX; }
-    void            SetStartX( short n )            { mnStartX = n; }
-
-    inline bool operator == ( const TextLine& rLine ) const;
-};
-
-inline bool TextLine::operator == ( const TextLine& rLine ) const
-{
-    return mnStart == rLine.mnStart &&
-           mnEnd == rLine.mnEnd &&
-           mnStartPortion == rLine.mnStartPortion &&
-           mnEndPortion == rLine.mnEndPortion;
-}
-
 class TEParaPortion
 {
 private:
diff --git a/vcl/source/edit/textdata.cxx b/vcl/source/edit/textdata.cxx
index bf29c1443de7..a78cc3488806 100644
--- a/vcl/source/edit/textdata.cxx
+++ b/vcl/source/edit/textdata.cxx
@@ -25,8 +25,9 @@
 
 #include <utility>
 #include <vcl/textdata.hxx>
-#include "textdat2.hxx"
 
+#include "TextLine.hxx"
+#include "textdat2.hxx"
 
 TextSelection::TextSelection()
 {
diff --git a/vcl/source/edit/texteng.cxx b/vcl/source/edit/texteng.cxx
index 75cf692171a5..2dd9d841eac3 100644
--- a/vcl/source/edit/texteng.cxx
+++ b/vcl/source/edit/texteng.cxx
@@ -35,6 +35,8 @@
 #include <sal/log.hxx>
 #include <osl/diagnose.h>
 
+#include "TextLine.hxx"
+
 #include <com/sun/star/i18n/XBreakIterator.hpp>
 
 #include <com/sun/star/i18n/CharacterIteratorMode.hpp>
diff --git a/vcl/source/edit/textview.cxx b/vcl/source/edit/textview.cxx
index e5504c58a68e..b4b19c851fc6 100644
--- a/vcl/source/edit/textview.cxx
+++ b/vcl/source/edit/textview.cxx
@@ -59,6 +59,8 @@
 
 #include <sot/exchange.hxx>
 
+#include "TextLine.hxx"
+
 #include <algorithm>
 #include <cstddef>
 

Reply via email to