Showing preview only (1,705K chars total). Download the full file or copy to clipboard to get everything.
Repository: kotcrab/VisEditor
Branch: master
Commit: 820300c86a1b
Files: 301
Total size: 1.6 MB
Directory structure:
gitextract_uullo9ny/
├── .gitattributes
├── .github/
│ ├── CODEOWNERS
│ └── workflows/
│ ├── pr.yml
│ ├── release.yml
│ └── snapshot.yml
├── .gitignore
├── AUTHORS
├── CONTRIBUTING.md
├── CONTRIBUTORS
├── LICENSE
├── README.md
├── build.gradle
├── gradle/
│ └── wrapper/
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradle.properties
├── gradlew
├── gradlew.bat
├── settings.gradle
├── ui/
│ ├── CHANGES.md
│ ├── NOTICE
│ ├── assets-raw/
│ │ ├── x1/
│ │ │ └── pack.json
│ │ ├── x1-fonts/
│ │ │ ├── default.hiero
│ │ │ └── font-small.hiero
│ │ ├── x2/
│ │ │ └── pack.json
│ │ └── x2-fonts/
│ │ ├── default.hiero
│ │ └── font-small.hiero
│ ├── build.gradle
│ ├── gradle.properties
│ ├── icons-license
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── kotcrab/
│ │ │ └── vis/
│ │ │ └── ui/
│ │ │ ├── FocusManager.java
│ │ │ ├── Focusable.java
│ │ │ ├── Locales.java
│ │ │ ├── Sizes.java
│ │ │ ├── VisUI.java
│ │ │ ├── building/
│ │ │ │ ├── CenteredTableBuilder.java
│ │ │ │ ├── GridTableBuilder.java
│ │ │ │ ├── OneColumnTableBuilder.java
│ │ │ │ ├── OneRowTableBuilder.java
│ │ │ │ ├── StandardTableBuilder.java
│ │ │ │ ├── TableBuilder.java
│ │ │ │ └── utilities/
│ │ │ │ ├── Alignment.java
│ │ │ │ ├── CellWidget.java
│ │ │ │ ├── Nullables.java
│ │ │ │ ├── Padding.java
│ │ │ │ └── layouts/
│ │ │ │ ├── ActorLayout.java
│ │ │ │ ├── GridTableLayout.java
│ │ │ │ └── TableLayout.java
│ │ │ ├── i18n/
│ │ │ │ └── BundleText.java
│ │ │ ├── layout/
│ │ │ │ ├── DragPane.java
│ │ │ │ ├── FloatingGroup.java
│ │ │ │ ├── FlowGroup.java
│ │ │ │ ├── GridGroup.java
│ │ │ │ ├── HorizontalFlowGroup.java
│ │ │ │ └── VerticalFlowGroup.java
│ │ │ ├── util/
│ │ │ │ ├── ActorUtils.java
│ │ │ │ ├── BorderOwner.java
│ │ │ │ ├── ColorUtils.java
│ │ │ │ ├── CursorManager.java
│ │ │ │ ├── FloatDigitsOnlyFilter.java
│ │ │ │ ├── InputValidator.java
│ │ │ │ ├── IntDigitsOnlyFilter.java
│ │ │ │ ├── NumberDigitsTextFieldFilter.java
│ │ │ │ ├── OsUtils.java
│ │ │ │ ├── TableUtils.java
│ │ │ │ ├── ToastManager.java
│ │ │ │ ├── Validators.java
│ │ │ │ ├── adapter/
│ │ │ │ │ ├── AbstractListAdapter.java
│ │ │ │ │ ├── ArrayAdapter.java
│ │ │ │ │ ├── ArrayListAdapter.java
│ │ │ │ │ ├── CachedItemAdapter.java
│ │ │ │ │ ├── ItemAdapter.java
│ │ │ │ │ ├── ListAdapter.java
│ │ │ │ │ ├── ListSelectionAdapter.java
│ │ │ │ │ └── SimpleListAdapter.java
│ │ │ │ ├── async/
│ │ │ │ │ ├── AsyncTask.java
│ │ │ │ │ ├── AsyncTaskListener.java
│ │ │ │ │ ├── AsyncTaskProgressDialog.java
│ │ │ │ │ └── SteppedAsyncTask.java
│ │ │ │ ├── dialog/
│ │ │ │ │ ├── ConfirmDialogListener.java
│ │ │ │ │ ├── Dialogs.java
│ │ │ │ │ ├── InputDialogAdapter.java
│ │ │ │ │ ├── InputDialogListener.java
│ │ │ │ │ ├── OptionDialogAdapter.java
│ │ │ │ │ └── OptionDialogListener.java
│ │ │ │ ├── form/
│ │ │ │ │ ├── FormInputValidator.java
│ │ │ │ │ ├── FormValidator.java
│ │ │ │ │ ├── SimpleFormValidator.java
│ │ │ │ │ └── ValidatorWrapper.java
│ │ │ │ ├── highlight/
│ │ │ │ │ ├── BaseHighlighter.java
│ │ │ │ │ ├── Highlight.java
│ │ │ │ │ ├── HighlightRule.java
│ │ │ │ │ ├── Highlighter.java
│ │ │ │ │ ├── RegexHighlightRule.java
│ │ │ │ │ └── WordHighlightRule.java
│ │ │ │ └── value/
│ │ │ │ ├── ConstantIfVisibleValue.java
│ │ │ │ ├── PrefHeightIfVisibleValue.java
│ │ │ │ ├── PrefWidthIfVisibleValue.java
│ │ │ │ ├── VisValue.java
│ │ │ │ └── VisWidgetValue.java
│ │ │ └── widget/
│ │ │ ├── BusyBar.java
│ │ │ ├── ButtonBar.java
│ │ │ ├── CollapsibleWidget.java
│ │ │ ├── Draggable.java
│ │ │ ├── HighlightTextArea.java
│ │ │ ├── HorizontalCollapsibleWidget.java
│ │ │ ├── LinkLabel.java
│ │ │ ├── ListView.java
│ │ │ ├── ListViewStyle.java
│ │ │ ├── Menu.java
│ │ │ ├── MenuBar.java
│ │ │ ├── MenuItem.java
│ │ │ ├── MultiSplitPane.java
│ │ │ ├── PopupMenu.java
│ │ │ ├── ScrollableTextArea.java
│ │ │ ├── Separator.java
│ │ │ ├── Tooltip.java
│ │ │ ├── VisCheckBox.java
│ │ │ ├── VisDialog.java
│ │ │ ├── VisImage.java
│ │ │ ├── VisImageButton.java
│ │ │ ├── VisImageTextButton.java
│ │ │ ├── VisLabel.java
│ │ │ ├── VisList.java
│ │ │ ├── VisProgressBar.java
│ │ │ ├── VisRadioButton.java
│ │ │ ├── VisScrollPane.java
│ │ │ ├── VisSelectBox.java
│ │ │ ├── VisSlider.java
│ │ │ ├── VisSplitPane.java
│ │ │ ├── VisTable.java
│ │ │ ├── VisTextArea.java
│ │ │ ├── VisTextButton.java
│ │ │ ├── VisTextField.java
│ │ │ ├── VisTree.java
│ │ │ ├── VisValidatableTextField.java
│ │ │ ├── VisWindow.java
│ │ │ ├── color/
│ │ │ │ ├── BasicColorPicker.java
│ │ │ │ ├── ColorPicker.java
│ │ │ │ ├── ColorPickerAdapter.java
│ │ │ │ ├── ColorPickerListener.java
│ │ │ │ ├── ColorPickerStyle.java
│ │ │ │ ├── ColorPickerWidgetStyle.java
│ │ │ │ ├── ExtendedColorPicker.java
│ │ │ │ └── internal/
│ │ │ │ ├── AlphaChannelBar.java
│ │ │ │ ├── AlphaImage.java
│ │ │ │ ├── ChannelBar.java
│ │ │ │ ├── ColorChannelWidget.java
│ │ │ │ ├── ColorInputField.java
│ │ │ │ ├── ColorPickerText.java
│ │ │ │ ├── GridSubImage.java
│ │ │ │ ├── Palette.java
│ │ │ │ ├── PickerCommons.java
│ │ │ │ ├── ShaderImage.java
│ │ │ │ ├── VerticalChannelBar.java
│ │ │ │ └── package-info.java
│ │ │ ├── file/
│ │ │ │ ├── FileChooser.java
│ │ │ │ ├── FileChooserAdapter.java
│ │ │ │ ├── FileChooserListener.java
│ │ │ │ ├── FileChooserStyle.java
│ │ │ │ ├── FileTypeFilter.java
│ │ │ │ ├── FileUtils.java
│ │ │ │ ├── SingleFileChooserListener.java
│ │ │ │ ├── StreamingFileChooserListener.java
│ │ │ │ └── internal/
│ │ │ │ ├── AbstractSuggestionPopup.java
│ │ │ │ ├── DirsSuggestionPopup.java
│ │ │ │ ├── DriveCheckerService.java
│ │ │ │ ├── FileChooserText.java
│ │ │ │ ├── FileChooserWinService.java
│ │ │ │ ├── FileHandleMetadata.java
│ │ │ │ ├── FileHistoryManager.java
│ │ │ │ ├── FileListAdapter.java
│ │ │ │ ├── FilePopupMenu.java
│ │ │ │ ├── FileSuggestionPopup.java
│ │ │ │ ├── IconStack.java
│ │ │ │ ├── PreferencesIO.java
│ │ │ │ ├── ServiceThreadFactory.java
│ │ │ │ ├── SortingPopupMenu.java
│ │ │ │ └── package-info.java
│ │ │ ├── internal/
│ │ │ │ └── SplitPaneCursorManager.java
│ │ │ ├── spinner/
│ │ │ │ ├── AbstractSpinnerModel.java
│ │ │ │ ├── ArraySpinnerModel.java
│ │ │ │ ├── FloatSpinnerModel.java
│ │ │ │ ├── IntSpinnerModel.java
│ │ │ │ ├── SimpleFloatSpinnerModel.java
│ │ │ │ ├── Spinner.java
│ │ │ │ └── SpinnerModel.java
│ │ │ ├── tabbedpane/
│ │ │ │ ├── Tab.java
│ │ │ │ ├── TabbedPane.java
│ │ │ │ ├── TabbedPaneAdapter.java
│ │ │ │ └── TabbedPaneListener.java
│ │ │ └── toast/
│ │ │ ├── MessageToast.java
│ │ │ ├── Toast.java
│ │ │ └── ToastTable.java
│ │ └── resources/
│ │ ├── META-INF/
│ │ │ └── robovm/
│ │ │ └── ios/
│ │ │ └── robovm.xml
│ │ └── com/
│ │ └── kotcrab/
│ │ └── vis/
│ │ ├── ui/
│ │ │ ├── i18n/
│ │ │ │ ├── ButtonBar.properties
│ │ │ │ ├── ColorPicker.properties
│ │ │ │ ├── Common.properties
│ │ │ │ ├── Dialogs.properties
│ │ │ │ ├── FileChooser.properties
│ │ │ │ └── TabbedPane.properties
│ │ │ ├── skin/
│ │ │ │ ├── x1/
│ │ │ │ │ ├── default.fnt
│ │ │ │ │ ├── font-small.fnt
│ │ │ │ │ ├── uiskin.atlas
│ │ │ │ │ └── uiskin.json
│ │ │ │ └── x2/
│ │ │ │ ├── default.fnt
│ │ │ │ ├── font-small.fnt
│ │ │ │ ├── uiskin.atlas
│ │ │ │ └── uiskin.json
│ │ │ └── widget/
│ │ │ └── color/
│ │ │ └── internal/
│ │ │ ├── checkerboard.frag
│ │ │ ├── default.vert
│ │ │ ├── hsv.frag
│ │ │ ├── palette.frag
│ │ │ ├── rgb.frag
│ │ │ └── verticalBar.frag
│ │ └── vis-ui.gwt.xml
│ └── test/
│ ├── java/
│ │ └── com/
│ │ └── kotcrab/
│ │ └── vis/
│ │ └── ui/
│ │ └── test/
│ │ ├── GreaterThanValidatorTest.java
│ │ ├── LesserThanValidatorTest.java
│ │ ├── TestImageTextButtonOrientation.java
│ │ └── manual/
│ │ ├── HighResFileChooserIconProvider.java
│ │ ├── TestBuilders.java
│ │ ├── TestBusyBar.java
│ │ ├── TestButtonBar.java
│ │ ├── TestCollapsible.java
│ │ ├── TestColorPicker.java
│ │ ├── TestDialogs.java
│ │ ├── TestFileChooser.java
│ │ ├── TestFloatingGroup.java
│ │ ├── TestFlowGroup.java
│ │ ├── TestFormValidator.java
│ │ ├── TestGenerateDisabledImage.java
│ │ ├── TestHighlightTextArea.java
│ │ ├── TestIssue131.java
│ │ ├── TestIssue326.java
│ │ ├── TestLauncher.java
│ │ ├── TestListView.java
│ │ ├── TestMultiSplitPane.java
│ │ ├── TestSplitPane.java
│ │ ├── TestTabbedPane.java
│ │ ├── TestTextAreaAndScroll.java
│ │ ├── TestToasts.java
│ │ ├── TestTree.java
│ │ ├── TestValidator.java
│ │ ├── TestVertical.java
│ │ ├── TestWindow.java
│ │ └── WindowResizeListener.java
│ └── resources/
│ └── file-chooser-high-res.atlas
├── usl/
│ ├── CHANGES.md
│ ├── build.gradle
│ ├── gradle.properties
│ ├── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── kotcrab/
│ │ │ └── vis/
│ │ │ └── usl/
│ │ │ ├── CollectionUtils.java
│ │ │ ├── IncludeLoader.java
│ │ │ ├── Lexer.java
│ │ │ ├── LexerContext.java
│ │ │ ├── Main.java
│ │ │ ├── Parser.java
│ │ │ ├── StyleMerger.java
│ │ │ ├── Token.java
│ │ │ ├── USL.java
│ │ │ ├── USLException.java
│ │ │ ├── USLJsonWriter.java
│ │ │ ├── Utils.java
│ │ │ └── lang/
│ │ │ ├── AliasIdentifier.java
│ │ │ ├── BasicIdentifier.java
│ │ │ ├── GroupIdentifier.java
│ │ │ ├── Identifier.java
│ │ │ ├── StyleBlock.java
│ │ │ └── StyleIdentifier.java
│ │ └── test/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── kotcrab/
│ │ │ └── vis/
│ │ │ └── usl/
│ │ │ └── test/
│ │ │ ├── RemoteTest.java
│ │ │ └── TemplateBasedParserTest.java
│ │ └── resources/
│ │ ├── test-alias-expected.json
│ │ ├── test-alias.usl
│ │ ├── test-comments-expected.json
│ │ ├── test-comments.usl
│ │ ├── test-gdx-expected.json
│ │ ├── test-gdx.usl
│ │ ├── test-minus-expected.json
│ │ ├── test-minus.usl
│ │ ├── test-tinted-expected.json
│ │ ├── test-tinted.usl
│ │ ├── test-visui-expected.json
│ │ └── test-visui.usl
│ └── styles/
│ ├── gdx.usl
│ ├── visui-1.0.2.usl
│ ├── visui-1.1.6.usl
│ ├── visui-1.2.3.usl
│ ├── visui-1.2.4.usl
│ ├── visui-1.2.5.usl
│ ├── visui-1.3.0.usl
│ ├── visui-1.4.0.usl
│ ├── visui-1.4.1.usl
│ ├── visui-1.4.10.usl
│ ├── visui-1.4.11.usl
│ ├── visui-1.4.2.usl
│ ├── visui-1.4.3.usl
│ ├── visui-1.4.4.usl
│ ├── visui-1.4.5.usl
│ ├── visui-1.4.6.usl
│ ├── visui-1.4.7.usl
│ ├── visui-1.4.8.usl
│ └── visui-1.4.9.usl
└── vis-intellij-formatter.xml
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitattributes
================================================
*.svg filter=lfs diff=lfs merge=lfs -text
================================================
FILE: .github/CODEOWNERS
================================================
* @kotcrab
================================================
FILE: .github/workflows/pr.yml
================================================
name: Build pull request
on:
pull_request:
branches: [ master ]
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Repository checkout
uses: actions/checkout@v2
- name: Set up JDK 11
uses: actions/setup-java@v1
with:
java-version: 11
- name: Run tests
run: ./gradlew check
================================================
FILE: .github/workflows/release.yml
================================================
name: Release
on:
push:
tags:
- 'visui-*'
jobs:
release:
runs-on: ubuntu-latest
environment: release
steps:
- name: Repository checkout
uses: actions/checkout@v2
- name: Set up JDK 11
uses: actions/setup-java@v1
with:
java-version: 11
- name: Run tests
run: ./gradlew check
- name: Upload to Maven Central
run: ./gradlew :ui:publishToMavenCentral
env:
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.CENTRAL_USERNAME }}
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.CENTRAL_PASSWORD }}
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.SIGNING_KEY }}
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.SIGNING_PASSWORD }}
================================================
FILE: .github/workflows/snapshot.yml
================================================
name: Build and upload snapshot
on:
push:
branches: [ master ]
schedule:
- cron: "40 16 10 * *"
jobs:
snapshot:
runs-on: ubuntu-latest
environment: release
steps:
- name: Repository checkout
uses: actions/checkout@v2
- name: Set up JDK 11
uses: actions/setup-java@v1
with:
java-version: 11
- name: Run tests
run: ./gradlew check
- name: Upload to Maven Central
run: ./gradlew :ui:publishSnapshot
env:
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.CENTRAL_USERNAME }}
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.CENTRAL_PASSWORD }}
================================================
FILE: .gitignore
================================================
## Maven
target/
## Java
*.class
*.war
*.ear
hs_err_pid*
## GWT
war/gwt_bree/
gwt-unitCache/
.apt_generated/
war/WEB-INF/deploy/
war/WEB-INF/classes/
.gwt/
gwt-unitCache/
www-test/
.gwt-tmp/
## Android Studio and Intellij
.idea/
*.ipr
*.iws
*.iml
out/
com_crashlytics_export_strings.xml
## Eclipse
.metadata
bin/
tmp/
*.tmp
*.bak
*.swp
*~.nib
local.properties
.settings/
.loadpath
.pydevproject
.project
.classpath
.externalToolBuilders/
*.launch
## NetBeans
nbproject/private/
build/
nbbuild/
dist/
nbdist/
nbactions.xml
nb-configuration.xml
## Gradle
.gradle
build/
/target
/target
/target
================================================
FILE: AUTHORS
================================================
# This is the official list of the AUTHORS of Vis Project
# for copyright purposes.
# This file is distinct from the CONTRIBUTORS files.
# See the latter for an explanation.
# Names should be added to this file as
# Name or Organization <email address>
# The email address is not required for organizations.
Kotcrab <contact(a)kotcrab.com>
================================================
FILE: CONTRIBUTING.md
================================================
We are glad that you would like to contribute to the Vis Project. Here are some guidelines that you should follow when making your contributions.
Start by forking this repository, then learn [how to run Vis Projects from source code](https://github.com/kotcrab/vis-ui/wiki/Building-Vis-From-Source).
#### Git commits messages
* Use sentence case (i.e. "Add feature" not "add feature")
* Use imperative, present tense (i.e. "Add", not "Added" or "Adds")
* Don't use dots, exclamation or question marks at the end of commit message
#### Code Formatter
We require you to use code formatter when making pull requests. Code formatter for IntelliJ IDEA can be found in root directory of this repository. If you are using Eclipse then
you must use [libGDX Eclipse formatter](https://github.com/kotcrab/libgdx/blob/master/eclipse-formatter.xml).
Remember to don't use Eclipse formatter on existing source code because it isn't fully compatible with the IntelliJ IDEA formatter used in this repository. It may change other irrelevant source code and if you decide to make pull request later it will be harder to review.
To install formatter in Eclipse simply import xml file from settings window.
To install formatter in IntelliJ IDEA copy xml to config directory, restart IDE, then select formatter from settings.
Mac OS X: `~/Library/Preferences/.IdeaIC15/codestyles/`
Linux: `~/.IdeaIC15/config/codestyles/`
Windows: `<User home>\.IdeaIC15\config\codeStyles\`
`.IdeaIC15` directory may be named different depending on your IDEA version
#### Code Style
Please follow [libGDX code style](https://github.com/libgdx/libgdx/blob/master/CONTRIBUTING.md#code-style).
Thanks!
================================================
FILE: CONTRIBUTORS
================================================
# This is the official list of people who can contribute
# (and who have contributed) code to the Vis Project
# repository.
# The AUTHORS file lists the copyright holders; this file
# lists people.
#
kotcrab https://github.com/kotcrab
Javier https://github.com/jdiazcano
MJ https://github.com/czyzby/
StrongJoshua https://github.com/StrongJoshua
code-disaster https://github.com/code-disaster
piotr-j https://github.com/piotr-j
intrigus https://github.com/intrigus
StQuote https://github.com/StQuote
Favorlock https://github.com/Favorlock
strubelz https://github.com/strubelz
Snehks https://github.com/Snehks
ericnondahl https://github.com/ericnondahl
metaphore https://github.com/metaphore
cypherdare https://github.com/cypherdare
fgnm https://github.com/fgnm
ccmb2r https://github.com/ccmb2r
bploeckelman https://github.com/bploeckelman
================================================
FILE: LICENSE
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
================================================
FILE: README.md
================================================
# VisUI
VisUI allows to create nice looking UI in libGDX using scene2d.ui. Library contains scene2d.ui skin, useful widgets like color picker and file chooser, it also contains modified scene2d.ui widgets to provide some extra functionality like focus borders, background change on over and click, etc.
VisUI is licensed under Apache2 license meaning that you can use it for free in both commercial and non-commercial projects.
##### [CHANGES](https://github.com/kotcrab/vis-ui/blob/master/ui/CHANGES.md) file (definitely read before updating!)
**[Web demo!](http://vis.kotcrab.com/demo/ui)** [(source code)](https://github.com/kotcrab/vis-ui/tree/master/ui/src/test/java/com/kotcrab/vis/ui/test/manual)

[Bigger screenshot](http://dl.kotcrab.com/github/vis/visui2.png)
## Adding VisUI to your project
[](https://search.maven.org/artifact/com.kotcrab.vis/vis-ui)
Please refer to [libGDX documentation](https://libgdx.com/wiki/articles/dependency-management-with-gradle) if you don't know how to manage dependencies with Gradle. Alternatively JAR can be downloaded from [Maven repository](http://search.maven.org/#search|gav|1|g%3A%22com.kotcrab.vis%22%20AND%20a%3A%22vis-ui%22). If you are creating new project, you can use gdx-setup to automatically add VisUI for you. (press 'Show Third Party Extension' button)
#### Manual Gradle setup:
Open build.gradle in project root.
In ``ext`` section under ``allprojects`` add:
```groovy
visuiVersion = '1.X.X'
```
Look at [CHANGES](https://github.com/kotcrab/vis-ui/blob/master/ui/CHANGES.md) file to see what version of VisUI you can use
for your version of libGDX. Note that using not matching versions is likely to cause runtime exceptions.
**Core dependency**
```groovy
api "com.kotcrab.vis:vis-ui:$visuiVersion"
```
**HTML dependency** (only if you are using GWT):
```groovy
api "com.kotcrab.vis:vis-ui:$visuiVersion:sources"
```
``GdxDefinition.gwt.xml`` and ``GdxDefinitionSuperdev.gwt.xml``:
```xml
<inherits name='com.kotcrab.vis.vis-ui' />
```
Refresh Gradle dependencies.
## Usage
Using VisUI is pretty simple, to load or unload the skin call:
```java
VisUI.load();
VisUI.dispose();
```
Create your UI like always, for extra skin features you have to use Vis widgets instead of standard scene2d.ui:
| VisUI | Standard scene2d.ui |
| ------------- | ------------------- |
| VisLabel | Label |
| [LinkLabel](https://github.com/kotcrab/vis-ui/wiki/LinkLabel) | - |
| VisCheckBox | CheckBox |
| VisList | List |
| VisProgressBar| ProgressBar |
| VisRadioButton| - |
| VisScrollPane | ScrollPane |
| VisSelectBox | SelectBox |
| VisSlider | Slider |
| VisSplitPane | SplitPane |
| VisTextArea | TextArea |
| VisTextButton | TextButton |
| VisImageTextButton | ImageTextButton |
| VisImageButton | ImageButton |
| VisTextField | TextField |
| [VisValidatableTextField](https://github.com/kotcrab/vis-ui/wiki/VisValidatableTextField) | - |
| VisTree | Tree |
| VisWindow | Window |
| VisTable | Table |
| [DragPane](https://github.com/kotcrab/vis-ui/wiki/DragPane) | - |
| [GridGroup](https://github.com/kotcrab/vis-ui/wiki/GridGroup) | - |
| [ListView](https://github.com/kotcrab/vis-ui/wiki/ListView) | - |
| [TabbedPane](https://github.com/kotcrab/vis-ui/wiki/TabbedPane) | - |
| [Spinner](https://github.com/kotcrab/vis-ui/wiki/Spinner) | - |
| [CollapsibleWidget](https://github.com/kotcrab/vis-ui/wiki/CollapsibleWidget) | - |
| [ButtonBar](https://github.com/kotcrab/vis-ui/wiki/ButtonBar) | - |
| [FlowGroups](https://github.com/kotcrab/vis-ui/wiki/FlowGroups) | - |
Using Vis widgets is necessary for proper focus border management. All VisUI widgets constructors do not have Skin argument, they are using VisUI.skin field.
### VisTable
VisTable allows to easily set default spacing for vis components, construct it like this:
```
VisTable table = new VisTable(true);
```
VisTable also allows adding vertical and horizontal separators to table:
```java
table.addSeparator() //horizontal
table.addSeparator(true) //vertical
```
### Using different `SkinScale`s
Default VisUI skin can be too small for high resolution screens or mobile devices, in that case you can load a upscaled skin version simply by calling:
```
VisUI.load(SkinScale.X2);
```
### Internal classes
Classes inside `com.kotcrab.vis.[...].internal` packages are considered private and aren't part of public API. Changes to that classes won't be listed in change log.
### Default title align
Default title align for VisWindow and VisDialog is `Align.left` this can be changed by calling:
```java
VisUI.setDefaultTitleAlign(int align)
```
Calling this method does not affect windows that have been already created.
## Modifying skin
[Raw skin files](https://github.com/kotcrab/vis-ui/tree/master/ui/assets-raw) are available if you would like to modify them. After you pack them using libGDX texture packer, add generated atlas to your project with [uiskin.json, default.fnt and font-small.fnt](https://github.com/kotcrab/vis-ui/tree/master/ui/src/main/resources/com/kotcrab/vis/ui/skin/x1) and load it by calling:
```java
VisUI.load(Gdx.files.internal("path/to/your/modified/files/uiskin.json"))
```
Consider using USL if you want to extend existing VisUI styles. [Read more](https://github.com/kotcrab/vis-ui/wiki/USL)
## See also
* [vis-ui-contrib](https://github.com/kotcrab/vis-ui-contrib) - Community driven extension, utilities and skins for VisUI
* [ktx](https://github.com/czyzby/ktx) - Kotlin utilities for libGDX applications.
The [ktx-vis](https://github.com/czyzby/ktx/tree/master/vis) and
[ktx-style-vis](https://github.com/czyzby/ktx/tree/master/vis-style) modules provide Kotlin APIs for VisUI.
================================================
FILE: build.gradle
================================================
import com.vanniktech.maven.publish.JavaLibrary
import com.vanniktech.maven.publish.JavadocJar
buildscript {
repositories {
gradlePluginPortal()
mavenCentral()
}
dependencies {
classpath "com.kotcrab.vis:vis-usl:0.2.1"
classpath "com.badlogicgames.gdx:gdx-tools:1.9.2"
}
}
plugins {
id("com.github.ben-manes.versions") version "0.52.0"
id("com.vanniktech.maven.publish.base") version "0.33.0"
}
subprojects {
apply plugin: "java"
apply plugin: "idea"
apply plugin: "signing"
apply plugin: "com.vanniktech.maven.publish.base"
group = 'com.kotcrab.vis'
version = projectVersion
ext {
appName = 'vis'
gdxVersion = '1.14.0'
jnaVersion = '4.1.0'
jnaPlatformVersion = '3.5.2'
junitVersion = '4.13.2'
imgscalrVersion = '4.2'
isReleaseVersion = !version.endsWith("SNAPSHOT")
}
repositories {
mavenCentral()
}
mavenPublishing {
publishToMavenCentral(true)
if (isReleaseVersion) {
signAllPublications()
}
coordinates("com.kotcrab.vis", projectName, projectVersion)
configure(new JavaLibrary(new JavadocJar.Javadoc(), true))
pom {
name = projectName
description = projectDesc
url = 'https://github.com/kotcrab/vis-ui/'
scm {
connection = 'scm:git:git@github.com:kotcrab/vis-ui.git'
developerConnection = 'scm:git:git@github.com:kotcrab/vis-ui.git'
url = 'git@github.com:kotcrab/vis-ui.git'
}
licenses {
license {
name = 'The Apache License, Version 2.0'
url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
}
}
developers {
developer {
id = 'kotcrab'
name = 'Kotcrab'
url = 'https://kotcrab.com'
}
}
}
}
task publishSnapshot {
if (!isReleaseVersion) {
finalizedBy(tasks["publishToMavenCentral"])
}
}
javadoc {
options.encoding = 'UTF-8'
options.addStringOption('Xdoclint:none', '-quiet')
}
}
================================================
FILE: gradle/wrapper/gradle-wrapper.properties
================================================
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
================================================
FILE: gradle.properties
================================================
org.gradle.daemon=true
org.gradle.jvmargs=-Xms256m -Xmx1024m
org.gradle.configureondemand=true
#required by deploy, change in your home gradle.properties file
mavenCentralUsername=
mavenCentralPassword=
================================================
FILE: gradlew
================================================
#!/bin/sh
#
# Copyright © 2015-2021 the original authors.
#
# 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
#
# https://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.
#
# SPDX-License-Identifier: Apache-2.0
#
##############################################################################
#
# Gradle start up script for POSIX generated by Gradle.
#
# Important for running:
#
# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
# noncompliant, but you have some other compliant shell such as ksh or
# bash, then to run this script, type that shell name before the whole
# command line, like:
#
# ksh Gradle
#
# Busybox and similar reduced shells will NOT work, because this script
# requires all of these POSIX shell features:
# * functions;
# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
# * compound commands having a testable exit status, especially «case»;
# * various built-in commands including «command», «set», and «ulimit».
#
# Important for patching:
#
# (2) This script targets any POSIX shell, so it avoids extensions provided
# by Bash, Ksh, etc; in particular arrays are avoided.
#
# The "traditional" practice of packing multiple parameters into a
# space-separated string is a well documented source of bugs and security
# problems, so this is (mostly) avoided, by progressively accumulating
# options in "$@", and eventually passing that to Java.
#
# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
# see the in-line comments for details.
#
# There are tweaks for specific operating systems such as AIX, CygWin,
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
#
##############################################################################
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
app_path=$0
# Need this for daisy-chained symlinks.
while
APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
[ -h "$app_path" ]
do
ls=$( ls -ld "$app_path" )
link=${ls#*' -> '}
case $link in #(
/*) app_path=$link ;; #(
*) app_path=$APP_HOME$link ;;
esac
done
# This is normally unused
# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum
warn () {
echo "$*"
} >&2
die () {
echo
echo "$*"
echo
exit 1
} >&2
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
case "$( uname )" in #(
CYGWIN* ) cygwin=true ;; #(
Darwin* ) darwin=true ;; #(
MSYS* | MINGW* ) msys=true ;; #(
NONSTOP* ) nonstop=true ;;
esac
CLASSPATH="\\\"\\\""
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD=$JAVA_HOME/jre/sh/java
else
JAVACMD=$JAVA_HOME/bin/java
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD=java
if ! command -v java >/dev/null 2>&1
then
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
fi
# Increase the maximum file descriptors if we can.
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
case $MAX_FD in #(
max*)
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC2039,SC3045
MAX_FD=$( ulimit -H -n ) ||
warn "Could not query maximum file descriptor limit"
esac
case $MAX_FD in #(
'' | soft) :;; #(
*)
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC2039,SC3045
ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD"
esac
fi
# Collect all arguments for the java command, stacking in reverse order:
# * args from the command line
# * the main class name
# * -classpath
# * -D...appname settings
# * --module-path (only if needed)
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
# For Cygwin or MSYS, switch paths to Windows format before running java
if "$cygwin" || "$msys" ; then
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
JAVACMD=$( cygpath --unix "$JAVACMD" )
# Now convert the arguments - kludge to limit ourselves to /bin/sh
for arg do
if
case $arg in #(
-*) false ;; # don't mess with options #(
/?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
[ -e "$t" ] ;; #(
*) false ;;
esac
then
arg=$( cygpath --path --ignore --mixed "$arg" )
fi
# Roll the args list around exactly as many times as the number of
# args, so each arg winds up back in the position where it started, but
# possibly modified.
#
# NB: a `for` loop captures its iteration list before it begins, so
# changing the positional parameters here affects neither the number of
# iterations, nor the values presented in `arg`.
shift # remove old arg
set -- "$@" "$arg" # push replacement arg
done
fi
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Collect all arguments for the java command:
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
# and any embedded shellness will be escaped.
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
# treated as '${Hostname}' itself on the command line.
set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \
-classpath "$CLASSPATH" \
-jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
"$@"
# Stop when "xargs" is not available.
if ! command -v xargs >/dev/null 2>&1
then
die "xargs is not available"
fi
# Use "xargs" to parse quoted args.
#
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
#
# In Bash we could simply go:
#
# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
# set -- "${ARGS[@]}" "$@"
#
# but POSIX shell has neither arrays nor command substitution, so instead we
# post-process each arg (as a line of input to sed) to backslash-escape any
# character that might be a shell metacharacter, then use eval to reverse
# that process (while maintaining the separation between arguments), and wrap
# the whole thing up as a single "set" statement.
#
# This will of course break if any of these variables contains a newline or
# an unmatched quote.
#
eval "set -- $(
printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
xargs -n1 |
sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
tr '\n' ' '
)" '"$@"'
exec "$JAVACMD" "$@"
================================================
FILE: gradlew.bat
================================================
@rem
@rem Copyright 2015 the original author or authors.
@rem
@rem Licensed under the Apache License, Version 2.0 (the "License");
@rem you may not use this file except in compliance with the License.
@rem You may obtain a copy of the License at
@rem
@rem https://www.apache.org/licenses/LICENSE-2.0
@rem
@rem Unless required by applicable law or agreed to in writing, software
@rem distributed under the License is distributed on an "AS IS" BASIS,
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem
@rem SPDX-License-Identifier: Apache-2.0
@rem
@if "%DEBUG%"=="" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0
if "%DIRNAME%"=="" set DIRNAME=.
@rem This is normally unused
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if %ERRORLEVEL% equ 0 goto execute
echo. 1>&2
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
echo. 1>&2
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
echo location of your Java installation. 1>&2
goto fail
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto execute
echo. 1>&2
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
echo. 1>&2
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
echo location of your Java installation. 1>&2
goto fail
:execute
@rem Setup the command line
set CLASSPATH=
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
:end
@rem End local scope for the variables with windows NT shell
if %ERRORLEVEL% equ 0 goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
set EXIT_CODE=%ERRORLEVEL%
if %EXIT_CODE% equ 0 set EXIT_CODE=1
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
exit /b %EXIT_CODE%
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega
================================================
FILE: settings.gradle
================================================
rootProject.name = 'vis-ui'
rootProject.buildFileName = 'build.gradle'
include 'ui', 'usl'
================================================
FILE: ui/CHANGES.md
================================================
#### Version: 1.5.9-SNAPSHOT (libGDX 1.14.0)
#### Version: 1.5.8 (libGDX 1.14.0)
- Updated to libGDX 1.14.0
#### Version: 1.5.7 (libGDX 1.13.5)
- Updated to libGDX 1.13.5
#### Version: 1.5.6 (libGDX 1.13.1)
- Project is now published using Maven Central Portal instead of OSSRH
- If you're using snapshots add new repository https://central.sonatype.com/repository/maven-snapshots/
- Source compatibility is now Java 1.8
- **Changed**: [#399](https://github.com/kotcrab/vis-ui/issues/399) - Font color markup is now disabled when drawing text field to prevent crashes
#### Version: 1.5.5 (libGDX 1.13.1)
- Updated to libGDX 1.13.1
- **Improved**: [#396](https://github.com/kotcrab/vis-ui/issues/396) - Added missing Czech diacritics characters
- This required re-rendering the font, it was last done 8 years ago. I'm pretty sure I used same Hiero version as before,
but I'm guessing newer JDK has some changes. Font baseline is affected by this, but I think it looks better now.
Your UI will have slightly different paddings, see the issue for screenshots
- **Added**: [#394](https://github.com/kotcrab/vis-ui/issues/394) - `VisImageTextButton` now supports focus font colors
#### Version: 1.5.4 (libGDX 1.12.1)
- **Changed**: [#393](https://github.com/kotcrab/vis-ui/pull/393) - Removed use of Apple Java extensions in `FileUtils`
#### Version: 1.5.3 (libGDX 1.12.1)
- Updated to libGDX 1.12.1
#### Version: 1.5.2 (libGDX 1.12.0)
- Updated to libGDX 1.12.0
- **Added**: [#373](https://github.com/kotcrab/vis-ui/issues/373) - `VisImageTextButton` an optional `Orientation` value can be set to change how the button label is positioned relative to the button image
- Defaults to existing behavior (label to the right of image in the same row), and orientation can be changed via `VisImageTextButton.setOrientation()`
#### Version: 1.5.1 (libGDX 1.11.0)
- Updated to libGDX 1.11.0
- **Added**: [#374](https://github.com/kotcrab/vis-ui/issues/374) - `ToastManager` now supports 'center' horizontal alignment for 'top' and 'bottom' alignments.
- `ToastManager.updateToastsPositions` and `ToastManager` member variables are now protected, allowing further customization of the toast positions.
#### Version: 1.5.0 (libGDX 1.10.0)
- Updated to libGDX 1.10.0
- **Removed deprecated API**: `VisUI.VERSION` field
- **Changed**: The project now uses Java 1.7 compatibility level, similarly to libGDX 1.10.0
- **Fixed**: [#355](https://github.com/kotcrab/vis-ui/issues/355) - Changing color of `VisImageButton` and `VisImageTextButton` did not work
- **Fixed**: [#357](https://github.com/kotcrab/vis-ui/issues/357) - `CollapsibleWidget` rendering issues when placed inside a scroll pane
- **Fixed**: [#358](https://github.com/kotcrab/vis-ui/issues/358) - `CollapsibleWidget` performance issue
#### Version: 1.4.11 (libGDX 1.9.14)
- Some changes have been made to simplify VisUI release process
- **API Deprecated**: `VisUI.VERSION`, this field is no longer updated and will be removed in future versions
- New VisUI USL file (in `usl/styles` directory) will be created only when breaking changes have to be made to the style definitions
#### Version: 1.4.10 (libGDX 1.9.14)
- Updated to libGDX 1.9.14
#### Version: 1.4.9 (libGDX 1.9.12)
- **Changed**: [#350](https://github.com/kotcrab/vis-ui/pull/350) - Improve `CollapseAction` to support custom duration and interpolation
- **Fixed**: `IllegalArgumentException` thrown by `MenuItem#getImageCell` when `MenuItem` was created without image ([reported indirectly here](https://github.com/crashinvaders/gdx-texture-packer-gui/issues/98))
#### Version: 1.4.8 (libGDX 1.9.12)
- Updated to libGDX 1.9.12
#### Version: 1.4.7 (libGDX 1.9.11)
- **Added**: [#335](https://github.com/kotcrab/vis-ui/issues/335) - `VisImageButton (Drawable imageUp, Drawable imageDown, Drawable imageChecked, String styleName)` constructor
- **Added**: [#340](https://github.com/kotcrab/vis-ui/issues/340) - Option to disable color picker preview, added: `BasicColorPicker#setShowColorPreviews(boolean)`, `BasicColorPicker#isShowColorPreviews`
- **Added**: [#333](https://github.com/kotcrab/vis-ui/issues/333) - `FlowGroup` a generalization of `HorizontalFlowGroup` and `VerticalFlowGroup`
- `FlowGroup` fixes some layout issues, see linked pull request
- `HorizontalFlowGroup` and `VerticalFlowGroup` are deprecated
- To avoid breaking changes `DragPane` and `TabbedPane` implementation was not changed in this version
- **Fixed**: [#331](https://github.com/kotcrab/vis-ui/issues/331)
- `TabbedPane::removeAll` does not clear the active tab field
- `TabbedPane::remove(Tab)` does not clear the active tab field when it removes last tab
- **Fixed**: [#336](https://github.com/kotcrab/vis-ui/issues/336) - `VisTextField` crash when text has newlines
- **Fixed**: [#339](https://github.com/kotcrab/vis-ui/issues/339) - `HighlightTextArea` was not disabling soft wrapping when using some constructors
- **Fixed**: [#341](https://github.com/kotcrab/vis-ui/issues/341) - `HighlightTextArea` parent alpha was not used when drawing font
#### Version: 1.4.6 (libGDX 1.9.11)
- Updated to libGDX 1.9.11
#### Version: 1.4.5 (libGDX 1.9.10)
- **Added**: [#328](https://github.com/kotcrab/vis-ui/issues/328) `BasicColorPicker#focusHexField`
- **Fixed**: [#316](https://github.com/kotcrab/vis-ui/issues/316) `BusyBar` grows but does not shrink
- **Fixed**: [#324](https://github.com/kotcrab/vis-ui/issues/324) `Spinner#getSelectorName` returns wrong field
- **Fixed**: [#326](https://github.com/kotcrab/vis-ui/issues/326) Possible crash in `FocusManager`
- **Changed**: [#315](https://github.com/kotcrab/vis-ui/issues/315) Generify `VisTree` to match libGDX implementation
- **Changed**: [#314](https://github.com/kotcrab/vis-ui/issues/314) List `corner` Drawable wasn't set resulting in blank spot when both scrollbars were visible
- **Changed**: [#325](https://github.com/kotcrab/vis-ui/issues/325) `VisTable#addSeparator(true)` will create `Separator` with `vertical` style
- **Warning**: This might be a breaking change if you're using a custom skin
- **Changed**: `FileChooser` will auto focus selected file text field when added to stage (use `FileChooser.focusSelectedFileTextFieldOnShow` to override this setting)
- **Skin changes**:
- **Added style**: `Separator`: `vertical` style
#### Version: 1.4.4 (libGDX 1.9.10)
- Updated to libGDX 1.9.10
#### Version: 1.4.3 (libGDX 1.9.9)
- **Fixed**: Infinite loop in `PopupMenu` when trying to select next (or previous) `MenuItem` using keyboard and menu has no selectable `MenuItem`s.
- **Fixed**: [#307](https://github.com/kotcrab/vis-ui/issues/307) `ArrayIndexOutOfBounds` exception in `VisTextArea` when trying to select text having empty first line
- **Changed**: `PopupMenu` keyboard events will be now treated as handled by scene2d (they won't be passed to application under the stage)
- **Changed**: [#302](https://github.com/kotcrab/vis-ui/issues/302) `ToastManager` now allows to specify X and Y screen padding separately
- **Added**: `ToastManager#setScreenPaddingX(int)`, `ToastManager#setScreenPaddingY(int)`, `ToastManager#setScreenPadding(int, int)`, `ToastManager#getScreenPaddingX()`
`ToastManager#getScreenPaddingY()`
- **Deprecated**: `ToastManager#getScreenPadding()`, use either `ToastManager#getScreenPaddingX()` or `ToastManager#getScreenPaddingY()`.
Now this method will throw `IllegalStateException` when padding X is different than padding Y.
This should not cause any breaking changes until new API is used. This method will be removed in future versions.
#### Version: 1.4.2 (libGDX 1.9.9)
- Updated to libGDX 1.9.9
- **Fixed**: `TabbedPane` was not removing `Tab` from internal `ButtonGroup` thus preventing tab instance from being garbage collected
#### Version: 1.4.1 (libGDX 1.9.8)
- **Fixed**: `FileChooser`'s icon provider not working correctly when chooser's selection checkboxes were enabled
- **Fixed**: [#292](https://github.com/kotcrab/vis-ui/issues/292) removing `Menu` from `MenuBar` causes `IllegalStateException`
#### Version: 1.4.0 (libGDX 1.9.6)
- **Added**: [#259](https://github.com/kotcrab/vis-ui/issues/259) `VisImageTextButton#setGenerateDisabledImage(boolean)` along with getter, added `VisImageButton#isGenerateDisabledImage`
- **Added**: [#260](https://github.com/kotcrab/vis-ui/issues/260) `FileChooser#setDefaultFileName(String)`
- **Added**: [#279](https://github.com/kotcrab/vis-ui/issues/279) `ToastManager(Group)` constructor
- **Fixed**: [#255](https://github.com/kotcrab/vis-ui/issues/255) Custom cursor handling in `VisSplitPane` and `MultiSplitPane`
- **Fixed**: [#262](https://github.com/kotcrab/vis-ui/issues/262) `FileChooser` was not updating selected file list when text was cut or pasted into file name field
- **Fixed**: `FileChooser` file name suggestion menu was not updating file name field when navigating suggestion list using arrow keys
- **Fixed**: [#273](https://github.com/kotcrab/vis-ui/issues/273) Fixed rare crash when doing undo in VisTextField can cause `IllegalStateException`
- [#252](https://github.com/kotcrab/vis-ui/issues/252) `Spinner` now implements `Disableable`
- **Improved**: [#264](https://github.com/kotcrab/vis-ui/issues/264) Added Turkish diacritics, added currency symbols: €, ¥
- **Changed**: [#272](https://github.com/kotcrab/vis-ui/pull/272) `VisTextField` and subclasses will now use `style.backgroundOver` when field has keyboard focus or mouse is over it (previously it was only shown on mouse over)
#### Version: 1.3.0 (libGDX 1.9.6)
- **Added**: `VisUI#dispose (boolean disposeSkin)`
- Updated to libGDX 1.9.6
- Excluded `AsyncTask` API from GWT compilation
#### Version: 1.2.5 (libGDX 1.9.4)
- **Added**: `AsyncTask` API and `AsyncTaskProgressDialog`
- **Added**: `PopupMenu.removeEveryMenu(Stage)`
- **Added**: `FileChooser#setShowSelectionCheckboxes`
- **Added**: `FileChooser#getIconProvider`
- **Added**: `Spinner#setDisabled(boolean)`, `Spinner#isDisabled()`
- **Added**: `HorizontalCollapsibleWidget`
- **Fixed**: `MultiSplitPane#setSplit` not affecting split values
- **Fixed**: `MultiSplitPane` and `VisSplitPane` default cursor not restored when mouse exited widget bounds when mouse was still on split handle bar
- **Changed**: Selection of menu item is removed when mouse pointer leaves popup menu structure
- **I18N Changes**:
- Added `Common` bundle
#### Version: 1.2.4 (libGDX 1.9.4)
- **Added**: `ListSelection#setListener`, `#setProgrammaticChangeEvents` (with getters)
- **Fixed**: `Spinner.TextFieldEventPolicy` is now public (was package-private)
- **Fixed**: `HighlightTextArea` scroll pane not immediately updated after changing text using `setText()`
- **Improved**: [#220](https://github.com/kotcrab/vis-ui/issues/220) when sub menu can't fit on the right side of parent menu, it will be shown on the side that has more available space (before in such case it was always shown on the left side)
- **Improved**: When mouse is moved from sub-menu to parent menu, selection of menu item in sub-menu will be removed.
- **Improved**: [#222](https://github.com/kotcrab/vis-ui/issues/222) Added clipping to BusyBar
- **Skin changes**:
- **Added style**: `ListViewStyle` - allows to customize `ListView` scroll pane style
- **Added new icons**: `icon-maximize`, `icon-minimize`, `icon-restore`, `icon-close-titlebar`
- **Added style**: `VisImageButtonStyle`: `close-titlebar`
#### Version: 1.2.3 (libGDX 1.9.4)
- **Added**: constructor `LinkLabel (CharSequence text, CharSequence url, LinkLabelStyle style)`
- **Fixed**: Spinner could overflow Table cell bounds by 1 pixel
- Removed `Sizes.spinnerButtonsWidth` and `Sizes.spinnerFieldRightPadding` (no longer needed)
- Renamed `Sizes.spinnerButtonSize` to `Sizes.spinnerButtonHeight`
- **Skin changes**:
- Styles that used to reference other style by name (for example `FileChooserStyle` referencing `PopupMenu` style name) now embeds that style directly
- Changed `String ToastStyle#closeButtonStyleName` to `VisImageButtonStyle ToastStyle#closeButtonStyle`
- Changed `String FileChooserStyle#popupMenuStyleName` to `PopupMenuStyle FileChooserStyle#popupMenuStyle`
- Changed `String MenuStyle#openButtonStyleName` to `VisTextButtonStyle MenuStyle#openButtonStyle`
- For existing JSON files you only need to remove 'Name' postfix from field name, Skin loading mechanism can automatically resolve such references
#### Version: 1.2.2 (libGDX 1.9.4)
- **Fixed**: [#214](https://github.com/kotcrab/vis-ui/issues/214) minus sign not visible in Spinner when value was changed with text field focus
- **Fixed**: When there was not enough space on the right to fully show sub-menu it was appearing in wrong position on the left side.
#### Version: 1.2.1 (libGDX 1.9.4)
- **Fixed**: When using libGDX 1.9.4 message was printed that libGDX version is incorrect. If your project is using 1.9.4 you could safely ignore it.
#### Version: 1.2.0 (libGDX 1.9.4)
- Updated to libGDX 1.9.4
#### Version: 1.1.6 (libGDX 1.9.3)
- **Added**: `MenuBar#setMenuListener`, `MenuBarListener`
- **Changed**: Spinner by default will fire change event after text field has lost focus, this can be changed. See `Spinner#setTextFieldEventPolicy` and `Spinner#TextFieldEventPolicy`.
- Use `TextFieldEventPolicy.ON_ENTER_ONLY` to preserve old behaviour
- **Changed**: `FileChooser` will auto focus file list scroll pane when added to stage (use `FileChooser.focusFileScrollPaneOnShow` to override this setting)
- **Fixed**: [#207](https://github.com/kotcrab/vis-ui/issues/207) crash when user has placed text field cursor after last letter (possibly on LWJGL backend only)
#### Version: 1.1.5 (libGDX 1.9.3)
- **API Changed**: `VisTextField#setCurosrAtTextEnd` renamed to `setCursorAtTextEnd` (typo)
- **Added**: `Tooltip#getTarget`
- **Added**: `MenuItem` constructors taking style name
- **Changed**: It's now impossible to create `FileTypeFilter` `Rule` without providing at least one extension
- **Changed**: `FileTypeFilter` select box won't be shown when `FileChooser` `SelectionMode` is set to `DIRECTORIES`
- **Changed**: `FileChooser` now can be closed by pressing enter when file name field has focus
- **Changed**: `Dialogs#showOKDialog` can be closed using enter and escape key
- **Changed**: [#176 (comment)](https://github.com/kotcrab/vis-ui/issues/176#issuecomment-237046516) - `FileChooser` path text field will now show end of the path when it's too long
- **Changed**: `FileChooser` will fallback to default directory when `setDirectory` is called with invalid file handle (either non existing path or pointing to file)
- Fixes possible crash when current directory is removed while it's open in file chooser
- Removed protected `handleAsyncError`, no longer needed
#### Version: 1.1.4 (libGDX 1.9.3)
- **Added**: `BusyBar` - used to indicate that background work is going on - see `TestBusyBar`
- **Added**: `MultiSplitPane` - similar to `VisSplitPane` but supports multiple widgets at once
- **Added**: `Tooltip.Builder#width()`, `Tooltip#setText(String)`, `Tooltip#getContentCell()`
- **Changed**: `FileChooser` directory listing is now performed on separate thread to prevent application hanging when accessing unresponsive drive
- **Changed**: When `ColorPicker` is canceled previous color is restored after window fade out have been finished to avoid flickering (listeners are not affected by this change)
- **Fixed**: `PopupMenu` with single item is now accessible using keyboard
- **Fixed**: `TabbedPane` unable to move tab to the last position in pane
- **Skin changes**:
- **Added**: `TabbedPane` added style: `vertical`
#### Version: 1.1.3 (libGDX 1.9.3)
- **API Changed**: `FileChooser.setSaveLastDirectory` is now static and must be called before creating chooser to properly restore saved directory.
- Last directory will not be saved when user has canceled selection dialog
- **Changed**: `VisWindow#fadeOut` will reset alpha back to 1f after completing action.
#### Version: 1.1.2 (libGDX 1.9.3)
- **Added**: `CursorManager`
- **Added**: `ScrollableTextArea` and `HighlightTextArea` with `Highlighter` API
- **Added**: `VisTextField#setCurosrAtTextEnd()`, `#getProgrammaticChangeEvents()`
- **Added**: `FileChooser` file sorting options available under right click menu
- **Added**: `FileChooser#setSorting(FileSorting)` and `#setSortingOrderAscending` along with appropriate getters
- **Added**: `FileChooser#setSaveLastDirectory` - allows to automatically remember last directory user browsed between app launches, disabled by default
- **Fixed**: VisSplitPane was not restoring default cursor when user dragged pointer outside od pane area
- **Fixed**: [#188](https://github.com/kotcrab/vis-ui/issues/188) - same instance of `VisDialog` couldn't be closed for the second time using close button
- **Fixed**: `FileChooser` NPE when user right clicked last file item after deleting all others files
- **Fixed**: `FileChooser` Duplicated instances of same disk could be visible on list when chooser was displayed right after creating
- **Fixed**: [#196](https://github.com/kotcrab/vis-ui/issues/196) - `ColorPicker` sending old color to listener instead of new
- **Changed**: `FileChooser` in save mode with active file type filter rule will automatically append rule extensions if user haven't typed extension or extension was wrong
- **Changed**: `FileChooser` now shows files modified date when using details view mode
- **Changed**: `FileChooser` will no longer show files when selection mode is `DIRECTORIES` - this behaviour can be changed in `DefaultFileFilter`
- **Changed**: When `VisWindow#fadeOut()` is called then window touchable is set to disabled. Additionally keyboard focus is reset if any window child `Actor` owns keyboard focus.
- This is done to prevent user input after fade out animation has started.
- After fade out has finished window touchable property will be restored to previous value which was set before fade out started.
- **Skin changes**:
- **Added**: `VisTextArea` added style: `textArea` - no background drawable and focus border is disabled
- **Added**: `FileChooserStyle` added `Drawable`: `contextMenuSelectedItem` - used to mark active item in context menu (by default `vis-radio-tick`)
- **I18N Changes**:
- **FileChooser**: added keys `contextMenuSortBy`, `sortByName`, `sortByDate`, `sortBySize`, `sortByAscending`, `sortByDescending`
- **Misc**: Disabling Android Lint is no longer necessary
#### Version: 1.1.1 (libGDX 1.9.3)
- **Fixed**: NPE in FileChooser crash when navigating to other directory
#### Version: 1.1.0 (libGDX 1.9.3)
- **API Moved**: `JNAFileDeleter` was moved to [vis-ui-contrib](https://github.com/kotcrab/vis-ui-contrib) project
- **API Deprecated**: `FileChooser.setFavoritesPrefsName()` replaced by `FileChooser.setDefaultPrefsName()`
- **API Changed**: GridGroup is now taking float for item size instead of int.
- **Warning:** There were two constructors `GridGroup (float spacing)` and `GridGroup (int itemSize)`. Constructor taking float spacing was removed. Constructor taking int item size now takes float.
- **API Changed**: Refactored `FileChoose.FileIconProvider`, new methods added. `#provideIcon` takes `FileChooser.FileItem`, was `FileHandle`
- **API Changed**: Refactored `VisCheckBox`
- Style was refactored to separate checkbox background and tick drawable (see below for full skin drawables changes)
- `VisCheckBoxStyle` now extends `TextButtonStyle`, was `CheckBox` (fields was renamed to properly communicate their functions)
- `getImage()` removed, use `getBackgroundImage()` or `getTickImage()`
- `getImageCell()` removed, use `getImageStackCell()`
- protected `getCheckboxImage()` removed, override `getCheckboxBgImage()` or `getCheckboxTickImage()`
- `getStyle()` returns `VisCheckBoxStyle`, was `CheckBoxStyle`
- **Added**: default styles for `ImageButton` and `ImageTextButton`. Note: this is only applies to standard scene2d widgets. VisUI widgets equivalents (`VisImageButton`, `VisImageTextButton`) already had them.
- **Added**: `SimpleFormValidator#validate`
- **Added**: `ToastManager`, `Toast`, `ToastTable`
- **Added**: VisTextField read-only mode (`VisTextField#setReadOnly(boolean)`)
- **Added**: `TabbedPane#getUIOrderedTabs()`
- **Added**: `FileChooser#setFavoriteFolderButtonVisible(true)` - FileChooser now can display 'add folder to favorites' button in the toolbar
- **Added**: `FileChooser#setPrefsName()`
- **Added**: `FileTypeFilter`, `FileChooser#setFileTypeFilter(...)`
- **Added**: `MenuItem#getSubMenuIconCell()` and `MenuItem#getShortcutCell()`
- **Added**: `VisTextField#setEnterKeyFocusTraversal(boolean)`
- **Added**: `VisTextField#setCursorPercentHeight`
- **Added**: `PopupMenuListener`
- **Added**: `PopupMenu#showMenu (Stage stage, Actor actor)`
- **Added**: `ConstantIfVisibleValue`
- **Added**: `Sizes#borderSize`
- **Added**: `Sizes#fileChooserViewModeBigIconsSize`, `fileChooserViewModeMediumIconsSize`, `fileChooserViewModeSmallIconsSize`, `fileChooserViewModeListWidthSize`
- **Changed**: [#169](https://github.com/kotcrab/vis-ui/issues/169) - `TabbedPane#getTable()` returns `TabbedPaneTable` (holds reference to `TabbedPane` and allow to easily get its cells for customization)
- **Changed**: `FileChooser` now tries to maintain selection while rebuilding file list
- **Changed**: `FileChooser` will now select new folder after creating it
- **Changed**: `FileChooser` will be automatically refreshed when added to `Stage`
- **Changed**: `FileChooser` when typing file names manually suggestion will be showed
- **Changed**: `TabbedPane`'s Tab now can't be dragged using it's close button
- **Changed**: Synced `VisTextField` ans `VisTextArea` with equivalents of those classes libGDX
- **Changed**: `PopupMenu` now support menu navigation using arrows keys
- **Changed**: `PopupMenu` now optionally takes `Sizes` instance (added constructor `PopupMenu (Sizes sizes, PopupMenuStyle style)`)
- **Removed deprecated API**: `NumberSelector` - replaced by `Spinner`
- **Removed deprecated API**: `Sizes#numberSelectorButtonSize`, `numberSelectorButtonsWidth`, `numberSelectorFieldSize`, `numberSelectorFieldRightPadding`
- **Fixed**: `Sizes.buttonBarSpacing` was ignored by `ButtonBar`
- **Added**: constructors `ButtonBar(Sizes sizes, String order)` and `ButtonBar(Sizes sizes)`
- **Fixed**: `TabbedPane` layout when no separator image was used. Fixed misc issue with close button style on touch down.
- **Fixed**: `FileChooser` NPE when error occurred during directory deleting
- **Fixed**: `FileChooser` non empty directories are now deleted correctly when using default `FileChooser` deleter
- **Fixed**: `FileChooser` crash when user manually entered path to file instead of directory
- **Fixed**: `FocusManager` calling `focusLost()` when the widget that was already focused tried to gain focus again
- **Fixed**: `VisSplitPane` was not implementing `hit(...)` which could result in widget that was underneath split pane's handle get touch events
- **Fixed**: Now it's not possible to call `VisWindow#fadeOut` multiple times
- **Skin changes**:
- **Changed**: `FileChooserStyle`: added drawable fields: `iconStar`, `iconStarOutline`, `iconRefresh`, `iconListSettings`, `expandDropdown`
- **Added**: drawable `window-border-bg.9`, `icon-star`, `icon-star-outline`, `icon-refresh`, `icon-list-settings`
- **Added**: style `BaseToastStyle`
- **Added**: VisTextField `label` style - if combined with read-only mode allows to create selectable labels
- **Updated**: `cursor` drawable (`cursor.9.png`)
- **Removed**: `check-down-on`, `check-down`, `check-on-disabled`, `check-over-off`, `check-over-on`, `radio-down-on`, `radio-down`, `radio-on-disabled`, `radio-over-off`, `radio-over-on`
- **Added**: `vis-check`, `vis-check-over`, `vis-check-down`, `vis-check-tick`, `vis-check-tick-disabled`, `vis-radio`, `vis-radio-over`, `vis-radio-down`, `vis-radio-tick`, `vis-radio-tick-disabled`
- **I18N Changes**:
- **FileChooser**: added keys `contextMenuRefresh`, `fileType`, `allFiles`, `changeViewMode`, `viewModeList`, `viewModeDetails`, `viewModeBigIcons`, `viewModeMediumIcons`, `viewModeSmallIcons`
- **Misc**: Added Gradle tasks to package VisUI skin textures and compile USL into JSON (`gradlew :ui:compileSkin`)
#### Version: 1.0.2 (libGDX 1.9.2)
- **Changed**: [#163](https://github.com/kotcrab/vis-ui/issues/163) - When `VisCheckBox` or `VisTextField` is disabled and is marked as invalid then error border won't be drawn.
- **Changed**: [#163](https://github.com/kotcrab/vis-ui/issues/163) - Added `SimpleFormValidator#setTreatDisabledFieldsAsValid` (and it's getter) - allow to control whether to mark form as invalid when invalid but disabled field is encountered. If set to true then all disabled fields are treated as valid, regardless of their state.
- Defaults to true! Set to false to preserve old behaviour.
- **API Changed**: `DragListener`: `Draggable` argument was added to each method
- **API Deprecated**: `Sizes#numberSelectorButtonSize`, `numberSelectorButtonsWidth`, `numberSelectorFieldSize`, `numberSelectorFieldRightPadding` replaced by `spinnerButtonSize`. `spinnerButtonsWidth`, `spinnerFieldSize`, `spinnerFieldRightPadding`
- **API Deprecated**: `NumberSelector` - replaced by `Spinner`, `NumberSelector` will be removed in future version
- **Added**: `VisTextField#isTextSelected()`
- **Added**: `VisTextField#clearText()`
- **Added**: `FloatingGroup`
- **Added**: `VisWindow#isKeepWithinParent` and `VisWindow#setKeepWithinParent`
- **Added**: constructor `VisImage (String drawableName)`
- **Added**: `VisUI.load(String internalVisSkinPath)`
- **Added**: `VisTextField#setIgnoreEqualsTextChange(...)` - see [#165](https://github.com/kotcrab/vis-ui/issues/165)
- **Fixed**: `OptionDialog#set(...)ButtonText` now updates dialog size
- **Fixed**: [#131](https://github.com/kotcrab/vis-ui/issues/131) - fixed issue when copying numbers between `VisTextField`s with `FloatDigitsOnlyFilter` decimal point was lost
- **Fixed**: `ListView#AbstractListAdapter` error on GWT
- **Fixed**: `VisTextField` was changing system cursor when it was disabled
- **Fixed**: [#165](https://github.com/kotcrab/vis-ui/issues/165) - fixed form not refreshed when text field content was changed to the same as before
#### Version: 1.0.1 (libGDX 1.9.2)
- **Added**: `ListView#getListAdapter()`
- **Added**: `ListView#rebuildView()` and `UpdatePolicy.MANUAL`
- **Added**: `Draggable#setDeadzoneRadius`
- **Fixed**: Not being able to resize window with `TabbedPane`
- **Fixed**: `OptionDialog` not modal by default
- **Fixed**: `SimpleListAdapter` not working on GWT
- **Fixed**: `VisCheckBox` focus border appeared was displayed in wrong place when using `Cell#growX()`
- **Changed**: `DragPane`: `LimitChildren` listener now never rejects own children, even when max children amount is achieved.
- **API Changed**: `ListView#getMainTable()` now returns `ListViewTable<ItemT>` instead of `VisTable`
- **API Changed**: Added `ListAdapter.add(ItemT)`
#### Version: 1.0.0 (libGDX 1.9.2)
- **Changed**: `InputValidator` moved to `com.kotcrab.vis.ui.util` package
- **Changed**: `LesserThanValidator#setEquals(boolean)` renamed to `setUseEquals`
- **Changed**: `GreaterThanValidator#setEquals(boolean)` renamed to `setUseEquals`
- **Changed**: `FormInputValidator#validateInput` is now final and can't be overridden
- **Changed**: `FormInputValidator#getLastResult` is now package-private
- **Changed**: `DialogUtils` renamed to `Dialogs`
- **Changed**: `DialogUtils.properties` is now `Dialogs.properties`
- **Changed**: `VisUI#setDialogUtilsBundle(...)` is now `VisUI#setDialogsBundle(...)`
- **Changed**: `VisUI#getDialogUtilsBundle()` is now `VisUI#getDialogsBundle()`
- **Added**: `showDetailsDialog (Stage stage, String text, String title, String details)`
- **Added**: `showDetailsDialog (Stage stage, String text, String title, String details, boolean expandDetails)`
- **Changed**: `ErrorDialog` renamed to `DetailsDialog`
- **Changed**: Constructor `ErrorDialog (String text, String stacktrace)` changed to `DetailsDialog (String text, String title, String details)`
- **Added**: `DetailsDialog#setDetailsVisible(...)`
- **Added**: `DetailsDialog#setCopyDetailsButtonVisible(...)`
- **Changed**: `FileChooserText`, `FilePopupMenu` and `ColorPickerText` moved to `internal` subpackages (were not part of public API)
- **Changed**: `FileChooser#getFileDeleter` removed
- **Changed**: `FileChooserListener` was refactored
- `FileChooserListener#selected(FileHandle)` removed
- If user can select single file use `SingleFileChooserListener`
- If user can select multiple files use `StreamingFileChooserListener` or use `FileChooserListener` directly
- **Changed**: `VisTextField#toString()` now returns field text
- **Changed**: `OptionDialog` now extends `VisWindow` (was extending `VisDialog`)
- **Changed**: `OptionDialog` and `InputDialog` now will show buttons in platform dependant order using `ButtonBar`
- **Removed**: Removed all `Tooltip` constructors except those taking style
- Use `new Tooltip.Builder(...)` eg. `new Tooltip.Builder("Tooltip Text").target(label).build()`
- **Changed**: constructor `Tooltip (String text)` is now `Tooltip (String styleName)`
- **Added**: constructor `Tooltip ()`
- **Added**: constructor `Tooltip (TooltipStyle)`
- **Removed**: `SeparatorStyle#vertical`, was not used
- **Removed**: constructor `Separator (boolean vertical)`
- **Added**: `ListView` and `ItemAdapter` API
- **Added**: constructor `TabbedPane(TabbedPaneStyle style, Sizes sizes)`
- **Added**: constructor `VisWindow(String title, String styleName)`
- **Added**: `PrefWidthIfVisibleValue`
- **Added**: `HorizontalFlowGroup` and `VerticalFlowGroup`
- **Added**: `ButtonBar` - convenient class for creating button panels arranged in platform dependant order.
- `FileChooser`, `ColorPicker` and `Dialogs` will now show buttons in platform dependant order
- **Added**: `LinkLabel`, `VisTextField`, `VisTextArea` and `VisSplitPane` supports system cursors when using LWJGL3 or GWT backend
- **Fixed**: `TabbedPane`: Tab close button too small when using `SkinScale.X2`
- **Fixed**: `TabbedPane`: In vertical mode, tabs buttons were centered instead of being aligned at the top
- **Removed deprecated API**: `ColumnGroup` (use libGDX's `VerticalGroup`)
- **Skin**:
- **Changed**: Color `menuitem-grey` renamed to `menuitem`
- **Changed**: `TabbedPaneStyle#bottomBar` renamed to `separatorBar`
- **Removed**: `FormValidatorStyle#colorTransition`, no longer needed.
- If `colorTransitionDuration` is set to 0 then transition will be skipped.
- **Removed**: `SeparatorStyle#vertical`, no longer needed
- **Added**: Drawables: `grey`, `vis-blue`, `vis-red`
- **Added**: New `Window` style: `resizable`
- **I18N**:
- **Changed** Bundle management moved to `Locales` class. Instead of calling `VisUI.setXYZBundle(...)` call `Locales.setXYZBundle(...)`
- **Removed**: Dialogs bundle entries: yes, no, cancel, ok. Now handled by `ButtonBar` bundle.
#### Version: 0.9.5 (libGDX 1.7.1)
- **Added**: constructor `SimpleFormValidator(Disableable)`.
- **Added**: `ActorUtils#keepWithinStage(Actor)`.
- **Deprecated**: `ColumnGroup`. Will be removed in future versions. Use libGDX's `VerticalGroup` which supports more features.
- **Fixed**: `BasicColorPicker` palette color selection were flipped.
- **Fixed**: `BasicColorPicker` removed unnecessary right padding.
- **Fixed**: `MenuItem` sub menu could appear outside screen.
- **Fixed**: `DialogUtils`'s `ConfirmDialog` text label was not centered.
#### Old changelog file:
```
[0.9.4] [libGDX 1.7.1]
-Fixed GWT support
[0.9.3] [libGDX 1.7.1]
-API Change: FocusManager.getFocus(Stage) renamed to resetFocus
-API Change: FocusManager.getFocus(Stage, Focusable) renamed to switchFocus
-API Change: GridGroup#getItemSize() removed, use getItemWidth or getItemHeight
-API Change: Moved FileChooser's FavouritesIO to 'com.kotcrab.vis.ui.widget.file.internal' package (isn't VisUI public API)
-API Addition: FocusManager.resetFocus(Stage, Actor)
-API Addition: FileChooser#getCurrentDirectory()
-API Addition: GridGroup#setItemWidth(int), GridGroup#setItemWidth(int), GridGroup#getItemWidth(), GridGroup#getItemWidth()
-API Addition: GridGroup#getItemSize(int width, int height)
-API Addition: TabbedPane#disableTab(Tab tab, boolean disable), TabbedPane#isTabDisabled(Tab)
-API Addition: IntDigitsOnlyFilter
-API Addition: DragPane
-API Addition: VisValue, VisWidgetValue - standard Table Values can be used as lambadas if you are using Java 1.8
-API Addition: PrefHeightIfVisibleValue
-ColorPicker:
-API Change: added ColorPickerListener#reset (Color previousColor, Color newColor)
-Rewritten using shaders, huge performance boost, now usable on gwt and low end devices
-Internal ColorPicker classes moved to `com.kotcrab.vis.ui.widget.color.internal` package (remember that those classes aren't considered as public api)
-ColorPicker can now be used as embeddable widget, see ExtendedColorPicker and BasicColorPicker
-Added ColorPickerWidgetStyle used by ExtendedColorPicker and BasicColorPicker
-Changed ColorPickerStyle, now uses ColorPickerWidgetStyle as composition
-I18N: Removed entries: "old", "new" (no longer needed)
-Style: removed fields: alphaBar10px and alphaBar25px, white (no longer needed)
-NumberSelector:
-API Addition: setMaxLength(int), getMaxLength()
-Fixed entering negative integer values
-Fixed NumberSelector text field focus border when using SkinScale.X2
-When selector loses focus and entered value is bigger than max it will be set to max value, if it's smaller than min it will be set to min value
-Previous behaviour was to restore last valid value
-Trying to use PopupMenu.add(Actor) with MenuItem will throw an exception (MenuItems must be added using addItem method)
-ColorPickerStyle now extends WindowStyle
-Fixed GridGroup too high when total items width in single row was equals to group width
-GridGroup now supports setting item width and height separately
-TabbedPane tabs order can be changed by mouse dragging
-Skin changes:
-Removed drawables: alpha-bar-10px, alpha-bar-25px
-VisUI is now supported by LML (templates for scene2d.ui with HTML-like syntax), https://github.com/czyzby/gdx-lml-vis
[0.9.2] [libGDX 1.7.1]
-API Change: VisValidatableTextField#getValidator() removed, use getValidators() instead
-API Change: Removed constructors FileChooser taking I18NBundle
-This way inconsistent with other widgets that did not support this, use VisUI class for setting global I18NBundles
-API Change: NumberSelector now supports float values, methods taking and returning integers are now using floats
-API Change: NumberSelectorListener#changed(int) is now NumberSelectorListener#changed(float)
-API Change: VisProgressBar and VisSlider now extends standard scene2d.ui ProgressBar and Slider (should not affect existing code)
-VisSliderStyle was removed, use SliderStyle which is fully compatible with VisSliderStyle
-API Change: changed ColorPickerListener#canceled () to ColorPickerListener#canceled (Color oldColor)
-API Change: added ColorPickerListener#changed (Color newColor)
-If you are using ColorPickerAdapter this does not affect you
-API Change: removed constructor LinkLabel (CharSequence text, String fontName, String colorName) because it was misleading
with LinkLabel (CharSequence text, CharSequence url, String styleName)
-API Addition: NumberSelector#setPrecision
-API Addition: NumberSelector(String name, float initialValue, float min, float max, float step, int precision)
-API Addition: NumberSelector(String styleName, String name, float initialValue, float min, float max, float step, int precision)
-API Addition: NumberSelector(NumberSelectorStyle style, Sizes sizes, String name, float initialValue, float min, float max, float step, int precision)
-API Addition: InputDialog#setText(String text), InputDialog#setText(String text, boolean selectAll)
-API Addition: FileChooser#setSelectedFiles (FileHandle... files)
-API Addition: FloatDigitsOnlyFilter
-API Addition: VisUI.isLoaded()
-API Addition: constructor VisValidatableTextField (String text, String styleName)
-API Addition: constructor VisValidatableTextField (String text, VisTextFieldStyle style)
-API Addition: CollapsibleWidget#setTable()
-API Addition: VisWindow#setCenterOnAdd(boolean)
-API Addition: ColorPicker#setAllowAlphaEdit (boolean allowAlphaEdit)
-API Addition: ColorPicker#isDisposed()
API Addition: VisCheckBox.setStateInvalid(boolean) and VisCheckBox.isStateInvalid()
-VisCheckBox and VisRadioButton can now be marked as invalid (error border will be drawn around them)
-CollapsibleWidget now supports creation without setting initial table
-Added default style for standard scene2d.ui TextTooltip
-Added VisTextField and TextArea "small" style with smaller font
-LinkLabel now uses LinkLabelStyle
-LinkLabel now has link underline on mouse over
-SimpleFormValidator (note that following also applies to FormValidator):
-API Addition: constructor SimpleFormValidator (Disableable targetToDisable, Label messageLabel, String styleName)
-API Addition: constructor SimpleFormValidator (Disableable targetToDisable, Label messageLabel, FormValidatorStyle style)
-API Addition: SimpleFormValidator#setMessageLabel(), and #setSuccessMessage
-API Addition: SimpleFormValidator#addDisableTarget(Disableable) and SimpleFormValidator#removeDisableTarget(Disableable)
-Now using FormValidatorStyle: allows to set color for message label when form is valid or invalid
-Two built-in styles: 'default' and 'smooth' with smooth transition between colors
-Any object implementing Disableable interface may be passed to FormInputValidator as target to disable if form is invalid
-Multiple Disableable targets are supported
-Added CheckBox support (checking if checkbox is checked/unchecked)
-TextField/VisTextField.setMessageText(String text) now works properly.
-DialogUtils methods now return dialogs objects (was void)
-Focus border can now be disabled on all widgets having it
-Fixed VisTree taking VisTextField focus when it was placed inside tree node
-Fixed invalid key up/down events propagation when using multiple input processors
-Fixed font kerning for character pairs: Ma, Me, Mi
-Fixed TabbedPane listener called multiple times when user was switching current tab
-Fixed TabbedPane close tab buttons styles
-Fixed 'directory' validator in FormValidator
-Added libGDX version check before loading VisUI, in case of version mismatch warning will be printed to console
-Can be suppressed by VisUI.setSkipGdxVersionCheck(true);
[0.9.1] [libGDX 1.7.0]
-Updated to libGDX 1.7.0
[0.9.0] [libGDX 1.6.5]
-API Change: Renamed VisValidableTextField to VisValidatableTextField (fixes typo in name)
-API Change: MenuItem#getShortcut() returns CharSequence (was String)
-API Addition: ColorPicker#setCloseAfterPickingFinished(boolean)
-Now Tab#onHide() is called before Tab#dispose()
-VisValidatableTextField ChangeEvent is now fired after input validation
-Fixes bug with input dialog with validator, it was possible to enter invalid value
-Fixed MenuItem not properly updated after changing menu shortcut when item was already added to PopupMenu
-Fixed MenuItem not using bigger icons when using SkinScale.X2
-FileChooser:
-Added tooltips for back, forward, and parent directory buttons
-Added "New directory" button next to path field
-Added popup menu icons
-DefaultFileFilter class is now public so it's possible to extend it
-If your project uses JNA library you can enable moving files to trash instead of deleting them permanently (chooser.setFileDeleter(new JNAFileDeleter()))
-In file view added icons for common file types: text, images, audio and pdf. Custom icons can be supplied by setting FileIconProvider (see chooser.setIconProvider(...))
-I18N changes: added entries: back, forward, parentDirectory, newDirectory, popupDeleteFileFailed, contextMenuMoveToTrash, contextMenuMoveToTrashWarning
-Skin changes: added iconFolderNew, iconFolderStar, iconTrash, iconFileText, iconFileImage, iconFilePdf, iconFileAudio
[0.8.2] [libGDX 1.6.4]
-API Addition: VisValidableTextField#restoreLastValidText()
-API Addition: OsUtils.isAndroid(), OsUtils.getAndroidApiLevel(), OsUtils.isIos(), OsUtils.getShortcutFor(int... keycodes)
-API Addition: MenuItem#setShortcut(int... keycodes)
-API Addition: VisSplitPane#getFirstWidgetBounds(), VisSplitPane#getSecondWidgetBounds()
-API Addition: NumberSelector#setProgrammaticChangeEvents(boolean), NumberSelector#setValue(int value, boolean fireEvent)
-API Addition: NumberSelector#removeChangeListener(...)
-API Change: Removed MenuItem#setShortcut(int modifier, int keycode)
-API Change: FileUtils.isMac(), FileUtils.isUnix() and FileUtils.isWindows() moved to OsUtils
-Added ColumnGroup
-Fixed MenuItem shortcut label color when MenuItem is disabled
-If user clicks mouse before Tooltip appears, Tooltip won't be showed
-Fixed issue with GridGroup in ScrollPane - scroll bar appeared too late
-Fixed GWT compilation issues
-PopupMenu is now kept inside stage when displaying it
-FileChooser
-API Change: Removed FileChooser#setVisble(boolean) (typo in name), use FileChooser#setVisible(boolean)
-API Change: Renamed: setGroupMultiselectKey to setGroupMultiSelectKey, getGroupMultiselectKey to getGroupMultiSelectKey,
setMultiselectKey to setMultiSelectKey, getMultiselectKey to getMultiSelectKey
setMultiselectionEnabled to setMultiSelectionEnabled, isMultiselectionEnabled to isMultiSelectionEnabled
-Fixed issue with very slow chooser creation on computers with floppy disk drivers installed ( https://github.com/kotcrab/vis-ui/issues/11#issuecomment-136892177 )
-Fixed crash in when user tried to use history buttons for no longer existing directory
-Fixed multiple selection when selection mode was set to FILES or DIRECTORIES
-Added support for the back and forward mouse button for navigating in the history
-I18N
-added directoryNoLongerExists
-added missing entries: newDirectoryDialogTitle, newDirectoryDialogText
[0.8.1] [libGDX 1.6.4]
-Updated libGDX to 1.6.4
-Error dialog from DialogUtils with exception will now show stacktrace from nested exceptions
-Skin change: ColorPickerStyle alphaBar25pxShifted removed (no longer necessary)
-Fixed VisSelectBox list elements padding
-Added skin in higher resolution (can be loaded by new method: VisUI.load(SkinScale.X2))
-SVG file is also available thanks to piotr-j (https://github.com/piotr-j)
-Removed VisUI.getDefaultSpacingTop/Bottom/Right/Left and VisUI.setDefaultSpacingTop/Bottom/Right/Left
-Replaced by Sizes class ( VisUI.getSizes() )
-TableUtils.setSpacingDefault now properly uses all spacings if set
-OptionDialog (DialogUtils.showOptionDialog(...)) message label is now by default center aligned.
-Fixed bug in ColorPicker: pasting hex value was changing picker old color
[0.8.0] [libGDX 1.6.3]
-API Addition: Tooltip (Actor target, String text, int textAlign)
-API Addition: Tooltip (String styleName, Actor target, String text, int textAlign)
-API Addition: FormInputValidator#hideErrorOnEmptyInput (can be used with FromValidator to don't display error
message if field is empty, field will be still marked with red border and accept button will be disabled)
-API Addition: FormValidator#directory(...)
-API Addition: FormValidator#directoryEmpty(...)
-API Addition: FormValidator#directoryNotEmpty(...)
-Optimized FileChooser ( https://github.com/kotcrab/vis-ui/issues/11 )
-Fixed issue when FileChooser confirm button text wasn't updated after changing mode ( https://github.com/kotcrab/vis-ui/pull/14 )
-Fixed issue when FileChooser would crash on file delete dialog
-Added 'blue' button style
-Added New Directory item in FileChooser popup menu ("contextMenuNewDirectory" was added to FileChooser I18N file)
-FileChooser I18N file: added contextMenuNewDirectory, newDirectoryDialogIllegalCharacters, newDirectoryDialogAlreadyExists properties
-Improved small font (some uppercase letters were missing 1px at the top)
[0.7.7] [libGDX 1.6.1]
-uiskin.json is now generated from USL (see USL page on GitHub Wiki, if you are not writing custom VisUI skins this does not affect you)
-API Addition: various getters and setters in NumberSelector
-API Addition: TabbedPane#getActiveTab
-API Change: Menu#selectButton(TextButton) and deselectButton(TextButton) no longer public, they wasn't part of public API
-Added 'navigate to parent directory' button in FileChooser
-FileChooser now displays "Computer" instead of "/" in partitions list (also added 'computer' entry in FileChooser I18N file)
-FileChooser: improved history (back and forward button)
-FileChooser now can will automatically updates drives list after connecting/removing drive, usb stick etc.
-FileChooser now will refresh files list after some files were changed in current directory
-FileChooser I18N: added property: popupSelectedFileDoesNotExist. Removed: popupOk, popupYes, popupNo (replaced by DialogUtils)
-Added some constructors that allows to use widgets without depending on VisUI.getSkin()
-Fixed infinite key repeat bug on Android in VisTextField ( https://github.com/kotcrab/vis-ui/issues/9 )
-Fixed small gap with empty title in NumberSelector
-Fixed issue where FileChooser file list wasn't rebuilt after setting new file filter
-Fixed issue where NumberSelector won't allow to enter value if min is greater than 0 ( related to https://github.com/kotcrab/vis-ui/issues/7 )
-Fixed closeOnEscape() with multiple windows (windows were closed in improper order) ( https://github.com/kotcrab/vis-ui/issues/10 )
-Fixed invalid title align in VisWindow after adding close button when title align is not set to center
-Fixed issue with disappearing MenuItem after opening PopupMenu while holding right mouse button and dragging down ( https://github.com/kotcrab/vis-ui/commit/a17e309b980b5d0db061a315685501e405811ff6 )
-FileChooser, ColorPicker, Tooltip, Menu and MenuBar now can use styles defined in skin file
-ColorPicker now supports I18N (added VisUI.setColorPickerBundle(I18NBundle))
[0.7.6] [libGDX 1.6.0]
-Updating to libGDX 1.6.0
[0.7.5] [libGDX 1.5.6]
-Added VisImageTextButton
[0.7.4] [libGDX 1.5.6]
-API Addition: NumberSelector#setValue(int)
-After adding close button to VisWindow, title label will be automatically centered if noting else was added to title table
[0.7.3] [libGDX 1.5.6] [POM invalid, don't use]
-Updating to libGDX 1.5.6
-Fixed input bug in VisTextField
-Tooltip now can be created without setting target
[0.7.2] [libGDX 1.5.5] [POM invalid, don't use]
-API Addition: NumberSelector (String name, int initialValue, int min, int max)
-API Addition: VisUI.load(Skin)
-API Addition: GridGroup
-API Addition: LinkLabel
-API Addition: VisValidableTextField#setRestoreLastValid(boolean)
-API Addition: VisTextButton (String, ChangeListener)
-API Addition: VisTextButton (String, String, ChangeListener)
-API Addition CollapsibleWidget.setCollapsed (boolean collapse, boolean applyAnimation) to change collapse state without animation
-Fixed menu not closing after clicking it on MenuBar
-Fixed submenu visible for disabled MenuItem
-Fixing some Tooltip problems, Tooltip now won't fade away when user has it mosue over it
-Better padding on VisList/List item (default list style selection drawable now uses 'padded-list-selection.9')
-New default favoritesPrefsName is com.kotcrab.vis.ui.widget.file.filechooser_favorites (was pl.kotcrab.vis.ui.widget.file.filechooser_favorites)
-Now waring will be printed to console if using default favorites preference name (see FileChooser.setFavoritesPrefsName(String))
-Improving text field (faster input while holding key)
[0.7.1] [libGDX 1.5.5]
-Fixing GWT compatibility
[0.7.0] [libGDX 1.5.5]
* Renaming:
Validators.integers renamed to Validators.INTEGERS
Validators.floats renamed to Validators.FLOAT
PopupMenu#displayMenu renamed to PopupMenu#showMenu
Skin Change: Separator 'height' renamed to 'thickness'
* Moving classes / reorganizing:
VisTable moved to com.kotcrab.vis.ui.widget package
DialogUtils moved to com.kotcrab.vis.ui.util.dialog package
OptionDialogListener and OptionDialogAdapter moved to com.kotcrab.vis.ui.util.dialog package
InputDialogListener and InputDialogAdapter moved to com.kotcrab.vis.ui.util.dialog package
FormValidator, SimpleFormValidator, FormInputValidator moved to com.kotcrab.vis.ui.util.form package
BasicFormValidator renamed to SimpleFormValidator
TableUtils.setSpaceDefaults renamed to TableUtils.setSpacingDefaults
* Menu system changes:
Submenus are now supported
Removed PopupMenu constructors taking boolean, now auto remove is always enabled. Now when user has clicked MenuItem then PopupMenu will be removed from stage
MenuBar constructor doesn't take Stage argument anymore
Added: MenuItem#setSubMenu(PopupMenu subMenu)
Added: MenuBar#addMenu(Menu menu) MenuBar#removeMenu(Menu menu) MenuBar#insertMenu(int index, Menu menu)
Added: MenuBar#closeMenu()
Skin Change: MenuItem widget now uses MenuItemStyle (used TextButtonStyle). MenuItemStyle extends TextButtonStyle. MenuItemStyle adds submenu icon.
* Skin changes:
Separator style now has 'vertical' property
Added VisSplitPane handleOver property
* Other API changes:
API Change: Constructor Separator(boolean useMenuStyle) is now Separator(boolean vertical). Use 'new Separator("menu")' for menu styled separator
API Change: FileChooserLocale removed, now using libGDX's I18NBundle, see FileChooserText class
API Change: VisWindow#getButtonTable deprecated, instead use VisWindow#getTitleTable
API Change: VisDialog#getButtonTable deprecated, instead use VisDialog#getButtonsTable
API Change: Removed FileChooser.getFavoritesPrefsName()
* Other API additions:
Added New FormValidators: integerNumber, floatNumber, valueLesserThan, valueGreaterThan
Added VisTable#addSeparator (boolean vertical)
Added constructor VisLabel (CharSequence text, LabelStyle style)
Added constructor VisLabel (CharSequence text, int alignment)
Added TableBuilder and its implementations: StandardTableBuilder, CenteredTableBuilder, GridTableBuilder, OneColumnTableBuilder, OneRowTableBuilder
* Other changes:
VisTree/Tree now have default mouse over drawable
Added shift selection for FileChooser (key can be changed by FielChooser#setGroupMultiselectKey(...))
Tooltip is now kept within Stage border
Focus border is now optional for every widget that was using it
Font support for Polish, German, Spanish, French, Greek and Russian characters
FormInputValidator now uses validate(String) instead of validateInput(String) for input validation, calling setResult is no longer required
(for examples on how to use it see SimpleFormValidator)
Added ValidatorWrapper that allows standard validator to be used with (Simple)FormValidator#custom(...)
Added DialogUtils.showConfirmDialog(...)
Added TabbedPane
[0.6.1] [libGDX 1.5.4]
-Fixed FileChooser disappearing when removing favourite
[0.6.0] [libGDX 1.5.4]
-API Change: VisUI.skin is not private, use VisUI.getSkin() instead
-API Addition: DialogUtils.showOptionDialog (Stage stage, String title, String text, OptionDialogType type, OptionDialogListener listener)
-API Addition: FormValidator.fileExists (VisValidableTextField field, VisTextField relativeTo, String errorMsg, boolean errorIfRelativeEmpty)
-API Addition: ColorPicker
-API Addition: ColorUtils
-API Addition: VisImage
-API Addition: constructor VisLabel (CharSequence text, Color textColor)
-Changed close button style name to 'close-window' (was 'close')
-Added 'close' button style that matches other normal buttons
-Fixed focus traversing when TAB pressed in VisTextField, doesn't change focus to invisible fields and doesn't leaves modal windows
-Added built-in validators: IntegerValidator, FloatValidator, GreaterThanValidator, LesserThanValidator (see Validators class)
-Added VERSION string constant in VisUI
[0.5.1] [libGDX 1.5.3]
-Added cancelable input dialog in DialogUtils
[0.5.0] [libGDX 1.5.3]
-API Addition: VisValidableTextField.setValidationEnabled(boolean)
-API Addition: VisValidableTextField.isValidationEnabled()
-API Addition: VisValidableTextField.setProgrammaticChangeEvents(boolean)
-API Addition: constructor VisImageButton (String styleName)
-API Addition: constructor VisCheckBox (String text, boolean checked)
-API Addition: VisWindow.addCloseButton()
-API Addition: VisWindow.closeOnEscape()
-API Addition: VisTextField.focusField()
-API Addition: MenuItem.getShortcut()
-API Addition: DialogUtils.showInputDialog (Stage stage, String title, String fieldTitle, InputDialogListener listener)
-API Addition: DialogUtils.showInputDialog (Stage stage, String title, String fieldTitle, InputValidator validator, InputDialogListener listener)
-API Change: VisUI.setDefaultTitleAlign and VisUI.getDefaultTitleAlign (typo fixed)
-API Change: Removed deprecated TableUtils.setColumnsDefaults(Table)
-Separator style "menu" height changed to 3px (was 4px), that means PopupMenu separator height is now 3px as well
-File chooser now have close button in top right corner
-File chooser now closes when escape key has been pressed
-Fixed bug where VisValidableTextField would loss focus if user type something and field don't have ChangeListener attached
-Fixed focusing next field when TAB key is pressed inside VisTextField
-Added Tooltips
-Moved TableUtils to com.kotcrab.vis.util package (sorry!)
[0.4.1] [libGDX 1.5.2]
-Fixed FileChooser padding when scrollbar was showed (because libGDX scrollpane was probably fixed as well)
[0.4.0] [libGDX 1.5.2] [Important]
-Important: Moving everything to com.kotcrab.vis package, new Gradle definitions:
in core: com.kotcrab.vis:vis-ui:$visuiVersion
in html: com.kotcrab.vis:vis-ui:$visuiVersion:sources
Also don't forget to update your GdxDefinition.gwt.xml and GdxDefinitionSuperdev.gwt.xml files!
[0.3.1] [libGDX 1.5.0]
-Added CollapsibleWidget
-Fixed VisImageButton.setGenerateDisabledImage(boolean)
-Fixed MenuBar not rendering Menu content if added Menu to MenuBar after adding items to it
-VisTable.addSeparator() now sets expandX() and fillX() for separator instead of expand() and fill()
-GWT compatibility for DialogUtils and FormValidator
-Fixed VisCheckBox and VisRadioButton focus border padding
[0.3.0] [libGDX 1.5.0]
-libGDX dependency version changed to 1.5.0
-Font size changed to 15
-Separator width changed to 4px, split pane bar width/height changed to 4px
-Removed markup font
-API Change: Removed deprecated resize() from MenuBar
-API Change: New MenuItem constructors which takes Image instead of Drawable, removed MenuItem (String text, Drawable image, String styleName)
-API Change: FormValidator.fileExist(...) -> FormValidator.fileExists(...)
-API Change: VisTable.addSeparator() returns Cell<Separator> instead of void
-API Addition: FileChooser(FileChooserLocale, Mode)
-API Addition: MenuItem (String, ChangeListener)
-API Addition: VisUI.setDefualtTitleAlign(int align)
-API Addition: VisUI.getDefualtTitleAlign()
-API Addition: FormValidator.fileExist(VisValidableTextField field, File relavtiveTo, String errorMsg)
-API Addition: FormValidator can also take FileHandle when using file(Not)Exist relativeTo method
-API Addition: Added VisTextField.isFocusBorderEnabled() and VisTextField.setFocusBorderEnabled(boolean)
-API Addition: Added FormValidator.fileNotExist(...) methods
-API Addition: Added FormValidator.custom (VisValidableTextField field, FormInputValidator customValidator)
-API Addition: VisSplitPane.setWidgets (Actor firstWidget, Actor secondWidget)
-Fixed bug when FormValidator doesn't updated all fields borders after changes in other field
-FileChooser deselects all files when reopened
-FileChooser: When clicked on drive shortcut file scroll pane table will get focus automaticly
-FileChooser: When sorting file list chooser now ignores uppercase/lowercase
-Fixed problem where Separator didn't set color before rendering
-Fixed look of disabled MenuItem, if MenuItem has an image and it is disabled, image color will be set to Color.GRAY.
This can be disabled by calling item.setGenerateDisabledImage(false)
[0.2.0] [libGDX 1.4.1]
-API change: removed Stage from VisWindow and VisDialog constructors
-API change: removed VisWindow.setPositonToCenter() replaced with VisWindow.centerWindow()
-API change: VisImageButton.setGeneateDisabledImage() -> VisImageButton.setGenerateDisabledImage() (typo)
-Fixed findNextTextField in VisTextField
-Increased default bottom padding from 6 to 8
-Calling MenuBar.resize() no longer required
-When FileChooser is in SelectionMode.DIRECTORIES, none directory is selected, and finish button was clicked, current directory will be selected
-VisValidableTextField will validate input on setText() and fire ChangeEvent
-VisValidableTextField.validateInput() method is now public
-Added SeparatorStyle class
-Added PopupMenu.addSeparator()
-Added FileUtils.toFileHandle(File file)
-Added FormValidator
-Added VisValidableTextField()
-Added VisValidableTextField(InputValidator validator)
-Added VisValidableTextField(String text)
-Added VisLabel()
-Added VisValidableTextField.getValidator()
-Added VisValidableTextField.getValidators()
-Added MenuItem(String text, Drawable image)
-Added DialogUtils
[0.1.1] [libGDX 1.4.1]
-Updated menu bar look
[0.1.0] [libGDX 1.4.1]
-API change: VisValidableTextField#addValidable -> VisValidableTextField#addValidator
-Added: VisTextField#isEmpty()
-Added: VisTable#addSeparator()
-Added: VisWindow(String title)
-Added: VisTextButton(String text, VisTextButtonStyle buttonStyle)
-Added FileChooser (Desktop only)
-Added fadeOut(), fadeIn() to VisWindow
-Added VisImageButton
-Added VisDialog
-Added PopupMenu
-Disabling button will remove its focus
-VisWindow can be created with border or without it
-MenuItem can be created with icon
-Fixed horizontal scroll pane slider not fully visible
-Fixed fade out animation not worked on VisSplitPane
[0.0.3] [libGDX 1.4.1]
-API change: Renamed 'components' package to 'widget' (sorry!)
-Added VisValidableTextField with InputValidator
-Better CheckBox text padding
[0.0.2] [libGDX 1.4.1]
-Added GWT compatibility
[0.0.1] [libGDX 1.4.1]
-Initial release
```
================================================
FILE: ui/NOTICE
================================================
VisUI uses icons licensed under CC BY-ND 3.0
https://github.com/Templarian/WindowsIcons/blob/master/WindowsPhone/license.txt (file: icons-license)
================================================
FILE: ui/assets-raw/x1/pack.json
================================================
{
duplicatePadding: false,
paddingX: 1,
paddingY: 1,
stripWhitespaceX: true,
stripWhitespaceY: true
}
================================================
FILE: ui/assets-raw/x1-fonts/default.hiero
================================================
font.name=Vis Open Sans
font.size=15
font.bold=false
font.italic=false
font2.file=C:\Data\Git\vis-ui\ui\assets-raw\VisOpenSansKerned.ttf
font2.use=true
pad.top=0
pad.right=0
pad.bottom=0
pad.left=0
pad.advance.x=0
pad.advance.y=0
glyph.native.rendering=false
glyph.page.width=256
glyph.page.height=256
glyph.text=ABCDEFGHIJKLMNOPQRSTUVWXYZ\nabcdefghijklmnopqrstuvwxyz\n1234567890•\n"!`?¿'.,;:()[]{}<>|/@\^$€¥-%+=#_&~*\nñÑąćęłńóśźżĄĆĘŁŃÓŚŹŻÄäÖöÜüßĞğŞşİıÇç\náéíóúàèìòùÁÉÍÓÚÀÈÌÒÙ\nАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ\nабвгдеёжзийклмнопрстуфхцчшщъыьэюя\nΑΆΒΓΔΕΈΖΗΉΘΙΊΚΛΜΝΞΟΌΠΡΣΤΥΎΦΧΨΩΏ·\nαάβγδεέζηήθιίκλμνξοόπρστυύφχψωώ\nϊΐςϋΰ⌘⌥⇧čďěňřšťůýžČĎĚŇŘŠŤŮÝŽ
effect.class=com.badlogic.gdx.tools.hiero.unicodefont.effects.ColorEffect
effect.Color=ffffff
================================================
FILE: ui/assets-raw/x1-fonts/font-small.hiero
================================================
font.name=Vis Open Sans
font.size=12
font.bold=false
font.italic=false
font2.file=C:\Data\Git\vis-ui\ui\assets-raw\VisOpenSansKerned.ttf
font2.use=true
pad.top=1
pad.right=0
pad.bottom=0
pad.left=0
pad.advance.x=0
pad.advance.y=0
glyph.native.rendering=false
glyph.page.width=256
glyph.page.height=128
glyph.text=ABCDEFGHIJKLMNOPQRSTUVWXYZ\nabcdefghijklmnopqrstuvwxyz\n1234567890•\n"!`?¿'.,;:()[]{}<>|/@\^$€¥-%+=#_&~*\nñÑąćęłńóśźżĄĆĘŁŃÓŚŹŻÄäÖöÜüßĞğŞşİıÇç\náéíóúàèìòùÁÉÍÓÚÀÈÌÒÙ\nАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ\nабвгдеёжзийклмнопрстуфхцчшщъыьэюя\nΑΆΒΓΔΕΈΖΗΉΘΙΊΚΛΜΝΞΟΌΠΡΣΤΥΎΦΧΨΩΏ·\nαάβγδεέζηήθιίκλμνξοόπρστυύφχψωώ\nϊΐςϋΰ⌘⌥⇧čďěňřšťůýžČĎĚŇŘŠŤŮÝŽ
effect.class=com.badlogic.gdx.tools.hiero.unicodefont.effects.ColorEffect
effect.Color=ffffff
effect.class=com.badlogic.gdx.tools.hiero.unicodefont.effects.OutlineEffect
effect.Color=ffffff
effect.Width=0.3
effect.Join=2
================================================
FILE: ui/assets-raw/x2/pack.json
================================================
{
duplicatePadding: false,
paddingX: 1,
paddingY: 1,
stripWhitespaceX: true,
stripWhitespaceY: true
}
================================================
FILE: ui/assets-raw/x2-fonts/default.hiero
================================================
font.name=Vis Open Sans
font.size=30
font.bold=false
font.italic=false
font2.file=C:\Data\Git\vis-ui\ui\assets-raw\VisOpenSansKerned.ttf
font2.use=true
pad.top=0
pad.right=0
pad.bottom=0
pad.left=0
pad.advance.x=0
pad.advance.y=0
glyph.native.rendering=false
glyph.page.width=512
glyph.page.height=256
glyph.text=ABCDEFGHIJKLMNOPQRSTUVWXYZ\nabcdefghijklmnopqrstuvwxyz\n1234567890•\n"!`?¿'.,;:()[]{}<>|/@\^$€¥-%+=#_&~*\nñÑąćęłńóśźżĄĆĘŁŃÓŚŹŻÄäÖöÜüßĞğŞşİıÇç\náéíóúàèìòùÁÉÍÓÚÀÈÌÒÙ\nАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ\nабвгдеёжзийклмнопрстуфхцчшщъыьэюя\nΑΆΒΓΔΕΈΖΗΉΘΙΊΚΛΜΝΞΟΌΠΡΣΤΥΎΦΧΨΩΏ·\nαάβγδεέζηήθιίκλμνξοόπρστυύφχψωώ\nϊΐςϋΰ⌘⌥⇧čďěňřšťůýžČĎĚŇŘŠŤŮÝŽ
effect.class=com.badlogic.gdx.tools.hiero.unicodefont.effects.ColorEffect
effect.Color=ffffff
================================================
FILE: ui/assets-raw/x2-fonts/font-small.hiero
================================================
font.name=Vis Open Sans
font.size=24
font.bold=false
font.italic=false
font2.file=C:\Data\Git\vis-ui\ui\assets-raw\VisOpenSansKerned.ttf
font2.use=true
pad.top=1
pad.right=0
pad.bottom=0
pad.left=0
pad.advance.x=0
pad.advance.y=0
glyph.native.rendering=false
glyph.page.width=512
glyph.page.height=256
glyph.text=ABCDEFGHIJKLMNOPQRSTUVWXYZ\nabcdefghijklmnopqrstuvwxyz\n1234567890•\n"!`?¿'.,;:()[]{}<>|/@\^$€¥-%+=#_&~*\nñÑąćęłńóśźżĄĆĘŁŃÓŚŹŻÄäÖöÜüßĞğŞşİıÇç\náéíóúàèìòùÁÉÍÓÚÀÈÌÒÙ\nАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ\nабвгдеёжзийклмнопрстуфхцчшщъыьэюя\nΑΆΒΓΔΕΈΖΗΉΘΙΊΚΛΜΝΞΟΌΠΡΣΤΥΎΦΧΨΩΏ·\nαάβγδεέζηήθιίκλμνξοόπρστυύφχψωώ\nϊΐςϋΰ⌘⌥⇧čďěňřšťůýžČĎĚŇŘŠŤŮÝŽ
effect.class=com.badlogic.gdx.tools.hiero.unicodefont.effects.ColorEffect
effect.Color=ffffff
================================================
FILE: ui/build.gradle
================================================
archivesBaseName = "vis-ui"
sourceCompatibility = 1.8
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
dependencies {
implementation "com.badlogicgames.gdx:gdx:$gdxVersion"
testImplementation "com.badlogicgames.gdx:gdx-backend-lwjgl3:$gdxVersion"
testImplementation "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop"
testImplementation "junit:junit:$junitVersion"
//testImplementation "com.kotcrab.vne:vne-runtime:1.0.1"
//testImplementation "com.kotcrab.vne:vne-win-thumbnails:1.0.1"
//testImplementation group: 'com.kotcrab.vis', name: 'vis-ui-contrib', version: '1.3.0'
//testImplementation "org.imgscalr:imgscalr-lib:4.2"
}
compileTestJava {
targetCompatibility = 1.8
}
test {
useJUnit {
include "**/*Test.**"
exclude 'com.kotcrab.vis.ui.test.manual.**'
}
}
task run(dependsOn: jar, type: JavaExec) {
main = 'com.kotcrab.vis.ui.test.manual.TestLauncher'
classpath = sourceSets.test.runtimeClasspath
ignoreExitValue = true
if (System.getProperty("os.name").toLowerCase().contains("mac")) {
// Required to run lwjgl java apps on Mac OSX
jvmArgs = ["-XstartOnFirstThread"]
}
}
task packSkin {
doLast {
description 'Compiles VisUI USL skin to JSON'
def basePath = rootProject.projectDir.absolutePath + "/ui/"
def x1Input = new File(basePath + "assets-raw/x1").absolutePath
def x1Output = new File(basePath + "src/main/resources/com/kotcrab/vis/ui/skin/x1/").absolutePath
com.badlogic.gdx.tools.texturepacker.TexturePacker.process(x1Input, x1Output, "uiskin")
def x2Input = new File(basePath + "assets-raw/x2").absolutePath
def x2Output = new File(basePath + "src/main/resources/com/kotcrab/vis/ui/skin/x2/").absolutePath
com.badlogic.gdx.tools.texturepacker.TexturePacker.process(x2Input, x2Output, "uiskin")
}
}
task compileUsl {
doLast {
description 'Pack skin textures into texture atlases'
def basePath = rootProject.projectDir.absolutePath + "/ui/src/main/resources/com/kotcrab/vis/ui/skin/"
def x1File = new File(basePath + "x1/uiskin.json")
def x2File = new File(basePath + "x2/uiskin.json")
com.kotcrab.vis.usl.Lexer.addIncludeSource(rootProject.projectDir.absolutePath + "/usl/styles")
def json = com.kotcrab.vis.usl.USL.parse(null, "include <visui-" + version + ">")
x1File.text = json
x2File.text = json
}
}
task compileSkin(dependsOn: ['compileUsl', 'packSkin']) {
description 'Pack skin textures into texture atlases and compile USL into JSON'
}
================================================
FILE: ui/gradle.properties
================================================
projectName=vis-ui
projectDesc=UI toolkit and flat design skin for scene2d.ui
projectVersion=1.5.9-SNAPSHOT
================================================
FILE: ui/icons-license
================================================
# License
Please carefully understand the license and download the latest icons at ModernUIIcons.com.
## Understand Your Rights
No Attribution and No Derived Works
http://creativecommons.org/licenses/by-nd/3.0/ *
- If your project is open source include this license file in the source.
- Nothing is needed in the front facing project (UNLESS you
are using any of the icons listed below in the attribution section).
- Commercial use is not only allowed but encouraged. If it is an icon
in the attribution list below, you still need to attribute those!
- Do not distribute the entire package (I've allowed this dozens of
times for open source projects, but email me first).
## Creator
- Austin Andrews (@templarian)
## Contributor**
- Jay Zawrotny (@JayZawrotny)
- A Bunch
- Oren Nachman
- appbar.chevron.down
- appbar.chevron.up
- appbar.chevron.left
- appbar.chevron.right
## Derived Works
- Alex Peattie
- Social: http://www.alexpeattie.com/projects/justvector_icons/
## Attribution***
- Kris Vandermotten (@kvandermotten)
- appbar.medical.pulse
- Constantin Kichinsky (@kichinsky)
- appbar.currency.rubles
- appbar.currency.grivna
- Massimo Savazzi (@msavazzi)
- List of missing exported icons
- Proletkult Graphik, from The Noun Project
- appbar.draw.pen (inspired)
- Olivier Guin, from The Noun Project
- appbar.draw.marker
- Gibran Bisio, from The Noun Project
- appbar.draw.bucket
Andrew Forrester, from The Noun Project
- appbar.fingerprint
* The license is for attribution, but this is not required.
** Developers and designers that emailed Templarian the source .design icons to be added into the package. PNGs also accepted, but may take longer to be added.
*** Icons I've copied so closely you want to attribute them and are also under the CC license.
Contact
- http://templarian.com/
- admin[@]templarian[.]com
* Does not apply to copyrighted logos
- Skype
- Facebook
- Twitter
- etc...
================================================
FILE: ui/src/main/java/com/kotcrab/vis/ui/FocusManager.java
================================================
/*
* Copyright 2014-2017 See AUTHORS file.
*
* 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.
*/
package com.kotcrab.vis.ui;
import com.badlogic.gdx.scenes.scene2d.Actor;
import com.badlogic.gdx.scenes.scene2d.Stage;
/**
* Manages focus of VisUI components. This is different from stage2d.ui focus management. In scene2d widgets can only
* acquire keyboard and scroll focus. VisUI focus managers allows any widget to acquire general user focus, this is used
* mainly to manage rendering focus borders around widgets. Generally there is no need to call those method manually.
* @author Kotcrab
* @see Focusable
*/
public class FocusManager {
private static Focusable focusedWidget;
/**
* Takes focus from current focused widget (if any), and sets focus to provided widget
* @param stage if passed stage is not null then stage keyboard focus will be set to null
* @param widget that will acquire focus
*/
public static void switchFocus (Stage stage, Focusable widget) {
if (focusedWidget == widget) return;
if (focusedWidget != null) focusedWidget.focusLost();
focusedWidget = null;
if (stage != null) stage.setKeyboardFocus(null);
focusedWidget = widget;
focusedWidget.focusGained();
}
/**
* Takes focus from current focused widget (if any), and sets current focused widget to null. If widgets owns
* keyboard focus {@link #resetFocus(Stage, Actor)} should be always preferred.
* @param stage if passed stage is not null then stage keyboard focus will be set to null
*/
public static void resetFocus (Stage stage) {
if (focusedWidget != null) focusedWidget.focusLost();
if (stage != null) stage.setKeyboardFocus(null);
focusedWidget = null;
}
/**
* Takes focus from current focused widget (if any), and sets current focused widget to null
* @param stage if passed stage is not null then stage keyboard focus will be set to null only if current
* focus owner is passed actor
*/
public static void resetFocus (Stage stage, Actor caller) {
if (focusedWidget != null) focusedWidget.focusLost();
if (stage != null && stage.getKeyboardFocus() == caller) stage.setKeyboardFocus(null);
focusedWidget = null;
}
public static Focusable getFocusedWidget () {
return focusedWidget;
}
}
================================================
FILE: ui/src/main/java/com/kotcrab/vis/ui/Focusable.java
================================================
/*
* Copyright 2014-2017 See AUTHORS file.
*
* 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.
*/
package com.kotcrab.vis.ui;
/**
* Implemented by objects that can acquire VisUI focus.
* @author Kotcrab
* @see FocusManager
*/
public interface Focusable {
/** Called by VisUI when object lost focus. Don not cally manually, see {@link FocusManager}. */
void focusLost ();
/** Called by VisUI when object gained focus. Don not cally manually, see {@link FocusManager}. */
void focusGained ();
}
================================================
FILE: ui/src/main/java/com/kotcrab/vis/ui/Locales.java
================================================
/*
* Copyright 2014-2017 See AUTHORS file.
*
* 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.
*/
package com.kotcrab.vis.ui;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.utils.I18NBundle;
import com.kotcrab.vis.ui.i18n.BundleText;
import com.kotcrab.vis.ui.util.dialog.Dialogs;
import com.kotcrab.vis.ui.widget.ButtonBar;
import com.kotcrab.vis.ui.widget.color.ColorPicker;
import com.kotcrab.vis.ui.widget.file.FileChooser;
import com.kotcrab.vis.ui.widget.tabbedpane.TabbedPane;
import java.util.Locale;
/**
* Manages VisUI's I18N bundles.
* @author Kotcrab
* @since 1.0.0
*/
public class Locales {
private static Locale locale = new Locale("en");
private static I18NBundle commonBundle;
private static I18NBundle buttonBarBundle;
private static I18NBundle fileChooserBundle;
private static I18NBundle dialogsBundle;
private static I18NBundle tabbedPaneBundle;
private static I18NBundle colorPickerBundle;
/** Returns common I18N bundle. If current bundle is null, a default bundle is set and returned */
public static I18NBundle getCommonBundle () {
if (commonBundle == null) commonBundle = getBundle("com/kotcrab/vis/ui/i18n/Common");
return commonBundle;
}
/**
* Changes common bundle. Since this bundle may be used by multiple VisUI parts it should be changed before loading VisUI.
* If set to null then {@link #getCommonBundle()} will return default bundle.
*/
public static void setCommonBundle (I18NBundle commonBundle) {
Locales.commonBundle = commonBundle;
}
/** Returns I18N bundle used by {@link FileChooser}, if current bundle is null, a default bundle is set and returned */
public static I18NBundle getFileChooserBundle () {
if (fileChooserBundle == null) fileChooserBundle = getBundle("com/kotcrab/vis/ui/i18n/FileChooser");
return fileChooserBundle;
}
/**
* Changes bundle used by {@link FileChooser}, will not affect already created FileChoosers.
* If set to null then {@link #getFileChooserBundle()} will return default bundle.
*/
public static void setFileChooserBundle (I18NBundle fileChooserBundle) {
Locales.fileChooserBundle = fileChooserBundle;
}
/** Returns I18N bundle used by {@link Dialogs}, if current bundle is null, a default bundle is set and returned */
public static I18NBundle getDialogsBundle () {
if (dialogsBundle == null) dialogsBundle = getBundle("com/kotcrab/vis/ui/i18n/Dialogs");
return dialogsBundle;
}
/**
* Changes bundle used by {@link Dialogs}, will not affect already created dialogs.
* If set to null then {@link #getDialogsBundle()} will return default bundle.
*/
public static void setDialogsBundle (I18NBundle dialogsBundle) {
Locales.dialogsBundle = dialogsBundle;
}
/** Returns I18N bundle used by {@link TabbedPane}, if current bundle is null, a default bundle is set and returned */
public static I18NBundle getTabbedPaneBundle () {
if (tabbedPaneBundle == null) tabbedPaneBundle = getBundle("com/kotcrab/vis/ui/i18n/TabbedPane");
return tabbedPaneBundle;
}
/**
* Changes bundle used by {@link TabbedPane}, will not affect already created TabbedPane.
* If set to null then {@link #getTabbedPaneBundle()} will return default bundle.
*/
public static void setTabbedPaneBundle (I18NBundle tabbedPaneBundle) {
Locales.tabbedPaneBundle = tabbedPaneBundle;
}
/** Returns I18N bundle used by {@link ColorPicker}, if current bundle is null, a default bundle is set and returned */
public static I18NBundle getColorPickerBundle () {
if (colorPickerBundle == null) colorPickerBundle = getBundle("com/kotcrab/vis/ui/i18n/ColorPicker");
return colorPickerBundle;
}
/**
* Changes bundle used by {@link ColorPicker}, will not affect already created pickers.
* If set to null then {@link #getColorPickerBundle()} will return default bundle.
*/
public static void setColorPickerBundle (I18NBundle colorPickerBundle) {
Locales.colorPickerBundle = colorPickerBundle;
}
/** Returns I18N bundle used by {@link ButtonBar}, if current bundle is null, a default bundle is set and returned */
public static I18NBundle getButtonBarBundle () {
if (buttonBarBundle == null) buttonBarBundle = getBundle("com/kotcrab/vis/ui/i18n/ButtonBar");
return buttonBarBundle;
}
/**
* Changes bundle used by {@link ButtonBar}, will not affect already created bars.
* If set to null then {@link #getButtonBarBundle()} ()} will return default bundle.
*/
public static void setButtonBarBundle (I18NBundle buttonBarBundle) {
Locales.buttonBarBundle = buttonBarBundle;
}
/**
* Changes current locale, this should be done when VisUI isn't loaded yet because changing this won't affect bundles
* that are already loaded.
*/
public static void setLocale (Locale locale) {
Locales.locale = locale;
}
private static I18NBundle getBundle (String path) {
FileHandle bundleFile = Gdx.files.classpath(path);
return I18NBundle.createBundle(bundleFile, locale);
}
public enum CommonText implements BundleText {
PLEASE_WAIT("pleaseWait"),
UNKNOWN_ERROR_OCCURRED("unknownErrorOccurred");
private final String name;
CommonText (final String name) {
this.name = name;
}
private static I18NBundle getBundle () {
return Locales.getCommonBundle();
}
@Override
public final String getName () {
return name;
}
@Override
public final String get () {
return getBundle().get(name);
}
@Override
public final String format () {
return getBundle().format(name);
}
@Override
public final String format (final Object... arguments) {
return getBundle().format(name, arguments);
}
@Override
public final String toString () {
return get();
}
}
}
================================================
FILE: ui/src/main/java/com/kotcrab/vis/ui/Sizes.java
================================================
/*
* Copyright 2014-2017 See AUTHORS file.
*
* 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.
*/
package com.kotcrab.vis.ui;
/**
* VisUI padding, spacings and sizes. Loaded from skin, will differ between different skin sizes. If you are using
* custom skin it must contain "default" definition of Sizes values.
* @author Kotcrab
* @since 0.8.1
*/
public class Sizes {
public float scaleFactor;
public float spacingTop;
public float spacingBottom;
public float spacingRight;
public float spacingLeft;
public float buttonBarSpacing;
public float menuItemIconSize;
/**
* Size of focus border. 1 for standard Vis skin. This is used to avoid showing overlapping borders when two widgets
* have borders (for example button can have it's own focus border which without this padding would overlap with menu border)
*/
public float borderSize;
public float spinnerButtonHeight;
public float spinnerFieldSize;
public float fileChooserViewModeBigIconsSize;
public float fileChooserViewModeMediumIconsSize;
public float fileChooserViewModeSmallIconsSize;
public float fileChooserViewModeListWidthSize;
public Sizes () {
}
public Sizes (Sizes other) {
this.scaleFactor = other.scaleFactor;
this.spacingTop = other.spacingTop;
this.spacingBottom = other.spacingBottom;
this.spacingRight = other.spacingRight;
this.spacingLeft = other.spacingLeft;
this.buttonBarSpacing = other.buttonBarSpacing;
this.menuItemIconSize = other.menuItemIconSize;
this.borderSize = other.borderSize;
this.spinnerButtonHeight = other.spinnerButtonHeight;
this.spinnerFieldSize = other.spinnerFieldSize;
this.fileChooserViewModeBigIconsSize = other.fileChooserViewModeBigIconsSize;
this.fileChooserViewModeMediumIconsSize = other.fileChooserViewModeMediumIconsSize;
this.fileChooserViewModeSmallIconsSize = other.fileChooserViewModeSmallIconsSize;
this.fileChooserViewModeListWidthSize = other.fileChooserViewModeListWidthSize;
}
}
================================================
FILE: ui/src/main/java/com/kotcrab/vis/ui/VisUI.java
================================================
/*
* Copyright 2014-2017 See AUTHORS file.
*
* 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.
*/
package com.kotcrab.vis.ui;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Version;
import com.badlogic.gdx.assets.AssetManager;
import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.scenes.scene2d.ui.Skin;
import com.badlogic.gdx.utils.Align;
import com.badlogic.gdx.utils.GdxRuntimeException;
/**
* Allows to easily load VisUI skin and change default title alignment and I18N bundles.
* Contains static field with VisUI version.
* @author Kotcrab
*/
public class VisUI {
private static final String TARGET_GDX_VERSION = "1.14.0";
private static boolean skipGdxVersionCheck = false;
private static int defaultTitleAlign = Align.left;
private static SkinScale scale;
private static Skin skin;
/** Defines possible built-in skin scales. */
public enum SkinScale {
/** Standard VisUI skin */
X1("com/kotcrab/vis/ui/skin/x1/uiskin.json", "default"),
/** VisUI skin 2x upscaled */
X2("com/kotcrab/vis/ui/skin/x2/uiskin.json", "x2");
private final String classpath;
private final String sizesName;
SkinScale (String classpath, String sizesName) {
this.classpath = classpath;
this.sizesName = sizesName;
}
public FileHandle getSkinFile () {
return Gdx.files.classpath(classpath);
}
public String getSizesName () {
return sizesName;
}
}
/** Loads default VisUI skin with {@link SkinScale#X1}. */
public static void load () {
load(SkinScale.X1);
}
/** Loads default VisUI skin for given {@link SkinScale}. */
public static void load (SkinScale scale) {
VisUI.scale = scale;
load(scale.getSkinFile());
}
/** Loads skin from provided internal file path. Skin must be compatible with default VisUI skin. */
public static void load (String internalVisSkinPath) {
load(Gdx.files.internal(internalVisSkinPath));
}
/** Loads skin from provided file. Skin must be compatible with default VisUI skin. */
public static void load (FileHandle visSkinFile) {
checkBeforeLoad();
VisUI.skin = new Skin(visSkinFile);
}
/**
* Sets provided skin as default for every VisUI widget. Skin must be compatible with default VisUI skin. This
* can be used if you prefer to load skin manually for example by using {@link AssetManager}.
*/
public static void load (Skin skin) {
checkBeforeLoad();
VisUI.skin = skin;
}
private static void checkBeforeLoad () {
if (skin != null) throw new GdxRuntimeException("VisUI cannot be loaded twice");
if (!skipGdxVersionCheck && !Version.VERSION.equals(TARGET_GDX_VERSION)) {
Gdx.app.log("VisUI", "Warning, using invalid libGDX version.\n" +
"You are using libGDX " + Version.VERSION + " but you need " + TARGET_GDX_VERSION + ". This may cause " +
"unexpected problems and runtime exceptions.");
}
}
/** Unloads VisUI. */
public static void dispose () {
dispose(true);
}
/**
* Unloads VisUI.
* @param disposeSkin if true then internal skin instance will be disposed
*/
public static void dispose (boolean disposeSkin) {
if (skin != null) {
if (disposeSkin) skin.dispose();
skin = null;
}
}
public static Skin getSkin () {
if (skin == null) throw new IllegalStateException("VisUI is not loaded!");
return skin;
}
public static boolean isLoaded () {
return skin != null;
}
public static Sizes getSizes () {
if (scale == null)
return getSkin().get(Sizes.class);
else
return getSkin().get(scale.getSizesName(), Sizes.class);
}
/** @return int value from {@link Align} */
public static int getDefaultTitleAlign () {
return defaultTitleAlign;
}
/**
* Sets default title align user for VisWindow and VisDialog
* @param defaultTitleAlign int value from {@link Align}
*/
public static void setDefaultTitleAlign (int defaultTitleAlign) {
VisUI.defaultTitleAlign = defaultTitleAlign;
}
/**
* @param setSkipGdxVersionCheck if true VisUI won't check if provided libGDX version is compatible for current version of VisUI.
* If false, before loading VisUI, a libGDX version check will be performed, in case of version mismatch warning
* will be printed to console
* @see <a href="https://github.com/kotcrab/vis-ui#libgdx-compatibility">Version compatiblity table (online)</a>
*/
public static void setSkipGdxVersionCheck (boolean setSkipGdxVersionCheck) {
VisUI.skipGdxVersionCheck = setSkipGdxVersionCheck;
}
}
================================================
FILE: ui/src/main/java/com/kotcrab/vis/ui/building/CenteredTableBuilder.java
================================================
/*
* Copyright 2014-2017 See AUTHORS file.
*
* 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.
*/
package com.kotcrab.vis.ui.building;
import com.badlogic.gdx.scenes.scene2d.ui.Cell;
import com.badlogic.gdx.scenes.scene2d.ui.Table;
import com.badlogic.gdx.utils.IntArray;
import com.kotcrab.vis.ui.building.utilities.Padding;
/**
* Builds a table with the appended widgets, trying to keep them centered. Expands X axis for first and last
* widget in each row and overrides their alignments to right and left, keeping the widgets centered. Each
* table's row will have the same colspan. While useful, StandardTableBuilder might be more appropriate for
* complex tables.
* @author MJ
*/
public class CenteredTableBuilder extends TableBuilder {
public CenteredTableBuilder () {
super();
}
/** @param defaultWidgetPadding will be applied to all added widgets if no specific padding is given. */
public CenteredTableBuilder (final Padding defaultWidgetPadding) {
super(defaultWidgetPadding);
}
public CenteredTableBuilder (final int estimatedWidgetsAmount, final int estimatedRowsAmount) {
super(estimatedWidgetsAmount, estimatedRowsAmount);
}
/** @param defaultWidgetPadding will be applied to all added widgets if no specific padding is given. */
public CenteredTableBuilder (final int estimatedWidgetsAmount, final int estimatedRowsAmount,
final Padding defaultWidgetPadding) {
super(estimatedWidgetsAmount, estimatedRowsAmount, defaultWidgetPadding);
}
@Override
protected void fillTable (final Table table) {
final IntArray rowSizes = getRowSizes();
final int widgetsInRow = getLowestCommonMultiple(rowSizes);
for (int rowIndex = 0, widgetIndex = 0; rowIndex < rowSizes.size; rowIndex++) {
final int rowSize = rowSizes.get(rowIndex);
final int currentWidgetColspan = widgetsInRow / rowSize;
boolean isFirst = shouldExpand(rowSize);
for (final int totalWidgetsBeforeRowEnd = widgetIndex + rowSize; widgetIndex < totalWidgetsBeforeRowEnd; widgetIndex++) {
final Cell<?> cell =
getWidget(widgetIndex).buildCell(table, getDefaultWidgetPadding()).colspan(
currentWidgetColspan);
// Keeping widgets together - expanding X for first and last widget, setting alignments:
if (isFirst) {
isFirst = false;
cell.expandX().right();
} else if (isLast(widgetIndex, rowSize, totalWidgetsBeforeRowEnd)) {
cell.expandX().left();
}
}
table.row();
}
}
/**
* When table is trying to keep widgets together and widget is not alone in the row (in which case it
* should be centered instead), it has to expand on X and be aligned right.
* @param rowSize current row size.
* @return true if row size is bigger than 1.
*/
private boolean shouldExpand (final int rowSize) {
return rowSize != 1;
}
/**
* @return true if the widget is last. It is used to determine if the widget has to be left-aligned and
* expand on X axis.
*/
private boolean isLast (final int widgetIndex, final int rowSize, final int totalWidgetsInRow) {
return shouldExpand(rowSize) && widgetIndex == totalWidgetsInRow - 1;
}
}
================================================
FILE: ui/src/main/java/com/kotcrab/vis/ui/building/GridTableBuilder.java
================================================
/*
* Copyright 2014-2017 See AUTHORS file.
*
* 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.
*/
package com.kotcrab.vis.ui.building;
import com.badlogic.gdx.scenes.scene2d.Actor;
import com.badlogic.gdx.scenes.scene2d.ui.Table;
import com.kotcrab.vis.ui.building.utilities.CellWidget;
import com.kotcrab.vis.ui.building.utilities.Padding;
/**
* Ignores row() calls and builds table with all widgets put into rows of given size. Note that this builder
* will not center or in any way try to "repair" the last row if too few widgets are given to create a true
* grid.
* @author MJ
*/
public class GridTableBuilder extends TableBuilder {
private final int rowSize;
public GridTableBuilder (final int rowSize) {
super();
this.rowSize = rowSize;
}
/** @param defaultWidgetPadding will be applied to all added widgets if no specific padding is given. */
public GridTableBuilder (final Padding defaultWidgetPadding, final int rowSize) {
super(defaultWidgetPadding);
this.rowSize = rowSize;
}
public GridTableBuilder (final int rowSize, final int estimatedWidgetsAmount, final int estimatedRowsAmount) {
super(estimatedWidgetsAmount, estimatedRowsAmount);
this.rowSize = rowSize;
}
/** @param defaultWidgetPadding will be applied to all added widgets if no specific padding is given. */
public GridTableBuilder (final int rowSize, final int estimatedWidgetsAmount,
final int estimatedRowsAmount, final Padding defaultWidgetPadding) {
super(estimatedWidgetsAmount, estimatedRowsAmount, defaultWidgetPadding);
this.rowSize = rowSize;
}
@Override
protected void fillTable (final Table table) {
int widgetsCounter = 0;
for (final CellWidget<? extends Actor> widget : getWidgets()) {
widget.buildCell(table, getDefaultWidgetPadding());
if (++widgetsCounter == rowSize) {
widgetsCounter -= rowSize;
table.row();
}
}
}
}
================================================
FILE: ui/src/main/java/com/kotcrab/vis/ui/building/OneColumnTableBuilder.java
================================================
/*
* Copyright 2014-2017 See AUTHORS file.
*
* 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.
*/
package com.kotcrab.vis.ui.building;
import com.badlogic.gdx.scenes.scene2d.Actor;
import com.badlogic.gdx.scenes.scene2d.ui.Table;
import com.kotcrab.vis.ui.building.utilities.CellWidget;
import com.kotcrab.vis.ui.building.utilities.Padding;
/**
* Ignores row() calls and builds table with all widgets put into one column.
* @author MJ
*/
public class OneColumnTableBuilder extends TableBuilder {
public OneColumnTableBuilder () {
super();
}
/** @param defaultWidgetPadding will be applied to all added widgets if no specific padding is given. */
public OneColumnTableBuilder (final Padding defaultWidgetPadding) {
super(defaultWidgetPadding);
}
public OneColumnTableBuilder (final int estimatedWidgetsAmount, final int estimatedRowsAmount) {
super(estimatedWidgetsAmount, estimatedRowsAmount);
}
/** @param defaultWidgetPadding will be applied to all added widgets if no specific padding is given. */
public OneColumnTableBuilder (final int estimatedWidgetsAmount, final int estimatedRowsAmount,
final Padding defaultWidgetPadding) {
super(estimatedWidgetsAmount, estimatedRowsAmount, defaultWidgetPadding);
}
@Override
protected void fillTable (final Table table) {
for (final CellWidget<? extends Actor> widget : getWidgets()) {
widget.buildCell(table, getDefaultWidgetPadding()).row();
}
}
}
================================================
FILE: ui/src/main/java/com/kotcrab/vis/ui/building/OneRowTableBuilder.java
================================================
/*
* Copyright 2014-2017 See AUTHORS file.
*
* 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.
*/
package com.kotcrab.vis.ui.building;
import com.badlogic.gdx.scenes.scene2d.Actor;
import com.badlogic.gdx.scenes.scene2d.ui.Table;
import com.kotcrab.vis.ui.building.utilities.CellWidget;
import com.kotcrab.vis.ui.building.utilities.Padding;
/**
* Ignores row() calls and builds table with all widgets put into one row. Works like a StandardTableBuilder
* if row() is never used, but keeps the code clearer, as the name pretty much tells what you are trying to
* do.
* @author MJ
*/
public class OneRowTableBuilder extends TableBuilder {
public OneRowTableBuilder () {
super();
}
/** @param defaultWidgetPadding will be applied to all added widgets if no specific padding is given. */
public OneRowTableBuilder (final Padding defaultWidgetPadding) {
super(defaultWidgetPadding);
}
public OneRowTableBuilder (final int estimatedWidgetsAmount, final int estimatedRowsAmount) {
super(estimatedWidgetsAmount, estimatedRowsAmount);
}
/** @param defaultWidgetPadding will be applied to all added widgets if no specific padding is given. */
public OneRowTableBuilder (final int estimatedWidgetsAmount, final int estimatedRowsAmount,
final Padding defaultWidgetPadding) {
super(estimatedWidgetsAmount, estimatedRowsAmount, defaultWidgetPadding);
}
@Override
protected void fillTable (final Table table) {
for (final CellWidget<? extends Actor> widget : getWidgets()) {
widget.buildCell(table, getDefaultWidgetPadding());
}
}
}
================================================
FILE: ui/src/main/java/com/kotcrab/vis/ui/building/StandardTableBuilder.java
================================================
/*
* Copyright 2014-2017 See AUTHORS file.
*
* 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.
*/
package com.kotcrab.vis.ui.building;
import com.badlogic.gdx.scenes.scene2d.ui.Table;
import com.badlogic.gdx.utils.IntArray;
import com.kotcrab.vis.ui.building.utilities.Padding;
/**
* Builds a standard table with the appended widgets. Each table's row will have the same colspan. Honors all
* CellWidget settings and TableBuilder commands, making it the most flexible TableBuilder and the best one
* for complex, custom tables.
* @author MJ
*/
public class StandardTableBuilder extends TableBuilder {
public StandardTableBuilder () {
super();
}
/** @param defaultWidgetPadding will be applied to all added widgets if no specific padding is given. */
public StandardTableBuilder (final Padding defaultWidgetPadding) {
super(defaultWidgetPadding);
}
public StandardTableBuilder (final int estimatedWidgetsAmount, final int estimatedRowsAmount) {
super(estimatedWidgetsAmount, estimatedRowsAmount);
}
/** @param defaultWidgetPadding will be applied to all added widgets if no specific padding is given. */
public StandardTableBuilder (final int estimatedWidgetsAmount, final int estimatedRowsAmount,
final Padding defaultWidgetPadding) {
super(estimatedWidgetsAmount, estimatedRowsAmount, defaultWidgetPadding);
}
@Override
protected void fillTable (final Table table) {
final IntArray rowSizes = getRowSizes();
final int widgetsInRow = getLowestCommonMultiple(rowSizes);
for (int rowIndex = 0, widgetIndex = 0; rowIndex < rowSizes.size; rowIndex++) {
final int rowSize = rowSizes.get(rowIndex);
final int currentWidgetColspan = widgetsInRow / rowSize;
for (final int totalWidgets = widgetIndex + rowSize; widgetIndex < totalWidgets; widgetIndex++) {
getWidget(widgetIndex).buildCell(table, getDefaultWidgetPadding()).colspan(
currentWidgetColspan);
}
table.row();
}
}
}
================================================
FILE: ui/src/main/java/com/kotcrab/vis/ui/building/TableBuilder.java
================================================
/*
* Copyright 2014-2017 See AUTHORS file.
*
* 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.
*/
package com.kotcrab.vis.ui.building;
import com.badlogic.gdx.scenes.scene2d.Actor;
import com.badlogic.gdx.scenes.scene2d.ui.Table;
import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.IntArray;
import com.kotcrab.vis.ui.building.utilities.CellWidget;
import com.kotcrab.vis.ui.building.utilities.CellWidget.CellWidgetBuilder;
import com.kotcrab.vis.ui.building.utilities.Padding;
import com.kotcrab.vis.ui.building.utilities.layouts.ActorLayout;
import com.kotcrab.vis.ui.building.utilities.layouts.TableLayout;
/**
* Allows to easily build Scene2D tables, without having to worry about different colspans of table's rows.
* Table built using this helper class will have the same amount of cells in each row. CellWidget class allows
* to store cell's settings, and thanks to that - even the most complex tables can be built using one of the
* TableBuilders.
* @author MJ
*/
public abstract class TableBuilder {
private final static int DEFAULT_WIDGETS_AMOUNT = 10, DEFAULT_ROWS_AMOUNT = 3;
private final Array<CellWidget<? extends Actor>> widgets;
private final IntArray rowSizes;
// Control variables.
private int currentRowSize;
// Settings.
private final Padding widgetPadding;
private Padding tablePadding;
public TableBuilder () {
this(DEFAULT_WIDGETS_AMOUNT, DEFAULT_ROWS_AMOUNT, Padding.PAD_0);
}
/** @param defaultWidgetPadding will be applied to all added widgets if no specific padding is given. */
public TableBuilder (final Padding defaultWidgetPadding) {
this(DEFAULT_WIDGETS_AMOUNT, DEFAULT_ROWS_AMOUNT, defaultWidgetPadding);
}
public TableBuilder (final int estimatedWidgetsAmount, final int estimatedRowsAmount) {
this(estimatedWidgetsAmount, estimatedRowsAmount, Padding.PAD_0);
}
/** @param defaultWidgetPadding will be applied to all added widgets if no specific padding is given. */
public TableBuilder (final int estimatedWidgetsAmount, final int estimatedRowsAmount,
final Padding defaultWidgetPadding) {
widgets = new Array<CellWidget<? extends Actor>>(estimatedWidgetsAmount);
rowSizes = new IntArray(estimatedRowsAmount);
widgetPadding = defaultWidgetPadding;
}
/** @return the greatest common denominator of two values. */
public static int getGreatestCommonDenominator (final int valueA, final int valueB) {
return valueB == 0 ? valueA : getGreatestCommonDenominator(valueB, valueA % valueB);
}
/** @return lowest common multiple for the given two values. */
public static int getLowestCommonMultiple (final int valueA, final int valueB) {
return valueA * (valueB / getGreatestCommonDenominator(valueA, valueB));
}
/**
* @param values cannot be empty or null.
* @return lowest common multiple for the given values.
*/
public static int getLowestCommonMultiple (final IntArray values) {
int lowestCommonMultiple = values.first();
for (int index = 1; index < values.size; index++) {
lowestCommonMultiple = getLowestCommonMultiple(lowestCommonMultiple, values.get(index));
}
return lowestCommonMultiple;
}
/**
* @param tablePadding will define the amount of pixels separating widgets from the table's borders. Can be
* null - nulled padding will be ignored.
*/
public TableBuilder setTablePadding (final Padding tablePadding) {
this.tablePadding = tablePadding;
return this;
}
/**
* @return default widgets' padding. Should be applied to cells that have not specified custom padding
* setting.
*/
protected Padding getDefaultWidgetPadding () {
return widgetPadding;
}
/** @param widget will be added to the table with current default table's padding. */
public TableBuilder append (final Actor widget) {
return append(CellWidget.of(widget).padding(widgetPadding).wrap());
}
/** @param widget will be added to the table with custom provided data. */
public TableBuilder append (final CellWidget<? extends Actor> widget) {
widgets.add(widget);
currentRowSize++;
return this;
}
/** @param widgets will be converted into one cell, with widgets appended into one row. */
public TableBuilder append (final Actor... widgets) {
return append(TableLayout.HORIZONTAL, widgets);
}
/**
* @param widgets will be converted into one cell, with widgets appended into one row. Note that these
* CellWidgets' settings are local to the merging widget and additional data might have to be
* passed. See methods that consume CellWidgetBuilder.
*/
public TableBuilder append (final CellWidget<?>... widgets) {
return append(TableLayout.HORIZONTAL, widgets);
}
/**
* @param layout will determine how widgets are converted into one cell. See TableLayout for default
* implementations.
* @param widgets will be converted into one cell using passed layout.
*/
public TableBuilder append (final ActorLayout layout, final Actor... widgets) {
return append(layout.convertToActor(widgets));
}
/**
* @param layout will determine how widgets are converted into one cell. See TableLayout for default
* implementations.
* @param widgets will be converted into one cell using passed layout. Note that some (or all) CellWidget
* settings might be ignored, depending on the implementation of ActorLayout. Default layouts
* use TableBuilders, so they do not ignore (most of) passed data. Also, these CellWidgets'
* settings are local to the merging widget and additional data might have to be passed. See
* methods that consume CellWidgetBuilder.
*/
public TableBuilder append (final ActorLayout layout, final CellWidget<?>... widgets) {
return append(layout.convertToActor(widgets));
}
/**
* @param mergedCellSettings its data will be applied to the cell that will contain passed widgets merged
* into one actor.
* @param widgets will be converted into one cell, with widgets appended into one row.
*/
public TableBuilder append (final CellWidgetBuilder<Actor> mergedCellSettings, final Actor... widgets) {
return append(TableLayout.HORIZONTAL, mergedCellSettings, widgets);
}
/**
* @param mergedCellSettings its data will be applied to the cell that will contain passed widgets merged
* into one actor.
* @param widgets will be converted into one cell, with widgets appended into one row.
*/
public TableBuilder append (final CellWidgetBuilder<Actor> mergedCellSettings,
final CellWidget<?>... widgets) {
return append(TableLayout.HORIZONTAL, mergedCellSettings, widgets);
}
/**
* @param layout will determine how widgets are converted into one cell. See TableLayout for default
* implementations.
* @param mergedCellSettings its data will be applied to the cell that will contain passed widgets merged
* into one actor.
* @param widgets will be converted into one cell using passed layout.
*/
public TableBuilder append (final ActorLayout layout, final CellWidgetBuilder<Actor> mergedCellSettings,
final Actor... widgets) {
return append(mergedCellSettings.widget(layout.convertToActor(widgets)).wrap());
}
/**
* @param layout will determine how widgets are converted into one cell. See TableLayout for default
* implementations.
* @param mergedCellSettings its data will be applied to the cell that will contain passed widgets merged
* into one actor.
* @param widgets will be converted into one cell using passed layout. Note that some (or all) CellWidget
* settings might be ignored, depending on the implementation of ActorLayout. Default layouts
* use TableBuilders, so they do not ignore (most of) passed data.
*/
public TableBuilder append (final ActorLayout layout, final CellWidgetBuilder<Actor> mergedCellSettings,
final CellWidget<?>... widgets) {
return append(mergedCellSettings.widget(layout.convertToActor(widgets)).wrap());
}
/**
* Appends an empty cell to the table. Equivalent to passing null to append methods or appending
* CellWidget.EMPTY/CellWidget.empty().
*/
public TableBuilder append () {
return append(CellWidget.EMPTY);
}
/**
* Changes the current row, starts another. If no widgets were appended since the last call, row() will be
* ignored.
*/
public TableBuilder row () {
if (currentRowSize != 0) {
rowSizes.add(currentRowSize);
currentRowSize = 0;
}
return this;
}
/** @return a new table with the appended widgets, with widgets added depending on the chosen builder type. */
public Table build () {
return build(new Table());
}
/**
* @return passed table with the appended widgets, with widgets added depending on the chosen builder type.
* Note that if the passed table is not empty, builder implementations do not have to ensure that
* the widgets are actually correctly appended.
*/
public <T extends Table> T build (final T table) {
prepareNewTable(table);
if (widgets.size == 0) {
// Table is empty; avoiding unnecessary operations.
return table;
} else {
fillTable(table);
return prepareBuiltTable(table);
}
}
private Table prepareNewTable (final Table table) {
validateRowSize();
if (tablePadding != null) {
return tablePadding.applyPadding(table);
}
return table;
}
/**
* Should fill the given table with the widgets appended to the builder. Widgets can be accessed with
* getWidget(index) and getWidgets() methods. Row sizes are already validated. There is at least one
* widget.
* @param table is a properly created Scene2D table. Will be packed and return after filling.
*/
protected abstract void fillTable (Table table);
private <T extends Table> T prepareBuiltTable (final T table) {
table.pack();
return table;
}
/** Will append a new row if any new widgets were passed to make sure that all widgets are honored. */
private void validateRowSize () {
if (currentRowSize != 0) {
row();
}
}
/** @return array with sizes of each row. */
protected IntArray getRowSizes () {
return rowSizes;
}
/** @return CellWidget with the given index in the widgets array. */
protected CellWidget<? extends Actor> getWidget (final int index) {
return widgets.get(index);
}
/** @return all CellWidgets appended to the builder. */
protected Array<CellWidget<? extends Actor>> getWidgets () {
return widgets;
}
}
================================================
FILE: ui/src/main/java/com/kotcrab/vis/ui/building/utilities/Alignment.java
================================================
/*
* Copyright 2014-2017 See AUTHORS file.
*
* 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.
*/
package com.kotcrab.vis.ui.building.utilities;
import com.badlogic.gdx.scenes.scene2d.ui.Cell;
import com.badlogic.gdx.utils.Align;
/**
* libGDX alignments are simple integers and it's rather easy to make a mistake while using the align methods.
* This enums wraps all default alignments, allowing to validate if the alignment value is actually correct.
* @author MJ
*/
public enum Alignment {
CENTER(Align.center),
TOP(Align.top),
BOTTOM(Align.bottom),
LEFT(Align.left),
RIGHT(Align.right),
TOP_LEFT(Align.topLeft),
TOP_RIGHT(Align.topRight),
BOTTOM_LEFT(Align.bottomLeft),
BOTTOM_RIGHT(Align.bottomRight);
private final int alignment;
private Alignment (final int alignment) {
this.alignment = alignment;
}
public int getAlignment () {
return alignment;
}
public void apply (final Cell<?> cell) {
cell.align(alignment);
}
/** @return true for TOP, TOP_LEFT and TOP_RIGHT. */
public boolean isAlignedWithTop () {
return (alignment & Align.top) != 0;
}
/** @return true for BOTTOM, BOTTOM_LEFT and BOTTOM_RIGHT. */
public boolean isAlignedWithBottom () {
return (alignment & Align.bottom) != 0;
}
/** @return true for LEFT, BOTTOM_LEFT and TOP_LEFT. */
public boolean isAlignedWithLeft () {
return (alignment & Align.left) != 0;
}
/** @return true for RIGHT, BOTTOM_RIGHT and TOP_RIGHT. */
public boolean isAlignedWithRight () {
return (alignment & Align.right) != 0;
}
/** @return true for CENTER. */
public boolean isCentered () {
return alignment == Align.center;
}
/**
* @param index ordinal of an enum constant.
* @return optional value of enum constant. Will be null for invalid index.
*/
public static Alignment getByIndex (final int index) {
return isIndexValid(index) ? values()[index] : null;
}
/**
* @param index a valid ordinal of an enum constant.
* @return enum constant with the selected index.
* @throws ArrayIndexOutOfBoundsException for invalid index.
*/
public static Alignment getByValidIndex (final int index) {
return values()[index];
}
/** @return true if the index is connected with an enum constant. */
public static boolean isIndexValid (final int index) {
return index >= 0 && index < values().length;
}
/** @return true if the index is connected with the last enum constant. */
public static boolean isIndexLast (final int index) {
return index == values().length - 1;
}
}
================================================
FILE: ui/src/main/java/com/kotcrab/vis/ui/building/utilities/CellWidget.java
================================================
/*
* Copyright 2014-2017 See AUTHORS file.
*
* 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.
*/
package com.kotcrab.vis.ui.building.utilities;
import com.badlogic.gdx.scenes.scene2d.Actor;
import com.badlogic.gdx.scenes.scene2d.ui.Cell;
import com.badlogic.gdx.scenes.scene2d.ui.Table;
/**
* Wraps a Scene2D widget, allowing to store cell data for delayed Table creation. Note that some filling data
* (like expanding on X axis or alignment) might be overridden by some TableBuilders (like the
* CenteredTableBuilder, which tries to keep all widgets centered by setting expansion and alignment of some
* cells).
* @author MJ
*/
public class CellWidget<Widget extends Actor> {
private final static int IGNORED_SIZE = 0;
/** Contains nulled actor. */
public final static CellWidget<?> EMPTY = empty();
private final Widget widget;
private final Padding padding;
private final boolean expandX, expandY, fillX, fillY, useSpacing;
private final Alignment alignment;
private final int width, height, minWidth, minHeight;
// Cast is safe - builder will have the same type as the cell widget.
@SuppressWarnings("unchecked")
private CellWidget (final CellWidgetBuilder<Widget> cellWidgetBuilder) {
widget = (Widget) cellWidgetBuilder.widget;
padding = cellWidgetBuilder.padding;
expandX = cellWidgetBuilder.expandX;
expandY = cellWidgetBuilder.expandY;
fillX = cellWidgetBuilder.fillX;
fillY = cellWidgetBuilder.fillY;
useSpacing = cellWidgetBuilder.useSpacing;
alignment = cellWidgetBuilder.alignment;
width = cellWidgetBuilder.width;
height = cellWidgetBuilder.height;
minWidth = cellWidgetBuilder.minWidth;
minHeight = cellWidgetBuilder.minHeight;
}
/**
* @param widget will be wrapped with CellWidget.
* @return a new CellWidgetBuilder, allowing to specify the cell's settings.
*/
public static <Widget extends Actor> CellWidgetBuilder<Widget> of (final Widget widget) {
return new CellWidgetBuilder<Widget>(widget);
}
/**
* @param widget will be used to set initial data of builder, allowing to "modify" a prepared CellWidget.
* @return a new CellWidgetBuilder, allowing to respecify the cell's settings.
*/
public static <Widget extends Actor> CellWidgetBuilder<Widget> using (final CellWidget<Widget> widget) {
return new CellWidgetBuilder<Widget>(widget);
}
/**
* @param widget will be immediately wrapped into a CellWidget with no specific settings.
* @return wrapped widget.
*/
public static <Widget extends Actor> CellWidget<Widget> wrap (final Widget widget) {
return of(widget).wrap();
}
/**
* @param widgets will be converted to CellWidgets without any specific settings.
* @return wrapped widgets.
*/
public static CellWidget<?>[] wrap (final Actor... widgets) {
final CellWidget<?>[] wrappedWidgets = new CellWidget<?>[widgets.length];
for (int index = 0; index < widgets.length; index++) {
wrappedWidgets[index] = CellWidget.of(widgets[index]).wrap();
}
return wrappedWidgets;
}
/** @return a new empty, non-null CellWidget with no actor. */
public static CellWidget<?> empty () {
return builder().wrap();
}
/** @return an empty builder with no widget that can be used as data container. */
public static CellWidgetBuilder<Actor> builder () {
return of(null);
}
/** @return widget wrapped with the CellWidget object. */
public Widget getWidget () {
return widget;
}
/**
* @param table will contain a cell with the object's widget with specified cell settings.
* @return a reference to the built cell.
*/
public Cell<?> buildCell (final Table table) {
return buildCell(table, null);
}
/**
* @param table will contain a cell with the object's widget with specified cell settings.
* @param defaultWidgetPadding will be applied to the cell if padding was not specified. Can be null.
* @return a reference to the built cell.
*/
public Cell<?> buildCell (final Table table, final Padding defaultWidgetPadding) {
final Cell<?> cell = table.add(widget);
applyPadding(cell, defaultWidgetPadding);
applySizeData(cell);
applyFillingData(cell);
return cell;
}
private void applyPadding (final Cell<?> cell, final Padding defaultWidgetPadding) {
final Padding appliedPadding = Nullables.getOrElse(padding, defaultWidgetPadding);
if (appliedPadding != null) {
if (useSpacing) {
appliedPadding.applySpacing(cell);
} else {
appliedPadding.applyPadding(cell);
}
}
}
private void applySizeData (final Cell<?> cell) {
if (width > IGNORED_SIZE) {
cell.width(width);
}
if (height > IGNORED_SIZE) {
cell.height(height);
}
if (minWidth > IGNORED_SIZE) {
cell.minWidth(minWidth);
}
if (minHeight > IGNORED_SIZE) {
cell.minHeight(minHeight);
}
}
private void applyFillingData (final Cell<?> cell) {
if (alignment != null) {
alignment.apply(cell);
}
cell.expand(expandX, expandY);
cell.fill(fillX, fillY);
}
/**
* Allows to set the CellWidget's data. All setter methods return this for chaining.
* @author MJ
*/
public static class CellWidgetBuilder<Widget extends Actor> {
private Actor widget;
private Padding padding;
private boolean expandX, expandY, fillX, fillY, useSpacing;
private Alignment alignment;
private int width = IGNORED_SIZE, height = IGNORED_SIZE, minWidth = IGNORED_SIZE,
minHeight = IGNORED_SIZE;
private CellWidgetBuilder (final Actor widget) {
this.widget = widget;
}
private CellWidgetBuilder (final CellWidget<Widget> widget) {
this.widget = widget.widget;
padding = widget.padding;
expandX = widget.expandX;
expandY = widget.expandY;
fillX = widget.fillX;
fillY = widget.fillY;
useSpacing = widget.useSpacing;
alignment = widget.alignment;
width = widget.width;
height = widget.height;
minWidth = widget.minWidth;
minHeight = widget.minHeight;
}
/** @return widget passed to factory method wrapped with CellWidget with the applied data. */
public CellWidget<Widget> wrap () {
return new CellWidget<Widget>(this);
}
/** @param widget will replace the original widget wrapped by the builder. */
public CellWidgetBuilder<Widget> widget (final Widget widget) {
this.widget = widget;
return this;
}
/** @param padding can be also applied as spacing after calling useSpacing(). */
public CellWidgetBuilder<Widget> padding (final Padding padding) {
this.padding = padding;
return this;
}
/**
* Forces the given padding object to work as spacing data. Spacing will be applied to the cell
* instead of padding.
*/
public CellWidgetBuilder<Widget> useSpacing () {
useSpacing = true;
return this;
}
/** Widget will expand on X axis. */
public CellWidgetBuilder<Widget> expandX () {
expandX = true;
return this;
}
/** Widget will expand on Y axis. */
public CellWidgetBuilder<Widget> expandY () {
expandY = true;
return this;
}
/** Widget will fill X axis. Often used with expansion or fixed width setting. */
public CellWidgetBuilder<Widget> fillX () {
fillX = true;
return this;
}
/** Widget will fill Y axis. Often used with expansion or fixed width setting. */
public CellWidgetBuilder<Widget> fillY () {
fillY = true;
return this;
}
/**
* @param alignment will be used to align the widget in the cell area it has. May need expansion to
* take any effect.
*/
public CellWidgetBuilder<Widget> align (final Alignment alignment) {
this.alignment = alignment;
return this;
}
/** @param width set as min, preffered and max width. Has to be higher than 0 or it will be ignored. */
public CellWidgetBuilder<Widget> width (final int width) {
this.width = width;
return this;
}
/** @param height set as min, preffered and max height. Has to be higher than 0 or it will be ignored. */
public CellWidgetBuilder<Widget> height (final int height) {
this.height = height;
return this;
}
/**
* @param minWidth forces the minimum width of the widget. Note that it overrides width() setting for
* the min width. Has to be higher than 0 or it will be ignored.
*/
public CellWidgetBuilder<Widget> minWidth (final int minWidth) {
this.minWidth = minWidth;
return this;
}
/**
* @param minHeight forces the minimum height of the widget. Note that it overrides height() setting
* for the min height. Has to be higher than 0 or it will be ignored.
*/
public CellWidgetBuilder<Widget> minHeight (final int minHeight) {
this.minHeight = minHeight;
return this;
}
}
}
================================================
FILE: ui/src/main/java/com/kotcrab/vis/ui/building/utilities/Nullables.java
================================================
/*
* Copyright 2014-2017 See AUTHORS file.
*
* 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.
*/
package com.kotcrab.vis.ui.building.utilities;
/**
* Provides static utilities for nullable objects to avoid NullPointerExceptions. Java 6 compatible, although
* some methods might be quite useful for lambdas.
* @author MJ
*/
public class Nullables {
private Nullables () {
}
/** A simple null-check. */
public static boolean isNull (final Object nullable) {
return nullable == null;
}
/** A simple not-null-check. */
public static boolean isNotNull (final Object nullable) {
return nullable != null;
}
/**
* @param nullable probable null.
* @param alternative will be return if nullable is null.
*/
public static <Type> Type getOrElse (final Type nullable, final Type alternative) {
return nullable == null ? alternative : nullable;
}
/**
* @param nullable probable null.
* @param command will be executed only if nullable object exists.
*/
public static void executeIfNotNull (final Object nullable, final Runnable command) {
if (nullable != null) {
command.run();
}
}
/** @return true if objects are equal (using equals method) or if both are null. */
public static boolean areEqual (final Object first, final Object second) {
return first == second || first != null && first.equals(second);
}
/**
* @param nullables nullable objects.
* @return true if any of the objects is null.
*/
public static boolean isAnyNull (final Object... nullables) {
for (final Object object : nullables) {
if (object == null) {
return true;
}
}
return false;
}
/**
* @param nullables nullable objects.
* @return true if all passed objects are null.
*/
public static boolean areAllNull (final Object... nullables) {
for (final Object object : nullables) {
if (object != null) {
return false;
}
}
return true;
}
/**
* @param nullables nullable objects.
* @return true if any of the objects is not null.
*/
public static boolean isAnyNotNull (final Object... nullables) {
for (final Object object : nullables) {
if (object != null) {
return true;
}
}
return false;
}
/**
* @param nullables nullable objects.
* @return true if all passed objects are not null.
*/
public static boolean areAllNotNull (final Object... nullables) {
for (final Object object : nullables) {
if (object == null) {
return false;
}
}
return true;
}
}
================================================
FILE: ui/src/main/java/com/kotcrab/vis/ui/building/utilities/Padding.java
================================================
/*
* Copyright 2014-2017 See AUTHORS file.
*
* 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.
*/
package com.kotcrab.vis.ui.building.utilities;
import com.badlogic.gdx.scenes.scene2d.ui.Cell;
import com.badlogic.gdx.scenes.scene2d.ui.Table;
/**
* A simple helper class that holds informations about padding on each side of an object. Static methods can
* be used to quickly set padding or spacing of a cell or a table using this class' object.
* <p>
* When padding is set for a table, its cells will be separated from its borders by the given value. When
* padding is set for a window, additionally to the table's padding effect, top padding will be a draggable
* area, allowing to move the window.
* <p>
* When padding is set for a cell, it will be separated from other cells and table's border by the given
* value. When spacing is set for a cell, it will be separated by at least as many pixels from other cells as
* specified. If spacing or padding with the same values is used on every cell in a table, padding will
* provide twice as big distances between cells, since spacings can overlap.
* @author MJ
*/
public class Padding {
/** Common padding sizes. */
public static final Padding PAD_0 = of(0f), PAD_2 = of(2f), PAD_4 = of(4f), PAD_8 = of(8f);
private final float top, left, bottom, right;
/** @param padding will be set as padding for all directions. */
public Padding (final float padding) {
this(padding, padding, padding, padding);
}
/**
* @param horizontal will be set as left and right padding.
* @param vertical will be set as top and bottom padding.
*/
public Padding (final float horizontal, final float vertical) {
this(vertical, horizontal, vertical, horizontal);
}
/**
* @param top top padding value.
* @param left left padding value.
* @param bottom bottom padding value.
* @param right right padding value.
*/
public Padding (final float top, final float left, final float bottom, final float right) {
this.top = top;
this.left = left;
this.bottom = bottom;
this.right = right;
}
/** @param padding will be set as padding for all directions. */
public static Padding of (final float padding) {
return new Padding(padding, padding, padding, padding);
}
/**
* @param horizontal will be set as left and right padding.
* @param vertical will be set as top and bottom padding.
*/
public static Padding of (final float horizontal, final float vertical) {
return new Padding(vertical, horizontal, vertical, horizontal);
}
/**
* @param top top padding value.
* @param left left padding value.
* @param bottom bottom padding value.
* @param right right padding value.
*/
public static Padding of (final float top, final float left, final float bottom, final float right) {
return new Padding(top, left, bottom, right);
}
/** @return top padding value. */
public float getTop () {
return top;
}
/** @return left padding value. */
public float getLeft () {
return left;
}
/** @return bottom padding value. */
public float getBottom () {
return bottom;
}
/** @return right padding value. */
public float getRight () {
return right;
}
/**
* @param padding will be added to the given padding.
* @return new Padding object with summed pad values.
*/
public Padding add (final Padding padding) {
return new Padding(top + padding.getTop(), left + padding.getLeft(), bottom + padding.getBottom(),
right + padding.getRight());
}
/**
* @param padding will be subtracted from the given padding.
* @return new Padding object with subtracted pad values.
*/
public Padding subtract (final Padding padding) {
return new Padding(top - padding.getTop(), left - padding.getLeft(), bottom - padding.getBottom(),
right - padding.getRight());
}
/** @return new Padding object with reversed pad values. */
public Padding reverse () {
return new Padding(-top, -left, -bottom, -right);
}
/**
* Allows to set Table's padding with the Padding object, which has be done externally, as it's not part
* of the standard libGDX API.
* @param table will have the padding set according to the this object's data.
* @return the given table for chaining.
*/
public Table applyPadding (final Table table) {
table.pad(top, left, bottom, right);
return table;
}
/**
* Allows to set Cell's padding with the Padding object, which has be done externally, as it's not part of
* the standard libGDX API.
* @param cell will have the padding set according to the this object's data.
* @return the given cell for chaining.
*/
public Cell<?> applyPadding (final Cell<?> cell) {
cell.pad(top, left, bottom, right);
return cell;
}
/**
* Allows to set Cell's spacing with the Padding object, which has be done externally, as it's not part of
* the standard libGDX API. Padding holds 4 floats for each direction, so it's compatible with both
* padding and spacing settings without any additional changes.
* @param cell will have the padding set according to the this object's data.
* @return the given cell for chaining.
*/
public Cell<?> applySpacing (final Cell<?> cell) {
cell.space(top, left, bottom, right);
return cell;
}
// Padding utilities:
/**
* Allows to set Table's padding with the Padding object, which has be done externally, as it's not part
* of the standard libGDX API.
* @param padding contains data of padding sizes.
* @param table will have the padding set according to the given data.
* @return the given table for chaining.
*/
public static Table setPadding (final Padding padding, final Table table) {
table.pad(padding.getTop(), padding.getLeft(), padding.getBottom(), padding.getRight());
return table;
}
/**
* Allows to set Cell's padding with the Padding object, which has be done externally, as it's not part of
* the standard libGDX API.
* @param padding contains data of padding sizes.
* @param cell will have the padding set according to the given data.
* @return the given cell for chaining.
*/
public static Cell<?> setPadding (final Padding padding, final Cell<?> cell) {
return cell.pad(padding.getTop(), padding.getLeft(), padding.getBottom(), padding.getRight());
}
/**
* Allows to set Cell's spacing with the Padding object, which has be done externally, as it's not part of
* the standard libGDX API. Padding holds 4 floats for each direction, so it's compatible with both
* padding and spacing settings without any additional changes.
* @param spacing contains data of spacing sizes.
* @param cell will have the padding set according to the given data.
* @return the given cell for chaining.
*/
public static Cell<?> setSpacing (final Padding spacing, final Cell<?> cell) {
return cell.space(spacing.getTop(), spacing.getLeft(), spacing.getBottom(), spacing.getRight());
}
}
================================================
FILE: ui/src/main/java/com/kotcrab/vis/ui/building/utilities/layouts/ActorLayout.java
================================================
/*
* Copyright 2014-2017 See AUTHORS file.
*
* 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.
*/
package com.kotcrab.vis.ui.building.utilities.layouts;
import com.badlogic.gdx.scenes.scene2d.Actor;
import com.kotcrab.vis.ui.building.utilities.CellWidget;
/**
* An interface that allows to convert multiple widgets into one, providing utilities for complex tables
* building. For sample implementations, see TableLayout class.
* @author MJ
*/
public interface ActorLayout {
/** @return passed actors merged into one widget. */
public Actor convertToActor (Actor... widgets);
/** @return passed wrapped actors merged into one widget. */
public Actor convertToActor (CellWidget<?>... widgets);
}
================================================
FILE: ui/src/main/java/com/kotcrab/vis/ui/building/utilities/layouts/GridTableLayout.java
================================================
/*
* Copyright 2014-2017 See AUTHORS file.
*
* 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.
*/
package com.kotcrab.vis.ui.building.utilities.layouts;
import com.badlogic.gdx.scenes.scene2d.Actor;
import com.kotcrab.vis.ui.building.GridTableBuilder;
import com.kotcrab.vis.ui.building.utilities.CellWidget;
/**
* Additional TableLayout with customizable variables. Converts passed widgets into a table using
* GridTableBuilder.
* @author MJ
*/
public class GridTableLayout implements ActorLayout {
private final int rowSize;
public GridTableLayout (final int rowSize) {
this.rowSize = rowSize;
}
/**
* Default factory method.
* @return new GridTableLayout, building grid with the passed row size.
*/
public static GridTableLayout withRowSize (final int rowSize) {
return new GridTableLayout(rowSize);
}
@Override
public Actor convertToActor (final Actor... widgets) {
return convertToActor(CellWidget.wrap(widgets));
}
@Override
public Actor convertToActor (final CellWidget<?>... widgets) {
return TableLayout.convertToTable(new GridTableBuilder(rowSize), widgets);
}
}
================================================
FILE: ui/src/main/java/com/kotcrab/vis/ui/building/utilities/layouts/TableLayout.java
================================================
/*
* Copyright 2014-2017 See AUTHORS file.
*
* 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.
*/
package com.kotcrab.vis.ui.building.utilities.layouts;
import com.badlogic.gdx.scenes.scene2d.Actor;
import com.kotcrab.vis.ui.building.OneColumnTableBuilder;
import com.kotcrab.vis.ui.building.OneRowTableBuilder;
import com.kotcrab.vis.ui.building.TableBuilder;
import com.kotcrab.vis.ui.building.utilities.CellWidget;
/**
* Default ActorLayout implementations, using table builders that don't require row() calls to convert
* multiple actors into one cell.
* <p>
* Beside VERTICAL and HORIZONTAL, there's also grid layout available. Since it's customizable, an instance of
* grid table layout must be manually initiated using grid() method.
* @author MJ
*/
public enum TableLayout implements ActorLayout {
/** Converts passed widgets into a single column. */
VERTICAL {
@Override
public Actor convertToActor (final CellWidget<?>... widgets) {
return convertToTable(new OneColumnTableBuilder(), widgets);
}
},
/** Converts passed widgets into a single row. */
HORIZONTAL {
@Override
public Actor convertToActor (final CellWidget<?>... widgets) {
return convertToTable(new OneRowTableBuilder(), widgets);
}
};
@Override
public Actor convertToActor (final Actor... widgets) {
return convertToActor(CellWidget.wrap(widgets));
}
/**
* Utility method. Appends all widgets into the passed builder and creates a table with no additional
* settings.
*/
public static Actor convertToTable (final TableBuilder usingBuilder, final CellWidget<?>... widgets) {
for (final CellWidget<?> widget : widgets) {
usingBuilder.append(widget);
}
return usingBuilder.build();
}
/** @return a new instance of GridTableLayout that creates tables as grids with the specified row size. */
public static GridTableLayout grid (final int rowSize) {
return GridTableLayout.withRowSize(rowSize);
}
}
================================================
FILE: ui/src/main/java/com/kotcrab/vis/ui/i18n/BundleText.java
================================================
/*
* Copyright 2014-2017 See AUTHORS file.
*
* 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.
*/
package com.kotcrab.vis.ui.i18n;
/**
* A simple interface for one text line of the bundle file.
* @author MJ
*/
public interface BundleText {
/** @return name of the bundle text in the bundle file. */
String getName ();
/** @return text's unformatted message as it appears in the bundle. */
String get ();
/** @return text's formatted message without any arguments. */
String format ();
/** @return text's formatted message with the passes arguments filling bundle placeholders. */
String format (Object... arguments);
}
================================================
FILE: ui/src/main/java/com/kotcrab/vis/ui/layout/DragPane.java
================================================
/*
* Copyright 2014-2017 See AUTHORS file.
*
* 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.
*/
package com.kotcrab.vis.ui.layout;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.scenes.scene2d.*;
import com.badlogic.gdx.scenes.scene2d.ui.Container;
import com.badlogic.gdx.scenes.scene2d.ui.HorizontalGroup;
import com.badlogic.gdx.scenes.scene2d.ui.VerticalGroup;
import com.badlogic.gdx.scenes.scene2d.ui.WidgetGroup;
import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.SnapshotArray;
import com.kotcrab.vis.ui.widget.Draggable;
import com.kotcrab.vis.ui.widget.Draggable.DragListener;
/**
* Stores actors in an internally managed {@link WidgetGroup}. Allows actors with specialized {@link Draggable} listener attached
* to be dropped and added into its group's content.
* <p>
* Note that unless {@link Draggable} with appropriate listener (preferably {@link DefaultDragListener}) is attached to dragged
* actors, this widget will act like a regular group with no extra functionalities. It's usually a good idea to use
* {@link #setDraggable(Draggable)} method, as it will attach the listener to all its children, making them all draggable. If you
* want to filter widgets accepted by this pane, use {@link #setListener(DragPaneListener)} method.
* @author MJ
* @see #setDraggable(Draggable)
* @see #setListener(DragPaneListener)
* @since 0.9.3
*/
public class DragPane extends Container<WidgetGroup> {
private Draggable draggable;
private DragPaneListener listener;
/** Creates a new horizontal drag pane. */
public DragPane () {
this(false);
}
/** @param vertical if true, actors will be stored vertically, if false - horizontally. */
public DragPane (final boolean vertical) {
this(vertical ? new VerticalGroup() : new HorizontalGroup());
}
/**
* @param group must append its actors through standard {@link WidgetGroup#addActor(Actor)} method. Must support
* {@link WidgetGroup#addActorAfter(Actor, Actor)} and {@link WidgetGroup#addActorBefore(Actor, Actor)} methods. Note
* that {@link com.badlogic.gdx.scenes.scene2d.ui.Table} does not meet these requirements.
* @see VerticalGroup
* @see HorizontalGroup
* @see GridGroup
*/
public DragPane (final WidgetGroup group) {
if (group == null) {
throw new IllegalArgumentException("Group cannot be null.");
}
super.setActor(group);
setTouchable(Touchable.enabled);
}
/**
* @return true if children are displayed vertically in a {@link VerticalGroup}.
* @see #getVerticalGroup()
*/
public boolean isVertical () {
return getActor() instanceof VerticalGroup;
}
/**
* @return true if children are displayed horizontally in a {@link HorizontalGroup}.
* @see #getHorizontalGroup()
*/
public boolean isHorizontal () {
return getActor() instanceof HorizontalGroup;
}
/**
* @return true if children are displayed as a grid in a {@link GridGroup}.
* @see #getGridGroup()
*/
public boolean isGrid () {
return getActor() instanceof GridGroup;
}
/**
* @return true if children are displayed with a {@link VerticalFlowGroup}.
* @see #getVerticalFlowGroup()
*/
public boolean isVerticalFlow () {
return getActor() instanceof VerticalFlowGroup;
}
/**
* @return true if children are displayed with a {@link HorizontalFlowGroup}.
* @see #getHorizontalFlowGroup()
*/
public boolean isHorizontalFlow () {
return getActor() instanceof HorizontalFlowGroup;
}
/**
* @return true if children are displayed with a {@link FloatingGroup}.
* @see #getFloatingGroup()
*/
public boolean isFloating () {
return getActor() instanceof FloatingGroup;
}
@Override
public SnapshotArray<Actor> getChildren () {
return getActor().getChildren();
}
/** @return internally managed group of actors. */
public WidgetGroup getGroup () {
return getActor();
}
/** @param group will replace the internally managed group. All current children will be moved to this group. */
public void setGroup (final WidgetGroup group) {
setActor(group);
}
/** @param group will replace the internally managed group. All current children will be moved to this group. */
@Override
public void setActor (final WidgetGroup group) {
if (group == null) {
throw new IllegalArgumentException("Group cannot be null.");
}
final Group previousGroup = getActor();
super.setActor(group);
attachListener(); // Attaches draggable to all previous group children.
for (final Actor child : previousGroup.getChildren()) {
group.addActor(child); // No need to attach draggable, child was already in pane.
}
}
/**
* @return internally managed group of actors.
* @throws ClassCastException if drag pane is not horizontal.
* @see #isHorizontal()
*/
public HorizontalGroup getHorizontalGroup () {
return (HorizontalGroup) getActor();
}
/**
* @return internally managed group of actors.
* @throws ClassCastException if drag pane is not vertical.
* @see #isVertical()
*/
public VerticalGroup getVerticalGroup () {
return (VerticalGroup) getActor();
}
/**
* @return internally managed group of actors.
* @throws ClassCastException if drag pane is not a grid.
* @see #isGrid()
*/
public GridGroup getGridGroup () {
return (GridGroup) getActor();
}
/**
* @return internally managed group of actors.
* @throws ClassCastException if drag pane is not horizontal flow.
* @see #isHorizontalFlow()
*/
public HorizontalFlowGroup getHorizontalFlowGroup () {
return (HorizontalFlowGroup) getActor();
}
/**
* @return internally managed group of actors.
* @throws ClassCastException if drag pane is not vertical flow.
* @see #isVerticalFlow()
*/
public VerticalFlowGroup getVerticalFlowGroup () {
return (VerticalFlowGroup) getActor();
}
/**
* @return internally managed group of actors.
* @throws ClassCastException if drag pane is not floating.
* @see #isFloating()
*/
public FloatingGroup getFloatingGroup () {
return (FloatingGroup) getActor();
}
/** @return dragging listener automatically added to all panes' children. */
public Draggable getDraggable () {
return draggable;
}
/** @param draggable will be automatically added to all children. */
public void setDraggable (final Draggable draggable) {
removeListener();
this.draggable = draggable;
attachListener();
}
@Override
public void setBounds (final float x, final float y, final float width, final float height) {
super.setBounds(x, y, width, height);
getActor().setWidth(width);
getActor().setHeight(height);
// Child position omitted on purpose.
}
@Override
public void setWidth (final float width) {
super.setWidth(width);
getActor().setWidth(width);
}
@Override
public void setHeight (final float height) {
super.setHeight(height);
getActor().setHeight(height);
}
private void removeListener () {
if (draggable == null) {
return;
}
for (final Actor actor : getChildren()) {
actor.removeListener(draggable);
}
}
private void attachListener () {
if (draggable == null) {
return;
}
for (final Actor actor : getChildren()) {
draggable.attachTo(actor);
}
}
/**
* @param actor might be in the drag pane.
* @return true if actor is added to the pane's internal group.
*/
public boolean contains (final Actor actor) {
return actor.getParent() == getActor();
}
/**
* Removes an actor from this group. If the actor will not be used again and has actions, they should be
* {@link Actor#clearActions() cleared} so the actions will be returned to their
* {@link Action#setPool(com.badlogic.gdx.utils.Pool) pool}, if any. This is not done automatically.
* <p>
* Note that the direct parent of {@link DragPane}'s children is the internal pane's group accessible through
* {@link #getGroup()} - and since this removal method is overridden and extended, pane's children should be deleted with
* {@code dragPane.removeActor(child)} rather than {@link Actor#remove()} method.
* @param actor will be removed, if present in the internal {@link WidgetGroup}.
* @return true if the actor was removed from this group.
*/
@Override
public boolean removeActor (final Actor actor) {
return removeActor(actor, true);
}
/**
* Removes an actor from this group. If the actor will not be used again and has actions, they should be
* {@link Actor#clearActions() cleared} so the actions will be returned to their
* {@link Action#setPool(com.badlogic.gdx.utils.Pool) pool}, if any. This is not done automatically.
* <p>
* Note that the direct parent of {@link DragPane}'s children is the internal pane's group accessible through
* {@link #getGroup()} - and since this removal method is overridden and extended, pane's children should be deleted with
* {@code dragPane.removeActor(child, true)} rather than {@link Actor#remove()} method.
* @param unfocus if true, {@link Stage#unfocus(Actor)} is called.
* @param actor will be removed, if present in the internal {@link WidgetGroup}.
* @return true if the actor was removed from this group.
*/
@Override
public boolean removeActor (final Actor actor, final boolean unfocus) {
if (getActor().getChildren().contains(actor, true)) {
// Stage input focus causes problems, as touchUp is called in Draggable. Reproducing input unfocus after stage removed.
Stage stage = actor.getStage();
getActor().removeActor(actor, false); // Stage is cleared.
if (unfocus && stage != null) {
stage.unfocus(actor);
}
return true;
}
return false;
}
@Override
public void clear () {
getActor().clear();
}
@Override
public void addActor (final Actor actor) {
getActor().addActor(actor);
doOnAdd(actor);
}
@Override
public void addActorAfter (final Actor actorAfter, final Actor actor) {
getActor().addActorAfter(actorAfter, actor);
doOnAdd(actor);
}
@Override
public void addActorAt (final int index, final Actor actor) {
getActor().addActorAt(index, actor);
doOnAdd(actor);
}
@Override
public void addActorBefore (final Actor actorBefore, final Actor actor) {
getActor().addActorBefore(actorBefore, actor);
doOnAdd(actor);
}
/** @param actor was just added to the group. */
protected void doOnAdd (final Actor actor) {
if (draggable != null) {
draggable.attachTo(actor);
}
}
@Override
public <T extends Actor> T findActor (final String name) {
return getActor().findActor(name);
}
@Override
public void invalidate () {
super.invalidate();
getActor().invalidate();
}
@Override
public void validate () {
super.validate();
getActor().validate();
}
/** @param listener manages children appended to the drag pane. */
public void setListener (final DragPaneListener listener) {
this.listener = listener;
}
/**
* @param actor is dragged over the pane.
* @return true if actor can be added to the pane.
*/
protected boolean accept (final Actor actor) {
return listener == null || listener.accept(this, actor);
}
/**
* Default {@link DragListener} implementation. Implements {@link DragPane} behavior.
* @author MJ
* @since 0.9.3
*/
public static class DefaultDragListener implements DragListener {
/** Contains stage drag end position, which might be changed to local widget coordinates by some methods. */
protected static final Vector2 DRAG_POSITION = new Vector2();
private Policy policy;
/** Creates a new drag listener with default policy. */
public DefaultDragListener () {
this(DefaultPolicy.ALLOW_REMOVAL);
}
/**
* @param policy determines behavior of dragged actors. Allows to prohibit actors from being added to a {@link DragPane}.
* Cannot be null.
* @see #setPolicy(Policy)
*/
public DefaultDragListener (final Policy policy) {
setPolicy(policy);
}
/**
* @param policy determines behavior of dragged actors. Allows to prohibit actors from being added to a {@link DragPane}.
* Cannot be null.
* @see DefaultPolicy
*/
public void setPolicy (final Policy policy) {
if (policy == null) {
throw new IllegalArgumentException("Policy cannot be null.");
}
this.policy = policy;
}
@Override
public boolean onStart (final Draggable draggable, final Actor actor, final float stageX, final float stageY) {
return APPROVE;
}
@Override
public void onDrag (final Draggable draggable, final Actor actor, final float stageX, final float stageY) {
}
@Override
public boolean onEnd (final Draggable draggable, final Actor actor, final float stageX, final float stageY) {
if (actor == null || actor.getStage() == null) {
return CANCEL;
}
final Actor overActor = actor.getStage().hit(stageX, stageY, true);
if (overActor == null || overActor == actor) {
return CANCEL;
} else if (overActor.isAscendantOf(actor)) {
final DragPane dragPane = getDragPane(actor);
if (dragPane != null && dragPane.isFloating()) {
DRAG_POSITION.set(stageX, stageY);
return addToFloatingGroup(draggable, actor, dragPane);
}
return CANCEL;
}
DRAG_POSITION.set(stageX, stageY);
if (overActor instanceof DragPane) {
return addDirectlyToPane(draggable, actor, (DragPane) overActor);
}
final DragPane dragPane = getDragPane(overActor);
if (accept(actor, dragPane)) {
return addActor(draggable, actor, overActor, dragPane);
}
return CANCEL;
}
/**
* @param draggable is attached to the actor.
* @param actor dragged actor.
* @param dragPane is directly under the dragged actor. If accepts the actor, it should be added to its content.
* @return true if actor was accepted.
*/
protected boolean addDirectlyToPane (final Draggable draggable, final Actor actor, final DragPane dragPane) {
if (accept(actor, dragPane)) {
if (dragPane.isFloating()) {
return addToFloatingGroup(draggable, actor, dragPane);
}
// Dragged directly to a pane. Assuming no padding, adding last:
dragPane.addActor(actor);
return APPROVE;
}
return CANCEL;
}
/**
* @param actor has just been dragged.
* @param dragPane is under the dragged actor (if exists). Can be null.
* @return true if the actor can be added to the dragPane.
*/
protected boolean accept (final Actor actor, final DragPane dragPane) {
return dragPane != null && dragPane.accept(actor) && policy.accept(dragPane, actor);
}
/**
* @param draggable is attached to the actor.
* @param actor is being dragged.
* @param overActor is directly under the dragged actor.
* @param dragPane contains the actor under dragged widget.
* @return true if actor is accepted and added to the group.
*/
protected boolean addActor (final Draggable draggable, final Actor actor, final Actor overActor, final DragPane dragPane) {
final Actor directPaneChild = getActorInDragPane(overActor, dragPane);
directPaneChild.stageToLocalCoordinates(DRAG_POSITION);
if (dragPane.isVertical() || dragPane.isVerticalFlow()) {
return addToVerticalGroup(actor, dragPane, directPaneChild);
} else if (dragPane.isHorizontal() || dragPane.isHorizontalFlow()) {
return addToHorizontalGroup(actor, dragPane, directPaneChild);
} else if (dragPane.isFloating()) {
return addToFloatingGroup(draggable, actor, dragPane);
} // This is the default behavior for grid and unknown groups:
return addToOtherGroup(actor, dragPane, directPaneChild);
}
/**
* @param actor is being dragged.
* @param dragPane is under the actor. Stores a {@link HorizontalGroup}.
* @param directPaneChild actor under the cursor.
* @return true if actor was accepted by the group.
*/
protected boolean addToHorizontalGroup (final Actor actor, final DragPane dragPane, final Actor directPaneChild) {
final Array<Actor> children = dragPane.getChildren();
final int indexOfDraggedActor = children.indexOf(actor, true);
actor.remove();
if (indexOfDraggedActor >= 0) {
final int indexOfDirectChild = children.indexOf(directPaneChild, true);
if (indexOfDirectChild > indexOfDraggedActor) {
dragPane.addActorAfter(directPaneChild, actor);
} else {
dragPane.addActorBefore(directPaneChild, actor);
}
} else if (DRAG_POSITION.x > directPaneChild.getWidth() / 2f) {
dragPane.addActorAfter(directPaneChild, actor);
} else {
dragPane.addActorBefore(directPaneChild, actor);
}
return APPROVE;
}
/**
* @param actor is being dragged.
* @param dragPane is under the actor. Stores a {@link VerticalGroup}.
* @param directPaneChild actor under the cursor.
* @return true if actor was accepted by the group.
*/
protected boolean addToVerticalGroup (final Actor actor, final DragPane dragPane, final Actor directPaneChild) {
final Array<Actor> children = dragPane.getChildren();
final int indexOfDraggedActor = children.indexOf(actor, true);
actor.remove();
if (indexOfDraggedActor >= 0) {
final int indexOfDirectChild = children.indexOf(directPaneChild, true);
if (indexOfDirectChild > indexOfDraggedActor) {
dragPane.addActorAfter(directPaneChild, actor);
} else {
dragPane.addActorBefore(directPaneChild, actor);
}
} else if (DRAG_POSITION.y < directPaneChild.getHeight() / 2f) { // Y inverted.
dragPane.addActorAfter(directPaneChild, actor);
} else {
dragPane.addActorBefore(directPaneChild, actor);
}
return APPROVE;
}
/**
* @param draggable attached to dragged actor.
* @param actor is being dragged.
* @param dragPane is under the actor. Stores a {@link FloatingGroup}.
* @return true if actor was accepted by the group.
*/
protected boolean addToFloatingGroup (final Draggable draggable, final Actor actor, final DragPane dragPane) {
final FloatingGroup group = dragPane.getFloatingGroup();
dragPane.stageToLocalCoordinates(DRAG_POSITION);
float x = DRAG_POSITION.x + draggable.getOffsetX();
if (x < 0f || x + actor.getWidth() > dragPane.getWidth()) {
// Normalizing value if set to keep within parent's bounds:
if (draggable.isKeptWithinParent()) {
x = x < 0f ? 0f : dragPane.getWidth() - actor.getWidth() - 1f;
} else {
return CANCEL;
}
}
float y = DRAG_POSITION.y + draggable.getOffsetY();
if (y < 0f || y + actor.getHeight() > dragPane.getHeight()) {
if (draggable.isKeptWithinParent()) {
y = y < 0f ? 0f : dragPane.getHeight() - actor.getHeight() - 1f;
} else {
return CANCEL;
}
}
actor.remove();
actor.setPosition(x, y);
group.addActor(actor);
return APPROVE;
}
/**
* @param actor is being dragged.
* @param dragPane is under the actor. Stores a {@link GridGroup} or unknown group.
* @param directPaneChild actor under the cursor.
* @return true if actor was accepted by the group.
*/
protected boolean addToOtherGroup (final Actor actor, final DragPane dragPane, final Actor directPaneChild) {
final Array<Actor> children = dragPane.getChildren();
final int indexOfDirectChild = children.indexOf(directPaneChild, true);
final int indexOfDraggedActor = children.indexOf(actor, true);
actor.remove();
if (indexOfDraggedActor >= 0) { // Dragging own actor.
if (indexOfDraggedActor > indexOfDirectChild) { // Dropped after current position.
dragPane.addActorBefore(directPaneChild, actor);
} else { // Dropped before current position.
dragPane.addActorAfter(directPaneChild, actor);
}
} else if (indexOfDirectChild == children.size - 1) { // Dragged into last element.
if (DRAG_POSITION.y < directPaneChild.getHeight() / 2f || DRAG_POSITION.x > directPaneChild.getWidth() / 2f) {
// Adding last: // last:
dragPane.addActor(actor);
} else {
dragPane.addActorBefore(directPaneChild, actor);
}
} else if (indexOfDirectChild == 0) { // Dragged into first element.
if (DRAG_POSITION.y < directPaneChild.getHeight() / 2f || DRAG_POSITION.x > directPaneChild.getWidth() / 2f) {
dragPane.addActorAfter(directPaneChild, actor);
} else { // Adding first:
dragPane.addActorBefore(directPaneChild, actor);
}
} else { // Replacing hovered actor:
dragPane.addActorBefore(directPaneChild, actor);
}
return APPROVE;
}
/**
* @param actor if in the drag pane, but does not hav
gitextract_uullo9ny/ ├── .gitattributes ├── .github/ │ ├── CODEOWNERS │ └── workflows/ │ ├── pr.yml │ ├── release.yml │ └── snapshot.yml ├── .gitignore ├── AUTHORS ├── CONTRIBUTING.md ├── CONTRIBUTORS ├── LICENSE ├── README.md ├── build.gradle ├── gradle/ │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat ├── settings.gradle ├── ui/ │ ├── CHANGES.md │ ├── NOTICE │ ├── assets-raw/ │ │ ├── x1/ │ │ │ └── pack.json │ │ ├── x1-fonts/ │ │ │ ├── default.hiero │ │ │ └── font-small.hiero │ │ ├── x2/ │ │ │ └── pack.json │ │ └── x2-fonts/ │ │ ├── default.hiero │ │ └── font-small.hiero │ ├── build.gradle │ ├── gradle.properties │ ├── icons-license │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── kotcrab/ │ │ │ └── vis/ │ │ │ └── ui/ │ │ │ ├── FocusManager.java │ │ │ ├── Focusable.java │ │ │ ├── Locales.java │ │ │ ├── Sizes.java │ │ │ ├── VisUI.java │ │ │ ├── building/ │ │ │ │ ├── CenteredTableBuilder.java │ │ │ │ ├── GridTableBuilder.java │ │ │ │ ├── OneColumnTableBuilder.java │ │ │ │ ├── OneRowTableBuilder.java │ │ │ │ ├── StandardTableBuilder.java │ │ │ │ ├── TableBuilder.java │ │ │ │ └── utilities/ │ │ │ │ ├── Alignment.java │ │ │ │ ├── CellWidget.java │ │ │ │ ├── Nullables.java │ │ │ │ ├── Padding.java │ │ │ │ └── layouts/ │ │ │ │ ├── ActorLayout.java │ │ │ │ ├── GridTableLayout.java │ │ │ │ └── TableLayout.java │ │ │ ├── i18n/ │ │ │ │ └── BundleText.java │ │ │ ├── layout/ │ │ │ │ ├── DragPane.java │ │ │ │ ├── FloatingGroup.java │ │ │ │ ├── FlowGroup.java │ │ │ │ ├── GridGroup.java │ │ │ │ ├── HorizontalFlowGroup.java │ │ │ │ └── VerticalFlowGroup.java │ │ │ ├── util/ │ │ │ │ ├── ActorUtils.java │ │ │ │ ├── BorderOwner.java │ │ │ │ ├── ColorUtils.java │ │ │ │ ├── CursorManager.java │ │ │ │ ├── FloatDigitsOnlyFilter.java │ │ │ │ ├── InputValidator.java │ │ │ │ ├── IntDigitsOnlyFilter.java │ │ │ │ ├── NumberDigitsTextFieldFilter.java │ │ │ │ ├── OsUtils.java │ │ │ │ ├── TableUtils.java │ │ │ │ ├── ToastManager.java │ │ │ │ ├── Validators.java │ │ │ │ ├── adapter/ │ │ │ │ │ ├── AbstractListAdapter.java │ │ │ │ │ ├── ArrayAdapter.java │ │ │ │ │ ├── ArrayListAdapter.java │ │ │ │ │ ├── CachedItemAdapter.java │ │ │ │ │ ├── ItemAdapter.java │ │ │ │ │ ├── ListAdapter.java │ │ │ │ │ ├── ListSelectionAdapter.java │ │ │ │ │ └── SimpleListAdapter.java │ │ │ │ ├── async/ │ │ │ │ │ ├── AsyncTask.java │ │ │ │ │ ├── AsyncTaskListener.java │ │ │ │ │ ├── AsyncTaskProgressDialog.java │ │ │ │ │ └── SteppedAsyncTask.java │ │ │ │ ├── dialog/ │ │ │ │ │ ├── ConfirmDialogListener.java │ │ │ │ │ ├── Dialogs.java │ │ │ │ │ ├── InputDialogAdapter.java │ │ │ │ │ ├── InputDialogListener.java │ │ │ │ │ ├── OptionDialogAdapter.java │ │ │ │ │ └── OptionDialogListener.java │ │ │ │ ├── form/ │ │ │ │ │ ├── FormInputValidator.java │ │ │ │ │ ├── FormValidator.java │ │ │ │ │ ├── SimpleFormValidator.java │ │ │ │ │ └── ValidatorWrapper.java │ │ │ │ ├── highlight/ │ │ │ │ │ ├── BaseHighlighter.java │ │ │ │ │ ├── Highlight.java │ │ │ │ │ ├── HighlightRule.java │ │ │ │ │ ├── Highlighter.java │ │ │ │ │ ├── RegexHighlightRule.java │ │ │ │ │ └── WordHighlightRule.java │ │ │ │ └── value/ │ │ │ │ ├── ConstantIfVisibleValue.java │ │ │ │ ├── PrefHeightIfVisibleValue.java │ │ │ │ ├── PrefWidthIfVisibleValue.java │ │ │ │ ├── VisValue.java │ │ │ │ └── VisWidgetValue.java │ │ │ └── widget/ │ │ │ ├── BusyBar.java │ │ │ ├── ButtonBar.java │ │ │ ├── CollapsibleWidget.java │ │ │ ├── Draggable.java │ │ │ ├── HighlightTextArea.java │ │ │ ├── HorizontalCollapsibleWidget.java │ │ │ ├── LinkLabel.java │ │ │ ├── ListView.java │ │ │ ├── ListViewStyle.java │ │ │ ├── Menu.java │ │ │ ├── MenuBar.java │ │ │ ├── MenuItem.java │ │ │ ├── MultiSplitPane.java │ │ │ ├── PopupMenu.java │ │ │ ├── ScrollableTextArea.java │ │ │ ├── Separator.java │ │ │ ├── Tooltip.java │ │ │ ├── VisCheckBox.java │ │ │ ├── VisDialog.java │ │ │ ├── VisImage.java │ │ │ ├── VisImageButton.java │ │ │ ├── VisImageTextButton.java │ │ │ ├── VisLabel.java │ │ │ ├── VisList.java │ │ │ ├── VisProgressBar.java │ │ │ ├── VisRadioButton.java │ │ │ ├── VisScrollPane.java │ │ │ ├── VisSelectBox.java │ │ │ ├── VisSlider.java │ │ │ ├── VisSplitPane.java │ │ │ ├── VisTable.java │ │ │ ├── VisTextArea.java │ │ │ ├── VisTextButton.java │ │ │ ├── VisTextField.java │ │ │ ├── VisTree.java │ │ │ ├── VisValidatableTextField.java │ │ │ ├── VisWindow.java │ │ │ ├── color/ │ │ │ │ ├── BasicColorPicker.java │ │ │ │ ├── ColorPicker.java │ │ │ │ ├── ColorPickerAdapter.java │ │ │ │ ├── ColorPickerListener.java │ │ │ │ ├── ColorPickerStyle.java │ │ │ │ ├── ColorPickerWidgetStyle.java │ │ │ │ ├── ExtendedColorPicker.java │ │ │ │ └── internal/ │ │ │ │ ├── AlphaChannelBar.java │ │ │ │ ├── AlphaImage.java │ │ │ │ ├── ChannelBar.java │ │ │ │ ├── ColorChannelWidget.java │ │ │ │ ├── ColorInputField.java │ │ │ │ ├── ColorPickerText.java │ │ │ │ ├── GridSubImage.java │ │ │ │ ├── Palette.java │ │ │ │ ├── PickerCommons.java │ │ │ │ ├── ShaderImage.java │ │ │ │ ├── VerticalChannelBar.java │ │ │ │ └── package-info.java │ │ │ ├── file/ │ │ │ │ ├── FileChooser.java │ │ │ │ ├── FileChooserAdapter.java │ │ │ │ ├── FileChooserListener.java │ │ │ │ ├── FileChooserStyle.java │ │ │ │ ├── FileTypeFilter.java │ │ │ │ ├── FileUtils.java │ │ │ │ ├── SingleFileChooserListener.java │ │ │ │ ├── StreamingFileChooserListener.java │ │ │ │ └── internal/ │ │ │ │ ├── AbstractSuggestionPopup.java │ │ │ │ ├── DirsSuggestionPopup.java │ │ │ │ ├── DriveCheckerService.java │ │ │ │ ├── FileChooserText.java │ │ │ │ ├── FileChooserWinService.java │ │ │ │ ├── FileHandleMetadata.java │ │ │ │ ├── FileHistoryManager.java │ │ │ │ ├── FileListAdapter.java │ │ │ │ ├── FilePopupMenu.java │ │ │ │ ├── FileSuggestionPopup.java │ │ │ │ ├── IconStack.java │ │ │ │ ├── PreferencesIO.java │ │ │ │ ├── ServiceThreadFactory.java │ │ │ │ ├── SortingPopupMenu.java │ │ │ │ └── package-info.java │ │ │ ├── internal/ │ │ │ │ └── SplitPaneCursorManager.java │ │ │ ├── spinner/ │ │ │ │ ├── AbstractSpinnerModel.java │ │ │ │ ├── ArraySpinnerModel.java │ │ │ │ ├── FloatSpinnerModel.java │ │ │ │ ├── IntSpinnerModel.java │ │ │ │ ├── SimpleFloatSpinnerModel.java │ │ │ │ ├── Spinner.java │ │ │ │ └── SpinnerModel.java │ │ │ ├── tabbedpane/ │ │ │ │ ├── Tab.java │ │ │ │ ├── TabbedPane.java │ │ │ │ ├── TabbedPaneAdapter.java │ │ │ │ └── TabbedPaneListener.java │ │ │ └── toast/ │ │ │ ├── MessageToast.java │ │ │ ├── Toast.java │ │ │ └── ToastTable.java │ │ └── resources/ │ │ ├── META-INF/ │ │ │ └── robovm/ │ │ │ └── ios/ │ │ │ └── robovm.xml │ │ └── com/ │ │ └── kotcrab/ │ │ └── vis/ │ │ ├── ui/ │ │ │ ├── i18n/ │ │ │ │ ├── ButtonBar.properties │ │ │ │ ├── ColorPicker.properties │ │ │ │ ├── Common.properties │ │ │ │ ├── Dialogs.properties │ │ │ │ ├── FileChooser.properties │ │ │ │ └── TabbedPane.properties │ │ │ ├── skin/ │ │ │ │ ├── x1/ │ │ │ │ │ ├── default.fnt │ │ │ │ │ ├── font-small.fnt │ │ │ │ │ ├── uiskin.atlas │ │ │ │ │ └── uiskin.json │ │ │ │ └── x2/ │ │ │ │ ├── default.fnt │ │ │ │ ├── font-small.fnt │ │ │ │ ├── uiskin.atlas │ │ │ │ └── uiskin.json │ │ │ └── widget/ │ │ │ └── color/ │ │ │ └── internal/ │ │ │ ├── checkerboard.frag │ │ │ ├── default.vert │ │ │ ├── hsv.frag │ │ │ ├── palette.frag │ │ │ ├── rgb.frag │ │ │ └── verticalBar.frag │ │ └── vis-ui.gwt.xml │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── kotcrab/ │ │ └── vis/ │ │ └── ui/ │ │ └── test/ │ │ ├── GreaterThanValidatorTest.java │ │ ├── LesserThanValidatorTest.java │ │ ├── TestImageTextButtonOrientation.java │ │ └── manual/ │ │ ├── HighResFileChooserIconProvider.java │ │ ├── TestBuilders.java │ │ ├── TestBusyBar.java │ │ ├── TestButtonBar.java │ │ ├── TestCollapsible.java │ │ ├── TestColorPicker.java │ │ ├── TestDialogs.java │ │ ├── TestFileChooser.java │ │ ├── TestFloatingGroup.java │ │ ├── TestFlowGroup.java │ │ ├── TestFormValidator.java │ │ ├── TestGenerateDisabledImage.java │ │ ├── TestHighlightTextArea.java │ │ ├── TestIssue131.java │ │ ├── TestIssue326.java │ │ ├── TestLauncher.java │ │ ├── TestListView.java │ │ ├── TestMultiSplitPane.java │ │ ├── TestSplitPane.java │ │ ├── TestTabbedPane.java │ │ ├── TestTextAreaAndScroll.java │ │ ├── TestToasts.java │ │ ├── TestTree.java │ │ ├── TestValidator.java │ │ ├── TestVertical.java │ │ ├── TestWindow.java │ │ └── WindowResizeListener.java │ └── resources/ │ └── file-chooser-high-res.atlas ├── usl/ │ ├── CHANGES.md │ ├── build.gradle │ ├── gradle.properties │ ├── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── kotcrab/ │ │ │ └── vis/ │ │ │ └── usl/ │ │ │ ├── CollectionUtils.java │ │ │ ├── IncludeLoader.java │ │ │ ├── Lexer.java │ │ │ ├── LexerContext.java │ │ │ ├── Main.java │ │ │ ├── Parser.java │ │ │ ├── StyleMerger.java │ │ │ ├── Token.java │ │ │ ├── USL.java │ │ │ ├── USLException.java │ │ │ ├── USLJsonWriter.java │ │ │ ├── Utils.java │ │ │ └── lang/ │ │ │ ├── AliasIdentifier.java │ │ │ ├── BasicIdentifier.java │ │ │ ├── GroupIdentifier.java │ │ │ ├── Identifier.java │ │ │ ├── StyleBlock.java │ │ │ └── StyleIdentifier.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── kotcrab/ │ │ │ └── vis/ │ │ │ └── usl/ │ │ │ └── test/ │ │ │ ├── RemoteTest.java │ │ │ └── TemplateBasedParserTest.java │ │ └── resources/ │ │ ├── test-alias-expected.json │ │ ├── test-alias.usl │ │ ├── test-comments-expected.json │ │ ├── test-comments.usl │ │ ├── test-gdx-expected.json │ │ ├── test-gdx.usl │ │ ├── test-minus-expected.json │ │ ├── test-minus.usl │ │ ├── test-tinted-expected.json │ │ ├── test-tinted.usl │ │ ├── test-visui-expected.json │ │ └── test-visui.usl │ └── styles/ │ ├── gdx.usl │ ├── visui-1.0.2.usl │ ├── visui-1.1.6.usl │ ├── visui-1.2.3.usl │ ├── visui-1.2.4.usl │ ├── visui-1.2.5.usl │ ├── visui-1.3.0.usl │ ├── visui-1.4.0.usl │ ├── visui-1.4.1.usl │ ├── visui-1.4.10.usl │ ├── visui-1.4.11.usl │ ├── visui-1.4.2.usl │ ├── visui-1.4.3.usl │ ├── visui-1.4.4.usl │ ├── visui-1.4.5.usl │ ├── visui-1.4.6.usl │ ├── visui-1.4.7.usl │ ├── visui-1.4.8.usl │ └── visui-1.4.9.usl └── vis-intellij-formatter.xml
Showing preview only (217K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (2599 symbols across 212 files)
FILE: ui/src/main/java/com/kotcrab/vis/ui/FocusManager.java
class FocusManager (line 29) | public class FocusManager {
method switchFocus (line 37) | public static void switchFocus (Stage stage, Focusable widget) {
method resetFocus (line 51) | public static void resetFocus (Stage stage) {
method resetFocus (line 62) | public static void resetFocus (Stage stage, Actor caller) {
method getFocusedWidget (line 68) | public static Focusable getFocusedWidget () {
FILE: ui/src/main/java/com/kotcrab/vis/ui/Focusable.java
type Focusable (line 24) | public interface Focusable {
method focusLost (line 26) | void focusLost ();
method focusGained (line 29) | void focusGained ();
FILE: ui/src/main/java/com/kotcrab/vis/ui/Locales.java
class Locales (line 36) | public class Locales {
method getCommonBundle (line 46) | public static I18NBundle getCommonBundle () {
method setCommonBundle (line 55) | public static void setCommonBundle (I18NBundle commonBundle) {
method getFileChooserBundle (line 60) | public static I18NBundle getFileChooserBundle () {
method setFileChooserBundle (line 69) | public static void setFileChooserBundle (I18NBundle fileChooserBundle) {
method getDialogsBundle (line 74) | public static I18NBundle getDialogsBundle () {
method setDialogsBundle (line 83) | public static void setDialogsBundle (I18NBundle dialogsBundle) {
method getTabbedPaneBundle (line 88) | public static I18NBundle getTabbedPaneBundle () {
method setTabbedPaneBundle (line 97) | public static void setTabbedPaneBundle (I18NBundle tabbedPaneBundle) {
method getColorPickerBundle (line 102) | public static I18NBundle getColorPickerBundle () {
method setColorPickerBundle (line 111) | public static void setColorPickerBundle (I18NBundle colorPickerBundle) {
method getButtonBarBundle (line 116) | public static I18NBundle getButtonBarBundle () {
method setButtonBarBundle (line 125) | public static void setButtonBarBundle (I18NBundle buttonBarBundle) {
method setLocale (line 133) | public static void setLocale (Locale locale) {
method getBundle (line 137) | private static I18NBundle getBundle (String path) {
type CommonText (line 142) | public enum CommonText implements BundleText {
method CommonText (line 148) | CommonText (final String name) {
method getBundle (line 152) | private static I18NBundle getBundle () {
method getName (line 156) | @Override
method get (line 161) | @Override
method format (line 166) | @Override
method format (line 171) | @Override
method toString (line 176) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/Sizes.java
class Sizes (line 25) | public class Sizes {
method Sizes (line 51) | public Sizes () {
method Sizes (line 54) | public Sizes (Sizes other) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/VisUI.java
class VisUI (line 32) | public class VisUI {
type SkinScale (line 42) | public enum SkinScale {
method SkinScale (line 51) | SkinScale (String classpath, String sizesName) {
method getSkinFile (line 56) | public FileHandle getSkinFile () {
method getSizesName (line 60) | public String getSizesName () {
method load (line 66) | public static void load () {
method load (line 71) | public static void load (SkinScale scale) {
method load (line 77) | public static void load (String internalVisSkinPath) {
method load (line 82) | public static void load (FileHandle visSkinFile) {
method load (line 91) | public static void load (Skin skin) {
method checkBeforeLoad (line 96) | private static void checkBeforeLoad () {
method dispose (line 106) | public static void dispose () {
method dispose (line 114) | public static void dispose (boolean disposeSkin) {
method getSkin (line 121) | public static Skin getSkin () {
method isLoaded (line 126) | public static boolean isLoaded () {
method getSizes (line 130) | public static Sizes getSizes () {
method getDefaultTitleAlign (line 138) | public static int getDefaultTitleAlign () {
method setDefaultTitleAlign (line 146) | public static void setDefaultTitleAlign (int defaultTitleAlign) {
method setSkipGdxVersionCheck (line 156) | public static void setSkipGdxVersionCheck (boolean setSkipGdxVersionCh...
FILE: ui/src/main/java/com/kotcrab/vis/ui/building/CenteredTableBuilder.java
class CenteredTableBuilder (line 31) | public class CenteredTableBuilder extends TableBuilder {
method CenteredTableBuilder (line 32) | public CenteredTableBuilder () {
method CenteredTableBuilder (line 37) | public CenteredTableBuilder (final Padding defaultWidgetPadding) {
method CenteredTableBuilder (line 41) | public CenteredTableBuilder (final int estimatedWidgetsAmount, final i...
method CenteredTableBuilder (line 46) | public CenteredTableBuilder (final int estimatedWidgetsAmount, final i...
method fillTable (line 51) | @Override
method shouldExpand (line 83) | private boolean shouldExpand (final int rowSize) {
method isLast (line 91) | private boolean isLast (final int widgetIndex, final int rowSize, fina...
FILE: ui/src/main/java/com/kotcrab/vis/ui/building/GridTableBuilder.java
class GridTableBuilder (line 30) | public class GridTableBuilder extends TableBuilder {
method GridTableBuilder (line 33) | public GridTableBuilder (final int rowSize) {
method GridTableBuilder (line 39) | public GridTableBuilder (final Padding defaultWidgetPadding, final int...
method GridTableBuilder (line 44) | public GridTableBuilder (final int rowSize, final int estimatedWidgets...
method GridTableBuilder (line 50) | public GridTableBuilder (final int rowSize, final int estimatedWidgets...
method fillTable (line 56) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/building/OneColumnTableBuilder.java
class OneColumnTableBuilder (line 28) | public class OneColumnTableBuilder extends TableBuilder {
method OneColumnTableBuilder (line 29) | public OneColumnTableBuilder () {
method OneColumnTableBuilder (line 34) | public OneColumnTableBuilder (final Padding defaultWidgetPadding) {
method OneColumnTableBuilder (line 38) | public OneColumnTableBuilder (final int estimatedWidgetsAmount, final ...
method OneColumnTableBuilder (line 43) | public OneColumnTableBuilder (final int estimatedWidgetsAmount, final ...
method fillTable (line 48) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/building/OneRowTableBuilder.java
class OneRowTableBuilder (line 30) | public class OneRowTableBuilder extends TableBuilder {
method OneRowTableBuilder (line 31) | public OneRowTableBuilder () {
method OneRowTableBuilder (line 36) | public OneRowTableBuilder (final Padding defaultWidgetPadding) {
method OneRowTableBuilder (line 40) | public OneRowTableBuilder (final int estimatedWidgetsAmount, final int...
method OneRowTableBuilder (line 45) | public OneRowTableBuilder (final int estimatedWidgetsAmount, final int...
method fillTable (line 50) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/building/StandardTableBuilder.java
class StandardTableBuilder (line 29) | public class StandardTableBuilder extends TableBuilder {
method StandardTableBuilder (line 30) | public StandardTableBuilder () {
method StandardTableBuilder (line 35) | public StandardTableBuilder (final Padding defaultWidgetPadding) {
method StandardTableBuilder (line 39) | public StandardTableBuilder (final int estimatedWidgetsAmount, final i...
method StandardTableBuilder (line 44) | public StandardTableBuilder (final int estimatedWidgetsAmount, final i...
method fillTable (line 49) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/building/TableBuilder.java
class TableBuilder (line 36) | public abstract class TableBuilder {
method TableBuilder (line 47) | public TableBuilder () {
method TableBuilder (line 52) | public TableBuilder (final Padding defaultWidgetPadding) {
method TableBuilder (line 56) | public TableBuilder (final int estimatedWidgetsAmount, final int estim...
method TableBuilder (line 61) | public TableBuilder (final int estimatedWidgetsAmount, final int estim...
method getGreatestCommonDenominator (line 69) | public static int getGreatestCommonDenominator (final int valueA, fina...
method getLowestCommonMultiple (line 74) | public static int getLowestCommonMultiple (final int valueA, final int...
method getLowestCommonMultiple (line 82) | public static int getLowestCommonMultiple (final IntArray values) {
method setTablePadding (line 94) | public TableBuilder setTablePadding (final Padding tablePadding) {
method getDefaultWidgetPadding (line 103) | protected Padding getDefaultWidgetPadding () {
method append (line 108) | public TableBuilder append (final Actor widget) {
method append (line 113) | public TableBuilder append (final CellWidget<? extends Actor> widget) {
method append (line 121) | public TableBuilder append (final Actor... widgets) {
method append (line 130) | public TableBuilder append (final CellWidget<?>... widgets) {
method append (line 139) | public TableBuilder append (final ActorLayout layout, final Actor... w...
method append (line 152) | public TableBuilder append (final ActorLayout layout, final CellWidget...
method append (line 161) | public TableBuilder append (final CellWidgetBuilder<Actor> mergedCellS...
method append (line 170) | public TableBuilder append (final CellWidgetBuilder<Actor> mergedCellS...
method append (line 182) | public TableBuilder append (final ActorLayout layout, final CellWidget...
method append (line 196) | public TableBuilder append (final ActorLayout layout, final CellWidget...
method append (line 205) | public TableBuilder append () {
method row (line 213) | public TableBuilder row () {
method build (line 222) | public Table build () {
method build (line 231) | public <T extends Table> T build (final T table) {
method prepareNewTable (line 242) | private Table prepareNewTable (final Table table) {
method fillTable (line 256) | protected abstract void fillTable (Table table);
method prepareBuiltTable (line 258) | private <T extends Table> T prepareBuiltTable (final T table) {
method validateRowSize (line 264) | private void validateRowSize () {
method getRowSizes (line 271) | protected IntArray getRowSizes () {
method getWidget (line 276) | protected CellWidget<? extends Actor> getWidget (final int index) {
method getWidgets (line 281) | protected Array<CellWidget<? extends Actor>> getWidgets () {
FILE: ui/src/main/java/com/kotcrab/vis/ui/building/utilities/Alignment.java
type Alignment (line 27) | public enum Alignment {
method Alignment (line 40) | private Alignment (final int alignment) {
method getAlignment (line 44) | public int getAlignment () {
method apply (line 48) | public void apply (final Cell<?> cell) {
method isAlignedWithTop (line 53) | public boolean isAlignedWithTop () {
method isAlignedWithBottom (line 58) | public boolean isAlignedWithBottom () {
method isAlignedWithLeft (line 63) | public boolean isAlignedWithLeft () {
method isAlignedWithRight (line 68) | public boolean isAlignedWithRight () {
method isCentered (line 73) | public boolean isCentered () {
method getByIndex (line 81) | public static Alignment getByIndex (final int index) {
method getByValidIndex (line 90) | public static Alignment getByValidIndex (final int index) {
method isIndexValid (line 95) | public static boolean isIndexValid (final int index) {
method isIndexLast (line 100) | public static boolean isIndexLast (final int index) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/building/utilities/CellWidget.java
class CellWidget (line 30) | public class CellWidget<Widget extends Actor> {
method CellWidget (line 42) | @SuppressWarnings("unchecked")
method of (line 62) | public static <Widget extends Actor> CellWidgetBuilder<Widget> of (fin...
method using (line 70) | public static <Widget extends Actor> CellWidgetBuilder<Widget> using (...
method wrap (line 78) | public static <Widget extends Actor> CellWidget<Widget> wrap (final Wi...
method wrap (line 86) | public static CellWidget<?>[] wrap (final Actor... widgets) {
method empty (line 95) | public static CellWidget<?> empty () {
method builder (line 100) | public static CellWidgetBuilder<Actor> builder () {
method getWidget (line 105) | public Widget getWidget () {
method buildCell (line 113) | public Cell<?> buildCell (final Table table) {
method buildCell (line 122) | public Cell<?> buildCell (final Table table, final Padding defaultWidg...
method applyPadding (line 132) | private void applyPadding (final Cell<?> cell, final Padding defaultWi...
method applySizeData (line 143) | private void applySizeData (final Cell<?> cell) {
method applyFillingData (line 158) | private void applyFillingData (final Cell<?> cell) {
class CellWidgetBuilder (line 170) | public static class CellWidgetBuilder<Widget extends Actor> {
method CellWidgetBuilder (line 178) | private CellWidgetBuilder (final Actor widget) {
method CellWidgetBuilder (line 182) | private CellWidgetBuilder (final CellWidget<Widget> widget) {
method wrap (line 198) | public CellWidget<Widget> wrap () {
method widget (line 203) | public CellWidgetBuilder<Widget> widget (final Widget widget) {
method padding (line 209) | public CellWidgetBuilder<Widget> padding (final Padding padding) {
method useSpacing (line 218) | public CellWidgetBuilder<Widget> useSpacing () {
method expandX (line 224) | public CellWidgetBuilder<Widget> expandX () {
method expandY (line 230) | public CellWidgetBuilder<Widget> expandY () {
method fillX (line 236) | public CellWidgetBuilder<Widget> fillX () {
method fillY (line 242) | public CellWidgetBuilder<Widget> fillY () {
method align (line 251) | public CellWidgetBuilder<Widget> align (final Alignment alignment) {
method width (line 257) | public CellWidgetBuilder<Widget> width (final int width) {
method height (line 263) | public CellWidgetBuilder<Widget> height (final int height) {
method minWidth (line 272) | public CellWidgetBuilder<Widget> minWidth (final int minWidth) {
method minHeight (line 281) | public CellWidgetBuilder<Widget> minHeight (final int minHeight) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/building/utilities/Nullables.java
class Nullables (line 24) | public class Nullables {
method Nullables (line 25) | private Nullables () {
method isNull (line 29) | public static boolean isNull (final Object nullable) {
method isNotNull (line 34) | public static boolean isNotNull (final Object nullable) {
method getOrElse (line 42) | public static <Type> Type getOrElse (final Type nullable, final Type a...
method executeIfNotNull (line 50) | public static void executeIfNotNull (final Object nullable, final Runn...
method areEqual (line 57) | public static boolean areEqual (final Object first, final Object secon...
method isAnyNull (line 65) | public static boolean isAnyNull (final Object... nullables) {
method areAllNull (line 78) | public static boolean areAllNull (final Object... nullables) {
method isAnyNotNull (line 91) | public static boolean isAnyNotNull (final Object... nullables) {
method areAllNotNull (line 104) | public static boolean areAllNotNull (final Object... nullables) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/building/utilities/Padding.java
class Padding (line 36) | public class Padding {
method Padding (line 43) | public Padding (final float padding) {
method Padding (line 51) | public Padding (final float horizontal, final float vertical) {
method Padding (line 61) | public Padding (final float top, final float left, final float bottom,...
method of (line 69) | public static Padding of (final float padding) {
method of (line 77) | public static Padding of (final float horizontal, final float vertical) {
method of (line 87) | public static Padding of (final float top, final float left, final flo...
method getTop (line 92) | public float getTop () {
method getLeft (line 97) | public float getLeft () {
method getBottom (line 102) | public float getBottom () {
method getRight (line 107) | public float getRight () {
method add (line 115) | public Padding add (final Padding padding) {
method subtract (line 124) | public Padding subtract (final Padding padding) {
method reverse (line 130) | public Padding reverse () {
method applyPadding (line 140) | public Table applyPadding (final Table table) {
method applyPadding (line 151) | public Cell<?> applyPadding (final Cell<?> cell) {
method applySpacing (line 163) | public Cell<?> applySpacing (final Cell<?> cell) {
method setPadding (line 177) | public static Table setPadding (final Padding padding, final Table tab...
method setPadding (line 189) | public static Cell<?> setPadding (final Padding padding, final Cell<?>...
method setSpacing (line 201) | public static Cell<?> setSpacing (final Padding spacing, final Cell<?>...
FILE: ui/src/main/java/com/kotcrab/vis/ui/building/utilities/layouts/ActorLayout.java
type ActorLayout (line 27) | public interface ActorLayout {
method convertToActor (line 29) | public Actor convertToActor (Actor... widgets);
method convertToActor (line 32) | public Actor convertToActor (CellWidget<?>... widgets);
FILE: ui/src/main/java/com/kotcrab/vis/ui/building/utilities/layouts/GridTableLayout.java
class GridTableLayout (line 28) | public class GridTableLayout implements ActorLayout {
method GridTableLayout (line 31) | public GridTableLayout (final int rowSize) {
method withRowSize (line 39) | public static GridTableLayout withRowSize (final int rowSize) {
method convertToActor (line 43) | @Override
method convertToActor (line 48) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/building/utilities/layouts/TableLayout.java
type TableLayout (line 33) | public enum TableLayout implements ActorLayout {
method convertToActor (line 36) | @Override
method convertToActor (line 43) | @Override
method convertToActor (line 49) | @Override
method convertToTable (line 58) | public static Actor convertToTable (final TableBuilder usingBuilder, f...
method grid (line 66) | public static GridTableLayout grid (final int rowSize) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/i18n/BundleText.java
type BundleText (line 23) | public interface BundleText {
method getName (line 26) | String getName ();
method get (line 29) | String get ();
method format (line 32) | String format ();
method format (line 35) | String format (Object... arguments);
FILE: ui/src/main/java/com/kotcrab/vis/ui/layout/DragPane.java
class DragPane (line 43) | public class DragPane extends Container<WidgetGroup> {
method DragPane (line 48) | public DragPane () {
method DragPane (line 53) | public DragPane (final boolean vertical) {
method DragPane (line 65) | public DragPane (final WidgetGroup group) {
method isVertical (line 77) | public boolean isVertical () {
method isHorizontal (line 85) | public boolean isHorizontal () {
method isGrid (line 93) | public boolean isGrid () {
method isVerticalFlow (line 101) | public boolean isVerticalFlow () {
method isHorizontalFlow (line 109) | public boolean isHorizontalFlow () {
method isFloating (line 117) | public boolean isFloating () {
method getChildren (line 121) | @Override
method getGroup (line 127) | public WidgetGroup getGroup () {
method setGroup (line 132) | public void setGroup (final WidgetGroup group) {
method setActor (line 137) | @Override
method getHorizontalGroup (line 155) | public HorizontalGroup getHorizontalGroup () {
method getVerticalGroup (line 164) | public VerticalGroup getVerticalGroup () {
method getGridGroup (line 173) | public GridGroup getGridGroup () {
method getHorizontalFlowGroup (line 182) | public HorizontalFlowGroup getHorizontalFlowGroup () {
method getVerticalFlowGroup (line 191) | public VerticalFlowGroup getVerticalFlowGroup () {
method getFloatingGroup (line 200) | public FloatingGroup getFloatingGroup () {
method getDraggable (line 205) | public Draggable getDraggable () {
method setDraggable (line 210) | public void setDraggable (final Draggable draggable) {
method setBounds (line 216) | @Override
method setWidth (line 224) | @Override
method setHeight (line 230) | @Override
method removeListener (line 236) | private void removeListener () {
method attachListener (line 245) | private void attachListener () {
method contains (line 258) | public boolean contains (final Actor actor) {
method removeActor (line 273) | @Override
method removeActor (line 290) | @Override
method clear (line 304) | @Override
method addActor (line 309) | @Override
method addActorAfter (line 315) | @Override
method addActorAt (line 321) | @Override
method addActorBefore (line 327) | @Override
method doOnAdd (line 334) | protected void doOnAdd (final Actor actor) {
method findActor (line 340) | @Override
method invalidate (line 345) | @Override
method validate (line 351) | @Override
method setListener (line 358) | public void setListener (final DragPaneListener listener) {
method accept (line 366) | protected boolean accept (final Actor actor) {
class DefaultDragListener (line 375) | public static class DefaultDragListener implements DragListener {
method DefaultDragListener (line 381) | public DefaultDragListener () {
method DefaultDragListener (line 390) | public DefaultDragListener (final Policy policy) {
method setPolicy (line 399) | public void setPolicy (final Policy policy) {
method onStart (line 406) | @Override
method onDrag (line 411) | @Override
method onEnd (line 415) | @Override
method addDirectlyToPane (line 448) | protected boolean addDirectlyToPane (final Draggable draggable, fina...
method accept (line 465) | protected boolean accept (final Actor actor, final DragPane dragPane) {
method addActor (line 476) | protected boolean addActor (final Draggable draggable, final Actor a...
method addToHorizontalGroup (line 495) | protected boolean addToHorizontalGroup (final Actor actor, final Dra...
method addToVerticalGroup (line 520) | protected boolean addToVerticalGroup (final Actor actor, final DragP...
method addToFloatingGroup (line 545) | protected boolean addToFloatingGroup (final Draggable draggable, fin...
method addToOtherGroup (line 577) | protected boolean addToOtherGroup (final Actor actor, final DragPane...
method getActorInDragPane (line 612) | protected Actor getActorInDragPane (Actor actor, final DragPane drag...
method getDragPane (line 626) | protected DragPane getDragPane (Actor fromActor) {
type Policy (line 641) | public static interface Policy {
method accept (line 647) | boolean accept (DragPane dragPane, Actor actor);
type DefaultPolicy (line 655) | public static enum DefaultPolicy implements Policy {
method accept (line 658) | @Override
method accept (line 665) | @Override
type DragPaneListener (line 678) | public static interface DragPaneListener {
method accept (line 687) | boolean accept (DragPane dragPane, Actor actor);
class AcceptOwnChildren (line 695) | public static class AcceptOwnChildren implements DragPaneListener {
method accept (line 696) | @Override
class LimitChildren (line 707) | public static class LimitChildren implements DragPaneListener {
method LimitChildren (line 714) | public LimitChildren (final int max) {
method accept (line 718) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/layout/FloatingGroup.java
class FloatingGroup (line 34) | public class FloatingGroup extends WidgetGroup {
method FloatingGroup (line 46) | public FloatingGroup () {
method FloatingGroup (line 55) | public FloatingGroup (float prefWidth, float prefHeight) {
method layout (line 61) | @Override
method isUseChildrenPreferredSize (line 80) | public boolean isUseChildrenPreferredSize () {
method setUseChildrenPreferredSize (line 89) | public void setUseChildrenPreferredSize (boolean useChildrenPreferredS...
method getPrefWidth (line 94) | @Override
method getPrefHeight (line 99) | @Override
method setPrefWidth (line 104) | public void setPrefWidth (float prefWidth) {
method setPrefHeight (line 109) | public void setPrefHeight (float prefHeight) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/layout/FlowGroup.java
class FlowGroup (line 37) | public class FlowGroup extends WidgetGroup {
method FlowGroup (line 54) | public FlowGroup (boolean vertical) {
method FlowGroup (line 58) | public FlowGroup (boolean vertical, float spacing) {
method isVertical (line 64) | public boolean isVertical () {
method setVertical (line 68) | public void setVertical (boolean vertical) {
method computeSize (line 77) | protected void computeSize () {
method computeSizeHorizontal (line 85) | protected void computeSizeHorizontal () {
method computeSizeVertical (line 156) | protected void computeSizeVertical () {
method layout (line 227) | @Override
method layoutHorizontal (line 236) | protected void layoutHorizontal () {
method layoutVertical (line 297) | protected void layoutVertical () {
method getSpacing (line 356) | public float getSpacing () {
method setSpacing (line 360) | public void setSpacing (float spacing) {
method invalidate (line 365) | @Override
method getMinWidth (line 371) | @Override
method getMinHeight (line 377) | @Override
method getPrefWidth (line 383) | @Override
method getPrefHeight (line 389) | @Override
method computeSizeIfNeeded (line 395) | protected void computeSizeIfNeeded () {
FILE: ui/src/main/java/com/kotcrab/vis/ui/layout/GridGroup.java
class GridGroup (line 31) | public class GridGroup extends WidgetGroup {
method GridGroup (line 41) | public GridGroup () {
method GridGroup (line 45) | public GridGroup (float itemSize) {
method GridGroup (line 51) | public GridGroup (float itemSize, float spacing) {
method computeSize (line 58) | private void computeSize () {
method layout (line 93) | @Override
method getSpacing (line 124) | public float getSpacing () {
method setSpacing (line 128) | public void setSpacing (float spacing) {
method setItemSize (line 133) | public void setItemSize (float itemSize) {
method setItemSize (line 139) | public void setItemSize (float itemWidth, float itemHeight) {
method getItemWidth (line 145) | public float getItemWidth () {
method setItemWidth (line 149) | public void setItemWidth (float itemWidth) {
method getItemHeight (line 153) | public float getItemHeight () {
method setItemHeight (line 157) | public void setItemHeight (float itemHeight) {
method invalidate (line 161) | @Override
method getPrefWidth (line 167) | @Override
method getPrefHeight (line 173) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/layout/HorizontalFlowGroup.java
class HorizontalFlowGroup (line 34) | @Deprecated
method HorizontalFlowGroup (line 43) | public HorizontalFlowGroup () {
method HorizontalFlowGroup (line 47) | public HorizontalFlowGroup (float spacing) {
method computeSize (line 52) | private void computeSize () {
method layout (line 87) | @Override
method getSpacing (line 126) | public float getSpacing () {
method setSpacing (line 130) | public void setSpacing (float spacing) {
method invalidate (line 135) | @Override
method getPrefWidth (line 141) | @Override
method getPrefHeight (line 147) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/layout/VerticalFlowGroup.java
class VerticalFlowGroup (line 35) | @Deprecated
method VerticalFlowGroup (line 44) | public VerticalFlowGroup () {
method VerticalFlowGroup (line 48) | public VerticalFlowGroup (float spacing) {
method computeSize (line 53) | private void computeSize () {
method layout (line 88) | @Override
method getSpacing (line 127) | public float getSpacing () {
method setSpacing (line 131) | public void setSpacing (float spacing) {
method invalidate (line 136) | @Override
method getPrefWidth (line 142) | @Override
method getPrefHeight (line 148) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/ActorUtils.java
class ActorUtils (line 29) | public class ActorUtils {
method keepWithinStage (line 35) | public static void keepWithinStage (Actor actor) {
method keepWithinStage (line 47) | public static void keepWithinStage (Stage stage, Actor actor) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/BorderOwner.java
type BorderOwner (line 23) | public interface BorderOwner {
method isFocusBorderEnabled (line 24) | boolean isFocusBorderEnabled ();
method setFocusBorderEnabled (line 26) | void setFocusBorderEnabled (boolean focusBorderEnabled);
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/ColorUtils.java
class ColorUtils (line 27) | public class ColorUtils {
method HSVtoRGB (line 36) | public static Color HSVtoRGB (float h, float s, float v, float alpha) {
method HSVtoRGB (line 49) | public static Color HSVtoRGB (float h, float s, float v) {
method HSVtoRGB (line 63) | public static Color HSVtoRGB (float h, float s, float v, Color targetC...
method RGBtoHSV (line 119) | public static int[] RGBtoHSV (Color c) {
method RGBtoHSV (line 130) | public static int[] RGBtoHSV (float r, float g, float b) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/CursorManager.java
class CursorManager (line 28) | public class CursorManager {
method setDefaultCursor (line 37) | public static void setDefaultCursor (Cursor defaultCursor) {
method setDefaultCursor (line 47) | public static void setDefaultCursor (Cursor.SystemCursor defaultCursor) {
method restoreDefaultCursor (line 54) | public static void restoreDefaultCursor () {
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/FloatDigitsOnlyFilter.java
class FloatDigitsOnlyFilter (line 26) | public class FloatDigitsOnlyFilter extends IntDigitsOnlyFilter {
method FloatDigitsOnlyFilter (line 27) | public FloatDigitsOnlyFilter (boolean acceptNegativeValues) {
method acceptChar (line 31) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/InputValidator.java
type InputValidator (line 29) | public interface InputValidator {
method validateInput (line 35) | boolean validateInput (String input);
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/IntDigitsOnlyFilter.java
class IntDigitsOnlyFilter (line 26) | public class IntDigitsOnlyFilter extends NumberDigitsTextFieldFilter {
method IntDigitsOnlyFilter (line 27) | public IntDigitsOnlyFilter (boolean acceptNegativeValues) {
method acceptChar (line 31) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/NumberDigitsTextFieldFilter.java
class NumberDigitsTextFieldFilter (line 28) | public abstract class NumberDigitsTextFieldFilter implements TextFieldFi...
method NumberDigitsTextFieldFilter (line 32) | public NumberDigitsTextFieldFilter (boolean acceptNegativeValues) {
method isAcceptNegativeValues (line 36) | public boolean isAcceptNegativeValues () {
method setAcceptNegativeValues (line 40) | public void setAcceptNegativeValues (boolean acceptNegativeValues) {
method isUseFieldCursorPosition (line 44) | public boolean isUseFieldCursorPosition () {
method setUseFieldCursorPosition (line 54) | public void setUseFieldCursorPosition (boolean useFieldCursorPosition) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/OsUtils.java
class OsUtils (line 28) | public class OsUtils {
method isWindows (line 35) | public static boolean isWindows () {
method isMac (line 40) | public static boolean isMac () {
method isUnix (line 45) | public static boolean isUnix () {
method isIos (line 50) | public static boolean isIos () {
method isAndroid (line 55) | public static boolean isAndroid () {
method getAndroidApiLevel (line 63) | public static int getAndroidApiLevel () {
method getShortcutFor (line 81) | public static String getShortcutFor (int... keycodes) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/TableUtils.java
class TableUtils (line 27) | public class TableUtils {
method setSpacingDefaults (line 29) | public static void setSpacingDefaults (Table table) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/ToastManager.java
class ToastManager (line 48) | public class ToastManager {
method ToastManager (line 62) | public ToastManager (Stage stage) {
method ToastManager (line 71) | public ToastManager (Group root) {
method show (line 76) | public void show (String text) {
method show (line 81) | public void show (String text, float timeSec) {
method show (line 88) | public void show (Table table) {
method show (line 93) | public void show (Table table, float timeSec) {
method show (line 102) | public void show (ToastTable toastTable) {
method show (line 111) | public void show (ToastTable toastTable, float timeSec) {
method show (line 121) | public void show (Toast toast) {
method show (line 126) | public void show (final Toast toast, float timeSec) {
method resize (line 154) | public void resize () {
method remove (line 162) | public boolean remove (Toast toast) {
method clear (line 173) | public void clear () {
method toFront (line 185) | public void toFront () {
method updateToastsPositions (line 189) | protected void updateToastsPositions () {
method getScreenPadding (line 212) | @Deprecated
method getScreenPaddingX (line 221) | public int getScreenPaddingX () {
method getScreenPaddingY (line 225) | public int getScreenPaddingY () {
method setScreenPadding (line 230) | public void setScreenPadding (int screenPadding) {
method setScreenPadding (line 237) | public void setScreenPadding (int screenPaddingX, int screenPaddingY) {
method setScreenPaddingX (line 244) | public void setScreenPaddingX (int screenPaddingX) {
method setScreenPaddingY (line 250) | public void setScreenPaddingY (int screenPaddingY) {
method getMessagePadding (line 255) | public int getMessagePadding () {
method setMessagePadding (line 260) | public void setMessagePadding (int messagePadding) {
method getAlignment (line 265) | public int getAlignment () {
method setAlignment (line 273) | public void setAlignment (int alignment) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/Validators.java
class Validators (line 27) | public class Validators {
class IntegerValidator (line 34) | public static class IntegerValidator implements InputValidator {
method validateInput (line 35) | @Override
class FloatValidator (line 47) | public static class FloatValidator implements InputValidator {
method validateInput (line 48) | @Override
class LesserThanValidator (line 60) | public static class LesserThanValidator implements InputValidator {
method LesserThanValidator (line 64) | public LesserThanValidator (float lesserThan) {
method LesserThanValidator (line 69) | public LesserThanValidator (float lesserThan, boolean inputCanBeEqua...
method validateInput (line 74) | @Override
method setUseEquals (line 85) | public void setUseEquals (boolean equals) {
method setLesserThan (line 89) | public void setLesserThan (float lesserThan) {
class GreaterThanValidator (line 95) | public static class GreaterThanValidator implements InputValidator {
method GreaterThanValidator (line 99) | public GreaterThanValidator (float greaterThan) {
method GreaterThanValidator (line 104) | public GreaterThanValidator (float greaterThan, boolean inputCanBeEq...
method validateInput (line 109) | @Override
method setUseEquals (line 120) | public void setUseEquals (boolean useEquals) {
method setGreaterThan (line 124) | public void setGreaterThan (float greaterThan) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/adapter/AbstractListAdapter.java
class AbstractListAdapter (line 53) | public abstract class AbstractListAdapter<ItemT, ViewT extends Actor> ex...
method fillTable (line 65) | @Override
method prepareViewBeforeAddingToTable (line 76) | protected void prepareViewBeforeAddingToTable (ItemT item, ViewT view) {
method setListView (line 90) | @Override
method setItemClickListener (line 97) | @Override
method itemAdded (line 102) | protected void itemAdded (ItemT item) {
method itemRemoved (line 106) | protected void itemRemoved (ItemT item) {
method itemsChanged (line 120) | public void itemsChanged () {
method itemsDataChanged (line 135) | public void itemsDataChanged () {
method updateView (line 139) | @Override
method getSelectionMode (line 144) | public SelectionMode getSelectionMode () {
method setSelectionMode (line 148) | public void setSelectionMode (SelectionMode selectionMode) {
method setItemsSorter (line 158) | public void setItemsSorter (Comparator<ItemT> comparator) {
method getItemsSorter (line 162) | public Comparator<ItemT> getItemsSorter () {
method getSelection (line 167) | public Array<ItemT> getSelection () {
method getSelectionManager (line 171) | public ListSelection<ItemT, ViewT> getSelectionManager () {
method selectView (line 175) | protected void selectView (ViewT view) {
method deselectView (line 180) | protected void deselectView (ViewT view) {
class ListClickListener (line 185) | private class ListClickListener extends ClickListener {
method ListClickListener (line 189) | public ListClickListener (ViewT view, ItemT item) {
method touchDown (line 194) | @Override
method clicked (line 201) | @Override
method sort (line 207) | protected abstract void sort (Comparator<ItemT> comparator);
type SelectionMode (line 209) | public enum SelectionMode {
class ListSelection (line 228) | public static class ListSelection<ItemT, ViewT extends Actor> {
method ListSelection (line 240) | private ListSelection (AbstractListAdapter<ItemT, ViewT> adapter) {
method select (line 244) | public void select (ItemT item) {
method select (line 248) | void select (ItemT item, ViewT view, boolean programmaticChange) {
method doSelect (line 258) | private void doSelect (ItemT item, ViewT view, boolean programmaticC...
method deselect (line 266) | public void deselect (ItemT item) {
method deselectAll (line 270) | public void deselectAll () {
method selectGroup (line 274) | private void selectGroup (ItemT newItem) {
method deselect (line 297) | void deselect (ItemT item, ViewT view, boolean programmaticChange) {
method deselectAll (line 304) | void deselectAll (boolean programmaticChange) {
method getSelection (line 312) | public Array<ItemT> getSelection () {
method touchDown (line 316) | void touchDown (ViewT view, ItemT item) {
method getMultiSelectKey (line 330) | public int getMultiSelectKey () {
method setMultiSelectKey (line 335) | public void setMultiSelectKey (int multiSelectKey) {
method getGroupMultiSelectKey (line 339) | public int getGroupMultiSelectKey () {
method setGroupMultiSelectKey (line 344) | public void setGroupMultiSelectKey (int groupMultiSelectKey) {
method setListener (line 348) | public void setListener (ListSelectionListener<ItemT, ViewT> listene...
method getListener (line 353) | public ListSelectionListener<ItemT, ViewT> getListener () {
method isProgrammaticChangeEvents (line 357) | public boolean isProgrammaticChangeEvents () {
method setProgrammaticChangeEvents (line 361) | public void setProgrammaticChangeEvents (boolean programmaticChangeE...
method isMultiSelectKeyPressed (line 365) | private boolean isMultiSelectKeyPressed () {
method isGroupMultiSelectKeyPressed (line 372) | private boolean isGroupMultiSelectKeyPressed () {
type ListSelectionListener (line 380) | public interface ListSelectionListener<ItemT, ViewT> {
method selected (line 381) | void selected (ItemT item, ViewT view);
method deselected (line 383) | void deselected (ItemT item, ViewT view);
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/adapter/ArrayAdapter.java
class ArrayAdapter (line 29) | public abstract class ArrayAdapter<ItemT, ViewT extends Actor> extends A...
method ArrayAdapter (line 32) | public ArrayAdapter (Array<ItemT> array) {
method indexOf (line 36) | @Override
method size (line 41) | @Override
method get (line 46) | @Override
method add (line 51) | @Override
method sort (line 57) | @Override
method iterable (line 62) | @Override
method addAll (line 69) | public void addAll (Array<? extends ItemT> array) {
method addAll (line 74) | public void addAll (Array<? extends ItemT> array, int start, int count) {
method addAll (line 79) | public void addAll (ItemT... array) {
method addAll (line 84) | public void addAll (ItemT[] array, int start, int count) {
method set (line 89) | public void set (int index, ItemT value) {
method insert (line 94) | public void insert (int index, ItemT value) {
method swap (line 99) | public void swap (int first, int second) {
method removeValue (line 104) | public boolean removeValue (ItemT value, boolean identity) {
method removeIndex (line 110) | public ItemT removeIndex (int index) {
method removeRange (line 116) | public void removeRange (int start, int end) {
method removeAll (line 121) | public boolean removeAll (Array<? extends ItemT> array, boolean identi...
method clear (line 127) | public void clear () {
method shuffle (line 132) | public void shuffle () {
method reverse (line 137) | public void reverse () {
method pop (line 142) | public ItemT pop () {
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/adapter/ArrayListAdapter.java
class ArrayListAdapter (line 31) | public abstract class ArrayListAdapter<ItemT, ViewT extends Actor> exten...
method ArrayListAdapter (line 34) | public ArrayListAdapter (ArrayList<ItemT> array) {
method iterable (line 38) | @Override
method size (line 43) | @Override
method indexOf (line 48) | @Override
method add (line 53) | @Override
method get (line 59) | @Override
method sort (line 64) | @Override
method set (line 71) | public ItemT set (int index, ItemT element) {
method add (line 77) | public void add (int index, ItemT element) {
method remove (line 82) | public ItemT remove (int index) {
method remove (line 88) | public boolean remove (ItemT item) {
method clear (line 94) | public void clear () {
method addAll (line 99) | public boolean addAll (Collection<? extends ItemT> c) {
method addAll (line 105) | public boolean addAll (int index, Collection<? extends ItemT> c) {
method removeAll (line 111) | public boolean removeAll (Collection<?> c) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/adapter/CachedItemAdapter.java
class CachedItemAdapter (line 29) | public abstract class CachedItemAdapter<ItemT, ViewT extends Actor> impl...
method getView (line 32) | @Override
method getViews (line 48) | protected ObjectMap<ItemT, ViewT> getViews () {
method createView (line 52) | protected abstract ViewT createView (ItemT item);
method updateView (line 54) | protected abstract void updateView (ViewT view, ItemT item);
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/adapter/ItemAdapter.java
type ItemAdapter (line 26) | public interface ItemAdapter<ItemT> {
method getView (line 27) | Actor getView (ItemT item);
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/adapter/ListAdapter.java
type ListAdapter (line 34) | public interface ListAdapter<ItemT> {
method setListView (line 36) | void setListView (ListView<ItemT> view, ListAdapterListener viewListen...
method fillTable (line 39) | void fillTable (VisTable itemsTable);
method setItemClickListener (line 42) | void setItemClickListener (ItemClickListener<ItemT> listener);
method iterable (line 45) | Iterable<ItemT> iterable ();
method size (line 48) | int size ();
method indexOf (line 51) | int indexOf (ItemT item);
method add (line 54) | void add (ItemT item);
method get (line 57) | ItemT get (int index);
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/adapter/ListSelectionAdapter.java
class ListSelectionAdapter (line 25) | public class ListSelectionAdapter<ItemT, ViewT> implements ListSelection...
method selected (line 26) | @Override
method deselected (line 31) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/adapter/SimpleListAdapter.java
class SimpleListAdapter (line 31) | public class SimpleListAdapter<ItemT> extends ArrayAdapter<ItemT, VisTab...
method SimpleListAdapter (line 34) | public SimpleListAdapter (Array<ItemT> array) {
method SimpleListAdapter (line 38) | public SimpleListAdapter (Array<ItemT> array, String styleName) {
method SimpleListAdapter (line 42) | public SimpleListAdapter (Array<ItemT> array, SimpleListAdapterStyle s...
method createView (line 47) | @Override
method selectView (line 55) | @Override
method deselectView (line 60) | @Override
class SimpleListAdapterStyle (line 65) | public static class SimpleListAdapterStyle {
method SimpleListAdapterStyle (line 69) | public SimpleListAdapterStyle () {
method SimpleListAdapterStyle (line 72) | public SimpleListAdapterStyle (Drawable background, Drawable selecti...
method SimpleListAdapterStyle (line 77) | public SimpleListAdapterStyle (SimpleListAdapterStyle style) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/async/AsyncTask.java
class AsyncTask (line 33) | public abstract class AsyncTask {
method AsyncTask (line 38) | public AsyncTask (String threadName) {
method execute (line 42) | public void execute () {
method executeInBackground (line 55) | private void executeInBackground () {
method doInBackground (line 78) | protected abstract void doInBackground () throws Exception;
method failed (line 80) | protected void failed (String message) {
method failed (line 84) | protected void failed (Exception exception) {
method failed (line 88) | protected void failed (final String message, final Exception exception) {
method setProgressPercent (line 99) | protected void setProgressPercent (final int progressPercent) {
method setMessage (line 110) | protected void setMessage (final String message) {
method executeOnGdx (line 125) | protected void executeOnGdx (final Runnable runnable) {
method addListener (line 155) | public void addListener (AsyncTaskListener listener) {
method removeListener (line 159) | public boolean removeListener (AsyncTaskListener listener) {
method getThreadName (line 163) | public String getThreadName () {
method getStatus (line 167) | public Status getStatus () {
type Status (line 171) | enum Status {
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/async/AsyncTaskListener.java
type AsyncTaskListener (line 23) | public interface AsyncTaskListener {
method messageChanged (line 25) | void messageChanged (String message);
method progressChanged (line 28) | void progressChanged (int newProgressPercent);
method finished (line 34) | void finished ();
method failed (line 37) | void failed (String message, Exception exception);
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/async/AsyncTaskProgressDialog.java
class AsyncTaskProgressDialog (line 32) | public class AsyncTaskProgressDialog extends VisWindow {
method AsyncTaskProgressDialog (line 41) | public AsyncTaskProgressDialog (String title, AsyncTask task) {
method getTask (line 84) | public AsyncTask getTask () {
method addListener (line 88) | public void addListener (AsyncTaskListener listener) {
method getStatus (line 92) | public Status getStatus () {
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/async/SteppedAsyncTask.java
class SteppedAsyncTask (line 23) | public abstract class SteppedAsyncTask extends AsyncTask {
method SteppedAsyncTask (line 27) | public SteppedAsyncTask (String threadName) {
method setTotalSteps (line 35) | protected void setTotalSteps (int totalSteps) {
method nextStep (line 42) | protected void nextStep () {
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/dialog/ConfirmDialogListener.java
type ConfirmDialogListener (line 23) | public interface ConfirmDialogListener<T> {
method result (line 25) | void result (T result);
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/dialog/Dialogs.java
class Dialogs (line 45) | public class Dialogs {
method showOKDialog (line 53) | public static VisDialog showOKDialog (Stage stage, String title, Strin...
method showOptionDialog (line 83) | public static OptionDialog showOptionDialog (Stage stage, String title...
method showConfirmDialog (line 98) | public static <T> ConfirmDialog<T> showConfirmDialog (Stage stage, Str...
method showInputDialog (line 110) | public static InputDialog showInputDialog (Stage stage, String title, ...
method showInputDialog (line 123) | public static InputDialog showInputDialog (Stage stage, String title, ...
method showInputDialog (line 136) | public static InputDialog showInputDialog (Stage stage, String title, ...
method showInputDialog (line 149) | public static InputDialog showInputDialog (Stage stage, String title, ...
method showErrorDialog (line 156) | public static DetailsDialog showErrorDialog (Stage stage, String text) {
method showErrorDialog (line 161) | public static DetailsDialog showErrorDialog (Stage stage, String text,...
method showErrorDialog (line 169) | public static DetailsDialog showErrorDialog (Stage stage, String text,...
method showDetailsDialog (line 176) | public static DetailsDialog showDetailsDialog (Stage stage, String tex...
method showDetailsDialog (line 184) | public static DetailsDialog showDetailsDialog (Stage stage, String tex...
method createScrollPane (line 191) | private static VisScrollPane createScrollPane (Actor widget) {
method getStackTrace (line 198) | private static String getStackTrace (Throwable throwable) {
method getStackTrace (line 204) | private static void getStackTrace (Throwable throwable, CharArray buil...
type OptionDialogType (line 222) | public enum OptionDialogType {
class InputDialog (line 230) | public static class InputDialog extends VisWindow {
method InputDialog (line 236) | public InputDialog (String title, String fieldTitle, boolean cancela...
method close (line 279) | @Override
method setStage (line 285) | @Override
method setText (line 292) | public InputDialog setText (String text) {
method setText (line 297) | public InputDialog setText (String text, boolean selectText) {
method addValidatableFieldListener (line 307) | private InputDialog addValidatableFieldListener (final VisTextField ...
method addListeners (line 321) | private void addListeners () {
class OptionDialog (line 355) | public static class OptionDialog extends VisWindow {
method OptionDialog (line 359) | public OptionDialog (String title, String text, OptionDialogType typ...
method setNoButtonText (line 418) | public OptionDialog setNoButtonText (String text) {
method setYesButtonText (line 424) | public OptionDialog setYesButtonText (String text) {
method setCancelButtonText (line 430) | public OptionDialog setCancelButtonText (String text) {
class DetailsDialog (line 441) | public static class DetailsDialog extends VisDialog {
method DetailsDialog (line 449) | public DetailsDialog (String text, String title, String details) {
method result (line 487) | @Override
method setWrapDetails (line 497) | public void setWrapDetails (boolean wrap) {
method setCopyDetailsButtonVisible (line 501) | public void setCopyDetailsButtonVisible (boolean visible) {
method isCopyDetailsButtonVisible (line 505) | public boolean isCopyDetailsButtonVisible () {
method setDetailsVisible (line 514) | public void setDetailsVisible (boolean visible) {
method isDetailsVisible (line 535) | public boolean isDetailsVisible () {
class ConfirmDialog (line 546) | public static class ConfirmDialog<T> extends VisDialog {
method ConfirmDialog (line 549) | public ConfirmDialog (String title, String text, String[] buttons, T...
method result (line 570) | @Override
type Text (line 577) | private enum Text implements BundleText {
method Text (line 586) | Text (final String name) {
method getBundle (line 590) | private static I18NBundle getBundle () {
method getName (line 594) | @Override
method get (line 599) | @Override
method format (line 604) | @Override
method format (line 609) | @Override
method toString (line 614) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/dialog/InputDialogAdapter.java
class InputDialogAdapter (line 23) | public class InputDialogAdapter implements InputDialogListener {
method finished (line 24) | @Override
method canceled (line 29) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/dialog/InputDialogListener.java
type InputDialogListener (line 23) | public interface InputDialogListener {
method finished (line 28) | void finished (String input);
method canceled (line 34) | void canceled ();
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/dialog/OptionDialogAdapter.java
class OptionDialogAdapter (line 23) | public class OptionDialogAdapter implements OptionDialogListener {
method yes (line 24) | @Override
method no (line 29) | @Override
method cancel (line 34) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/dialog/OptionDialogListener.java
type OptionDialogListener (line 23) | public interface OptionDialogListener {
method yes (line 25) | void yes ();
method no (line 28) | void no ();
method cancel (line 31) | void cancel ();
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/form/FormInputValidator.java
class FormInputValidator (line 30) | public abstract class FormInputValidator implements InputValidator {
method FormInputValidator (line 35) | public FormInputValidator (String errorMsg) {
method validateInput (line 39) | @Override
method validate (line 52) | protected abstract boolean validate (String input);
method hideErrorOnEmptyInput (line 59) | public FormInputValidator hideErrorOnEmptyInput () {
method setHideErrorOnEmptyInput (line 65) | public void setHideErrorOnEmptyInput (boolean hideErrorOnEmptyInput) {
method isHideErrorOnEmptyInput (line 69) | public boolean isHideErrorOnEmptyInput () {
method setErrorMsg (line 73) | public void setErrorMsg (String errorMsg) {
method getErrorMsg (line 77) | public String getErrorMsg () {
method getLastResult (line 81) | boolean getLastResult () {
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/form/FormValidator.java
class FormValidator (line 35) | public class FormValidator extends SimpleFormValidator {
method FormValidator (line 37) | public FormValidator (Disableable targetToDisable) {
method FormValidator (line 42) | public FormValidator (Disableable targetToDisable, Label messageLabel) {
method FormValidator (line 47) | public FormValidator (Disableable targetToDisable, Label messageLabel,...
method FormValidator (line 52) | public FormValidator (Disableable targetToDisable, Label messageLabel,...
method fileExists (line 57) | public FormInputValidator fileExists (VisValidatableTextField field, S...
method fileExists (line 68) | public FormInputValidator fileExists (VisValidatableTextField field, V...
method fileExists (line 81) | public FormInputValidator fileExists (VisValidatableTextField field, V...
method fileExists (line 92) | public FormInputValidator fileExists (VisValidatableTextField field, F...
method fileExists (line 103) | public FormInputValidator fileExists (VisValidatableTextField field, F...
method fileNotExists (line 112) | public FormInputValidator fileNotExists (VisValidatableTextField field...
method fileNotExists (line 124) | public FormInputValidator fileNotExists (VisValidatableTextField field...
method fileNotExists (line 136) | public FormInputValidator fileNotExists (VisValidatableTextField field...
method fileNotExists (line 148) | public FormInputValidator fileNotExists (VisValidatableTextField field...
method directory (line 156) | public FormInputValidator directory (VisValidatableTextField field, St...
method directoryEmpty (line 164) | public FormInputValidator directoryEmpty (VisValidatableTextField fiel...
method directoryNotEmpty (line 172) | public FormInputValidator directoryNotEmpty (VisValidatableTextField f...
class DirectoryValidator (line 180) | public static class DirectoryValidator extends FormInputValidator {
method DirectoryValidator (line 181) | public DirectoryValidator (String errorMsg) {
method validate (line 185) | @Override
class DirectoryContentValidator (line 197) | public static class DirectoryContentValidator extends FormInputValidat...
method DirectoryContentValidator (line 201) | public DirectoryContentValidator (String errorMsg, boolean mustBeEmp...
method validate (line 206) | @Override
method setMustBeEmpty (line 217) | public void setMustBeEmpty (boolean mustBeEmpty) {
method isMustBeEmpty (line 221) | public boolean isMustBeEmpty () {
class FileExistsValidator (line 234) | public static class FileExistsValidator extends FormInputValidator {
method FileExistsValidator (line 241) | public FileExistsValidator (String errorMsg) {
method FileExistsValidator (line 245) | public FileExistsValidator (String errorMsg, boolean mustNotExist) {
method FileExistsValidator (line 250) | public FileExistsValidator (File relativeTo, String errorMsg) {
method FileExistsValidator (line 254) | public FileExistsValidator (File relativeTo, String errorMsg, boolea...
method FileExistsValidator (line 260) | public FileExistsValidator (VisTextField relativeTo, String errorMsg) {
method FileExistsValidator (line 264) | public FileExistsValidator (VisTextField relativeTo, String errorMsg...
method FileExistsValidator (line 271) | public FileExistsValidator (VisTextField relativeTo, String errorMsg...
method validate (line 278) | @Override
method setRelativeToFile (line 300) | public void setRelativeToFile (File relativeToFile) {
method setRelativeToTextField (line 307) | public void setRelativeToTextField (VisTextField relativeTo) {
method setMustNotExist (line 314) | public void setMustNotExist (boolean notExist) {
method setErrorIfRelativeEmpty (line 318) | public void setErrorIfRelativeEmpty (boolean errorIfRelativeEmpty) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/form/SimpleFormValidator.java
class SimpleFormValidator (line 43) | public class SimpleFormValidator {
method SimpleFormValidator (line 64) | public SimpleFormValidator (Disableable targetToDisable) {
method SimpleFormValidator (line 73) | public SimpleFormValidator (Disableable targetToDisable, Label message...
method SimpleFormValidator (line 82) | public SimpleFormValidator (Disableable targetToDisable, Label message...
method SimpleFormValidator (line 91) | public SimpleFormValidator (Disableable targetToDisable, Label message...
method notEmpty (line 98) | public FormInputValidator notEmpty (VisValidatableTextField field, Str...
method integerNumber (line 106) | public FormInputValidator integerNumber (VisValidatableTextField field...
method floatNumber (line 114) | public FormInputValidator floatNumber (VisValidatableTextField field, ...
method valueGreaterThan (line 125) | public FormInputValidator valueGreaterThan (VisValidatableTextField fi...
method valueLesserThan (line 133) | public FormInputValidator valueLesserThan (VisValidatableTextField fie...
method valueGreaterThan (line 141) | public FormInputValidator valueGreaterThan (VisValidatableTextField fi...
method valueLesserThan (line 152) | public FormInputValidator valueLesserThan (VisValidatableTextField fie...
method custom (line 160) | public FormInputValidator custom (VisValidatableTextField field, FormI...
method checked (line 167) | public void checked (Button button, String errorMsg) {
method unchecked (line 174) | public void unchecked (Button button, String errorMsg) {
method add (line 184) | public void add (VisValidatableTextField field) {
method addDisableTarget (line 190) | public void addDisableTarget (Disableable disableable) {
method removeDisableTarget (line 195) | public boolean removeDisableTarget (Disableable disableable) {
method setMessageLabel (line 201) | public void setMessageLabel (Label messageLabel) {
method setSuccessMessage (line 207) | public void setSuccessMessage (String successMsg) {
method isTreatDisabledFieldsAsValid (line 212) | public boolean isTreatDisabledFieldsAsValid () {
method setTreatDisabledFieldsAsValid (line 221) | public void setTreatDisabledFieldsAsValid (boolean treatDisabledFieldA...
method validate (line 231) | public void validate () {
method updateWidgets (line 291) | private void updateWidgets () {
class ChangeSharedListener (line 312) | private class ChangeSharedListener extends ChangeListener {
method changed (line 313) | @Override
class CheckedButtonWrapper (line 319) | private static class CheckedButtonWrapper {
method CheckedButtonWrapper (line 324) | public CheckedButtonWrapper (Button button, boolean mustBeChecked, S...
method setButtonStateInvalid (line 330) | public void setButtonStateInvalid (boolean state) {
class EmptyInputValidator (line 337) | public static class EmptyInputValidator extends FormInputValidator {
method EmptyInputValidator (line 338) | public EmptyInputValidator (String errorMsg) {
method validate (line 342) | @Override
class FormValidatorStyle (line 348) | public static class FormValidatorStyle {
method FormValidatorStyle (line 356) | public FormValidatorStyle () {
method FormValidatorStyle (line 359) | public FormValidatorStyle (Color errorLabelColor, Color validLabelCo...
method FormValidatorStyle (line 364) | public FormValidatorStyle (FormValidatorStyle style) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/form/ValidatorWrapper.java
class ValidatorWrapper (line 27) | public class ValidatorWrapper extends FormInputValidator {
method ValidatorWrapper (line 30) | public ValidatorWrapper (String errorMsg, InputValidator validator) {
method validate (line 35) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/highlight/BaseHighlighter.java
class BaseHighlighter (line 30) | public class BaseHighlighter {
method addRule (line 34) | public void addRule (HighlightRule rule) {
method word (line 43) | public void word (Color color, String word) {
method word (line 52) | public void word (Color color, String... words) {
method process (line 62) | public void process (HighlightTextArea textArea, Array<Highlight> high...
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/highlight/Highlight.java
class Highlight (line 26) | public class Highlight implements Comparable<Highlight> {
method Highlight (line 31) | public Highlight (Color color, int start, int end) {
method getColor (line 39) | public Color getColor () {
method getStart (line 43) | public int getStart () {
method getEnd (line 47) | public int getEnd () {
method compareTo (line 51) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/highlight/HighlightRule.java
type HighlightRule (line 26) | public interface HighlightRule {
method process (line 33) | void process (HighlightTextArea textArea, Array<Highlight> highlights);
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/highlight/Highlighter.java
class Highlighter (line 29) | public class Highlighter extends BaseHighlighter {
method regex (line 31) | public void regex (Color color, String regex) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/highlight/RegexHighlightRule.java
class RegexHighlightRule (line 31) | public class RegexHighlightRule implements HighlightRule {
method RegexHighlightRule (line 35) | public RegexHighlightRule (Color color, String regex) {
method process (line 40) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/highlight/WordHighlightRule.java
class WordHighlightRule (line 28) | public class WordHighlightRule implements HighlightRule {
method WordHighlightRule (line 32) | public WordHighlightRule (Color color, String word) {
method process (line 37) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/value/ConstantIfVisibleValue.java
class ConstantIfVisibleValue (line 27) | public class ConstantIfVisibleValue extends Value {
method ConstantIfVisibleValue (line 31) | public ConstantIfVisibleValue (float constant) {
method ConstantIfVisibleValue (line 35) | public ConstantIfVisibleValue (Actor actor, float constant) {
method get (line 40) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/value/PrefHeightIfVisibleValue.java
class PrefHeightIfVisibleValue (line 31) | public class PrefHeightIfVisibleValue extends Value {
method get (line 34) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/value/PrefWidthIfVisibleValue.java
class PrefWidthIfVisibleValue (line 31) | public class PrefWidthIfVisibleValue extends Value {
method get (line 34) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/value/VisValue.java
class VisValue (line 29) | public class VisValue extends Value {
method VisValue (line 32) | public VisValue (ValueGetter getter) {
method get (line 36) | @Override
type ValueGetter (line 41) | public interface ValueGetter {
method get (line 42) | float get (Actor context);
FILE: ui/src/main/java/com/kotcrab/vis/ui/util/value/VisWidgetValue.java
class VisWidgetValue (line 32) | public class VisWidgetValue extends Value {
method VisWidgetValue (line 35) | public VisWidgetValue (WidgetValueGetter getter) {
method get (line 39) | @Override
type WidgetValueGetter (line 44) | public interface WidgetValueGetter {
method get (line 45) | float get (Widget context);
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/BusyBar.java
class BusyBar (line 34) | public class BusyBar extends Widget {
method BusyBar (line 39) | public BusyBar () {
method BusyBar (line 43) | public BusyBar (String styleName) {
method BusyBar (line 47) | public BusyBar (BusyBarStyle style) {
method getPrefHeight (line 51) | @Override
method getPrefWidth (line 56) | @Override
method draw (line 61) | @Override
method resetSegment (line 78) | public void resetSegment () {
method getSegmentDeltaX (line 82) | protected float getSegmentDeltaX () {
method getStyle (line 86) | public BusyBarStyle getStyle () {
class BusyBarStyle (line 90) | static public class BusyBarStyle {
method BusyBarStyle (line 96) | public BusyBarStyle () {
method BusyBarStyle (line 99) | public BusyBarStyle (BusyBarStyle style) {
method BusyBarStyle (line 106) | public BusyBarStyle (Drawable segment, int segmentOverflow, int segm...
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/ButtonBar.java
class ButtonBar (line 35) | public class ButtonBar {
method ButtonBar (line 47) | public ButtonBar () {
method ButtonBar (line 51) | public ButtonBar (String order) {
method ButtonBar (line 55) | public ButtonBar (Sizes sizes) {
method ButtonBar (line 59) | public ButtonBar (Sizes sizes, String order) {
method getDefaultOrder (line 65) | private static String getDefaultOrder () {
method isIgnoreSpacing (line 74) | public boolean isIgnoreSpacing () {
method setIgnoreSpacing (line 79) | public void setIgnoreSpacing (boolean ignoreSpacing) {
method getOrder (line 83) | public String getOrder () {
method setOrder (line 87) | public void setOrder (String order) {
method setButton (line 92) | public void setButton (ButtonType type, ChangeListener listener) {
method setButton (line 96) | public void setButton (ButtonType type, String text, ChangeListener li...
method setButton (line 100) | public void setButton (ButtonType type, Button button) {
method setButton (line 104) | public void setButton (ButtonType type, Button button, ChangeListener ...
method getButton (line 112) | public Button getButton (ButtonType type) {
method getTextButton (line 120) | public VisTextButton getTextButton (ButtonType type) {
method createTable (line 128) | public VisTable createTable () {
type ButtonType (line 154) | public enum ButtonType {
method ButtonType (line 170) | ButtonType (String key, char id) {
method getId (line 175) | public char getId () {
method getText (line 179) | public final String getText () {
method toString (line 183) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/CollapsibleWidget.java
class CollapsibleWidget (line 34) | public class CollapsibleWidget extends WidgetGroup {
method CollapsibleWidget (line 46) | public CollapsibleWidget () {
method CollapsibleWidget (line 49) | public CollapsibleWidget (Table table) {
method CollapsibleWidget (line 53) | public CollapsibleWidget (Table table, boolean collapsed) {
method setCollapsed (line 62) | public void setCollapsed (boolean collapse, boolean withAnimation) {
method setCollapsed (line 91) | public void setCollapsed (boolean collapse) {
method isCollapsed (line 95) | public boolean isCollapsed () {
method updateTouchable (line 99) | private void updateTouchable () {
method setCollapseDuration (line 106) | public void setCollapseDuration (float collapseDuration) {
method setCollapseInterpolation (line 110) | public void setCollapseInterpolation (Interpolation collapseInterpolat...
method draw (line 114) | @Override
method layout (line 131) | @Override
method getPrefWidth (line 145) | @Override
method getPrefHeight (line 150) | @Override
method setTable (line 164) | public void setTable (Table table) {
method childrenChanged (line 170) | @Override
class CollapseAction (line 176) | private class CollapseAction extends FloatAction {
method update (line 178) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/Draggable.java
class Draggable (line 35) | public class Draggable extends InputListener {
method Draggable (line 99) | public Draggable () {
method Draggable (line 104) | public Draggable (final DragListener listener) {
method mouseMoved (line 112) | @Override
method touchDown (line 117) | @Override
method scrolled (line 122) | @Override
method attachTo (line 135) | public void attachTo (final Actor actor) {
method getOffsetX (line 146) | public float getOffsetX () {
method getOffsetY (line 151) | public float getOffsetY () {
method getAlpha (line 156) | public float getAlpha () {
method setAlpha (line 161) | public void setAlpha (final float alpha) {
method isBlockingInput (line 166) | public boolean isBlockingInput () {
method setBlockInput (line 174) | public void setBlockInput (final boolean blockInput) {
method isInvisibleWhenDragged (line 179) | public boolean isInvisibleWhenDragged () {
method setInvisibleWhenDragged (line 184) | public void setInvisibleWhenDragged (final boolean invisibleWhenDragge...
method isKeptWithinParent (line 189) | public boolean isKeptWithinParent () {
method setKeepWithinParent (line 198) | public void setKeepWithinParent (final boolean keepWithinParent) {
method getDeadzoneRadius (line 203) | public float getDeadzoneRadius () {
method setDeadzoneRadius (line 212) | public void setDeadzoneRadius (float deadzoneRadius) {
method getFadingTime (line 217) | public float getFadingTime () {
method setFadingTime (line 222) | public void setFadingTime (final float fadingTime) {
method getMovingTime (line 227) | public float getMovingTime () {
method setMovingTime (line 232) | public void setMovingTime (final float movingTime) {
method setMovingInterpolation (line 237) | public void setMovingInterpolation (final Interpolation movingInterpol...
method setFadingInterpolation (line 242) | public void setFadingInterpolation (final Interpolation fadingInterpol...
method setListener (line 250) | public void setListener (final DragListener listener) {
method getListener (line 255) | public DragListener getListener () {
method touchDown (line 259) | @Override
method isValid (line 276) | protected boolean isValid (final Actor actor) {
method isDisabled (line 284) | protected boolean isDisabled (final Actor actor) {
method attachMimic (line 294) | protected void attachMimic (final Actor actor, final InputEvent event,...
method addBlocker (line 313) | protected static void addBlocker (final Stage stage) {
method removeBlocker (line 320) | protected static void removeBlocker () {
method getStageCoordinates (line 325) | protected void getStageCoordinates (final InputEvent event) {
method getStageCoordinatesWithDeadzone (line 335) | private void getStageCoordinatesWithDeadzone (final InputEvent event) {
method isWithinDeadzone (line 367) | private boolean isWithinDeadzone (InputEvent event, float parentX, flo...
method getStageCoordinatesWithinParent (line 372) | private void getStageCoordinatesWithinParent (final InputEvent event) {
method getStageCoordinatesWithOffset (line 399) | private void getStageCoordinatesWithOffset (final InputEvent event) {
method touchDragged (line 404) | @Override
method touchUp (line 415) | @Override
method isDragged (line 433) | public boolean isDragged () {
method addMimicHidingAction (line 438) | protected void addMimicHidingAction (final Action hidingAction, final ...
type DragListener (line 448) | public static interface DragListener {
method onStart (line 459) | boolean onStart (Draggable draggable, Actor actor, float stageX, flo...
method onDrag (line 467) | void onDrag (Draggable draggable, Actor actor, float stageX, float s...
method onEnd (line 477) | boolean onEnd (Draggable draggable, Actor actor, float stageX, float...
class DragAdapter (line 485) | public static class DragAdapter implements DragListener {
method onStart (line 486) | @Override
method onDrag (line 491) | @Override
method onEnd (line 495) | @Override
class MimicActor (line 506) | public static class MimicActor extends Actor {
method MimicActor (line 511) | public MimicActor () {
method MimicActor (line 515) | public MimicActor (final Actor actor) {
method remove (line 519) | @Override
method getActor (line 526) | public Actor getActor () {
method setActor (line 531) | public void setActor (final Actor actor) {
method getWidth (line 535) | @Override
method getHeight (line 540) | @Override
method draw (line 545) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/HighlightTextArea.java
class HighlightTextArea (line 43) | public class HighlightTextArea extends ScrollableTextArea {
method HighlightTextArea (line 54) | public HighlightTextArea (String text) {
method HighlightTextArea (line 59) | public HighlightTextArea (String text, String styleName) {
method HighlightTextArea (line 64) | public HighlightTextArea (String text, VisTextFieldStyle style) {
method init (line 69) | private void init() {
method updateDisplayText (line 73) | @Override
method calculateOffsets (line 79) | @Override
method drawText (line 156) | @Override
method processHighlighter (line 181) | public void processHighlighter () {
method setHighlighter (line 192) | public void setHighlighter (BaseHighlighter highlighter) {
method getHighlighter (line 197) | public BaseHighlighter getHighlighter () {
method getPrefWidth (line 201) | @Override
method getPrefHeight (line 206) | @Override
method createCompatibleScrollPane (line 211) | @Override
class Chunk (line 218) | private static class Chunk {
method Chunk (line 224) | public Chunk (String text, Color color, float offsetX, int lineIndex) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/HorizontalCollapsibleWidget.java
class HorizontalCollapsibleWidget (line 33) | public class HorizontalCollapsibleWidget extends WidgetGroup {
method HorizontalCollapsibleWidget (line 45) | public HorizontalCollapsibleWidget () {
method HorizontalCollapsibleWidget (line 48) | public HorizontalCollapsibleWidget (Table table) {
method HorizontalCollapsibleWidget (line 52) | public HorizontalCollapsibleWidget (Table table, boolean collapsed) {
method setCollapsed (line 61) | public void setCollapsed (boolean collapse, boolean withAnimation) {
method setCollapsed (line 90) | public void setCollapsed (boolean collapse) {
method isCollapsed (line 94) | public boolean isCollapsed () {
method updateTouchable (line 98) | private void updateTouchable () {
method draw (line 105) | @Override
method layout (line 122) | @Override
method getPrefHeight (line 136) | @Override
method getPrefWidth (line 141) | @Override
method setTable (line 155) | public void setTable (Table table) {
method childrenChanged (line 161) | @Override
class CollapseAction (line 167) | private class CollapseAction extends FloatAction {
method update (line 169) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/LinkLabel.java
class LinkLabel (line 38) | public class LinkLabel extends VisLabel {
method LinkLabel (line 47) | public LinkLabel (CharSequence url) {
method LinkLabel (line 52) | public LinkLabel (CharSequence text, CharSequence url) {
method LinkLabel (line 57) | public LinkLabel (CharSequence text, int alignment) {
method LinkLabel (line 63) | public LinkLabel (CharSequence text, Color textColor) {
method LinkLabel (line 69) | public LinkLabel (CharSequence text, LinkLabelStyle style) {
method LinkLabel (line 74) | public LinkLabel (CharSequence text, CharSequence url, String styleNam...
method LinkLabel (line 79) | public LinkLabel (CharSequence text, CharSequence url, LinkLabelStyle ...
method LinkLabel (line 84) | public LinkLabel (CharSequence text, String fontName, Color color) {
method getStyle (line 89) | @Override
method init (line 94) | private void init (CharSequence linkUrl) {
method draw (line 124) | @Override
method getUrl (line 137) | public CharSequence getUrl () {
method setUrl (line 141) | public void setUrl (CharSequence url) {
method getListener (line 145) | public LinkLabelListener getListener () {
method setListener (line 149) | public void setListener (LinkLabelListener listener) {
type LinkLabelListener (line 153) | public interface LinkLabelListener {
method clicked (line 154) | void clicked (String url);
class LinkLabelStyle (line 157) | public static class LinkLabelStyle extends LabelStyle {
method LinkLabelStyle (line 161) | public LinkLabelStyle () {
method LinkLabelStyle (line 164) | public LinkLabelStyle (BitmapFont font, Color fontColor, Drawable un...
method LinkLabelStyle (line 169) | public LinkLabelStyle (LinkLabelStyle style) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/ListView.java
class ListView (line 36) | public class ListView<ItemT> {
method ListView (line 52) | public ListView (ListAdapter<ItemT> adapter) {
method ListView (line 56) | public ListView (ListAdapter<ItemT> adapter, String styleName) {
method ListView (line 60) | public ListView (ListAdapter<ItemT> adapter, ListViewStyle style) {
method rebuildView (line 79) | public void rebuildView () {
method rebuildView (line 83) | private void rebuildView (boolean full) {
method getAdapter (line 105) | public ListAdapter<ItemT> getAdapter () {
method getMainTable (line 110) | public ListViewTable<ItemT> getMainTable () {
method getScrollPane (line 118) | public VisScrollPane getScrollPane () {
method setItemClickListener (line 122) | public void setItemClickListener (ItemClickListener<ItemT> listener) {
method getClickListener (line 127) | public ItemClickListener<ItemT> getClickListener () {
method getHeader (line 131) | public Actor getHeader () {
method setHeader (line 135) | public void setHeader (Actor header) {
method getFooter (line 140) | public Actor getFooter () {
method setFooter (line 144) | public void setFooter (Actor footer) {
method setUpdatePolicy (line 149) | public void setUpdatePolicy (UpdatePolicy updatePolicy) {
method getUpdatePolicy (line 153) | public UpdatePolicy getUpdatePolicy () {
type ItemClickListener (line 157) | public interface ItemClickListener<ItemT> {
method clicked (line 158) | void clicked (ItemT item);
class ListAdapterListener (line 161) | public class ListAdapterListener {
method invalidateDataSet (line 162) | public void invalidateDataSet () {
type UpdatePolicy (line 169) | public enum UpdatePolicy {
class ListViewTable (line 184) | public static class ListViewTable<ItemT> extends VisTable {
method ListViewTable (line 187) | private ListViewTable (ListView<ItemT> listView) {
method draw (line 191) | @Override
method getListView (line 197) | public ListView<ItemT> getListView () {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/ListViewStyle.java
class ListViewStyle (line 22) | public class ListViewStyle {
method ListViewStyle (line 25) | public ListViewStyle () {
method ListViewStyle (line 28) | public ListViewStyle (ListViewStyle style) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/Menu.java
class Menu (line 32) | public class Menu extends PopupMenu {
method Menu (line 40) | public Menu (String title) {
method Menu (line 44) | public Menu (String title, String styleName) {
method Menu (line 48) | public Menu (String title, MenuStyle style) {
method getTitle (line 75) | public String getTitle () {
method switchMenu (line 79) | private void switchMenu () {
method showMenu (line 84) | private void showMenu () {
method remove (line 91) | @Override
method setMenuBar (line 99) | void setMenuBar (MenuBar menuBar) {
method getOpenButton (line 104) | TextButton getOpenButton () {
method selectButton (line 108) | void selectButton () {
method deselectButton (line 112) | void deselectButton () {
class MenuStyle (line 116) | public static class MenuStyle extends PopupMenuStyle {
method MenuStyle (line 119) | public MenuStyle () {
method MenuStyle (line 122) | public MenuStyle (MenuStyle style) {
method MenuStyle (line 127) | public MenuStyle (Drawable background, Drawable border, VisTextButto...
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/MenuBar.java
class MenuBar (line 28) | public class MenuBar {
method MenuBar (line 37) | public MenuBar () {
method MenuBar (line 41) | public MenuBar (String styleName) {
method MenuBar (line 45) | public MenuBar (MenuBarStyle style) {
method addMenu (line 61) | public void addMenu (Menu menu) {
method removeMenu (line 67) | public boolean removeMenu (Menu menu) {
method insertMenu (line 78) | public void insertMenu (int index, Menu menu) {
method rebuild (line 84) | private void rebuild () {
method closeMenu (line 91) | public void closeMenu () {
method getCurrentMenu (line 99) | Menu getCurrentMenu () {
method setCurrentMenu (line 103) | void setCurrentMenu (Menu newMenu) {
method setMenuListener (line 116) | public void setMenuListener (MenuBarListener menuListener) {
method getTable (line 121) | public Table getTable () {
class MenuBarStyle (line 125) | public static class MenuBarStyle {
method MenuBarStyle (line 128) | public MenuBarStyle () {
method MenuBarStyle (line 131) | public MenuBarStyle (MenuBarStyle style) {
method MenuBarStyle (line 135) | public MenuBarStyle (Drawable background) {
type MenuBarListener (line 140) | public interface MenuBarListener {
method menuOpened (line 141) | void menuOpened (Menu menu);
method menuClosed (line 143) | void menuClosed (Menu menu);
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/MenuItem.java
class MenuItem (line 48) | public class MenuItem extends Button {
method MenuItem (line 69) | public MenuItem (String text) {
method MenuItem (line 73) | public MenuItem (String text, String styleName) {
method MenuItem (line 77) | public MenuItem (String text, ChangeListener changeListener) {
method MenuItem (line 82) | public MenuItem (String text, Drawable drawable) {
method MenuItem (line 86) | public MenuItem (String text, Drawable drawable, ChangeListener change...
method MenuItem (line 91) | public MenuItem (String text, Drawable drawable, String styleName) {
method MenuItem (line 95) | public MenuItem (String text, Image image) {
method MenuItem (line 99) | public MenuItem (String text, Image image, ChangeListener changeListen...
method MenuItem (line 104) | public MenuItem (String text, Image image, String styleName) {
method MenuItem (line 110) | public MenuItem (String text, Image image, MenuItemStyle style) {
method MenuItem (line 115) | public MenuItem (String text, Drawable drawable, MenuItemStyle style) {
method init (line 120) | private void init (String text, Image image, MenuItemStyle style) {
method setSubMenu (line 168) | public void setSubMenu (final PopupMenu subMenu) {
method getSubMenu (line 178) | public PopupMenu getSubMenu () {
method packContainerMenu (line 182) | void packContainerMenu () {
method setParent (line 186) | @Override
method hideSubMenu (line 195) | void hideSubMenu () {
method showSubMenu (line 201) | void showSubMenu () {
method fireChangeEvent (line 224) | void fireChangeEvent () {
method getStyle (line 230) | @Override
method setStyle (line 235) | @Override
method draw (line 249) | @Override
method isOver (line 280) | @Override
method isGenerateDisabledImage (line 289) | public boolean isGenerateDisabledImage () {
method setGenerateDisabledImage (line 297) | public void setGenerateDisabledImage (boolean generateDisabledImage) {
method setShortcut (line 306) | public MenuItem setShortcut (int keycode) {
method getShortcut (line 310) | public CharSequence getShortcut () {
method setShortcut (line 320) | public MenuItem setShortcut (String text) {
method setShortcut (line 336) | public MenuItem setShortcut (int... keycodes) {
method setStage (line 342) | @Override
method getImage (line 348) | public Image getImage () {
method getImageCell (line 352) | public Cell<?> getImageCell () {
method getLabel (line 356) | public Label getLabel () {
method getLabelCell (line 360) | public Cell<?> getLabelCell () {
method getText (line 364) | public CharSequence getText () {
method setText (line 368) | public void setText (CharSequence text) {
method getSubMenuIconCell (line 372) | public Cell<Image> getSubMenuIconCell () {
method getShortcutCell (line 376) | public Cell<VisLabel> getShortcutCell () {
class MenuItemStyle (line 380) | static public class MenuItemStyle extends TextButtonStyle {
method MenuItemStyle (line 383) | public MenuItemStyle () {
method MenuItemStyle (line 386) | public MenuItemStyle (Drawable subMenu) {
method MenuItemStyle (line 390) | public MenuItemStyle (MenuItemStyle style) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/MultiSplitPane.java
class MultiSplitPane (line 48) | public class MultiSplitPane extends WidgetGroup {
method MultiSplitPane (line 64) | public MultiSplitPane (boolean vertical) {
method MultiSplitPane (line 68) | public MultiSplitPane (boolean vertical, String styleName) {
method MultiSplitPane (line 72) | public MultiSplitPane (boolean vertical, MultiSplitPaneStyle style) {
method initialize (line 79) | private void initialize () {
method getHandleContaining (line 160) | private Rectangle getHandleContaining (float x, float y) {
method getStyle (line 174) | public MultiSplitPaneStyle getStyle () {
method setStyle (line 178) | public void setStyle (MultiSplitPaneStyle style) {
method layout (line 183) | @Override
method getPrefWidth (line 199) | @Override
method getPrefHeight (line 209) | @Override
method getMinWidth (line 220) | @Override
method getMinHeight (line 225) | @Override
method setVertical (line 230) | public void setVertical (boolean vertical) {
method calculateHorizBoundsAndPositions (line 234) | private void calculateHorizBoundsAndPositions () {
method calculateVertBoundsAndPositions (line 255) | private void calculateVertBoundsAndPositions () {
method draw (line 276) | @Override
method hit (line 312) | @Override
method setWidgets (line 323) | public void setWidgets (Actor... actors) {
method setWidgets (line 328) | public void setWidgets (Iterable<Actor> actors) {
method setSplit (line 355) | public void setSplit (int handleBarIndex, float split) {
method addActorAfter (line 364) | @Override
method addActor (line 369) | @Override
method addActorAt (line 374) | @Override
method addActorBefore (line 379) | @Override
method removeActor (line 384) | @Override
class MultiSplitPaneStyle (line 389) | public static class MultiSplitPaneStyle extends VisSplitPane.VisSplitP...
method MultiSplitPaneStyle (line 390) | public MultiSplitPaneStyle () {
method MultiSplitPaneStyle (line 393) | public MultiSplitPaneStyle (VisSplitPane.VisSplitPaneStyle style) {
method MultiSplitPaneStyle (line 397) | public MultiSplitPaneStyle (Drawable handle, Drawable handleOver) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/PopupMenu.java
class PopupMenu (line 44) | public class PopupMenu extends Table {
method PopupMenu (line 64) | public PopupMenu () {
method PopupMenu (line 68) | public PopupMenu (String styleName) {
method PopupMenu (line 72) | public PopupMenu (PopupMenuStyle style) {
method PopupMenu (line 76) | public PopupMenu (Sizes sizes, PopupMenuStyle style) {
method removeEveryMenu (line 90) | public static void removeEveryMenu (Stage stage) {
method createListeners (line 99) | private void createListeners () {
method getRootMenu (line 171) | private PopupMenu getRootMenu () {
method subMenuStructureContains (line 176) | private boolean subMenuStructureContains (float x, float y) {
method removeHierarchy (line 182) | private void removeHierarchy () {
method selectNextItem (line 189) | private void selectNextItem () {
method selectPreviousItem (line 203) | private void selectPreviousItem () {
method hasSelectableMenuItems (line 217) | private boolean hasSelectableMenuItems () {
method add (line 225) | @Override
method addItem (line 234) | public void addItem (MenuItem item) {
method addSeparator (line 241) | public void addSeparator () {
method getDefaultInputListener (line 249) | public InputListener getDefaultInputListener () {
method getDefaultInputListener (line 258) | public InputListener getDefaultInputListener (final int mouseButton) {
method draw (line 277) | @Override
method showMenu (line 289) | public void showMenu (Stage stage, float x, float y) {
method showMenu (line 301) | public void showMenu (Stage stage, Actor actor) {
method contains (line 312) | public boolean contains (float x, float y) {
method setActiveSubMenu (line 317) | void setActiveSubMenu (PopupMenu newSubMenu) {
method getActiveSubMenu (line 326) | public PopupMenu getActiveSubMenu () {
method setStage (line 330) | @Override
method remove (line 336) | @Override
method setActiveItem (line 346) | void setActiveItem (MenuItem newItem, boolean keyboardChange) {
method getActiveItem (line 351) | public MenuItem getActiveItem () {
method setParentMenu (line 355) | void setParentMenu (PopupMenu parentSubMenu) {
method getListener (line 359) | public PopupMenuListener getListener () {
method setListener (line 363) | public void setListener (PopupMenuListener listener) {
type PopupMenuListener (line 371) | public interface PopupMenuListener {
method activeItemChanged (line 378) | void activeItemChanged (MenuItem newActiveItem, boolean changedByKey...
class PopupMenuStyle (line 381) | static public class PopupMenuStyle {
method PopupMenuStyle (line 385) | public PopupMenuStyle () {
method PopupMenuStyle (line 388) | public PopupMenuStyle (Drawable background, Drawable border) {
method PopupMenuStyle (line 393) | public PopupMenuStyle (PopupMenuStyle style) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/ScrollableTextArea.java
class ScrollableTextArea (line 37) | public class ScrollableTextArea extends VisTextArea implements Cullable {
method ScrollableTextArea (line 40) | public ScrollableTextArea (String text) {
method ScrollableTextArea (line 44) | public ScrollableTextArea (String text, String styleName) {
method ScrollableTextArea (line 48) | public ScrollableTextArea (String text, VisTextFieldStyle style) {
method createInputListener (line 52) | @Override
method setParent (line 57) | @Override
method updateScrollPosition (line 65) | private void updateScrollPosition () {
method setCullingArea (line 78) | @Override
method createCompatibleScrollPane (line 89) | public ScrollPane createCompatibleScrollPane () {
method sizeChanged (line 99) | @Override
method getPrefHeight (line 105) | @Override
method setText (line 110) | @Override
method changeText (line 118) | @Override
method updateScrollLayout (line 125) | void updateScrollLayout () {
class ScrollTextAreaListener (line 132) | public class ScrollTextAreaListener extends TextAreaListener {
method keyDown (line 133) | @Override
method keyTyped (line 139) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/Separator.java
class Separator (line 32) | public class Separator extends Widget {
method Separator (line 36) | public Separator () {
method Separator (line 40) | public Separator (String styleName) {
method Separator (line 44) | public Separator (SeparatorStyle style) {
method getPrefHeight (line 48) | @Override
method getPrefWidth (line 53) | @Override
method draw (line 58) | @Override
method getStyle (line 65) | public SeparatorStyle getStyle () {
class SeparatorStyle (line 69) | static public class SeparatorStyle {
method SeparatorStyle (line 73) | public SeparatorStyle () {
method SeparatorStyle (line 76) | public SeparatorStyle (SeparatorStyle style) {
method SeparatorStyle (line 81) | public SeparatorStyle (Drawable bg, int thickness) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/Tooltip.java
class Tooltip (line 43) | public class Tooltip extends VisTable {
method Tooltip (line 64) | private Tooltip (Builder builder) {
method Tooltip (line 77) | public Tooltip () {
method Tooltip (line 81) | public Tooltip (String styleName) {
method Tooltip (line 86) | public Tooltip (TooltipStyle style) {
method removeTooltip (line 95) | public static void removeTooltip (Actor target) {
method init (line 102) | private void init (TooltipStyle style, Actor target, Actor content) {
method attach (line 143) | public void attach () {
method detach (line 159) | public void detach () {
method setTarget (line 165) | public void setTarget (Actor newTarget) {
method getTarget (line 171) | public Actor getTarget () {
method fadeOut (line 175) | private void fadeOut () {
method fadeIn (line 180) | private VisTable fadeIn () {
method getContent (line 187) | public Actor getContent () {
method setContent (line 191) | public void setContent (Actor content) {
method getContentCell (line 197) | public Cell<Actor> getContentCell () {
method setText (line 206) | public void setText (String text) {
method setPosition (line 215) | @Override
method getAppearDelayTime (line 220) | public float getAppearDelayTime () {
method setAppearDelayTime (line 224) | public void setAppearDelayTime (float appearDelayTime) {
method getFadeTime (line 228) | public float getFadeTime () {
method setFadeTime (line 232) | public void setFadeTime (float fadeTime) {
method isMouseMoveFadeOut (line 236) | public boolean isMouseMoveFadeOut () {
method setMouseMoveFadeOut (line 244) | public void setMouseMoveFadeOut (boolean mouseMoveFadeOut) {
class DisplayTask (line 248) | private class DisplayTask extends Task {
method run (line 249) | @Override
class TooltipInputListener (line 257) | private class TooltipInputListener extends InputListener {
method touchDown (line 258) | @Override
method enter (line 266) | @Override
method exit (line 287) | @Override
method mouseMoved (line 295) | @Override
class TooltipStyle (line 302) | public static class TooltipStyle {
method TooltipStyle (line 305) | public TooltipStyle () {
method TooltipStyle (line 308) | public TooltipStyle (TooltipStyle style) {
method TooltipStyle (line 312) | public TooltipStyle (Drawable background) {
class Builder (line 317) | public static class Builder {
method Builder (line 324) | public Builder (Actor content) {
method Builder (line 328) | public Builder (String text) {
method Builder (line 332) | public Builder (String text, int textAlign) {
method target (line 338) | public Builder target (Actor target) {
method style (line 343) | public Builder style (String styleName) {
method style (line 347) | public Builder style (TooltipStyle style) {
method width (line 353) | public Builder width (float width) {
method build (line 362) | public Tooltip build () {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/VisCheckBox.java
class VisCheckBox (line 46) | public class VisCheckBox extends TextButton implements Focusable, Border...
method VisCheckBox (line 58) | public VisCheckBox (String text) {
method VisCheckBox (line 62) | public VisCheckBox (String text, boolean checked) {
method VisCheckBox (line 67) | public VisCheckBox (String text, String styleName) {
method VisCheckBox (line 71) | public VisCheckBox (String text, VisCheckBoxStyle style) {
method getStyle (line 96) | @Override
method setStyle (line 101) | @Override
method draw (line 109) | @Override
method getCheckboxBgImage (line 122) | protected Drawable getCheckboxBgImage () {
method getCheckboxTickImage (line 129) | protected Drawable getCheckboxTickImage () {
method getBackgroundImage (line 136) | public Image getBackgroundImage () {
method getTickImage (line 140) | public Image getTickImage () {
method getImageStack (line 144) | public Stack getImageStack () {
method getImageStackCell (line 148) | public Cell<Stack> getImageStackCell () {
method setStateInvalid (line 153) | public void setStateInvalid (boolean stateInvalid) {
method setStateInvalid (line 157) | public boolean setStateInvalid () {
method focusLost (line 161) | @Override
method focusGained (line 166) | @Override
method isFocusBorderEnabled (line 171) | @Override
method setFocusBorderEnabled (line 176) | @Override
class VisCheckBoxStyle (line 181) | static public class VisCheckBoxStyle extends TextButtonStyle {
method VisCheckBoxStyle (line 191) | public VisCheckBoxStyle () {
method VisCheckBoxStyle (line 195) | public VisCheckBoxStyle (Drawable checkBackground, Drawable tick, Bi...
method VisCheckBoxStyle (line 202) | public VisCheckBoxStyle (VisCheckBoxStyle style) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/VisDialog.java
class VisDialog (line 42) | public class VisDialog extends VisWindow {
method touchDown (line 52) | @Override
method VisDialog (line 59) | public VisDialog (String title) {
method VisDialog (line 66) | public VisDialog (String title, String windowStyleName) {
method VisDialog (line 73) | public VisDialog (String title, WindowStyle windowStyle) {
method initialize (line 80) | private void initialize () {
method setStage (line 126) | @Override
method getContentTable (line 135) | public Table getContentTable () {
method getButtonsTable (line 139) | public Table getButtonsTable () {
method text (line 144) | public VisDialog text (String text) {
method text (line 151) | public VisDialog text (String text, LabelStyle labelStyle) {
method text (line 156) | public VisDialog text (Label label) {
method button (line 165) | public VisDialog button (String text) {
method button (line 173) | public VisDialog button (String text, Object object) {
method button (line 183) | public VisDialog button (String text, Object object, VisTextButtonStyl...
method button (line 188) | public VisDialog button (Button button) {
method button (line 196) | public VisDialog button (Button button, Object object) {
method show (line 203) | public VisDialog show (Stage stage, Action action) {
method show (line 225) | public VisDialog show (Stage stage) {
method hide (line 232) | public void hide (Action action) {
method hide (line 255) | public void hide () {
method setObject (line 260) | public void setObject (Actor actor, Object object) {
method key (line 268) | public VisDialog key (final int keycode, final Object object) {
method result (line 287) | protected void result (Object object) {
method cancel (line 290) | public void cancel () {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/VisImage.java
class VisImage (line 34) | public class VisImage extends Image {
method VisImage (line 35) | public VisImage () {
method VisImage (line 38) | public VisImage (NinePatch patch) {
method VisImage (line 42) | public VisImage (TextureRegion region) {
method VisImage (line 46) | public VisImage (Texture texture) {
method VisImage (line 50) | public VisImage (String drawableName) {
method VisImage (line 54) | public VisImage (Skin skin, String drawableName) {
method VisImage (line 58) | public VisImage (Drawable drawable) {
method VisImage (line 62) | public VisImage (Drawable drawable, Scaling scaling) {
method VisImage (line 66) | public VisImage (Drawable drawable, Scaling scaling, int align) {
method setDrawable (line 70) | public void setDrawable (Texture texture) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/VisImageButton.java
class VisImageButton (line 44) | public class VisImageButton extends Button implements Focusable, BorderO...
method VisImageButton (line 54) | public VisImageButton (Drawable imageUp) {
method VisImageButton (line 58) | public VisImageButton (Drawable imageUp, String tooltipText) {
method VisImageButton (line 63) | public VisImageButton (Drawable imageUp, Drawable imageDown) {
method VisImageButton (line 67) | public VisImageButton (Drawable imageUp, Drawable imageDown, Drawable ...
method VisImageButton (line 71) | public VisImageButton (Drawable imageUp, Drawable imageDown, Drawable ...
method VisImageButton (line 80) | public VisImageButton (String styleName) {
method VisImageButton (line 85) | public VisImageButton (VisImageButtonStyle style) {
method init (line 90) | private void init () {
method getStyle (line 107) | @Override
method setStyle (line 112) | @Override
method updateImage (line 121) | private void updateImage () {
method draw (line 144) | @Override
method getImage (line 152) | public Image getImage () {
method getImageCell (line 156) | public Cell<?> getImageCell () {
method setDisabled (line 160) | @Override
method focusLost (line 166) | @Override
method focusGained (line 171) | @Override
method isFocusBorderEnabled (line 176) | @Override
method setFocusBorderEnabled (line 181) | @Override
method isGenerateDisabledImage (line 186) | public boolean isGenerateDisabledImage () {
method setGenerateDisabledImage (line 194) | public void setGenerateDisabledImage (boolean generate) {
class VisImageButtonStyle (line 202) | static public class VisImageButtonStyle extends ButtonStyle {
method VisImageButtonStyle (line 207) | public VisImageButtonStyle () {
method VisImageButtonStyle (line 210) | public VisImageButtonStyle (Drawable up, Drawable down, Drawable che...
method VisImageButtonStyle (line 218) | public VisImageButtonStyle (VisImageButtonStyle style) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/VisImageTextButton.java
class VisImageTextButton (line 51) | public class VisImageTextButton extends Button implements Focusable, Bor...
type Orientation (line 52) | public enum Orientation { TEXT_RIGHT, TEXT_LEFT, TEXT_TOP, TEXT_BOTTOM }
method VisImageTextButton (line 65) | public VisImageTextButton (String text, Drawable imageUp) {
method VisImageTextButton (line 69) | public VisImageTextButton (String text, String styleName, Drawable ima...
method VisImageTextButton (line 73) | public VisImageTextButton (String text, String styleName, Drawable ima...
method VisImageTextButton (line 81) | public VisImageTextButton (String text, String styleName) {
method VisImageTextButton (line 86) | public VisImageTextButton (String text, VisImageTextButtonStyle style) {
method init (line 91) | private void init (String text) {
method addActorsBasedOnOrientation (line 115) | private void addActorsBasedOnOrientation() {
method setStyle (line 138) | @Override
method getStyle (line 154) | @Override
method updateImage (line 159) | private void updateImage () {
method getFontColor (line 183) | protected @Null Color getFontColor () {
method draw (line 206) | @Override
method getOrientation (line 216) | public Orientation getOrientation() {
method setOrientation (line 220) | public void setOrientation(Orientation orientation) {
method getImage (line 226) | public Image getImage () {
method getImageCell (line 230) | public Cell getImageCell () {
method getLabel (line 234) | public Label getLabel () {
method getLabelCell (line 238) | public Cell getLabelCell () {
method setText (line 242) | public void setText (CharSequence text) {
method getText (line 246) | public CharSequence getText () {
method toString (line 250) | public String toString () {
method setDisabled (line 254) | @Override
method focusLost (line 260) | @Override
method focusGained (line 265) | @Override
method isFocusBorderEnabled (line 270) | @Override
method setFocusBorderEnabled (line 275) | @Override
method isGenerateDisabledImage (line 280) | public boolean isGenerateDisabledImage () {
method setGenerateDisabledImage (line 288) | public void setGenerateDisabledImage (boolean generate) {
class VisImageTextButtonStyle (line 296) | static public class VisImageTextButtonStyle extends VisTextButtonStyle {
method VisImageTextButtonStyle (line 300) | public VisImageTextButtonStyle () {
method VisImageTextButtonStyle (line 303) | public VisImageTextButtonStyle (Drawable up, Drawable down, Drawable...
method VisImageTextButtonStyle (line 307) | public VisImageTextButtonStyle (VisImageTextButtonStyle style) {
method VisImageTextButtonStyle (line 317) | public VisImageTextButtonStyle (VisTextButtonStyle style) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/VisLabel.java
class VisLabel (line 28) | public class VisLabel extends Label {
method VisLabel (line 29) | public VisLabel () {
method VisLabel (line 33) | public VisLabel (CharSequence text, Color textColor) {
method VisLabel (line 38) | public VisLabel (CharSequence text, int alignment) {
method VisLabel (line 43) | public VisLabel (CharSequence text) {
method VisLabel (line 47) | public VisLabel (CharSequence text, LabelStyle style) {
method VisLabel (line 51) | public VisLabel (CharSequence text, String styleName) {
method VisLabel (line 55) | public VisLabel (CharSequence text, String fontName, Color color) {
method VisLabel (line 59) | public VisLabel (CharSequence text, String fontName, String colorName) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/VisList.java
class VisList (line 31) | public class VisList<T> extends List<T> {
method VisList (line 33) | public VisList () {
method VisList (line 38) | public VisList (String styleName) {
method VisList (line 43) | public VisList (ListStyle style) {
method init (line 48) | private void init () {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/VisProgressBar.java
class VisProgressBar (line 27) | public class VisProgressBar extends ProgressBar {
method VisProgressBar (line 28) | public VisProgressBar (float min, float max, float stepSize, boolean v...
method VisProgressBar (line 33) | public VisProgressBar (float min, float max, float stepSize, boolean v...
method VisProgressBar (line 37) | public VisProgressBar (float min, float max, float stepSize, boolean v...
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/VisRadioButton.java
class VisRadioButton (line 34) | public class VisRadioButton extends VisCheckBox {
method VisRadioButton (line 35) | public VisRadioButton (String text) {
method VisRadioButton (line 39) | public VisRadioButton (String text, VisCheckBoxStyle style) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/VisScrollPane.java
class VisScrollPane (line 28) | public class VisScrollPane extends ScrollPane {
method VisScrollPane (line 29) | public VisScrollPane (Actor widget, ScrollPaneStyle style) {
method VisScrollPane (line 33) | public VisScrollPane (Actor widget, String styleName) {
method VisScrollPane (line 37) | public VisScrollPane (Actor widget) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/VisSelectBox.java
class VisSelectBox (line 31) | public class VisSelectBox<T> extends SelectBox<T> {
method VisSelectBox (line 32) | public VisSelectBox (SelectBoxStyle style) {
method VisSelectBox (line 37) | public VisSelectBox (String styleName) {
method VisSelectBox (line 42) | public VisSelectBox () {
method init (line 47) | private void init () {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/VisSlider.java
class VisSlider (line 27) | public class VisSlider extends Slider {
method VisSlider (line 28) | public VisSlider (float min, float max, float stepSize, boolean vertic...
method VisSlider (line 32) | public VisSlider (float min, float max, float stepSize, boolean vertic...
method VisSlider (line 36) | public VisSlider (float min, float max, float stepSize, boolean vertic...
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/VisSplitPane.java
class VisSplitPane (line 46) | public class VisSplitPane extends WidgetGroup {
method VisSplitPane (line 68) | public VisSplitPane (Actor firstWidget, Actor secondWidget, boolean ve...
method VisSplitPane (line 76) | public VisSplitPane (Actor firstWidget, Actor secondWidget, boolean ve...
method VisSplitPane (line 84) | public VisSplitPane (Actor firstWidget, Actor secondWidget, boolean ve...
method initialize (line 95) | private void initialize () {
method getStyle (line 178) | public VisSplitPaneStyle getStyle () {
method setStyle (line 182) | public void setStyle (VisSplitPaneStyle style) {
method layout (line 187) | @Override
method getPrefWidth (line 208) | @Override
method getPrefHeight (line 219) | @Override
method getMinWidth (line 230) | @Override
method getMinHeight (line 235) | @Override
method getFirstWidgetBounds (line 241) | public Rectangle getFirstWidgetBounds () {
method getSecondWidgetBounds (line 246) | public Rectangle getSecondWidgetBounds () {
method setVertical (line 250) | public void setVertical (boolean vertical) {
method calculateHorizBoundsAndPositions (line 254) | private void calculateHorizBoundsAndPositions () {
method calculateVertBoundsAndPositions (line 269) | private void calculateVertBoundsAndPositions () {
method draw (line 285) | @Override
method hit (line 318) | @Override
method setSplitAmount (line 329) | public void setSplitAmount (float split) {
method getSplit (line 334) | public float getSplit () {
method setMinSplitAmount (line 338) | public void setMinSplitAmount (float minAmount) {
method setMaxSplitAmount (line 344) | public void setMaxSplitAmount (float maxAmount) {
method setWidgets (line 354) | public void setWidgets (Actor firstWidget, Actor secondWidget) {
method setFirstWidget (line 360) | public void setFirstWidget (Actor widget) {
method setSecondWidget (line 368) | public void setSecondWidget (Actor widget) {
method addActor (line 375) | @Override
method addActorAt (line 380) | @Override
method addActorBefore (line 385) | @Override
method removeActor (line 390) | @Override
method removeActor (line 404) | @Override
class VisSplitPaneStyle (line 422) | public static class VisSplitPaneStyle extends SplitPaneStyle {
method VisSplitPaneStyle (line 426) | public VisSplitPaneStyle () {
method VisSplitPaneStyle (line 429) | public VisSplitPaneStyle (VisSplitPaneStyle style) {
method VisSplitPaneStyle (line 434) | public VisSplitPaneStyle (Drawable handle, Drawable handleOver) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/VisTable.java
class VisTable (line 30) | public class VisTable extends Table {
method VisTable (line 31) | public VisTable () {
method VisTable (line 36) | public VisTable (boolean setVisDefaults) {
method addSeparator (line 45) | public Cell<Separator> addSeparator (boolean vertical) {
method addSeparator (line 62) | public Cell<Separator> addSeparator () {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/VisTextArea.java
class VisTextArea (line 40) | public class VisTextArea extends VisTextField {
method VisTextArea (line 68) | public VisTextArea () {
method VisTextArea (line 72) | public VisTextArea (String text, String styleName) {
method VisTextArea (line 76) | public VisTextArea (String text, VisTextFieldStyle style) {
method VisTextArea (line 80) | public VisTextArea (String text) {
method initialize (line 84) | @Override
method letterUnderCursor (line 95) | @Override
method setPrefRows (line 119) | public void setPrefRows (float prefRows) {
method getPrefHeight (line 123) | @Override
method getLines (line 138) | public int getLines () {
method newLineAtEnd (line 143) | public boolean newLineAtEnd () {
method moveCursorLine (line 149) | public void moveCursorLine (int line) {
method updateCurrentLine (line 177) | void updateCurrentLine () {
method showCursor (line 192) | void showCursor () {
method calculateCurrentLineIndex (line 203) | private int calculateCurrentLineIndex (int cursor) {
method sizeChanged (line 213) | @Override
method getTextY (line 224) | @Override
method drawSelection (line 233) | @Override
method drawText (line 262) | @Override
method drawCursor (line 271) | @Override
method calculateOffsets (line 281) | @Override
method createInputListener (line 325) | @Override
method setSelection (line 330) | @Override
method moveCursor (line 336) | @Override
method continueCursor (line 353) | @Override
method getCursorLine (line 360) | public int getCursorLine () {
method getFirstLineShowing (line 364) | public int getFirstLineShowing () {
method getLinesShowing (line 368) | public int getLinesShowing () {
method getCursorX (line 372) | public float getCursorX () {
method getCursorY (line 376) | public float getCursorY () {
class TextAreaListener (line 382) | public class TextAreaListener extends TextFieldClickListener {
method setCursorPosition (line 384) | @Override
method keyDown (line 409) | @Override
method keyTyped (line 452) | @Override
method goHome (line 459) | @Override
method goEnd (line 468) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/VisTextButton.java
class VisTextButton (line 40) | public class VisTextButton extends TextButton implements Focusable, Bord...
method VisTextButton (line 46) | public VisTextButton (String text, String styleName) {
method VisTextButton (line 51) | public VisTextButton (String text) {
method VisTextButton (line 56) | public VisTextButton (String text, ChangeListener listener) {
method VisTextButton (line 62) | public VisTextButton (String text, String styleName, ChangeListener li...
method VisTextButton (line 68) | public VisTextButton (String text, VisTextButtonStyle buttonStyle) {
method init (line 73) | private void init () {
method draw (line 85) | @Override
class VisTextButtonStyle (line 93) | static public class VisTextButtonStyle extends TextButtonStyle {
method VisTextButtonStyle (line 96) | public VisTextButtonStyle () {
method VisTextButtonStyle (line 100) | public VisTextButtonStyle (Drawable up, Drawable down, Drawable chec...
method VisTextButtonStyle (line 104) | public VisTextButtonStyle (VisTextButtonStyle style) {
method isFocusBorderEnabled (line 110) | @Override
method setFocusBorderEnabled (line 115) | @Override
method focusLost (line 120) | @Override
method focusGained (line 125) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/VisTextField.java
class VisTextField (line 60) | public class VisTextField extends Widget implements Disableable, Focusab...
method VisTextField (line 125) | public VisTextField () {
method VisTextField (line 129) | public VisTextField (String text) {
method VisTextField (line 133) | public VisTextField (String text, String styleName) {
method VisTextField (line 137) | public VisTextField (String text, VisTextFieldStyle style) {
method initialize (line 145) | protected void initialize () {
method createInputListener (line 166) | protected InputListener createInputListener () {
method letterUnderCursor (line 170) | protected int letterUnderCursor (float x) {
method isWordCharacter (line 183) | protected boolean isWordCharacter (char c) {
method wordUnderCursor (line 187) | protected int[] wordUnderCursor (int at) {
method wordUnderCursor (line 205) | int[] wordUnderCursor (float x) {
method withinMaxLength (line 209) | boolean withinMaxLength (int size) {
method getMaxLength (line 213) | public int getMaxLength () {
method setMaxLength (line 217) | public void setMaxLength (int maxLength) {
method setOnlyFontChars (line 226) | public void setOnlyFontChars (boolean onlyFontChars) {
method getStyle (line 234) | public VisTextFieldStyle getStyle () {
method setStyle (line 238) | public void setStyle (VisTextFieldStyle style) {
method toString (line 245) | @Override
method calculateOffsets (line 250) | protected void calculateOffsets () {
method draw (line 313) | @Override
method getTextY (line 388) | protected float getTextY (BitmapFont font, Drawable background) {
method drawSelection (line 402) | protected void drawSelection (Drawable selection, Batch batch, BitmapF...
method drawText (line 407) | protected void drawText (Batch batch, BitmapFont font, float x, float ...
method drawCursor (line 411) | protected void drawCursor (Drawable cursorPatch, Batch batch, BitmapFo...
method updateDisplayText (line 419) | void updateDisplayText () {
method blink (line 474) | private void blink () {
method copy (line 487) | public void copy () {
method cut (line 499) | public void cut () {
method cut (line 503) | void cut (boolean fireChangeEvent) {
method paste (line 511) | void paste (String content, boolean fireChangeEvent) {
method insert (line 538) | String insert (int position, CharSequence text, String to) {
method delete (line 543) | int delete (boolean fireChangeEvent) {
method next (line 562) | public void next (boolean up) {
method findNextTextField (line 581) | private VisTextField findNextTextField (Array<Actor> actors, VisTextFi...
method isActorVisibleInStage (line 617) | private boolean isActorVisibleInStage (Actor actor) {
method findModalWindow (line 623) | private Window findModalWindow (Actor actor) {
method getDefaultInputListener (line 629) | public InputListener getDefaultInputListener () {
method setTextFieldListener (line 634) | public void setTextFieldListener (TextFieldListener listener) {
method setTextFieldFilter (line 639) | public void setTextFieldFilter (TextFieldFilter filter) {
method getTextFieldFilter (line 643) | public TextFieldFilter getTextFieldFilter () {
method setFocusTraversal (line 648) | public void setFocusTraversal (boolean focusTraversal) {
method setEnterKeyFocusTraversal (line 657) | public void setEnterKeyFocusTraversal (boolean enterKeyFocusTraversal) {
method getMessageText (line 662) | public String getMessageText () {
method setMessageText (line 670) | public void setMessageText (String messageText) {
method appendText (line 675) | public void appendText (String str) {
method setText (line 684) | public void setText (String str) {
method getText (line 697) | public String getText () {
method changeText (line 705) | boolean changeText (String oldText, String newText) {
method beforeChangeEventFired (line 716) | void beforeChangeEventFired () {
method getProgrammaticChangeEvents (line 720) | public boolean getProgrammaticChangeEvents () {
method setProgrammaticChangeEvents (line 728) | public void setProgrammaticChangeEvents (boolean programmaticChangeEve...
method getSelectionStart (line 732) | public int getSelectionStart () {
method getSelection (line 736) | public String getSelection () {
method isTextSelected (line 740) | public boolean isTextSelected () {
method setSelection (line 745) | public void setSelection (int selectionStart, int selectionEnd) {
method selectAll (line 765) | public void selectAll () {
method clearSelection (line 769) | public void clearSelection () {
method clearText (line 774) | public void clearText () {
method setCursorPosition (line 779) | public void setCursorPosition (int cursorPosition) {
method getCursorPosition (line 785) | public int getCursorPosition () {
method setCursorAtTextEnd (line 789) | public void setCursorAtTextEnd () {
method setCursorPercentHeight (line 796) | public void setCursorPercentHeight (float cursorPercentHeight) {
method getOnscreenKeyboard (line 803) | public OnscreenKeyboard getOnscreenKeyboard () {
method setOnscreenKeyboard (line 807) | public void setOnscreenKeyboard (OnscreenKeyboard keyboard) {
method setClipboard (line 811) | public void setClipboard (Clipboard clipboard) {
method getPrefWidth (line 815) | @Override
method getPrefHeight (line 820) | @Override
method setAlignment (line 834) | public void setAlignment (int alignment) {
method setPasswordMode (line 842) | public void setPasswordMode (boolean passwordMode) {
method isPasswordMode (line 847) | public boolean isPasswordMode () {
method setPasswordCharacter (line 855) | public void setPasswordCharacter (char passwordCharacter) {
method setBlinkTime (line 860) | public void setBlinkTime (float blinkTime) {
method isDisabled (line 864) | public boolean isDisabled () {
method setDisabled (line 868) | @Override
method isReadOnly (line 877) | public boolean isReadOnly () {
method setReadOnly (line 881) | public void setReadOnly (boolean readOnly) {
method moveCursor (line 885) | protected void moveCursor (boolean forward, boolean jump) {
method continueCursor (line 893) | protected boolean continueCursor (int index, int offset) {
method focusField (line 899) | public void focusField () {
method focusLost (line 913) | @Override
method focusGained (line 918) | @Override
method isEmpty (line 923) | public boolean isEmpty () {
method isInputValid (line 927) | public boolean isInputValid () {
method setInputValid (line 931) | public void setInputValid (boolean inputValid) {
method isFocusBorderEnabled (line 935) | @Override
method setFocusBorderEnabled (line 940) | @Override
method isIgnoreEqualsTextChange (line 946) | public boolean isIgnoreEqualsTextChange () {
method setIgnoreEqualsTextChange (line 957) | public void setIgnoreEqualsTextChange (boolean ignoreEqualsTextChange) {
class VisTextFieldStyle (line 961) | static public class VisTextFieldStyle extends TextFieldStyle {
method VisTextFieldStyle (line 966) | public VisTextFieldStyle () {
method VisTextFieldStyle (line 969) | public VisTextFieldStyle (BitmapFont font, Color fontColor, Drawable...
method VisTextFieldStyle (line 973) | public VisTextFieldStyle (VisTextFieldStyle style) {
type TextFieldListener (line 985) | static public interface TextFieldListener {
method keyTyped (line 986) | public void keyTyped (VisTextField textField, char c);
type TextFieldFilter (line 993) | static public interface TextFieldFilter {
method acceptChar (line 994) | public boolean acceptChar (VisTextField textField, char c);
class DigitsOnlyFilter (line 996) | static public class DigitsOnlyFilter implements TextFieldFilter {
method acceptChar (line 997) | @Override
class KeyRepeatTask (line 1005) | class KeyRepeatTask extends Task {
method run (line 1008) | @Override
class TextFieldClickListener (line 1015) | public class TextFieldClickListener extends ClickListener {
method clicked (line 1016) | @Override
method touchDown (line 1027) | @Override
method touchDragged (line 1042) | @Override
method touchUp (line 1048) | @Override
method setCursorPosition (line 1054) | protected void setCursorPosition (float x, float y) {
method goHome (line 1060) | protected void goHome (boolean jump) {
method goEnd (line 1064) | protected void goEnd (boolean jump) {
method keyDown (line 1068) | @Override
method scheduleKeyRepeatTask (line 1174) | protected void scheduleKeyRepeatTask (int keycode) {
method keyUp (line 1184) | @Override
method keyTyped (line 1191) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/VisTree.java
class VisTree (line 34) | public class VisTree<N extends Node, V> extends Tree<N, V> {
method VisTree (line 35) | public VisTree (String styleName) {
method VisTree (line 40) | public VisTree () {
method VisTree (line 45) | public VisTree (TreeStyle style) {
method init (line 50) | private void init () {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/VisValidatableTextField.java
class VisValidatableTextField (line 31) | public class VisValidatableTextField extends VisTextField {
method VisValidatableTextField (line 39) | public VisValidatableTextField () {
method VisValidatableTextField (line 44) | public VisValidatableTextField (String text) {
method VisValidatableTextField (line 49) | public VisValidatableTextField (String text, String styleName) {
method VisValidatableTextField (line 54) | public VisValidatableTextField (String text, VisTextFieldStyle style) {
method VisValidatableTextField (line 59) | public VisValidatableTextField (InputValidator validator) {
method VisValidatableTextField (line 65) | public VisValidatableTextField (InputValidator... validators) {
method VisValidatableTextField (line 73) | public VisValidatableTextField (boolean restoreLastValid, InputValidat...
method VisValidatableTextField (line 80) | public VisValidatableTextField (boolean restoreLastValid, InputValidat...
method init (line 89) | private void init () {
method beforeChangeEventFired (line 94) | @Override
method setText (line 99) | @Override
method validateInput (line 105) | public void validateInput () {
method addValidator (line 119) | public void addValidator (InputValidator validator) {
method getValidators (line 124) | public Array<InputValidator> getValidators () {
method isValidationEnabled (line 128) | public boolean isValidationEnabled () {
method setValidationEnabled (line 137) | public void setValidationEnabled (boolean validationEnabled) {
method isRestoreLastValid (line 142) | public boolean isRestoreLastValid () {
method setRestoreLastValid (line 150) | public void setRestoreLastValid (boolean restoreLastValid) {
method restoreLastValidText (line 164) | public void restoreLastValidText () {
class LastValidFocusListener (line 173) | private class LastValidFocusListener extends FocusListener {
method keyboardFocusChanged (line 174) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/VisWindow.java
class VisWindow (line 38) | public class VisWindow extends Window {
method VisWindow (line 46) | public VisWindow (String title) {
method VisWindow (line 51) | public VisWindow (String title, boolean showWindowBorder) {
method VisWindow (line 56) | public VisWindow (String title, String styleName) {
method VisWindow (line 61) | public VisWindow (String title, WindowStyle style) {
method setPosition (line 66) | @Override
method centerWindow (line 76) | public boolean centerWindow () {
method setCenterOnAdd (line 91) | public void setCenterOnAdd (boolean centerOnAdd) {
method setStage (line 95) | @Override
method moveToCenter (line 109) | private void moveToCenter () {
method fadeOut (line 118) | public void fadeOut (float time) {
method fadeIn (line 140) | public VisWindow fadeIn (float time) {
method fadeOut (line 147) | public void fadeOut () {
method fadeIn (line 152) | public VisWindow fadeIn () {
method close (line 161) | protected void close () {
method addCloseButton (line 169) | public void addCloseButton () {
method closeOnEscape (line 197) | public void closeOnEscape () {
method isKeepWithinParent (line 221) | public boolean isKeepWithinParent () {
method setKeepWithinParent (line 225) | public void setKeepWithinParent (boolean keepWithinParent) {
method draw (line 229) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/color/BasicColorPicker.java
class BasicColorPicker (line 60) | public class BasicColorPicker extends VisTable implements Disposable {
method BasicColorPicker (line 100) | public BasicColorPicker () {
method BasicColorPicker (line 104) | public BasicColorPicker (ColorPickerListener listener) {
method BasicColorPicker (line 108) | public BasicColorPicker (String styleName, ColorPickerListener listene...
method BasicColorPicker (line 112) | public BasicColorPicker (ColorPickerWidgetStyle style, ColorPickerList...
method BasicColorPicker (line 116) | protected BasicColorPicker (ColorPickerWidgetStyle style, ColorPickerL...
method createUI (line 133) | protected void createUI () {
method rebuildMainTable (line 144) | private void rebuildMainTable () {
method createColorsPreviewTable (line 160) | private VisTable createColorsPreviewTable () {
method createHexTable (line 181) | private VisTable createHexTable () {
method focusHexField (line 208) | public void focusHexField () {
method createColorWidgets (line 216) | protected void createColorWidgets () {
method updateUI (line 222) | protected void updateUI () {
method updateValuesFromCurrentColor (line 234) | protected void updateValuesFromCurrentColor () {
method updateValuesFromHSVFields (line 244) | protected void updateValuesFromHSVFields () {
method restoreLastColor (line 248) | public void restoreLastColor () {
method setColor (line 255) | @Override
method setColor (line 262) | protected void setColor (Color newColor, boolean updateCurrentColor) {
method getListener (line 272) | public ColorPickerListener getListener () {
method setListener (line 276) | public void setListener (ColorPickerListener listener) {
method setAllowAlphaEdit (line 285) | public void setAllowAlphaEdit (boolean allowAlphaEdit) {
method isAllowAlphaEdit (line 294) | public boolean isAllowAlphaEdit () {
method setShowHexFields (line 298) | public void setShowHexFields (boolean showHexFields) {
method isShowHexFields (line 304) | public boolean isShowHexFields () {
method setShowColorPreviews (line 308) | public void setShowColorPreviews(boolean showColorPreviews) {
method isShowColorPreviews (line 314) | public boolean isShowColorPreviews() {
method draw (line 318) | @Override
method isDisposed (line 326) | public boolean isDisposed () {
method dispose (line 330) | @Override
class PickerChangeListener (line 338) | class PickerChangeListener extends ChangeListener {
method updateLinkedWidget (line 339) | protected void updateLinkedWidget () {
method changed (line 343) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/color/ColorPicker.java
class ColorPicker (line 43) | public class ColorPicker extends VisWindow implements Disposable {
method ColorPicker (line 56) | public ColorPicker () {
method ColorPicker (line 60) | public ColorPicker (String title) {
method ColorPicker (line 64) | public ColorPicker (String title, ColorPickerListener listener) {
method ColorPicker (line 68) | public ColorPicker (ColorPickerListener listener) {
method ColorPicker (line 72) | public ColorPicker (String styleName, String title, ColorPickerListene...
method createButtons (line 98) | private VisTable createButtons () {
method createListeners (line 107) | private void createListeners () {
method setStage (line 133) | @Override
method setCloseAfterPickingFinished (line 148) | public void setCloseAfterPickingFinished (boolean closeAfterPickingFin...
method close (line 152) | @Override
method dispose (line 158) | @Override
method getPicker (line 164) | public ExtendedColorPicker getPicker () {
method isShowHexFields (line 170) | public boolean isShowHexFields () {
method setShowHexFields (line 174) | public void setShowHexFields (boolean showHexFields) {
method isDisposed (line 178) | public boolean isDisposed () {
method setAllowAlphaEdit (line 182) | public void setAllowAlphaEdit (boolean allowAlphaEdit) {
method isAllowAlphaEdit (line 186) | public boolean isAllowAlphaEdit () {
method restoreLastColor (line 190) | public void restoreLastColor () {
method setColor (line 194) | @Override
method setListener (line 199) | public void setListener (ColorPickerListener listener) {
method getListener (line 204) | public ColorPickerListener getListener () {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/color/ColorPickerAdapter.java
class ColorPickerAdapter (line 25) | public class ColorPickerAdapter implements ColorPickerListener {
method canceled (line 26) | @Override
method changed (line 31) | @Override
method reset (line 36) | @Override
method finished (line 41) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/color/ColorPickerListener.java
type ColorPickerListener (line 25) | public interface ColorPickerListener {
method canceled (line 30) | void canceled (Color oldColor);
method changed (line 36) | void changed (Color newColor);
method reset (line 43) | void reset (Color previousColor, Color newColor);
method finished (line 49) | void finished (Color newColor);
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/color/ColorPickerStyle.java
class ColorPickerStyle (line 22) | public class ColorPickerStyle extends WindowStyle {
method ColorPickerStyle (line 25) | public ColorPickerStyle () {
method ColorPickerStyle (line 28) | public ColorPickerStyle (ColorPickerStyle style) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/color/ColorPickerWidgetStyle.java
class ColorPickerWidgetStyle (line 26) | public class ColorPickerWidgetStyle {
method ColorPickerWidgetStyle (line 33) | public ColorPickerWidgetStyle () {
method ColorPickerWidgetStyle (line 36) | public ColorPickerWidgetStyle (ColorPickerWidgetStyle other) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/color/ExtendedColorPicker.java
class ExtendedColorPicker (line 44) | public class ExtendedColorPicker extends BasicColorPicker implements Dis...
method ExtendedColorPicker (line 55) | public ExtendedColorPicker () {
method ExtendedColorPicker (line 59) | public ExtendedColorPicker (ColorPickerListener listener) {
method ExtendedColorPicker (line 63) | public ExtendedColorPicker (String styleName, ColorPickerListener list...
method ExtendedColorPicker (line 67) | public ExtendedColorPicker (ColorPickerWidgetStyle style, ColorPickerL...
method createUI (line 72) | @Override
method createColorWidgets (line 97) | @Override
method setAllowAlphaEdit (line 139) | @Override
method updateValuesFromCurrentColor (line 145) | @Override
method updateValuesFromHSVFields (line 172) | @Override
method updateValuesFromRGBFields (line 195) | private void updateValuesFromRGBFields () {
class RgbChannelBarListener (line 219) | private class RgbChannelBarListener implements ChannelBar.ChannelBarLi...
method updateFields (line 220) | @Override
method setShaderUniforms (line 226) | @Override
class AlphaChannelBarListener (line 234) | private class AlphaChannelBarListener extends RgbChannelBarListener {
method updateFields (line 235) | @Override
class HsvChannelBarListener (line 242) | private abstract class HsvChannelBarListener implements ChannelBar.Cha...
method updateFields (line 243) | @Override
method setShaderUniforms (line 250) | @Override
method updateLinkedWidget (line 257) | protected abstract void updateLinkedWidget ();
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/color/internal/AlphaChannelBar.java
class AlphaChannelBar (line 26) | public class AlphaChannelBar extends ChannelBar {
method AlphaChannelBar (line 29) | public AlphaChannelBar (PickerCommons commons, int mode, int maxValue,...
method draw (line 34) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/color/internal/AlphaImage.java
class AlphaImage (line 28) | public class AlphaImage extends VisImage {
method AlphaImage (line 31) | public AlphaImage (PickerCommons commons, float gridSize) {
method draw (line 36) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/color/internal/ChannelBar.java
class ChannelBar (line 35) | public class ChannelBar extends ShaderImage {
method ChannelBar (line 56) | public ChannelBar (PickerCommons commons, int mode, int maxValue, Chan...
method draw (line 81) | @Override
method setValue (line 87) | public void setValue (int newValue) {
method getValue (line 95) | public int getValue () {
method updateValueFromTouch (line 99) | private void updateValueFromTouch (float x) {
method setShaderUniforms (line 108) | @Override
method setChannelBarListener (line 114) | public void setChannelBarListener (ChannelBarListener channelBarListen...
type ChannelBarListener (line 118) | public interface ChannelBarListener {
method updateFields (line 119) | void updateFields ();
method setShaderUniforms (line 121) | void setShaderUniforms (ShaderProgram shader);
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/color/internal/ColorChannelWidget.java
class ColorChannelWidget (line 32) | public class ColorChannelWidget extends VisTable {
method ColorChannelWidget (line 45) | public ColorChannelWidget (PickerCommons commons, String label, int mo...
method getValue (line 78) | public int getValue () {
method setValue (line 82) | public void setValue (int value) {
method createBarImage (line 88) | private ChannelBar createBarImage () {
method getBar (line 95) | public ChannelBar getBar () {
method isInputValid (line 99) | public boolean isInputValid () {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/color/internal/ColorInputField.java
class ColorInputField (line 34) | public class ColorInputField extends VisValidatableTextField {
method ColorInputField (line 38) | public ColorInputField (final int maxValue, final ColorInputFieldListe...
method changeValue (line 77) | public void changeValue (int byValue) {
method getValue (line 86) | public int getValue () {
method setValue (line 90) | public void setValue (int value) {
method updateUI (line 95) | private void updateUI () {
type ColorInputFieldListener (line 100) | public interface ColorInputFieldListener {
method changed (line 101) | void changed (int newValue);
class NumberFilter (line 104) | private static class NumberFilter implements TextFieldFilter {
method acceptChar (line 105) | @Override
class ColorFieldValidator (line 111) | private static class ColorFieldValidator implements InputValidator {
method ColorFieldValidator (line 114) | public ColorFieldValidator (int maxValue) {
method validateInput (line 118) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/color/internal/ColorPickerText.java
type ColorPickerText (line 28) | public enum ColorPickerText implements BundleText {
method ColorPickerText (line 37) | ColorPickerText (final String name) {
method getBundle (line 41) | private static I18NBundle getBundle () {
method getName (line 45) | @Override
method get (line 50) | @Override
method format (line 55) | @Override
method format (line 60) | @Override
method toString (line 65) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/color/internal/GridSubImage.java
class GridSubImage (line 25) | public class GridSubImage {
method GridSubImage (line 30) | public GridSubImage (ShaderProgram gridShader, Texture whiteTexture, f...
method draw (line 36) | public void draw (Batch batch, Image parent) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/color/internal/Palette.java
class Palette (line 35) | public class Palette extends ShaderImage {
method Palette (line 47) | public Palette (PickerCommons commons, int maxValue, ChangeListener li...
method draw (line 71) | @Override
method setShaderUniforms (line 91) | @Override
method setPickerHue (line 96) | public void setPickerHue (int pickerHue) {
method setValue (line 100) | public void setValue (int s, int v) {
method updateValueFromTouch (line 114) | private void updateValueFromTouch (float touchX, float touchY) {
method getV (line 125) | public int getV () {
method getS (line 129) | public int getS () {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/color/internal/PickerCommons.java
class PickerCommons (line 31) | public class PickerCommons implements Disposable {
method PickerCommons (line 44) | public PickerCommons (ColorPickerWidgetStyle style, Sizes sizes, boole...
method createPixmap (line 53) | private void createPixmap () {
method loadShaders (line 62) | private void loadShaders () {
method loadShader (line 73) | private ShaderProgram loadShader (String vertFile, String fragFile) {
method getBarShader (line 85) | ShaderProgram getBarShader (int mode) {
method dispose (line 101) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/color/internal/ShaderImage.java
class ShaderImage (line 28) | public class ShaderImage extends VisImage {
method ShaderImage (line 31) | public ShaderImage (ShaderProgram shader, Texture texture) {
method draw (line 36) | @Override
method setShaderUniforms (line 47) | protected void setShaderUniforms (ShaderProgram shader) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/color/internal/VerticalChannelBar.java
class VerticalChannelBar (line 34) | public class VerticalChannelBar extends ShaderImage {
method VerticalChannelBar (line 41) | public VerticalChannelBar (PickerCommons commons, int maxValue, Change...
method draw (line 65) | @Override
method setValue (line 71) | public void setValue (int newValue) {
method updateValueFromTouch (line 79) | private void updateValueFromTouch (float y) {
method getValue (line 88) | public int getValue () {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/file/FileChooser.java
class FileChooser (line 76) | public class FileChooser extends VisWindow implements FileHistoryCallback {
method FileChooser (line 163) | public FileChooser (Mode mode) {
method FileChooser (line 171) | public FileChooser (FileHandle directory, Mode mode) {
method FileChooser (line 188) | public FileChooser (String title, Mode mode) {
method FileChooser (line 197) | public FileChooser (String styleName, String title, Mode mode) {
method setDefaultPrefsName (line 212) | public static void setDefaultPrefsName (String prefsName) {
method setFavoritesPrefsName (line 217) | @Deprecated
method init (line 222) | private void init (FileHandle directory) {
method createToolbar (line 288) | private void createToolbar () {
method createViewModePopupMenu (line 405) | private void createViewModePopupMenu () {
method rebuildViewModePopupMenu (line 424) | private void rebuildViewModePopupMenu () {
method updateFavoriteFolderButton (line 437) | private void updateFavoriteFolderButton () {
method createCenterContentPanel (line 451) | private void createCenterContentPanel () {
method invalidateChildHierarchy (line 500) | private void invalidateChildHierarchy (WidgetGroup layout) {
method setCurrentPathFieldText (line 512) | private void setCurrentPathFieldText (String text) {
method createFileTextBox (line 517) | private void createFileTextBox () {
method updateFileTypeSelectBox (line 571) | private void updateFileTypeSelectBox () {
method createBottomButtons (line 593) | private void createBottomButtons () {
method createShortcutsMainPanel (line 623) | private void createShortcutsMainPanel () {
method createListeners (line 634) | private void createListeners () {
method selectionFinished (line 664) | private void selectionFinished () {
method close (line 708) | @Override
method notifyListenerAndCloseDialog (line 714) | private void notifyListenerAndCloseDialog (Array<FileHandle> files) {
method fadeOut (line 737) | @Override
method setupDefaultScrollPane (line 746) | protected VisScrollPane setupDefaultScrollPane (VisScrollPane scrollPa...
method getFileListFromSelected (line 754) | private Array<FileHandle> getFileListFromSelected () {
method showDialog (line 804) | private void showDialog (String text) {
method showOverwriteQuestion (line 808) | private void showOverwriteQuestion (final Array<FileHandle> filesList) {
method rebuildShortcutsList (line 818) | private void rebuildShortcutsList (boolean rebuildRootCache) {
method rebuildShortcutsList (line 833) | private void rebuildShortcutsList () {
method rebuildFileRootsCache (line 838) | private void rebuildFileRootsCache () {
method rebuildShortcutsFavoritesPanel (line 865) | private void rebuildShortcutsFavoritesPanel () {
method rebuildFileList (line 873) | private void rebuildFileList () {
method rebuildFileList (line 877) | private void rebuildFileList (final boolean stageChanged) {
method buildFileList (line 923) | private void buildFileList (Array<FileHandle> files, IdentityMap<FileH...
method setSelectedFiles (line 958) | public void setSelectedFiles (FileHandle... files) {
method setDefaultFileName (line 985) | public void setDefaultFileName (String text) {
method refresh (line 990) | public void refresh () {
method refresh (line 994) | private void refresh (boolean stageChanged) {
method addFavorite (line 1003) | public void addFavorite (FileHandle favourite) {
method removeFavorite (line 1016) | public boolean removeFavorite (FileHandle favorite) {
method addRecentDirectory (line 1025) | private void addRecentDirectory (FileHandle file) {
method clearRecentDirectories (line 1032) | public void clearRecentDirectories () {
method setVisible (line 1037) | @Override
method deselectAll (line 1045) | private void deselectAll () {
method deselectAll (line 1049) | private void deselectAll (boolean updateTextField) {
method selectAll (line 1057) | private void selectAll () {
method highlightFiles (line 1069) | public void highlightFiles (FileHandle... files) {
method updateSelectedFileFieldText (line 1089) | private void updateSelectedFileFieldText () {
method updateSelectedFileFieldText (line 1093) | private void updateSelectedFileFieldText (boolean ignoreKeyboardFocus) {
method removeInvalidSelections (line 1115) | private void removeInvalidSelections () {
method getMode (line 1141) | public Mode getMode () {
method setMode (line 1145) | public void setMode (Mode mode) {
method getViewMode (line 1151) | public ViewMode getViewMode () {
method setViewMode (line 1155) | public void setViewMode (ViewMode viewMode) {
method setDirectory (line 1162) | public void setDirectory (String directory) {
method setDirectory (line 1166) | public void setDirectory (File directory) {
method setDirectory (line 1170) | public void setDirectory (FileHandle directory) {
method setDirectory (line 1179) | @Override
method getCurrentDirectory (line 1194) | @Override
method getDefaultStartingDirectory (line 1199) | private FileHandle getDefaultStartingDirectory () {
method listFilteredCurrentDirectory (line 1204) | private FileHandle[] listFilteredCurrentDirectory () {
method getFileFilter (line 1223) | public FileFilter getFileFilter () {
method setFileFilter (line 1227) | public void setFileFilter (FileFilter fileFilter) {
method setFileTypeFilter (line 1237) | public void setFileTypeFilter (FileTypeFilter fileTypeFilter) {
method getActiveFileTypeFilterRule (line 1252) | public FileTypeFilter.Rule getActiveFileTypeFilterRule () {
method getSelectionMode (line 1256) | public SelectionMode getSelectionMode () {
method setSelectionMode (line 1264) | public void setSelectionMode (SelectionMode selectionMode) {
method getSorting (line 1283) | public FileSorting getSorting () {
method setSorting (line 1287) | public void setSorting (FileSorting sorting, boolean sortingOrderAscen...
method setSorting (line 1293) | public void setSorting (FileSorting sorting) {
method isSortingOrderAscending (line 1298) | public boolean isSortingOrderAscending () {
method setSortingOrderAscending (line 1302) | public void setSortingOrderAscending (boolean sortingOrderAscending) {
method setFavoriteFolderButtonVisible (line 1307) | public void setFavoriteFolderButtonVisible (boolean favoriteFolderButt...
method isFavoriteFolderButtonVisible (line 1311) | public boolean isFavoriteFolderButtonVisible () {
method setViewModeButtonVisible (line 1315) | public void setViewModeButtonVisible (boolean viewModeButtonVisible) {
method isViewModeButtonVisible (line 1319) | public boolean isViewModeButtonVisible () {
method isMultiSelectionEnabled (line 1323) | public boolean isMultiSelectionEnabled () {
method setMultiSelectionEnabled (line 1327) | public void setMultiSelectionEnabled (boolean multiSelectionEnabled) {
method setListener (line 1331) | public void setListener (FileChooserListener newListener) {
method isShowSelectionCheckboxes (line 1336) | public boolean isShowSelectionCheckboxes () {
method setShowSelectionCheckboxes (line 1340) | public void setShowSelectionCheckboxes (boolean showSelectionCheckboxe...
method getMultiSelectKey (line 1345) | public int getMultiSelectKey () {
method setMultiSelectKey (line 1350) | public void setMultiSelectKey (int multiSelectKey) {
method getGroupMultiSelectKey (line 1354) | public int getGroupMultiSelectKey () {
method setGroupMultiSelectKey (line 1359) | public void setGroupMultiSelectKey (int groupMultiSelectKey) {
method isMultiSelectKeyPressed (line 1363) | private boolean isMultiSelectKeyPressed () {
method isGroupMultiSelectKeyPressed (line 1370) | private boolean isGroupMultiSelectKeyPressed () {
method getChooserStyle (line 1377) | public FileChooserStyle getChooserStyle () {
method getSizes (line 1381) | public Sizes getSizes () {
method getChooserStage (line 1385) | private Stage getChooserStage () {
method setWatchingFilesEnabled (line 1393) | public void setWatchingFilesEnabled (boolean watchingFilesEnabled) {
method setPrefsName (line 1400) | public void setPrefsName (String prefsName) {
method reloadPreferences (line 1405) | private void reloadPreferences (boolean rebuildUI) {
method draw (line 1411) | @Override
method setStage (line 1419) | @Override
method startFileWatcher (line 1445) | private void startFileWatcher () {
method stopFileWatcher (line 1495) | private void stopFileWatcher () {
method showNewDirectoryDialog (line 1501) | private void showNewDirectoryDialog () {
method showFileDeleteDialog (line 1525) | private void showFileDeleteDialog (final FileHandle fileToDelete) {
method setFileDeleter (line 1551) | public void setFileDeleter (FileDeleter fileDeleter) {
method setIconProvider (line 1557) | public void setIconProvider (FileIconProvider iconProvider) {
method getIconProvider (line 1562) | public FileIconProvider getIconProvider () {
method isSaveLastDirectory (line 1566) | public static boolean isSaveLastDirectory () {
method setSaveLastDirectory (line 1575) | public static void setSaveLastDirectory (boolean saveLastDirectory) {
type Mode (line 1579) | public enum Mode {
type SelectionMode (line 1583) | public enum SelectionMode {
type FileSorting (line 1587) | public enum FileSorting {
method FileSorting (line 1594) | FileSorting (Comparator<FileHandle> comparator) {
type HistoryPolicy (line 1599) | public enum HistoryPolicy {
type ViewMode (line 1603) | public enum ViewMode {
method ViewMode (line 1615) | ViewMode (boolean thumbnailMode, FileChooserText bundleText) {
method getBundleText (line 1620) | public String getBundleText () {
method setupGridGroup (line 1624) | public void setupGridGroup (Sizes sizes, GridGroup group) {
method isGridMode (line 1638) | public boolean isGridMode () {
method isThumbnailMode (line 1642) | public boolean isThumbnailMode () {
method getGridSize (line 1646) | public float getGridSize (Sizes sizes) {
type FileIconProvider (line 1668) | public interface FileIconProvider {
method provideIcon (line 1670) | Drawable provideIcon (FileItem item);
method isThumbnailModesSupported (line 1676) | boolean isThumbnailModesSupported ();
method directoryChanged (line 1678) | void directoryChanged (FileHandle newDirectory);
method viewModeChanged (line 1680) | void viewModeChanged (ViewMode newViewMode);
class DefaultFileIconProvider (line 1683) | public static class DefaultFileIconProvider implements FileIconProvider {
method DefaultFileIconProvider (line 1687) | public DefaultFileIconProvider (FileChooser chooser) {
method provideIcon (line 1692) | @Override
method getDirIcon (line 1704) | protected Drawable getDirIcon (FileItem item) {
method getImageIcon (line 1708) | protected Drawable getImageIcon (FileItem item) {
method getAudioIcon (line 1712) | protected Drawable getAudioIcon (FileItem item) {
method getPdfIcon (line 1716) | protected Drawable getPdfIcon (FileItem item) {
method getTextIcon (line 1720) | protected Drawable getTextIcon (FileItem item) {
method getDefaultIcon (line 1724) | protected Drawable getDefaultIcon (FileItem item) {
method isThumbnailModesSupported (line 1728) | @Override
method directoryChanged (line 1733) | @Override
method viewModeChanged (line 1738) | @Override
class DefaultFileFilter (line 1744) | public static class DefaultFileFilter implements FileFilter {
method DefaultFileFilter (line 1748) | public DefaultFileFilter (FileChooser chooser) {
method accept (line 1752) | @Override
method isIgnoreChooserSelectionMode (line 1764) | public boolean isIgnoreChooserSelectionMode () {
method setIgnoreChooserSelectionMode (line 1768) | public void setIgnoreChooserSelectionMode (boolean ignoreChooserSele...
type FileDeleter (line 1773) | public interface FileDeleter {
method hasTrash (line 1774) | boolean hasTrash ();
method delete (line 1776) | boolean delete (FileHandle file) throws IOException;
class DefaultFileDeleter (line 1779) | public static final class DefaultFileDeleter implements FileDeleter {
method hasTrash (line 1780) | @Override
method delete (line 1785) | @Override
class ShowBusyBarTask (line 1791) | private class ShowBusyBarTask extends Timer.Task {
method run (line 1792) | @Override
method cancel (line 1801) | @Override
class FileItem (line 1809) | public class FileItem extends Table implements Focusable {
method FileItem (line 1816) | public FileItem (final FileHandle file, ViewMode viewMode) {
method setIcon (line 1873) | public void setIcon (Drawable icon, Scaling scaling) {
method addListeners (line 1879) | private void addListeners () {
method handleSelectClick (line 1946) | private boolean handleSelectClick (boolean checkboxClicked) {
method selectGroup (line 1969) | private void selectGroup () {
method getItemId (line 1992) | private int getItemId (Array<FileItem> actors, FileItem item) {
method select (line 2001) | private boolean select () {
method select (line 2005) | private boolean select (boolean deselectIfAlreadySelected) {
method deselect (line 2017) | private void deselect () {
method deselect (line 2021) | private void deselect (boolean removeFromList) {
method focusLost (line 2027) | @Override
method focusGained (line 2032) | @Override
method getFile (line 2037) | public FileHandle getFile () {
method isDirectory (line 2041) | public boolean isDirectory () {
class ShortcutItem (line 2046) | private class ShortcutItem extends Table implements RootNameListener, ...
method ShortcutItem (line 2051) | public ShortcutItem (final File file, String customName, Drawable ic...
method addListener (line 2067) | private void addListener () {
method setLabelText (line 2127) | public void setLabelText (String text) {
method getLabelText (line 2131) | public String getLabelText () {
method select (line 2135) | private void select () {
method deselect (line 2141) | private void deselect () {
method setRootName (line 2145) | @Override
method focusGained (line 2150) | @Override
method focusLost (line 2154) | @Override
class ShortcutsComparator (line 2159) | private static class ShortcutsComparator implements Comparator<Actor> {
method compare (line 2160) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/file/FileChooserAdapter.java
class FileChooserAdapter (line 26) | public class FileChooserAdapter implements FileChooserListener {
method canceled (line 27) | @Override
method selected (line 32) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/file/FileChooserListener.java
type FileChooserListener (line 26) | public interface FileChooserListener {
method selected (line 28) | void selected (Array<FileHandle> files);
method canceled (line 31) | void canceled ();
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/file/FileChooserStyle.java
class FileChooserStyle (line 23) | public class FileChooserStyle {
method FileChooserStyle (line 48) | public FileChooserStyle () {
method FileChooserStyle (line 51) | public FileChooserStyle (FileChooserStyle style) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/file/FileTypeFilter.java
class FileTypeFilter (line 38) | public class FileTypeFilter {
method FileTypeFilter (line 42) | public FileTypeFilter (FileTypeFilter other) {
method FileTypeFilter (line 48) | public FileTypeFilter (boolean allTypesAllowed) {
method addRule (line 57) | public void addRule (String description, String... extensions) {
method getRules (line 61) | public Array<Rule> getRules () {
method setAllTypesAllowed (line 69) | public void setAllTypesAllowed (boolean allTypesAllowed) {
method isAllTypesAllowed (line 73) | public boolean isAllTypesAllowed () {
class Rule (line 78) | public static class Rule {
method Rule (line 83) | public Rule (String description) {
method Rule (line 89) | public Rule (String description, String... extensionList) {
method accept (line 101) | public boolean accept (FileHandle file) {
method getDescription (line 107) | public String getDescription () {
method getExtensions (line 112) | public Array<String> getExtensions () {
method toString (line 116) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/file/FileUtils.java
class FileUtils (line 35) | public class FileUtils {
method compare (line 41) | @Override
method compare (line 49) | @Override
method compare (line 59) | @Override
method readableFileSize (line 77) | public static String readableFileSize (long size) {
method sortFiles (line 89) | public static Array<FileHandle> sortFiles (FileHandle[] files) {
method sortFiles (line 99) | public static Array<FileHandle> sortFiles (FileHandle[] files, Compara...
method sortFiles (line 110) | public static Array<FileHandle> sortFiles (FileHandle[] files, Compara...
method isValidFileName (line 140) | public static boolean isValidFileName (String name) {
method toFileHandle (line 153) | public static FileHandle toFileHandle (File file) {
method showDirInExplorer (line 158) | @SuppressWarnings("unchecked")
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/file/SingleFileChooserListener.java
class SingleFileChooserListener (line 31) | public abstract class SingleFileChooserListener implements FileChooserLi...
method selected (line 32) | @Override
method selected (line 38) | protected abstract void selected (FileHandle file);
method canceled (line 40) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/file/StreamingFileChooserListener.java
class StreamingFileChooserListener (line 29) | public abstract class StreamingFileChooserListener implements FileChoose...
method selected (line 30) | @Override
method selected (line 45) | public abstract void selected (FileHandle file);
method begin (line 48) | public void begin () {
method end (line 53) | public void end () {
method canceled (line 57) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/file/internal/AbstractSuggestionPopup.java
class AbstractSuggestionPopup (line 24) | public class AbstractSuggestionPopup extends PopupMenu {
method AbstractSuggestionPopup (line 29) | public AbstractSuggestionPopup (FileChooser chooser) {
method createMenuItem (line 34) | protected MenuItem createMenuItem (String name) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/file/internal/DirsSuggestionPopup.java
class DirsSuggestionPopup (line 35) | public class DirsSuggestionPopup extends AbstractSuggestionPopup {
method DirsSuggestionPopup (line 41) | public DirsSuggestionPopup (FileChooser chooser, VisTextField pathFiel...
method pathFieldKeyTyped (line 46) | public void pathFieldKeyTyped (Stage stage, float width) {
method createDirSuggestions (line 54) | private void createDirSuggestions (final Stage stage, final float widt...
method showRecentDirectories (line 120) | public void showRecentDirectories (Stage stage, Array<FileHandle> rece...
method createRecentDirSuggestions (line 131) | private int createRecentDirSuggestions (Array<FileHandle> files, float...
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/file/internal/DriveCheckerService.java
class DriveCheckerService (line 33) | public class DriveCheckerService {
method getInstance (line 44) | public static synchronized DriveCheckerService getInstance () {
method DriveCheckerService (line 49) | public DriveCheckerService () {
method processRoot (line 59) | private void processRoot (final File root) {
method processResults (line 68) | private void processResults (final File root, final boolean readable, ...
method addListener (line 91) | public void addListener (File root, RootMode mode, DriveCheckerListene...
method addListener (line 102) | private void addListener (File root, RootMode mode, DriveCheckerListen...
type RootMode (line 119) | public enum RootMode {
type DriveCheckerListener (line 123) | public interface DriveCheckerListener {
method rootMode (line 124) | void rootMode (File root, RootMode mode);
class ListenerSet (line 127) | public class ListenerSet {
method add (line 130) | public void add (DriveCheckerListener listener) {
method notifyListeners (line 134) | public void notifyListeners (File root, RootMode mode) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/file/internal/FileChooserText.java
type FileChooserText (line 28) | public enum FileChooserText implements BundleText {
method FileChooserText (line 91) | FileChooserText (final String name) {
method getBundle (line 95) | private static I18NBundle getBundle () {
method getName (line 99) | @Override
method get (line 104) | @Override
method format (line 109) | @Override
method format (line 114) | @Override
method toString (line 119) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/file/internal/FileChooserWinService.java
class FileChooserWinService (line 38) | public class FileChooserWinService {
method getInstance (line 50) | public static synchronized FileChooserWinService getInstance () {
method FileChooserWinService (line 56) | @SuppressWarnings("unchecked")
method processRoot (line 76) | private void processRoot (final File root) {
method processResult (line 85) | private void processResult (final File root, final String name) {
method addListener (line 100) | public void addListener (File root, RootNameListener listener) {
method getSystemDisplayName (line 118) | private String getSystemDisplayName (File f) {
type RootNameListener (line 139) | public interface RootNameListener {
method setRootName (line 140) | void setRootName (String newName);
class ListenerSet (line 143) | private static class ListenerSet {
method add (line 146) | public void add (RootNameListener listener) {
method notifyListeners (line 150) | public void notifyListeners (String newName) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/file/internal/FileHandleMetadata.java
class FileHandleMetadata (line 22) | public class FileHandleMetadata {
method of (line 29) | public static FileHandleMetadata of (FileHandle file) {
method FileHandleMetadata (line 33) | private FileHandleMetadata (FileHandle file) {
method name (line 41) | public String name () {
method isDirectory (line 45) | public boolean isDirectory () {
method lastModified (line 49) | public long lastModified () {
method length (line 53) | public long length () {
method readableFileSize (line 57) | public String readableFileSize () {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/file/internal/FileHistoryManager.java
class FileHistoryManager (line 41) | public class FileHistoryManager {
method FileHistoryManager (line 51) | public FileHistoryManager (FileChooserStyle style, FileHistoryCallback...
method getDefaultClickListener (line 79) | public ClickListener getDefaultClickListener () {
method getButtonsTable (line 102) | public VisTable getButtonsTable () {
method historyClear (line 106) | public void historyClear () {
method historyAdd (line 113) | public void historyAdd () {
method historyBack (line 120) | public void historyBack () {
method historyForward (line 132) | public void historyForward () {
method setDirectoryFromHistory (line 144) | private boolean setDirectoryFromHistory (FileHandle dir) {
method hasHistoryForward (line 155) | private boolean hasHistoryForward () {
method hasHistoryBack (line 160) | private boolean hasHistoryBack () {
type FileHistoryCallback (line 164) | public interface FileHistoryCallback {
method getCurrentDirectory (line 165) | FileHandle getCurrentDirectory ();
method setDirectory (line 167) | void setDirectory (FileHandle directory, HistoryPolicy policy);
method getStage (line 169) | Stage getStage ();
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/file/internal/FileListAdapter.java
class FileListAdapter (line 28) | public class FileListAdapter extends ArrayAdapter<FileHandle, FileChoose...
method FileListAdapter (line 33) | public FileListAdapter (FileChooser chooser, Array<FileHandle> files) {
method createView (line 39) | @Override
method fillTable (line 44) | @Override
method getViews (line 75) | @Override
method getOrderedViews (line 80) | public Array<FileChooser.FileItem> getOrderedViews () {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/file/internal/FilePopupMenu.java
class FilePopupMenu (line 39) | public class FilePopupMenu extends PopupMenu {
method FilePopupMenu (line 54) | public FilePopupMenu (final FileChooser chooser, final FilePopupMenuCa...
method build (line 116) | public void build () {
method build (line 124) | public void build (Array<FileHandle> favorites, FileHandle file) {
method buildForFavorite (line 149) | public void buildForFavorite (Array<FileHandle> favorites, File file) {
method isAddedToStage (line 159) | public boolean isAddedToStage () {
method fileDeleterChanged (line 163) | public void fileDeleterChanged (boolean trashAvailable) {
type FilePopupMenuCallback (line 167) | public interface FilePopupMenuCallback {
method showNewDirDialog (line 168) | void showNewDirDialog ();
method showFileDelDialog (line 170) | void showFileDelDialog (FileHandle file);
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/file/internal/FileSuggestionPopup.java
class FileSuggestionPopup (line 30) | public class FileSuggestionPopup extends AbstractSuggestionPopup {
method FileSuggestionPopup (line 31) | public FileSuggestionPopup (FileChooser chooser) {
method pathFieldKeyTyped (line 35) | public void pathFieldKeyTyped (Stage stage, Array<FileHandle> files, V...
method createSuggestions (line 50) | private int createSuggestions (Array<FileHandle> files, final VisTextF...
method getTrimmedName (line 93) | private String getTrimmedName (String name) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/file/internal/IconStack.java
class IconStack (line 28) | public class IconStack extends WidgetGroup {
method IconStack (line 34) | public IconStack (VisImage icon, VisCheckBox checkBox) {
method invalidate (line 43) | @Override
method computeSize (line 49) | private void computeSize () {
method add (line 82) | public void add (Actor actor) {
method layout (line 86) | @Override
method getPrefWidth (line 97) | @Override
method getPrefHeight (line 103) | @Override
method getMinWidth (line 109) | @Override
method getMinHeight (line 115) | @Override
method getMaxWidth (line 121) | @Override
method getMaxHeight (line 127) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/file/internal/PreferencesIO.java
class PreferencesIO (line 27) | public class PreferencesIO {
method PreferencesIO (line 38) | public PreferencesIO () {
method PreferencesIO (line 42) | public PreferencesIO (String prefsName) {
method checkIfUsingDefaultName (line 47) | public void checkIfUsingDefaultName () {
method setDefaultPrefsName (line 53) | public static void setDefaultPrefsName (String prefsName) {
method loadFavorites (line 58) | public Array<FileHandle> loadFavorites () {
method saveFavorites (line 66) | public void saveFavorites (Array<FileHandle> favorites) {
method loadRecentDirectories (line 71) | public Array<FileHandle> loadRecentDirectories () {
method saveRecentDirectories (line 79) | public void saveRecentDirectories (Array<FileHandle> recentDirs) {
method loadLastDirectory (line 84) | public FileHandle loadLastDirectory () {
method saveLastDirectory (line 90) | public void saveLastDirectory (FileHandle file) {
class FileArrayData (line 95) | private static class FileArrayData {
method FileArrayData (line 98) | public FileArrayData () {
method FileArrayData (line 102) | public FileArrayData (Array<FileHandle> favourites) {
method toFileHandleArray (line 108) | public Array<FileHandle> toFileHandleArray () {
class FileHandleData (line 119) | private static class FileHandleData {
method FileHandleData (line 123) | public FileHandleData () {
method FileHandleData (line 126) | public FileHandleData (FileHandle file) {
method toFileHandle (line 131) | public FileHandle toFileHandle () {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/file/internal/ServiceThreadFactory.java
class ServiceThreadFactory (line 24) | public class ServiceThreadFactory implements ThreadFactory {
method ServiceThreadFactory (line 28) | public ServiceThreadFactory (String threadPrefix) {
method newThread (line 33) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/file/internal/SortingPopupMenu.java
class SortingPopupMenu (line 31) | public class SortingPopupMenu extends PopupMenu {
method SortingPopupMenu (line 47) | public SortingPopupMenu (final FileChooser chooser) {
method build (line 98) | public void build () {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/internal/SplitPaneCursorManager.java
class SplitPaneCursorManager (line 32) | public abstract class SplitPaneCursorManager extends ClickListener {
method SplitPaneCursorManager (line 38) | public SplitPaneCursorManager (Actor owner, boolean vertical) {
method touchDown (line 43) | @Override
method touchDragged (line 48) | @Override
method mouseMoved (line 58) | @Override
method exit (line 70) | @Override
method setCustomCursor (line 78) | private void setCustomCursor () {
method clearCustomCursor (line 92) | private void clearCustomCursor () {
method handleBoundsContains (line 99) | protected abstract boolean handleBoundsContains (float x, float y);
method contains (line 101) | protected abstract boolean contains (float x, float y);
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/spinner/AbstractSpinnerModel.java
class AbstractSpinnerModel (line 29) | public abstract class AbstractSpinnerModel implements SpinnerModel {
method AbstractSpinnerModel (line 35) | public AbstractSpinnerModel (boolean allowRebind) {
method bind (line 39) | @Override
method incrementModel (line 50) | protected abstract boolean incrementModel ();
method decrementModel (line 56) | protected abstract boolean decrementModel ();
method increment (line 58) | @Override
method increment (line 63) | @Override
method decrement (line 70) | @Override
method decrement (line 75) | @Override
method isWrap (line 82) | @Override
method setWrap (line 87) | @Override
method isAllowRebind (line 93) | public boolean isAllowRebind () {
method setAllowRebind (line 97) | protected void setAllowRebind (boolean allowRebind) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/spinner/ArraySpinnerModel.java
class ArraySpinnerModel (line 34) | public class ArraySpinnerModel<T> extends AbstractSpinnerModel {
method ArraySpinnerModel (line 43) | public ArraySpinnerModel () {
method ArraySpinnerModel (line 52) | public ArraySpinnerModel (Array<T> items) {
method bind (line 57) | @Override
method itemToString (line 75) | protected String itemToString (T item) {
method getItemIndexForText (line 80) | private int getItemIndexForText (String text) {
method textChanged (line 90) | @Override
method incrementModel (line 98) | @Override
method decrementModel (line 112) | @Override
method getText (line 126) | @Override
method invalidateDataSet (line 132) | public void invalidateDataSet () {
method getItems (line 138) | public Array<T> getItems () {
method setItems (line 143) | public void setItems (Array<T> newItems) {
method getCurrentIndex (line 151) | public int getCurrentIndex () {
method getCurrent (line 156) | public T getCurrent () {
method setCurrent (line 161) | public void setCurrent (int newIndex) {
method setCurrent (line 166) | public void setCurrent (int newIndex, boolean fireEvent) {
method setCurrent (line 172) | public void setCurrent (T item) {
method setCurrent (line 177) | public void setCurrent (T item, boolean fireEvent) {
method updateCurrentItem (line 186) | private void updateCurrentItem (int newIndex) {
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/spinner/FloatSpinnerModel.java
class FloatSpinnerModel (line 32) | public class FloatSpinnerModel extends AbstractSpinnerModel {
method FloatSpinnerModel (line 42) | public FloatSpinnerModel (String initialValue, String min, String max) {
method FloatSpinnerModel (line 46) | public FloatSpinnerModel (String initialValue, String min, String max,...
method FloatSpinnerModel (line 50) | public FloatSpinnerModel (String initialValue, String min, String max,...
method FloatSpinnerModel (line 54) | public FloatSpinnerModel (BigDecimal initialValue, BigDecimal min, Big...
method bind (line 67) | @Override
method textChanged (line 74) | @Override
method incrementModel (line 84) | @Override
method decrementModel (line 103) | @Override
method getText (line 123) | @Override
method getScale (line 128) | public int getScale () {
method setScale (line 137) | public void setScale (final int scale) {
method setScale (line 141) | private void setScale (final int scale, boolean notifySpinner) {
method setValue (line 177) | public void setValue (BigDecimal newValue) {
method setValue (line 181) | public void setValue (BigDecimal newValue, boolean fireEvent) {
method getValue (line 193) | public BigDecimal getValue () {
method getMin (line 197) | public BigDecimal getMin () {
method setMin (line 202) | public void setMin (BigDecimal min) {
method getMax (line 219) | public BigDecimal getMax () {
method setMax (line 224) | public void setMax (BigDecimal max) {
method getStep (line 235) | public BigDecimal getStep () {
method setStep (line 239) | public void setStep (BigDecimal step) {
method checkInputBounds (line 244) | private boolean checkInputBounds (String input) {
class BoundsValidator (line 253) | private class BoundsValidator implements InputValidator {
method validateInput (line 254) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/spinner/IntSpinnerModel.java
class IntSpinnerModel (line 31) | public class IntSpinnerModel extends AbstractSpinnerModel {
method IntSpinnerModel (line 40) | public IntSpinnerModel (int initialValue, int min, int max) {
method IntSpinnerModel (line 44) | public IntSpinnerModel (int initialValue, int min, int max, int step) {
method bind (line 55) | @Override
method textChanged (line 75) | @Override
method incrementModel (line 85) | @Override
method decrementModel (line 104) | @Override
method getText (line 123) | @Override
method setValue (line 128) | public void setValue (int newValue) {
method setValue (line 132) | public void setValue (int newValue, boolean fireEvent) {
method getValue (line 144) | public int getValue () {
method getMin (line 148) | public int getMin () {
method setMin (line 153) | public void setMin (int min) {
method getMax (line 170) | public int getMax () {
method setMax (line 175) | public void setMax (int max) {
method getStep (line 186) | public int getStep () {
method setStep (line 190) | public void setStep (int step) {
method checkInputBounds (line 196) | private boolean checkInputBounds (String input) {
class BoundsValidator (line 205) | private class BoundsValidator implements InputValidator {
method validateInput (line 206) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/spinner/SimpleFloatSpinnerModel.java
class SimpleFloatSpinnerModel (line 33) | public class SimpleFloatSpinnerModel extends AbstractSpinnerModel {
method SimpleFloatSpinnerModel (line 43) | public SimpleFloatSpinnerModel (float initialValue, float min, float m...
method SimpleFloatSpinnerModel (line 47) | public SimpleFloatSpinnerModel (float initialValue, float min, float m...
method SimpleFloatSpinnerModel (line 51) | public SimpleFloatSpinnerModel (float initialValue, float min, float m...
method bind (line 64) | @Override
method textChanged (line 71) | @Override
method incrementModel (line 81) | @Override
method decrementModel (line 99) | @Override
method getText (line 117) | @Override
method getPrecision (line 129) | public int getPrecision () {
method setPrecision (line 138) | public void setPrecision (final int precision) {
method setPrecision (line 142) | private void setPrecision (final int precision, boolean notifySpinner) {
method setValue (line 177) | public void setValue (float newValue) {
method setValue (line 181) | public void setValue (float newValue, boolean fireEvent) {
method getValue (line 193) | public float getValue () {
method getMin (line 197) | public float getMin () {
method setMin (line 202) | public void setMin (float min) {
method getMax (line 219) | public float getMax () {
method setMax (line 224) | public void setMax (float max) {
method getStep (line 235) | public float getStep () {
method setStep (line 239) | public void setStep (float step) {
method checkInputBounds (line 245) | private boolean checkInputBounds (String input) {
class BoundsValidator (line 254) | private class BoundsValidator implements InputValidator {
method validateInput (line 255) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/spinner/Spinner.java
class Spinner (line 48) | public class Spinner extends VisTable implements Disableable {
method Spinner (line 65) | public Spinner (String name, SpinnerModel model) {
method Spinner (line 69) | public Spinner (String styleName, String name, SpinnerModel model) {
method Spinner (line 73) | public Spinner (SpinnerStyle style, Sizes sizes, String name, SpinnerM...
method createTextField (line 95) | private VisValidatableTextField createTextField () {
method setModel (line 108) | public void setModel (SpinnerModel model) {
method addButtonsListeners (line 114) | private void addButtonsListeners (VisImageButton upButton, VisImageBut...
method addTextFieldListeners (line 137) | private void addTextFieldListeners (final VisTextField textField) {
method setDisabled (line 194) | @Override
method isDisabled (line 202) | @Override
method setSelectorName (line 207) | public void setSelectorName (String name) {
method getSelectorName (line 216) | public String getSelectorName () {
method increment (line 220) | public void increment () {
method increment (line 224) | private void increment (boolean fireEvent) {
method decrement (line 228) | public void decrement () {
method decrement (line 232) | private void decrement (boolean fireEvent) {
method setProgrammaticChangeEvents (line 237) | public void setProgrammaticChangeEvents (boolean programmaticChangeEve...
method isProgrammaticChangeEvents (line 241) | public boolean isProgrammaticChangeEvents () {
method setTextFieldEventPolicy (line 245) | public void setTextFieldEventPolicy (TextFieldEventPolicy textFieldEve...
method getTextFieldEventPolicy (line 249) | public TextFieldEventPolicy getTextFieldEventPolicy () {
method getMaxLength (line 253) | public int getMaxLength () {
method setMaxLength (line 257) | public void setMaxLength (int maxLength) {
method getModel (line 261) | public SpinnerModel getModel () {
method notifyValueChanged (line 270) | public void notifyValueChanged (boolean fireEvent) {
method getTextField (line 284) | public VisValidatableTextField getTextField () {
class SpinnerStyle (line 288) | public static class SpinnerStyle {
method SpinnerStyle (line 292) | public SpinnerStyle () {
method SpinnerStyle (line 295) | public SpinnerStyle (SpinnerStyle style) {
method SpinnerStyle (line 300) | public SpinnerStyle (Drawable up, Drawable down) {
class ButtonRepeatTask (line 306) | private class ButtonRepeatTask extends Task {
method run (line 309) | @Override
type TextFieldEventPolicy (line 324) | public enum TextFieldEventPolicy {
class ButtonInputListener (line 343) | private class ButtonInputListener extends InputListener {
method ButtonInputListener (line 349) | public ButtonInputListener (boolean advance) {
method touchDown (line 353) | @Override
method touchUp (line 363) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/spinner/SpinnerModel.java
type SpinnerModel (line 33) | public interface SpinnerModel {
method bind (line 44) | void bind (Spinner spinner);
method textChanged (line 51) | void textChanged ();
method increment (line 60) | boolean increment ();
method increment (line 68) | boolean increment (boolean fireEvent);
method decrement (line 77) | boolean decrement ();
method decrement (line 85) | boolean decrement (boolean fireEvent);
method setWrap (line 92) | void setWrap (boolean wrap);
method isWrap (line 95) | boolean isWrap ();
method getText (line 98) | String getText ();
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/tabbedpane/Tab.java
class Tab (line 28) | public abstract class Tab implements Disposable {
method Tab (line 36) | public Tab () {
method Tab (line 40) | public Tab (boolean savable) {
method Tab (line 48) | public Tab (boolean savable, boolean closeableByUser) {
method getTabTitle (line 54) | public abstract String getTabTitle ();
method getContentTable (line 60) | public abstract Table getContentTable ();
method onShow (line 63) | public void onShow () {
method onHide (line 68) | public void onHide () {
method isActiveTab (line 73) | public boolean isActiveTab () {
method getPane (line 78) | public TabbedPane getPane () {
method setPane (line 83) | public void setPane (TabbedPane pane) {
method isSavable (line 87) | public boolean isSavable () {
method isCloseableByUser (line 91) | public boolean isCloseableByUser () {
method isDirty (line 95) | public boolean isDirty () {
method setDirty (line 99) | public void setDirty (boolean dirty) {
method dirty (line 111) | public void dirty () {
method save (line 119) | public boolean save () {
method checkSavable (line 125) | private void checkSavable () {
method removeFromTabPane (line 130) | public void removeFromTabPane () {
method dispose (line 135) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/tabbedpane/TabbedPane.java
class TabbedPane (line 71) | public class TabbedPane {
method TabbedPane (line 91) | public TabbedPane () {
method TabbedPane (line 95) | public TabbedPane (String styleName) {
method TabbedPane (line 99) | public TabbedPane (TabbedPaneStyle style) {
method TabbedPane (line 103) | public TabbedPane (TabbedPaneStyle style, Sizes sizes) {
method configureDragPane (line 150) | private void configureDragPane (TabbedPaneStyle style) {
method getTabsPane (line 207) | public DragPane getTabsPane () {
method setAllowTabDeselect (line 215) | public void setAllowTabDeselect (boolean allowTabDeselect) {
method isAllowTabDeselect (line 224) | public boolean isAllowTabDeselect () {
method add (line 228) | public void add (Tab tab) {
method insert (line 236) | public void insert (int index, Tab tab) {
method addTab (line 246) | protected void addTab (Tab tab, int index) {
method disableTab (line 282) | public void disableTab (Tab tab, boolean disable) {
method isTabDisabled (line 303) | public boolean isTabDisabled (Tab tab) {
method selectFirstEnabledTab (line 311) | private boolean selectFirstEnabledTab () {
method checkIfTabsBelongsToThisPane (line 322) | private void checkIfTabsBelongsToThisPane (Tab tab) {
method throwNotBelongingTabException (line 328) | protected void throwNotBelongingTabException (Tab tab) {
method remove (line 337) | public boolean remove (Tab tab) {
method remove (line 345) | public boolean remove (final Tab tab, boolean ignoreTabDirty) {
method removeTab (line 373) | private boolean removeTab (Tab tab) {
method removeAll (line 408) | public void removeAll () {
method switchTab (line 423) | public void switchTab (int index) {
method switchTab (line 427) | public void switchTab (Tab tab) {
method updateTabTitle (line 440) | public void updateTabTitle (Tab tab) {
method getTabTitle (line 448) | protected String getTabTitle (Tab tab) {
method getTable (line 452) | public TabbedPaneTable getTable () {
method getActiveTab (line 457) | public Tab getActiveTab () {
method addListener (line 461) | public void addListener (TabbedPaneListener listener) {
method removeListener (line 465) | public boolean removeListener (TabbedPaneListener listener) {
method notifyListenersSwitched (line 469) | private void notifyListenersSwitched (Tab tab) {
method notifyListenersRemoved (line 475) | private void notifyListenersRemoved (Tab tab) {
method notifyListenersRemovedAll (line 481) | private void notifyListenersRemovedAll () {
method getTabs (line 488) | public Array<Tab> getTabs () {
method getUIOrderedTabs (line 496) | public Array<Tab> getUIOrderedTabs () {
class TabbedPaneStyle (line 506) | public static class TabbedPaneStyle {
method TabbedPaneStyle (line 516) | public TabbedPaneStyle () {
method TabbedPaneStyle (line 519) | public TabbedPaneStyle (TabbedPaneStyle style) {
method TabbedPaneStyle (line 527) | public TabbedPaneStyle (Drawable background, Drawable separatorBar, ...
method TabbedPaneStyle (line 533) | public TabbedPaneStyle (Drawable separatorBar, Drawable background, ...
class TabbedPaneTable (line 542) | public static class TabbedPaneTable extends VisTable {
method TabbedPaneTable (line 547) | public TabbedPaneTable (TabbedPane tabbedPane) {
method setPaneCells (line 551) | private void setPaneCells (Cell<DragPane> tabsPaneCell, Cell<Image> ...
method getTabsPaneCell (line 556) | public Cell<DragPane> getTabsPaneCell () {
method getSeparatorCell (line 561) | public Cell<Image> getSeparatorCell () {
method getTabbedPane (line 565) | public TabbedPane getTabbedPane () {
class TabButtonTable (line 570) | private class TabButtonTable extends VisTable {
method TabButtonTable (line 579) | public TabButtonTable (Tab tab) {
method addListeners (line 612) | private void addListeners () {
method switchToNewTab (line 696) | private void switchToNewTab () {
method closeTabAsUser (line 721) | private void closeTabAsUser () {
method select (line 727) | private void select () {
method deselect (line 732) | private void deselect () {
type Text (line 737) | private enum Text implements BundleText {
method Text (line 742) | Text (final String name) {
method getBundle (line 746) | private static I18NBundle getBundle () {
method getName (line 750) | @Override
method get (line 755) | @Override
method format (line 760) | @Override
method format (line 765) | @Override
method toString (line 770) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/tabbedpane/TabbedPaneAdapter.java
class TabbedPaneAdapter (line 23) | public class TabbedPaneAdapter implements TabbedPaneListener {
method switchedTab (line 24) | @Override
method removedTab (line 29) | @Override
method removedAllTabs (line 34) | @Override
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/tabbedpane/TabbedPaneListener.java
type TabbedPaneListener (line 23) | public interface TabbedPaneListener {
method switchedTab (line 29) | void switchedTab (Tab tab);
method removedTab (line 35) | void removedTab (Tab tab);
method removedAllTabs (line 38) | void removedAllTabs ();
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/toast/MessageToast.java
class MessageToast (line 29) | public class MessageToast extends ToastTable {
method MessageToast (line 32) | public MessageToast (String message) {
method addLinkLabel (line 44) | public void addLinkLabel (String text, LinkLabel.LinkLabelListener lab...
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/toast/Toast.java
class Toast (line 44) | public class Toast {
method Toast (line 53) | public Toast (Table content) {
method Toast (line 58) | public Toast (String styleName, Table content) {
method Toast (line 63) | public Toast (ToastStyle style, Table content) {
method createMainTable (line 72) | protected void createMainTable () {
method close (line 89) | protected void close () {
method fadeOut (line 93) | public void fadeOut () {
method fadeIn (line 103) | public Table fadeIn () {
method getContentTable (line 109) | public Table getContentTable () {
method getMainTable (line 113) | public Table getMainTable () {
method setToastManager (line 117) | public void setToastManager (ToastManager toastManager) {
method getToastManager (line 121) | public ToastManager getToastManager () {
class ToastStyle (line 125) | public static class ToastStyle {
method ToastStyle (line 129) | public ToastStyle () {
method ToastStyle (line 132) | public ToastStyle (ToastStyle style) {
method ToastStyle (line 137) | public ToastStyle (Drawable background, VisImageButtonStyle closeBut...
FILE: ui/src/main/java/com/kotcrab/vis/ui/widget/toast/ToastTable.java
class ToastTable (line 28) | public class ToastTable extends VisTable {
method ToastTable (line 31) | public ToastTable () {
method ToastTable (line 34) | public ToastTable (boolean setVisDefaults) {
method fadeOut (line 38) | public void fadeOut () {
method setToast (line 45) | public void setToast (Toast toast) {
method getToast (line 50) | public Toast getToast () {
FILE: ui/src/test/java/com/kotcrab/vis/ui/test/GreaterThanValidatorTest.java
class GreaterThanValidatorTest (line 25) | public class GreaterThanValidatorTest {
method testValidateInput (line 27) | @Test
FILE: ui/src/test/java/com/kotcrab/vis/ui/test/LesserThanValidatorTest.java
class LesserThanValidatorTest (line 25) | public class LesserThanValidatorTest {
method testValidateInput (line 26) | @Test
FILE: ui/src/test/java/com/kotcrab/vis/ui/test/TestImageTextButtonOrientation.java
class TestImageTextButtonOrientation (line 10) | public class TestImageTextButtonOrientation extends VisWindow {
method TestImageTextButtonOrientation (line 11) | public TestImageTextButtonOrientation() {
method addVisWidgets (line 23) | private void addVisWidgets () {
FILE: ui/src/test/java/com/kotcrab/vis/ui/test/manual/HighResFileChooserIconProvider.java
class HighResFileChooserIconProvider (line 32) | public class HighResFileChooserIconProvider extends FileChooser.DefaultF...
method HighResFileChooserIconProvider (line 41) | public HighResFileChooserIconProvider (FileChooser chooser) {
method loadIcons (line 51) | private void loadIcons (Drawable[] target, String prefix) {
method getIcon (line 57) | private Drawable getIcon (Drawable[] source, FileChooser.ViewMode view...
method isThumbnailModesSupported (line 64) | @Override
method getDirIcon (line 69) | @Override
method getImageIcon (line 77) | @Override
method getAudioIcon (line 85) | @Override
method getPdfIcon (line 93) | @Override
method getTextIcon (line 101) | @Override
method dispose (line 109) | @Override
FILE: ui/src/test/java/com/kotcrab/vis/ui/test/manual/TestBuilders.java
class TestBuilders (line 30) | public class TestBuilders extends VisWindow {
method TestBuilders (line 32) | public TestBuilders () {
class TestBuilder (line 99) | private class TestBuilder extends VisWindow {
method TestBuilder (line 100) | public TestBuilder (String name, TableBuilder builder) {
method getSlider (line 163) | private VisSlider getSlider (boolean vertical) {
method getCheckBoxArray (line 169) | private VisCheckBox[] getCheckBoxArray (int count) {
class RowLayout (line 179) | private class RowLayout implements ActorLayout {
method RowLayout (line 182) | public RowLayout (Padding padding) {
method convertToActor (line 186) | @Override
method convertToActor (line 191) | @Override
FILE: ui/src/test/java/com/kotcrab/vis/ui/test/manual/TestBusyBar.java
class TestBusyBar (line 25) | public class TestBusyBar extends VisWindow {
method TestBusyBar (line 26) | public TestBusyBar () {
method addVisWidgets (line 40) | private void addVisWidgets () {
FILE: ui/src/test/java/com/kotcrab/vis/ui/test/manual/TestButtonBar.java
class TestButtonBar (line 29) | public class TestButtonBar extends VisWindow {
method TestButtonBar (line 31) | public TestButtonBar () {
method createTable (line 56) | private VisTable createTable (String order) {
FILE: ui/src/test/java/com/kotcrab/vis/ui/test/manual/TestCollapsible.java
class TestCollapsible (line 24) | public class TestCollapsible extends VisWindow {
method TestCollapsible (line 26) | public TestCollapsible () {
method addVisComponents (line 37) | private void addVisComponents () {
FILE: ui/src/test/java/com/kotcrab/vis/ui/test/manual/TestColorPicker.java
class TestColorPicker (line 31) | public class TestColorPicker extends VisWindow {
method TestColorPicker (line 36) | public TestColorPicker () {
method close (line 69) | @Override
FILE: ui/src/test/java/com/kotcrab/vis/ui/test/manual/TestDialogs.java
class TestDialogs (line 33) | publ
Condensed preview — 301 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,757K chars).
[
{
"path": ".gitattributes",
"chars": 42,
"preview": "*.svg filter=lfs diff=lfs merge=lfs -text\n"
},
{
"path": ".github/CODEOWNERS",
"chars": 11,
"preview": "* @kotcrab\n"
},
{
"path": ".github/workflows/pr.yml",
"chars": 382,
"preview": "name: Build pull request\n\non:\n pull_request:\n branches: [ master ]\npermissions:\n contents: read\n\njobs:\n build:\n "
},
{
"path": ".github/workflows/release.yml",
"chars": 794,
"preview": "name: Release\n\non:\n push:\n tags:\n - 'visui-*'\n\njobs:\n release:\n runs-on: ubuntu-latest\n environment: rel"
},
{
"path": ".github/workflows/snapshot.yml",
"chars": 678,
"preview": "name: Build and upload snapshot\n\non:\n push:\n branches: [ master ]\n schedule:\n - cron: \"40 16 10 * *\"\n\njobs:\n sn"
},
{
"path": ".gitignore",
"chars": 603,
"preview": "## Maven\ntarget/\n\n## Java\n\n*.class\n*.war\n*.ear\nhs_err_pid*\n\n## GWT\n\nwar/gwt_bree/\ngwt-unitCache/\n.apt_generated/\nwar/WEB"
},
{
"path": "AUTHORS",
"chars": 342,
"preview": "# This is the official list of the AUTHORS of Vis Project\n# for copyright purposes.\n# This file is distinct from the CON"
},
{
"path": "CONTRIBUTING.md",
"chars": 1678,
"preview": "We are glad that you would like to contribute to the Vis Project. Here are some guidelines that you should follow when m"
},
{
"path": "CONTRIBUTORS",
"chars": 839,
"preview": "# This is the official list of people who can contribute\n# (and who have contributed) code to the Vis Project\n# reposito"
},
{
"path": "LICENSE",
"chars": 10173,
"preview": "\n Apache License\n Version 2.0, January 2004\n "
},
{
"path": "README.md",
"chars": 6175,
"preview": "# VisUI\n\nVisUI allows to create nice looking UI in libGDX using scene2d.ui. Library contains scene2d.ui skin, useful wid"
},
{
"path": "build.gradle",
"chars": 2315,
"preview": "import com.vanniktech.maven.publish.JavaLibrary\nimport com.vanniktech.maven.publish.JavadocJar\n\nbuildscript {\n reposi"
},
{
"path": "gradle/wrapper/gradle-wrapper.properties",
"chars": 253,
"preview": "distributionBase=GRADLE_USER_HOME\ndistributionPath=wrapper/dists\ndistributionUrl=https\\://services.gradle.org/distributi"
},
{
"path": "gradle.properties",
"chars": 204,
"preview": "org.gradle.daemon=true\norg.gradle.jvmargs=-Xms256m -Xmx1024m\norg.gradle.configureondemand=true\n\n#required by deploy, cha"
},
{
"path": "gradlew",
"chars": 8710,
"preview": "#!/bin/sh\n\n#\n# Copyright © 2015-2021 the original authors.\n#\n# Licensed under the Apache License, Version 2.0 (the \"Lice"
},
{
"path": "gradlew.bat",
"chars": 2843,
"preview": "@rem\n@rem Copyright 2015 the original author or authors.\n@rem\n@rem Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "settings.gradle",
"chars": 91,
"preview": "rootProject.name = 'vis-ui'\nrootProject.buildFileName = 'build.gradle'\ninclude 'ui', 'usl'\n"
},
{
"path": "ui/CHANGES.md",
"chars": 58615,
"preview": "#### Version: 1.5.9-SNAPSHOT (libGDX 1.14.0)\n\n#### Version: 1.5.8 (libGDX 1.14.0)\n- Updated to libGDX 1.14.0\n\n#### Versi"
},
{
"path": "ui/NOTICE",
"chars": 147,
"preview": "VisUI uses icons licensed under CC BY-ND 3.0\nhttps://github.com/Templarian/WindowsIcons/blob/master/WindowsPhone/license"
},
{
"path": "ui/assets-raw/x1/pack.json",
"chars": 111,
"preview": "{\n duplicatePadding: false,\n paddingX: 1,\n paddingY: 1,\n stripWhitespaceX: true,\n stripWhitespaceY: true\n}"
},
{
"path": "ui/assets-raw/x1-fonts/default.hiero",
"chars": 744,
"preview": "font.name=Vis Open Sans\nfont.size=15\nfont.bold=false\nfont.italic=false\n\nfont2.file=C:\\Data\\Git\\vis-ui\\ui\\assets-raw\\VisO"
},
{
"path": "ui/assets-raw/x1-fonts/font-small.hiero",
"chars": 872,
"preview": "font.name=Vis Open Sans\nfont.size=12\nfont.bold=false\nfont.italic=false\n\nfont2.file=C:\\Data\\Git\\vis-ui\\ui\\assets-raw\\VisO"
},
{
"path": "ui/assets-raw/x2/pack.json",
"chars": 111,
"preview": "{\n duplicatePadding: false,\n paddingX: 1,\n paddingY: 1,\n stripWhitespaceX: true,\n stripWhitespaceY: true\n}"
},
{
"path": "ui/assets-raw/x2-fonts/default.hiero",
"chars": 744,
"preview": "font.name=Vis Open Sans\nfont.size=30\nfont.bold=false\nfont.italic=false\n\nfont2.file=C:\\Data\\Git\\vis-ui\\ui\\assets-raw\\VisO"
},
{
"path": "ui/assets-raw/x2-fonts/font-small.hiero",
"chars": 744,
"preview": "font.name=Vis Open Sans\nfont.size=24\nfont.bold=false\nfont.italic=false\n\nfont2.file=C:\\Data\\Git\\vis-ui\\ui\\assets-raw\\VisO"
},
{
"path": "ui/build.gradle",
"chars": 2639,
"preview": "archivesBaseName = \"vis-ui\"\nsourceCompatibility = 1.8\n[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'\n\ndepen"
},
{
"path": "ui/gradle.properties",
"chars": 108,
"preview": "projectName=vis-ui\nprojectDesc=UI toolkit and flat design skin for scene2d.ui\nprojectVersion=1.5.9-SNAPSHOT\n"
},
{
"path": "ui/icons-license",
"chars": 1899,
"preview": "# License\nPlease carefully understand the license and download the latest icons at ModernUIIcons.com.\n## Understand Your"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/FocusManager.java",
"chars": 2753,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/Focusable.java",
"chars": 1008,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/Locales.java",
"chars": 6214,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/Sizes.java",
"chars": 2469,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/VisUI.java",
"chars": 4928,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/building/CenteredTableBuilder.java",
"chars": 3622,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/building/GridTableBuilder.java",
"chars": 2386,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/building/OneColumnTableBuilder.java",
"chars": 1947,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/building/OneRowTableBuilder.java",
"chars": 2072,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/building/StandardTableBuilder.java",
"chars": 2447,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/building/TableBuilder.java",
"chars": 10757,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/building/utilities/Alignment.java",
"chars": 3004,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/building/utilities/CellWidget.java",
"chars": 9051,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/building/utilities/Nullables.java",
"chars": 2966,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/building/utilities/Padding.java",
"chars": 7360,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/building/utilities/layouts/ActorLayout.java",
"chars": 1210,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/building/utilities/layouts/GridTableLayout.java",
"chars": 1614,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/building/utilities/layouts/TableLayout.java",
"chars": 2436,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/i18n/BundleText.java",
"chars": 1140,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/layout/DragPane.java",
"chars": 24251,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/layout/FloatingGroup.java",
"chars": 3900,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/layout/FlowGroup.java",
"chars": 10628,
"preview": "package com.kotcrab.vis.ui.layout;\n\nimport com.badlogic.gdx.scenes.scene2d.Actor;\nimport com.badlogic.gdx.scenes.scene2d"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/layout/GridGroup.java",
"chars": 4082,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/layout/HorizontalFlowGroup.java",
"chars": 3760,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/layout/VerticalFlowGroup.java",
"chars": 3797,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/ActorUtils.java",
"chars": 3190,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/BorderOwner.java",
"chars": 913,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/ColorUtils.java",
"chars": 4089,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/CursorManager.java",
"chars": 2325,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/FloatDigitsOnlyFilter.java",
"chars": 1606,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/InputValidator.java",
"chars": 1276,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/IntDigitsOnlyFilter.java",
"chars": 1410,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/NumberDigitsTextFieldFilter.java",
"chars": 2104,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/OsUtils.java",
"chars": 3697,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/TableUtils.java",
"chars": 1388,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/ToastManager.java",
"chars": 9044,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/Validators.java",
"chars": 4117,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/adapter/AbstractListAdapter.java",
"chars": 12719,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/adapter/ArrayAdapter.java",
"chars": 3154,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/adapter/ArrayListAdapter.java",
"chars": 2557,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/adapter/CachedItemAdapter.java",
"chars": 1834,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/adapter/ItemAdapter.java",
"chars": 867,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/adapter/ListAdapter.java",
"chars": 2181,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/adapter/ListSelectionAdapter.java",
"chars": 1040,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/adapter/SimpleListAdapter.java",
"chars": 2350,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/async/AsyncTask.java",
"chars": 4487,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/async/AsyncTaskListener.java",
"chars": 1238,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/async/AsyncTaskProgressDialog.java",
"chars": 2761,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/async/SteppedAsyncTask.java",
"chars": 1409,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/dialog/ConfirmDialogListener.java",
"chars": 906,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/dialog/Dialogs.java",
"chars": 18815,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/dialog/InputDialogAdapter.java",
"chars": 891,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/dialog/InputDialogListener.java",
"chars": 1045,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/dialog/OptionDialogAdapter.java",
"chars": 912,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/dialog/OptionDialogListener.java",
"chars": 957,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/form/FormInputValidator.java",
"chars": 2811,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/form/FormValidator.java",
"chars": 12022,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/form/SimpleFormValidator.java",
"chars": 12780,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/form/ValidatorWrapper.java",
"chars": 1292,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/highlight/BaseHighlighter.java",
"chars": 2341,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/highlight/Highlight.java",
"chars": 1414,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/highlight/HighlightRule.java",
"chars": 1221,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/highlight/Highlighter.java",
"chars": 1277,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/highlight/RegexHighlightRule.java",
"chars": 1475,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/highlight/WordHighlightRule.java",
"chars": 1409,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/value/ConstantIfVisibleValue.java",
"chars": 1325,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/value/PrefHeightIfVisibleValue.java",
"chars": 1728,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/value/PrefWidthIfVisibleValue.java",
"chars": 1721,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/value/VisValue.java",
"chars": 1226,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/util/value/VisWidgetValue.java",
"chars": 1535,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/BusyBar.java",
"chars": 3240,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/ButtonBar.java",
"chars": 5233,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/CollapsibleWidget.java",
"chars": 4532,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/Draggable.java",
"chars": 19260,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/HighlightTextArea.java",
"chars": 7031,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/HorizontalCollapsibleWidget.java",
"chars": 4303,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/LinkLabel.java",
"chars": 4884,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/ListView.java",
"chars": 5732,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/ListViewStyle.java",
"chars": 996,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/Menu.java",
"chars": 3583,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/MenuBar.java",
"chars": 3474,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/MenuItem.java",
"chars": 11970,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/MultiSplitPane.java",
"chars": 12472,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/PopupMenu.java",
"chars": 12237,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/ScrollableTextArea.java",
"chars": 4642,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/Separator.java",
"chars": 2406,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/Tooltip.java",
"chars": 9937,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/VisCheckBox.java",
"chars": 6714,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/VisDialog.java",
"chars": 9761,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/VisImage.java",
"chars": 1976,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/VisImageButton.java",
"chars": 6854,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/VisImageTextButton.java",
"chars": 9558,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/VisLabel.java",
"chars": 1700,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/VisList.java",
"chars": 1552,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/VisProgressBar.java",
"chars": 1484,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/VisRadioButton.java",
"chars": 1633,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/VisScrollPane.java",
"chars": 1226,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/VisSelectBox.java",
"chars": 1605,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/VisSlider.java",
"chars": 1328,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/VisSplitPane.java",
"chars": 13928,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/VisTable.java",
"chars": 2076,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/VisTextArea.java",
"chars": 14479,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/VisTextButton.java",
"chars": 3871,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/VisTextField.java",
"chars": 39155,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/VisTree.java",
"chars": 1910,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/VisValidatableTextField.java",
"chars": 5056,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/VisWindow.java",
"chars": 7380,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/color/BasicColorPicker.java",
"chars": 10668,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/color/ColorPicker.java",
"chars": 5769,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/color/ColorPickerAdapter.java",
"chars": 1080,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/color/ColorPickerListener.java",
"chars": 1696,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/color/ColorPickerStyle.java",
"chars": 1034,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/color/ColorPickerWidgetStyle.java",
"chars": 1393,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/color/ExtendedColorPicker.java",
"chars": 7642,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/color/internal/AlphaChannelBar.java",
"chars": 1354,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/color/internal/AlphaImage.java",
"chars": 1667,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/color/internal/ChannelBar.java",
"chars": 3741,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/color/internal/ColorChannelWidget.java",
"chars": 3085,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/color/internal/ColorInputField.java",
"chars": 3710,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/color/internal/ColorPickerText.java",
"chars": 1594,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/color/internal/GridSubImage.java",
"chars": 1707,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/color/internal/Palette.java",
"chars": 3948,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/color/internal/PickerCommons.java",
"chars": 3464,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/color/internal/ShaderImage.java",
"chars": 1494,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/color/internal/VerticalChannelBar.java",
"chars": 2893,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/color/internal/package-info.java",
"chars": 842,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/file/FileChooser.java",
"chars": 67179,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/file/FileChooserAdapter.java",
"chars": 982,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/file/FileChooserListener.java",
"chars": 1072,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/file/FileChooserStyle.java",
"chars": 2426,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/file/FileTypeFilter.java",
"chars": 4297,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/file/FileUtils.java",
"chars": 6655,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/file/SingleFileChooserListener.java",
"chars": 1612,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/file/StreamingFileChooserListener.java",
"chars": 1769,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/file/internal/AbstractSuggestionPopup.java",
"chars": 1321,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/file/internal/DirsSuggestionPopup.java",
"chars": 4680,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/file/internal/DriveCheckerService.java",
"chars": 3829,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/file/internal/FileChooserText.java",
"chars": 3732,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/file/internal/FileChooserWinService.java",
"chars": 4568,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/file/internal/FileHandleMetadata.java",
"chars": 1572,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/file/internal/FileHistoryManager.java",
"chars": 5126,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/file/internal/FileListAdapter.java",
"chars": 2584,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/file/internal/FilePopupMenu.java",
"chars": 4985,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/file/internal/FileSuggestionPopup.java",
"chars": 3158,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/file/internal/IconStack.java",
"chars": 3809,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/file/internal/PreferencesIO.java",
"chars": 4251,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/file/internal/ServiceThreadFactory.java",
"chars": 1303,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/file/internal/SortingPopupMenu.java",
"chars": 4121,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/file/internal/package-info.java",
"chars": 841,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/internal/SplitPaneCursorManager.java",
"chars": 2880,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/spinner/AbstractSpinnerModel.java",
"chars": 2774,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/spinner/ArraySpinnerModel.java",
"chars": 5731,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/spinner/FloatSpinnerModel.java",
"chars": 7566,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/spinner/IntSpinnerModel.java",
"chars": 4884,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/spinner/SimpleFloatSpinnerModel.java",
"chars": 6870,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/spinner/Spinner.java",
"chars": 10568,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/spinner/SpinnerModel.java",
"chars": 4316,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/tabbedpane/Tab.java",
"chars": 3759,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/tabbedpane/TabbedPane.java",
"chars": 23145,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/tabbedpane/TabbedPaneAdapter.java",
"chars": 950,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/tabbedpane/TabbedPaneListener.java",
"chars": 1247,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/toast/MessageToast.java",
"chars": 1627,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/toast/Toast.java",
"chars": 4223,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/java/com/kotcrab/vis/ui/widget/toast/ToastTable.java",
"chars": 1703,
"preview": "/*\n * Copyright 2014-2017 See AUTHORS file.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you"
},
{
"path": "ui/src/main/resources/META-INF/robovm/ios/robovm.xml",
"chars": 930,
"preview": "<!--\n ~ Copyright 2014-2016 See AUTHORS file.\n ~\n ~ Licensed under the Apache License, Version 2.0 (the \"License\");\n "
},
{
"path": "ui/src/main/resources/com/kotcrab/vis/ui/i18n/ButtonBar.properties",
"chars": 744,
"preview": "#\n# Copyright 2014-2017 See AUTHORS file.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may "
},
{
"path": "ui/src/main/resources/com/kotcrab/vis/ui/i18n/ColorPicker.properties",
"chars": 674,
"preview": "#\n# Copyright 2014-2017 See AUTHORS file.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may "
},
{
"path": "ui/src/main/resources/com/kotcrab/vis/ui/i18n/Common.properties",
"chars": 657,
"preview": "#\n# Copyright 2014-2017 See AUTHORS file.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may "
},
{
"path": "ui/src/main/resources/com/kotcrab/vis/ui/i18n/Dialogs.properties",
"chars": 681,
"preview": "#\n# Copyright 2014-2017 See AUTHORS file.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may "
},
{
"path": "ui/src/main/resources/com/kotcrab/vis/ui/i18n/FileChooser.properties",
"chars": 2713,
"preview": "#\n# Copyright 2014-2017 See AUTHORS file.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may "
},
{
"path": "ui/src/main/resources/com/kotcrab/vis/ui/i18n/TabbedPane.properties",
"chars": 677,
"preview": "#\n# Copyright 2014-2017 See AUTHORS file.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may "
},
{
"path": "ui/src/main/resources/com/kotcrab/vis/ui/skin/x1/default.fnt",
"chars": 36596,
"preview": "info face=\"Vis Open Sans\" size=15 bold=0 italic=0 charset=\"\" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacin"
}
]
// ... and 101 more files (download for full content)
About this extraction
This page contains the full source code of the kotcrab/VisEditor GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 301 files (1.6 MB), approximately 463.1k tokens, and a symbol index with 2599 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.