# coding: utf-8
#
# Copyright 2023 :Barry-Thomas-Paul: Moss
#
# Licensed 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
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Interface Class
# this is a auto generated file generated by Cheetah
# Libre Office Version: 7.4
# Namespace: com.sun.star.text
from __future__ import annotations
from abc import abstractmethod
from .x_text_cursor import XTextCursor as XTextCursor_a60c0b48

class XWordCursor(XTextCursor_a60c0b48):
    """
    makes it possible to move a cursor word by word.

    See Also:
        `API XWordCursor <https://api.libreoffice.org/docs/idl/ref/interfacecom_1_1sun_1_1star_1_1text_1_1XWordCursor.html>`_
    """
    __ooo_ns__: str = 'com.sun.star.text'
    __ooo_full_ns__: str = 'com.sun.star.text.XWordCursor'
    __ooo_type_name__: str = 'interface'
    __pyunointerface__: str = 'com.sun.star.text.XWordCursor'

    @abstractmethod
    def gotoEndOfWord(self, bExpand: bool) -> bool:
        """
        moves the cursor to the end of the current word.
        """
        ...
    @abstractmethod
    def gotoNextWord(self, bExpand: bool) -> bool:
        """
        moves the cursor to the next word.
        
        Note: the function returning TRUE does not necessarily mean that the cursor is located at the next word, or any word at all! This may happen for example if it travels over empty paragraphs.
        """
        ...
    @abstractmethod
    def gotoPreviousWord(self, bExpand: bool) -> bool:
        """
        moves the cursor to the previous word.
        
        Note: the function returning TRUE does not necessarily mean that the cursor is located at the previous word, or any word at all! This may happen for example if it travels over empty paragraphs.
        """
        ...
    @abstractmethod
    def gotoStartOfWord(self, bExpand: bool) -> bool:
        """
        moves the cursor to the start of the current word.
        """
        ...
    @abstractmethod
    def isEndOfWord(self) -> bool:
        """
        determines if the cursor is positioned at the end of a word.
        """
        ...
    @abstractmethod
    def isStartOfWord(self) -> bool:
        """
        determines if the cursor is positioned at the start of a word.
        """
        ...

__all__ = ['XWordCursor']

