OverviewFilesCommitsIssuesDocsReleasesPeers

hardops / ui_framework / form_ui / __init__.py

40 lines · python ref:
from .form import Form
from .elements import setup_image_group
from .elements.label import Label
from .elements.button import Button
from .elements.input import Input
from .elements.spacer import Spacer
from .elements.dropdown import Dropdown
from .elements.color import Color
from .elements.scroll_box import Scroll_Box, Scroll_Group
from .elements.popup import Popup
from .elements.text_input import Text_Input


# --- User Utils --- #

def shortened_text(text="", width=0, font_size=12, with_dots=True):
    from .. utils.geo import get_blf_text_dims
    from ...utility.screen import dpi_factor

    width = width * dpi_factor(min=0.5)
    new_text = text
    slice_end = len(text)

    while True:
        if with_dots:
            if get_blf_text_dims(new_text + "...", font_size)[0] < width:
                if slice_end == len(text):
                    return new_text
                return new_text + "..."
        else:
            if get_blf_text_dims(new_text, font_size)[0] < width:
                return new_text
        slice_end -= 1
        if slice_end <= 0: return text
        new_text = text[:slice_end]