Compare commits
62 Commits
861c15c193
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 6eca4fc94b | |||
| 4a98c6402b | |||
| f6efc00c73 | |||
| 34280de44a | |||
| ac91e4e8f9 | |||
| c7ec3e9653 | |||
| d9ed016297 | |||
| 67ac3ffab7 | |||
| 8f7476d2db | |||
| b9ec67f9ff | |||
| 2a53d12e68 | |||
| 49cb480e15 | |||
| 7f2600f0b8 | |||
| c520f3ccd9 | |||
| 2f8633d23b | |||
| 98de4dff6f | |||
| b51f063d52 | |||
| 93b9c7d927 | |||
| 050ea4eb2f | |||
| 9877c1b6de | |||
| 721c9bb5c3 | |||
| e999a11349 | |||
| bc491b7b94 | |||
| b069c20af3 | |||
| d9d358e694 | |||
| 5b9174bdcd | |||
| bc226338e0 | |||
| bdceecbe56 | |||
| 4181801635 | |||
| 75f54e27c4 | |||
| 4b0a182013 | |||
| b08b17d762 | |||
| 4354b8c96e | |||
| cd43ae6adc | |||
| 13da8293c1 | |||
| 82e76c01ff | |||
| 1a2cc87160 | |||
| 5859d3bf6a | |||
| 27ff2e8d8f | |||
| fb95d3b821 | |||
| 16fdcb55da | |||
| 1f11b79222 | |||
| 6c39b5888f | |||
| 24e50ab919 | |||
| 21e39ad3fa | |||
| c04bc2149b | |||
| 5affbc7d0d | |||
| 1d5d448bf1 | |||
| 2b5015a9af | |||
| 83840d1626 | |||
| 7a8eb7f827 | |||
| ea20f1c279 | |||
| bc33a8f64b | |||
| a91aac1192 | |||
| 693cf143a3 | |||
| 7a008c7e60 | |||
| aa4313057c | |||
| 9c43fd523a | |||
| 472811b858 | |||
| aafcbbb7f9 | |||
| 4dc0f400b4 | |||
| 77f2da027e |
@@ -1,4 +1,4 @@
|
||||
- [PS_Editor plugin project](project_ps_editor.md) — Runtime editor plugin for UE 5.5, Phases 1-4 done, outline material pending
|
||||
- [PS_Editor plugin project](project_ps_editor.md) — Runtime editor plugin for UE 5.7 (migrated from 5.5 in April 2026), Phases 1-4 done, outline material pending
|
||||
- [Underscore naming](feedback_naming.md) — Always use PS_Editor_ prefix with underscores in file/class names
|
||||
- [UE5 build process](reference_build.md) — CLI build command for the project (Build.bat path, target name, flags)
|
||||
- [UE5 build process](reference_build.md) — CLI build command for PROSERVE_UE_5_7 (5.5 host deprecated), Build.bat path, target name, junction check
|
||||
- [Build workflow](feedback_build_workflow.md) — Prefer Live Coding (Ctrl+Alt+F11) when UE is open, CLI build only when UE is closed
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
---
|
||||
name: PS_Editor plugin project
|
||||
description: Runtime editor plugin for UE 5.5 - object placement, scene editing, JSON save/load in packaged builds
|
||||
description: Runtime editor plugin for UE 5.7 - object placement, scene editing, JSON save/load in packaged builds
|
||||
type: project
|
||||
---
|
||||
|
||||
PS_Editor is a runtime editor plugin for Unreal Engine 5.5 for the PROSERVE project.
|
||||
PS_Editor is a runtime editor plugin for Unreal Engine 5.7 for the PROSERVE project. The plugin was started on UE 5.5; the host project migrated to UE 5.7 in April 2026 and the plugin follows. Build details in reference_build.md.
|
||||
|
||||
Key decisions:
|
||||
- UI: UMG driven by C++ (Slate)
|
||||
|
||||
@@ -1,18 +1,30 @@
|
||||
---
|
||||
name: UE5 build process
|
||||
description: How to build the PS_ProserveEditor UE 5.5 project from command line on Windows
|
||||
description: How to build the PROSERVE host project (currently UE 5.7) from command line on Windows
|
||||
type: reference
|
||||
---
|
||||
|
||||
UE 5.5 is installed at `C:\Program Files\Epic Games\UE_5.5` (found via registry key `HKLM\SOFTWARE\EpicGames\Unreal Engine\5.5`).
|
||||
The PS_Editor plugin is developed in `E:\ASTERION\GIT\PS_Editor\Unreal\Plugins\PS_Editor` and consumed by the PROSERVE host project via an NTFS junction. Always build the host project, not the plugin in isolation.
|
||||
|
||||
**Current host project (April 2026):** `E:\ASTERION\SVN\DEV\PROSERVE_UE_5_7\PROSERVE_UE_5_7.uproject` (Unreal Engine 5.7)
|
||||
|
||||
The previous 5.5 host (`PROSERVE_UE_5_5`) is deprecated — do not use unless explicitly asked.
|
||||
|
||||
UE 5.7 is installed at `C:\Program Files\Epic Games\UE_5.7` (found via registry key `HKLM\SOFTWARE\EpicGames\Unreal Engine\5.7`).
|
||||
|
||||
Build command (Editor target, Development):
|
||||
```
|
||||
"C:/Program Files/Epic Games/UE_5.5/Engine/Build/BatchFiles/Build.bat" PS_ProserveEditorEditor Win64 Development -Project="C:/ASTERION/GIT/PS_ProserveEditor/Unreal/PS_ProserveEditor.uproject" -WaitMutex -FromMsBuild
|
||||
"C:/Program Files/Epic Games/UE_5.7/Engine/Build/BatchFiles/Build.bat" PROSERVE_UE_5_7Editor Win64 Development -Project="E:/ASTERION/SVN/DEV/PROSERVE_UE_5_7/PROSERVE_UE_5_7.uproject" -WaitMutex -FromMsBuild
|
||||
```
|
||||
|
||||
**How to apply:** Use this command to compile after code changes. Timeout should be set to 600000ms (10 min) for safety. The target name is `PS_ProserveEditorEditor` (Editor suffix) for editor builds.
|
||||
**How to apply:** Use this command to compile after code changes. Timeout should be set to 600000ms (10 min) for safety. The target name is `PROSERVE_UE_5_7Editor` (Editor suffix) for editor builds.
|
||||
|
||||
**When to use CLI vs Live Coding:**
|
||||
- Live Coding (Ctrl+Alt+F11): .cpp only changes (no new UCLASS, USTRUCT, UENUM, UPROPERTY in headers)
|
||||
- Full CLI build (UE must be closed): new files, header changes with new reflected types, Build.cs changes
|
||||
|
||||
**Plugin junction verification:**
|
||||
```
|
||||
ls -la E:/ASTERION/SVN/DEV/PROSERVE_UE_5_7/Plugins/ | grep PS_Editor
|
||||
```
|
||||
Should show a symlink pointing to `/e/ASTERION/GIT/PS_Editor/Unreal/Plugins/PS_Editor`. If broken, the host project will build against a stale or missing plugin copy.
|
||||
|
||||
4
.gitignore
vendored
@@ -6,6 +6,7 @@ Unreal/Binaries/
|
||||
Unreal/Intermediate/
|
||||
Unreal/Saved/
|
||||
Unreal/DerivedDataCache/
|
||||
Unreal/Build/
|
||||
|
||||
# UE build artifacts (plugins)
|
||||
Unreal/Plugins/*/Binaries/
|
||||
@@ -15,3 +16,6 @@ Unreal/Plugins/*/Intermediate/
|
||||
Thumbs.db
|
||||
Desktop.ini
|
||||
.DS_Store
|
||||
|
||||
# Claude Code per-user local settings
|
||||
.claude/settings.local.json
|
||||
|
||||
110
CLAUDE.md
@@ -1,7 +1,7 @@
|
||||
# PS_ProserveEditor - Project Guidelines
|
||||
|
||||
## Project Overview
|
||||
Unreal Engine 5.5 project with runtime editor plugin (PS_Editor). The plugin enables runtime scene editing in packaged builds: object placement, property editing, scenario definition, splines, lighting, and JSON scene save/load.
|
||||
Unreal Engine 5.7 project with runtime editor plugin (PS_Editor). The plugin enables runtime scene editing in packaged builds: object placement, property editing, scenario definition, splines, lighting, and JSON scene save/load. The plugin was started on UE 5.5; the host project migrated to UE 5.7 in April 2026.
|
||||
|
||||
## Architecture
|
||||
- **Plugin**: PS_Editor (runtime plugin, must work in packaged builds)
|
||||
@@ -10,6 +10,91 @@ Unreal Engine 5.5 project with runtime editor plugin (PS_Editor). The plugin ena
|
||||
- **Serialization**: JSON via Json/JsonUtilities modules (FJsonObjectConverter)
|
||||
- **Input**: Enhanced Input system (AZERTY: arrows + A/Q movement, E/R/T modes)
|
||||
|
||||
## Editor vs. Gameplay execution boundary — CRITICAL
|
||||
|
||||
The plugin runs in two distinct modes and it's essential never to leak editor-only code
|
||||
into the gameplay runtime loaded via `UPS_Editor_SceneLoader::LoadScene` (standalone).
|
||||
|
||||
### Editor runtime mode
|
||||
Activated when the `APS_Editor_PlayerController` + `APS_Editor_HUD` + `UPS_Editor_MainWidget*`
|
||||
stack is created (typical during authoring — the user is in the runtime editor).
|
||||
- `UPS_Editor_SceneLoader::bIsEditorModeActive == true`
|
||||
- The HUD widget drives property editing, catalogue spawn, save/load, simulate, timeline
|
||||
- Interface methods called **only** by the widget (never in gameplay):
|
||||
- `GetCustomOptionsForProperty` / `GetCustomOptionsWithValuesForProperty` / `GetCurrentDisplayForProperty`
|
||||
- `OnEditorModeChanged`, `OnEditorTick`
|
||||
- `OnEditorNeedsReinit`, `OnEditorNeedsRespawn`
|
||||
|
||||
### Gameplay mode
|
||||
The project (PROSERVE) loads a scenario via `UPS_Editor_SceneLoader::LoadScene` from a GameMode
|
||||
BeginPlay, without ever instantiating the editor PlayerController / HUD / widget.
|
||||
- `UPS_Editor_SceneLoader::bIsEditorModeActive == false`
|
||||
- Actors spawn, their properties are applied from JSON, `OnPropertiesLoaded` fires once
|
||||
- The timeline subsystem auto-plays if the scenario has tracks, driven **server-side only**
|
||||
|
||||
### Interface methods that fire in BOTH modes
|
||||
- `OnPropertiesLoaded` — after every scene load, editor or gameplay (applied once post-spawn)
|
||||
- `OnEditorPropertyChanged` — fires both in editor (on UI edit via `ApplyPropertyFromUI`) AND
|
||||
in gameplay (on server when the timeline applies a new keyframe value via
|
||||
`TimelineSubsystem::ApplyTrackAtTime`). Despite the name, the "Editor" refers to the
|
||||
PS_Editor plugin — the event is the canonical hook for "a property changed at runtime".
|
||||
In gameplay only the **server** invokes it; client-side reaction must go through
|
||||
`ReplicatedUsing=OnRep_X` RepNotify on the replicated property.
|
||||
|
||||
### Rule when adding new features
|
||||
- Anything tied to property panel UI (new interface method, new widget logic, dropdown
|
||||
helpers, etc.) lives in the widget only — no extra work to scope it out of gameplay
|
||||
- Anything added to the `SceneLoader::LoadScene` path runs in gameplay and must handle
|
||||
`NM_Client`, replication, and server-authority correctly (the timeline subsystem is the
|
||||
reference pattern)
|
||||
- Expensive BP implementations of editor-UI interface methods (DataTable lookups, class
|
||||
resolution, etc.) can stay expensive — they never run outside the authoring session
|
||||
|
||||
### How to guard code that could run in either mode
|
||||
```cpp
|
||||
if (UPS_Editor_SceneLoader::IsInEditorMode())
|
||||
{
|
||||
// editor-only behaviour
|
||||
}
|
||||
```
|
||||
|
||||
### Known PIE-only AI quirk — use Standalone for AI testing
|
||||
|
||||
When the editor's "Play" button calls `UGameplayStatics::OpenLevel(BaseLevel)` from a PIE
|
||||
session, the BaseLevel's `RecastNavMesh` actor ends up pending-kill at registration time
|
||||
(UE logs `RegistrationFailed_DataPendingKill` ×2 and silently spawns an empty
|
||||
`AbstractNavData-Default` as fallback). All `FindPathAsync` / `ProjectPointToNavigation`
|
||||
queries return empty after that — pathfinding looks broken with no error.
|
||||
|
||||
This is **PIE-specific**:
|
||||
- Standalone Game (Window → Standalone) — works correctly
|
||||
- Packaged builds — work correctly
|
||||
- PIE direct on BaseLevel (no editor map / OpenLevel involved) — works correctly
|
||||
- PIE on editor map → click Play (OpenLevel transition inside PIE) — broken
|
||||
|
||||
Multiple workaround attempts have all failed (cascading re-registrations through
|
||||
`RegisterNavData` / `OnInitializeActors` / `AddNavigationSystemToWorld` / `Build` /
|
||||
`SpawnMissingNavigationData`; transition map; duplicated sublevel suffixed `_default`).
|
||||
The cause is internal to PIE's OpenLevel handling and cannot be fixed from the plugin
|
||||
side without engine modifications.
|
||||
|
||||
**Workflow:** for AI iteration, run **Standalone Game** instead of PIE. It exercises the
|
||||
exact same code path as packaged builds.
|
||||
or gate on `bIsCurrentlyLoading` to skip BP init during JSON restore.
|
||||
|
||||
## UI Modes — IMPORTANT for widget changes
|
||||
|
||||
The runtime editor ships with **multiple widget implementations** that must all stay in sync:
|
||||
- `PS_Editor_MainWidget.cpp/.h` — modern UMG-based widget (primary target long-term)
|
||||
- `PS_Editor_MainWidget_Legacy.cpp/.h` — Slate-only legacy widget (**currently active** as of April 2026)
|
||||
- `PS_Editor_MainWidget_UMG.cpp/.h` — UMG variant
|
||||
|
||||
The user can switch between them via a `UIMode` setting. At any given time only one is running, but the project keeps all three compiled.
|
||||
|
||||
**Rule:** when changing any behavior inside a widget (new interface calls, new property row logic, new UI controls, bug fixes in RebuildDynamicProperties / ApplyPropertyFromUI / RefreshDynamicPropertyValues, etc.), **apply the change to ALL widget implementations at the same time**. Otherwise the user's current UIMode gets the fix and the others don't — the "it's like you didn't change anything" bug.
|
||||
|
||||
Symptom that the wrong widget was edited: logs you added don't appear in the Output Log despite the build being clean and the DLL being correctly loaded. Always grep for the function name across all `PS_Editor_MainWidget*.cpp` files before assuming a single edit is sufficient.
|
||||
|
||||
## Naming Conventions
|
||||
- All plugin files and classes use the `PS_Editor_` prefix (e.g., `PS_Editor_GameMode`, `PS_Editor_Pawn`)
|
||||
- Code and comments in English
|
||||
@@ -21,15 +106,28 @@ Unreal Engine 5.5 project with runtime editor plugin (PS_Editor). The plugin ena
|
||||
- When fixing a bug, fix the root cause, not the symptom.
|
||||
- If something requires error handling or validation to work reliably, include it without asking.
|
||||
|
||||
## Workflow — CRITICAL
|
||||
- **Do not make behavior / logic changes without first explaining the plan and waiting for the
|
||||
user's go-ahead.** Explain what the change will be, why it fixes the issue, and what side
|
||||
effects it could have. Only after the user approves (or asks to proceed), apply the edit.
|
||||
- Diagnostic-only additions (temporary `UE_LOG`, read-only inspections) are fine without
|
||||
approval because they can't regress the project.
|
||||
- Refactors, algorithm changes, comportement changes, new defaults, removed features — all
|
||||
require approval first, even when they seem obvious.
|
||||
- When revealing new data (e.g. logs) suggests a fix, STATE the proposed fix in plain words
|
||||
and wait. Don't pre-emptively write + apply the code change in the same turn.
|
||||
|
||||
## Build
|
||||
- Engine: Unreal Engine 5.5
|
||||
- Plugin location: `Unreal/Plugins/PS_Editor/`
|
||||
- Game module: `PS_ProserveEditor` (in `Unreal/Source/PS_ProserveEditor/`)
|
||||
- Engine: Unreal Engine 5.7 (host project migrated from 5.5 in April 2026)
|
||||
- Plugin location: `Unreal/Plugins/PS_Editor/` (consumed via NTFS junction from the PROSERVE host project's `Plugins/` directory)
|
||||
- Host project: `E:\ASTERION\SVN\DEV\PROSERVE_UE_5_7\PROSERVE_UE_5_7.uproject` — always build this, not the plugin in isolation
|
||||
- Game module: `PROSERVE_UE_5_7` (in the host project's `Source/`)
|
||||
- CLI build command (Editor, Development):
|
||||
```
|
||||
"<UE_INSTALL>/Engine/Build/BatchFiles/Build.bat" PS_ProserveEditorEditor Win64 Development -Project="<REPO>/Unreal/PS_ProserveEditor.uproject" -WaitMutex -FromMsBuild
|
||||
"C:/Program Files/Epic Games/UE_5.7/Engine/Build/BatchFiles/Build.bat" PROSERVE_UE_5_7Editor Win64 Development -Project="E:/ASTERION/SVN/DEV/PROSERVE_UE_5_7/PROSERVE_UE_5_7.uproject" -WaitMutex -FromMsBuild
|
||||
```
|
||||
UE install path can be found via registry: `HKLM\SOFTWARE\EpicGames\Unreal Engine\5.5` > `InstalledDirectory`
|
||||
UE install path can be found via registry: `HKLM\SOFTWARE\EpicGames\Unreal Engine\5.7` > `InstalledDirectory`
|
||||
- The 5.5 host (`PROSERVE_UE_5_5`) is deprecated — do not build against it unless explicitly asked.
|
||||
|
||||
## Project Memory
|
||||
Shared project memory is stored in `.claude/memory/` (versioned in the repository). When starting a new session on any machine, read these files to restore context:
|
||||
|
||||
BIN
UI/BP_PS_Editor_HUD.uasset
Normal file
BIN
UI/assets/gizmo_rotate.png
Normal file
|
After Width: | Height: | Size: 71 KiB |
BIN
UI/assets/gizmo_scale.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
UI/assets/gizmo_translate.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
UI/assets/thumb_fx.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
BIN
UI/assets/thumb_npc.png
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
BIN
UI/assets/thumb_prop.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
UI/assets/thumb_spline.png
Normal file
|
After Width: | Height: | Size: 4.9 KiB |
BIN
UI/assets/thumb_weapon.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
UI/icons/Bell.png
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
UI/icons/Box.png
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
BIN
UI/icons/Camera.png
Normal file
|
After Width: | Height: | Size: 7.0 KiB |
BIN
UI/icons/Check.png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
BIN
UI/icons/ChevronDown.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
UI/icons/ChevronLeft.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
UI/icons/ChevronRight.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
UI/icons/Command.png
Normal file
|
After Width: | Height: | Size: 6.3 KiB |
BIN
UI/icons/Diamond.png
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
UI/icons/Download.png
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
UI/icons/Eye.png
Normal file
|
After Width: | Height: | Size: 8.8 KiB |
BIN
UI/icons/EyeOff.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
UI/icons/Film.png
Normal file
|
After Width: | Height: | Size: 4.3 KiB |
BIN
UI/icons/Flag.png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
BIN
UI/icons/Folder.png
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
UI/icons/Globe.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
UI/icons/Grid.png
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
UI/icons/Help.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
UI/icons/Layers.png
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
BIN
UI/icons/Lightbulb.png
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
BIN
UI/icons/Lock.png
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
BIN
UI/icons/Map.png
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
BIN
UI/icons/Minus.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
UI/icons/More.png
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
BIN
UI/icons/Move.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
BIN
UI/icons/PanelBottom.png
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
BIN
UI/icons/PanelRight.png
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
BIN
UI/icons/Pause.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
BIN
UI/icons/Play.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
UI/icons/Plus.png
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
BIN
UI/icons/Record.png
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
BIN
UI/icons/Rotate.png
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
BIN
UI/icons/Save.png
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
UI/icons/Scale.png
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
UI/icons/Search.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
UI/icons/Settings.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
UI/icons/Sidebar.png
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
BIN
UI/icons/SkipBack.png
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
UI/icons/SkipFwd.png
Normal file
|
After Width: | Height: | Size: 3.5 KiB |
BIN
UI/icons/Snap.png
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
BIN
UI/icons/Spline.png
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
BIN
UI/icons/Stop.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
UI/icons/Target.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
UI/icons/Unlock.png
Normal file
|
After Width: | Height: | Size: 4.9 KiB |
BIN
UI/icons/User.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
BIN
UI/icons/Zap.png
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
BIN
UI/icons/icons_16/Bell.png
Normal file
|
After Width: | Height: | Size: 324 B |
BIN
UI/icons/icons_16/Box.png
Normal file
|
After Width: | Height: | Size: 408 B |
BIN
UI/icons/icons_16/Camera.png
Normal file
|
After Width: | Height: | Size: 374 B |
BIN
UI/icons/icons_16/Check.png
Normal file
|
After Width: | Height: | Size: 231 B |
BIN
UI/icons/icons_16/ChevronDown.png
Normal file
|
After Width: | Height: | Size: 218 B |
BIN
UI/icons/icons_16/ChevronLeft.png
Normal file
|
After Width: | Height: | Size: 216 B |
BIN
UI/icons/icons_16/ChevronRight.png
Normal file
|
After Width: | Height: | Size: 218 B |
BIN
UI/icons/icons_16/Command.png
Normal file
|
After Width: | Height: | Size: 340 B |
BIN
UI/icons/icons_16/Diamond.png
Normal file
|
After Width: | Height: | Size: 262 B |
BIN
UI/icons/icons_16/Download.png
Normal file
|
After Width: | Height: | Size: 292 B |
BIN
UI/icons/icons_16/Eye.png
Normal file
|
After Width: | Height: | Size: 397 B |
BIN
UI/icons/icons_16/EyeOff.png
Normal file
|
After Width: | Height: | Size: 382 B |
BIN
UI/icons/icons_16/Film.png
Normal file
|
After Width: | Height: | Size: 302 B |
BIN
UI/icons/icons_16/Flag.png
Normal file
|
After Width: | Height: | Size: 246 B |
BIN
UI/icons/icons_16/Folder.png
Normal file
|
After Width: | Height: | Size: 250 B |
BIN
UI/icons/icons_16/Globe.png
Normal file
|
After Width: | Height: | Size: 461 B |
BIN
UI/icons/icons_16/Grid.png
Normal file
|
After Width: | Height: | Size: 338 B |
BIN
UI/icons/icons_16/Help.png
Normal file
|
After Width: | Height: | Size: 441 B |
BIN
UI/icons/icons_16/Layers.png
Normal file
|
After Width: | Height: | Size: 382 B |
BIN
UI/icons/icons_16/Lightbulb.png
Normal file
|
After Width: | Height: | Size: 338 B |
BIN
UI/icons/icons_16/Lock.png
Normal file
|
After Width: | Height: | Size: 320 B |
BIN
UI/icons/icons_16/Map.png
Normal file
|
After Width: | Height: | Size: 349 B |
BIN
UI/icons/icons_16/Minus.png
Normal file
|
After Width: | Height: | Size: 145 B |
BIN
UI/icons/icons_16/More.png
Normal file
|
After Width: | Height: | Size: 220 B |
BIN
UI/icons/icons_16/Move.png
Normal file
|
After Width: | Height: | Size: 370 B |
BIN
UI/icons/icons_16/PanelBottom.png
Normal file
|
After Width: | Height: | Size: 226 B |
BIN
UI/icons/icons_16/PanelRight.png
Normal file
|
After Width: | Height: | Size: 239 B |
BIN
UI/icons/icons_16/Pause.png
Normal file
|
After Width: | Height: | Size: 206 B |
BIN
UI/icons/icons_16/Play.png
Normal file
|
After Width: | Height: | Size: 292 B |
BIN
UI/icons/icons_16/Plus.png
Normal file
|
After Width: | Height: | Size: 200 B |
BIN
UI/icons/icons_16/Record.png
Normal file
|
After Width: | Height: | Size: 287 B |
BIN
UI/icons/icons_16/Rotate.png
Normal file
|
After Width: | Height: | Size: 375 B |
BIN
UI/icons/icons_16/Save.png
Normal file
|
After Width: | Height: | Size: 335 B |
BIN
UI/icons/icons_16/Scale.png
Normal file
|
After Width: | Height: | Size: 307 B |
BIN
UI/icons/icons_16/Search.png
Normal file
|
After Width: | Height: | Size: 389 B |
BIN
UI/icons/icons_16/Settings.png
Normal file
|
After Width: | Height: | Size: 441 B |
BIN
UI/icons/icons_16/Sidebar.png
Normal file
|
After Width: | Height: | Size: 241 B |
BIN
UI/icons/icons_16/SkipBack.png
Normal file
|
After Width: | Height: | Size: 307 B |
BIN
UI/icons/icons_16/SkipFwd.png
Normal file
|
After Width: | Height: | Size: 299 B |
BIN
UI/icons/icons_16/Snap.png
Normal file
|
After Width: | Height: | Size: 315 B |