From 875477e097c353a368b5fbf5b5f048c956fc4743 Mon Sep 17 00:00:00 2001
From: Ferenc Szontágh <szf@fsociety.hu>
Date: Sat, 03 Feb 2024 12:21:35 +0000
Subject: [PATCH] initial commit

---
 ui/icons/16/refresh.png                                         |    0 
 CMakePresets.json                                               |   12 
 main.cpp                                                        |   25 
 ui/MainWindowUI.h                                               |  106 
 ui/embended_files/pause.png.h                                   |   46 
 external/ggml/Debug/lib/ggml.exp                                |    0 
 ui/embended_files/trash.png.h                                   |   49 
 ui/icons/16/replace.png                                         |    0 
 ui/embended_files/rotate_right.png.h                            |   60 
 CMakeLists.txt                                                  |  101 
 ui/icons/16/pause.png                                           |    0 
 .vscode/extensions.json                                         |    7 
 external/stable-diffusion.cpp/include/stable-diffusion.h        |  160 +
 ui/MainWindowImageViewer.cpp                                    |    8 
 external/stable-diffusion.cpp/Release/lib/stable-diffusion.exp  |    0 
 ui/icons/16/file_import.png                                     |    0 
 ui/utils.hpp                                                    |  383 ++
 ui/windows.fbp                                                  | 4740 ++++++++++++++++++++++++++++++++
 ui/MainWindowSettings.h                                         |   65 
 ui/MainWindowSettings.cpp                                       |   73 
 ui/icons/16/trash.png                                           |    0 
 ui/embended_files/play.png.h                                    |   48 
 ui/embended_files/refresh.png.h                                 |   61 
 ui/icons/16/images.png                                          |    0 
 README.md                                                       |   20 
 external/ggml/Release/lib/ggml.exp                              |    0 
 CMakeUserPresets.json                                           |   12 
 ui/embended_files/disk.png.h                                    |   56 
 ui/embended_files/replace.png.h                                 |   62 
 external/stable-diffusion.cpp/Debug/stable-diffusion.pdb        |    0 
 ui/MainWindow.h                                                 |  182 +
 ui/embended_files/text_box_dots.png.h                           |   55 
 .vscode/launch.json                                             |   28 
 ui/QueueManager.cpp                                             |  129 
 ui/icons/16/play.png                                            |    0 
 ui/MainWindow.cpp                                               |  562 +++
 ui/MainWindowUI.cpp                                             |  875 +++++
 ui/embended_files/images.png.h                                  |   61 
 external/stable-diffusion.cpp/Debug/lib/stable-diffusion.pdb    |    0 
 ui/icons/16/rotate_right.png                                    |    0 
 .gitignore                                                      |    2 
 ui/QueueManager.h                                               |  116 
 ui/icons/16/cube.png                                            |    0 
 ui/icons/16/picture.png                                         |    0 
 ui/icons/16/rewind.png                                          |    0 
 vcpkg-configuration.json                                        |   14 
 external/ggml/Debug/lib/ggml.pdb                                |    0 
 ui/embended_files/forward.png.h                                 |   51 
 ui/embended_files/settings.png.h                                |   62 
 ui/icons/16/disk.png                                            |    0 
 ui/icons/16/palette.png                                         |    0 
 ui/icons/16/forward.png                                         |    0 
 ui/embended_files/picture.png.h                                 |   60 
 .vscode/settings.json                                           |  104 
 ui/embended_files/file_import.png.h                             |   53 
 ui/icons/16/settings.png                                        |    0 
 external/stable-diffusion.cpp/include/stable-diffusion_master.h |  165 +
 ui/embended_files/rotate-right.png.h                            |   60 
 ui/ver.hpp                                                      |    5 
 ui/embended_files/palette.png.h                                 |   68 
 ui/icons/16/cross_circle.png                                    |    0 
 ui/MainWindowImageViewer.h                                      |   39 
 ui/embended_files/cube.png.h                                    |   59 
 external/ggml/Debug/ggml.pdb                                    |    0 
 ui/icons/16/text_box_dots.png                                   |    0 
 vcpkg.json                                                      |    9 
 66 files changed, 8,853 insertions(+), 0 deletions(-)

diff --git a/.gitignore b/.gitignore
index 0def275..613a77a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,3 +19,5 @@
 *.exe
 *.out
 *.app
+vcpkg_installed
+build/**
\ No newline at end of file
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
new file mode 100644
index 0000000..cf925ca
--- /dev/null
+++ b/.vscode/extensions.json
@@ -0,0 +1,7 @@
+{
+    "recommendations": [
+        "wayou.vscode-todo-highlight",
+        "ms-vscode.cpptools",
+        "jeff-hykin.better-cpp-syntax"
+    ]
+}
\ No newline at end of file
diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 0000000..25482f6
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,28 @@
+{
+    "version": "0.2.0",
+    "configurations": [
+        {
+            "name": "(msvc) Launch",
+            "type": "cppvsdbg",
+            "request": "launch",
+            // Resolved by CMake Tools:
+            "program": "${command:cmake.launchTargetPath}",
+            "args": [],
+            "stopAtEntry": false,
+            "cwd": "${workspaceFolder}",
+            "environment": [
+                {
+                    // add the directory where our target was built to the PATHs
+                    // it gets resolved by CMake Tools:
+                    "name": "PATH",
+                    "value": "${env:PATH}:${command:cmake.getLaunchTargetDirectory}"
+                },
+                {
+                    "name": "OTHER_VALUE",
+                    "value": "Something something"
+                }
+            ],
+            "console": "externalTerminal"
+        }
+    ]
+}
\ No newline at end of file
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..a547b9b
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,104 @@
+{
+    "files.associations": {
+        "algorithm": "cpp",
+        "array": "cpp",
+        "atomic": "cpp",
+        "bit": "cpp",
+        "bitset": "cpp",
+        "cctype": "cpp",
+        "charconv": "cpp",
+        "chrono": "cpp",
+        "clocale": "cpp",
+        "cmath": "cpp",
+        "compare": "cpp",
+        "concepts": "cpp",
+        "coroutine": "cpp",
+        "cstddef": "cpp",
+        "cstdint": "cpp",
+        "cstdio": "cpp",
+        "cstdlib": "cpp",
+        "cstring": "cpp",
+        "ctime": "cpp",
+        "cwchar": "cpp",
+        "deque": "cpp",
+        "exception": "cpp",
+        "filesystem": "cpp",
+        "format": "cpp",
+        "forward_list": "cpp",
+        "fstream": "cpp",
+        "functional": "cpp",
+        "hash_map": "cpp",
+        "hash_set": "cpp",
+        "initializer_list": "cpp",
+        "iomanip": "cpp",
+        "ios": "cpp",
+        "iosfwd": "cpp",
+        "iostream": "cpp",
+        "istream": "cpp",
+        "iterator": "cpp",
+        "limits": "cpp",
+        "list": "cpp",
+        "locale": "cpp",
+        "map": "cpp",
+        "memory": "cpp",
+        "new": "cpp",
+        "numeric": "cpp",
+        "optional": "cpp",
+        "ostream": "cpp",
+        "queue": "cpp",
+        "ranges": "cpp",
+        "ratio": "cpp",
+        "source_location": "cpp",
+        "span": "cpp",
+        "sstream": "cpp",
+        "stack": "cpp",
+        "stdexcept": "cpp",
+        "stop_token": "cpp",
+        "streambuf": "cpp",
+        "string": "cpp",
+        "system_error": "cpp",
+        "thread": "cpp",
+        "tuple": "cpp",
+        "type_traits": "cpp",
+        "typeinfo": "cpp",
+        "unordered_map": "cpp",
+        "unordered_set": "cpp",
+        "utility": "cpp",
+        "variant": "cpp",
+        "vector": "cpp",
+        "xfacet": "cpp",
+        "xhash": "cpp",
+        "xiosbase": "cpp",
+        "xlocale": "cpp",
+        "xlocbuf": "cpp",
+        "xlocinfo": "cpp",
+        "xlocmes": "cpp",
+        "xlocmon": "cpp",
+        "xlocnum": "cpp",
+        "xloctime": "cpp",
+        "xmemory": "cpp",
+        "xstring": "cpp",
+        "xtr1common": "cpp",
+        "xtree": "cpp",
+        "xutility": "cpp",
+        "__nullptr": "cpp",
+        "cstdarg": "cpp",
+        "cwctype": "cpp",
+        "mutex": "cpp",
+        "__bit_reference": "cpp",
+        "__hash_table": "cpp",
+        "__split_buffer": "cpp",
+        "__tree": "cpp",
+        "string_view": "cpp",
+        "__string": "cpp",
+        "set": "cpp",
+        "any": "cpp",
+        "cinttypes": "cpp",
+        "codecvt": "cpp",
+        "complex": "cpp",
+        "random": "cpp",
+        "regex": "cpp",
+        "typeindex": "cpp",
+        "valarray": "cpp"
+    }
+}
\ No newline at end of file
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..d0f3a81
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,101 @@
+cmake_minimum_required(VERSION 3.10)
+
+
+project(sd.ui)
+
+set (CMAKE_CXX_STANDARD 20)
+
+
+
+option(SD_CUBLAS                     "sd: cuda backend" ON)
+option(SD_HIPBLAS                    "sd: rocm backend" OFF)
+option(SD_METAL                      "sd: metal backend" OFF)
+set(SD_CUBLAS ON)
+
+
+    #enable_language(CUDA)
+message("CUDA ON")
+
+
+
+
+IF(MSVC)
+    SET(OPTIONS WIN32)
+ENDIF(MSVC)
+
+
+
+add_executable(sd.ui ${OPTIONS} main.cpp ui/MainWindow.cpp ui/MainWindowSettings.cpp ui/MainWindowUi.cpp ui/MainWindowImageViewer.cpp ui/QueueManager.cpp)
+
+
+include_directories(${CMAKE_SOURCE_DIR}/external/stable-diffusion.cpp/include)
+link_directories(${CMAKE_SOURCE_DIR}/external/stable-diffusion.cpp/lib)
+
+
+IF(MSVC)
+
+    
+        set(CUDA_PATH "$ENV{CUDA_PATH}")
+    
+
+    if(NOT CMAKE_BUILD_TYPE)
+        set(CMAKE_BUILD_TYPE Debug)
+    endif()
+
+    set(STABLE_DIFFUSION_LIB ${CMAKE_SOURCE_DIR}/external/stable-diffusion.cpp/${CMAKE_BUILD_TYPE}/lib/stable-diffusion.lib)
+    set(GGML_LIB ${CMAKE_SOURCE_DIR}/external/ggml/${CMAKE_BUILD_TYPE}/lib/ggml.lib)
+    set(STABLE_DIFFUSION_DLL ${CMAKE_SOURCE_DIR}/external/stable-diffusion.cpp/${CMAKE_BUILD_TYPE}/stable-diffusion.dll)
+    set(GGML_DLL ${CMAKE_SOURCE_DIR}/external/ggml/${CMAKE_BUILD_TYPE}/ggml.dll)
+    
+    add_library(SDLIB SHARED IMPORTED)
+    set_property(TARGET SDLIB PROPERTY IMPORTED_LOCATION "${STABLE_DIFFUSION_DLL}")
+    set_property(TARGET SDLIB PROPERTY IMPORTED_IMPLIB "${STABLE_DIFFUSION_LIB}")
+
+    add_library(GGMLLIB SHARED IMPORTED)
+    set_property(TARGET GGMLLIB PROPERTY IMPORTED_LOCATION "${GGML_DLL}")
+    set_property(TARGET GGMLLIB PROPERTY IMPORTED_IMPLIB "${GGML_LIB}")
+    
+
+    message("STABLE_DIFFUSION_LIB=" ${STABLE_DIFFUSION_LIB})
+    message("GGML_LIB=" ${GGML_LIB})
+    message("CUDA_PATH=" ${CUDA_PATH})
+    
+
+ENDIF(MSVC)
+
+set(OpenCV_DIR "${VCPKG_INSTALLED_DIR}/x64-windows/share/opencv4")
+
+find_package(OpenCV REQUIRED)
+
+if( OpenCV_FOUND )
+  # Additional Include Directories
+  include_directories( ${OpenCV_INCLUDE_DIRS} )
+
+  # Additional Library Directories
+  link_directories( ${OpenCV_LIB_DIR} )
+
+  # Additional Dependencies
+  # target_link_libraries(sd.ui ${OpenCV_LIBS} )
+endif()
+
+find_package(fmt CONFIG REQUIRED)
+find_package(wxWidgets CONFIG REQUIRED)
+find_package(nlohmann_json CONFIG REQUIRED)
+find_package(CUDAToolkit REQUIRED)
+
+set(CUDA_LIB_PATH "C:/CUDA/lib/x64")
+message("CUDA_LIB_PATH=" ${CUDA_LIB_PATH})
+
+
+target_compile_definitions(sd.ui PRIVATE ${wxWidgets_DEFINITIONS} "$<$<CONFIG:DEBUG>:${wxWidgets_DEFINITIONS_DEBUG}>")
+target_include_directories(sd.ui PRIVATE ${wxWidgets_INCLUDE_DIRS})
+
+target_link_libraries(sd.ui ${CUDA_LIBRARIES})
+
+target_link_libraries(sd.ui PRIVATE ${OpenCV_LIBS} nlohmann_json::nlohmann_json fmt::fmt wx::core wx::base wx::xrc wx::adv wx::richtext wx::aui SDLIB GGMLLIB CUDA::cudart CUDA::cublas CUDA::cublasLt CUDA::cuda_driver)
+
+include_directories(ui)
+
+
+
+
diff --git a/CMakePresets.json b/CMakePresets.json
new file mode 100644
index 0000000..7aa3150
--- /dev/null
+++ b/CMakePresets.json
@@ -0,0 +1,12 @@
+{
+    "version": 3,
+    "configurePresets": [
+        {
+            "name": "default",
+            "binaryDir": "${sourceDir}/build",
+            "cacheVariables": {
+                "CMAKE_TOOLCHAIN_FILE": "Z:/vcpkg/scripts/buildsystems/vcpkg.cmake"
+            }
+        }
+    ]
+}
\ No newline at end of file
diff --git a/CMakeUserPresets.json b/CMakeUserPresets.json
new file mode 100644
index 0000000..35c3e17
--- /dev/null
+++ b/CMakeUserPresets.json
@@ -0,0 +1,12 @@
+{
+    "version": 3,
+    "configurePresets": [
+        {
+            "name": "default",
+            "inherits": "vcpkg",
+            "environment": {
+                "VCPKG_ROOT": "Z:/vcpkg"
+            }
+        }
+    ]
+}
\ No newline at end of file
diff --git a/README.md b/README.md
index 35e40ec..a3be9d0 100644
--- a/README.md
+++ b/README.md
@@ -2,3 +2,23 @@
 
 wxWidgets based Stable Diffusion C++ GUi
 
+Created by Ferenc Szontágh <szf@fsociety.hu> @2024-01-30
+
+No licence yet... 
+
+### - Prepare
+
+* install vcpkg on your system... 
+* configure the vcpkg in CMakePresets.json and CMakeUserPresets.json
+* run configure, itt will be ~15mins to download and configure the dependencies
+
+### - Externals!
+
+in the external forlder, you can find the precompuled stable-diffusion.cpp and ggml as submodulde to it. 
+The default libs are configured with only CUDA, the release is Debug and Release. To use with another version (for example cpu only), you need to compile and overwrite 
+
+## - TO-DOs
+See @git.spamming.hu ticketing system
+
+### - IDE
+Use the vscode... Install the extensions which is recommended by the workspace
\ No newline at end of file
diff --git a/external/ggml/Debug/ggml.pdb b/external/ggml/Debug/ggml.pdb
new file mode 100644
index 0000000..e4bc847
--- /dev/null
+++ b/external/ggml/Debug/ggml.pdb
Binary files differ
diff --git a/external/ggml/Debug/lib/ggml.exp b/external/ggml/Debug/lib/ggml.exp
new file mode 100644
index 0000000..bf5237e
--- /dev/null
+++ b/external/ggml/Debug/lib/ggml.exp
Binary files differ
diff --git a/external/ggml/Debug/lib/ggml.pdb b/external/ggml/Debug/lib/ggml.pdb
new file mode 100644
index 0000000..74f310a
--- /dev/null
+++ b/external/ggml/Debug/lib/ggml.pdb
Binary files differ
diff --git a/external/ggml/Release/lib/ggml.exp b/external/ggml/Release/lib/ggml.exp
new file mode 100644
index 0000000..6f67260
--- /dev/null
+++ b/external/ggml/Release/lib/ggml.exp
Binary files differ
diff --git a/external/stable-diffusion.cpp/Debug/lib/stable-diffusion.pdb b/external/stable-diffusion.cpp/Debug/lib/stable-diffusion.pdb
new file mode 100644
index 0000000..b0810af
--- /dev/null
+++ b/external/stable-diffusion.cpp/Debug/lib/stable-diffusion.pdb
Binary files differ
diff --git a/external/stable-diffusion.cpp/Debug/stable-diffusion.pdb b/external/stable-diffusion.cpp/Debug/stable-diffusion.pdb
new file mode 100644
index 0000000..ef5e658
--- /dev/null
+++ b/external/stable-diffusion.cpp/Debug/stable-diffusion.pdb
Binary files differ
diff --git a/external/stable-diffusion.cpp/Release/lib/stable-diffusion.exp b/external/stable-diffusion.cpp/Release/lib/stable-diffusion.exp
new file mode 100644
index 0000000..b62ccec
--- /dev/null
+++ b/external/stable-diffusion.cpp/Release/lib/stable-diffusion.exp
Binary files differ
diff --git a/external/stable-diffusion.cpp/include/stable-diffusion.h b/external/stable-diffusion.cpp/include/stable-diffusion.h
new file mode 100644
index 0000000..afd3b0f
--- /dev/null
+++ b/external/stable-diffusion.cpp/include/stable-diffusion.h
@@ -0,0 +1,160 @@
+#ifndef __STABLE_DIFFUSION_H__
+#define __STABLE_DIFFUSION_H__
+
+#if defined(_WIN32) || defined(__CYGWIN__)
+#ifndef SD_BUILD_SHARED_LIB
+#define SD_API
+#else
+#ifdef SD_BUILD_DLL
+#define SD_API __declspec(dllexport)
+#else
+#define SD_API __declspec(dllimport)
+#endif
+#endif
+#else
+#if __GNUC__ >= 4
+#define SD_API __attribute__((visibility("default")))
+#else
+#define SD_API
+#endif
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <string.h>
+
+enum rng_type_t {
+    STD_DEFAULT_RNG,
+    CUDA_RNG
+};
+
+enum sample_method_t {
+    EULER_A,
+    EULER,
+    HEUN,
+    DPM2,
+    DPMPP2S_A,
+    DPMPP2M,
+    DPMPP2Mv2,
+    LCM,
+    N_SAMPLE_METHODS
+};
+
+enum schedule_t {
+    DEFAULT,
+    DISCRETE,
+    KARRAS,
+    N_SCHEDULES
+};
+
+// same as enum ggml_type
+enum sd_type_t {
+    SD_TYPE_F32  = 0,
+    SD_TYPE_F16  = 1,
+    SD_TYPE_Q4_0 = 2,
+    SD_TYPE_Q4_1 = 3,
+    // SD_TYPE_Q4_2 = 4, support has been removed
+    // SD_TYPE_Q4_3 (5) support has been removed
+    SD_TYPE_Q5_0 = 6,
+    SD_TYPE_Q5_1 = 7,
+    SD_TYPE_Q8_0 = 8,
+    SD_TYPE_Q8_1 = 9,
+    // k-quantizations
+    SD_TYPE_Q2_K = 10,
+    SD_TYPE_Q3_K = 11,
+    SD_TYPE_Q4_K = 12,
+    SD_TYPE_Q5_K = 13,
+    SD_TYPE_Q6_K = 14,
+    SD_TYPE_Q8_K = 15,
+    SD_TYPE_IQ2_XXS = 16,
+    SD_TYPE_I8,
+    SD_TYPE_I16,
+    SD_TYPE_I32,
+    SD_TYPE_COUNT,
+};
+
+SD_API const char* sd_type_name(enum sd_type_t type);
+
+enum sd_log_level_t {
+    SD_LOG_DEBUG,
+    SD_LOG_INFO,
+    SD_LOG_WARN,
+    SD_LOG_ERROR
+};
+
+typedef void (*sd_log_cb_t)(enum sd_log_level_t level, const char* text, void* data);
+
+SD_API void sd_set_log_callback(sd_log_cb_t sd_log_cb, void* data);
+SD_API int32_t get_num_physical_cores();
+SD_API const char* sd_get_system_info();
+
+typedef struct {
+    uint32_t width;
+    uint32_t height;
+    uint32_t channel;
+    uint8_t* data;
+} sd_image_t;
+
+typedef struct sd_ctx_t sd_ctx_t;
+
+SD_API sd_ctx_t* new_sd_ctx(const char* model_path,
+                            const char* vae_path,
+                            const char* taesd_path,
+                            const char* lora_model_dir,
+                            bool vae_decode_only,
+                            bool vae_tiling,
+                            bool free_params_immediately,
+                            int n_threads,
+                            enum sd_type_t wtype,
+                            enum rng_type_t rng_type,
+                            enum schedule_t s);
+
+SD_API void free_sd_ctx(sd_ctx_t* sd_ctx);
+
+SD_API sd_image_t* txt2img(sd_ctx_t* sd_ctx,
+                           const char* prompt,
+                           const char* negative_prompt,
+                           int clip_skip,
+                           float cfg_scale,
+                           int width,
+                           int height,
+                           enum sample_method_t sample_method,
+                           int sample_steps,
+                           int64_t seed,
+                           int batch_count);
+
+SD_API sd_image_t* img2img(sd_ctx_t* sd_ctx,
+                           sd_image_t init_image,
+                           const char* prompt,
+                           const char* negative_prompt,
+                           int clip_skip,
+                           float cfg_scale,
+                           int width,
+                           int height,
+                           enum sample_method_t sample_method,
+                           int sample_steps,
+                           float strength,
+                           int64_t seed,
+                           int batch_count);
+
+typedef struct upscaler_ctx_t upscaler_ctx_t;
+
+SD_API upscaler_ctx_t* new_upscaler_ctx(const char* esrgan_path,
+                                        int n_threads,
+                                        enum sd_type_t wtype);
+SD_API void free_upscaler_ctx(upscaler_ctx_t* upscaler_ctx);
+
+SD_API sd_image_t upscale(upscaler_ctx_t* upscaler_ctx, sd_image_t input_image, uint32_t upscale_factor);
+
+SD_API bool convert(const char* input_path, const char* vae_path, const char* output_path, sd_type_t output_type);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  // __STABLE_DIFFUSION_H__
\ No newline at end of file
diff --git a/external/stable-diffusion.cpp/include/stable-diffusion_master.h b/external/stable-diffusion.cpp/include/stable-diffusion_master.h
new file mode 100644
index 0000000..8c1a6fa
--- /dev/null
+++ b/external/stable-diffusion.cpp/include/stable-diffusion_master.h
@@ -0,0 +1,165 @@
+#ifndef __STABLE_DIFFUSION_H__
+#define __STABLE_DIFFUSION_H__
+
+#if defined(_WIN32) || defined(__CYGWIN__)
+#ifndef SD_BUILD_SHARED_LIB
+#define SD_API
+#else
+#ifdef SD_BUILD_DLL
+#define SD_API __declspec(dllexport)
+#else
+#define SD_API __declspec(dllimport)
+#endif
+#endif
+#else
+#if __GNUC__ >= 4
+#define SD_API __attribute__((visibility("default")))
+#else
+#define SD_API
+#endif
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <string.h>
+
+enum rng_type_t {
+    STD_DEFAULT_RNG,
+    CUDA_RNG
+};
+
+enum sample_method_t {
+    EULER_A,
+    EULER,
+    HEUN,
+    DPM2,
+    DPMPP2S_A,
+    DPMPP2M,
+    DPMPP2Mv2,
+    LCM,
+    N_SAMPLE_METHODS
+};
+
+enum schedule_t {
+    DEFAULT,
+    DISCRETE,
+    KARRAS,
+    N_SCHEDULES
+};
+
+// same as enum ggml_type
+enum sd_type_t {
+    SD_TYPE_F32  = 0,
+    SD_TYPE_F16  = 1,
+    SD_TYPE_Q4_0 = 2,
+    SD_TYPE_Q4_1 = 3,
+    // SD_TYPE_Q4_2 = 4, support has been removed
+    // SD_TYPE_Q4_3 (5) support has been removed
+    SD_TYPE_Q5_0 = 6,
+    SD_TYPE_Q5_1 = 7,
+    SD_TYPE_Q8_0 = 8,
+    SD_TYPE_Q8_1 = 9,
+    // k-quantizations
+    SD_TYPE_Q2_K    = 10,
+    SD_TYPE_Q3_K    = 11,
+    SD_TYPE_Q4_K    = 12,
+    SD_TYPE_Q5_K    = 13,
+    SD_TYPE_Q6_K    = 14,
+    SD_TYPE_Q8_K    = 15,
+    SD_TYPE_IQ2_XXS = 16,
+    SD_TYPE_I8,
+    SD_TYPE_I16,
+    SD_TYPE_I32,
+    SD_TYPE_COUNT,
+};
+
+SD_API const char* sd_type_name(enum sd_type_t type);
+
+enum sd_log_level_t {
+    SD_LOG_DEBUG,
+    SD_LOG_INFO,
+    SD_LOG_WARN,
+    SD_LOG_ERROR
+};
+
+typedef void (*sd_log_cb_t)(enum sd_log_level_t level, const char* text, void* data);
+
+SD_API void sd_set_log_callback(sd_log_cb_t sd_log_cb, void* data);
+SD_API int32_t get_num_physical_cores();
+SD_API const char* sd_get_system_info();
+
+typedef struct {
+    uint32_t width;
+    uint32_t height;
+    uint32_t channel;
+    uint8_t* data;
+} sd_image_t;
+
+typedef struct sd_ctx_t sd_ctx_t;
+
+SD_API sd_ctx_t* new_sd_ctx(const char* model_path,
+                            const char* vae_path,
+                            const char* taesd_path,
+                            const char* control_net_path_c_str,
+                            const char* lora_model_dir,
+                            const char* embed_dir_c_str,
+                            bool vae_decode_only,
+                            bool vae_tiling,
+                            bool free_params_immediately,
+                            int n_threads,
+                            enum sd_type_t wtype,
+                            enum rng_type_t rng_type,
+                            enum schedule_t s,
+                            bool keep_control_net_cpu);
+
+SD_API void free_sd_ctx(sd_ctx_t* sd_ctx);
+
+SD_API sd_image_t* txt2img(sd_ctx_t* sd_ctx,
+                           const char* prompt,
+                           const char* negative_prompt,
+                           int clip_skip,
+                           float cfg_scale,
+                           int width,
+                           int height,
+                           enum sample_method_t sample_method,
+                           int sample_steps,
+                           int64_t seed,
+                           int batch_count,
+                           const sd_image_t* control_cond,
+                           float control_strength);
+
+SD_API sd_image_t* img2img(sd_ctx_t* sd_ctx,
+                           sd_image_t init_image,
+                           const char* prompt,
+                           const char* negative_prompt,
+                           int clip_skip,
+                           float cfg_scale,
+                           int width,
+                           int height,
+                           enum sample_method_t sample_method,
+                           int sample_steps,
+                           float strength,
+                           int64_t seed,
+                           int batch_count);
+
+typedef struct upscaler_ctx_t upscaler_ctx_t;
+
+SD_API upscaler_ctx_t* new_upscaler_ctx(const char* esrgan_path,
+                                        int n_threads,
+                                        enum sd_type_t wtype);
+SD_API void free_upscaler_ctx(upscaler_ctx_t* upscaler_ctx);
+
+SD_API sd_image_t upscale(upscaler_ctx_t* upscaler_ctx, sd_image_t input_image, uint32_t upscale_factor);
+
+SD_API bool convert(const char* input_path, const char* vae_path, const char* output_path, sd_type_t output_type);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  // __STABLE_DIFFUSION_H__
\ No newline at end of file
diff --git a/main.cpp b/main.cpp
new file mode 100644
index 0000000..7c5027c
--- /dev/null
+++ b/main.cpp
@@ -0,0 +1,25 @@
+#include <wx/app.h>
+#include <wx/event.h>
+#include "MainWindowUi.h"
+#include <wx/image.h>
+
+// Define the MainApp
+class MainApp : public wxApp
+{
+public:
+    MainApp() {}
+    virtual ~MainApp() {}
+
+    virtual bool OnInit()
+    {
+        // Add the common image handlers
+        wxImage::AddHandler(new wxPNGHandler);
+        wxImage::AddHandler(new wxJPEGHandler);
+        MainWindowUI *mainFrame = new MainWindowUI(nullptr);
+        SetTopWindow(mainFrame);
+        return GetTopWindow()->Show();
+    }
+};
+
+DECLARE_APP(MainApp)
+IMPLEMENT_APP(MainApp)
\ No newline at end of file
diff --git a/ui/MainWindow.cpp b/ui/MainWindow.cpp
new file mode 100644
index 0000000..a953c8c
--- /dev/null
+++ b/ui/MainWindow.cpp
@@ -0,0 +1,562 @@
+///////////////////////////////////////////////////////////////////////////
+// C++ code generated with wxFormBuilder (version 4.0.0-0-g0efcecf)
+// http://www.wxformbuilder.org/
+//
+// PLEASE DO *NOT* EDIT THIS FILE!
+///////////////////////////////////////////////////////////////////////////
+
+#include "MainWindow.h"
+
+#include "embended_files/cube.png.h"
+#include "embended_files/disk.png.h"
+#include "embended_files/file_import.png.h"
+#include "embended_files/forward.png.h"
+#include "embended_files/images.png.h"
+#include "embended_files/palette.png.h"
+#include "embended_files/pause.png.h"
+#include "embended_files/picture.png.h"
+#include "embended_files/play.png.h"
+#include "embended_files/refresh.png.h"
+#include "embended_files/replace.png.h"
+#include "embended_files/settings.png.h"
+#include "embended_files/text_box_dots.png.h"
+#include "embended_files/trash.png.h"
+
+///////////////////////////////////////////////////////////////////////////
+
+UI::UI( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxFrame( parent, id, title, pos, size, style )
+{
+	this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+
+	wxBoxSizer* sizer0001;
+	sizer0001 = new wxBoxSizer( wxVERTICAL );
+
+	sizer0001->SetMinSize( wxSize( 800,600 ) );
+	m_all_panel = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+	wxBoxSizer* sizer0002;
+	sizer0002 = new wxBoxSizer( wxVERTICAL );
+
+	wxBoxSizer* sizer0021;
+	sizer0021 = new wxBoxSizer( wxHORIZONTAL );
+
+	m_settings = new wxButton( m_all_panel, wxID_ANY, wxT("Settings"), wxDefaultPosition, wxDefaultSize, 0 );
+
+	m_settings->SetBitmap( settings_png_to_wx_bitmap() );
+	sizer0021->Add( m_settings, 0, wxALL, 5 );
+
+	m_refresh = new wxButton( m_all_panel, wxID_ANY, wxT("Refresh"), wxDefaultPosition, wxDefaultSize, 0 );
+
+	m_refresh->SetBitmap( refresh_png_to_wx_bitmap() );
+	sizer0021->Add( m_refresh, 0, wxALL, 5 );
+
+	m_staticText160 = new wxStaticText( m_all_panel, wxID_ANY, wxT("Model"), wxDefaultPosition, wxDefaultSize, 0 );
+	m_staticText160->Wrap( 0 );
+	sizer0021->Add( m_staticText160, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+	wxArrayString m_modelChoices;
+	m_model = new wxChoice( m_all_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_modelChoices, 0 );
+	m_model->SetSelection( 0 );
+	m_model->Enable( false );
+
+	sizer0021->Add( m_model, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+	m_staticText161 = new wxStaticText( m_all_panel, wxID_ANY, wxT("Vae"), wxDefaultPosition, wxDefaultSize, 0 );
+	m_staticText161->Wrap( 0 );
+	sizer0021->Add( m_staticText161, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+	wxArrayString m_vaeChoices;
+	m_vae = new wxChoice( m_all_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_vaeChoices, 0 );
+	m_vae->SetSelection( 0 );
+	m_vae->Enable( false );
+
+	sizer0021->Add( m_vae, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+	m_staticText163 = new wxStaticText( m_all_panel, wxID_ANY, wxT("Sampler"), wxDefaultPosition, wxDefaultSize, 0 );
+	m_staticText163->Wrap( 0 );
+	m_staticText163->SetToolTip( wxT("sampling method (default: \"euler_a\")") );
+
+	sizer0021->Add( m_staticText163, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+	wxArrayString m_samplerChoices;
+	m_sampler = new wxChoice( m_all_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_samplerChoices, 0 );
+	m_sampler->SetSelection( 0 );
+	m_sampler->SetToolTip( wxT("sampling method (default: \"euler_a\")") );
+
+	sizer0021->Add( m_sampler, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+	sizer0002->Add( sizer0021, 0, wxALL|wxEXPAND, 5 );
+
+	wxBoxSizer* sizer0003;
+	sizer0003 = new wxBoxSizer( wxHORIZONTAL );
+
+	m_staticText231 = new wxStaticText( m_all_panel, wxID_ANY, wxT("CFG:"), wxDefaultPosition, wxDefaultSize, 0 );
+	m_staticText231->Wrap( 0 );
+	sizer0003->Add( m_staticText231, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+	m_cfg = new wxSpinCtrlDouble( m_all_panel, wxID_ANY, wxT("7.0"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTER_HORIZONTAL|wxSP_ARROW_KEYS, 0, 15, 0, 0.1 );
+	m_cfg->SetDigits( 1 );
+	sizer0003->Add( m_cfg, 0, wxALL, 5 );
+
+	m_staticText233 = new wxStaticText( m_all_panel, wxID_ANY, wxT("Seed:"), wxDefaultPosition, wxDefaultSize, 0 );
+	m_staticText233->Wrap( 0 );
+	sizer0003->Add( m_staticText233, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+	m_seed = new wxSpinCtrl( m_all_panel, wxID_ANY, wxT("44"), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 9999999, 44 );
+	sizer0003->Add( m_seed, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+	m_staticText234 = new wxStaticText( m_all_panel, wxID_ANY, wxT("Clip skip:"), wxDefaultPosition, wxDefaultSize, 0 );
+	m_staticText234->Wrap( 0 );
+	m_staticText234->SetToolTip( wxT("ignore last layers of CLIP network; 1 ignores none, 2 ignores one layer (default: -1)\n<= 0 represents unspecified, will be 1 for SD1.x, 2 for SD2.x") );
+
+	sizer0003->Add( m_staticText234, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+	m_clip_skip = new wxSpinCtrl( m_all_panel, wxID_ANY, wxT("0"), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, -1, 2, 0 );
+	m_clip_skip->SetToolTip( wxT("ignore last layers of CLIP network; 1 ignores none, 2 ignores one layer (default: -1)\n<= 0 represents unspecified, will be 1 for SD1.x, 2 for SD2.x") );
+
+	sizer0003->Add( m_clip_skip, 0, wxALL, 5 );
+
+	m_staticText14 = new wxStaticText( m_all_panel, wxID_ANY, wxT("Steps:"), wxDefaultPosition, wxDefaultSize, 0 );
+	m_staticText14->Wrap( -1 );
+	m_staticText14->SetToolTip( wxT("number of sample steps (default: 20)") );
+
+	sizer0003->Add( m_staticText14, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+	m_steps = new wxSpinCtrl( m_all_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 100, 0 );
+	m_steps->SetToolTip( wxT("number of sample steps (default: 20)") );
+
+	sizer0003->Add( m_steps, 0, wxALL, 5 );
+
+	m_staticLine236 = new wxStaticLine( m_all_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+	sizer0003->Add( m_staticLine236, 0, wxALL|wxEXPAND, 5 );
+
+	m_staticText237 = new wxStaticText( m_all_panel, wxID_ANY, wxT("Width:"), wxDefaultPosition, wxDefaultSize, 0 );
+	m_staticText237->Wrap( 0 );
+	sizer0003->Add( m_staticText237, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+	m_width = new wxSpinCtrl( m_all_panel, wxID_ANY, wxT("512"), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 128, 2048, 512 );
+	sizer0003->Add( m_width, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+	m_staticText239 = new wxStaticText( m_all_panel, wxID_ANY, wxT("Height:"), wxDefaultPosition, wxDefaultSize, 0 );
+	m_staticText239->Wrap( 0 );
+	sizer0003->Add( m_staticText239, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+	m_height = new wxSpinCtrl( m_all_panel, wxID_ANY, wxT("512"), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 128, 2048, 512 );
+	sizer0003->Add( m_height, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+	m_button7 = new wxButton( m_all_panel, wxID_ANY, wxT("Swap"), wxDefaultPosition, wxDefaultSize, 0 );
+
+	m_button7->SetBitmap( replace_png_to_wx_bitmap() );
+	m_button7->SetToolTip( wxT("Swap width and height") );
+
+	sizer0003->Add( m_button7, 0, wxALL, 5 );
+
+
+	sizer0002->Add( sizer0003, 0, wxALL|wxEXPAND, 5 );
+
+	m_notebook1302 = new wxNotebook( m_all_panel, wxID_ANY, wxDefaultPosition, wxSize( -1,200 ), wxBK_DEFAULT );
+	m_notebook1302->SetMinSize( wxSize( -1,200 ) );
+
+	m_jobs_panel = new wxPanel( m_notebook1302, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+	wxBoxSizer* bSizer17;
+	bSizer17 = new wxBoxSizer( wxVERTICAL );
+
+	wxBoxSizer* bSizer18;
+	bSizer18 = new wxBoxSizer( wxHORIZONTAL );
+
+	m_start_jobs = new wxButton( m_jobs_panel, wxID_ANY, wxT("Start jobs"), wxDefaultPosition, wxDefaultSize, 0 );
+
+	m_start_jobs->SetBitmap( forward_png_to_wx_bitmap() );
+	m_start_jobs->Enable( false );
+
+	bSizer18->Add( m_start_jobs, 0, wxALL, 5 );
+
+	m_pause_jobs = new wxButton( m_jobs_panel, wxID_ANY, wxT("Pause"), wxDefaultPosition, wxDefaultSize, 0 );
+
+	m_pause_jobs->SetBitmap( pause_png_to_wx_bitmap() );
+	m_pause_jobs->Enable( false );
+
+	bSizer18->Add( m_pause_jobs, 0, wxALL, 5 );
+
+	m_delete_all_jobs = new wxButton( m_jobs_panel, wxID_ANY, wxT("Delete all"), wxDefaultPosition, wxDefaultSize, 0 );
+
+	m_delete_all_jobs->SetBitmap( trash_png_to_wx_bitmap() );
+	m_delete_all_jobs->Enable( false );
+
+	bSizer18->Add( m_delete_all_jobs, 0, wxALL, 5 );
+
+
+	bSizer17->Add( bSizer18, 0, wxEXPAND, 5 );
+
+	m_joblist = new wxDataViewListCtrl( m_jobs_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
+	bSizer17->Add( m_joblist, 1, wxALL|wxEXPAND, 5 );
+
+
+	m_jobs_panel->SetSizer( bSizer17 );
+	m_jobs_panel->Layout();
+	bSizer17->Fit( m_jobs_panel );
+	m_notebook1302->AddPage( m_jobs_panel, wxT("Jobs and Images"), false );
+	m_text2img_panel = new wxPanel( m_notebook1302, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+	wxBoxSizer* sizer0004;
+	sizer0004 = new wxBoxSizer( wxHORIZONTAL );
+
+	sizer0004->SetMinSize( wxSize( -1,120 ) );
+	m_prompt = new wxTextCtrl( m_text2img_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_WORDWRAP|wxTE_PROCESS_ENTER|wxTE_MULTILINE );
+	m_prompt->SetMinSize( wxSize( -1,150 ) );
+
+	sizer0004->Add( m_prompt, 1, wxALL|wxEXPAND, 1 );
+
+	m_neg_prompt = new wxTextCtrl( m_text2img_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_WORDWRAP|wxTE_PROCESS_ENTER|wxTE_MULTILINE );
+	m_neg_prompt->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_MODERN, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxT("Arial") ) );
+	m_neg_prompt->SetMinSize( wxSize( -1,150 ) );
+
+	sizer0004->Add( m_neg_prompt, 1, wxALL|wxEXPAND, 1 );
+
+
+	m_text2img_panel->SetSizer( sizer0004 );
+	m_text2img_panel->Layout();
+	sizer0004->Fit( m_text2img_panel );
+	m_notebook1302->AddPage( m_text2img_panel, wxT("Text2IMG"), true );
+	m_image2image_panel = new wxPanel( m_notebook1302, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+	m_notebook1302->AddPage( m_image2image_panel, wxT("Image2image"), false );
+	m_models_panel = new wxPanel( m_notebook1302, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+	wxBoxSizer* bSizer20;
+	bSizer20 = new wxBoxSizer( wxVERTICAL );
+
+	m_data_model_list = new wxDataViewListCtrl( m_models_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0|wxFULL_REPAINT_ON_RESIZE );
+	bSizer20->Add( m_data_model_list, 1, wxALL|wxEXPAND, 5 );
+
+
+	m_models_panel->SetSizer( bSizer20 );
+	m_models_panel->Layout();
+	bSizer20->Fit( m_models_panel );
+	m_notebook1302->AddPage( m_models_panel, wxT("Models"), false );
+
+	sizer0002->Add( m_notebook1302, 1, wxALIGN_TOP|wxEXPAND, 0 );
+
+	m_staticLine156 = new wxStaticLine( m_all_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+	sizer0002->Add( m_staticLine156, 0, wxALL|wxEXPAND, 5 );
+
+	wxBoxSizer* bSizer9;
+	bSizer9 = new wxBoxSizer( wxHORIZONTAL );
+
+	m_generate = new wxButton( m_all_panel, wxID_ANY, wxT("Queue"), wxDefaultPosition, wxDefaultSize, 0 );
+
+	m_generate->SetBitmap( play_png_to_wx_bitmap() );
+	m_generate->Enable( false );
+
+	bSizer9->Add( m_generate, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+	m_staticText15 = new wxStaticText( m_all_panel, wxID_ANY, wxT("Batch:"), wxDefaultPosition, wxDefaultSize, 0 );
+	m_staticText15->Wrap( -1 );
+	m_staticText15->SetToolTip( wxT("number of images to generate.") );
+
+	bSizer9->Add( m_staticText15, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+	m_batch_count = new wxSpinCtrl( m_all_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 10, 0 );
+	m_batch_count->SetToolTip( wxT("number of images to generate.") );
+
+	bSizer9->Add( m_batch_count, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+	m_staticline5 = new wxStaticLine( m_all_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+	bSizer9->Add( m_staticline5, 0, wxEXPAND | wxALL, 5 );
+
+	m_staticText17 = new wxStaticText( m_all_panel, wxID_ANY, wxT("Presets:"), wxDefaultPosition, wxDefaultSize, 0 );
+	m_staticText17->Wrap( -1 );
+	bSizer9->Add( m_staticText17, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+	m_save_preset = new wxButton( m_all_panel, wxID_ANY, wxT("Save"), wxDefaultPosition, wxDefaultSize, 0 );
+
+	m_save_preset->SetBitmap( disk_png_to_wx_bitmap() );
+	bSizer9->Add( m_save_preset, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+	m_load_preset = new wxButton( m_all_panel, wxID_ANY, wxT("Load"), wxDefaultPosition, wxDefaultSize, 0 );
+
+	m_load_preset->SetBitmap( file_import_png_to_wx_bitmap() );
+	m_load_preset->Enable( false );
+
+	bSizer9->Add( m_load_preset, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+	wxArrayString m_preset_listChoices;
+	m_preset_list = new wxChoice( m_all_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_preset_listChoices, 0 );
+	m_preset_list->SetSelection( 0 );
+	m_preset_list->Enable( false );
+
+	bSizer9->Add( m_preset_list, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+	m_delete_preset = new wxButton( m_all_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 24,24 ), 0 );
+
+	m_delete_preset->SetBitmap( trash_png_to_wx_bitmap() );
+	m_delete_preset->Enable( false );
+
+	bSizer9->Add( m_delete_preset, 0, wxALL, 5 );
+
+
+	sizer0002->Add( bSizer9, 0, wxEXPAND, 5 );
+
+	logs = new wxTextCtrl( m_all_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_WORDWRAP|wxTE_READONLY|wxTE_MULTILINE|wxTE_AUTO_URL|wxFULL_REPAINT_ON_RESIZE );
+	logs->SetMinSize( wxSize( -1,100 ) );
+
+	sizer0002->Add( logs, 0, wxALL|wxEXPAND, 5 );
+
+
+	m_all_panel->SetSizer( sizer0002 );
+	m_all_panel->Layout();
+	sizer0002->Fit( m_all_panel );
+	sizer0001->Add( m_all_panel, 1, wxEXPAND, 5 );
+
+
+	this->SetSizer( sizer0001 );
+	this->Layout();
+	m_statusBar166 = this->CreateStatusBar( 1, wxSTB_DEFAULT_STYLE, wxID_ANY );
+
+	this->Centre( wxBOTH );
+
+	// Connect Events
+	m_settings->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( UI::onSettings ), NULL, this );
+	m_refresh->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( UI::onModelsRefresh ), NULL, this );
+	m_model->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( UI::onModelSelect ), NULL, this );
+	m_vae->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( UI::onVaeSelect ), NULL, this );
+	m_sampler->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( UI::onSamplerSelect ), NULL, this );
+	m_button7->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( UI::onResolutionSwap ), NULL, this );
+	m_start_jobs->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( UI::onJobsStart ), NULL, this );
+	m_pause_jobs->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( UI::onJobsPause ), NULL, this );
+	m_delete_all_jobs->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( UI::onJobsDelete ), NULL, this );
+	m_joblist->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler( UI::onJoblistItemActivated ), NULL, this );
+	m_joblist->Connect( wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED, wxDataViewEventHandler( UI::onJoblistSelectionChanged ), NULL, this );
+	m_generate->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( UI::onGenerate ), NULL, this );
+	m_save_preset->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( UI::onSavePreset ), NULL, this );
+	m_load_preset->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( UI::onLoadPreset ), NULL, this );
+	m_preset_list->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( UI::onSelectPreset ), NULL, this );
+	m_delete_preset->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( UI::onDeletePreset ), NULL, this );
+}
+
+UI::~UI()
+{
+	// Disconnect Events
+	m_settings->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( UI::onSettings ), NULL, this );
+	m_refresh->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( UI::onModelsRefresh ), NULL, this );
+	m_model->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( UI::onModelSelect ), NULL, this );
+	m_vae->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( UI::onVaeSelect ), NULL, this );
+	m_sampler->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( UI::onSamplerSelect ), NULL, this );
+	m_button7->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( UI::onResolutionSwap ), NULL, this );
+	m_start_jobs->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( UI::onJobsStart ), NULL, this );
+	m_pause_jobs->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( UI::onJobsPause ), NULL, this );
+	m_delete_all_jobs->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( UI::onJobsDelete ), NULL, this );
+	m_joblist->Disconnect( wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler( UI::onJoblistItemActivated ), NULL, this );
+	m_joblist->Disconnect( wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED, wxDataViewEventHandler( UI::onJoblistSelectionChanged ), NULL, this );
+	m_generate->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( UI::onGenerate ), NULL, this );
+	m_save_preset->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( UI::onSavePreset ), NULL, this );
+	m_load_preset->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( UI::onLoadPreset ), NULL, this );
+	m_preset_list->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( UI::onSelectPreset ), NULL, this );
+	m_delete_preset->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( UI::onDeletePreset ), NULL, this );
+
+}
+
+Settings::Settings( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxFrame( parent, id, title, pos, size, style )
+{
+	this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+
+	wxBoxSizer* sizer2010;
+	sizer2010 = new wxBoxSizer( wxVERTICAL );
+
+	m_notebook1696 = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxBK_DEFAULT );
+	m_path_panel = new wxPanel( m_notebook1696, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+	wxBoxSizer* sizer2011;
+	sizer2011 = new wxBoxSizer( wxVERTICAL );
+
+	wxGridSizer* sizer2012;
+	sizer2012 = new wxGridSizer( 0, 2, 0, 0 );
+
+	m_staticText172410 = new wxStaticText( m_path_panel, wxID_ANY, wxT("Models path"), wxDefaultPosition, wxDefaultSize, 0 );
+	m_staticText172410->Wrap( 0 );
+	sizer2012->Add( m_staticText172410, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+	m_model_dir = new wxDirPickerCtrl( m_path_panel, wxID_ANY, wxEmptyString, wxT("Select a folder"), wxDefaultPosition, wxDefaultSize, wxDIRP_SMALL|wxDIRP_DEFAULT_STYLE );
+	m_model_dir->SetMinSize( wxSize( 200,-1 ) );
+
+	sizer2012->Add( m_model_dir, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+	sizer2011->Add( sizer2012, 0, wxEXPAND, 5 );
+
+	wxGridSizer* sizer2013;
+	sizer2013 = new wxGridSizer( 0, 2, 0, 0 );
+
+	m_staticText18013 = new wxStaticText( m_path_panel, wxID_ANY, wxT("Vae path"), wxDefaultPosition, wxDefaultSize, 0 );
+	m_staticText18013->Wrap( 0 );
+	sizer2013->Add( m_staticText18013, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+	m_vae_dir = new wxDirPickerCtrl( m_path_panel, wxID_ANY, wxEmptyString, wxT("Select a folder"), wxDefaultPosition, wxDefaultSize, wxDIRP_SMALL|wxDIRP_DEFAULT_STYLE );
+	m_vae_dir->SetMinSize( wxSize( 200,-1 ) );
+
+	sizer2013->Add( m_vae_dir, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+	sizer2011->Add( sizer2013, 0, wxEXPAND, 5 );
+
+	wxGridSizer* sizer2014;
+	sizer2014 = new wxGridSizer( 0, 2, 0, 0 );
+
+	m_staticText1801317202731 = new wxStaticText( m_path_panel, wxID_ANY, wxT("Embedding path"), wxDefaultPosition, wxDefaultSize, 0 );
+	m_staticText1801317202731->Wrap( 0 );
+	sizer2014->Add( m_staticText1801317202731, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+	m_embedding_dir = new wxDirPickerCtrl( m_path_panel, wxID_ANY, wxEmptyString, wxT("Select a folder"), wxDefaultPosition, wxDefaultSize, wxDIRP_SMALL|wxDIRP_DEFAULT_STYLE );
+	m_embedding_dir->SetMinSize( wxSize( 200,-1 ) );
+
+	sizer2014->Add( m_embedding_dir, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+	sizer2011->Add( sizer2014, 0, wxEXPAND, 5 );
+
+	wxGridSizer* sizer2015;
+	sizer2015 = new wxGridSizer( 0, 2, 0, 0 );
+
+	m_staticText18013172027 = new wxStaticText( m_path_panel, wxID_ANY, wxT("Lora path"), wxDefaultPosition, wxDefaultSize, 0 );
+	m_staticText18013172027->Wrap( 0 );
+	sizer2015->Add( m_staticText18013172027, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+	m_lora_dir = new wxDirPickerCtrl( m_path_panel, wxID_ANY, wxEmptyString, wxT("Select a folder"), wxDefaultPosition, wxDefaultSize, wxDIRP_SMALL|wxDIRP_DEFAULT_STYLE );
+	m_lora_dir->SetMinSize( wxSize( 200,-1 ) );
+
+	sizer2015->Add( m_lora_dir, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+	sizer2011->Add( sizer2015, 0, wxEXPAND, 5 );
+
+	wxGridSizer* gSizer8;
+	gSizer8 = new wxGridSizer( 0, 2, 0, 0 );
+
+	m_staticText19 = new wxStaticText( m_path_panel, wxID_ANY, wxT("Presets path"), wxDefaultPosition, wxDefaultSize, 0 );
+	m_staticText19->Wrap( -1 );
+	gSizer8->Add( m_staticText19, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+	m_presets_dir = new wxDirPickerCtrl( m_path_panel, wxID_ANY, wxEmptyString, wxT("Select a folder"), wxDefaultPosition, wxDefaultSize, wxDIRP_DEFAULT_STYLE|wxDIRP_SMALL );
+	m_presets_dir->SetMinSize( wxSize( 200,-1 ) );
+
+	gSizer8->Add( m_presets_dir, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+	sizer2011->Add( gSizer8, 0, wxEXPAND, 5 );
+
+	m_staticLine223 = new wxStaticLine( m_path_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+	sizer2011->Add( m_staticLine223, 0, wxALL|wxEXPAND, 5 );
+
+	wxGridSizer* sizer2016;
+	sizer2016 = new wxGridSizer( 0, 2, 0, 0 );
+
+	m_staticText180131720 = new wxStaticText( m_path_panel, wxID_ANY, wxT("Images output"), wxDefaultPosition, wxDefaultSize, 0 );
+	m_staticText180131720->Wrap( 0 );
+	sizer2016->Add( m_staticText180131720, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+	m_images_output = new wxDirPickerCtrl( m_path_panel, wxID_ANY, wxEmptyString, wxT("Select a folder"), wxDefaultPosition, wxDefaultSize, wxDIRP_SMALL|wxDIRP_DEFAULT_STYLE );
+	m_images_output->SetMinSize( wxSize( 200,-1 ) );
+
+	sizer2016->Add( m_images_output, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+	sizer2011->Add( sizer2016, 0, wxEXPAND, 5 );
+
+
+	m_path_panel->SetSizer( sizer2011 );
+	m_path_panel->Layout();
+	sizer2011->Fit( m_path_panel );
+	m_notebook1696->AddPage( m_path_panel, wxT("Paths"), false );
+	m_settings = new wxPanel( m_notebook1696, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+	wxBoxSizer* sizer2017;
+	sizer2017 = new wxBoxSizer( wxVERTICAL );
+
+	wxGridSizer* sizer2018;
+	sizer2018 = new wxGridSizer( 0, 2, 0, 0 );
+
+	m_keep_model_in_memory = new wxCheckBox( m_settings, wxID_ANY, wxT("Keep model in memory"), wxDefaultPosition, wxDefaultSize, 0 );
+	m_keep_model_in_memory->SetValue(true);
+	sizer2018->Add( m_keep_model_in_memory, 0, wxALIGN_LEFT|wxALL, 5 );
+
+
+	sizer2017->Add( sizer2018, 0, wxALL|wxEXPAND, 5 );
+
+	wxGridSizer* sizer2019;
+	sizer2019 = new wxGridSizer( 0, 2, 0, 0 );
+
+	m_save_all_image = new wxCheckBox( m_settings, wxID_ANY, wxT("Save all images (intermediat images)"), wxDefaultPosition, wxDefaultSize, 0 );
+	m_save_all_image->SetValue(true);
+	sizer2019->Add( m_save_all_image, 0, wxALIGN_LEFT|wxALL, 5 );
+
+
+	sizer2017->Add( sizer2019, 0, wxALL|wxEXPAND, 5 );
+
+	wxBoxSizer* bSizer10;
+	bSizer10 = new wxBoxSizer( wxHORIZONTAL );
+
+	m_staticText16 = new wxStaticText( m_settings, wxID_ANY, wxT("Output images type"), wxDefaultPosition, wxDefaultSize, 0 );
+	m_staticText16->Wrap( -1 );
+	bSizer10->Add( m_staticText16, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+	wxString m_choice4Choices[] = { wxT(".png"), wxT(".jpg") };
+	int m_choice4NChoices = sizeof( m_choice4Choices ) / sizeof( wxString );
+	m_choice4 = new wxChoice( m_settings, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choice4NChoices, m_choice4Choices, 0 );
+	m_choice4->SetSelection( 0 );
+	bSizer10->Add( m_choice4, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+	sizer2017->Add( bSizer10, 0, wxEXPAND, 5 );
+
+
+	m_settings->SetSizer( sizer2017 );
+	m_settings->Layout();
+	sizer2017->Fit( m_settings );
+	m_notebook1696->AddPage( m_settings, wxT("Diffusion"), false );
+
+	sizer2010->Add( m_notebook1696, 1, wxALL|wxEXPAND, 5 );
+
+	m_save = new wxButton( this, wxID_ANY, wxT("Save"), wxDefaultPosition, wxDefaultSize, 0 );
+
+	m_save->SetBitmap( disk_png_to_wx_bitmap() );
+	sizer2010->Add( m_save, 0, wxALL, 5 );
+
+
+	this->SetSizer( sizer2010 );
+	this->Layout();
+
+	this->Centre( wxBOTH );
+
+	// Connect Events
+	m_save->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Settings::onSave ), NULL, this );
+}
+
+Settings::~Settings()
+{
+	// Disconnect Events
+	m_save->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Settings::onSave ), NULL, this );
+
+}
+
+ImageViewer::ImageViewer( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxFrame( parent, id, title, pos, size, style )
+{
+	this->SetSizeHints( wxSize( 512,512 ), wxDefaultSize );
+
+	wxBoxSizer* ImageViewerbSizer11;
+	ImageViewerbSizer11 = new wxBoxSizer( wxHORIZONTAL );
+
+	m_bitmap = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+	m_bitmap->SetMinSize( wxSize( 512,512 ) );
+
+	ImageViewerbSizer11->Add( m_bitmap, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
+
+	m_textCtrl4 = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,80 ), wxTE_MULTILINE|wxTE_READONLY|wxTE_WORDWRAP );
+	m_textCtrl4->SetMinSize( wxSize( -1,80 ) );
+
+	ImageViewerbSizer11->Add( m_textCtrl4, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+	this->SetSizer( ImageViewerbSizer11 );
+	this->Layout();
+
+	this->Centre( wxBOTH );
+}
+
+ImageViewer::~ImageViewer()
+{
+}
diff --git a/ui/MainWindow.h b/ui/MainWindow.h
new file mode 100644
index 0000000..3a01b43
--- /dev/null
+++ b/ui/MainWindow.h
@@ -0,0 +1,182 @@
+///////////////////////////////////////////////////////////////////////////
+// C++ code generated with wxFormBuilder (version 4.0.0-0-g0efcecf)
+// http://www.wxformbuilder.org/
+//
+// PLEASE DO *NOT* EDIT THIS FILE!
+///////////////////////////////////////////////////////////////////////////
+
+#pragma once
+
+#include <wx/artprov.h>
+#include <wx/xrc/xmlres.h>
+#include <wx/button.h>
+#include <wx/string.h>
+#include <wx/bitmap.h>
+#include <wx/image.h>
+#include <wx/icon.h>
+#include <wx/gdicmn.h>
+#include <wx/font.h>
+#include <wx/colour.h>
+#include <wx/settings.h>
+#include <wx/stattext.h>
+#include <wx/choice.h>
+#include <wx/sizer.h>
+#include <wx/spinctrl.h>
+#include <wx/statline.h>
+#include <wx/dataview.h>
+#include <wx/panel.h>
+#include <wx/textctrl.h>
+#include <wx/notebook.h>
+#include <wx/statusbr.h>
+#include <wx/frame.h>
+#include <wx/filepicker.h>
+#include <wx/checkbox.h>
+#include <wx/statbmp.h>
+
+///////////////////////////////////////////////////////////////////////////
+
+
+///////////////////////////////////////////////////////////////////////////////
+/// Class UI
+///////////////////////////////////////////////////////////////////////////////
+class UI : public wxFrame
+{
+	private:
+
+	protected:
+		wxPanel* m_all_panel;
+		wxButton* m_settings;
+		wxButton* m_refresh;
+		wxStaticText* m_staticText160;
+		wxChoice* m_model;
+		wxStaticText* m_staticText161;
+		wxChoice* m_vae;
+		wxStaticText* m_staticText163;
+		wxChoice* m_sampler;
+		wxStaticText* m_staticText231;
+		wxSpinCtrlDouble* m_cfg;
+		wxStaticText* m_staticText233;
+		wxSpinCtrl* m_seed;
+		wxStaticText* m_staticText234;
+		wxSpinCtrl* m_clip_skip;
+		wxStaticText* m_staticText14;
+		wxSpinCtrl* m_steps;
+		wxStaticLine* m_staticLine236;
+		wxStaticText* m_staticText237;
+		wxSpinCtrl* m_width;
+		wxStaticText* m_staticText239;
+		wxSpinCtrl* m_height;
+		wxButton* m_button7;
+		wxNotebook* m_notebook1302;
+		wxPanel* m_jobs_panel;
+		wxButton* m_start_jobs;
+		wxButton* m_pause_jobs;
+		wxButton* m_delete_all_jobs;
+		wxDataViewListCtrl* m_joblist;
+		wxPanel* m_text2img_panel;
+		wxTextCtrl* m_prompt;
+		wxTextCtrl* m_neg_prompt;
+		wxPanel* m_image2image_panel;
+		wxPanel* m_models_panel;
+		wxDataViewListCtrl* m_data_model_list;
+		wxStaticLine* m_staticLine156;
+		wxButton* m_generate;
+		wxStaticText* m_staticText15;
+		wxSpinCtrl* m_batch_count;
+		wxStaticLine* m_staticline5;
+		wxStaticText* m_staticText17;
+		wxButton* m_save_preset;
+		wxButton* m_load_preset;
+		wxChoice* m_preset_list;
+		wxButton* m_delete_preset;
+		wxTextCtrl* logs;
+		wxStatusBar* m_statusBar166;
+
+		// Virtual event handlers, override them in your derived class
+		virtual void onSettings( wxCommandEvent& event ) { event.Skip(); }
+		virtual void onModelsRefresh( wxCommandEvent& event ) { event.Skip(); }
+		virtual void onModelSelect( wxCommandEvent& event ) { event.Skip(); }
+		virtual void onVaeSelect( wxCommandEvent& event ) { event.Skip(); }
+		virtual void onSamplerSelect( wxCommandEvent& event ) { event.Skip(); }
+		virtual void onResolutionSwap( wxCommandEvent& event ) { event.Skip(); }
+		virtual void onJobsStart( wxCommandEvent& event ) { event.Skip(); }
+		virtual void onJobsPause( wxCommandEvent& event ) { event.Skip(); }
+		virtual void onJobsDelete( wxCommandEvent& event ) { event.Skip(); }
+		virtual void onJoblistItemActivated( wxDataViewEvent& event ) { event.Skip(); }
+		virtual void onJoblistSelectionChanged( wxDataViewEvent& event ) { event.Skip(); }
+		virtual void onGenerate( wxCommandEvent& event ) { event.Skip(); }
+		virtual void onSavePreset( wxCommandEvent& event ) { event.Skip(); }
+		virtual void onLoadPreset( wxCommandEvent& event ) { event.Skip(); }
+		virtual void onSelectPreset( wxCommandEvent& event ) { event.Skip(); }
+		virtual void onDeletePreset( wxCommandEvent& event ) { event.Skip(); }
+
+
+	public:
+
+		UI( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT("sd.cpp.gui"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 800,600 ), long style = wxCAPTION|wxCLOSE_BOX|wxICONIZE|wxMINIMIZE_BOX|wxSYSTEM_MENU|wxBORDER_THEME|wxCLIP_CHILDREN );
+
+		~UI();
+
+};
+
+///////////////////////////////////////////////////////////////////////////////
+/// Class Settings
+///////////////////////////////////////////////////////////////////////////////
+class Settings : public wxFrame
+{
+	private:
+
+	protected:
+		wxNotebook* m_notebook1696;
+		wxPanel* m_path_panel;
+		wxStaticText* m_staticText172410;
+		wxDirPickerCtrl* m_model_dir;
+		wxStaticText* m_staticText18013;
+		wxDirPickerCtrl* m_vae_dir;
+		wxStaticText* m_staticText1801317202731;
+		wxDirPickerCtrl* m_embedding_dir;
+		wxStaticText* m_staticText18013172027;
+		wxDirPickerCtrl* m_lora_dir;
+		wxStaticText* m_staticText19;
+		wxDirPickerCtrl* m_presets_dir;
+		wxStaticLine* m_staticLine223;
+		wxStaticText* m_staticText180131720;
+		wxDirPickerCtrl* m_images_output;
+		wxPanel* m_settings;
+		wxCheckBox* m_keep_model_in_memory;
+		wxCheckBox* m_save_all_image;
+		wxStaticText* m_staticText16;
+		wxChoice* m_choice4;
+		wxButton* m_save;
+
+		// Virtual event handlers, override them in your derived class
+		virtual void onSave( wxCommandEvent& event ) { event.Skip(); }
+
+
+	public:
+
+		Settings( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT("Settings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 600,400 ), long style = wxFRAME_NO_TASKBAR|wxFRAME_FLOAT_ON_PARENT|wxCAPTION|wxCLOSE_BOX|wxFULL_REPAINT_ON_RESIZE|wxTAB_TRAVERSAL|wxBORDER_THEME );
+
+		~Settings();
+
+};
+
+///////////////////////////////////////////////////////////////////////////////
+/// Class ImageViewer
+///////////////////////////////////////////////////////////////////////////////
+class ImageViewer : public wxFrame
+{
+	private:
+
+	protected:
+
+	public:
+		wxStaticBitmap* m_bitmap;
+		wxTextCtrl* m_textCtrl4;
+
+		ImageViewer( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 800,600 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL );
+
+		~ImageViewer();
+
+};
+
diff --git a/ui/MainWindowImageViewer.cpp b/ui/MainWindowImageViewer.cpp
new file mode 100644
index 0000000..cd81108
--- /dev/null
+++ b/ui/MainWindowImageViewer.cpp
@@ -0,0 +1,8 @@
+#include "MainWindowImageViewer.h"
+
+MainWindowImageViewer::MainWindowImageViewer( wxWindow* parent )
+:
+ImageViewer( parent )
+{
+
+}
diff --git a/ui/MainWindowImageViewer.h b/ui/MainWindowImageViewer.h
new file mode 100644
index 0000000..251398f
--- /dev/null
+++ b/ui/MainWindowImageViewer.h
@@ -0,0 +1,39 @@
+#ifndef __MainWindowImageViewer__
+#define __MainWindowImageViewer__
+
+/**
+@file
+Subclass of ImageViewer, which is generated by wxFormBuilder.
+*/
+
+#include "MainWindow.h"
+
+//// end generated include
+
+/** Implementing ImageViewer */
+class MainWindowImageViewer : public ImageViewer
+{
+	public:
+		/** Constructor */
+		MainWindowImageViewer( wxWindow* parent );
+	//// end generated class members
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+};
+
+#endif // __MainWindowImageViewer__
diff --git a/ui/MainWindowSettings.cpp b/ui/MainWindowSettings.cpp
new file mode 100644
index 0000000..716958f
--- /dev/null
+++ b/ui/MainWindowSettings.cpp
@@ -0,0 +1,73 @@
+#include "MainWindowSettings.h"
+
+MainWindowSettings::MainWindowSettings( wxWindow* parent )
+:
+Settings( parent )
+{
+    this->ini_path = wxStandardPaths::Get().GetUserConfigDir() + wxFileName::GetPathSeparator() + "sd.ui.config.ini";
+
+    this->cfg = new sd_gui_utils::config;
+    this->fileConfig = new wxFileConfig("sd.cpp.ui", wxEmptyString, this->ini_path);
+    wxConfigBase::Set(fileConfig);
+    this->InitConfig();
+}
+
+void MainWindowSettings::onSave( wxCommandEvent& event )
+{
+this->fileConfig->Write("/paths/lora", this->m_lora_dir->GetPath());
+this->fileConfig->Write("/paths/model", this->m_model_dir->GetPath());
+this->fileConfig->Write("/paths/vae", this->m_vae_dir->GetPath());
+this->fileConfig->Write("/paths/embedding", this->m_embedding_dir->GetPath());
+this->fileConfig->Write("/paths/presets", this->m_presets_dir->GetPath());
+this->fileConfig->Write("/keep_model_in_memory", this->m_keep_model_in_memory->GetValue());
+this->fileConfig->Write("/save_all_image", this->m_save_all_image->GetValue());
+this->fileConfig->Flush();
+this->Close();
+}
+
+
+void MainWindowSettings::InitConfig()
+{
+    wxString datapath = wxStandardPaths::Get().GetUserDataDir() + wxFileName::GetPathSeparator() + "sd_ui_data" + wxFileName::GetPathSeparator();
+    wxString imagespath = wxStandardPaths::Get().GetDocumentsDir() + wxFileName::GetPathSeparator() + "sd_ui_output" + wxFileName::GetPathSeparator();
+
+    wxString model_path = datapath;
+    model_path.append("checkpoints");
+
+    wxString vae_path = datapath;
+    vae_path.append("vae");
+
+    wxString lora_path = datapath;
+    lora_path.append("lora");
+
+    wxString embedding_path = datapath;
+    embedding_path.append("embedding");
+
+    wxString presets_path = datapath;
+    presets_path.append("presets");
+
+    this->cfg->lora = this->fileConfig->Read("/paths/lora", lora_path).ToStdString();
+    this->cfg->model = this->fileConfig->Read("/paths/model", model_path).ToStdString();
+    this->cfg->vae = this->fileConfig->Read("/paths/vae", vae_path).ToStdString();
+    this->cfg->embedding = this->fileConfig->Read("/paths/embedding", embedding_path).ToStdString();
+    this->cfg->presets = this->fileConfig->Read("/paths/presets", presets_path).ToStdString();
+    this->cfg->output = this->fileConfig->Read("/paths/output", imagespath).ToStdString();
+    this->cfg->keep_model_in_memory = this->fileConfig->Read("/keep_model_in_memory", this->cfg->keep_model_in_memory);
+    this->cfg->save_all_image = this->fileConfig->Read("/save_all_image", this->cfg->save_all_image);
+
+    this->m_lora_dir->SetPath(this->cfg->lora);
+    this->m_model_dir->SetPath(this->cfg->model);
+    this->m_vae_dir->SetPath(this->cfg->vae);
+    this->m_embedding_dir->SetPath(this->cfg->embedding);
+    this->m_presets_dir->SetPath(this->cfg->presets);
+    this->m_images_output->SetPath(this->cfg->output);
+    this->m_keep_model_in_memory->SetValue(this->cfg->keep_model_in_memory);
+    this->m_save_all_image->SetValue(this->cfg->save_all_image);
+
+    // hide unusable configs...
+    if (SD_CPP_VERSION == "c6071fa")
+    {
+        this->m_embedding_dir->Hide();
+        this->m_staticText18013172027->Hide();
+    }
+}
\ No newline at end of file
diff --git a/ui/MainWindowSettings.h b/ui/MainWindowSettings.h
new file mode 100644
index 0000000..d808bbf
--- /dev/null
+++ b/ui/MainWindowSettings.h
@@ -0,0 +1,65 @@
+#ifndef __MainWindowSettings__
+#define __MainWindowSettings__
+
+/**
+@file
+Subclass of Settings, which is generated by wxFormBuilder.
+*/
+
+#include "MainWindow.h"
+
+//// end generated include
+#include "ver.hpp"
+#include "utils.hpp"
+
+#include <wx/fileconf.h>
+#include <wx/stdpaths.h>
+
+/** Implementing Settings */
+class MainWindowSettings : public Settings
+{
+	protected:
+		// Handlers for Settings events.
+		void onSave( wxCommandEvent& event );
+	public:
+		/** Constructor */
+		MainWindowSettings( wxWindow* parent );
+	//// end generated class members
+private:
+	void InitConfig();
+	wxFileConfig *fileConfig;
+	sd_gui_utils::config *cfg;
+	std::string ini_path;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+};
+
+#endif // __MainWindowSettings__
diff --git a/ui/MainWindowUI.cpp b/ui/MainWindowUI.cpp
new file mode 100644
index 0000000..09a1143
--- /dev/null
+++ b/ui/MainWindowUI.cpp
@@ -0,0 +1,875 @@
+#include "MainWindowUI.h"
+
+MainWindowUI::MainWindowUI(wxWindow *parent)
+    : UI(parent)
+{
+    this->ini_path = wxStandardPaths::Get().GetUserConfigDir() + wxFileName::GetPathSeparator() + "sd.ui.config.ini";
+    this->sd_params = new sd_gui_utils::SDParams;
+    this->notification = new wxNotificationMessage();
+
+    this->notification->SetParent(this);
+
+    // prepare data list views
+    this->m_data_model_list->AppendTextColumn("Name", wxDATAVIEW_CELL_INERT, 200);
+    this->m_data_model_list->AppendTextColumn("Size");
+
+    this->m_joblist->AppendTextColumn("Id");
+    this->m_joblist->AppendTextColumn("Created");
+    this->m_joblist->AppendTextColumn("Update");
+    this->m_joblist->AppendTextColumn("Status");
+
+    this->SetTitle(this->GetTitle() + SD_GUI_VERSION);
+
+    this->cfg = new sd_gui_utils::config;
+    this->fileConfig = new wxFileConfig("sd.cpp.ui", wxEmptyString, this->ini_path);
+    wxConfigBase::Set(fileConfig);
+    this->initConfig();
+    this->qmanager = new QM::QueueManager(this->GetEventHandler(), this->cfg->jobs);
+
+    // set SD logger
+    sd_set_log_callback(MainWindowUI::HandleSDLog, (void *)this);
+
+    // load
+    this->LoadPresets();
+    this->loadModelList();
+    this->loadVaeList();
+    if (this->ModelFiles.size() > 0)
+    {
+        this->m_model->Enable();
+    }
+    if (this->VaeFiles.size() > 0)
+    {
+        this->m_vae->Enable();
+    }
+    Bind(wxEVT_THREAD, &MainWindowUI::OnThreadMessage, this);
+}
+
+void MainWindowUI::onSettings(wxCommandEvent &event)
+{
+    this->settingsWindow = new MainWindowSettings(this);
+    this->settingsWindow->Bind(wxEVT_CLOSE_WINDOW, &MainWindowUI::OnCloseSettings, this);
+    settingsWindow->Show();
+}
+
+void MainWindowUI::onModelsRefresh(wxCommandEvent &event)
+{
+    this->loadModelList();
+    this->loadVaeList();
+    if (this->ModelFiles.size() > 0)
+    {
+        this->m_model->Enable();
+    }
+    if (this->VaeFiles.size() > 0)
+    {
+        this->m_vae->Enable();
+    }
+}
+
+void MainWindowUI::onModelSelect(wxCommandEvent &event)
+{
+    // check if really selected a model, or just the first element, which is always exists...
+    auto name = this->m_model->GetStringSelection().ToStdString();
+    auto first = this->m_model->GetString(0);
+    if (name == first)
+    {
+        this->m_generate->Disable();
+        this->m_statusBar166->SetStatusText("Model: none");
+        return;
+    }
+    this->m_generate->Enable();
+    this->sd_params->model_path = this->ModelFiles.at(name);
+    this->m_statusBar166->SetStatusText("Model: " + this->sd_params->model_path);
+    // add the model to the params, but dont start load the model...
+    // the queue handle it...
+    // this->StartLoadModel();
+}
+
+void MainWindowUI::onVaeSelect(wxCommandEvent &event)
+{
+    auto selection = this->m_vae->GetStringSelection();
+    if (selection == "-none-")
+    {
+        // remove the vae
+        this->sd_params->vae_path = std::string("");
+    }
+    else
+    {
+        // add the selected vae
+        this->sd_params->vae_path = this->VaeFiles.at(selection.ToStdString());
+    }
+    // just select the vae file and add the live paramaeters, do not load the model, just add job to the queu on press the queue button
+    /*  if (this->m_generate->IsEnabled() == true)
+    {
+    wxPostEvent(this->m_model, event);
+    }
+    */
+}
+
+void MainWindowUI::onSamplerSelect(wxCommandEvent &event)
+{
+    this->sd_params->sample_method = (sample_method_t)this->m_sampler->GetSelection();
+}
+
+void MainWindowUI::onResolutionSwap(wxCommandEvent &event)
+{
+    auto oldW = this->m_width->GetValue();
+    auto oldH = this->m_height->GetValue();
+
+    this->m_height->SetValue(oldW);
+    this->m_width->SetValue(oldH);
+}
+
+void MainWindowUI::onJobsStart(wxCommandEvent &event)
+{
+    // TODO: Implement onJobsStart
+}
+
+void MainWindowUI::onJobsPause(wxCommandEvent &event)
+{
+    // TODO: Implement onJobsPause
+}
+
+void MainWindowUI::onJobsDelete(wxCommandEvent &event)
+{
+    // TODO: Implement onJobsDelete
+}
+
+void MainWindowUI::onJoblistItemActivated(wxDataViewEvent &event)
+{
+    // TODO: Implement onJoblistItemActivated
+}
+
+void MainWindowUI::onJoblistSelectionChanged(wxDataViewEvent &event)
+{
+    // TODO: Implement onJoblistSelectionChanged
+}
+
+void MainWindowUI::onGenerate(wxCommandEvent &event)
+{
+    // this->StartGeneration();
+    //  dont start the generation, just add the job to the queue, to handle it the queue manager
+    //  so it will possible to add more job afterall
+    this->qmanager->AddItem(this->sd_params);
+}
+
+void MainWindowUI::onSavePreset(wxCommandEvent &event)
+{
+    wxTextEntryDialog dlg(this, "Please specify a name (only alphanumeric)");
+    dlg.SetTextValidator(wxFILTER_ALPHA | wxFILTER_DIGITS);
+    if (dlg.ShowModal() == wxID_OK)
+    {
+        sd_gui_utils::generator_preset preset;
+
+        wxString preset_name = dlg.GetValue();
+        preset.cfg = this->m_cfg->GetValue();
+
+        preset.seed = this->m_seed->GetValue();
+        preset.clip_skip = this->m_clip_skip->GetValue();
+        preset.steps = this->m_steps->GetValue();
+        preset.width = this->m_width->GetValue();
+        preset.height = this->m_height->GetValue();
+        preset.sampler = (sample_method_t)this->m_sampler->GetSelection();
+        preset.batch = this->m_batch_count->GetValue();
+        preset.name = preset_name.ToStdString();
+        preset.mode = "text2image";
+        nlohmann::json j(preset);
+        std::string presetfile = fmt::format("{}{}{}.json",
+                                             this->cfg->presets,
+                                             wxString(wxFileName::GetPathSeparator()).ToStdString(),
+                                             preset.name);
+
+        std::ofstream file(presetfile);
+        file << j;
+        file.close();
+        this->LoadPresets();
+    }
+}
+
+void MainWindowUI::onLoadPreset(wxCommandEvent &event)
+{
+    /* auto preset_name = this->m_preset_list->GetString(this->m_preset_list->GetCurrentSelection());
+
+    this->m_cfg->SetValue(this->fileConfig->Read("/presets/" + preset_name + "/cfg", this->sd_params->cfg_scale));
+    this->m_seed->SetValue(this->fileConfig->Read("/presets/" + preset_name + "/seed", this->sd_params->seed));
+    this->m_clip_skip->SetValue(this->fileConfig->Read("/presets/" + preset_name + "/clip_skip", this->sd_params->clip_skip));
+    this->m_steps->SetValue(this->fileConfig->Read("/presets/" + preset_name + "/steps", this->sd_params->sample_steps));
+    this->m_width->SetValue(this->fileConfig->Read("/presets/" + preset_name + "/width", this->sd_params->width));
+    this->m_height->SetValue(this->fileConfig->Read("/presets/" + preset_name + "/height", this->sd_params->height));
+    this->m_sampler->Select(this->fileConfig->Read("/presets/" + preset_name + "/sampler", (int)this->sd_params->sample_method));
+    this->m_batch_count->SetValue(this->fileConfig->Read("/presets/" + preset_name + "/batch", this->sd_params->batch_count));
+    */
+    auto selected = this->m_preset_list->GetCurrentSelection();
+    auto name = this->m_preset_list->GetString(selected);
+
+    for (auto preset : this->Presets)
+    {
+        if (preset.second.name == name)
+        {
+            this->m_cfg->SetValue(preset.second.cfg);
+            this->m_clip_skip->SetValue(preset.second.clip_skip);
+            this->m_seed->SetValue(preset.second.seed);
+            this->m_steps->SetValue(preset.second.steps);
+            this->m_width->SetValue(preset.second.width);
+            this->m_height->SetValue(preset.second.height);
+            this->m_sampler->SetSelection(preset.second.sampler);
+            this->m_batch_count->SetValue(preset.second.batch);
+        }
+    }
+}
+
+void MainWindowUI::onSelectPreset(wxCommandEvent &event)
+{
+    if (this->m_preset_list->GetCurrentSelection() == 0)
+    {
+        this->m_load_preset->Disable();
+        this->m_delete_preset->Disable();
+    }
+    else
+    {
+        this->m_load_preset->Enable();
+        this->m_delete_preset->Enable();
+    }
+}
+
+void MainWindowUI::onDeletePreset(wxCommandEvent &event)
+{
+
+    auto name = this->m_preset_list->GetStringSelection().ToStdString();
+
+    if (this->Presets.find(name) != this->Presets.end())
+    {
+        auto preset = this->Presets[name];
+        std::remove(preset.path.c_str());
+        this->LoadPresets();
+    }
+}
+
+void MainWindowUI::OnQueueItemManagerItemAdded(QM::QueueItem item)
+{
+    wxVector<wxVariant> data;
+
+    data.push_back(wxVariant(item.id));
+    data.push_back(wxVariant(item.created_at));
+    data.push_back(wxVariant(item.updated_at));
+    data.push_back(wxVariant(QM::QueueStatus_str[item.status]));
+
+    this->m_joblist->AppendItem(data);
+    /*
+    for (auto model : this->ModelFiles)
+    {
+        // auto size = sd_gui_utils::HumanReadable{std::filesystem::file_size(model.second)};
+        auto size = std::filesystem::file_size(model.second);
+
+        wxVector<wxVariant> data;
+        data.push_back(wxVariant(model.first));
+        data.push_back(wxVariant(std::to_string(size)));
+        this->m_data_model_list->AppendItem(data);
+    }
+    this->m_data_model_list->Refresh();*/
+}
+
+void MainWindowUI::LoadFileList(sd_gui_utils::DirTypes type)
+{
+    std::string basepath;
+
+    switch (type)
+    {
+    case sd_gui_utils::DirTypes::VAE:
+        this->VaeFiles.clear();
+        this->m_vae->Clear();
+        this->m_vae->Append("-none-");
+        this->m_vae->Select(0);
+        basepath = this->cfg->vae;
+        break;
+    case sd_gui_utils::DirTypes::LORA:
+        basepath = this->cfg->lora;
+        break;
+    case sd_gui_utils::DirTypes::CHECKPOINT:
+        this->ModelFiles.clear();
+        this->m_model->Clear();
+        this->m_model->Append("-none-");
+        this->m_model->Select(0);
+        basepath = this->cfg->model;
+        break;
+    case sd_gui_utils::DirTypes::PRESETS:
+        this->Presets.clear();
+        this->m_preset_list->Clear();
+        this->m_preset_list->Append("-none-");
+        this->m_preset_list->Select(0);
+        basepath = this->cfg->presets;
+        break;
+    }
+    if (!std::filesystem::exists(basepath))
+    {
+        std::filesystem::create_directories(basepath);
+    }
+
+    int i = 0;
+    for (auto const &dir_entry : std::filesystem::recursive_directory_iterator(basepath))
+    {
+        if (!dir_entry.exists() || !dir_entry.is_regular_file() || !dir_entry.path().has_extension())
+        {
+            continue;
+        }
+
+        std::filesystem::path path = dir_entry.path();
+
+        std::string ext = path.extension().string();
+
+        if (type == sd_gui_utils::DirTypes::CHECKPOINT || type == sd_gui_utils::DirTypes::VAE)
+        {
+            if (ext != ".safetensors" && ext != ".cptk")
+            {
+                continue;
+            }
+        }
+        if (type == sd_gui_utils::DirTypes::PRESETS)
+        {
+            if (ext != ".json")
+            {
+                continue;
+            }
+        }
+        std::string name = path.filename().replace_extension("").string();
+        // prepend the subdirectory to the modelname
+        // // wxFileName::GetPathSeparator()
+        auto path_name = path.string();
+        sd_gui_utils::replace(path_name, basepath, "");
+        sd_gui_utils::replace(path_name, "//", "");
+        sd_gui_utils::replace(path_name, "\\\\", "");
+        sd_gui_utils::replace(path_name, ext, "");
+
+        name = path_name.substr(1);
+
+        if (type == sd_gui_utils::CHECKPOINT)
+        {
+            this->m_model->Append(name);
+            this->ModelFiles.emplace(name, dir_entry.path().string());
+        }
+        if (type == sd_gui_utils::VAE)
+        {
+            this->m_vae->Append(name);
+            this->VaeFiles.emplace(name, dir_entry.path().string());
+        }
+        if (type == sd_gui_utils::PRESETS)
+        {
+            sd_gui_utils::generator_preset preset;
+            std::ifstream f(path.string());
+            try
+            {
+                nlohmann::json data = nlohmann::json::parse(f);
+                preset = data;
+                preset.path = path.string();
+                this->m_preset_list->Append(preset.name);
+                this->Presets.emplace(preset.name, preset);
+            }
+            catch (const std::exception &e)
+            {
+                std::remove(path.string().c_str());
+                std::cerr << e.what() << '\n';
+            }
+        }
+    }
+
+    if (type == sd_gui_utils::CHECKPOINT)
+    {
+        this->logs->AppendText(fmt::format("Loaded checkpoints: {}\n", this->ModelFiles.size()));
+    }
+    if (type == sd_gui_utils::VAE)
+    {
+        this->logs->AppendText(fmt::format("Loaded vaes: {}\n", this->VaeFiles.size()));
+    }
+    if (type == sd_gui_utils::PRESETS)
+    {
+        this->logs->AppendText(fmt::format("Loaded presets: {}\n", this->Presets.size()));
+        if (this->Presets.size() > 0)
+        {
+            this->m_preset_list->Enable();
+        }
+    }
+}
+
+void MainWindowUI::LoadPresets()
+{
+    this->LoadFileList(sd_gui_utils::DirTypes::PRESETS);
+}
+
+void MainWindowUI::OnThreadMessage(wxThreadEvent &e)
+{
+
+    auto msg = e.GetString().ToStdString();
+
+    std::string token = msg.substr(0, msg.find(":"));
+    std::string content = msg.substr(msg.find(":") + 1);
+
+    //    this->logs->AppendText(fmt::format("Got thread message: {}\n", e.GetString().ToStdString()));
+    if (token == "QUEUE")
+    {
+
+        m_statusBar166->SetStatusText("got QUEUE cmd: " + msg);
+        // only numbers here...
+        QM::QueueEvents event = (QM::QueueEvents)std::stoi(content);
+        // only handle the QUEUE messages, what this class generate
+        // alway QM::EueueItem the payload, with the new data
+        auto payload = e.GetPayload<QM::QueueItem>();
+        switch (event)
+        {
+            // new item added
+        case QM::QueueEvents::ITEM_ADDED:
+            this->OnQueueItemManagerItemAdded(payload);
+            break;
+            // item status changed
+        case QM::QueueEvents::ITEM_STATUS_CHANGED:
+            this->OnQueueItemManagerItemAdded(payload);
+            break;
+            // item updated... ? ? ?
+        case QM::QueueEvents::ITEM_UPDATED:
+            this->OnQueueItemManagerItemAdded(payload);
+            break;
+
+        default:
+            break;
+        }
+    }
+    if (token == "MODEL_LOAD_DONE")
+    {
+        this->m_generate->Enable();
+        this->m_model->Enable();
+        this->m_vae->Enable();
+        this->m_refresh->Enable();
+
+        this->logs->AppendText(fmt::format("Model loaded: {}\n", content));
+        this->sd_ctx = e.GetPayload<sd_ctx_t *>();
+        if (!this->IsShownOnScreen())
+        {
+            this->notification->SetFlags(wxICON_INFORMATION);
+            this->notification->SetTitle("SD Gui");
+            this->notification->SetMessage(content);
+            this->notification->Show(5000);
+        }
+    }
+    if (token == "MODEL_LOAD_START")
+    {
+        this->m_generate->Disable();
+        this->m_model->Disable();
+        this->m_vae->Disable();
+        this->m_refresh->Disable();
+        this->logs->AppendText(fmt::format("Model load start: {}\n", content));
+    }
+    if (token == "MODEL_LOAD_ERROR")
+    {
+        this->m_generate->Disable();
+        this->m_model->Enable();
+        this->m_vae->Disable();
+        this->m_refresh->Enable();
+        this->logs->AppendText(fmt::format("Model load error: {}\n", content));
+        if (!this->IsShownOnScreen())
+        {
+            this->notification->SetFlags(wxICON_ERROR);
+            this->notification->SetTitle("SD Gui - error");
+            this->notification->SetMessage(content);
+            this->notification->Show(5000);
+        }
+    }
+
+    if (token == "GENERATION_START")
+    {
+        sd_gui_utils::SDParams *params = e.GetPayload<sd_gui_utils::SDParams *>();
+
+        this->m_generate->Disable();
+        this->m_model->Disable();
+        this->m_vae->Disable();
+        this->m_refresh->Disable();
+        this->logs->AppendText(fmt::format("Difusion started. Seed: {} Batch: {} {}x{}px Cfg: {} Steps: {}\n",
+                                           params->seed,
+                                           params->batch_count,
+                                           params->width,
+                                           params->height,
+                                           params->cfg_scale,
+                                           params->sample_steps));
+    }
+    // never, not implemented in sd.cpp
+    if (token == "GENERATION_PROGRESS")
+    {
+        this->m_generate->Disable();
+        this->logs->AppendText(fmt::format("Generation progress: {}\n", content));
+    }
+    if (token == "GENERATION_DONE")
+    {
+        this->m_generate->Enable();
+        this->m_model->Enable();
+        this->m_vae->Enable();
+        this->m_refresh->Enable();
+        sd_image_t *results = e.GetPayload<sd_image_t *>();
+        // show images in new window...
+        for (int i = 0; i < this->sd_params->batch_count; i++)
+        {
+            MainWindowImageViewer *imgWindow = new MainWindowImageViewer(this);
+            // wxBitmap *img = new wxBitmap(results[i].data, (int)results[i].width, (int)results[i].height, (int)results[i].channel);
+            wxImage img(results[i].width, results[i].height, results[i].data);
+
+            wxBitmapBundle wxBmapB(img);
+            imgWindow->m_bitmap->SetBitmap(wxBmapB);
+            imgWindow->m_bitmap->SetSize(results[i].width, results[i].height);
+            imgWindow->SetSize(results[i].width + 200, results[i].height);
+
+            std::string details = fmt::format("Prompt:\n\n{}\n\nNegative prompt: \n\n{}\n\nSeed: {} \nCfg scale: {}\nClip skip: {}\nSampler: {}\nSteps: {}\nWidth: {} Height: {}",
+                                              this->sd_params->prompt, this->sd_params->negative_prompt,
+                                              this->sd_params->seed + i, this->sd_params->cfg_scale,
+                                              this->sd_params->clip_skip, sd_gui_utils::sample_method_str[this->sd_params->sample_method], this->sd_params->sample_steps,
+                                              results[i].width, results[i].height);
+            imgWindow->m_textCtrl4->AppendText(wxString(details));
+            imgWindow->Show();
+
+            // imgWindow->m_bitmap->SetBitmap(img);
+            /// imgWindow->m_bitmap->Set
+        }
+    }
+    if (token == "GENERATION_ERROR")
+    {
+        this->m_generate->Enable();
+        this->m_model->Enable();
+        this->m_vae->Enable();
+        this->logs->AppendText(fmt::format("Generation error: {}\n", content));
+        if (!this->IsShownOnScreen())
+        {
+            this->notification->SetFlags(wxICON_ERROR);
+            this->notification->SetTitle("SD Gui - error");
+            this->notification->SetMessage(content);
+            this->notification->Show(5000);
+        }
+    }
+    if (token == "SD_MESSAGE")
+    {
+        if (content.length() < 1)
+        {
+            return;
+        }
+        this->logs->AppendText(fmt::format("{}", content));
+    }
+    if (token == "MESSAGE")
+    {
+        this->logs->AppendText(fmt::format("{}\n", content));
+        if (!this->IsShownOnScreen())
+        {
+            this->notification->SetFlags(wxICON_INFORMATION);
+            this->notification->SetTitle("SD Gui");
+            this->notification->SetMessage(content);
+            this->notification->Show(5000);
+        }
+    }
+}
+
+void MainWindowUI::LoadModel(wxEvtHandler *eventHandler)
+{
+    wxThreadEvent *e = new wxThreadEvent();
+    e->SetString(wxString::Format("MODEL_LOAD_START:%s", this->sd_params->model_path));
+    wxQueueEvent(eventHandler, e);
+
+    /*this->sd_ctx = new_sd_ctx(this->sd_params->model_path.c_str(),
+                              this->sd_params->vae_path.c_str(),
+                              this->sd_params->taesd_path.c_str(),
+                              this->sd_params->controlnet_path.c_str(),
+                              std::string(this->sd_params->lora_model_dir + "\\").c_str(),
+                              this->sd_params->embeddings_path.c_str(),
+                              true, // vae decode only
+                              true ,
+                              !this->cfg->keep_model_in_memory,
+                              this->sd_params->n_threads,
+                              this->sd_params->wtype ,
+                              this->sd_params->rng_type,
+                              this->sd_params->schedule,
+                              this->sd_params->control_net_cpu);*/
+    this->sd_ctx = new_sd_ctx(this->sd_params->model_path.c_str(), this->sd_params->vae_path.c_str(), this->sd_params->taesd_path.c_str(), this->sd_params->lora_model_dir.c_str(), true, false, false, this->sd_params->n_threads, this->sd_params->wtype, this->sd_params->rng_type, this->sd_params->schedule);
+
+    if (this->sd_ctx == NULL)
+    {
+        wxThreadEvent *c = new wxThreadEvent();
+        c->SetString(wxString::Format("MODEL_LOAD_ERROR:%s", this->sd_params->model_path));
+        wxQueueEvent(eventHandler, c);
+        return;
+    }
+    else
+    {
+        wxThreadEvent *c = new wxThreadEvent();
+        c->SetString(wxString::Format("MODEL_LOAD_DONE:%s", this->sd_params->model_path));
+        // c->SetEventObject(this->sd_ctx);
+        c->SetPayload(this->sd_ctx);
+        wxQueueEvent(eventHandler, c);
+        return;
+    }
+
+    return;
+}
+
+void MainWindowUI::initConfig()
+{
+    wxString datapath = wxStandardPaths::Get().GetUserDataDir() + wxFileName::GetPathSeparator() + "sd_ui_data" + wxFileName::GetPathSeparator();
+    wxString imagespath = wxStandardPaths::Get().GetDocumentsDir() + wxFileName::GetPathSeparator() + "sd_ui_output" + wxFileName::GetPathSeparator();
+
+    wxString model_path = datapath;
+    model_path.append("checkpoints");
+
+    wxString vae_path = datapath;
+    vae_path.append("vae");
+
+    wxString lora_path = datapath;
+    lora_path.append("lora");
+
+    wxString embedding_path = datapath;
+    embedding_path.append("embedding");
+
+    wxString presets_path = datapath;
+    presets_path.append("presets");
+
+    wxString jobs_path = datapath;
+    jobs_path.append("queue_jobs");
+
+    this->cfg->lora = this->fileConfig->Read("/paths/lora", lora_path).ToStdString();
+    this->cfg->model = this->fileConfig->Read("/paths/model", model_path).ToStdString();
+    this->cfg->vae = this->fileConfig->Read("/paths/vae", vae_path).ToStdString();
+    this->cfg->embedding = this->fileConfig->Read("/paths/embedding", embedding_path).ToStdString();
+    this->cfg->presets = this->fileConfig->Read("/paths/presets", presets_path).ToStdString();
+
+    this->cfg->jobs = this->fileConfig->Read("/paths/presets", jobs_path).ToStdString();
+
+    this->cfg->output = this->fileConfig->Read("/paths/output", imagespath).ToStdString();
+    this->cfg->keep_model_in_memory = this->fileConfig->Read("/keep_model_in_memory", this->cfg->keep_model_in_memory);
+    this->cfg->save_all_image = this->fileConfig->Read("/save_all_image", this->cfg->save_all_image);
+
+    // populate data from sd_params as default...
+
+    if (!this->m_generate->IsEnabled())
+    {
+        this->m_cfg->SetValue(static_cast<double>(this->sd_params->cfg_scale));
+        this->m_seed->SetValue(static_cast<int>(this->sd_params->seed));
+        this->m_clip_skip->SetValue(this->sd_params->clip_skip);
+        this->m_steps->SetValue(this->sd_params->sample_steps);
+        this->m_width->SetValue(this->sd_params->width);
+        this->m_height->SetValue(this->sd_params->height);
+        this->m_batch_count->SetValue(this->sd_params->batch_count);
+    }
+    // hide unusable configs...
+    /*
+    if (SD_CPP_VERSION == "c6071fa") {
+            // .. nope, configs in another window...
+    }*/
+}
+
+void MainWindowUI::StartGeneration()
+{
+
+    // prepare params
+    this->sd_params->model_path = this->ModelFiles.at(this->m_model->GetStringSelection().ToStdString());
+    this->sd_params->lora_model_dir = this->cfg->lora;
+    this->sd_params->embeddings_path = this->cfg->embedding;
+
+    this->sd_params->prompt = this->m_prompt->GetValue().ToStdString();
+    this->sd_params->negative_prompt = this->m_neg_prompt->GetValue().ToStdString();
+
+    this->sd_params->cfg_scale = static_cast<float>(this->m_cfg->GetValue());
+    this->sd_params->seed = this->m_seed->GetValue();
+    this->sd_params->clip_skip = this->m_clip_skip->GetValue();
+    this->sd_params->sample_steps = this->m_steps->GetValue();
+
+    /* sample method */
+    this->sd_params->sample_method = (sample_method_t)this->m_sampler->GetCurrentSelection();
+    /* sample method */
+    this->sd_params->batch_count = this->m_batch_count->GetValue();
+
+    this->sd_params->width = this->m_width->GetValue();
+    this->sd_params->height = this->m_height->GetValue();
+
+    this->threads.push_back(std::thread(std::bind(&MainWindowUI::Generate, this, this->GetEventHandler())));
+}
+
+void MainWindowUI::OnCloseSettings(wxCloseEvent &event)
+{
+    this->initConfig();
+    this->settingsWindow->Destroy();
+}
+
+void MainWindowUI::loadModelList()
+{
+    this->m_sampler->Clear();
+    for (auto sampler : sd_gui_utils::sample_method_str)
+    {
+        int _u = this->m_sampler->Append(sampler);
+
+        if (sampler == sd_gui_utils::sample_method_str[this->sd_params->sample_method])
+        {
+            this->m_sampler->Select(_u);
+        }
+    }
+
+    this->LoadFileList(sd_gui_utils::DirTypes::CHECKPOINT);
+
+    for (auto model : this->ModelFiles)
+    {
+        // auto size = sd_gui_utils::HumanReadable{std::filesystem::file_size(model.second)};
+        auto size = std::filesystem::file_size(model.second);
+
+        wxVector<wxVariant> data;
+        data.push_back(wxVariant(model.first));
+        data.push_back(wxVariant(std::to_string(size)));
+        this->m_data_model_list->AppendItem(data);
+    }
+    this->m_data_model_list->Refresh();
+}
+
+void MainWindowUI::Generate(wxEvtHandler *eventHandler)
+{
+    // calculate time
+    auto start = std::chrono::system_clock::now();
+
+    wxThreadEvent *e = new wxThreadEvent();
+    e->SetString(wxString::Format("GENERATION_START:%s", this->sd_params->model_path));
+    e->SetPayload(this->sd_params);
+    wxQueueEvent(eventHandler, e);
+
+    sd_image_t *control_image = NULL;
+    sd_image_t *results;
+    /*results = txt2img(sd_ctx,
+                      this->sd_params->prompt.c_str(),
+                      this->sd_params->negative_prompt.c_str(),
+                      this->sd_params->clip_skip,
+                      this->sd_params->cfg_scale,
+                      this->sd_params->width,
+                      this->sd_params->height,
+                      this->sd_params->sample_method,
+                      this->sd_params->sample_steps,
+                      this->sd_params->seed,
+                      this->sd_params->batch_count,
+                      control_image,
+                      this->sd_params->control_strength);*/
+    results = txt2img(this->sd_ctx,
+                      this->sd_params->prompt.c_str(), this->sd_params->negative_prompt.c_str(), this->sd_params->clip_skip, this->sd_params->cfg_scale, this->sd_params->width, this->sd_params->height, this->sd_params->sample_method, this->sd_params->sample_steps, this->sd_params->seed, this->sd_params->batch_count);
+
+    if (results == NULL)
+    {
+        wxThreadEvent *f = new wxThreadEvent();
+        f->SetString("GENERATION_ERROR:Something wrong happened at image generation...");
+        wxQueueEvent(eventHandler, f);
+        return;
+    }
+    if (!std::filesystem::exists(this->cfg->output))
+    {
+        std::filesystem::create_directories(this->cfg->output);
+    }
+    /* save image(s) */
+
+    const auto p1 = std::chrono::system_clock::now();
+    auto ctime = std::chrono::duration_cast<std::chrono::seconds>(p1.time_since_epoch()).count();
+
+    for (int i = 0; i < this->sd_params->batch_count; i++)
+    {
+        if (results[i].data == NULL)
+        {
+            continue;
+        }
+
+        // handle data??
+        wxImage *img = new wxImage(results[i].width, results[i].height, results[i].data);
+        std::string filename = this->cfg->output;
+        std::string extension = ".png";
+
+        if (this->sd_params->batch_count > 1)
+        {
+            filename = filename + wxFileName::GetPathSeparator() + std::to_string(ctime) + "_" + std::to_string(i) + extension;
+        }
+        else
+        {
+            filename = filename + wxFileName::GetPathSeparator() + std::to_string(ctime) + extension;
+        }
+        if (!img->SaveFile(filename))
+        {
+            wxThreadEvent *g = new wxThreadEvent();
+            g->SetString(wxString::Format("GENERATION_ERROR:Failed to save image into %s", filename));
+            wxQueueEvent(eventHandler, g);
+        }
+
+        // handle data??
+    }
+
+    auto end = std::chrono::system_clock::now();
+    std::chrono::duration<double> elapsed_seconds = end - start;
+
+    // send to notify the user...
+    wxThreadEvent *h = new wxThreadEvent();
+    auto msg = fmt::format("MESSAGE:Image generation done in {}s. Saved into {}", elapsed_seconds.count(), this->cfg->output);
+    h->SetString(wxString(msg.c_str()));
+    wxQueueEvent(eventHandler, h);
+
+    // send to reset the buttons
+    wxThreadEvent *i = new wxThreadEvent();
+    i->SetString(wxString::Format("GENERATION_DONE:ok"));
+    i->SetPayload(results);
+    wxQueueEvent(eventHandler, i);
+    return;
+}
+
+void MainWindowUI::HandleSDLog(sd_log_level_t level, const char *text, void *data)
+{
+    // wxEvtHandler *eventHandler = (wxEvtHandler *)data;
+    MainWindowUI *ui = (MainWindowUI *)data;
+    wxEvtHandler *eventHandler = ui->GetEventHandler();
+    wxThreadEvent *e = new wxThreadEvent();
+    e->SetString(wxString::Format("SD_MESSAGE:%s", text));
+    e->SetPayload(level);
+    wxQueueEvent(eventHandler, e);
+}
+
+void MainWindowUI::OnQueueItemManagerItemStatusChanged(QM::QueueItem item)
+{
+}
+
+MainWindowUI::~MainWindowUI()
+{
+    // clean up things...
+    if (this->m_generate->IsEnabled())
+    {
+        free_sd_ctx(this->sd_ctx);
+    }
+    for (int i = 0; i < this->threads.size(); i++)
+    {
+        this->threads.at(i).join();
+    }
+    this->threads.clear();
+    this->Destroy();
+    exit(0);
+}
+
+void MainWindowUI::loadVaeList()
+{
+    if (!std::filesystem::exists(this->cfg->vae))
+    {
+        std::filesystem::create_directories(this->cfg->vae);
+    }
+    this->LoadFileList(sd_gui_utils::DirTypes::VAE);
+}
+
+void MainWindowUI::OnQueueItemManagerItemUpdated(QM::QueueItem item)
+{
+}
+
+void MainWindowUI::StartLoadModel()
+{
+    // prepare
+    auto selection = this->m_model->GetStringSelection();
+    if (selection == "-none-")
+    {
+        free_sd_ctx(this->sd_ctx);
+        return;
+    }
+    if (this->m_generate->IsEnabled())
+    {
+        free_sd_ctx(this->sd_ctx);
+    }
+    // disable ui
+    this->m_model->Disable();
+    this->m_vae->Disable();
+    this->m_refresh->Disable();
+    this->sd_params->model_path = this->ModelFiles.at(selection.ToStdString());
+    this->sd_params->lora_model_dir = this->fileConfig->Read("/paths/lora", "").ToStdString();
+    this->threads.push_back(std::thread(std::bind(&MainWindowUI::LoadModel, this, this->GetEventHandler())));
+}
\ No newline at end of file
diff --git a/ui/MainWindowUI.h b/ui/MainWindowUI.h
new file mode 100644
index 0000000..fc66871
--- /dev/null
+++ b/ui/MainWindowUI.h
@@ -0,0 +1,106 @@
+#ifndef __MainWindowUI__
+#define __MainWindowUI__
+
+/**
+@file
+Subclass of UI, which is generated by wxFormBuilder.
+*/
+
+#include "MainWindow.h"
+
+//// end generated include
+#include "ver.hpp"
+#include "MainWindowSettings.h"
+#include "MainWindowImageViewer.h"
+#include "QueueManager.h"
+
+#include <filesystem>
+#include <map>
+#include <thread>
+#include <vector>
+#include <fstream>
+
+#include <fmt/format.h>
+#include "utils.hpp"
+#include <stable-diffusion.h>
+
+#include <wx/fileconf.h>
+#include <wx/stdpaths.h>
+#include <wx/event.h>
+#include <wx/notifmsg.h>
+#include <wx/textdlg.h>
+
+/** Implementing UI */
+class MainWindowUI : public UI
+{
+	protected:
+		// Handlers for UI events.
+		void onSettings( wxCommandEvent& event );
+		void onModelsRefresh( wxCommandEvent& event );
+		void onModelSelect( wxCommandEvent& event );
+		void onVaeSelect( wxCommandEvent& event );
+		void onSamplerSelect( wxCommandEvent& event );
+		void onResolutionSwap( wxCommandEvent& event );
+		void onJobsStart( wxCommandEvent& event );
+		void onJobsPause( wxCommandEvent& event );
+		void onJobsDelete( wxCommandEvent& event );
+		void onJoblistItemActivated( wxDataViewEvent& event );
+		void onJoblistSelectionChanged( wxDataViewEvent& event );
+		void onGenerate( wxCommandEvent& event );
+		void onSavePreset( wxCommandEvent& event );
+		void onLoadPreset( wxCommandEvent& event );
+		void onSelectPreset( wxCommandEvent& event );
+		void onDeletePreset( wxCommandEvent& event );
+	public:
+		/** Constructor */
+		MainWindowUI( wxWindow* parent );
+	//// end generated class members
+	~MainWindowUI();
+	void OnThreadMessage(wxThreadEvent &e);
+
+private:
+	wxFileConfig *fileConfig;
+	sd_gui_utils::config *cfg;
+	wxString ini_path;
+	MainWindowSettings *settingsWindow;
+	sd_gui_utils::SDParams *sd_params;
+
+	std::map<std::string, std::string> ModelFiles;
+	std::map<std::string, std::string> VaeFiles;
+	std::map<std::string, sd_gui_utils::generator_preset> Presets;
+
+	// the queue manager
+	QM::QueueManager *qmanager;
+	sd_ctx_t *sd_ctx;
+	std::streambuf *buffer;
+	std::vector<std::thread> threads;
+
+	void initConfig();
+	void loadModelList();
+	void loadVaeList();
+	void OnCloseSettings(wxCloseEvent &event);
+	void LoadFileList(sd_gui_utils::DirTypes type = sd_gui_utils::DirTypes::CHECKPOINT);
+	void LoadPresets();
+
+	static void HandleSDLog(sd_log_level_t level, const char *text, void *data);
+
+	// load the model in a new thread
+	void LoadModel(wxEvtHandler *eventHandler);
+	// generate in another thread
+	void Generate(wxEvtHandler *eventHandler);
+
+	// start a thread for model loading...
+	void StartLoadModel();
+	// start a thread to generate image
+	void StartGeneration();
+
+	// handle queue managers events, manipulate data table by events
+	void OnQueueItemManagerItemAdded(QM::QueueItem item);
+	void OnQueueItemManagerItemUpdated(QM::QueueItem item);
+	void OnQueueItemManagerItemStatusChanged(QM::QueueItem item);
+
+	wxNotificationMessage *notification;
+
+};
+
+#endif // __MainWindowUI__
diff --git a/ui/QueueManager.cpp b/ui/QueueManager.cpp
new file mode 100644
index 0000000..126c7b5
--- /dev/null
+++ b/ui/QueueManager.cpp
@@ -0,0 +1,129 @@
+#include "QueueManager.h"
+
+QM::QueueManager::QueueManager(wxEvtHandler *eventHandler, std::string jobsdir)
+{
+    // need to send events into the mainwindow by the threads...
+    this->eventHandler = eventHandler;
+    this->eventHandler->Bind(wxEVT_THREAD, &QueueManager::OnThreadMessage, this);
+    this->jobsDir = jobsdir;
+}
+
+int QM::QueueManager::AddItem(QM::QueueItem item)
+{
+    if (!item.id)
+    {
+        item.id = this->GetCurrentUnixTimestamp();
+    }
+    this->QueueList[item.id] = item;
+    this->SendEventToMainWindow(QM::QueueEvents::ITEM_ADDED, item);
+    return item.id;
+}
+
+int QM::QueueManager::AddItem(sd_gui_utils::SDParams *params)
+{
+    QM::QueueItem item;
+    item.params = *params;
+    item.created_at = item.id = this->GetCurrentUnixTimestamp();
+    this->AddItem(item);
+    return item.id;
+}
+
+int QM::QueueManager::AddItem(sd_gui_utils::SDParams params)
+{
+    QM::QueueItem item;
+    item.params = params;
+    item.created_at = item.id = this->GetCurrentUnixTimestamp();
+    this->AddItem(item);
+    return item.id;
+}
+
+QM::QueueItem QM::QueueManager::GetItem(int id)
+{
+    if (this->QueueList.find(id) == this->QueueList.end())
+    {
+        return QM::QueueItem();
+    }
+    else
+    {
+        return this->QueueList.at(id);
+    }
+}
+
+QM::QueueItem QM::QueueManager::GetItem(QM::QueueItem item)
+{
+    return this->GetItem(item.id);
+}
+
+const std::map<int, QM::QueueItem> QM::QueueManager::getList()
+{
+    return this->QueueList;
+}
+
+int QM::QueueManager::Duplicate(QM::QueueItem item)
+{
+    if (this->QueueList.find(item.id) == this->QueueList.end())
+    {
+        return -1;
+    }
+    else
+    {
+        return this->AddItem(this->QueueList.at(item.id).params);
+    }
+}
+
+int QM::QueueManager::Duplicate(int id)
+{
+    return this->AddItem(this->GetItem(id).params);
+}
+
+void QM::QueueManager::SetStatus(QM::QueueStatus status, int id)
+{
+    // todo, start - stop - pause
+    auto item = this->GetItem(id);
+    item.status = status;
+    this->SendEventToMainWindow(QM::QueueEvents::ITEM_STATUS_CHANGED, item);
+}
+
+void QM::QueueManager::PauseAll()
+{
+    for (auto &[key, value] : this->QueueList)
+    {
+        if (value.status == QM::QueueStatus::PENDING)
+        {
+            this->SetStatus(QM::PAUSED, key);
+            this->SendEventToMainWindow(QM::QueueEvents::ITEM_STATUS_CHANGED);
+        }
+    }
+}
+
+void QM::QueueManager::SendEventToMainWindow(QM::QueueEvents eventType, QM::QueueItem item)
+{
+    wxThreadEvent *e = new wxThreadEvent();
+    // e->SetString(wxString::Format("MODEL_LOAD_START:%s", this->sd_params->model_path));
+    e->SetString(wxString("QUEUE:" + (int)eventType));
+    e->SetPayload(item);
+    wxQueueEvent(this->eventHandler, e);
+}
+
+void QM::QueueManager::OnThreadMessage(wxThreadEvent &e)
+{
+    auto msg = e.GetString().ToStdString();
+
+    std::string token = msg.substr(0, msg.find(":"));
+    std::string content = msg.substr(msg.find(":") + 1);
+    // only numbers here...
+    QM::QueueEvents event = (QM::QueueEvents)std::stoi(content);
+    // only handle the QUEUE messages, what this class generate
+}
+
+int QM::QueueManager::GetCurrentUnixTimestamp()
+{
+    const auto p1 = std::chrono::system_clock::now();
+    return static_cast<int>(std::chrono::duration_cast<std::chrono::seconds>(p1.time_since_epoch()).count());
+}
+
+void QM::QueueManager::onItemAdded(QM::QueueItem item)
+{
+    // this->parent->m_joblist
+    // auto dataTable = this->parent->m_joblist;
+}
diff --git a/ui/QueueManager.h b/ui/QueueManager.h
new file mode 100644
index 0000000..f7b3e02
--- /dev/null
+++ b/ui/QueueManager.h
@@ -0,0 +1,116 @@
+#ifndef __SD_GUI_QUEUE_MANAGER
+#define __SD_GUI_QUEUE_MANAGER
+
+#include <map>
+#include <chrono>
+#include <nlohmann/json.hpp>
+
+#include "utils.hpp"
+
+#include <wx/event.h>
+#include <wx/window.h>
+
+namespace QM
+{
+    enum QueueStatus
+    {
+        PENDING,
+        RUNNING,
+        PAUSED,
+        FAILED
+    };
+    inline const char *QueueStatus_str[] = {
+        "pending",
+        "running",
+        "paused",
+        "failed"};
+
+    enum QueueEvents
+    {
+        ITEM_DELETED,
+        ITEM_ADDED,
+        ITEM_STATUS_CHANGED,
+        ITEM_UPDATED
+    };
+    struct QueueItem
+    {
+        QueueItem() = default;
+        QueueItem(const QueueItem &other)
+            : id(other.id), created_at(other.created_at), updated_at(other.updated_at),
+              finished_at(other.finished_at), params(other.params), status(other.status) {}
+
+        QueueItem &operator=(const QueueItem &other)
+        {
+            if (this != &other)
+            {
+                id = other.id;
+                created_at = other.created_at;
+                updated_at = other.updated_at;
+                finished_at = other.finished_at;
+                // Másolatot készítünk a params referenciáról
+                // Ha a params referenciához tartozó SDParams objektum módosulna,
+                // akkor ebben az esetben másolatban marad az eredeti QueueItem-ben
+                params = other.params;
+                status = other.status;
+            }
+            return *this;
+        }
+        int id, created_at, updated_at, finished_at;
+        sd_gui_utils::SDParams params;
+        QM::QueueStatus status = QM::QueueStatus::PENDING;
+    };
+
+    inline void to_json(nlohmann::json &j, const QueueItem &p)
+    {
+        j = nlohmann::json{
+            {"id", p.id},
+            {"created_at", p.created_at},
+            {"updated_at", p.updated_at},
+            {"finished_at", p.finished_at},
+            //   {"params", p.params},
+            {"status", (int)p.status}};
+    }
+
+    inline void from_json(const nlohmann::json &j, QueueItem &p)
+    {
+        j.at("id").get_to(p.id);
+        j.at("created_at").get_to(p.created_at);
+        j.at("updated_at").get_to(p.updated_at);
+        j.at("finished_at").get_to(p.finished_at);
+        //  j.at("params").get_to(p.params);
+        p.status = j.at("status").get<QM::QueueStatus>();
+    }
+
+    class QueueManager
+    {
+    public:
+        QueueManager(wxEvtHandler *eventHandler, std::string jobsdir);
+        int AddItem(QM::QueueItem item);
+        int AddItem(sd_gui_utils::SDParams *params);
+        int AddItem(sd_gui_utils::SDParams params);
+        QM::QueueItem GetItem(int id);
+        QM::QueueItem GetItem(QM::QueueItem item);
+        const std::map<int, QM::QueueItem> getList();
+        int Duplicate(QM::QueueItem item);
+        int Duplicate(int id);
+        void SetStatus(QM::QueueStatus status, int id);
+        void PauseAll();
+        void SendEventToMainWindow(QM::QueueEvents eventType, QM::QueueItem item = QM::QueueItem());
+        void OnThreadMessage(wxThreadEvent &e);
+
+    private:
+        int GetCurrentUnixTimestamp();
+        std::string jobsDir;
+        // thread events handler, toupdate main window data table
+        void onItemAdded(QM::QueueItem item);
+        void LodJobsFromFile();
+        void SaveJobsToFile();
+
+        wxEvtHandler *eventHandler;
+        wxWindow *parent;
+        std::map<int, QM::QueueItem> QueueList;
+    };
+
+};
+
+#endif
\ No newline at end of file
diff --git a/ui/embended_files/cube.png.h b/ui/embended_files/cube.png.h
new file mode 100644
index 0000000..14f812a
--- /dev/null
+++ b/ui/embended_files/cube.png.h
@@ -0,0 +1,59 @@
+#ifndef CUBE_PNG_H
+#define CUBE_PNG_H
+
+#include <wx/mstream.h>
+#include <wx/image.h>
+#include <wx/bitmap.h>
+
+static const unsigned char cube_png[] =
+{
+	0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, 
+	0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x10, 
+	0x00, 0x00, 0x00, 0x10, 0x08, 0x06, 0x00, 0x00, 0x00, 0x1F, 
+	0xF3, 0xFF, 0x61, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 
+	0x73, 0x00, 0x00, 0x09, 0xD7, 0x00, 0x00, 0x09, 0xD7, 0x01, 
+	0xB1, 0x6E, 0x17, 0xB7, 0x00, 0x00, 0x00, 0x19, 0x74, 0x45, 
+	0x58, 0x74, 0x53, 0x6F, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 
+	0x00, 0x77, 0x77, 0x77, 0x2E, 0x69, 0x6E, 0x6B, 0x73, 0x63, 
+	0x61, 0x70, 0x65, 0x2E, 0x6F, 0x72, 0x67, 0x9B, 0xEE, 0x3C, 
+	0x1A, 0x00, 0x00, 0x01, 0x07, 0x49, 0x44, 0x41, 0x54, 0x38, 
+	0x8D, 0x9D, 0xD3, 0xBF, 0x2B, 0x45, 0x61, 0x18, 0x07, 0xF0, 
+	0x0F, 0x09, 0x77, 0xBC, 0xC9, 0x70, 0x07, 0x56, 0x5D, 0x93, 
+	0x0C, 0xCA, 0xAE, 0x4C, 0x5C, 0x8B, 0x49, 0xB1, 0x59, 0x6D, 
+	0x14, 0x45, 0x26, 0xF9, 0x03, 0x98, 0x8C, 0x26, 0x37, 0x72, 
+	0xA3, 0x63, 0x91, 0x7F, 0x81, 0xBF, 0xC0, 0x64, 0x53, 0xCA, 
+	0x20, 0x4A, 0x61, 0x78, 0xCF, 0xBD, 0x1D, 0xD7, 0x79, 0xCF, 
+	0xC1, 0xB7, 0xDE, 0xE5, 0xF9, 0x3E, 0xDF, 0xE7, 0xF7, 0x4B, 
+	0x1C, 0x75, 0x34, 0xD3, 0x57, 0x2F, 0xF0, 0xFB, 0x81, 0x2A, 
+	0xF6, 0x70, 0x8C, 0x51, 0xD4, 0x70, 0x80, 0x43, 0x0C, 0x17, 
+	0x09, 0xFB, 0xB0, 0x8A, 0x4B, 0x4C, 0xE7, 0xF0, 0x93, 0x38, 
+	0xC7, 0x06, 0xFA, 0xBB, 0xC9, 0x19, 0x24, 0x58, 0x46, 0x4F, 
+	0x49, 0x85, 0x73, 0xB8, 0xC2, 0x62, 0xD6, 0xF8, 0x84, 0x23, 
+	0x0C, 0x95, 0x88, 0x61, 0x00, 0xDB, 0x78, 0xCB, 0x1A, 0x4F, 
+	0x30, 0x81, 0x16, 0xD6, 0x84, 0x76, 0x62, 0xD9, 0x93, 0x34, 
+	0x7B, 0x13, 0x7A, 0x33, 0xE4, 0x1D, 0x1A, 0xB8, 0x17, 0xE6, 
+	0x30, 0x9B, 0xE1, 0xA6, 0x84, 0xFE, 0xC7, 0xB1, 0x90, 0x8A, 
+	0x3F, 0x45, 0x32, 0x5D, 0xE0, 0x06, 0x9B, 0x58, 0x12, 0x66, 
+	0xF2, 0x80, 0x15, 0x3C, 0x77, 0x3B, 0xC7, 0x4A, 0x7D, 0xC1, 
+	0x96, 0x30, 0xD4, 0x0F, 0x61, 0xA5, 0xB9, 0x88, 0x05, 0x68, 
+	0xE3, 0xB5, 0x84, 0xFF, 0x36, 0x83, 0x7F, 0xA1, 0x1D, 0xA0, 
+	0x86, 0xCA, 0x1F, 0x74, 0x95, 0x54, 0xD3, 0x09, 0xB0, 0x8B, 
+	0x53, 0xBF, 0x3F, 0xA4, 0x33, 0xEC, 0x67, 0x03, 0x5C, 0x63, 
+	0x1E, 0x83, 0xC2, 0x16, 0x62, 0xA7, 0xDC, 0x12, 0x56, 0xD9, 
+	0x10, 0x56, 0x9D, 0x9B, 0xAD, 0x8A, 0x75, 0x8C, 0xE0, 0x16, 
+	0xEF, 0x18, 0x4B, 0x7D, 0x77, 0xF0, 0x58, 0x52, 0x61, 0x07, 
+	0x75, 0xE1, 0xEA, 0x12, 0x05, 0xDF, 0xF9, 0x0B, 0x82, 0x43, 
+	0x2C, 0xFB, 0x11, 0x35, 0x04, 0x4C, 0x00, 0x00, 0x00, 0x00, 
+	0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82, 
+};
+
+wxBitmap& cube_png_to_wx_bitmap()
+{
+	static wxMemoryInputStream memIStream( cube_png, sizeof( cube_png ) );
+	static wxImage image( memIStream, wxBITMAP_TYPE_PNG );
+	static wxBitmap bmp( image );
+	return bmp;
+}
+
+
+#endif //CUBE_PNG_H
diff --git a/ui/embended_files/disk.png.h b/ui/embended_files/disk.png.h
new file mode 100644
index 0000000..9858163
--- /dev/null
+++ b/ui/embended_files/disk.png.h
@@ -0,0 +1,56 @@
+#ifndef DISK_PNG_H
+#define DISK_PNG_H
+
+#include <wx/mstream.h>
+#include <wx/image.h>
+#include <wx/bitmap.h>
+
+static const unsigned char disk_png[] =
+{
+	0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, 
+	0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x10, 
+	0x00, 0x00, 0x00, 0x10, 0x08, 0x06, 0x00, 0x00, 0x00, 0x1F, 
+	0xF3, 0xFF, 0x61, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 
+	0x73, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x76, 0x01, 
+	0x4E, 0x7B, 0x26, 0x08, 0x00, 0x00, 0x00, 0x19, 0x74, 0x45, 
+	0x58, 0x74, 0x53, 0x6F, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 
+	0x00, 0x77, 0x77, 0x77, 0x2E, 0x69, 0x6E, 0x6B, 0x73, 0x63, 
+	0x61, 0x70, 0x65, 0x2E, 0x6F, 0x72, 0x67, 0x9B, 0xEE, 0x3C, 
+	0x1A, 0x00, 0x00, 0x00, 0xEB, 0x49, 0x44, 0x41, 0x54, 0x38, 
+	0x8D, 0xA5, 0xD2, 0x31, 0x4A, 0x03, 0x51, 0x10, 0xC6, 0xF1, 
+	0x9F, 0x62, 0x2D, 0x78, 0x00, 0x0B, 0x09, 0x76, 0x62, 0x29, 
+	0xB1, 0x88, 0x58, 0x58, 0x08, 0xD6, 0x8B, 0xAD, 0x07, 0x50, 
+	0x90, 0x5C, 0x40, 0xF0, 0x00, 0x7A, 0x06, 0x83, 0x58, 0x24, 
+	0x45, 0x04, 0x1B, 0x3B, 0xED, 0x82, 0x22, 0x62, 0xE3, 0x09, 
+	0xCC, 0x05, 0x44, 0x2B, 0x11, 0xD6, 0x62, 0x27, 0xB0, 0x3E, 
+	0x76, 0xD5, 0x8D, 0x1F, 0x4C, 0x31, 0xF3, 0x66, 0xFE, 0x6F, 
+	0xE6, 0xBD, 0x81, 0x1D, 0x8C, 0x91, 0xFF, 0xD1, 0x5E, 0xB1, 
+	0x2E, 0x34, 0x83, 0x17, 0x3C, 0xE0, 0x02, 0xDD, 0x88, 0x9F, 
+	0xA8, 0x56, 0x17, 0x6B, 0x78, 0xC7, 0x36, 0x46, 0x82, 0x9A, 
+	0x45, 0x42, 0x3F, 0xAC, 0x4E, 0x7D, 0x5C, 0x62, 0x18, 0x90, 
+	0x8D, 0xD9, 0x1F, 0x92, 0xEB, 0xF4, 0x81, 0x5D, 0xDC, 0xE0, 
+	0xAA, 0x0A, 0x90, 0xA9, 0x9F, 0x3F, 0x2B, 0x41, 0x7A, 0x98, 
+	0x9F, 0x4B, 0x8A, 0x4F, 0x31, 0xF8, 0xA5, 0x83, 0x71, 0xD9, 
+	0x49, 0x01, 0xA3, 0xE4, 0xAC, 0x13, 0xB7, 0xDD, 0xE1, 0xB3, 
+	0x8A, 0x96, 0x02, 0x26, 0x5A, 0xC0, 0x2D, 0x56, 0xC3, 0xBF, 
+	0xC7, 0x16, 0xDE, 0xD2, 0xC4, 0xBA, 0x47, 0x3C, 0xC4, 0x22, 
+	0x56, 0x02, 0xD2, 0xC2, 0x41, 0x93, 0x0E, 0x5A, 0x78, 0xC4, 
+	0x73, 0xF8, 0x4F, 0x58, 0x6E, 0x02, 0xB8, 0xC6, 0x19, 0x8E, 
+	0x15, 0xB3, 0x6F, 0x62, 0xAF, 0x09, 0xE0, 0x1C, 0x4B, 0xD8, 
+	0x57, 0x6C, 0xEB, 0x51, 0xC4, 0x2A, 0x55, 0xFE, 0xDF, 0x26, 
+	0xCA, 0x90, 0x4F, 0xB3, 0x89, 0xDF, 0x34, 0x19, 0xA1, 0x3D, 
+	0x45, 0x6D, 0x9B, 0x62, 0xBE, 0xFC, 0x3F, 0x1D, 0x7C, 0x01, 
+	0x49, 0xD6, 0x3A, 0x64, 0x4D, 0x76, 0xB5, 0x9B, 0x00, 0x00, 
+	0x00, 0x00, 0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82, 
+};
+
+wxBitmap& disk_png_to_wx_bitmap()
+{
+	static wxMemoryInputStream memIStream( disk_png, sizeof( disk_png ) );
+	static wxImage image( memIStream, wxBITMAP_TYPE_PNG );
+	static wxBitmap bmp( image );
+	return bmp;
+}
+
+
+#endif //DISK_PNG_H
diff --git a/ui/embended_files/file_import.png.h b/ui/embended_files/file_import.png.h
new file mode 100644
index 0000000..896b7eb
--- /dev/null
+++ b/ui/embended_files/file_import.png.h
@@ -0,0 +1,53 @@
+#ifndef FILE_IMPORT_PNG_H
+#define FILE_IMPORT_PNG_H
+
+#include <wx/mstream.h>
+#include <wx/image.h>
+#include <wx/bitmap.h>
+
+static const unsigned char file_import_png[] =
+{
+	0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, 
+	0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x10, 
+	0x00, 0x00, 0x00, 0x10, 0x08, 0x06, 0x00, 0x00, 0x00, 0x1F, 
+	0xF3, 0xFF, 0x61, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 
+	0x73, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x76, 0x01, 
+	0x4E, 0x7B, 0x26, 0x08, 0x00, 0x00, 0x00, 0x19, 0x74, 0x45, 
+	0x58, 0x74, 0x53, 0x6F, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 
+	0x00, 0x77, 0x77, 0x77, 0x2E, 0x69, 0x6E, 0x6B, 0x73, 0x63, 
+	0x61, 0x70, 0x65, 0x2E, 0x6F, 0x72, 0x67, 0x9B, 0xEE, 0x3C, 
+	0x1A, 0x00, 0x00, 0x00, 0xCA, 0x49, 0x44, 0x41, 0x54, 0x38, 
+	0x8D, 0x9D, 0xD2, 0x31, 0x6E, 0x02, 0x31, 0x10, 0x85, 0xE1, 
+	0x0F, 0x44, 0x89, 0xA8, 0x39, 0x4A, 0xA2, 0x5C, 0x60, 0x05, 
+	0xF5, 0xD2, 0xA6, 0x26, 0xE9, 0x38, 0x46, 0x8A, 0x6C, 0x93, 
+	0x2B, 0xA4, 0x59, 0x5A, 0xC4, 0x05, 0x52, 0x04, 0x89, 0x2A, 
+	0x17, 0x41, 0x51, 0x0A, 0x2A, 0x04, 0x14, 0x59, 0x4B, 0xB0, 
+	0xAC, 0xBD, 0x2B, 0x9E, 0x64, 0x69, 0xE4, 0x99, 0xF7, 0x7B, 
+	0xC6, 0x36, 0xFF, 0x1A, 0xE3, 0x0B, 0x07, 0x9C, 0x22, 0xEB, 
+	0x88, 0x57, 0x11, 0xBD, 0x27, 0x8C, 0x75, 0xC8, 0xBC, 0x09, 
+	0x50, 0x56, 0x05, 0x79, 0xE4, 0x80, 0x90, 0x0F, 0x90, 0x97, 
+	0x90, 0xE8, 0xC7, 0x5A, 0x4A, 0xA8, 0x87, 0x0F, 0x3C, 0xDF, 
+	0x0B, 0x08, 0x90, 0x29, 0x0C, 0x3A, 0x1A, 0x0A, 0x2C, 0xAB, 
+	0xF8, 0x01, 0x8B, 0x90, 0x48, 0x01, 0x46, 0xF8, 0xAB, 0xE2, 
+	0xEF, 0x58, 0x51, 0x18, 0xA1, 0xC0, 0xAC, 0x56, 0xB8, 0xC6, 
+	0xB0, 0xAD, 0xB5, 0x81, 0xEB, 0x9B, 0x7F, 0xBC, 0x88, 0x9F, 
+	0xB0, 0xC2, 0x04, 0xFB, 0x14, 0xA4, 0xED, 0xED, 0xDF, 0x6A, 
+	0xF5, 0x79, 0xB5, 0x5F, 0x86, 0x0E, 0x96, 0x9A, 0x95, 0x63, 
+	0x87, 0xCF, 0xB6, 0x11, 0x66, 0x91, 0xDC, 0x2F, 0x32, 0xFC, 
+	0xA4, 0x00, 0xE1, 0x12, 0x9B, 0x7E, 0x62, 0x86, 0x6D, 0xCA, 
+	0x7C, 0x09, 0x68, 0xD2, 0xA6, 0xCD, 0xCC, 0xED, 0x3F, 0x28, 
+	0xBB, 0x98, 0xBA, 0x76, 0xD0, 0x49, 0x67, 0x0C, 0x18, 0x38, 
+	0x64, 0xC1, 0xDF, 0xEF, 0x22, 0x00, 0x00, 0x00, 0x00, 0x49, 
+	0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82, 
+};
+
+wxBitmap& file_import_png_to_wx_bitmap()
+{
+	static wxMemoryInputStream memIStream( file_import_png, sizeof( file_import_png ) );
+	static wxImage image( memIStream, wxBITMAP_TYPE_PNG );
+	static wxBitmap bmp( image );
+	return bmp;
+}
+
+
+#endif //FILE_IMPORT_PNG_H
diff --git a/ui/embended_files/forward.png.h b/ui/embended_files/forward.png.h
new file mode 100644
index 0000000..a630d3f
--- /dev/null
+++ b/ui/embended_files/forward.png.h
@@ -0,0 +1,51 @@
+#ifndef FORWARD_PNG_H
+#define FORWARD_PNG_H
+
+#include <wx/mstream.h>
+#include <wx/image.h>
+#include <wx/bitmap.h>
+
+static const unsigned char forward_png[] =
+{
+	0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, 
+	0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x10, 
+	0x00, 0x00, 0x00, 0x10, 0x08, 0x06, 0x00, 0x00, 0x00, 0x1F, 
+	0xF3, 0xFF, 0x61, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 
+	0x73, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x76, 0x01, 
+	0x4E, 0x7B, 0x26, 0x08, 0x00, 0x00, 0x00, 0x19, 0x74, 0x45, 
+	0x58, 0x74, 0x53, 0x6F, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 
+	0x00, 0x77, 0x77, 0x77, 0x2E, 0x69, 0x6E, 0x6B, 0x73, 0x63, 
+	0x61, 0x70, 0x65, 0x2E, 0x6F, 0x72, 0x67, 0x9B, 0xEE, 0x3C, 
+	0x1A, 0x00, 0x00, 0x00, 0xB0, 0x49, 0x44, 0x41, 0x54, 0x38, 
+	0x8D, 0xCD, 0xD2, 0x31, 0x8E, 0x41, 0x61, 0x14, 0xC5, 0xF1, 
+	0x1F, 0x95, 0x68, 0x2C, 0xC2, 0x24, 0xAC, 0x40, 0xC4, 0x0A, 
+	0x2C, 0x43, 0x3B, 0x51, 0xD8, 0x81, 0x8E, 0x44, 0xAD, 0x54, 
+	0xA9, 0x45, 0x42, 0xA5, 0x52, 0xD1, 0x8F, 0x0D, 0x4C, 0x63, 
+	0x07, 0x93, 0x0C, 0x85, 0xC2, 0xD3, 0x90, 0x7C, 0x5E, 0xDE, 
+	0x43, 0xDE, 0x2B, 0x38, 0xC9, 0x6D, 0xCE, 0x77, 0xEE, 0x3F, 
+	0x37, 0x5F, 0x0E, 0x9F, 0xA0, 0x32, 0x06, 0x58, 0x63, 0x84, 
+	0x4A, 0xF0, 0xD6, 0xC2, 0x1C, 0x4B, 0xB4, 0xD3, 0x00, 0x53, 
+	0x44, 0xC1, 0xFC, 0xA2, 0x81, 0x2F, 0x1C, 0x03, 0xFF, 0x8C, 
+	0x31, 0x4A, 0x71, 0xC0, 0x21, 0x06, 0x88, 0x70, 0xC2, 0x36, 
+	0xC1, 0x8F, 0xB0, 0x43, 0x3D, 0x04, 0x24, 0x85, 0x9E, 0xCD, 
+	0x3F, 0x3A, 0x50, 0xB8, 0x1A, 0x59, 0xD5, 0xCD, 0x0B, 0xD8, 
+	0x17, 0x73, 0x2C, 0xC3, 0x39, 0xEF, 0x05, 0xDF, 0x64, 0xFB, 
+	0xC4, 0x23, 0x7A, 0x37, 0xCA, 0x5F, 0x42, 0xE0, 0x84, 0x4D, 
+	0xCA, 0xF2, 0x0F, 0x6A, 0xE1, 0x19, 0x93, 0x58, 0xE0, 0x56, 
+	0xA4, 0xAA, 0x17, 0x8B, 0x54, 0x42, 0x1F, 0x2B, 0x0C, 0xDD, 
+	0x57, 0xB9, 0x89, 0x19, 0x16, 0x1E, 0x54, 0xF9, 0xBD, 0xBA, 
+	0x00, 0xCE, 0x45, 0x55, 0xC1, 0x08, 0x9C, 0xBC, 0x95, 0x00, 
+	0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 
+	0x82, 
+};
+
+wxBitmap& forward_png_to_wx_bitmap()
+{
+	static wxMemoryInputStream memIStream( forward_png, sizeof( forward_png ) );
+	static wxImage image( memIStream, wxBITMAP_TYPE_PNG );
+	static wxBitmap bmp( image );
+	return bmp;
+}
+
+
+#endif //FORWARD_PNG_H
diff --git a/ui/embended_files/images.png.h b/ui/embended_files/images.png.h
new file mode 100644
index 0000000..e5697fb
--- /dev/null
+++ b/ui/embended_files/images.png.h
@@ -0,0 +1,61 @@
+#ifndef IMAGES_PNG_H
+#define IMAGES_PNG_H
+
+#include <wx/mstream.h>
+#include <wx/image.h>
+#include <wx/bitmap.h>
+
+static const unsigned char images_png[] =
+{
+	0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, 
+	0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x10, 
+	0x00, 0x00, 0x00, 0x10, 0x08, 0x06, 0x00, 0x00, 0x00, 0x1F, 
+	0xF3, 0xFF, 0x61, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 
+	0x73, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x76, 0x01, 
+	0x4E, 0x7B, 0x26, 0x08, 0x00, 0x00, 0x00, 0x19, 0x74, 0x45, 
+	0x58, 0x74, 0x53, 0x6F, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 
+	0x00, 0x77, 0x77, 0x77, 0x2E, 0x69, 0x6E, 0x6B, 0x73, 0x63, 
+	0x61, 0x70, 0x65, 0x2E, 0x6F, 0x72, 0x67, 0x9B, 0xEE, 0x3C, 
+	0x1A, 0x00, 0x00, 0x01, 0x15, 0x49, 0x44, 0x41, 0x54, 0x38, 
+	0x8D, 0x95, 0xD3, 0x3B, 0x2F, 0x04, 0x61, 0x14, 0xC6, 0xF1, 
+	0xDF, 0xBA, 0x96, 0x5B, 0x88, 0x42, 0x21, 0x91, 0x48, 0x44, 
+	0xDC, 0x7A, 0x35, 0xBD, 0xC2, 0x47, 0x90, 0xB8, 0x86, 0x6F, 
+	0xB2, 0x85, 0x9E, 0x88, 0xE8, 0x6C, 0x14, 0x3A, 0x71, 0x29, 
+	0x49, 0x74, 0x3A, 0xB2, 0xA2, 0x12, 0x0A, 0x36, 0x22, 0x21, 
+	0x1A, 0xD6, 0x2A, 0xF6, 0x4C, 0x62, 0xC7, 0x0C, 0xEB, 0x24, 
+	0x4F, 0x26, 0xE7, 0x9D, 0xF7, 0xF9, 0xBF, 0xE7, 0x9C, 0x99, 
+	0x97, 0x9F, 0x31, 0x81, 0x63, 0xBC, 0xA2, 0x9E, 0xA1, 0x1A, 
+	0xAE, 0x31, 0x9F, 0xE1, 0xD5, 0x8F, 0xE7, 0x1C, 0x63, 0x96, 
+	0x16, 0xDA, 0x52, 0x80, 0x39, 0x14, 0x51, 0x42, 0x0F, 0x2E, 
+	0xB3, 0x4E, 0x89, 0x78, 0xC4, 0x59, 0x1A, 0x30, 0x1C, 0xCF, 
+	0x42, 0xE8, 0x37, 0xF3, 0x14, 0xDE, 0x92, 0x85, 0x64, 0xF3, 
+	0x6E, 0x46, 0x99, 0x37, 0x38, 0xC2, 0x47, 0xE4, 0x0F, 0x18, 
+	0xC7, 0x20, 0x6E, 0x13, 0xC0, 0x4A, 0x0E, 0xA0, 0x8C, 0xAE, 
+	0x78, 0x37, 0x8D, 0x4A, 0xCA, 0x5C, 0x4F, 0x00, 0x95, 0x0C, 
+	0x40, 0x19, 0x1D, 0x58, 0xC3, 0x39, 0x7A, 0x63, 0xCF, 0xD0, 
+	0x37, 0x73, 0x5D, 0xD0, 0xEA, 0xE8, 0xC4, 0x76, 0x86, 0xF9, 
+	0x33, 0xD6, 0xAA, 0x38, 0xD1, 0xFC, 0x79, 0x5F, 0x60, 0x39, 
+	0x92, 0x51, 0x2C, 0xE5, 0x98, 0xF3, 0x74, 0x08, 0xFB, 0x91, 
+	0x94, 0xD0, 0x1D, 0xE6, 0xD5, 0x16, 0xCC, 0x4F, 0x18, 0x2B, 
+	0xE0, 0x1E, 0x7D, 0x31, 0xE5, 0x19, 0x1C, 0x60, 0x11, 0x93, 
+	0x01, 0x4C, 0x47, 0x0D, 0x57, 0xD8, 0xC0, 0x9D, 0xE8, 0x2D, 
+	0xA1, 0xBE, 0x47, 0x25, 0x23, 0x31, 0x93, 0x96, 0x62, 0xF3, 
+	0x8F, 0x52, 0xD3, 0xDA, 0x4A, 0x03, 0x8A, 0x38, 0xFD, 0x07, 
+	0x60, 0x36, 0xAB, 0x8A, 0x82, 0xC6, 0x8F, 0xB2, 0x1E, 0xFD, 
+	0xE5, 0x99, 0x2F, 0xD0, 0xDE, 0x4A, 0x5B, 0x03, 0x1A, 0xD7, 
+	0x75, 0x4F, 0x63, 0xC8, 0x55, 0xEC, 0x68, 0x5C, 0xB0, 0xA6, 
+	0xF8, 0x02, 0x72, 0x64, 0x87, 0x82, 0x81, 0x5D, 0x07, 0x43, 
+	0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 
+	0x60, 0x82, 
+};
+
+wxBitmap& images_png_to_wx_bitmap()
+{
+	static wxMemoryInputStream memIStream( images_png, sizeof( images_png ) );
+	static wxImage image( memIStream, wxBITMAP_TYPE_PNG );
+	static wxBitmap bmp( image );
+	return bmp;
+}
+
+
+#endif //IMAGES_PNG_H
diff --git a/ui/embended_files/palette.png.h b/ui/embended_files/palette.png.h
new file mode 100644
index 0000000..ba15a25
--- /dev/null
+++ b/ui/embended_files/palette.png.h
@@ -0,0 +1,68 @@
+#ifndef PALETTE_PNG_H
+#define PALETTE_PNG_H
+
+#include <wx/mstream.h>
+#include <wx/image.h>
+#include <wx/bitmap.h>
+
+static const unsigned char palette_png[] =
+{
+	0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, 
+	0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x10, 
+	0x00, 0x00, 0x00, 0x10, 0x08, 0x06, 0x00, 0x00, 0x00, 0x1F, 
+	0xF3, 0xFF, 0x61, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 
+	0x73, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x76, 0x01, 
+	0x4E, 0x7B, 0x26, 0x08, 0x00, 0x00, 0x00, 0x19, 0x74, 0x45, 
+	0x58, 0x74, 0x53, 0x6F, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 
+	0x00, 0x77, 0x77, 0x77, 0x2E, 0x69, 0x6E, 0x6B, 0x73, 0x63, 
+	0x61, 0x70, 0x65, 0x2E, 0x6F, 0x72, 0x67, 0x9B, 0xEE, 0x3C, 
+	0x1A, 0x00, 0x00, 0x01, 0x5E, 0x49, 0x44, 0x41, 0x54, 0x38, 
+	0x8D, 0x85, 0xD3, 0xBF, 0x4B, 0x57, 0x51, 0x18, 0x06, 0xF0, 
+	0x8F, 0x7E, 0xA5, 0x28, 0xB4, 0xF1, 0x4B, 0x0D, 0x1A, 0x62, 
+	0xA3, 0x06, 0x0D, 0x46, 0x41, 0x53, 0xA2, 0xA3, 0xE0, 0x6A, 
+	0x7F, 0x82, 0xFF, 0x44, 0x4A, 0x41, 0x06, 0x41, 0x41, 0xA8, 
+	0x65, 0x43, 0x84, 0x50, 0x4B, 0xD0, 0x20, 0x08, 0xA5, 0x63, 
+	0x0E, 0x8E, 0xD1, 0xE0, 0x26, 0x46, 0x43, 0x2D, 0xE5, 0xA4, 
+	0xE5, 0x57, 0xFB, 0x36, 0xDC, 0xE7, 0xC6, 0xE5, 0xE6, 0x8F, 
+	0x07, 0x0E, 0xE7, 0x3C, 0xEF, 0x7D, 0xDE, 0xE7, 0x9C, 0xF7, 
+	0x3D, 0xE7, 0xF2, 0x3F, 0xAE, 0xE0, 0x11, 0x3E, 0x61, 0x07, 
+	0x7B, 0xF8, 0x8C, 0xC7, 0x18, 0x3A, 0x42, 0xFF, 0x0F, 0x5D, 
+	0x98, 0x45, 0x0B, 0xED, 0x63, 0xC6, 0x01, 0x9E, 0xE2, 0x4C, 
+	0x3D, 0xB9, 0x81, 0x77, 0x11, 0xFD, 0xC6, 0x1C, 0x6E, 0xA2, 
+	0x1B, 0xE7, 0x30, 0x8C, 0x27, 0xF8, 0x15, 0xCD, 0x1A, 0xCE, 
+	0x56, 0x0D, 0xEE, 0xE7, 0xC3, 0xB7, 0x88, 0x8F, 0xC3, 0x10, 
+	0xB6, 0xA3, 0x9D, 0x2F, 0x83, 0xFD, 0x71, 0x6E, 0xE1, 0x3A, 
+	0x9A, 0xD8, 0xCC, 0x68, 0x46, 0x33, 0x91, 0x7E, 0x2C, 0x62, 
+	0x10, 0xBB, 0x38, 0xC4, 0x35, 0xB8, 0x1B, 0xC7, 0x17, 0x11, 
+	0x8F, 0x56, 0x6A, 0x1E, 0x4D, 0x6C, 0x31, 0xFC, 0x67, 0xF8, 
+	0xC3, 0xF0, 0x05, 0xF8, 0x18, 0x72, 0xBB, 0xD2, 0x8F, 0x19, 
+	0x4C, 0x67, 0x5D, 0x9E, 0xF2, 0x39, 0xC6, 0xC3, 0x07, 0x93, 
+	0xB3, 0x05, 0x5F, 0x43, 0x2E, 0x9E, 0x50, 0x7B, 0x1D, 0x0D, 
+	0xEC, 0xE3, 0xA0, 0x13, 0x7F, 0x6A, 0x1F, 0x9B, 0x18, 0xAB, 
+	0xEC, 0x5E, 0xE2, 0x12, 0x6E, 0x64, 0xEE, 0xCA, 0xE8, 0x80, 
+	0xF5, 0x9C, 0x60, 0x24, 0xC2, 0xCD, 0xF0, 0x99, 0xF0, 0x0B, 
+	0x58, 0x52, 0x34, 0xAD, 0x9D, 0x0D, 0xDF, 0x67, 0xFD, 0xA5, 
+	0x13, 0x1F, 0x22, 0x9C, 0xCC, 0xDC, 0xAE, 0xCD, 0x4B, 0xB8, 
+	0xA3, 0x78, 0x1F, 0x1B, 0x8A, 0x1B, 0x28, 0x9B, 0xBB, 0x06, 
+	0x7D, 0x8A, 0x6B, 0xDC, 0xCF, 0x11, 0x9B, 0x11, 0x34, 0x70, 
+	0x35, 0x46, 0x3F, 0x30, 0x90, 0xA4, 0x5E, 0xBC, 0xC5, 0x0A, 
+	0x2E, 0x97, 0xF5, 0xDD, 0x8B, 0xF0, 0xBB, 0xE2, 0x2D, 0x94, 
+	0x98, 0x4C, 0xFC, 0xB5, 0x53, 0x50, 0x7D, 0xCA, 0x2D, 0x3C, 
+	0xC3, 0x2D, 0x4C, 0x25, 0xF6, 0xF2, 0x34, 0x83, 0xD2, 0xE4, 
+	0x41, 0x4A, 0xA9, 0xFF, 0x44, 0xAF, 0x4E, 0x4A, 0x2A, 0xD1, 
+	0xC6, 0x2A, 0xDE, 0x28, 0x7A, 0xD2, 0x83, 0xF3, 0xD1, 0x6C, 
+	0x60, 0xF9, 0x28, 0x83, 0xBF, 0x72, 0x9A, 0x66, 0x32, 0x3D, 
+	0x34, 0xCD, 0x90, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, 
+	0x44, 0xAE, 0x42, 0x60, 0x82, 
+};
+
+wxBitmap& palette_png_to_wx_bitmap()
+{
+	static wxMemoryInputStream memIStream( palette_png, sizeof( palette_png ) );
+	static wxImage image( memIStream, wxBITMAP_TYPE_PNG );
+	static wxBitmap bmp( image );
+	return bmp;
+}
+
+
+#endif //PALETTE_PNG_H
diff --git a/ui/embended_files/pause.png.h b/ui/embended_files/pause.png.h
new file mode 100644
index 0000000..da3b04f
--- /dev/null
+++ b/ui/embended_files/pause.png.h
@@ -0,0 +1,46 @@
+#ifndef PAUSE_PNG_H
+#define PAUSE_PNG_H
+
+#include <wx/mstream.h>
+#include <wx/image.h>
+#include <wx/bitmap.h>
+
+static const unsigned char pause_png[] =
+{
+	0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, 
+	0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x10, 
+	0x00, 0x00, 0x00, 0x10, 0x08, 0x06, 0x00, 0x00, 0x00, 0x1F, 
+	0xF3, 0xFF, 0x61, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 
+	0x73, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x76, 0x01, 
+	0x4E, 0x7B, 0x26, 0x08, 0x00, 0x00, 0x00, 0x19, 0x74, 0x45, 
+	0x58, 0x74, 0x53, 0x6F, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 
+	0x00, 0x77, 0x77, 0x77, 0x2E, 0x69, 0x6E, 0x6B, 0x73, 0x63, 
+	0x61, 0x70, 0x65, 0x2E, 0x6F, 0x72, 0x67, 0x9B, 0xEE, 0x3C, 
+	0x1A, 0x00, 0x00, 0x00, 0x85, 0x49, 0x44, 0x41, 0x54, 0x38, 
+	0x8D, 0xED, 0xD3, 0x3D, 0x0A, 0xC2, 0x40, 0x10, 0x06, 0xD0, 
+	0x47, 0x2C, 0x94, 0x5C, 0x45, 0x1B, 0x3D, 0x9B, 0x78, 0x1F, 
+	0x6D, 0xD4, 0xA3, 0xA8, 0xA0, 0xA8, 0x27, 0x11, 0xDB, 0xF8, 
+	0x53, 0x18, 0x71, 0x1C, 0x12, 0xC1, 0x3E, 0x03, 0x0B, 0xBB, 
+	0xBC, 0x8F, 0x8F, 0x69, 0x96, 0xCF, 0x8C, 0xB0, 0xC3, 0x05, 
+	0x73, 0xF4, 0x83, 0x0D, 0xB0, 0xA8, 0x6D, 0x8B, 0xA1, 0x86, 
+	0xD9, 0xE1, 0x11, 0xCE, 0x34, 0xD8, 0x2C, 0xD9, 0xA6, 0xA9, 
+	0xA0, 0x4A, 0xA1, 0x65, 0xB0, 0x55, 0xB2, 0xEA, 0x0D, 0x45, 
+	0x08, 0xF5, 0x52, 0x61, 0x7C, 0x17, 0x6D, 0x96, 0xE1, 0xEF, 
+	0xE9, 0x0A, 0xBA, 0x82, 0x5C, 0x70, 0x4B, 0x76, 0x6F, 0xB9, 
+	0x7F, 0x65, 0x63, 0xC1, 0x39, 0x85, 0x8E, 0x3F, 0xEC, 0xD4, 
+	0xB4, 0xCD, 0x04, 0x07, 0x5C, 0xBD, 0x3E, 0x4F, 0x19, 0xAC, 
+	0xC4, 0xBA, 0xB6, 0x3D, 0xC6, 0x6F, 0x78, 0x02, 0xA6, 0x85, 
+	0x23, 0x87, 0x5F, 0x03, 0xA6, 0x1F, 0x00, 0x00, 0x00, 0x00, 
+	0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82, 
+};
+
+wxBitmap& pause_png_to_wx_bitmap()
+{
+	static wxMemoryInputStream memIStream( pause_png, sizeof( pause_png ) );
+	static wxImage image( memIStream, wxBITMAP_TYPE_PNG );
+	static wxBitmap bmp( image );
+	return bmp;
+}
+
+
+#endif //PAUSE_PNG_H
diff --git a/ui/embended_files/picture.png.h b/ui/embended_files/picture.png.h
new file mode 100644
index 0000000..261e356
--- /dev/null
+++ b/ui/embended_files/picture.png.h
@@ -0,0 +1,60 @@
+#ifndef PICTURE_PNG_H
+#define PICTURE_PNG_H
+
+#include <wx/mstream.h>
+#include <wx/image.h>
+#include <wx/bitmap.h>
+
+static const unsigned char picture_png[] =
+{
+	0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, 
+	0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x10, 
+	0x00, 0x00, 0x00, 0x10, 0x08, 0x06, 0x00, 0x00, 0x00, 0x1F, 
+	0xF3, 0xFF, 0x61, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 
+	0x73, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x76, 0x01, 
+	0x4E, 0x7B, 0x26, 0x08, 0x00, 0x00, 0x00, 0x19, 0x74, 0x45, 
+	0x58, 0x74, 0x53, 0x6F, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 
+	0x00, 0x77, 0x77, 0x77, 0x2E, 0x69, 0x6E, 0x6B, 0x73, 0x63, 
+	0x61, 0x70, 0x65, 0x2E, 0x6F, 0x72, 0x67, 0x9B, 0xEE, 0x3C, 
+	0x1A, 0x00, 0x00, 0x01, 0x13, 0x49, 0x44, 0x41, 0x54, 0x38, 
+	0x8D, 0x8D, 0xD3, 0xB1, 0x4A, 0x43, 0x41, 0x10, 0x05, 0xD0, 
+	0x63, 0xF2, 0x0A, 0xBF, 0xC5, 0x94, 0x76, 0x96, 0xF6, 0x16, 
+	0x0A, 0x41, 0x2B, 0x23, 0xB6, 0xA6, 0x30, 0x56, 0x41, 0x4B, 
+	0xC5, 0x46, 0x44, 0x14, 0x6C, 0xC4, 0x4E, 0xFF, 0xC0, 0x5A, 
+	0xB1, 0xF2, 0x07, 0x62, 0xB4, 0x11, 0xB4, 0x4B, 0x6D, 0x29, 
+	0xC4, 0x3C, 0x8B, 0x9D, 0x48, 0x12, 0x92, 0xF7, 0x72, 0x61, 
+	0xD9, 0x65, 0x76, 0xEE, 0xDD, 0x3B, 0xBB, 0x3B, 0x24, 0xEC, 
+	0xA2, 0x8B, 0x3E, 0xF2, 0x92, 0xD1, 0x8F, 0xDC, 0x1D, 0xC8, 
+	0x82, 0x7C, 0x83, 0x6B, 0x1C, 0xE3, 0x57, 0x31, 0xAA, 0x58, 
+	0xC1, 0x6D, 0x08, 0xEA, 0xE2, 0xB2, 0x84, 0xB4, 0x8E, 0x7B, 
+	0x1C, 0x61, 0x31, 0x62, 0x57, 0xE8, 0x08, 0x4B, 0x9B, 0x05, 
+	0xE4, 0x0D, 0x0C, 0xF0, 0x84, 0x6F, 0xDC, 0x45, 0x7C, 0x0B, 
+	0xFD, 0x4A, 0x58, 0x1A, 0x14, 0x08, 0xAC, 0xE1, 0x19, 0xAB, 
+	0x38, 0x0C, 0x41, 0x52, 0xA9, 0xD5, 0x4A, 0x89, 0x75, 0x78, 
+	0xC3, 0x32, 0xF6, 0xB0, 0x8D, 0xF7, 0xD1, 0xCD, 0x6C, 0x0A, 
+	0x61, 0x29, 0x4E, 0x85, 0x07, 0xA9, 0xD6, 0x1A, 0x4E, 0xF1, 
+	0x21, 0x6E, 0x7F, 0x14, 0x39, 0xEA, 0xB1, 0x6E, 0xE2, 0x07, 
+	0x9F, 0xF8, 0x8A, 0x75, 0x73, 0x86, 0xB3, 0x7A, 0x70, 0xFF, 
+	0x05, 0x5A, 0xD2, 0x5D, 0xB4, 0xB1, 0x10, 0xA3, 0x1D, 0xB1, 
+	0x83, 0x32, 0x81, 0xC7, 0x48, 0x6C, 0x4D, 0x49, 0x1C, 0x0A, 
+	0x4F, 0x8A, 0x8C, 0x09, 0xE4, 0x71, 0xDA, 0x2C, 0xEC, 0x4F, 
+	0xC9, 0x19, 0x13, 0x38, 0x29, 0x20, 0x4F, 0x3A, 0x19, 0xBA, 
+	0xAC, 0x23, 0xCF, 0xA4, 0xF7, 0xEC, 0xCC, 0x21, 0x70, 0x11, 
+	0xF3, 0x79, 0xCC, 0xBD, 0xE0, 0xEA, 0x4A, 0x4F, 0x35, 0x2F, 
+	0x86, 0x4E, 0x5E, 0xD1, 0xC9, 0x70, 0x26, 0x35, 0x06, 0xBC, 
+	0x28, 0x6F, 0xA6, 0x9E, 0xF4, 0xB9, 0x6A, 0x68, 0x0C, 0x83, 
+	0x0D, 0xA9, 0x8C, 0x79, 0xDB, 0xB9, 0x23, 0xFD, 0x4A, 0x7F, 
+	0xF5, 0xA9, 0x5F, 0x97, 0x48, 0x58, 0x95, 0x86, 0x00, 0x00, 
+	0x00, 0x00, 0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82, 
+};
+
+wxBitmap& picture_png_to_wx_bitmap()
+{
+	static wxMemoryInputStream memIStream( picture_png, sizeof( picture_png ) );
+	static wxImage image( memIStream, wxBITMAP_TYPE_PNG );
+	static wxBitmap bmp( image );
+	return bmp;
+}
+
+
+#endif //PICTURE_PNG_H
diff --git a/ui/embended_files/play.png.h b/ui/embended_files/play.png.h
new file mode 100644
index 0000000..005a056
--- /dev/null
+++ b/ui/embended_files/play.png.h
@@ -0,0 +1,48 @@
+#ifndef PLAY_PNG_H
+#define PLAY_PNG_H
+
+#include <wx/mstream.h>
+#include <wx/image.h>
+#include <wx/bitmap.h>
+
+static const unsigned char play_png[] =
+{
+	0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, 
+	0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x10, 
+	0x00, 0x00, 0x00, 0x10, 0x08, 0x06, 0x00, 0x00, 0x00, 0x1F, 
+	0xF3, 0xFF, 0x61, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 
+	0x73, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x76, 0x01, 
+	0x4E, 0x7B, 0x26, 0x08, 0x00, 0x00, 0x00, 0x19, 0x74, 0x45, 
+	0x58, 0x74, 0x53, 0x6F, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 
+	0x00, 0x77, 0x77, 0x77, 0x2E, 0x69, 0x6E, 0x6B, 0x73, 0x63, 
+	0x61, 0x70, 0x65, 0x2E, 0x6F, 0x72, 0x67, 0x9B, 0xEE, 0x3C, 
+	0x1A, 0x00, 0x00, 0x00, 0x94, 0x49, 0x44, 0x41, 0x54, 0x38, 
+	0x8D, 0xA5, 0xD3, 0xBD, 0x09, 0x02, 0x41, 0x18, 0x84, 0xE1, 
+	0x07, 0x03, 0x73, 0x33, 0x2B, 0xD1, 0x12, 0xAC, 0xE5, 0x3A, 
+	0xD0, 0x32, 0xEC, 0xC0, 0x0A, 0x6C, 0x40, 0xC4, 0x48, 0x8B, 
+	0xF0, 0x27, 0xD7, 0x58, 0x10, 0x41, 0x74, 0x8D, 0x2E, 0x50, 
+	0xEE, 0x76, 0xF7, 0x6E, 0x07, 0x26, 0x9C, 0x37, 0x98, 0x6F, 
+	0x3E, 0x7E, 0x55, 0xE1, 0x84, 0x27, 0x76, 0x98, 0xEA, 0xA0, 
+	0x0A, 0xE1, 0xCF, 0x2F, 0xCC, 0x31, 0xC8, 0x01, 0x9C, 0x1B, 
+	0x00, 0xB5, 0x37, 0x18, 0xA7, 0x00, 0xEF, 0x08, 0x20, 0xE0, 
+	0x8A, 0x59, 0x0C, 0x10, 0x0B, 0xD7, 0xFE, 0x60, 0x89, 0x61, 
+	0x5F, 0x40, 0xED, 0x3D, 0x46, 0x25, 0x80, 0x80, 0x55, 0x29, 
+	0xE0, 0x4E, 0xE6, 0x79, 0x5A, 0x14, 0x4A, 0x01, 0xEB, 0x26, 
+	0x62, 0xAE, 0x0F, 0x7A, 0x96, 0x18, 0x3D, 0x63, 0x6A, 0x48, 
+	0x37, 0x89, 0x21, 0x5D, 0x22, 0xE1, 0xAC, 0x29, 0xB7, 0x3D, 
+	0xD3, 0x42, 0x87, 0xB2, 0x2B, 0x1C, 0xF1, 0xC0, 0x16, 0x93, 
+	0x54, 0xE0, 0x0B, 0xE3, 0x18, 0x7B, 0x8D, 0xDC, 0x34, 0x3E, 
+	0xB5, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, 0x44, 0xAE, 
+	0x42, 0x60, 0x82, 
+};
+
+wxBitmap& play_png_to_wx_bitmap()
+{
+	static wxMemoryInputStream memIStream( play_png, sizeof( play_png ) );
+	static wxImage image( memIStream, wxBITMAP_TYPE_PNG );
+	static wxBitmap bmp( image );
+	return bmp;
+}
+
+
+#endif //PLAY_PNG_H
diff --git a/ui/embended_files/refresh.png.h b/ui/embended_files/refresh.png.h
new file mode 100644
index 0000000..b903bf7
--- /dev/null
+++ b/ui/embended_files/refresh.png.h
@@ -0,0 +1,61 @@
+#ifndef REFRESH_PNG_H
+#define REFRESH_PNG_H
+
+#include <wx/mstream.h>
+#include <wx/image.h>
+#include <wx/bitmap.h>
+
+static const unsigned char refresh_png[] =
+{
+	0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, 
+	0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x10, 
+	0x00, 0x00, 0x00, 0x10, 0x08, 0x06, 0x00, 0x00, 0x00, 0x1F, 
+	0xF3, 0xFF, 0x61, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 
+	0x73, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x76, 0x01, 
+	0x4E, 0x7B, 0x26, 0x08, 0x00, 0x00, 0x00, 0x19, 0x74, 0x45, 
+	0x58, 0x74, 0x53, 0x6F, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 
+	0x00, 0x77, 0x77, 0x77, 0x2E, 0x69, 0x6E, 0x6B, 0x73, 0x63, 
+	0x61, 0x70, 0x65, 0x2E, 0x6F, 0x72, 0x67, 0x9B, 0xEE, 0x3C, 
+	0x1A, 0x00, 0x00, 0x01, 0x16, 0x49, 0x44, 0x41, 0x54, 0x38, 
+	0x8D, 0x9D, 0xD3, 0xBB, 0x4A, 0x43, 0x41, 0x10, 0x06, 0xE0, 
+	0x8F, 0xE0, 0x35, 0x88, 0x22, 0x3E, 0x85, 0x78, 0x97, 0x80, 
+	0x85, 0x20, 0x36, 0x16, 0xDA, 0xA4, 0xB3, 0xB7, 0xF1, 0x39, 
+	0xF2, 0x06, 0x82, 0xC1, 0xEB, 0x9B, 0xD8, 0x44, 0xF0, 0x15, 
+	0x44, 0xB1, 0xB1, 0xD0, 0xCE, 0x36, 0x48, 0x42, 0x88, 0x31, 
+	0x16, 0x3B, 0x27, 0x1C, 0x35, 0x17, 0xC8, 0x0F, 0x87, 0xD9, 
+	0x5D, 0xE6, 0xFF, 0x77, 0xE6, 0xEC, 0x3F, 0xFC, 0xC7, 0x06, 
+	0x2E, 0xF0, 0x82, 0x36, 0x5A, 0x78, 0x46, 0x15, 0xAB, 0x7F, 
+	0x72, 0xE7, 0xF2, 0x9B, 0x22, 0x6E, 0xF1, 0x8D, 0xEE, 0x80, 
+	0xAF, 0x13, 0x42, 0x53, 0xA8, 0xA0, 0x9C, 0x91, 0x67, 0xF1, 
+	0x10, 0x49, 0x4D, 0x9C, 0xA1, 0x14, 0xA2, 0x45, 0xEC, 0x04, 
+	0xB1, 0x15, 0x39, 0xAF, 0x11, 0x7B, 0x02, 0x37, 0x71, 0xF0, 
+	0x8E, 0xB5, 0x3E, 0x6D, 0x65, 0xD8, 0x42, 0x3D, 0x57, 0x51, 
+	0x19, 0x36, 0xA3, 0xB4, 0xE6, 0x08, 0xB2, 0x28, 0x3B, 0xDF, 
+	0xD2, 0xC1, 0x04, 0x4E, 0x51, 0xC0, 0x35, 0x1E, 0x87, 0x90, 
+	0xE7, 0xF1, 0x84, 0xE3, 0xD8, 0x37, 0x70, 0x4F, 0xFA, 0xDB, 
+	0xDD, 0xE8, 0x79, 0x2C, 0x34, 0x43, 0xA0, 0x38, 0xAE, 0xC0, 
+	0x38, 0x58, 0x8C, 0x4B, 0x3F, 0x0B, 0x63, 0x0A, 0x2C, 0x47, 
+	0x7C, 0x9B, 0xC0, 0x34, 0x0E, 0x31, 0x99, 0x4B, 0xB8, 0x93, 
+	0x9E, 0x6B, 0x10, 0x4E, 0x22, 0xD6, 0xE0, 0xC8, 0xEF, 0xA7, 
+	0xA9, 0x8C, 0xB8, 0xBD, 0x24, 0x19, 0xAA, 0x83, 0x75, 0x92, 
+	0x19, 0x32, 0x72, 0x1D, 0xBB, 0x43, 0xC8, 0xDB, 0xF8, 0x88, 
+	0xDC, 0xAB, 0xEC, 0x30, 0x13, 0xC8, 0xEC, 0xD9, 0x96, 0x9C, 
+	0xB9, 0x87, 0x25, 0x2C, 0x60, 0x5F, 0x1A, 0xB0, 0xAF, 0xC8, 
+	0xA9, 0x61, 0x26, 0x2F, 0x50, 0x91, 0x06, 0xE4, 0x3C, 0x4A, 
+	0x1B, 0x36, 0x4C, 0x97, 0xD2, 0xEC, 0xF4, 0xF0, 0x6B, 0x24, 
+	0xB1, 0x12, 0x42, 0x4F, 0x92, 0x47, 0x1A, 0xB1, 0xAE, 0xEA, 
+	0x63, 0xF5, 0x1F, 0x67, 0xAD, 0x56, 0xFD, 0xBC, 0x3E, 0x67, 
+	0x79, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, 0x44, 0xAE, 
+	0x42, 0x60, 0x82, 
+};
+
+wxBitmap& refresh_png_to_wx_bitmap()
+{
+	static wxMemoryInputStream memIStream( refresh_png, sizeof( refresh_png ) );
+	static wxImage image( memIStream, wxBITMAP_TYPE_PNG );
+	static wxBitmap bmp( image );
+	return bmp;
+}
+
+
+#endif //REFRESH_PNG_H
diff --git a/ui/embended_files/replace.png.h b/ui/embended_files/replace.png.h
new file mode 100644
index 0000000..26d278c
--- /dev/null
+++ b/ui/embended_files/replace.png.h
@@ -0,0 +1,62 @@
+#ifndef REPLACE_PNG_H
+#define REPLACE_PNG_H
+
+#include <wx/mstream.h>
+#include <wx/image.h>
+#include <wx/bitmap.h>
+
+static const unsigned char replace_png[] =
+{
+	0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, 
+	0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x10, 
+	0x00, 0x00, 0x00, 0x10, 0x08, 0x06, 0x00, 0x00, 0x00, 0x1F, 
+	0xF3, 0xFF, 0x61, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 
+	0x73, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x76, 0x01, 
+	0x4E, 0x7B, 0x26, 0x08, 0x00, 0x00, 0x00, 0x19, 0x74, 0x45, 
+	0x58, 0x74, 0x53, 0x6F, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 
+	0x00, 0x77, 0x77, 0x77, 0x2E, 0x69, 0x6E, 0x6B, 0x73, 0x63, 
+	0x61, 0x70, 0x65, 0x2E, 0x6F, 0x72, 0x67, 0x9B, 0xEE, 0x3C, 
+	0x1A, 0x00, 0x00, 0x01, 0x1E, 0x49, 0x44, 0x41, 0x54, 0x38, 
+	0x8D, 0x95, 0xD2, 0xAD, 0x4E, 0x03, 0x41, 0x14, 0x86, 0xE1, 
+	0xA7, 0x2D, 0x25, 0x21, 0xA0, 0x51, 0x98, 0x0A, 0x52, 0x6C, 
+	0x1D, 0x45, 0x20, 0x08, 0x20, 0xEA, 0xF8, 0xE9, 0x15, 0x00, 
+	0xB7, 0x80, 0x22, 0x81, 0x04, 0x45, 0x02, 0xB7, 0x81, 0x41, 
+	0xC0, 0x0D, 0x10, 0x64, 0x11, 0x08, 0x1C, 0x02, 0x81, 0xA0, 
+	0x69, 0x05, 0x86, 0xDF, 0xE0, 0xBA, 0x88, 0x9D, 0x26, 0xB3, 
+	0x0B, 0x0B, 0xE5, 0x4B, 0x4E, 0xB2, 0x73, 0x66, 0xCF, 0x7B, 
+	0xBE, 0x33, 0x33, 0xD0, 0xC2, 0x23, 0x92, 0x28, 0xDE, 0x71, 
+	0x22, 0xAB, 0x3A, 0xF6, 0x73, 0x39, 0xA5, 0x50, 0x7C, 0x83, 
+	0xD3, 0x28, 0x5F, 0xC3, 0x11, 0x9A, 0xB8, 0x0E, 0xC5, 0x57, 
+	0x78, 0xC0, 0x32, 0x3E, 0x63, 0x48, 0x82, 0x76, 0x9E, 0x1C, 
+	0xE5, 0xA7, 0xD1, 0xC3, 0x33, 0xB6, 0xB0, 0x81, 0xB9, 0xFF, 
+	0x00, 0x56, 0x73, 0xE3, 0x25, 0x18, 0xE0, 0x70, 0x54, 0x40, 
+	0x05, 0xE7, 0x78, 0xC5, 0x02, 0xCA, 0xC1, 0xC9, 0x00, 0xB3, 
+	0xA3, 0x00, 0xA0, 0x1A, 0x20, 0x7D, 0x4C, 0x04, 0x68, 0x82, 
+	0xF5, 0xE1, 0x8F, 0x45, 0x11, 0x83, 0xAB, 0x68, 0xE4, 0x1B, 
+	0x94, 0x0A, 0xBA, 0x0F, 0xD5, 0x41, 0xB7, 0x60, 0xAF, 0x8D, 
+	0x4E, 0x09, 0x33, 0xD2, 0xEB, 0x3A, 0xFB, 0x05, 0x34, 0x85, 
+	0x45, 0x4C, 0x46, 0xB9, 0x6E, 0x68, 0x60, 0x33, 0xD8, 0x19, 
+	0xAA, 0x81, 0xF1, 0x5C, 0xF1, 0x9D, 0x9F, 0x47, 0x3C, 0x86, 
+	0xB5, 0xB0, 0xA8, 0x48, 0x0F, 0xA8, 0x8F, 0x8B, 0x08, 0xD2, 
+	0x0A, 0xFB, 0xB5, 0x9C, 0xAB, 0x5D, 0xBC, 0x91, 0x5E, 0xC5, 
+	0x00, 0x3B, 0x01, 0xD2, 0xC4, 0x4B, 0x80, 0x54, 0xC2, 0xAC, 
+	0x89, 0xEF, 0xCA, 0xE4, 0x0F, 0x02, 0x24, 0x6F, 0x71, 0xE5, 
+	0x2F, 0x40, 0x39, 0x02, 0xD4, 0xA5, 0xCF, 0x74, 0x3B, 0x38, 
+	0xE8, 0xE1, 0xF6, 0x87, 0xC2, 0x8C, 0xC6, 0xA2, 0xEF, 0x7B, 
+	0xE9, 0xC9, 0x5E, 0xE2, 0x03, 0x4B, 0x78, 0xCA, 0x75, 0x8C, 
+	0x35, 0x5F, 0x04, 0xDD, 0x0B, 0x6E, 0x32, 0x56, 0x8B, 0xE2, 
+	0x0B, 0x5B, 0x74, 0x63, 0x32, 0xCA, 0x62, 0x48, 0x86, 0x00, 
+	0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 
+	0x82, 
+};
+
+wxBitmap& replace_png_to_wx_bitmap()
+{
+	static wxMemoryInputStream memIStream( replace_png, sizeof( replace_png ) );
+	static wxImage image( memIStream, wxBITMAP_TYPE_PNG );
+	static wxBitmap bmp( image );
+	return bmp;
+}
+
+
+#endif //REPLACE_PNG_H
diff --git a/ui/embended_files/rotate-right.png.h b/ui/embended_files/rotate-right.png.h
new file mode 100644
index 0000000..71bb184
--- /dev/null
+++ b/ui/embended_files/rotate-right.png.h
@@ -0,0 +1,60 @@
+#ifndef ROTATE-RIGHT_PNG_H
+#define ROTATE-RIGHT_PNG_H
+
+#include <wx/mstream.h>
+#include <wx/image.h>
+#include <wx/bitmap.h>
+
+static const unsigned char rotate-right_png[] =
+{
+	0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, 
+	0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x10, 
+	0x00, 0x00, 0x00, 0x10, 0x08, 0x06, 0x00, 0x00, 0x00, 0x1F, 
+	0xF3, 0xFF, 0x61, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 
+	0x73, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x76, 0x01, 
+	0x4E, 0x7B, 0x26, 0x08, 0x00, 0x00, 0x00, 0x19, 0x74, 0x45, 
+	0x58, 0x74, 0x53, 0x6F, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 
+	0x00, 0x77, 0x77, 0x77, 0x2E, 0x69, 0x6E, 0x6B, 0x73, 0x63, 
+	0x61, 0x70, 0x65, 0x2E, 0x6F, 0x72, 0x67, 0x9B, 0xEE, 0x3C, 
+	0x1A, 0x00, 0x00, 0x01, 0x0A, 0x49, 0x44, 0x41, 0x54, 0x38, 
+	0x8D, 0xA5, 0xD3, 0xCF, 0x2A, 0x84, 0x51, 0x1C, 0xC6, 0xF1, 
+	0xCF, 0x4C, 0x26, 0x73, 0x19, 0x48, 0xF1, 0xFA, 0x93, 0xB2, 
+	0xB5, 0x91, 0x85, 0x8D, 0x14, 0x89, 0x28, 0xB7, 0xC0, 0x0D, 
+	0x58, 0xD8, 0x09, 0x0B, 0x22, 0x57, 0x61, 0xA1, 0x2C, 0x49, 
+	0x73, 0x03, 0x22, 0x44, 0xC9, 0x46, 0x56, 0x6C, 0xFC, 0x5D, 
+	0x90, 0x32, 0xB1, 0x78, 0xCF, 0xAB, 0xB7, 0x77, 0xC6, 0x34, 
+	0x33, 0x9E, 0x3A, 0x9D, 0x7A, 0xCE, 0xF9, 0x3E, 0xBF, 0xDF, 
+	0xA9, 0xF3, 0xA3, 0x52, 0x11, 0x36, 0x71, 0x86, 0x27, 0xBC, 
+	0xE0, 0x3C, 0x78, 0x3D, 0xE1, 0xCE, 0x5A, 0x58, 0x5A, 0x52, 
+	0x60, 0x21, 0x98, 0x0B, 0xB8, 0xC6, 0x7E, 0xD8, 0x73, 0x21, 
+	0x74, 0x12, 0x8B, 0xD8, 0x41, 0x1B, 0x3E, 0x65, 0xE0, 0x03, 
+	0x3C, 0x62, 0x26, 0x40, 0x59, 0xE5, 0x30, 0x8F, 0x57, 0x7C, 
+	0x63, 0x37, 0xDD, 0xC1, 0x3A, 0x06, 0x31, 0x14, 0xAA, 0x56, 
+	0xD3, 0x2A, 0xDA, 0x71, 0x8B, 0x01, 0x7C, 0x24, 0x01, 0x51, 
+	0x68, 0x7B, 0xAA, 0x06, 0x9C, 0xD6, 0x0D, 0x2E, 0xB0, 0x92, 
+	0x18, 0x1B, 0x38, 0xA9, 0x03, 0xAC, 0xAA, 0x3C, 0x46, 0xB0, 
+	0xF7, 0x9F, 0x80, 0x0E, 0xF5, 0xB5, 0xFE, 0x67, 0x40, 0xB3, 
+	0x1A, 0xC5, 0x69, 0x1E, 0x77, 0xE8, 0x6A, 0x22, 0x60, 0x18, 
+	0x85, 0x3C, 0x8E, 0x30, 0xD1, 0x20, 0x9C, 0x0B, 0x4C, 0x09, 
+	0xBA, 0xF1, 0x85, 0xB1, 0x06, 0x02, 0xE6, 0x02, 0xD3, 0x9F, 
+	0x18, 0x5B, 0xB8, 0x47, 0x67, 0x1D, 0x70, 0x2F, 0x9E, 0xC5, 
+	0x5F, 0xFA, 0x57, 0x45, 0x1C, 0xE2, 0x01, 0xE3, 0x35, 0xE0, 
+	0x69, 0xF1, 0x80, 0x95, 0xD0, 0x9A, 0x3D, 0x2C, 0x62, 0x1B, 
+	0x65, 0x1C, 0x63, 0x09, 0xB3, 0xE2, 0xD9, 0x58, 0x16, 0x4F, 
+	0x64, 0x39, 0x54, 0xAE, 0x80, 0xD3, 0x8A, 0xC4, 0x4F, 0xBA, 
+	0xC4, 0x3B, 0xDE, 0x70, 0x15, 0xC2, 0xFB, 0xB2, 0x97, 0x7F, 
+	0x00, 0x47, 0x97, 0x36, 0xEB, 0xDA, 0xB5, 0x81, 0xFA, 0x00, 
+	0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 
+	0x82, 
+};
+
+wxBitmap& rotate-right_png_to_wx_bitmap()
+{
+	static wxMemoryInputStream memIStream( rotate-right_png, sizeof( rotate-right_png ) );
+	static wxImage image( memIStream, wxBITMAP_TYPE_PNG );
+	static wxBitmap bmp( image );
+	return bmp;
+}
+
+
+#endif //ROTATE-RIGHT_PNG_H
diff --git a/ui/embended_files/rotate_right.png.h b/ui/embended_files/rotate_right.png.h
new file mode 100644
index 0000000..445e022
--- /dev/null
+++ b/ui/embended_files/rotate_right.png.h
@@ -0,0 +1,60 @@
+#ifndef ROTATE_RIGHT_PNG_H
+#define ROTATE_RIGHT_PNG_H
+
+#include <wx/mstream.h>
+#include <wx/image.h>
+#include <wx/bitmap.h>
+
+static const unsigned char rotate_right_png[] =
+{
+	0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, 
+	0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x10, 
+	0x00, 0x00, 0x00, 0x10, 0x08, 0x06, 0x00, 0x00, 0x00, 0x1F, 
+	0xF3, 0xFF, 0x61, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 
+	0x73, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x76, 0x01, 
+	0x4E, 0x7B, 0x26, 0x08, 0x00, 0x00, 0x00, 0x19, 0x74, 0x45, 
+	0x58, 0x74, 0x53, 0x6F, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 
+	0x00, 0x77, 0x77, 0x77, 0x2E, 0x69, 0x6E, 0x6B, 0x73, 0x63, 
+	0x61, 0x70, 0x65, 0x2E, 0x6F, 0x72, 0x67, 0x9B, 0xEE, 0x3C, 
+	0x1A, 0x00, 0x00, 0x01, 0x0A, 0x49, 0x44, 0x41, 0x54, 0x38, 
+	0x8D, 0xA5, 0xD3, 0xCF, 0x2A, 0x84, 0x51, 0x1C, 0xC6, 0xF1, 
+	0xCF, 0x4C, 0x26, 0x73, 0x19, 0x48, 0xF1, 0xFA, 0x93, 0xB2, 
+	0xB5, 0x91, 0x85, 0x8D, 0x14, 0x89, 0x28, 0xB7, 0xC0, 0x0D, 
+	0x58, 0xD8, 0x09, 0x0B, 0x22, 0x57, 0x61, 0xA1, 0x2C, 0x49, 
+	0x73, 0x03, 0x22, 0x44, 0xC9, 0x46, 0x56, 0x6C, 0xFC, 0x5D, 
+	0x90, 0x32, 0xB1, 0x78, 0xCF, 0xAB, 0xB7, 0x77, 0xC6, 0x34, 
+	0x33, 0x9E, 0x3A, 0x9D, 0x7A, 0xCE, 0xF9, 0x3E, 0xBF, 0xDF, 
+	0xA9, 0xF3, 0xA3, 0x52, 0x11, 0x36, 0x71, 0x86, 0x27, 0xBC, 
+	0xE0, 0x3C, 0x78, 0x3D, 0xE1, 0xCE, 0x5A, 0x58, 0x5A, 0x52, 
+	0x60, 0x21, 0x98, 0x0B, 0xB8, 0xC6, 0x7E, 0xD8, 0x73, 0x21, 
+	0x74, 0x12, 0x8B, 0xD8, 0x41, 0x1B, 0x3E, 0x65, 0xE0, 0x03, 
+	0x3C, 0x62, 0x26, 0x40, 0x59, 0xE5, 0x30, 0x8F, 0x57, 0x7C, 
+	0x63, 0x37, 0xDD, 0xC1, 0x3A, 0x06, 0x31, 0x14, 0xAA, 0x56, 
+	0xD3, 0x2A, 0xDA, 0x71, 0x8B, 0x01, 0x7C, 0x24, 0x01, 0x51, 
+	0x68, 0x7B, 0xAA, 0x06, 0x9C, 0xD6, 0x0D, 0x2E, 0xB0, 0x92, 
+	0x18, 0x1B, 0x38, 0xA9, 0x03, 0xAC, 0xAA, 0x3C, 0x46, 0xB0, 
+	0xF7, 0x9F, 0x80, 0x0E, 0xF5, 0xB5, 0xFE, 0x67, 0x40, 0xB3, 
+	0x1A, 0xC5, 0x69, 0x1E, 0x77, 0xE8, 0x6A, 0x22, 0x60, 0x18, 
+	0x85, 0x3C, 0x8E, 0x30, 0xD1, 0x20, 0x9C, 0x0B, 0x4C, 0x09, 
+	0xBA, 0xF1, 0x85, 0xB1, 0x06, 0x02, 0xE6, 0x02, 0xD3, 0x9F, 
+	0x18, 0x5B, 0xB8, 0x47, 0x67, 0x1D, 0x70, 0x2F, 0x9E, 0xC5, 
+	0x5F, 0xFA, 0x57, 0x45, 0x1C, 0xE2, 0x01, 0xE3, 0x35, 0xE0, 
+	0x69, 0xF1, 0x80, 0x95, 0xD0, 0x9A, 0x3D, 0x2C, 0x62, 0x1B, 
+	0x65, 0x1C, 0x63, 0x09, 0xB3, 0xE2, 0xD9, 0x58, 0x16, 0x4F, 
+	0x64, 0x39, 0x54, 0xAE, 0x80, 0xD3, 0x8A, 0xC4, 0x4F, 0xBA, 
+	0xC4, 0x3B, 0xDE, 0x70, 0x15, 0xC2, 0xFB, 0xB2, 0x97, 0x7F, 
+	0x00, 0x47, 0x97, 0x36, 0xEB, 0xDA, 0xB5, 0x81, 0xFA, 0x00, 
+	0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 
+	0x82, 
+};
+
+wxBitmap& rotate_right_png_to_wx_bitmap()
+{
+	static wxMemoryInputStream memIStream( rotate_right_png, sizeof( rotate_right_png ) );
+	static wxImage image( memIStream, wxBITMAP_TYPE_PNG );
+	static wxBitmap bmp( image );
+	return bmp;
+}
+
+
+#endif //ROTATE_RIGHT_PNG_H
diff --git a/ui/embended_files/settings.png.h b/ui/embended_files/settings.png.h
new file mode 100644
index 0000000..ffe2341
--- /dev/null
+++ b/ui/embended_files/settings.png.h
@@ -0,0 +1,62 @@
+#ifndef SETTINGS_PNG_H
+#define SETTINGS_PNG_H
+
+#include <wx/mstream.h>
+#include <wx/image.h>
+#include <wx/bitmap.h>
+
+static const unsigned char settings_png[] =
+{
+	0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, 
+	0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x10, 
+	0x00, 0x00, 0x00, 0x10, 0x08, 0x06, 0x00, 0x00, 0x00, 0x1F, 
+	0xF3, 0xFF, 0x61, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 
+	0x73, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x76, 0x01, 
+	0x4E, 0x7B, 0x26, 0x08, 0x00, 0x00, 0x00, 0x19, 0x74, 0x45, 
+	0x58, 0x74, 0x53, 0x6F, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 
+	0x00, 0x77, 0x77, 0x77, 0x2E, 0x69, 0x6E, 0x6B, 0x73, 0x63, 
+	0x61, 0x70, 0x65, 0x2E, 0x6F, 0x72, 0x67, 0x9B, 0xEE, 0x3C, 
+	0x1A, 0x00, 0x00, 0x01, 0x24, 0x49, 0x44, 0x41, 0x54, 0x38, 
+	0x8D, 0x85, 0xD3, 0xBB, 0x2E, 0x44, 0x61, 0x14, 0x05, 0xE0, 
+	0x6F, 0x06, 0x41, 0xE7, 0x01, 0x28, 0x48, 0x68, 0x54, 0x74, 
+	0x1E, 0xC4, 0x2B, 0x30, 0x6E, 0x8D, 0x56, 0xA9, 0x17, 0x0D, 
+	0x71, 0x49, 0x46, 0x46, 0x3C, 0x83, 0x67, 0x50, 0x8E, 0xA1, 
+	0xF7, 0x10, 0x6E, 0x89, 0x88, 0x51, 0x9C, 0x35, 0xE3, 0x0C, 
+	0x67, 0xC6, 0x4E, 0x76, 0xF2, 0x9F, 0xB5, 0xD7, 0xDA, 0xE7, 
+	0xDF, 0x97, 0xBF, 0x66, 0xB8, 0x75, 0x7F, 0x7D, 0xD7, 0xAA, 
+	0x48, 0xF5, 0x11, 0x09, 0xE0, 0x28, 0x3E, 0xD4, 0x7A, 0x09, 
+	0x66, 0x71, 0x80, 0x69, 0x4C, 0x62, 0x2F, 0xF8, 0x5D, 0x5C, 
+	0xB0, 0xC9, 0x70, 0x0E, 0xA2, 0xE9, 0xDB, 0x4D, 0xAE, 0xFC, 
+	0x84, 0x07, 0xBC, 0xA2, 0x89, 0xF9, 0xF8, 0x55, 0xB0, 0x4E, 
+	0x38, 0xDD, 0x68, 0xC0, 0x1A, 0xBE, 0xB0, 0x8D, 0x6B, 0x3C, 
+	0x62, 0xB1, 0xE2, 0xB6, 0x8B, 0x89, 0xB5, 0xB0, 0x15, 0xCD, 
+	0x1A, 0xDC, 0xE2, 0x13, 0x0D, 0x8C, 0xC5, 0x61, 0x05, 0x17, 
+	0x38, 0xCB, 0x59, 0x29, 0xDE, 0x88, 0xE6, 0x16, 0x66, 0x14, 
+	0x8D, 0xFA, 0xC4, 0x61, 0x49, 0xFC, 0x9E, 0x72, 0xDA, 0x39, 
+	0xAF, 0x26, 0x76, 0x18, 0xEE, 0x51, 0xB4, 0x7D, 0x7B, 0xC1, 
+	0x46, 0xCE, 0x67, 0xB9, 0xEE, 0xB8, 0xA2, 0xD1, 0x6D, 0x9C, 
+	0x26, 0xB6, 0x89, 0xE7, 0x9E, 0x68, 0xD4, 0x18, 0x6B, 0xA9, 
+	0xB3, 0x8E, 0x09, 0x7C, 0x54, 0x91, 0xEA, 0xA5, 0x12, 0xA6, 
+	0x30, 0x17, 0xFC, 0x1C, 0x0B, 0x29, 0xE1, 0x5E, 0x31, 0x89, 
+	0xCB, 0xC4, 0x66, 0x15, 0xA3, 0xEC, 0x97, 0x30, 0xAA, 0x89, 
+	0x27, 0x38, 0xC6, 0x72, 0xB0, 0x5E, 0x7C, 0x53, 0xA9, 0x89, 
+	0xE5, 0x31, 0xB6, 0xF2, 0xD7, 0xAA, 0x31, 0x2E, 0x29, 0xFA, 
+	0x72, 0x8D, 0x1D, 0xA5, 0x31, 0x32, 0xB8, 0x48, 0x1D, 0xBC, 
+	0x19, 0x5C, 0xA4, 0x66, 0xB0, 0xCA, 0x45, 0xEA, 0xD5, 0x55, 
+	0x5E, 0xE5, 0xDD, 0x90, 0xD6, 0xE3, 0xDD, 0x60, 0x7F, 0x56, 
+	0xB9, 0xF2, 0x85, 0xC5, 0xBA, 0x7E, 0x1E, 0xD2, 0xFE, 0x30, 
+	0xEE, 0x7F, 0x09, 0xFE, 0xE5, 0x7E, 0x03, 0x52, 0x38, 0x4E, 
+	0xAF, 0x8A, 0x7A, 0x49, 0x82, 0x00, 0x00, 0x00, 0x00, 0x49, 
+	0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82, 
+};
+
+wxBitmap& settings_png_to_wx_bitmap()
+{
+	static wxMemoryInputStream memIStream( settings_png, sizeof( settings_png ) );
+	static wxImage image( memIStream, wxBITMAP_TYPE_PNG );
+	static wxBitmap bmp( image );
+	return bmp;
+}
+
+
+#endif //SETTINGS_PNG_H
diff --git a/ui/embended_files/text_box_dots.png.h b/ui/embended_files/text_box_dots.png.h
new file mode 100644
index 0000000..3964268
--- /dev/null
+++ b/ui/embended_files/text_box_dots.png.h
@@ -0,0 +1,55 @@
+#ifndef TEXT_BOX_DOTS_PNG_H
+#define TEXT_BOX_DOTS_PNG_H
+
+#include <wx/mstream.h>
+#include <wx/image.h>
+#include <wx/bitmap.h>
+
+static const unsigned char text_box_dots_png[] =
+{
+	0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, 
+	0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x10, 
+	0x00, 0x00, 0x00, 0x10, 0x08, 0x06, 0x00, 0x00, 0x00, 0x1F, 
+	0xF3, 0xFF, 0x61, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 
+	0x73, 0x00, 0x00, 0x09, 0xD7, 0x00, 0x00, 0x09, 0xD7, 0x01, 
+	0xB1, 0x6E, 0x17, 0xB7, 0x00, 0x00, 0x00, 0x19, 0x74, 0x45, 
+	0x58, 0x74, 0x53, 0x6F, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 
+	0x00, 0x77, 0x77, 0x77, 0x2E, 0x69, 0x6E, 0x6B, 0x73, 0x63, 
+	0x61, 0x70, 0x65, 0x2E, 0x6F, 0x72, 0x67, 0x9B, 0xEE, 0x3C, 
+	0x1A, 0x00, 0x00, 0x00, 0xDC, 0x49, 0x44, 0x41, 0x54, 0x38, 
+	0x8D, 0xCD, 0xD2, 0x31, 0x4A, 0x03, 0x61, 0x10, 0x05, 0xE0, 
+	0x6F, 0x93, 0x60, 0x4A, 0x3D, 0x86, 0xF6, 0x56, 0x6A, 0x65, 
+	0xE5, 0x09, 0x8C, 0x95, 0x88, 0x8D, 0xD8, 0x46, 0xB0, 0xB0, 
+	0xF5, 0x06, 0x11, 0x45, 0x24, 0x47, 0xB1, 0x0C, 0x56, 0x16, 
+	0x82, 0x11, 0xBC, 0x80, 0x87, 0x50, 0x76, 0x8D, 0xC5, 0x4C, 
+	0x60, 0x11, 0xDC, 0xDD, 0x2A, 0xF8, 0x60, 0x9A, 0xFF, 0x7F, 
+	0xFF, 0x9B, 0xF7, 0xBF, 0x19, 0xFE, 0x0B, 0x4E, 0xF1, 0x86, 
+	0x12, 0x8B, 0x96, 0x2A, 0x93, 0x7B, 0x02, 0x83, 0x7C, 0xFC, 
+	0x80, 0x5B, 0x5C, 0xA3, 0x6A, 0x69, 0xD6, 0xC7, 0x0E, 0xA6, 
+	0x50, 0xA4, 0xDA, 0x23, 0x2E, 0x71, 0x80, 0xB5, 0x1A, 0xF9, 
+	0x03, 0x4F, 0x7F, 0x08, 0x4D, 0xB0, 0x2F, 0x2D, 0x8D, 0xB0, 
+	0x8D, 0xCF, 0x5F, 0x76, 0xDF, 0x1B, 0x9C, 0x1C, 0xA1, 0xEC, 
+	0xA5, 0xA5, 0x6F, 0x3C, 0x63, 0x88, 0xC3, 0x24, 0x14, 0xD8, 
+	0x6C, 0x10, 0xA8, 0xD0, 0xEF, 0x35, 0x10, 0x3A, 0x61, 0x25, 
+	0x02, 0x17, 0x18, 0x63, 0x03, 0xF7, 0xD8, 0xAB, 0x5F, 0x0E, 
+	0xC4, 0x5F, 0xEA, 0x42, 0x5F, 0x59, 0x4B, 0x5C, 0x89, 0x8C, 
+	0x5E, 0x70, 0x26, 0xC2, 0x9D, 0x89, 0xEC, 0x2A, 0x62, 0x8C, 
+	0x93, 0xDA, 0x83, 0xA1, 0x98, 0xC8, 0x12, 0x5B, 0x22, 0xCC, 
+	0x42, 0x8C, 0x6D, 0x3D, 0xCF, 0x6F, 0xF0, 0x5A, 0x88, 0x8D, 
+	0x9A, 0xE2, 0x4E, 0xCC, 0xBC, 0xCB, 0x22, 0xED, 0xE2, 0x5C, 
+	0x2C, 0x21, 0x29, 0x32, 0xD7, 0x7D, 0x95, 0xE7, 0x38, 0x6E, 
+	0x69, 0xB4, 0x22, 0xFC, 0x00, 0x4C, 0x1D, 0x3E, 0xB6, 0x99, 
+	0xDB, 0xC3, 0xCE, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, 
+	0x44, 0xAE, 0x42, 0x60, 0x82, 
+};
+
+wxBitmap& text_box_dots_png_to_wx_bitmap()
+{
+	static wxMemoryInputStream memIStream( text_box_dots_png, sizeof( text_box_dots_png ) );
+	static wxImage image( memIStream, wxBITMAP_TYPE_PNG );
+	static wxBitmap bmp( image );
+	return bmp;
+}
+
+
+#endif //TEXT_BOX_DOTS_PNG_H
diff --git a/ui/embended_files/trash.png.h b/ui/embended_files/trash.png.h
new file mode 100644
index 0000000..2c7b01f
--- /dev/null
+++ b/ui/embended_files/trash.png.h
@@ -0,0 +1,49 @@
+#ifndef TRASH_PNG_H
+#define TRASH_PNG_H
+
+#include <wx/mstream.h>
+#include <wx/image.h>
+#include <wx/bitmap.h>
+
+static const unsigned char trash_png[] =
+{
+	0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, 
+	0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x10, 
+	0x00, 0x00, 0x00, 0x10, 0x08, 0x06, 0x00, 0x00, 0x00, 0x1F, 
+	0xF3, 0xFF, 0x61, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 
+	0x73, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x76, 0x01, 
+	0x4E, 0x7B, 0x26, 0x08, 0x00, 0x00, 0x00, 0x19, 0x74, 0x45, 
+	0x58, 0x74, 0x53, 0x6F, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 
+	0x00, 0x77, 0x77, 0x77, 0x2E, 0x69, 0x6E, 0x6B, 0x73, 0x63, 
+	0x61, 0x70, 0x65, 0x2E, 0x6F, 0x72, 0x67, 0x9B, 0xEE, 0x3C, 
+	0x1A, 0x00, 0x00, 0x00, 0x9C, 0x49, 0x44, 0x41, 0x54, 0x38, 
+	0x8D, 0xB5, 0x92, 0xD1, 0x0D, 0x82, 0x30, 0x14, 0x45, 0x4F, 
+	0x94, 0x19, 0xF8, 0xF2, 0xDF, 0x15, 0x20, 0xBA, 0x46, 0x59, 
+	0x8A, 0xB8, 0x48, 0x49, 0x58, 0x03, 0x46, 0xE0, 0x5B, 0xD9, 
+	0x80, 0x01, 0xF4, 0xC3, 0xD7, 0x04, 0x1E, 0xAD, 0xB4, 0xA2, 
+	0x37, 0xB9, 0xC9, 0x4D, 0x5F, 0xEE, 0x49, 0xD3, 0x3E, 0x58, 
+	0x2B, 0x07, 0x06, 0xE0, 0xA9, 0x3C, 0xC8, 0x6C, 0xA1, 0xCC, 
+	0x03, 0xB8, 0x02, 0x67, 0xA0, 0x52, 0xE7, 0x56, 0x66, 0xAD, 
+	0x0F, 0x50, 0x02, 0x27, 0xC9, 0x85, 0x07, 0xEA, 0x74, 0x01, 
+	0x8E, 0x92, 0x47, 0xA0, 0x9B, 0xD3, 0xF5, 0x95, 0xB7, 0x6C, 
+	0x35, 0xDD, 0x24, 0x94, 0x8D, 0x2B, 0x1D, 0x3E, 0x5C, 0x37, 
+	0x4A, 0x7F, 0x05, 0x54, 0x40, 0x2F, 0xD6, 0x3F, 0x12, 0x05, 
+	0x68, 0x80, 0x87, 0xB8, 0xF9, 0x06, 0x10, 0xA5, 0xDD, 0x00, 
+	0xDF, 0x26, 0x3A, 0x59, 0xDE, 0x0B, 0xE6, 0x72, 0x32, 0xC0, 
+	0x04, 0xF2, 0x42, 0x3F, 0x7D, 0x83, 0x31, 0xA1, 0x77, 0x0F, 
+	0x0D, 0x6E, 0xC0, 0x44, 0x78, 0x85, 0x27, 0xA0, 0x9E, 0x17, 
+	0x5E, 0xCA, 0x35, 0x34, 0xF1, 0xE4, 0xE2, 0xA1, 0x16, 0x00, 
+	0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 
+	0x82, 
+};
+
+wxBitmap& trash_png_to_wx_bitmap()
+{
+	static wxMemoryInputStream memIStream( trash_png, sizeof( trash_png ) );
+	static wxImage image( memIStream, wxBITMAP_TYPE_PNG );
+	static wxBitmap bmp( image );
+	return bmp;
+}
+
+
+#endif //TRASH_PNG_H
diff --git a/ui/icons/16/cross_circle.png b/ui/icons/16/cross_circle.png
new file mode 100644
index 0000000..aa05a65
--- /dev/null
+++ b/ui/icons/16/cross_circle.png
Binary files differ
diff --git a/ui/icons/16/cube.png b/ui/icons/16/cube.png
new file mode 100644
index 0000000..39f3037
--- /dev/null
+++ b/ui/icons/16/cube.png
Binary files differ
diff --git a/ui/icons/16/disk.png b/ui/icons/16/disk.png
new file mode 100644
index 0000000..3d9afb1
--- /dev/null
+++ b/ui/icons/16/disk.png
Binary files differ
diff --git a/ui/icons/16/file_import.png b/ui/icons/16/file_import.png
new file mode 100644
index 0000000..7e87159
--- /dev/null
+++ b/ui/icons/16/file_import.png
Binary files differ
diff --git a/ui/icons/16/forward.png b/ui/icons/16/forward.png
new file mode 100644
index 0000000..43dc718
--- /dev/null
+++ b/ui/icons/16/forward.png
Binary files differ
diff --git a/ui/icons/16/images.png b/ui/icons/16/images.png
new file mode 100644
index 0000000..24f6c0e
--- /dev/null
+++ b/ui/icons/16/images.png
Binary files differ
diff --git a/ui/icons/16/palette.png b/ui/icons/16/palette.png
new file mode 100644
index 0000000..637029b
--- /dev/null
+++ b/ui/icons/16/palette.png
Binary files differ
diff --git a/ui/icons/16/pause.png b/ui/icons/16/pause.png
new file mode 100644
index 0000000..8da828c
--- /dev/null
+++ b/ui/icons/16/pause.png
Binary files differ
diff --git a/ui/icons/16/picture.png b/ui/icons/16/picture.png
new file mode 100644
index 0000000..00c4d82
--- /dev/null
+++ b/ui/icons/16/picture.png
Binary files differ
diff --git a/ui/icons/16/play.png b/ui/icons/16/play.png
new file mode 100644
index 0000000..25ad68a
--- /dev/null
+++ b/ui/icons/16/play.png
Binary files differ
diff --git a/ui/icons/16/refresh.png b/ui/icons/16/refresh.png
new file mode 100644
index 0000000..b132117
--- /dev/null
+++ b/ui/icons/16/refresh.png
Binary files differ
diff --git a/ui/icons/16/replace.png b/ui/icons/16/replace.png
new file mode 100644
index 0000000..e5d062a
--- /dev/null
+++ b/ui/icons/16/replace.png
Binary files differ
diff --git a/ui/icons/16/rewind.png b/ui/icons/16/rewind.png
new file mode 100644
index 0000000..51a23cb
--- /dev/null
+++ b/ui/icons/16/rewind.png
Binary files differ
diff --git a/ui/icons/16/rotate_right.png b/ui/icons/16/rotate_right.png
new file mode 100644
index 0000000..c323c1b
--- /dev/null
+++ b/ui/icons/16/rotate_right.png
Binary files differ
diff --git a/ui/icons/16/settings.png b/ui/icons/16/settings.png
new file mode 100644
index 0000000..abdc42a
--- /dev/null
+++ b/ui/icons/16/settings.png
Binary files differ
diff --git a/ui/icons/16/text_box_dots.png b/ui/icons/16/text_box_dots.png
new file mode 100644
index 0000000..ee66c97
--- /dev/null
+++ b/ui/icons/16/text_box_dots.png
Binary files differ
diff --git a/ui/icons/16/trash.png b/ui/icons/16/trash.png
new file mode 100644
index 0000000..431d747
--- /dev/null
+++ b/ui/icons/16/trash.png
Binary files differ
diff --git a/ui/utils.hpp b/ui/utils.hpp
new file mode 100644
index 0000000..f0b351b
--- /dev/null
+++ b/ui/utils.hpp
@@ -0,0 +1,383 @@
+#ifndef __MAINFRAME_HPP__UTILS
+#define __MAINFRAME_HPP__UTILS
+#include <string>
+#include <filesystem>
+#include <iostream>
+#include <opencv2/opencv.hpp>
+#include <stable-diffusion.h>
+
+#include <nlohmann/json.hpp>
+
+namespace sd_gui_utils
+{
+
+    enum THREAD_STATUS_MESSAGES
+    {
+        MESSAGE,
+        MODEL_LOAD_START,
+        MODEL_LOAD_DONE,
+        MODEL_LOAD_ERROR,
+        GENERATION_START,
+        GENERATION_PROGRESS,
+        GENERATION_DONE,
+        GENERATION_ERROR
+    };
+    struct cout_redirect
+    {
+        cout_redirect(std::streambuf *new_buffer)
+            : old(std::cout.rdbuf(new_buffer))
+        {
+        }
+
+        ~cout_redirect()
+        {
+            std::cout.rdbuf(old);
+        }
+
+    private:
+        std::streambuf *old;
+    };
+    struct config
+    {
+        std::string model = "";
+        std::string vae = "";
+        std::string lora = "";
+        std::string embedding = "";
+        std::string presets = "";
+        std::string output = "";
+        std::string jobs = "";
+        bool keep_model_in_memory = true;
+        bool save_all_image = true;
+    };
+
+    enum DirTypes
+    {
+        LORA,
+        CHECKPOINT,
+        VAE,
+        PRESETS,
+        PROMPTS,
+        NEG_PROMPTS
+    };
+    struct generator_preset
+    {
+        double cfg;
+        int seed;
+        int clip_skip;
+        int steps;
+        int width, height;
+        sample_method_t sampler;
+        std::string name;
+        std::string mode; // modes_str
+        int batch;
+        std::string path;
+    };
+
+    inline void to_json(nlohmann::json &j, const generator_preset &p)
+    {
+        j = nlohmann::json{
+            {"cfg", p.cfg},
+            {"seed", p.seed},
+            {"clip_skip", p.clip_skip},
+            {"steps", p.steps},
+            {"width", p.width},
+            {"height", p.height},
+            {"name", p.name},
+            {"mode", p.mode},
+            {"sampler", (int)p.sampler},
+            {"batch", p.batch},
+        };
+    }
+
+    inline void from_json(const nlohmann::json &j, generator_preset &p)
+    {
+        j.at("cfg").get_to(p.cfg);
+        j.at("seed").get_to(p.seed);
+        j.at("clip_skip").get_to(p.clip_skip);
+        j.at("steps").get_to(p.steps);
+        j.at("width").get_to(p.width);
+        j.at("height").get_to(p.height);
+        j.at("name").get_to(p.name);
+        j.at("mode").get_to(p.mode);
+        j.at("batch").get_to(p.batch);
+        p.sampler = j.at("sampler").get<sample_method_t>();
+    }
+
+    inline int GetCurrentUnixTimestamp()
+    {
+        const auto p1 = std::chrono::system_clock::now();
+        return static_cast<int>(std::chrono::duration_cast<std::chrono::seconds>(p1.time_since_epoch()).count());
+    }
+    inline bool replace(std::string &str, const std::string &from, const std::string &to)
+    {
+        size_t start_pos = str.find(from);
+        if (start_pos == std::string::npos)
+            return false;
+        str.replace(start_pos, from.length(), to);
+        return true;
+    }
+    inline std::string normalizePath(const std::string &messyPath)
+    {
+        std::filesystem::path path(messyPath);
+        std::filesystem::path canonicalPath = std::filesystem::weakly_canonical(path);
+        std::string npath = canonicalPath.make_preferred().string();
+
+        char toReplace = '\\';
+        char replacement = '/';
+
+        std::replace(npath.begin(), npath.end(), toReplace, replacement);
+        return npath;
+    }
+    // sd c++
+    inline const char *sample_method_str[] = {
+        "euler_a",
+        "euler",
+        "heun",
+        "dpm2",
+        "dpm++2s_a",
+        "dpm++2m",
+        "dpm++2mv2",
+        "lcm",
+    };
+    inline const char *schedule_str[] = {
+        "default",
+        "discrete",
+        "karras",
+    };
+
+    inline const char *modes_str[] = {
+        "txt2img",
+        "img2img",
+        "convert",
+    };
+
+    enum SDMode
+    {
+        TXT2IMG,
+        IMG2IMG,
+        CONVERT,
+        MODE_COUNT
+    };
+
+    struct SDParams
+    {
+        int n_threads = -1;
+        SDMode mode = TXT2IMG;
+
+        std::string model_path;
+        std::string vae_path;
+        std::string taesd_path;
+        std::string esrgan_path;
+        std::string controlnet_path;
+        std::string embeddings_path;
+        sd_type_t wtype = SD_TYPE_COUNT;
+        std::string lora_model_dir;
+        std::string output_path = "output.png";
+        std::string input_path;
+        std::string control_image_path;
+
+        std::string prompt;
+        std::string negative_prompt;
+        float cfg_scale = 7.0f;
+        int clip_skip = -1; // <= 0 represents unspecified
+        int width = 512;
+        int height = 512;
+        int batch_count = 1;
+
+        sample_method_t sample_method = EULER_A;
+        schedule_t schedule = DEFAULT;
+        int sample_steps = 20;
+        float strength = 0.75f;
+        float control_strength = 0.9f;
+        rng_type_t rng_type = CUDA_RNG;
+        int64_t seed = 42;
+        bool verbose = false;
+        bool vae_tiling = false;
+        bool control_net_cpu = false;
+        bool canny_preprocess = false;
+
+        SDParams() = default;
+
+        // copy constructor...
+        SDParams(const SDParams &other)
+            : n_threads(other.n_threads), mode(other.mode), model_path(other.model_path),
+              vae_path(other.vae_path), taesd_path(other.taesd_path), esrgan_path(other.esrgan_path),
+              controlnet_path(other.controlnet_path), embeddings_path(other.embeddings_path),
+              wtype(other.wtype), lora_model_dir(other.lora_model_dir), output_path(other.output_path),
+              input_path(other.input_path), control_image_path(other.control_image_path),
+              prompt(other.prompt), negative_prompt(other.negative_prompt), cfg_scale(other.cfg_scale),
+              clip_skip(other.clip_skip), width(other.width), height(other.height), batch_count(other.batch_count),
+              sample_method(other.sample_method), schedule(other.schedule), sample_steps(other.sample_steps),
+              strength(other.strength), control_strength(other.control_strength), rng_type(other.rng_type),
+              seed(other.seed), verbose(other.verbose), vae_tiling(other.vae_tiling),
+              control_net_cpu(other.control_net_cpu), canny_preprocess(other.canny_preprocess){
+                                                          // Másolat létrehozása
+                                                      };
+        SDParams &operator=(const SDParams &other)
+        {
+            if (this != &other) // Ellenőrizzük, hogy ne másoljuk önmagát
+            {
+                n_threads = other.n_threads;
+                mode = other.mode;
+                model_path = other.model_path;
+                vae_path = other.vae_path;
+                taesd_path = other.taesd_path;
+                esrgan_path = other.esrgan_path;
+                controlnet_path = other.controlnet_path;
+                embeddings_path = other.embeddings_path;
+                wtype = other.wtype;
+                lora_model_dir = other.lora_model_dir;
+                output_path = other.output_path;
+                input_path = other.input_path;
+                control_image_path = other.control_image_path;
+                prompt = other.prompt;
+                negative_prompt = other.negative_prompt;
+                cfg_scale = other.cfg_scale;
+                clip_skip = other.clip_skip;
+                width = other.width;
+                height = other.height;
+                batch_count = other.batch_count;
+                sample_method = other.sample_method;
+                schedule = other.schedule;
+                sample_steps = other.sample_steps;
+                strength = other.strength;
+                control_strength = other.control_strength;
+                rng_type = other.rng_type;
+                seed = other.seed;
+                verbose = other.verbose;
+                vae_tiling = other.vae_tiling;
+                control_net_cpu = other.control_net_cpu;
+                canny_preprocess = other.canny_preprocess;
+            }
+            return *this;
+        }
+    };
+
+    /* JSONize SD Params*/
+
+    inline void to_json(nlohmann::json &j, const SDParams &p)
+    {
+        j = nlohmann::json{
+            {"n_threads", p.n_threads},
+            {"mode", (int)p.mode},
+            {"model_path", p.model_path},
+            {"vae_path", p.vae_path},
+            {"taesd_path", p.taesd_path},
+            {"esrgan_path", p.esrgan_path},
+            {"controlnet_path", p.controlnet_path},
+            {"embeddings_path", p.embeddings_path},
+            {"wtype", (int)p.wtype},
+            {"lora_model_dir", p.lora_model_dir},
+            {"output_path", p.output_path},
+            {"input_path", p.input_path},
+            {"control_image_path", p.control_image_path},
+            {"prompt", p.prompt},
+            {"negative_prompt", p.negative_prompt},
+            {"cfg_scale", p.cfg_scale},
+            {"clip_skip", p.clip_skip},
+            {"width", p.width},
+            {"height", p.height},
+            {"sample_method", (int)p.sample_method},
+            {"schedule", (int)p.schedule},
+            {"sample_steps", p.sample_steps},
+            {"strength", p.strength},
+            {"control_strength", p.control_strength},
+            {"rng_type", (int)p.rng_type},
+            {"seed", p.seed},
+            {"verbose", p.verbose},
+            {"vae_tiling", p.vae_tiling},
+            {"control_net_cpu", p.control_net_cpu},
+            {"canny_preprocess", p.canny_preprocess},
+
+        };
+    }
+
+    inline void from_json(const nlohmann::json &j, SDParams &p)
+    {
+        j.at("n_threads").get_to(p.n_threads);
+
+        p.mode = j.at("mode").get<sd_gui_utils::SDMode>();
+
+        j.at("model_path").get_to(p.model_path);
+        j.at("vae_path").get_to(p.vae_path);
+        j.at("taesd_path").get_to(p.taesd_path);
+        j.at("esrgan_path").get_to(p.esrgan_path);
+        j.at("controlnet_path").get_to(p.controlnet_path);
+        j.at("embeddings_path").get_to(p.embeddings_path);
+
+        p.wtype = j.at("wtype").get<sd_type_t>();
+
+        j.at("lora_model_dir").get_to(p.lora_model_dir);
+        j.at("output_path").get_to(p.output_path);
+        j.at("input_path").get_to(p.input_path);
+        j.at("control_image_path").get_to(p.control_image_path);
+        j.at("prompt").get_to(p.prompt);
+        j.at("negative_prompt").get_to(p.negative_prompt);
+        j.at("cfg_scale").get_to(p.cfg_scale);
+        j.at("width").get_to(p.width);
+        j.at("height").get_to(p.height);
+        j.at("batch_count").get_to(p.batch_count);
+
+        p.sample_method = j.at("sample_method").get<sample_method_t>();
+        p.schedule = j.at("schedule").get<schedule_t>();
+
+        j.at("sample_steps").get_to(p.sample_steps);
+        j.at("strength").get_to(p.strength);
+        j.at("control_strength").get_to(p.control_strength);
+
+        p.rng_type = j.at("rng_type").get<rng_type_t>();
+
+        j.at("seed").get_to(p.seed);
+        j.at("verbose").get_to(p.verbose);
+        j.at("vae_tiling").get_to(p.vae_tiling);
+        j.at("control_net_cpu").get_to(p.control_net_cpu);
+        j.at("canny_preprocess").get_to(p.canny_preprocess);
+    }
+    /* JSONize SD Params*/
+
+    // sd c++
+
+    /*cv::Mat GetSquareImage(const unsigned char *img_data, int width, int height, int target_width = 500)
+     {
+         unsigned char * img_data_ptr = (unsigned char*) &img_data;
+         cv::Mat mat(height, width, CV_8UC1, img_data_ptr);
+         return GetSquareImage(mat, target_width);
+     }
+     cv::Mat GetSquareImage(const char *data, int width, int height, int target_width = 500)
+     {
+         cv::Mat mat(height, width, CV_8UC1, &data[0]);
+         return GetSquareImage(mat, target_width);
+     }*/
+    // opencv stuffs
+    inline cv::Mat GetSquareImage(const cv::Mat &img, int target_width = 500)
+    {
+        int width = img.cols,
+            height = img.rows;
+
+        cv::Mat square = cv::Mat::zeros(target_width, target_width, img.type());
+
+        int max_dim = (width >= height) ? width : height;
+        float scale = ((float)target_width) / max_dim;
+        cv::Rect roi;
+        if (width >= height)
+        {
+            roi.width = target_width;
+            roi.x = 0;
+            roi.height = static_cast<float>(height) * scale;
+            roi.y = (target_width - roi.height) / 2;
+        }
+        else
+        {
+            roi.y = 0;
+            roi.height = target_width;
+            roi.width = static_cast<float>(width) * scale;
+            roi.x = (target_width - roi.width) / 2;
+        }
+
+        cv::resize(img, square(roi), roi.size());
+
+        return square;
+    }
+
+};
+#endif
\ No newline at end of file
diff --git a/ui/ver.hpp b/ui/ver.hpp
new file mode 100644
index 0000000..0fa6e6a
--- /dev/null
+++ b/ui/ver.hpp
@@ -0,0 +1,5 @@
+#ifndef __MAINFRAME_HPP__VERSIONS
+#define __MAINFRAME_HPP__VERSIONS
+#define SD_GUI_VERSION "0.1.1-beta"
+#define SD_CPP_VERSION "c6071fa"
+#endif
\ No newline at end of file
diff --git a/ui/windows.fbp b/ui/windows.fbp
new file mode 100644
index 0000000..b84401d
--- /dev/null
+++ b/ui/windows.fbp
@@ -0,0 +1,4740 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<wxFormBuilder_Project>
+  <FileVersion major="1" minor="17"/>
+  <object class="Project" expanded="true">
+    <property name="class_decoration">; </property>
+    <property name="code_generation">C++</property>
+    <property name="disconnect_events">1</property>
+    <property name="disconnect_mode">source_name</property>
+    <property name="disconnect_php_events">0</property>
+    <property name="disconnect_python_events">0</property>
+    <property name="embedded_files_path">Z:\sd.cpp.ui2\ui\embended_files</property>
+    <property name="encoding">UTF-8</property>
+    <property name="event_generation">connect</property>
+    <property name="file">MainWindow</property>
+    <property name="first_id">1000</property>
+    <property name="help_provider">none</property>
+    <property name="image_path_wrapper_function_name"></property>
+    <property name="indent_with_spaces"></property>
+    <property name="internationalize">0</property>
+    <property name="name">MainWindow</property>
+    <property name="namespace"></property>
+    <property name="path">.</property>
+    <property name="precompiled_header"></property>
+    <property name="relative_path">1</property>
+    <property name="skip_lua_events">1</property>
+    <property name="skip_php_events">1</property>
+    <property name="skip_python_events">1</property>
+    <property name="ui_table">UI</property>
+    <property name="use_array_enum">0</property>
+    <property name="use_enum">0</property>
+    <property name="use_microsoft_bom">0</property>
+    <object class="Frame" expanded="true">
+      <property name="aui_managed"></property>
+      <property name="aui_manager_style">wxAUI_MGR_DEFAULT</property>
+      <property name="bg"></property>
+      <property name="center">wxBOTH</property>
+      <property name="context_help"></property>
+      <property name="context_menu">1</property>
+      <property name="drag_accept_files">0</property>
+      <property name="enabled">1</property>
+      <property name="event_handler">impl_virtual</property>
+      <property name="extra_style"></property>
+      <property name="fg"></property>
+      <property name="font"></property>
+      <property name="hidden"></property>
+      <property name="id">wxID_ANY</property>
+      <property name="maximum_size"></property>
+      <property name="minimum_size"></property>
+      <property name="name">UI</property>
+      <property name="pos"></property>
+      <property name="size">800,600</property>
+      <property name="style">wxCAPTION|wxCLOSE_BOX|wxICONIZE|wxMINIMIZE_BOX|wxSYSTEM_MENU</property>
+      <property name="subclass">; ; forward_declare</property>
+      <property name="title">sd.cpp.gui</property>
+      <property name="tooltip"></property>
+      <property name="two_step_creation">0</property>
+      <property name="window_extra_style"></property>
+      <property name="window_name"></property>
+      <property name="window_style">wxBORDER_THEME|wxCLIP_CHILDREN</property>
+      <property name="xrc_skip_sizer">1</property>
+      <object class="wxBoxSizer" expanded="true">
+        <property name="minimum_size">800,600</property>
+        <property name="name">sizer0001</property>
+        <property name="orient">wxVERTICAL</property>
+        <property name="permission">none</property>
+        <object class="sizeritem" expanded="true">
+          <property name="border">5</property>
+          <property name="flag">wxEXPAND</property>
+          <property name="proportion">1</property>
+          <object class="wxPanel" expanded="true">
+            <property name="BottomDockable">1</property>
+            <property name="LeftDockable">1</property>
+            <property name="RightDockable">1</property>
+            <property name="TopDockable">1</property>
+            <property name="aui_layer"></property>
+            <property name="aui_name"></property>
+            <property name="aui_position"></property>
+            <property name="aui_row"></property>
+            <property name="best_size"></property>
+            <property name="bg"></property>
+            <property name="caption"></property>
+            <property name="caption_visible">1</property>
+            <property name="center_pane">0</property>
+            <property name="close_button">1</property>
+            <property name="context_help"></property>
+            <property name="context_menu">1</property>
+            <property name="default_pane">0</property>
+            <property name="dock">Dock</property>
+            <property name="dock_fixed">0</property>
+            <property name="docking">Left</property>
+            <property name="drag_accept_files">0</property>
+            <property name="enabled"></property>
+            <property name="fg"></property>
+            <property name="floatable">1</property>
+            <property name="font"></property>
+            <property name="gripper">0</property>
+            <property name="hidden"></property>
+            <property name="id">wxID_ANY</property>
+            <property name="max_size"></property>
+            <property name="maximize_button">0</property>
+            <property name="maximum_size"></property>
+            <property name="min_size"></property>
+            <property name="minimize_button">0</property>
+            <property name="minimum_size"></property>
+            <property name="moveable">1</property>
+            <property name="name">m_all_panel</property>
+            <property name="pane_border">1</property>
+            <property name="pane_position"></property>
+            <property name="pane_size"></property>
+            <property name="permission">protected</property>
+            <property name="pin_button">1</property>
+            <property name="pos"></property>
+            <property name="resize">Resizable</property>
+            <property name="show">1</property>
+            <property name="size"></property>
+            <property name="subclass">; ; forward_declare</property>
+            <property name="toolbar_pane">0</property>
+            <property name="tooltip"></property>
+            <property name="window_extra_style"></property>
+            <property name="window_name"></property>
+            <property name="window_style">wxTAB_TRAVERSAL</property>
+            <object class="wxBoxSizer" expanded="true">
+              <property name="minimum_size"></property>
+              <property name="name">sizer0002</property>
+              <property name="orient">wxVERTICAL</property>
+              <property name="permission">none</property>
+              <object class="sizeritem" expanded="false">
+                <property name="border">5</property>
+                <property name="flag">wxALL|wxEXPAND</property>
+                <property name="proportion">0</property>
+                <object class="wxBoxSizer" expanded="false">
+                  <property name="minimum_size"></property>
+                  <property name="name">sizer0021</property>
+                  <property name="orient">wxHORIZONTAL</property>
+                  <property name="permission">none</property>
+                  <object class="sizeritem" expanded="false">
+                    <property name="border">5</property>
+                    <property name="flag">wxALL</property>
+                    <property name="proportion">0</property>
+                    <object class="wxButton" expanded="false">
+                      <property name="BottomDockable">1</property>
+                      <property name="LeftDockable">1</property>
+                      <property name="RightDockable">1</property>
+                      <property name="TopDockable">1</property>
+                      <property name="aui_layer"></property>
+                      <property name="aui_name"></property>
+                      <property name="aui_position"></property>
+                      <property name="aui_row"></property>
+                      <property name="auth_needed">0</property>
+                      <property name="best_size"></property>
+                      <property name="bg"></property>
+                      <property name="bitmap">Load From Embedded File; icons/16/settings.png</property>
+                      <property name="caption"></property>
+                      <property name="caption_visible">1</property>
+                      <property name="center_pane">0</property>
+                      <property name="close_button">1</property>
+                      <property name="context_help"></property>
+                      <property name="context_menu">1</property>
+                      <property name="current"></property>
+                      <property name="default">0</property>
+                      <property name="default_pane">0</property>
+                      <property name="disabled"></property>
+                      <property name="dock">Dock</property>
+                      <property name="dock_fixed">0</property>
+                      <property name="docking">Left</property>
+                      <property name="drag_accept_files">0</property>
+                      <property name="enabled">1</property>
+                      <property name="fg"></property>
+                      <property name="floatable">1</property>
+                      <property name="focus"></property>
+                      <property name="font"></property>
+                      <property name="gripper">0</property>
+                      <property name="hidden">0</property>
+                      <property name="id">wxID_ANY</property>
+                      <property name="label">Settings</property>
+                      <property name="margins"></property>
+                      <property name="markup">0</property>
+                      <property name="max_size"></property>
+                      <property name="maximize_button">0</property>
+                      <property name="maximum_size"></property>
+                      <property name="min_size"></property>
+                      <property name="minimize_button">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="moveable">1</property>
+                      <property name="name">m_settings</property>
+                      <property name="pane_border">1</property>
+                      <property name="pane_position"></property>
+                      <property name="pane_size"></property>
+                      <property name="permission">protected</property>
+                      <property name="pin_button">1</property>
+                      <property name="pos"></property>
+                      <property name="position"></property>
+                      <property name="pressed"></property>
+                      <property name="resize">Resizable</property>
+                      <property name="show">1</property>
+                      <property name="size"></property>
+                      <property name="style"></property>
+                      <property name="subclass">; ; forward_declare</property>
+                      <property name="toolbar_pane">0</property>
+                      <property name="tooltip"></property>
+                      <property name="validator_data_type"></property>
+                      <property name="validator_style">wxFILTER_NONE</property>
+                      <property name="validator_type">wxDefaultValidator</property>
+                      <property name="validator_variable"></property>
+                      <property name="window_extra_style"></property>
+                      <property name="window_name"></property>
+                      <property name="window_style"></property>
+                      <event name="OnButtonClick">onSettings</event>
+                    </object>
+                  </object>
+                  <object class="sizeritem" expanded="false">
+                    <property name="border">5</property>
+                    <property name="flag">wxALL</property>
+                    <property name="proportion">0</property>
+                    <object class="wxButton" expanded="false">
+                      <property name="BottomDockable">1</property>
+                      <property name="LeftDockable">1</property>
+                      <property name="RightDockable">1</property>
+                      <property name="TopDockable">1</property>
+                      <property name="aui_layer"></property>
+                      <property name="aui_name"></property>
+                      <property name="aui_position"></property>
+                      <property name="aui_row"></property>
+                      <property name="auth_needed">0</property>
+                      <property name="best_size"></property>
+                      <property name="bg"></property>
+                      <property name="bitmap">Load From Embedded File; icons/16/refresh.png</property>
+                      <property name="caption"></property>
+                      <property name="caption_visible">1</property>
+                      <property name="center_pane">0</property>
+                      <property name="close_button">1</property>
+                      <property name="context_help"></property>
+                      <property name="context_menu">1</property>
+                      <property name="current"></property>
+                      <property name="default">0</property>
+                      <property name="default_pane">0</property>
+                      <property name="disabled"></property>
+                      <property name="dock">Dock</property>
+                      <property name="dock_fixed">0</property>
+                      <property name="docking">Left</property>
+                      <property name="drag_accept_files">0</property>
+                      <property name="enabled">1</property>
+                      <property name="fg"></property>
+                      <property name="floatable">1</property>
+                      <property name="focus"></property>
+                      <property name="font"></property>
+                      <property name="gripper">0</property>
+                      <property name="hidden">0</property>
+                      <property name="id">wxID_ANY</property>
+                      <property name="label">Refresh</property>
+                      <property name="margins"></property>
+                      <property name="markup">0</property>
+                      <property name="max_size"></property>
+                      <property name="maximize_button">0</property>
+                      <property name="maximum_size"></property>
+                      <property name="min_size"></property>
+                      <property name="minimize_button">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="moveable">1</property>
+                      <property name="name">m_refresh</property>
+                      <property name="pane_border">1</property>
+                      <property name="pane_position"></property>
+                      <property name="pane_size"></property>
+                      <property name="permission">protected</property>
+                      <property name="pin_button">1</property>
+                      <property name="pos"></property>
+                      <property name="position"></property>
+                      <property name="pressed"></property>
+                      <property name="resize">Resizable</property>
+                      <property name="show">1</property>
+                      <property name="size"></property>
+                      <property name="style"></property>
+                      <property name="subclass">; ; forward_declare</property>
+                      <property name="toolbar_pane">0</property>
+                      <property name="tooltip"></property>
+                      <property name="validator_data_type"></property>
+                      <property name="validator_style">wxFILTER_NONE</property>
+                      <property name="validator_type">wxDefaultValidator</property>
+                      <property name="validator_variable"></property>
+                      <property name="window_extra_style"></property>
+                      <property name="window_name"></property>
+                      <property name="window_style"></property>
+                      <event name="OnButtonClick">onModelsRefresh</event>
+                    </object>
+                  </object>
+                  <object class="sizeritem" expanded="false">
+                    <property name="border">5</property>
+                    <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
+                    <property name="proportion">0</property>
+                    <object class="wxStaticText" expanded="false">
+                      <property name="BottomDockable">1</property>
+                      <property name="LeftDockable">1</property>
+                      <property name="RightDockable">1</property>
+                      <property name="TopDockable">1</property>
+                      <property name="aui_layer"></property>
+                      <property name="aui_name"></property>
+                      <property name="aui_position"></property>
+                      <property name="aui_row"></property>
+                      <property name="best_size"></property>
+                      <property name="bg"></property>
+                      <property name="caption"></property>
+                      <property name="caption_visible">1</property>
+                      <property name="center_pane">0</property>
+                      <property name="close_button">1</property>
+                      <property name="context_help"></property>
+                      <property name="context_menu">1</property>
+                      <property name="default_pane">0</property>
+                      <property name="dock">Dock</property>
+                      <property name="dock_fixed">0</property>
+                      <property name="docking">Left</property>
+                      <property name="drag_accept_files">0</property>
+                      <property name="enabled">1</property>
+                      <property name="fg"></property>
+                      <property name="floatable">1</property>
+                      <property name="font"></property>
+                      <property name="gripper">0</property>
+                      <property name="hidden"></property>
+                      <property name="id">wxID_ANY</property>
+                      <property name="label">Model</property>
+                      <property name="markup">0</property>
+                      <property name="max_size"></property>
+                      <property name="maximize_button">0</property>
+                      <property name="maximum_size"></property>
+                      <property name="min_size"></property>
+                      <property name="minimize_button">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="moveable">1</property>
+                      <property name="name">m_staticText160</property>
+                      <property name="pane_border">1</property>
+                      <property name="pane_position"></property>
+                      <property name="pane_size"></property>
+                      <property name="permission">protected</property>
+                      <property name="pin_button">1</property>
+                      <property name="pos"></property>
+                      <property name="resize">Resizable</property>
+                      <property name="show">1</property>
+                      <property name="size"></property>
+                      <property name="style"></property>
+                      <property name="subclass">; ; forward_declare</property>
+                      <property name="toolbar_pane">0</property>
+                      <property name="tooltip"></property>
+                      <property name="window_extra_style"></property>
+                      <property name="window_name"></property>
+                      <property name="window_style"></property>
+                      <property name="wrap">0</property>
+                    </object>
+                  </object>
+                  <object class="sizeritem" expanded="false">
+                    <property name="border">5</property>
+                    <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
+                    <property name="proportion">0</property>
+                    <object class="wxChoice" expanded="false">
+                      <property name="BottomDockable">1</property>
+                      <property name="LeftDockable">1</property>
+                      <property name="RightDockable">1</property>
+                      <property name="TopDockable">1</property>
+                      <property name="aui_layer"></property>
+                      <property name="aui_name"></property>
+                      <property name="aui_position"></property>
+                      <property name="aui_row"></property>
+                      <property name="best_size"></property>
+                      <property name="bg"></property>
+                      <property name="caption"></property>
+                      <property name="caption_visible">1</property>
+                      <property name="center_pane">0</property>
+                      <property name="choices"></property>
+                      <property name="close_button">1</property>
+                      <property name="context_help"></property>
+                      <property name="context_menu">1</property>
+                      <property name="default_pane">0</property>
+                      <property name="dock">Dock</property>
+                      <property name="dock_fixed">0</property>
+                      <property name="docking">Left</property>
+                      <property name="drag_accept_files">0</property>
+                      <property name="enabled">0</property>
+                      <property name="fg"></property>
+                      <property name="floatable">1</property>
+                      <property name="font"></property>
+                      <property name="gripper">0</property>
+                      <property name="hidden"></property>
+                      <property name="id">wxID_ANY</property>
+                      <property name="max_size"></property>
+                      <property name="maximize_button">0</property>
+                      <property name="maximum_size"></property>
+                      <property name="min_size"></property>
+                      <property name="minimize_button">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="moveable">1</property>
+                      <property name="name">m_model</property>
+                      <property name="pane_border">1</property>
+                      <property name="pane_position"></property>
+                      <property name="pane_size"></property>
+                      <property name="permission">protected</property>
+                      <property name="pin_button">1</property>
+                      <property name="pos"></property>
+                      <property name="resize">Resizable</property>
+                      <property name="selection">0</property>
+                      <property name="show">1</property>
+                      <property name="size"></property>
+                      <property name="style"></property>
+                      <property name="subclass">; ; forward_declare</property>
+                      <property name="toolbar_pane">0</property>
+                      <property name="tooltip"></property>
+                      <property name="validator_data_type"></property>
+                      <property name="validator_style">wxFILTER_NONE</property>
+                      <property name="validator_type">wxDefaultValidator</property>
+                      <property name="validator_variable"></property>
+                      <property name="window_extra_style"></property>
+                      <property name="window_name"></property>
+                      <property name="window_style"></property>
+                      <event name="OnChoice">onModelSelect</event>
+                    </object>
+                  </object>
+                  <object class="sizeritem" expanded="false">
+                    <property name="border">5</property>
+                    <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
+                    <property name="proportion">0</property>
+                    <object class="wxStaticText" expanded="false">
+                      <property name="BottomDockable">1</property>
+                      <property name="LeftDockable">1</property>
+                      <property name="RightDockable">1</property>
+                      <property name="TopDockable">1</property>
+                      <property name="aui_layer"></property>
+                      <property name="aui_name"></property>
+                      <property name="aui_position"></property>
+                      <property name="aui_row"></property>
+                      <property name="best_size"></property>
+                      <property name="bg"></property>
+                      <property name="caption"></property>
+                      <property name="caption_visible">1</property>
+                      <property name="center_pane">0</property>
+                      <property name="close_button">1</property>
+                      <property name="context_help"></property>
+                      <property name="context_menu">1</property>
+                      <property name="default_pane">0</property>
+                      <property name="dock">Dock</property>
+                      <property name="dock_fixed">0</property>
+                      <property name="docking">Left</property>
+                      <property name="drag_accept_files">0</property>
+                      <property name="enabled">1</property>
+                      <property name="fg"></property>
+                      <property name="floatable">1</property>
+                      <property name="font"></property>
+                      <property name="gripper">0</property>
+                      <property name="hidden"></property>
+                      <property name="id">wxID_ANY</property>
+                      <property name="label">Vae</property>
+                      <property name="markup">0</property>
+                      <property name="max_size"></property>
+                      <property name="maximize_button">0</property>
+                      <property name="maximum_size"></property>
+                      <property name="min_size"></property>
+                      <property name="minimize_button">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="moveable">1</property>
+                      <property name="name">m_staticText161</property>
+                      <property name="pane_border">1</property>
+                      <property name="pane_position"></property>
+                      <property name="pane_size"></property>
+                      <property name="permission">protected</property>
+                      <property name="pin_button">1</property>
+                      <property name="pos"></property>
+                      <property name="resize">Resizable</property>
+                      <property name="show">1</property>
+                      <property name="size"></property>
+                      <property name="style"></property>
+                      <property name="subclass">; ; forward_declare</property>
+                      <property name="toolbar_pane">0</property>
+                      <property name="tooltip"></property>
+                      <property name="window_extra_style"></property>
+                      <property name="window_name"></property>
+                      <property name="window_style"></property>
+                      <property name="wrap">0</property>
+                    </object>
+                  </object>
+                  <object class="sizeritem" expanded="false">
+                    <property name="border">5</property>
+                    <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
+                    <property name="proportion">0</property>
+                    <object class="wxChoice" expanded="false">
+                      <property name="BottomDockable">1</property>
+                      <property name="LeftDockable">1</property>
+                      <property name="RightDockable">1</property>
+                      <property name="TopDockable">1</property>
+                      <property name="aui_layer"></property>
+                      <property name="aui_name"></property>
+                      <property name="aui_position"></property>
+                      <property name="aui_row"></property>
+                      <property name="best_size"></property>
+                      <property name="bg"></property>
+                      <property name="caption"></property>
+                      <property name="caption_visible">1</property>
+                      <property name="center_pane">0</property>
+                      <property name="choices"></property>
+                      <property name="close_button">1</property>
+                      <property name="context_help"></property>
+                      <property name="context_menu">1</property>
+                      <property name="default_pane">0</property>
+                      <property name="dock">Dock</property>
+                      <property name="dock_fixed">0</property>
+                      <property name="docking">Left</property>
+                      <property name="drag_accept_files">0</property>
+                      <property name="enabled">0</property>
+                      <property name="fg"></property>
+                      <property name="floatable">1</property>
+                      <property name="font"></property>
+                      <property name="gripper">0</property>
+                      <property name="hidden"></property>
+                      <property name="id">wxID_ANY</property>
+                      <property name="max_size"></property>
+                      <property name="maximize_button">0</property>
+                      <property name="maximum_size"></property>
+                      <property name="min_size"></property>
+                      <property name="minimize_button">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="moveable">1</property>
+                      <property name="name">m_vae</property>
+                      <property name="pane_border">1</property>
+                      <property name="pane_position"></property>
+                      <property name="pane_size"></property>
+                      <property name="permission">protected</property>
+                      <property name="pin_button">1</property>
+                      <property name="pos"></property>
+                      <property name="resize">Resizable</property>
+                      <property name="selection">0</property>
+                      <property name="show">1</property>
+                      <property name="size"></property>
+                      <property name="style"></property>
+                      <property name="subclass">; ; forward_declare</property>
+                      <property name="toolbar_pane">0</property>
+                      <property name="tooltip"></property>
+                      <property name="validator_data_type"></property>
+                      <property name="validator_style">wxFILTER_NONE</property>
+                      <property name="validator_type">wxDefaultValidator</property>
+                      <property name="validator_variable"></property>
+                      <property name="window_extra_style"></property>
+                      <property name="window_name"></property>
+                      <property name="window_style"></property>
+                      <event name="OnChoice">onVaeSelect</event>
+                    </object>
+                  </object>
+                  <object class="sizeritem" expanded="false">
+                    <property name="border">5</property>
+                    <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
+                    <property name="proportion">0</property>
+                    <object class="wxStaticText" expanded="false">
+                      <property name="BottomDockable">1</property>
+                      <property name="LeftDockable">1</property>
+                      <property name="RightDockable">1</property>
+                      <property name="TopDockable">1</property>
+                      <property name="aui_layer"></property>
+                      <property name="aui_name"></property>
+                      <property name="aui_position"></property>
+                      <property name="aui_row"></property>
+                      <property name="best_size"></property>
+                      <property name="bg"></property>
+                      <property name="caption"></property>
+                      <property name="caption_visible">1</property>
+                      <property name="center_pane">0</property>
+                      <property name="close_button">1</property>
+                      <property name="context_help"></property>
+                      <property name="context_menu">1</property>
+                      <property name="default_pane">0</property>
+                      <property name="dock">Dock</property>
+                      <property name="dock_fixed">0</property>
+                      <property name="docking">Left</property>
+                      <property name="drag_accept_files">0</property>
+                      <property name="enabled">1</property>
+                      <property name="fg"></property>
+                      <property name="floatable">1</property>
+                      <property name="font"></property>
+                      <property name="gripper">0</property>
+                      <property name="hidden"></property>
+                      <property name="id">wxID_ANY</property>
+                      <property name="label">Sampler</property>
+                      <property name="markup">0</property>
+                      <property name="max_size"></property>
+                      <property name="maximize_button">0</property>
+                      <property name="maximum_size"></property>
+                      <property name="min_size"></property>
+                      <property name="minimize_button">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="moveable">1</property>
+                      <property name="name">m_staticText163</property>
+                      <property name="pane_border">1</property>
+                      <property name="pane_position"></property>
+                      <property name="pane_size"></property>
+                      <property name="permission">protected</property>
+                      <property name="pin_button">1</property>
+                      <property name="pos"></property>
+                      <property name="resize">Resizable</property>
+                      <property name="show">1</property>
+                      <property name="size"></property>
+                      <property name="style"></property>
+                      <property name="subclass">; ; forward_declare</property>
+                      <property name="toolbar_pane">0</property>
+                      <property name="tooltip">sampling method (default: &quot;euler_a&quot;)</property>
+                      <property name="window_extra_style"></property>
+                      <property name="window_name"></property>
+                      <property name="window_style"></property>
+                      <property name="wrap">0</property>
+                    </object>
+                  </object>
+                  <object class="sizeritem" expanded="false">
+                    <property name="border">5</property>
+                    <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
+                    <property name="proportion">0</property>
+                    <object class="wxChoice" expanded="false">
+                      <property name="BottomDockable">1</property>
+                      <property name="LeftDockable">1</property>
+                      <property name="RightDockable">1</property>
+                      <property name="TopDockable">1</property>
+                      <property name="aui_layer"></property>
+                      <property name="aui_name"></property>
+                      <property name="aui_position"></property>
+                      <property name="aui_row"></property>
+                      <property name="best_size"></property>
+                      <property name="bg"></property>
+                      <property name="caption"></property>
+                      <property name="caption_visible">1</property>
+                      <property name="center_pane">0</property>
+                      <property name="choices"></property>
+                      <property name="close_button">1</property>
+                      <property name="context_help"></property>
+                      <property name="context_menu">1</property>
+                      <property name="default_pane">0</property>
+                      <property name="dock">Dock</property>
+                      <property name="dock_fixed">0</property>
+                      <property name="docking">Left</property>
+                      <property name="drag_accept_files">0</property>
+                      <property name="enabled"></property>
+                      <property name="fg"></property>
+                      <property name="floatable">1</property>
+                      <property name="font"></property>
+                      <property name="gripper">0</property>
+                      <property name="hidden"></property>
+                      <property name="id">wxID_ANY</property>
+                      <property name="max_size"></property>
+                      <property name="maximize_button">0</property>
+                      <property name="maximum_size"></property>
+                      <property name="min_size"></property>
+                      <property name="minimize_button">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="moveable">1</property>
+                      <property name="name">m_sampler</property>
+                      <property name="pane_border">1</property>
+                      <property name="pane_position"></property>
+                      <property name="pane_size"></property>
+                      <property name="permission">protected</property>
+                      <property name="pin_button">1</property>
+                      <property name="pos"></property>
+                      <property name="resize">Resizable</property>
+                      <property name="selection">0</property>
+                      <property name="show">1</property>
+                      <property name="size"></property>
+                      <property name="style"></property>
+                      <property name="subclass">; ; forward_declare</property>
+                      <property name="toolbar_pane">0</property>
+                      <property name="tooltip">sampling method (default: &quot;euler_a&quot;)</property>
+                      <property name="validator_data_type"></property>
+                      <property name="validator_style">wxFILTER_NONE</property>
+                      <property name="validator_type">wxDefaultValidator</property>
+                      <property name="validator_variable"></property>
+                      <property name="window_extra_style"></property>
+                      <property name="window_name"></property>
+                      <property name="window_style"></property>
+                      <event name="OnChoice">onSamplerSelect</event>
+                    </object>
+                  </object>
+                </object>
+              </object>
+              <object class="sizeritem" expanded="false">
+                <property name="border">5</property>
+                <property name="flag">wxALL|wxEXPAND</property>
+                <property name="proportion">0</property>
+                <object class="wxBoxSizer" expanded="false">
+                  <property name="minimum_size"></property>
+                  <property name="name">sizer0003</property>
+                  <property name="orient">wxHORIZONTAL</property>
+                  <property name="permission">none</property>
+                  <object class="sizeritem" expanded="false">
+                    <property name="border">5</property>
+                    <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
+                    <property name="proportion">0</property>
+                    <object class="wxStaticText" expanded="false">
+                      <property name="BottomDockable">1</property>
+                      <property name="LeftDockable">1</property>
+                      <property name="RightDockable">1</property>
+                      <property name="TopDockable">1</property>
+                      <property name="aui_layer"></property>
+                      <property name="aui_name"></property>
+                      <property name="aui_position"></property>
+                      <property name="aui_row"></property>
+                      <property name="best_size"></property>
+                      <property name="bg"></property>
+                      <property name="caption"></property>
+                      <property name="caption_visible">1</property>
+                      <property name="center_pane">0</property>
+                      <property name="close_button">1</property>
+                      <property name="context_help"></property>
+                      <property name="context_menu">1</property>
+                      <property name="default_pane">0</property>
+                      <property name="dock">Dock</property>
+                      <property name="dock_fixed">0</property>
+                      <property name="docking">Left</property>
+                      <property name="drag_accept_files">0</property>
+                      <property name="enabled">1</property>
+                      <property name="fg"></property>
+                      <property name="floatable">1</property>
+                      <property name="font"></property>
+                      <property name="gripper">0</property>
+                      <property name="hidden"></property>
+                      <property name="id">wxID_ANY</property>
+                      <property name="label">CFG:</property>
+                      <property name="markup">0</property>
+                      <property name="max_size"></property>
+                      <property name="maximize_button">0</property>
+                      <property name="maximum_size"></property>
+                      <property name="min_size"></property>
+                      <property name="minimize_button">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="moveable">1</property>
+                      <property name="name">m_staticText231</property>
+                      <property name="pane_border">1</property>
+                      <property name="pane_position"></property>
+                      <property name="pane_size"></property>
+                      <property name="permission">protected</property>
+                      <property name="pin_button">1</property>
+                      <property name="pos"></property>
+                      <property name="resize">Resizable</property>
+                      <property name="show">1</property>
+                      <property name="size"></property>
+                      <property name="style"></property>
+                      <property name="subclass">; ; forward_declare</property>
+                      <property name="toolbar_pane">0</property>
+                      <property name="tooltip"></property>
+                      <property name="window_extra_style"></property>
+                      <property name="window_name"></property>
+                      <property name="window_style"></property>
+                      <property name="wrap">0</property>
+                    </object>
+                  </object>
+                  <object class="sizeritem" expanded="false">
+                    <property name="border">5</property>
+                    <property name="flag">wxALL</property>
+                    <property name="proportion">0</property>
+                    <object class="wxSpinCtrlDouble" expanded="false">
+                      <property name="BottomDockable">1</property>
+                      <property name="LeftDockable">1</property>
+                      <property name="RightDockable">1</property>
+                      <property name="TopDockable">1</property>
+                      <property name="aui_layer"></property>
+                      <property name="aui_name"></property>
+                      <property name="aui_position"></property>
+                      <property name="aui_row"></property>
+                      <property name="best_size"></property>
+                      <property name="bg"></property>
+                      <property name="caption"></property>
+                      <property name="caption_visible">1</property>
+                      <property name="center_pane">0</property>
+                      <property name="close_button">1</property>
+                      <property name="context_help"></property>
+                      <property name="context_menu">1</property>
+                      <property name="default_pane">0</property>
+                      <property name="digits">1</property>
+                      <property name="dock">Dock</property>
+                      <property name="dock_fixed">0</property>
+                      <property name="docking">Left</property>
+                      <property name="drag_accept_files">0</property>
+                      <property name="enabled">1</property>
+                      <property name="fg"></property>
+                      <property name="floatable">1</property>
+                      <property name="font"></property>
+                      <property name="gripper">0</property>
+                      <property name="hidden">0</property>
+                      <property name="id">wxID_ANY</property>
+                      <property name="inc">0.1</property>
+                      <property name="initial">0</property>
+                      <property name="max">15</property>
+                      <property name="max_size"></property>
+                      <property name="maximize_button">0</property>
+                      <property name="maximum_size"></property>
+                      <property name="min">0</property>
+                      <property name="min_size"></property>
+                      <property name="minimize_button">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="moveable">1</property>
+                      <property name="name">m_cfg</property>
+                      <property name="pane_border">1</property>
+                      <property name="pane_position"></property>
+                      <property name="pane_size"></property>
+                      <property name="permission">protected</property>
+                      <property name="pin_button">1</property>
+                      <property name="pos"></property>
+                      <property name="resize">Resizable</property>
+                      <property name="show">1</property>
+                      <property name="size"></property>
+                      <property name="style">wxALIGN_CENTER_HORIZONTAL|wxSP_ARROW_KEYS</property>
+                      <property name="subclass">; ; forward_declare</property>
+                      <property name="toolbar_pane">0</property>
+                      <property name="tooltip"></property>
+                      <property name="value">7.0</property>
+                      <property name="window_extra_style"></property>
+                      <property name="window_name"></property>
+                      <property name="window_style"></property>
+                    </object>
+                  </object>
+                  <object class="sizeritem" expanded="false">
+                    <property name="border">5</property>
+                    <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
+                    <property name="proportion">0</property>
+                    <object class="wxStaticText" expanded="false">
+                      <property name="BottomDockable">1</property>
+                      <property name="LeftDockable">1</property>
+                      <property name="RightDockable">1</property>
+                      <property name="TopDockable">1</property>
+                      <property name="aui_layer"></property>
+                      <property name="aui_name"></property>
+                      <property name="aui_position"></property>
+                      <property name="aui_row"></property>
+                      <property name="best_size"></property>
+                      <property name="bg"></property>
+                      <property name="caption"></property>
+                      <property name="caption_visible">1</property>
+                      <property name="center_pane">0</property>
+                      <property name="close_button">1</property>
+                      <property name="context_help"></property>
+                      <property name="context_menu">1</property>
+                      <property name="default_pane">0</property>
+                      <property name="dock">Dock</property>
+                      <property name="dock_fixed">0</property>
+                      <property name="docking">Left</property>
+                      <property name="drag_accept_files">0</property>
+                      <property name="enabled">1</property>
+                      <property name="fg"></property>
+                      <property name="floatable">1</property>
+                      <property name="font"></property>
+                      <property name="gripper">0</property>
+                      <property name="hidden"></property>
+                      <property name="id">wxID_ANY</property>
+                      <property name="label">Seed:</property>
+                      <property name="markup">0</property>
+                      <property name="max_size"></property>
+                      <property name="maximize_button">0</property>
+                      <property name="maximum_size"></property>
+                      <property name="min_size"></property>
+                      <property name="minimize_button">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="moveable">1</property>
+                      <property name="name">m_staticText233</property>
+                      <property name="pane_border">1</property>
+                      <property name="pane_position"></property>
+                      <property name="pane_size"></property>
+                      <property name="permission">protected</property>
+                      <property name="pin_button">1</property>
+                      <property name="pos"></property>
+                      <property name="resize">Resizable</property>
+                      <property name="show">1</property>
+                      <property name="size"></property>
+                      <property name="style"></property>
+                      <property name="subclass">; ; forward_declare</property>
+                      <property name="toolbar_pane">0</property>
+                      <property name="tooltip"></property>
+                      <property name="window_extra_style"></property>
+                      <property name="window_name"></property>
+                      <property name="window_style"></property>
+                      <property name="wrap">0</property>
+                    </object>
+                  </object>
+                  <object class="sizeritem" expanded="false">
+                    <property name="border">5</property>
+                    <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
+                    <property name="proportion">0</property>
+                    <object class="wxSpinCtrl" expanded="false">
+                      <property name="BottomDockable">1</property>
+                      <property name="LeftDockable">1</property>
+                      <property name="RightDockable">1</property>
+                      <property name="TopDockable">1</property>
+                      <property name="aui_layer"></property>
+                      <property name="aui_name"></property>
+                      <property name="aui_position"></property>
+                      <property name="aui_row"></property>
+                      <property name="best_size"></property>
+                      <property name="bg"></property>
+                      <property name="caption"></property>
+                      <property name="caption_visible">1</property>
+                      <property name="center_pane">0</property>
+                      <property name="close_button">1</property>
+                      <property name="context_help"></property>
+                      <property name="context_menu">1</property>
+                      <property name="default_pane">0</property>
+                      <property name="dock">Dock</property>
+                      <property name="dock_fixed">0</property>
+                      <property name="docking">Left</property>
+                      <property name="drag_accept_files">0</property>
+                      <property name="enabled"></property>
+                      <property name="fg"></property>
+                      <property name="floatable">1</property>
+                      <property name="font"></property>
+                      <property name="gripper">0</property>
+                      <property name="hidden"></property>
+                      <property name="id">wxID_ANY</property>
+                      <property name="initial">44</property>
+                      <property name="max">9999999</property>
+                      <property name="max_size"></property>
+                      <property name="maximize_button">0</property>
+                      <property name="maximum_size"></property>
+                      <property name="min">0</property>
+                      <property name="min_size"></property>
+                      <property name="minimize_button">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="moveable">1</property>
+                      <property name="name">m_seed</property>
+                      <property name="pane_border">1</property>
+                      <property name="pane_position"></property>
+                      <property name="pane_size"></property>
+                      <property name="permission">protected</property>
+                      <property name="pin_button">1</property>
+                      <property name="pos"></property>
+                      <property name="resize">Resizable</property>
+                      <property name="show">1</property>
+                      <property name="size"></property>
+                      <property name="style">wxSP_ARROW_KEYS</property>
+                      <property name="subclass">; ; forward_declare</property>
+                      <property name="toolbar_pane">0</property>
+                      <property name="tooltip"></property>
+                      <property name="value">44</property>
+                      <property name="window_extra_style"></property>
+                      <property name="window_name"></property>
+                      <property name="window_style"></property>
+                    </object>
+                  </object>
+                  <object class="sizeritem" expanded="false">
+                    <property name="border">5</property>
+                    <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
+                    <property name="proportion">0</property>
+                    <object class="wxStaticText" expanded="false">
+                      <property name="BottomDockable">1</property>
+                      <property name="LeftDockable">1</property>
+                      <property name="RightDockable">1</property>
+                      <property name="TopDockable">1</property>
+                      <property name="aui_layer"></property>
+                      <property name="aui_name"></property>
+                      <property name="aui_position"></property>
+                      <property name="aui_row"></property>
+                      <property name="best_size"></property>
+                      <property name="bg"></property>
+                      <property name="caption"></property>
+                      <property name="caption_visible">1</property>
+                      <property name="center_pane">0</property>
+                      <property name="close_button">1</property>
+                      <property name="context_help"></property>
+                      <property name="context_menu">1</property>
+                      <property name="default_pane">0</property>
+                      <property name="dock">Dock</property>
+                      <property name="dock_fixed">0</property>
+                      <property name="docking">Left</property>
+                      <property name="drag_accept_files">0</property>
+                      <property name="enabled">1</property>
+                      <property name="fg"></property>
+                      <property name="floatable">1</property>
+                      <property name="font"></property>
+                      <property name="gripper">0</property>
+                      <property name="hidden"></property>
+                      <property name="id">wxID_ANY</property>
+                      <property name="label">Clip skip:</property>
+                      <property name="markup">0</property>
+                      <property name="max_size"></property>
+                      <property name="maximize_button">0</property>
+                      <property name="maximum_size"></property>
+                      <property name="min_size"></property>
+                      <property name="minimize_button">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="moveable">1</property>
+                      <property name="name">m_staticText234</property>
+                      <property name="pane_border">1</property>
+                      <property name="pane_position"></property>
+                      <property name="pane_size"></property>
+                      <property name="permission">protected</property>
+                      <property name="pin_button">1</property>
+                      <property name="pos"></property>
+                      <property name="resize">Resizable</property>
+                      <property name="show">1</property>
+                      <property name="size"></property>
+                      <property name="style"></property>
+                      <property name="subclass">; ; forward_declare</property>
+                      <property name="toolbar_pane">0</property>
+                      <property name="tooltip">ignore last layers of CLIP network; 1 ignores none, 2 ignores one layer (default: -1)&#x0A;&lt;= 0 represents unspecified, will be 1 for SD1.x, 2 for SD2.x</property>
+                      <property name="window_extra_style"></property>
+                      <property name="window_name"></property>
+                      <property name="window_style"></property>
+                      <property name="wrap">0</property>
+                    </object>
+                  </object>
+                  <object class="sizeritem" expanded="false">
+                    <property name="border">5</property>
+                    <property name="flag">wxALL</property>
+                    <property name="proportion">0</property>
+                    <object class="wxSpinCtrl" expanded="false">
+                      <property name="BottomDockable">1</property>
+                      <property name="LeftDockable">1</property>
+                      <property name="RightDockable">1</property>
+                      <property name="TopDockable">1</property>
+                      <property name="aui_layer"></property>
+                      <property name="aui_name"></property>
+                      <property name="aui_position"></property>
+                      <property name="aui_row"></property>
+                      <property name="best_size"></property>
+                      <property name="bg"></property>
+                      <property name="caption"></property>
+                      <property name="caption_visible">1</property>
+                      <property name="center_pane">0</property>
+                      <property name="close_button">1</property>
+                      <property name="context_help"></property>
+                      <property name="context_menu">1</property>
+                      <property name="default_pane">0</property>
+                      <property name="dock">Dock</property>
+                      <property name="dock_fixed">0</property>
+                      <property name="docking">Left</property>
+                      <property name="drag_accept_files">0</property>
+                      <property name="enabled">1</property>
+                      <property name="fg"></property>
+                      <property name="floatable">1</property>
+                      <property name="font"></property>
+                      <property name="gripper">0</property>
+                      <property name="hidden">0</property>
+                      <property name="id">wxID_ANY</property>
+                      <property name="initial">0</property>
+                      <property name="max">2</property>
+                      <property name="max_size"></property>
+                      <property name="maximize_button">0</property>
+                      <property name="maximum_size"></property>
+                      <property name="min">-1</property>
+                      <property name="min_size"></property>
+                      <property name="minimize_button">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="moveable">1</property>
+                      <property name="name">m_clip_skip</property>
+                      <property name="pane_border">1</property>
+                      <property name="pane_position"></property>
+                      <property name="pane_size"></property>
+                      <property name="permission">protected</property>
+                      <property name="pin_button">1</property>
+                      <property name="pos"></property>
+                      <property name="resize">Resizable</property>
+                      <property name="show">1</property>
+                      <property name="size"></property>
+                      <property name="style">wxSP_ARROW_KEYS</property>
+                      <property name="subclass">; ; forward_declare</property>
+                      <property name="toolbar_pane">0</property>
+                      <property name="tooltip">ignore last layers of CLIP network; 1 ignores none, 2 ignores one layer (default: -1)&#x0A;&lt;= 0 represents unspecified, will be 1 for SD1.x, 2 for SD2.x</property>
+                      <property name="value">0</property>
+                      <property name="window_extra_style"></property>
+                      <property name="window_name"></property>
+                      <property name="window_style"></property>
+                    </object>
+                  </object>
+                  <object class="sizeritem" expanded="false">
+                    <property name="border">5</property>
+                    <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
+                    <property name="proportion">0</property>
+                    <object class="wxStaticText" expanded="false">
+                      <property name="BottomDockable">1</property>
+                      <property name="LeftDockable">1</property>
+                      <property name="RightDockable">1</property>
+                      <property name="TopDockable">1</property>
+                      <property name="aui_layer"></property>
+                      <property name="aui_name"></property>
+                      <property name="aui_position"></property>
+                      <property name="aui_row"></property>
+                      <property name="best_size"></property>
+                      <property name="bg"></property>
+                      <property name="caption"></property>
+                      <property name="caption_visible">1</property>
+                      <property name="center_pane">0</property>
+                      <property name="close_button">1</property>
+                      <property name="context_help"></property>
+                      <property name="context_menu">1</property>
+                      <property name="default_pane">0</property>
+                      <property name="dock">Dock</property>
+                      <property name="dock_fixed">0</property>
+                      <property name="docking">Left</property>
+                      <property name="drag_accept_files">0</property>
+                      <property name="enabled">1</property>
+                      <property name="fg"></property>
+                      <property name="floatable">1</property>
+                      <property name="font"></property>
+                      <property name="gripper">0</property>
+                      <property name="hidden">0</property>
+                      <property name="id">wxID_ANY</property>
+                      <property name="label">Steps:</property>
+                      <property name="markup">0</property>
+                      <property name="max_size"></property>
+                      <property name="maximize_button">0</property>
+                      <property name="maximum_size"></property>
+                      <property name="min_size"></property>
+                      <property name="minimize_button">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="moveable">1</property>
+                      <property name="name">m_staticText14</property>
+                      <property name="pane_border">1</property>
+                      <property name="pane_position"></property>
+                      <property name="pane_size"></property>
+                      <property name="permission">protected</property>
+                      <property name="pin_button">1</property>
+                      <property name="pos"></property>
+                      <property name="resize">Resizable</property>
+                      <property name="show">1</property>
+                      <property name="size"></property>
+                      <property name="style"></property>
+                      <property name="subclass">; ; forward_declare</property>
+                      <property name="toolbar_pane">0</property>
+                      <property name="tooltip">number of sample steps (default: 20)</property>
+                      <property name="window_extra_style"></property>
+                      <property name="window_name"></property>
+                      <property name="window_style"></property>
+                      <property name="wrap">-1</property>
+                    </object>
+                  </object>
+                  <object class="sizeritem" expanded="false">
+                    <property name="border">5</property>
+                    <property name="flag">wxALL</property>
+                    <property name="proportion">0</property>
+                    <object class="wxSpinCtrl" expanded="false">
+                      <property name="BottomDockable">1</property>
+                      <property name="LeftDockable">1</property>
+                      <property name="RightDockable">1</property>
+                      <property name="TopDockable">1</property>
+                      <property name="aui_layer"></property>
+                      <property name="aui_name"></property>
+                      <property name="aui_position"></property>
+                      <property name="aui_row"></property>
+                      <property name="best_size"></property>
+                      <property name="bg"></property>
+                      <property name="caption"></property>
+                      <property name="caption_visible">1</property>
+                      <property name="center_pane">0</property>
+                      <property name="close_button">1</property>
+                      <property name="context_help"></property>
+                      <property name="context_menu">1</property>
+                      <property name="default_pane">0</property>
+                      <property name="dock">Dock</property>
+                      <property name="dock_fixed">0</property>
+                      <property name="docking">Left</property>
+                      <property name="drag_accept_files">0</property>
+                      <property name="enabled">1</property>
+                      <property name="fg"></property>
+                      <property name="floatable">1</property>
+                      <property name="font"></property>
+                      <property name="gripper">0</property>
+                      <property name="hidden">0</property>
+                      <property name="id">wxID_ANY</property>
+                      <property name="initial">0</property>
+                      <property name="max">100</property>
+                      <property name="max_size"></property>
+                      <property name="maximize_button">0</property>
+                      <property name="maximum_size"></property>
+                      <property name="min">0</property>
+                      <property name="min_size"></property>
+                      <property name="minimize_button">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="moveable">1</property>
+                      <property name="name">m_steps</property>
+                      <property name="pane_border">1</property>
+                      <property name="pane_position"></property>
+                      <property name="pane_size"></property>
+                      <property name="permission">protected</property>
+                      <property name="pin_button">1</property>
+                      <property name="pos"></property>
+                      <property name="resize">Resizable</property>
+                      <property name="show">1</property>
+                      <property name="size"></property>
+                      <property name="style">wxSP_ARROW_KEYS</property>
+                      <property name="subclass">; ; forward_declare</property>
+                      <property name="toolbar_pane">0</property>
+                      <property name="tooltip">number of sample steps (default: 20)</property>
+                      <property name="value"></property>
+                      <property name="window_extra_style"></property>
+                      <property name="window_name"></property>
+                      <property name="window_style"></property>
+                    </object>
+                  </object>
+                  <object class="sizeritem" expanded="false">
+                    <property name="border">5</property>
+                    <property name="flag">wxALL|wxEXPAND</property>
+                    <property name="proportion">0</property>
+                    <object class="wxStaticLine" expanded="false">
+                      <property name="BottomDockable">1</property>
+                      <property name="LeftDockable">1</property>
+                      <property name="RightDockable">1</property>
+                      <property name="TopDockable">1</property>
+                      <property name="aui_layer"></property>
+                      <property name="aui_name"></property>
+                      <property name="aui_position"></property>
+                      <property name="aui_row"></property>
+                      <property name="best_size"></property>
+                      <property name="bg"></property>
+                      <property name="caption"></property>
+                      <property name="caption_visible">1</property>
+                      <property name="center_pane">0</property>
+                      <property name="close_button">1</property>
+                      <property name="context_help"></property>
+                      <property name="context_menu">1</property>
+                      <property name="default_pane">0</property>
+                      <property name="dock">Dock</property>
+                      <property name="dock_fixed">0</property>
+                      <property name="docking">Left</property>
+                      <property name="drag_accept_files">0</property>
+                      <property name="enabled"></property>
+                      <property name="fg"></property>
+                      <property name="floatable">1</property>
+                      <property name="font"></property>
+                      <property name="gripper">0</property>
+                      <property name="hidden"></property>
+                      <property name="id">wxID_ANY</property>
+                      <property name="max_size"></property>
+                      <property name="maximize_button">0</property>
+                      <property name="maximum_size"></property>
+                      <property name="min_size"></property>
+                      <property name="minimize_button">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="moveable">1</property>
+                      <property name="name">m_staticLine236</property>
+                      <property name="pane_border">1</property>
+                      <property name="pane_position"></property>
+                      <property name="pane_size"></property>
+                      <property name="permission">protected</property>
+                      <property name="pin_button">1</property>
+                      <property name="pos"></property>
+                      <property name="resize">Resizable</property>
+                      <property name="show">1</property>
+                      <property name="size"></property>
+                      <property name="style">wxLI_VERTICAL</property>
+                      <property name="subclass">; ; forward_declare</property>
+                      <property name="toolbar_pane">0</property>
+                      <property name="tooltip"></property>
+                      <property name="window_extra_style"></property>
+                      <property name="window_name"></property>
+                      <property name="window_style"></property>
+                    </object>
+                  </object>
+                  <object class="sizeritem" expanded="false">
+                    <property name="border">5</property>
+                    <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
+                    <property name="proportion">0</property>
+                    <object class="wxStaticText" expanded="false">
+                      <property name="BottomDockable">1</property>
+                      <property name="LeftDockable">1</property>
+                      <property name="RightDockable">1</property>
+                      <property name="TopDockable">1</property>
+                      <property name="aui_layer"></property>
+                      <property name="aui_name"></property>
+                      <property name="aui_position"></property>
+                      <property name="aui_row"></property>
+                      <property name="best_size"></property>
+                      <property name="bg"></property>
+                      <property name="caption"></property>
+                      <property name="caption_visible">1</property>
+                      <property name="center_pane">0</property>
+                      <property name="close_button">1</property>
+                      <property name="context_help"></property>
+                      <property name="context_menu">1</property>
+                      <property name="default_pane">0</property>
+                      <property name="dock">Dock</property>
+                      <property name="dock_fixed">0</property>
+                      <property name="docking">Left</property>
+                      <property name="drag_accept_files">0</property>
+                      <property name="enabled">1</property>
+                      <property name="fg"></property>
+                      <property name="floatable">1</property>
+                      <property name="font"></property>
+                      <property name="gripper">0</property>
+                      <property name="hidden"></property>
+                      <property name="id">wxID_ANY</property>
+                      <property name="label">Width:</property>
+                      <property name="markup">0</property>
+                      <property name="max_size"></property>
+                      <property name="maximize_button">0</property>
+                      <property name="maximum_size"></property>
+                      <property name="min_size"></property>
+                      <property name="minimize_button">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="moveable">1</property>
+                      <property name="name">m_staticText237</property>
+                      <property name="pane_border">1</property>
+                      <property name="pane_position"></property>
+                      <property name="pane_size"></property>
+                      <property name="permission">protected</property>
+                      <property name="pin_button">1</property>
+                      <property name="pos"></property>
+                      <property name="resize">Resizable</property>
+                      <property name="show">1</property>
+                      <property name="size"></property>
+                      <property name="style"></property>
+                      <property name="subclass">; ; forward_declare</property>
+                      <property name="toolbar_pane">0</property>
+                      <property name="tooltip"></property>
+                      <property name="window_extra_style"></property>
+                      <property name="window_name"></property>
+                      <property name="window_style"></property>
+                      <property name="wrap">0</property>
+                    </object>
+                  </object>
+                  <object class="sizeritem" expanded="false">
+                    <property name="border">5</property>
+                    <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
+                    <property name="proportion">0</property>
+                    <object class="wxSpinCtrl" expanded="false">
+                      <property name="BottomDockable">1</property>
+                      <property name="LeftDockable">1</property>
+                      <property name="RightDockable">1</property>
+                      <property name="TopDockable">1</property>
+                      <property name="aui_layer"></property>
+                      <property name="aui_name"></property>
+                      <property name="aui_position"></property>
+                      <property name="aui_row"></property>
+                      <property name="best_size"></property>
+                      <property name="bg"></property>
+                      <property name="caption"></property>
+                      <property name="caption_visible">1</property>
+                      <property name="center_pane">0</property>
+                      <property name="close_button">1</property>
+                      <property name="context_help"></property>
+                      <property name="context_menu">1</property>
+                      <property name="default_pane">0</property>
+                      <property name="dock">Dock</property>
+                      <property name="dock_fixed">0</property>
+                      <property name="docking">Left</property>
+                      <property name="drag_accept_files">0</property>
+                      <property name="enabled"></property>
+                      <property name="fg"></property>
+                      <property name="floatable">1</property>
+                      <property name="font"></property>
+                      <property name="gripper">0</property>
+                      <property name="hidden"></property>
+                      <property name="id">wxID_ANY</property>
+                      <property name="initial">512</property>
+                      <property name="max">2048</property>
+                      <property name="max_size"></property>
+                      <property name="maximize_button">0</property>
+                      <property name="maximum_size"></property>
+                      <property name="min">128</property>
+                      <property name="min_size"></property>
+                      <property name="minimize_button">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="moveable">1</property>
+                      <property name="name">m_width</property>
+                      <property name="pane_border">1</property>
+                      <property name="pane_position"></property>
+                      <property name="pane_size"></property>
+                      <property name="permission">protected</property>
+                      <property name="pin_button">1</property>
+                      <property name="pos"></property>
+                      <property name="resize">Resizable</property>
+                      <property name="show">1</property>
+                      <property name="size"></property>
+                      <property name="style">wxSP_ARROW_KEYS</property>
+                      <property name="subclass">; ; forward_declare</property>
+                      <property name="toolbar_pane">0</property>
+                      <property name="tooltip"></property>
+                      <property name="value">512</property>
+                      <property name="window_extra_style"></property>
+                      <property name="window_name"></property>
+                      <property name="window_style"></property>
+                    </object>
+                  </object>
+                  <object class="sizeritem" expanded="false">
+                    <property name="border">5</property>
+                    <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
+                    <property name="proportion">0</property>
+                    <object class="wxStaticText" expanded="false">
+                      <property name="BottomDockable">1</property>
+                      <property name="LeftDockable">1</property>
+                      <property name="RightDockable">1</property>
+                      <property name="TopDockable">1</property>
+                      <property name="aui_layer"></property>
+                      <property name="aui_name"></property>
+                      <property name="aui_position"></property>
+                      <property name="aui_row"></property>
+                      <property name="best_size"></property>
+                      <property name="bg"></property>
+                      <property name="caption"></property>
+                      <property name="caption_visible">1</property>
+                      <property name="center_pane">0</property>
+                      <property name="close_button">1</property>
+                      <property name="context_help"></property>
+                      <property name="context_menu">1</property>
+                      <property name="default_pane">0</property>
+                      <property name="dock">Dock</property>
+                      <property name="dock_fixed">0</property>
+                      <property name="docking">Left</property>
+                      <property name="drag_accept_files">0</property>
+                      <property name="enabled">1</property>
+                      <property name="fg"></property>
+                      <property name="floatable">1</property>
+                      <property name="font"></property>
+                      <property name="gripper">0</property>
+                      <property name="hidden"></property>
+                      <property name="id">wxID_ANY</property>
+                      <property name="label">Height:</property>
+                      <property name="markup">0</property>
+                      <property name="max_size"></property>
+                      <property name="maximize_button">0</property>
+                      <property name="maximum_size"></property>
+                      <property name="min_size"></property>
+                      <property name="minimize_button">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="moveable">1</property>
+                      <property name="name">m_staticText239</property>
+                      <property name="pane_border">1</property>
+                      <property name="pane_position"></property>
+                      <property name="pane_size"></property>
+                      <property name="permission">protected</property>
+                      <property name="pin_button">1</property>
+                      <property name="pos"></property>
+                      <property name="resize">Resizable</property>
+                      <property name="show">1</property>
+                      <property name="size"></property>
+                      <property name="style"></property>
+                      <property name="subclass">; ; forward_declare</property>
+                      <property name="toolbar_pane">0</property>
+                      <property name="tooltip"></property>
+                      <property name="window_extra_style"></property>
+                      <property name="window_name"></property>
+                      <property name="window_style"></property>
+                      <property name="wrap">0</property>
+                    </object>
+                  </object>
+                  <object class="sizeritem" expanded="false">
+                    <property name="border">5</property>
+                    <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
+                    <property name="proportion">0</property>
+                    <object class="wxSpinCtrl" expanded="false">
+                      <property name="BottomDockable">1</property>
+                      <property name="LeftDockable">1</property>
+                      <property name="RightDockable">1</property>
+                      <property name="TopDockable">1</property>
+                      <property name="aui_layer"></property>
+                      <property name="aui_name"></property>
+                      <property name="aui_position"></property>
+                      <property name="aui_row"></property>
+                      <property name="best_size"></property>
+                      <property name="bg"></property>
+                      <property name="caption"></property>
+                      <property name="caption_visible">1</property>
+                      <property name="center_pane">0</property>
+                      <property name="close_button">1</property>
+                      <property name="context_help"></property>
+                      <property name="context_menu">1</property>
+                      <property name="default_pane">0</property>
+                      <property name="dock">Dock</property>
+                      <property name="dock_fixed">0</property>
+                      <property name="docking">Left</property>
+                      <property name="drag_accept_files">0</property>
+                      <property name="enabled"></property>
+                      <property name="fg"></property>
+                      <property name="floatable">1</property>
+                      <property name="font"></property>
+                      <property name="gripper">0</property>
+                      <property name="hidden"></property>
+                      <property name="id">wxID_ANY</property>
+                      <property name="initial">512</property>
+                      <property name="max">2048</property>
+                      <property name="max_size"></property>
+                      <property name="maximize_button">0</property>
+                      <property name="maximum_size"></property>
+                      <property name="min">128</property>
+                      <property name="min_size"></property>
+                      <property name="minimize_button">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="moveable">1</property>
+                      <property name="name">m_height</property>
+                      <property name="pane_border">1</property>
+                      <property name="pane_position"></property>
+                      <property name="pane_size"></property>
+                      <property name="permission">protected</property>
+                      <property name="pin_button">1</property>
+                      <property name="pos"></property>
+                      <property name="resize">Resizable</property>
+                      <property name="show">1</property>
+                      <property name="size"></property>
+                      <property name="style">wxSP_ARROW_KEYS</property>
+                      <property name="subclass">; ; forward_declare</property>
+                      <property name="toolbar_pane">0</property>
+                      <property name="tooltip"></property>
+                      <property name="value">512</property>
+                      <property name="window_extra_style"></property>
+                      <property name="window_name"></property>
+                      <property name="window_style"></property>
+                    </object>
+                  </object>
+                  <object class="sizeritem" expanded="false">
+                    <property name="border">5</property>
+                    <property name="flag">wxALL</property>
+                    <property name="proportion">0</property>
+                    <object class="wxButton" expanded="false">
+                      <property name="BottomDockable">1</property>
+                      <property name="LeftDockable">1</property>
+                      <property name="RightDockable">1</property>
+                      <property name="TopDockable">1</property>
+                      <property name="aui_layer"></property>
+                      <property name="aui_name"></property>
+                      <property name="aui_position"></property>
+                      <property name="aui_row"></property>
+                      <property name="auth_needed">0</property>
+                      <property name="best_size"></property>
+                      <property name="bg"></property>
+                      <property name="bitmap">Load From Embedded File; icons/16/replace.png</property>
+                      <property name="caption"></property>
+                      <property name="caption_visible">1</property>
+                      <property name="center_pane">0</property>
+                      <property name="close_button">1</property>
+                      <property name="context_help"></property>
+                      <property name="context_menu">1</property>
+                      <property name="current"></property>
+                      <property name="default">0</property>
+                      <property name="default_pane">0</property>
+                      <property name="disabled"></property>
+                      <property name="dock">Dock</property>
+                      <property name="dock_fixed">0</property>
+                      <property name="docking">Left</property>
+                      <property name="drag_accept_files">0</property>
+                      <property name="enabled">1</property>
+                      <property name="fg"></property>
+                      <property name="floatable">1</property>
+                      <property name="focus"></property>
+                      <property name="font"></property>
+                      <property name="gripper">0</property>
+                      <property name="hidden">0</property>
+                      <property name="id">wxID_ANY</property>
+                      <property name="label">Swap</property>
+                      <property name="margins"></property>
+                      <property name="markup">0</property>
+                      <property name="max_size"></property>
+                      <property name="maximize_button">0</property>
+                      <property name="maximum_size"></property>
+                      <property name="min_size"></property>
+                      <property name="minimize_button">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="moveable">1</property>
+                      <property name="name">m_button7</property>
+                      <property name="pane_border">1</property>
+                      <property name="pane_position"></property>
+                      <property name="pane_size"></property>
+                      <property name="permission">protected</property>
+                      <property name="pin_button">1</property>
+                      <property name="pos"></property>
+                      <property name="position"></property>
+                      <property name="pressed"></property>
+                      <property name="resize">Resizable</property>
+                      <property name="show">1</property>
+                      <property name="size"></property>
+                      <property name="style"></property>
+                      <property name="subclass">; ; forward_declare</property>
+                      <property name="toolbar_pane">0</property>
+                      <property name="tooltip">Swap width and height</property>
+                      <property name="validator_data_type"></property>
+                      <property name="validator_style">wxFILTER_NONE</property>
+                      <property name="validator_type">wxDefaultValidator</property>
+                      <property name="validator_variable"></property>
+                      <property name="window_extra_style"></property>
+                      <property name="window_name"></property>
+                      <property name="window_style"></property>
+                      <event name="OnButtonClick">onResolutionSwap</event>
+                    </object>
+                  </object>
+                </object>
+              </object>
+              <object class="sizeritem" expanded="true">
+                <property name="border">0</property>
+                <property name="flag">wxALIGN_TOP|wxEXPAND</property>
+                <property name="proportion">1</property>
+                <object class="wxNotebook" expanded="true">
+                  <property name="BottomDockable">1</property>
+                  <property name="LeftDockable">1</property>
+                  <property name="RightDockable">1</property>
+                  <property name="TopDockable">1</property>
+                  <property name="aui_layer"></property>
+                  <property name="aui_name"></property>
+                  <property name="aui_position"></property>
+                  <property name="aui_row"></property>
+                  <property name="best_size"></property>
+                  <property name="bg"></property>
+                  <property name="bitmapsize"></property>
+                  <property name="caption"></property>
+                  <property name="caption_visible">1</property>
+                  <property name="center_pane">0</property>
+                  <property name="close_button">1</property>
+                  <property name="context_help"></property>
+                  <property name="context_menu">1</property>
+                  <property name="default_pane">0</property>
+                  <property name="dock">Dock</property>
+                  <property name="dock_fixed">0</property>
+                  <property name="docking">Left</property>
+                  <property name="drag_accept_files">0</property>
+                  <property name="enabled"></property>
+                  <property name="fg"></property>
+                  <property name="floatable">1</property>
+                  <property name="font"></property>
+                  <property name="gripper">0</property>
+                  <property name="hidden"></property>
+                  <property name="id">wxID_ANY</property>
+                  <property name="max_size"></property>
+                  <property name="maximize_button">0</property>
+                  <property name="maximum_size"></property>
+                  <property name="min_size"></property>
+                  <property name="minimize_button">0</property>
+                  <property name="minimum_size">-1,200</property>
+                  <property name="moveable">1</property>
+                  <property name="name">m_notebook1302</property>
+                  <property name="pane_border">1</property>
+                  <property name="pane_position"></property>
+                  <property name="pane_size"></property>
+                  <property name="permission">protected</property>
+                  <property name="pin_button">1</property>
+                  <property name="pos"></property>
+                  <property name="resize">Resizable</property>
+                  <property name="show">1</property>
+                  <property name="size">-1,200</property>
+                  <property name="style">wxBK_DEFAULT</property>
+                  <property name="subclass">; ; forward_declare</property>
+                  <property name="toolbar_pane">0</property>
+                  <property name="tooltip"></property>
+                  <property name="window_extra_style"></property>
+                  <property name="window_name"></property>
+                  <property name="window_style"></property>
+                  <object class="notebookpage" expanded="true">
+                    <property name="bitmap">Load From Embedded File; icons/16/images.png</property>
+                    <property name="label">Jobs and Images</property>
+                    <property name="select">0</property>
+                    <object class="wxPanel" expanded="true">
+                      <property name="BottomDockable">1</property>
+                      <property name="LeftDockable">1</property>
+                      <property name="RightDockable">1</property>
+                      <property name="TopDockable">1</property>
+                      <property name="aui_layer"></property>
+                      <property name="aui_name"></property>
+                      <property name="aui_position"></property>
+                      <property name="aui_row"></property>
+                      <property name="best_size"></property>
+                      <property name="bg"></property>
+                      <property name="caption"></property>
+                      <property name="caption_visible">1</property>
+                      <property name="center_pane">0</property>
+                      <property name="close_button">1</property>
+                      <property name="context_help"></property>
+                      <property name="context_menu">1</property>
+                      <property name="default_pane">0</property>
+                      <property name="dock">Dock</property>
+                      <property name="dock_fixed">0</property>
+                      <property name="docking">Left</property>
+                      <property name="drag_accept_files">0</property>
+                      <property name="enabled">1</property>
+                      <property name="fg"></property>
+                      <property name="floatable">1</property>
+                      <property name="font"></property>
+                      <property name="gripper">0</property>
+                      <property name="hidden">0</property>
+                      <property name="id">wxID_ANY</property>
+                      <property name="max_size"></property>
+                      <property name="maximize_button">0</property>
+                      <property name="maximum_size"></property>
+                      <property name="min_size"></property>
+                      <property name="minimize_button">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="moveable">1</property>
+                      <property name="name">m_jobs_panel</property>
+                      <property name="pane_border">1</property>
+                      <property name="pane_position"></property>
+                      <property name="pane_size"></property>
+                      <property name="permission">protected</property>
+                      <property name="pin_button">1</property>
+                      <property name="pos"></property>
+                      <property name="resize">Resizable</property>
+                      <property name="show">1</property>
+                      <property name="size"></property>
+                      <property name="subclass">; ; forward_declare</property>
+                      <property name="toolbar_pane">0</property>
+                      <property name="tooltip"></property>
+                      <property name="window_extra_style"></property>
+                      <property name="window_name"></property>
+                      <property name="window_style">wxTAB_TRAVERSAL</property>
+                      <object class="wxBoxSizer" expanded="true">
+                        <property name="minimum_size"></property>
+                        <property name="name">bSizer17</property>
+                        <property name="orient">wxVERTICAL</property>
+                        <property name="permission">none</property>
+                        <object class="sizeritem" expanded="false">
+                          <property name="border">5</property>
+                          <property name="flag">wxEXPAND</property>
+                          <property name="proportion">0</property>
+                          <object class="wxBoxSizer" expanded="false">
+                            <property name="minimum_size"></property>
+                            <property name="name">bSizer18</property>
+                            <property name="orient">wxHORIZONTAL</property>
+                            <property name="permission">none</property>
+                            <object class="sizeritem" expanded="false">
+                              <property name="border">5</property>
+                              <property name="flag">wxALL</property>
+                              <property name="proportion">0</property>
+                              <object class="wxButton" expanded="false">
+                                <property name="BottomDockable">1</property>
+                                <property name="LeftDockable">1</property>
+                                <property name="RightDockable">1</property>
+                                <property name="TopDockable">1</property>
+                                <property name="aui_layer"></property>
+                                <property name="aui_name"></property>
+                                <property name="aui_position"></property>
+                                <property name="aui_row"></property>
+                                <property name="auth_needed">0</property>
+                                <property name="best_size"></property>
+                                <property name="bg"></property>
+                                <property name="bitmap">Load From Embedded File; icons/16/forward.png</property>
+                                <property name="caption"></property>
+                                <property name="caption_visible">1</property>
+                                <property name="center_pane">0</property>
+                                <property name="close_button">1</property>
+                                <property name="context_help"></property>
+                                <property name="context_menu">1</property>
+                                <property name="current"></property>
+                                <property name="default">0</property>
+                                <property name="default_pane">0</property>
+                                <property name="disabled"></property>
+                                <property name="dock">Dock</property>
+                                <property name="dock_fixed">0</property>
+                                <property name="docking">Left</property>
+                                <property name="drag_accept_files">0</property>
+                                <property name="enabled">0</property>
+                                <property name="fg"></property>
+                                <property name="floatable">1</property>
+                                <property name="focus"></property>
+                                <property name="font"></property>
+                                <property name="gripper">0</property>
+                                <property name="hidden">0</property>
+                                <property name="id">wxID_ANY</property>
+                                <property name="label">Start jobs</property>
+                                <property name="margins"></property>
+                                <property name="markup">0</property>
+                                <property name="max_size"></property>
+                                <property name="maximize_button">0</property>
+                                <property name="maximum_size"></property>
+                                <property name="min_size"></property>
+                                <property name="minimize_button">0</property>
+                                <property name="minimum_size"></property>
+                                <property name="moveable">1</property>
+                                <property name="name">m_start_jobs</property>
+                                <property name="pane_border">1</property>
+                                <property name="pane_position"></property>
+                                <property name="pane_size"></property>
+                                <property name="permission">protected</property>
+                                <property name="pin_button">1</property>
+                                <property name="pos"></property>
+                                <property name="position"></property>
+                                <property name="pressed"></property>
+                                <property name="resize">Resizable</property>
+                                <property name="show">1</property>
+                                <property name="size"></property>
+                                <property name="style"></property>
+                                <property name="subclass">; ; forward_declare</property>
+                                <property name="toolbar_pane">0</property>
+                                <property name="tooltip"></property>
+                                <property name="validator_data_type"></property>
+                                <property name="validator_style">wxFILTER_NONE</property>
+                                <property name="validator_type">wxDefaultValidator</property>
+                                <property name="validator_variable"></property>
+                                <property name="window_extra_style"></property>
+                                <property name="window_name"></property>
+                                <property name="window_style"></property>
+                                <event name="OnButtonClick">onJobsStart</event>
+                              </object>
+                            </object>
+                            <object class="sizeritem" expanded="false">
+                              <property name="border">5</property>
+                              <property name="flag">wxALL</property>
+                              <property name="proportion">0</property>
+                              <object class="wxButton" expanded="false">
+                                <property name="BottomDockable">1</property>
+                                <property name="LeftDockable">1</property>
+                                <property name="RightDockable">1</property>
+                                <property name="TopDockable">1</property>
+                                <property name="aui_layer"></property>
+                                <property name="aui_name"></property>
+                                <property name="aui_position"></property>
+                                <property name="aui_row"></property>
+                                <property name="auth_needed">0</property>
+                                <property name="best_size"></property>
+                                <property name="bg"></property>
+                                <property name="bitmap">Load From Embedded File; icons/16/pause.png</property>
+                                <property name="caption"></property>
+                                <property name="caption_visible">1</property>
+                                <property name="center_pane">0</property>
+                                <property name="close_button">1</property>
+                                <property name="context_help"></property>
+                                <property name="context_menu">1</property>
+                                <property name="current"></property>
+                                <property name="default">0</property>
+                                <property name="default_pane">0</property>
+                                <property name="disabled"></property>
+                                <property name="dock">Dock</property>
+                                <property name="dock_fixed">0</property>
+                                <property name="docking">Left</property>
+                                <property name="drag_accept_files">0</property>
+                                <property name="enabled">0</property>
+                                <property name="fg"></property>
+                                <property name="floatable">1</property>
+                                <property name="focus"></property>
+                                <property name="font"></property>
+                                <property name="gripper">0</property>
+                                <property name="hidden">0</property>
+                                <property name="id">wxID_ANY</property>
+                                <property name="label">Pause</property>
+                                <property name="margins"></property>
+                                <property name="markup">0</property>
+                                <property name="max_size"></property>
+                                <property name="maximize_button">0</property>
+                                <property name="maximum_size"></property>
+                                <property name="min_size"></property>
+                                <property name="minimize_button">0</property>
+                                <property name="minimum_size"></property>
+                                <property name="moveable">1</property>
+                                <property name="name">m_pause_jobs</property>
+                                <property name="pane_border">1</property>
+                                <property name="pane_position"></property>
+                                <property name="pane_size"></property>
+                                <property name="permission">protected</property>
+                                <property name="pin_button">1</property>
+                                <property name="pos"></property>
+                                <property name="position"></property>
+                                <property name="pressed"></property>
+                                <property name="resize">Resizable</property>
+                                <property name="show">1</property>
+                                <property name="size"></property>
+                                <property name="style"></property>
+                                <property name="subclass">; ; forward_declare</property>
+                                <property name="toolbar_pane">0</property>
+                                <property name="tooltip"></property>
+                                <property name="validator_data_type"></property>
+                                <property name="validator_style">wxFILTER_NONE</property>
+                                <property name="validator_type">wxDefaultValidator</property>
+                                <property name="validator_variable"></property>
+                                <property name="window_extra_style"></property>
+                                <property name="window_name"></property>
+                                <property name="window_style"></property>
+                                <event name="OnButtonClick">onJobsPause</event>
+                              </object>
+                            </object>
+                            <object class="sizeritem" expanded="false">
+                              <property name="border">5</property>
+                              <property name="flag">wxALL</property>
+                              <property name="proportion">0</property>
+                              <object class="wxButton" expanded="false">
+                                <property name="BottomDockable">1</property>
+                                <property name="LeftDockable">1</property>
+                                <property name="RightDockable">1</property>
+                                <property name="TopDockable">1</property>
+                                <property name="aui_layer"></property>
+                                <property name="aui_name"></property>
+                                <property name="aui_position"></property>
+                                <property name="aui_row"></property>
+                                <property name="auth_needed">0</property>
+                                <property name="best_size"></property>
+                                <property name="bg"></property>
+                                <property name="bitmap">Load From Embedded File; icons/16/trash.png</property>
+                                <property name="caption"></property>
+                                <property name="caption_visible">1</property>
+                                <property name="center_pane">0</property>
+                                <property name="close_button">1</property>
+                                <property name="context_help"></property>
+                                <property name="context_menu">1</property>
+                                <property name="current"></property>
+                                <property name="default">0</property>
+                                <property name="default_pane">0</property>
+                                <property name="disabled"></property>
+                                <property name="dock">Dock</property>
+                                <property name="dock_fixed">0</property>
+                                <property name="docking">Left</property>
+                                <property name="drag_accept_files">0</property>
+                                <property name="enabled">0</property>
+                                <property name="fg"></property>
+                                <property name="floatable">1</property>
+                                <property name="focus"></property>
+                                <property name="font"></property>
+                                <property name="gripper">0</property>
+                                <property name="hidden">0</property>
+                                <property name="id">wxID_ANY</property>
+                                <property name="label">Delete all</property>
+                                <property name="margins"></property>
+                                <property name="markup">0</property>
+                                <property name="max_size"></property>
+                                <property name="maximize_button">0</property>
+                                <property name="maximum_size"></property>
+                                <property name="min_size"></property>
+                                <property name="minimize_button">0</property>
+                                <property name="minimum_size"></property>
+                                <property name="moveable">1</property>
+                                <property name="name">m_delete_all_jobs</property>
+                                <property name="pane_border">1</property>
+                                <property name="pane_position"></property>
+                                <property name="pane_size"></property>
+                                <property name="permission">protected</property>
+                                <property name="pin_button">1</property>
+                                <property name="pos"></property>
+                                <property name="position"></property>
+                                <property name="pressed"></property>
+                                <property name="resize">Resizable</property>
+                                <property name="show">1</property>
+                                <property name="size"></property>
+                                <property name="style"></property>
+                                <property name="subclass">; ; forward_declare</property>
+                                <property name="toolbar_pane">0</property>
+                                <property name="tooltip"></property>
+                                <property name="validator_data_type"></property>
+                                <property name="validator_style">wxFILTER_NONE</property>
+                                <property name="validator_type">wxDefaultValidator</property>
+                                <property name="validator_variable"></property>
+                                <property name="window_extra_style"></property>
+                                <property name="window_name"></property>
+                                <property name="window_style"></property>
+                                <event name="OnButtonClick">onJobsDelete</event>
+                              </object>
+                            </object>
+                          </object>
+                        </object>
+                        <object class="sizeritem" expanded="true">
+                          <property name="border">5</property>
+                          <property name="flag">wxALL|wxEXPAND</property>
+                          <property name="proportion">1</property>
+                          <object class="wxDataViewListCtrl" expanded="true">
+                            <property name="bg"></property>
+                            <property name="context_help"></property>
+                            <property name="context_menu">1</property>
+                            <property name="drag_accept_files">0</property>
+                            <property name="enabled">1</property>
+                            <property name="fg"></property>
+                            <property name="font"></property>
+                            <property name="hidden">0</property>
+                            <property name="id">wxID_ANY</property>
+                            <property name="maximum_size"></property>
+                            <property name="minimum_size"></property>
+                            <property name="name">m_joblist</property>
+                            <property name="permission">protected</property>
+                            <property name="pos"></property>
+                            <property name="size"></property>
+                            <property name="style"></property>
+                            <property name="subclass">; ; forward_declare</property>
+                            <property name="tooltip"></property>
+                            <property name="window_extra_style"></property>
+                            <property name="window_name"></property>
+                            <property name="window_style"></property>
+                            <event name="OnDataViewListCtrlItemActivated">onJoblistItemActivated</event>
+                            <event name="OnDataViewListCtrlSelectionChanged">onJoblistSelectionChanged</event>
+                          </object>
+                        </object>
+                      </object>
+                    </object>
+                  </object>
+                  <object class="notebookpage" expanded="false">
+                    <property name="bitmap">Load From Embedded File; icons/16/text_box_dots.png</property>
+                    <property name="label">Text2IMG</property>
+                    <property name="select">1</property>
+                    <object class="wxPanel" expanded="false">
+                      <property name="BottomDockable">1</property>
+                      <property name="LeftDockable">1</property>
+                      <property name="RightDockable">1</property>
+                      <property name="TopDockable">1</property>
+                      <property name="aui_layer"></property>
+                      <property name="aui_name"></property>
+                      <property name="aui_position"></property>
+                      <property name="aui_row"></property>
+                      <property name="best_size"></property>
+                      <property name="bg"></property>
+                      <property name="caption"></property>
+                      <property name="caption_visible">1</property>
+                      <property name="center_pane">0</property>
+                      <property name="close_button">1</property>
+                      <property name="context_help"></property>
+                      <property name="context_menu">1</property>
+                      <property name="default_pane">0</property>
+                      <property name="dock">Dock</property>
+                      <property name="dock_fixed">0</property>
+                      <property name="docking">Left</property>
+                      <property name="drag_accept_files">0</property>
+                      <property name="enabled"></property>
+                      <property name="fg"></property>
+                      <property name="floatable">1</property>
+                      <property name="font"></property>
+                      <property name="gripper">0</property>
+                      <property name="hidden"></property>
+                      <property name="id">wxID_ANY</property>
+                      <property name="max_size"></property>
+                      <property name="maximize_button">0</property>
+                      <property name="maximum_size"></property>
+                      <property name="min_size"></property>
+                      <property name="minimize_button">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="moveable">1</property>
+                      <property name="name">m_text2img_panel</property>
+                      <property name="pane_border">1</property>
+                      <property name="pane_position"></property>
+                      <property name="pane_size"></property>
+                      <property name="permission">protected</property>
+                      <property name="pin_button">1</property>
+                      <property name="pos"></property>
+                      <property name="resize">Resizable</property>
+                      <property name="show">1</property>
+                      <property name="size"></property>
+                      <property name="subclass">; ; forward_declare</property>
+                      <property name="toolbar_pane">0</property>
+                      <property name="tooltip"></property>
+                      <property name="window_extra_style"></property>
+                      <property name="window_name"></property>
+                      <property name="window_style">wxTAB_TRAVERSAL</property>
+                      <object class="wxBoxSizer" expanded="false">
+                        <property name="minimum_size">-1,120</property>
+                        <property name="name">sizer0004</property>
+                        <property name="orient">wxHORIZONTAL</property>
+                        <property name="permission">none</property>
+                        <object class="sizeritem" expanded="false">
+                          <property name="border">1</property>
+                          <property name="flag">wxALL|wxEXPAND</property>
+                          <property name="proportion">1</property>
+                          <object class="wxTextCtrl" expanded="false">
+                            <property name="BottomDockable">1</property>
+                            <property name="LeftDockable">1</property>
+                            <property name="RightDockable">1</property>
+                            <property name="TopDockable">1</property>
+                            <property name="aui_layer"></property>
+                            <property name="aui_name"></property>
+                            <property name="aui_position"></property>
+                            <property name="aui_row"></property>
+                            <property name="best_size"></property>
+                            <property name="bg"></property>
+                            <property name="caption"></property>
+                            <property name="caption_visible">1</property>
+                            <property name="center_pane">0</property>
+                            <property name="close_button">1</property>
+                            <property name="context_help"></property>
+                            <property name="context_menu">1</property>
+                            <property name="default_pane">0</property>
+                            <property name="dock">Dock</property>
+                            <property name="dock_fixed">0</property>
+                            <property name="docking">Left</property>
+                            <property name="drag_accept_files">0</property>
+                            <property name="enabled"></property>
+                            <property name="fg"></property>
+                            <property name="floatable">1</property>
+                            <property name="font"></property>
+                            <property name="gripper">0</property>
+                            <property name="hidden"></property>
+                            <property name="id">wxID_ANY</property>
+                            <property name="max_size"></property>
+                            <property name="maximize_button">0</property>
+                            <property name="maximum_size"></property>
+                            <property name="maxlength">0</property>
+                            <property name="min_size"></property>
+                            <property name="minimize_button">0</property>
+                            <property name="minimum_size">-1,150</property>
+                            <property name="moveable">1</property>
+                            <property name="name">m_prompt</property>
+                            <property name="pane_border">1</property>
+                            <property name="pane_position"></property>
+                            <property name="pane_size"></property>
+                            <property name="permission">protected</property>
+                            <property name="pin_button">1</property>
+                            <property name="pos"></property>
+                            <property name="resize">Resizable</property>
+                            <property name="show">1</property>
+                            <property name="size"></property>
+                            <property name="style">wxTE_WORDWRAP|wxTE_PROCESS_ENTER|wxTE_MULTILINE</property>
+                            <property name="subclass">; ; forward_declare</property>
+                            <property name="toolbar_pane">0</property>
+                            <property name="tooltip"></property>
+                            <property name="validator_data_type"></property>
+                            <property name="validator_style">wxFILTER_NONE</property>
+                            <property name="validator_type">wxDefaultValidator</property>
+                            <property name="validator_variable"></property>
+                            <property name="value"></property>
+                            <property name="window_extra_style"></property>
+                            <property name="window_name"></property>
+                            <property name="window_style"></property>
+                          </object>
+                        </object>
+                        <object class="sizeritem" expanded="false">
+                          <property name="border">1</property>
+                          <property name="flag">wxALL|wxEXPAND</property>
+                          <property name="proportion">1</property>
+                          <object class="wxTextCtrl" expanded="false">
+                            <property name="BottomDockable">1</property>
+                            <property name="LeftDockable">1</property>
+                            <property name="RightDockable">1</property>
+                            <property name="TopDockable">1</property>
+                            <property name="aui_layer"></property>
+                            <property name="aui_name"></property>
+                            <property name="aui_position"></property>
+                            <property name="aui_row"></property>
+                            <property name="best_size"></property>
+                            <property name="bg"></property>
+                            <property name="caption"></property>
+                            <property name="caption_visible">1</property>
+                            <property name="center_pane">0</property>
+                            <property name="close_button">1</property>
+                            <property name="context_help"></property>
+                            <property name="context_menu">1</property>
+                            <property name="default_pane">0</property>
+                            <property name="dock">Dock</property>
+                            <property name="dock_fixed">0</property>
+                            <property name="docking">Left</property>
+                            <property name="drag_accept_files">0</property>
+                            <property name="enabled"></property>
+                            <property name="fg"></property>
+                            <property name="floatable">1</property>
+                            <property name="font">Arial,90,400,-1,75,0</property>
+                            <property name="gripper">0</property>
+                            <property name="hidden"></property>
+                            <property name="id">wxID_ANY</property>
+                            <property name="max_size"></property>
+                            <property name="maximize_button">0</property>
+                            <property name="maximum_size"></property>
+                            <property name="maxlength">0</property>
+                            <property name="min_size"></property>
+                            <property name="minimize_button">0</property>
+                            <property name="minimum_size">-1,150</property>
+                            <property name="moveable">1</property>
+                            <property name="name">m_neg_prompt</property>
+                            <property name="pane_border">1</property>
+                            <property name="pane_position"></property>
+                            <property name="pane_size"></property>
+                            <property name="permission">protected</property>
+                            <property name="pin_button">1</property>
+                            <property name="pos"></property>
+                            <property name="resize">Resizable</property>
+                            <property name="show">1</property>
+                            <property name="size"></property>
+                            <property name="style">wxTE_WORDWRAP|wxTE_PROCESS_ENTER|wxTE_MULTILINE</property>
+                            <property name="subclass">; ; forward_declare</property>
+                            <property name="toolbar_pane">0</property>
+                            <property name="tooltip"></property>
+                            <property name="validator_data_type"></property>
+                            <property name="validator_style">wxFILTER_NONE</property>
+                            <property name="validator_type">wxDefaultValidator</property>
+                            <property name="validator_variable"></property>
+                            <property name="value"></property>
+                            <property name="window_extra_style"></property>
+                            <property name="window_name"></property>
+                            <property name="window_style"></property>
+                          </object>
+                        </object>
+                      </object>
+                    </object>
+                  </object>
+                  <object class="notebookpage" expanded="false">
+                    <property name="bitmap">Load From Embedded File; icons/16/picture.png</property>
+                    <property name="label">Image2image</property>
+                    <property name="select">0</property>
+                    <object class="wxPanel" expanded="false">
+                      <property name="BottomDockable">1</property>
+                      <property name="LeftDockable">1</property>
+                      <property name="RightDockable">1</property>
+                      <property name="TopDockable">1</property>
+                      <property name="aui_layer"></property>
+                      <property name="aui_name"></property>
+                      <property name="aui_position"></property>
+                      <property name="aui_row"></property>
+                      <property name="best_size"></property>
+                      <property name="bg"></property>
+                      <property name="caption"></property>
+                      <property name="caption_visible">1</property>
+                      <property name="center_pane">0</property>
+                      <property name="close_button">1</property>
+                      <property name="context_help"></property>
+                      <property name="context_menu">1</property>
+                      <property name="default_pane">0</property>
+                      <property name="dock">Dock</property>
+                      <property name="dock_fixed">0</property>
+                      <property name="docking">Left</property>
+                      <property name="drag_accept_files">0</property>
+                      <property name="enabled">1</property>
+                      <property name="fg"></property>
+                      <property name="floatable">1</property>
+                      <property name="font"></property>
+                      <property name="gripper">0</property>
+                      <property name="hidden">0</property>
+                      <property name="id">wxID_ANY</property>
+                      <property name="max_size"></property>
+                      <property name="maximize_button">0</property>
+                      <property name="maximum_size"></property>
+                      <property name="min_size"></property>
+                      <property name="minimize_button">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="moveable">1</property>
+                      <property name="name">m_image2image_panel</property>
+                      <property name="pane_border">1</property>
+                      <property name="pane_position"></property>
+                      <property name="pane_size"></property>
+                      <property name="permission">protected</property>
+                      <property name="pin_button">1</property>
+                      <property name="pos"></property>
+                      <property name="resize">Resizable</property>
+                      <property name="show">1</property>
+                      <property name="size"></property>
+                      <property name="subclass">; ; forward_declare</property>
+                      <property name="toolbar_pane">0</property>
+                      <property name="tooltip"></property>
+                      <property name="window_extra_style"></property>
+                      <property name="window_name"></property>
+                      <property name="window_style">wxTAB_TRAVERSAL</property>
+                    </object>
+                  </object>
+                  <object class="notebookpage" expanded="false">
+                    <property name="bitmap">Load From Embedded File; icons/16/cube.png</property>
+                    <property name="label">Models</property>
+                    <property name="select">0</property>
+                    <object class="wxPanel" expanded="false">
+                      <property name="BottomDockable">1</property>
+                      <property name="LeftDockable">1</property>
+                      <property name="RightDockable">1</property>
+                      <property name="TopDockable">1</property>
+                      <property name="aui_layer"></property>
+                      <property name="aui_name"></property>
+                      <property name="aui_position"></property>
+                      <property name="aui_row"></property>
+                      <property name="best_size"></property>
+                      <property name="bg"></property>
+                      <property name="caption"></property>
+                      <property name="caption_visible">1</property>
+                      <property name="center_pane">0</property>
+                      <property name="close_button">1</property>
+                      <property name="context_help"></property>
+                      <property name="context_menu">1</property>
+                      <property name="default_pane">0</property>
+                      <property name="dock">Dock</property>
+                      <property name="dock_fixed">0</property>
+                      <property name="docking">Left</property>
+                      <property name="drag_accept_files">0</property>
+                      <property name="enabled">1</property>
+                      <property name="fg"></property>
+                      <property name="floatable">1</property>
+                      <property name="font"></property>
+                      <property name="gripper">0</property>
+                      <property name="hidden">0</property>
+                      <property name="id">wxID_ANY</property>
+                      <property name="max_size"></property>
+                      <property name="maximize_button">0</property>
+                      <property name="maximum_size"></property>
+                      <property name="min_size"></property>
+                      <property name="minimize_button">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="moveable">1</property>
+                      <property name="name">m_models_panel</property>
+                      <property name="pane_border">1</property>
+                      <property name="pane_position"></property>
+                      <property name="pane_size"></property>
+                      <property name="permission">protected</property>
+                      <property name="pin_button">1</property>
+                      <property name="pos"></property>
+                      <property name="resize">Resizable</property>
+                      <property name="show">1</property>
+                      <property name="size"></property>
+                      <property name="subclass">; ; forward_declare</property>
+                      <property name="toolbar_pane">0</property>
+                      <property name="tooltip"></property>
+                      <property name="window_extra_style"></property>
+                      <property name="window_name"></property>
+                      <property name="window_style">wxTAB_TRAVERSAL</property>
+                      <object class="wxBoxSizer" expanded="false">
+                        <property name="minimum_size"></property>
+                        <property name="name">bSizer20</property>
+                        <property name="orient">wxVERTICAL</property>
+                        <property name="permission">none</property>
+                        <object class="sizeritem" expanded="false">
+                          <property name="border">5</property>
+                          <property name="flag">wxALL|wxEXPAND</property>
+                          <property name="proportion">1</property>
+                          <object class="wxDataViewListCtrl" expanded="false">
+                            <property name="bg"></property>
+                            <property name="context_help"></property>
+                            <property name="context_menu">1</property>
+                            <property name="drag_accept_files">0</property>
+                            <property name="enabled">1</property>
+                            <property name="fg"></property>
+                            <property name="font"></property>
+                            <property name="hidden">0</property>
+                            <property name="id">wxID_ANY</property>
+                            <property name="maximum_size"></property>
+                            <property name="minimum_size"></property>
+                            <property name="name">m_data_model_list</property>
+                            <property name="permission">protected</property>
+                            <property name="pos"></property>
+                            <property name="size"></property>
+                            <property name="style"></property>
+                            <property name="subclass">; ; forward_declare</property>
+                            <property name="tooltip"></property>
+                            <property name="window_extra_style"></property>
+                            <property name="window_name"></property>
+                            <property name="window_style">wxFULL_REPAINT_ON_RESIZE</property>
+                          </object>
+                        </object>
+                      </object>
+                    </object>
+                  </object>
+                </object>
+              </object>
+              <object class="sizeritem" expanded="false">
+                <property name="border">5</property>
+                <property name="flag">wxALL|wxEXPAND</property>
+                <property name="proportion">0</property>
+                <object class="wxStaticLine" expanded="false">
+                  <property name="BottomDockable">1</property>
+                  <property name="LeftDockable">1</property>
+                  <property name="RightDockable">1</property>
+                  <property name="TopDockable">1</property>
+                  <property name="aui_layer"></property>
+                  <property name="aui_name"></property>
+                  <property name="aui_position"></property>
+                  <property name="aui_row"></property>
+                  <property name="best_size"></property>
+                  <property name="bg"></property>
+                  <property name="caption"></property>
+                  <property name="caption_visible">1</property>
+                  <property name="center_pane">0</property>
+                  <property name="close_button">1</property>
+                  <property name="context_help"></property>
+                  <property name="context_menu">1</property>
+                  <property name="default_pane">0</property>
+                  <property name="dock">Dock</property>
+                  <property name="dock_fixed">0</property>
+                  <property name="docking">Left</property>
+                  <property name="drag_accept_files">0</property>
+                  <property name="enabled"></property>
+                  <property name="fg"></property>
+                  <property name="floatable">1</property>
+                  <property name="font"></property>
+                  <property name="gripper">0</property>
+                  <property name="hidden"></property>
+                  <property name="id">wxID_ANY</property>
+                  <property name="max_size"></property>
+                  <property name="maximize_button">0</property>
+                  <property name="maximum_size"></property>
+                  <property name="min_size"></property>
+                  <property name="minimize_button">0</property>
+                  <property name="minimum_size"></property>
+                  <property name="moveable">1</property>
+                  <property name="name">m_staticLine156</property>
+                  <property name="pane_border">1</property>
+                  <property name="pane_position"></property>
+                  <property name="pane_size"></property>
+                  <property name="permission">protected</property>
+                  <property name="pin_button">1</property>
+                  <property name="pos"></property>
+                  <property name="resize">Resizable</property>
+                  <property name="show">1</property>
+                  <property name="size"></property>
+                  <property name="style">wxLI_HORIZONTAL</property>
+                  <property name="subclass">; ; forward_declare</property>
+                  <property name="toolbar_pane">0</property>
+                  <property name="tooltip"></property>
+                  <property name="window_extra_style"></property>
+                  <property name="window_name"></property>
+                  <property name="window_style"></property>
+                </object>
+              </object>
+              <object class="sizeritem" expanded="false">
+                <property name="border">5</property>
+                <property name="flag">wxEXPAND</property>
+                <property name="proportion">0</property>
+                <object class="wxBoxSizer" expanded="false">
+                  <property name="minimum_size"></property>
+                  <property name="name">bSizer9</property>
+                  <property name="orient">wxHORIZONTAL</property>
+                  <property name="permission">none</property>
+                  <object class="sizeritem" expanded="false">
+                    <property name="border">5</property>
+                    <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
+                    <property name="proportion">0</property>
+                    <object class="wxButton" expanded="false">
+                      <property name="BottomDockable">1</property>
+                      <property name="LeftDockable">1</property>
+                      <property name="RightDockable">1</property>
+                      <property name="TopDockable">1</property>
+                      <property name="aui_layer"></property>
+                      <property name="aui_name"></property>
+                      <property name="aui_position"></property>
+                      <property name="aui_row"></property>
+                      <property name="auth_needed">0</property>
+                      <property name="best_size"></property>
+                      <property name="bg"></property>
+                      <property name="bitmap">Load From Embedded File; icons/16/play.png</property>
+                      <property name="caption"></property>
+                      <property name="caption_visible">1</property>
+                      <property name="center_pane">0</property>
+                      <property name="close_button">1</property>
+                      <property name="context_help"></property>
+                      <property name="context_menu">1</property>
+                      <property name="current"></property>
+                      <property name="default">0</property>
+                      <property name="default_pane">0</property>
+                      <property name="disabled"></property>
+                      <property name="dock">Dock</property>
+                      <property name="dock_fixed">0</property>
+                      <property name="docking">Left</property>
+                      <property name="drag_accept_files">0</property>
+                      <property name="enabled">0</property>
+                      <property name="fg"></property>
+                      <property name="floatable">1</property>
+                      <property name="focus"></property>
+                      <property name="font"></property>
+                      <property name="gripper">0</property>
+                      <property name="hidden">0</property>
+                      <property name="id">wxID_ANY</property>
+                      <property name="label">Queue</property>
+                      <property name="margins"></property>
+                      <property name="markup">0</property>
+                      <property name="max_size"></property>
+                      <property name="maximize_button">0</property>
+                      <property name="maximum_size"></property>
+                      <property name="min_size"></property>
+                      <property name="minimize_button">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="moveable">1</property>
+                      <property name="name">m_generate</property>
+                      <property name="pane_border">1</property>
+                      <property name="pane_position"></property>
+                      <property name="pane_size"></property>
+                      <property name="permission">protected</property>
+                      <property name="pin_button">1</property>
+                      <property name="pos"></property>
+                      <property name="position"></property>
+                      <property name="pressed"></property>
+                      <property name="resize">Resizable</property>
+                      <property name="show">1</property>
+                      <property name="size"></property>
+                      <property name="style"></property>
+                      <property name="subclass">; ; forward_declare</property>
+                      <property name="toolbar_pane">0</property>
+                      <property name="tooltip"></property>
+                      <property name="validator_data_type"></property>
+                      <property name="validator_style">wxFILTER_NONE</property>
+                      <property name="validator_type">wxDefaultValidator</property>
+                      <property name="validator_variable"></property>
+                      <property name="window_extra_style"></property>
+                      <property name="window_name"></property>
+                      <property name="window_style"></property>
+                      <event name="OnButtonClick">onGenerate</event>
+                    </object>
+                  </object>
+                  <object class="sizeritem" expanded="false">
+                    <property name="border">5</property>
+                    <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
+                    <property name="proportion">0</property>
+                    <object class="wxStaticText" expanded="false">
+                      <property name="BottomDockable">1</property>
+                      <property name="LeftDockable">1</property>
+                      <property name="RightDockable">1</property>
+                      <property name="TopDockable">1</property>
+                      <property name="aui_layer"></property>
+                      <property name="aui_name"></property>
+                      <property name="aui_position"></property>
+                      <property name="aui_row"></property>
+                      <property name="best_size"></property>
+                      <property name="bg"></property>
+                      <property name="caption"></property>
+                      <property name="caption_visible">1</property>
+                      <property name="center_pane">0</property>
+                      <property name="close_button">1</property>
+                      <property name="context_help"></property>
+                      <property name="context_menu">1</property>
+                      <property name="default_pane">0</property>
+                      <property name="dock">Dock</property>
+                      <property name="dock_fixed">0</property>
+                      <property name="docking">Left</property>
+                      <property name="drag_accept_files">0</property>
+                      <property name="enabled">1</property>
+                      <property name="fg"></property>
+                      <property name="floatable">1</property>
+                      <property name="font"></property>
+                      <property name="gripper">0</property>
+                      <property name="hidden">0</property>
+                      <property name="id">wxID_ANY</property>
+                      <property name="label">Batch:</property>
+                      <property name="markup">0</property>
+                      <property name="max_size"></property>
+                      <property name="maximize_button">0</property>
+                      <property name="maximum_size"></property>
+                      <property name="min_size"></property>
+                      <property name="minimize_button">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="moveable">1</property>
+                      <property name="name">m_staticText15</property>
+                      <property name="pane_border">1</property>
+                      <property name="pane_position"></property>
+                      <property name="pane_size"></property>
+                      <property name="permission">protected</property>
+                      <property name="pin_button">1</property>
+                      <property name="pos"></property>
+                      <property name="resize">Resizable</property>
+                      <property name="show">1</property>
+                      <property name="size"></property>
+                      <property name="style"></property>
+                      <property name="subclass">; ; forward_declare</property>
+                      <property name="toolbar_pane">0</property>
+                      <property name="tooltip">number of images to generate.</property>
+                      <property name="window_extra_style"></property>
+                      <property name="window_name"></property>
+                      <property name="window_style"></property>
+                      <property name="wrap">-1</property>
+                    </object>
+                  </object>
+                  <object class="sizeritem" expanded="false">
+                    <property name="border">5</property>
+                    <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
+                    <property name="proportion">0</property>
+                    <object class="wxSpinCtrl" expanded="false">
+                      <property name="BottomDockable">1</property>
+                      <property name="LeftDockable">1</property>
+                      <property name="RightDockable">1</property>
+                      <property name="TopDockable">1</property>
+                      <property name="aui_layer"></property>
+                      <property name="aui_name"></property>
+                      <property name="aui_position"></property>
+                      <property name="aui_row"></property>
+                      <property name="best_size"></property>
+                      <property name="bg"></property>
+                      <property name="caption"></property>
+                      <property name="caption_visible">1</property>
+                      <property name="center_pane">0</property>
+                      <property name="close_button">1</property>
+                      <property name="context_help"></property>
+                      <property name="context_menu">1</property>
+                      <property name="default_pane">0</property>
+                      <property name="dock">Dock</property>
+                      <property name="dock_fixed">0</property>
+                      <property name="docking">Left</property>
+                      <property name="drag_accept_files">0</property>
+                      <property name="enabled">1</property>
+                      <property name="fg"></property>
+                      <property name="floatable">1</property>
+                      <property name="font"></property>
+                      <property name="gripper">0</property>
+                      <property name="hidden">0</property>
+                      <property name="id">wxID_ANY</property>
+                      <property name="initial">0</property>
+                      <property name="max">10</property>
+                      <property name="max_size"></property>
+                      <property name="maximize_button">0</property>
+                      <property name="maximum_size"></property>
+                      <property name="min">0</property>
+                      <property name="min_size"></property>
+                      <property name="minimize_button">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="moveable">1</property>
+                      <property name="name">m_batch_count</property>
+                      <property name="pane_border">1</property>
+                      <property name="pane_position"></property>
+                      <property name="pane_size"></property>
+                      <property name="permission">protected</property>
+                      <property name="pin_button">1</property>
+                      <property name="pos"></property>
+                      <property name="resize">Resizable</property>
+                      <property name="show">1</property>
+                      <property name="size"></property>
+                      <property name="style">wxSP_ARROW_KEYS</property>
+                      <property name="subclass">; ; forward_declare</property>
+                      <property name="toolbar_pane">0</property>
+                      <property name="tooltip">number of images to generate.</property>
+                      <property name="value"></property>
+                      <property name="window_extra_style"></property>
+                      <property name="window_name"></property>
+                      <property name="window_style"></property>
+                    </object>
+                  </object>
+                  <object class="sizeritem" expanded="false">
+                    <property name="border">5</property>
+                    <property name="flag">wxEXPAND | wxALL</property>
+                    <property name="proportion">0</property>
+                    <object class="wxStaticLine" expanded="false">
+                      <property name="BottomDockable">1</property>
+                      <property name="LeftDockable">1</property>
+                      <property name="RightDockable">1</property>
+                      <property name="TopDockable">1</property>
+                      <property name="aui_layer"></property>
+                      <property name="aui_name"></property>
+                      <property name="aui_position"></property>
+                      <property name="aui_row"></property>
+                      <property name="best_size"></property>
+                      <property name="bg"></property>
+                      <property name="caption"></property>
+                      <property name="caption_visible">1</property>
+                      <property name="center_pane">0</property>
+                      <property name="close_button">1</property>
+                      <property name="context_help"></property>
+                      <property name="context_menu">1</property>
+                      <property name="default_pane">0</property>
+                      <property name="dock">Dock</property>
+                      <property name="dock_fixed">0</property>
+                      <property name="docking">Left</property>
+                      <property name="drag_accept_files">0</property>
+                      <property name="enabled">1</property>
+                      <property name="fg"></property>
+                      <property name="floatable">1</property>
+                      <property name="font"></property>
+                      <property name="gripper">0</property>
+                      <property name="hidden">0</property>
+                      <property name="id">wxID_ANY</property>
+                      <property name="max_size"></property>
+                      <property name="maximize_button">0</property>
+                      <property name="maximum_size"></property>
+                      <property name="min_size"></property>
+                      <property name="minimize_button">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="moveable">1</property>
+                      <property name="name">m_staticline5</property>
+                      <property name="pane_border">1</property>
+                      <property name="pane_position"></property>
+                      <property name="pane_size"></property>
+                      <property name="permission">protected</property>
+                      <property name="pin_button">1</property>
+                      <property name="pos"></property>
+                      <property name="resize">Resizable</property>
+                      <property name="show">1</property>
+                      <property name="size"></property>
+                      <property name="style">wxLI_VERTICAL</property>
+                      <property name="subclass">; ; forward_declare</property>
+                      <property name="toolbar_pane">0</property>
+                      <property name="tooltip"></property>
+                      <property name="window_extra_style"></property>
+                      <property name="window_name"></property>
+                      <property name="window_style"></property>
+                    </object>
+                  </object>
+                  <object class="sizeritem" expanded="false">
+                    <property name="border">5</property>
+                    <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
+                    <property name="proportion">0</property>
+                    <object class="wxStaticText" expanded="false">
+                      <property name="BottomDockable">1</property>
+                      <property name="LeftDockable">1</property>
+                      <property name="RightDockable">1</property>
+                      <property name="TopDockable">1</property>
+                      <property name="aui_layer"></property>
+                      <property name="aui_name"></property>
+                      <property name="aui_position"></property>
+                      <property name="aui_row"></property>
+                      <property name="best_size"></property>
+                      <property name="bg"></property>
+                      <property name="caption"></property>
+                      <property name="caption_visible">1</property>
+                      <property name="center_pane">0</property>
+                      <property name="close_button">1</property>
+                      <property name="context_help"></property>
+                      <property name="context_menu">1</property>
+                      <property name="default_pane">0</property>
+                      <property name="dock">Dock</property>
+                      <property name="dock_fixed">0</property>
+                      <property name="docking">Left</property>
+                      <property name="drag_accept_files">0</property>
+                      <property name="enabled">1</property>
+                      <property name="fg"></property>
+                      <property name="floatable">1</property>
+                      <property name="font"></property>
+                      <property name="gripper">0</property>
+                      <property name="hidden">0</property>
+                      <property name="id">wxID_ANY</property>
+                      <property name="label">Presets:</property>
+                      <property name="markup">0</property>
+                      <property name="max_size"></property>
+                      <property name="maximize_button">0</property>
+                      <property name="maximum_size"></property>
+                      <property name="min_size"></property>
+                      <property name="minimize_button">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="moveable">1</property>
+                      <property name="name">m_staticText17</property>
+                      <property name="pane_border">1</property>
+                      <property name="pane_position"></property>
+                      <property name="pane_size"></property>
+                      <property name="permission">protected</property>
+                      <property name="pin_button">1</property>
+                      <property name="pos"></property>
+                      <property name="resize">Resizable</property>
+                      <property name="show">1</property>
+                      <property name="size"></property>
+                      <property name="style"></property>
+                      <property name="subclass">; ; forward_declare</property>
+                      <property name="toolbar_pane">0</property>
+                      <property name="tooltip"></property>
+                      <property name="window_extra_style"></property>
+                      <property name="window_name"></property>
+                      <property name="window_style"></property>
+                      <property name="wrap">-1</property>
+                    </object>
+                  </object>
+                  <object class="sizeritem" expanded="false">
+                    <property name="border">5</property>
+                    <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
+                    <property name="proportion">0</property>
+                    <object class="wxButton" expanded="false">
+                      <property name="BottomDockable">1</property>
+                      <property name="LeftDockable">1</property>
+                      <property name="RightDockable">1</property>
+                      <property name="TopDockable">1</property>
+                      <property name="aui_layer"></property>
+                      <property name="aui_name"></property>
+                      <property name="aui_position"></property>
+                      <property name="aui_row"></property>
+                      <property name="auth_needed">0</property>
+                      <property name="best_size"></property>
+                      <property name="bg"></property>
+                      <property name="bitmap">Load From Embedded File; icons/16/disk.png</property>
+                      <property name="caption"></property>
+                      <property name="caption_visible">1</property>
+                      <property name="center_pane">0</property>
+                      <property name="close_button">1</property>
+                      <property name="context_help"></property>
+                      <property name="context_menu">1</property>
+                      <property name="current"></property>
+                      <property name="default">0</property>
+                      <property name="default_pane">0</property>
+                      <property name="disabled"></property>
+                      <property name="dock">Dock</property>
+                      <property name="dock_fixed">0</property>
+                      <property name="docking">Left</property>
+                      <property name="drag_accept_files">0</property>
+                      <property name="enabled">1</property>
+                      <property name="fg"></property>
+                      <property name="floatable">1</property>
+                      <property name="focus"></property>
+                      <property name="font"></property>
+                      <property name="gripper">0</property>
+                      <property name="hidden">0</property>
+                      <property name="id">wxID_ANY</property>
+                      <property name="label">Save</property>
+                      <property name="margins"></property>
+                      <property name="markup">0</property>
+                      <property name="max_size"></property>
+                      <property name="maximize_button">0</property>
+                      <property name="maximum_size"></property>
+                      <property name="min_size"></property>
+                      <property name="minimize_button">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="moveable">1</property>
+                      <property name="name">m_save_preset</property>
+                      <property name="pane_border">1</property>
+                      <property name="pane_position"></property>
+                      <property name="pane_size"></property>
+                      <property name="permission">protected</property>
+                      <property name="pin_button">1</property>
+                      <property name="pos"></property>
+                      <property name="position"></property>
+                      <property name="pressed"></property>
+                      <property name="resize">Resizable</property>
+                      <property name="show">1</property>
+                      <property name="size"></property>
+                      <property name="style"></property>
+                      <property name="subclass">; ; forward_declare</property>
+                      <property name="toolbar_pane">0</property>
+                      <property name="tooltip"></property>
+                      <property name="validator_data_type"></property>
+                      <property name="validator_style">wxFILTER_NONE</property>
+                      <property name="validator_type">wxDefaultValidator</property>
+                      <property name="validator_variable"></property>
+                      <property name="window_extra_style"></property>
+                      <property name="window_name"></property>
+                      <property name="window_style"></property>
+                      <event name="OnButtonClick">onSavePreset</event>
+                    </object>
+                  </object>
+                  <object class="sizeritem" expanded="false">
+                    <property name="border">5</property>
+                    <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
+                    <property name="proportion">0</property>
+                    <object class="wxButton" expanded="false">
+                      <property name="BottomDockable">1</property>
+                      <property name="LeftDockable">1</property>
+                      <property name="RightDockable">1</property>
+                      <property name="TopDockable">1</property>
+                      <property name="aui_layer"></property>
+                      <property name="aui_name"></property>
+                      <property name="aui_position"></property>
+                      <property name="aui_row"></property>
+                      <property name="auth_needed">0</property>
+                      <property name="best_size"></property>
+                      <property name="bg"></property>
+                      <property name="bitmap">Load From Embedded File; icons/16/file_import.png</property>
+                      <property name="caption"></property>
+                      <property name="caption_visible">1</property>
+                      <property name="center_pane">0</property>
+                      <property name="close_button">1</property>
+                      <property name="context_help"></property>
+                      <property name="context_menu">1</property>
+                      <property name="current"></property>
+                      <property name="default">0</property>
+                      <property name="default_pane">0</property>
+                      <property name="disabled"></property>
+                      <property name="dock">Dock</property>
+                      <property name="dock_fixed">0</property>
+                      <property name="docking">Left</property>
+                      <property name="drag_accept_files">0</property>
+                      <property name="enabled">0</property>
+                      <property name="fg"></property>
+                      <property name="floatable">1</property>
+                      <property name="focus"></property>
+                      <property name="font"></property>
+                      <property name="gripper">0</property>
+                      <property name="hidden">0</property>
+                      <property name="id">wxID_ANY</property>
+                      <property name="label">Load</property>
+                      <property name="margins"></property>
+                      <property name="markup">0</property>
+                      <property name="max_size"></property>
+                      <property name="maximize_button">0</property>
+                      <property name="maximum_size"></property>
+                      <property name="min_size"></property>
+                      <property name="minimize_button">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="moveable">1</property>
+                      <property name="name">m_load_preset</property>
+                      <property name="pane_border">1</property>
+                      <property name="pane_position"></property>
+                      <property name="pane_size"></property>
+                      <property name="permission">protected</property>
+                      <property name="pin_button">1</property>
+                      <property name="pos"></property>
+                      <property name="position"></property>
+                      <property name="pressed"></property>
+                      <property name="resize">Resizable</property>
+                      <property name="show">1</property>
+                      <property name="size"></property>
+                      <property name="style"></property>
+                      <property name="subclass">; ; forward_declare</property>
+                      <property name="toolbar_pane">0</property>
+                      <property name="tooltip"></property>
+                      <property name="validator_data_type"></property>
+                      <property name="validator_style">wxFILTER_NONE</property>
+                      <property name="validator_type">wxDefaultValidator</property>
+                      <property name="validator_variable"></property>
+                      <property name="window_extra_style"></property>
+                      <property name="window_name"></property>
+                      <property name="window_style"></property>
+                      <event name="OnButtonClick">onLoadPreset</event>
+                    </object>
+                  </object>
+                  <object class="sizeritem" expanded="false">
+                    <property name="border">5</property>
+                    <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
+                    <property name="proportion">0</property>
+                    <object class="wxChoice" expanded="false">
+                      <property name="BottomDockable">1</property>
+                      <property name="LeftDockable">1</property>
+                      <property name="RightDockable">1</property>
+                      <property name="TopDockable">1</property>
+                      <property name="aui_layer"></property>
+                      <property name="aui_name"></property>
+                      <property name="aui_position"></property>
+                      <property name="aui_row"></property>
+                      <property name="best_size"></property>
+                      <property name="bg"></property>
+                      <property name="caption"></property>
+                      <property name="caption_visible">1</property>
+                      <property name="center_pane">0</property>
+                      <property name="choices"></property>
+                      <property name="close_button">1</property>
+                      <property name="context_help"></property>
+                      <property name="context_menu">1</property>
+                      <property name="default_pane">0</property>
+                      <property name="dock">Dock</property>
+                      <property name="dock_fixed">0</property>
+                      <property name="docking">Left</property>
+                      <property name="drag_accept_files">0</property>
+                      <property name="enabled">0</property>
+                      <property name="fg"></property>
+                      <property name="floatable">1</property>
+                      <property name="font"></property>
+                      <property name="gripper">0</property>
+                      <property name="hidden">0</property>
+                      <property name="id">wxID_ANY</property>
+                      <property name="max_size"></property>
+                      <property name="maximize_button">0</property>
+                      <property name="maximum_size"></property>
+                      <property name="min_size"></property>
+                      <property name="minimize_button">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="moveable">1</property>
+                      <property name="name">m_preset_list</property>
+                      <property name="pane_border">1</property>
+                      <property name="pane_position"></property>
+                      <property name="pane_size"></property>
+                      <property name="permission">protected</property>
+                      <property name="pin_button">1</property>
+                      <property name="pos"></property>
+                      <property name="resize">Resizable</property>
+                      <property name="selection">0</property>
+                      <property name="show">1</property>
+                      <property name="size"></property>
+                      <property name="style"></property>
+                      <property name="subclass">; ; forward_declare</property>
+                      <property name="toolbar_pane">0</property>
+                      <property name="tooltip"></property>
+                      <property name="validator_data_type"></property>
+                      <property name="validator_style">wxFILTER_NONE</property>
+                      <property name="validator_type">wxDefaultValidator</property>
+                      <property name="validator_variable"></property>
+                      <property name="window_extra_style"></property>
+                      <property name="window_name"></property>
+                      <property name="window_style"></property>
+                      <event name="OnChoice">onSelectPreset</event>
+                    </object>
+                  </object>
+                  <object class="sizeritem" expanded="false">
+                    <property name="border">5</property>
+                    <property name="flag">wxALL</property>
+                    <property name="proportion">0</property>
+                    <object class="wxButton" expanded="false">
+                      <property name="BottomDockable">1</property>
+                      <property name="LeftDockable">1</property>
+                      <property name="RightDockable">1</property>
+                      <property name="TopDockable">1</property>
+                      <property name="aui_layer"></property>
+                      <property name="aui_name"></property>
+                      <property name="aui_position"></property>
+                      <property name="aui_row"></property>
+                      <property name="auth_needed">0</property>
+                      <property name="best_size"></property>
+                      <property name="bg"></property>
+                      <property name="bitmap">Load From Embedded File; icons/16/trash.png</property>
+                      <property name="caption"></property>
+                      <property name="caption_visible">1</property>
+                      <property name="center_pane">0</property>
+                      <property name="close_button">1</property>
+                      <property name="context_help"></property>
+                      <property name="context_menu">1</property>
+                      <property name="current"></property>
+                      <property name="default">0</property>
+                      <property name="default_pane">0</property>
+                      <property name="disabled"></property>
+                      <property name="dock">Dock</property>
+                      <property name="dock_fixed">0</property>
+                      <property name="docking">Left</property>
+                      <property name="drag_accept_files">0</property>
+                      <property name="enabled">0</property>
+                      <property name="fg"></property>
+                      <property name="floatable">1</property>
+                      <property name="focus"></property>
+                      <property name="font"></property>
+                      <property name="gripper">0</property>
+                      <property name="hidden">0</property>
+                      <property name="id">wxID_ANY</property>
+                      <property name="label"></property>
+                      <property name="margins"></property>
+                      <property name="markup">0</property>
+                      <property name="max_size"></property>
+                      <property name="maximize_button">0</property>
+                      <property name="maximum_size"></property>
+                      <property name="min_size"></property>
+                      <property name="minimize_button">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="moveable">1</property>
+                      <property name="name">m_delete_preset</property>
+                      <property name="pane_border">1</property>
+                      <property name="pane_position"></property>
+                      <property name="pane_size"></property>
+                      <property name="permission">protected</property>
+                      <property name="pin_button">1</property>
+                      <property name="pos"></property>
+                      <property name="position"></property>
+                      <property name="pressed"></property>
+                      <property name="resize">Resizable</property>
+                      <property name="show">1</property>
+                      <property name="size">24,24</property>
+                      <property name="style"></property>
+                      <property name="subclass">; ; forward_declare</property>
+                      <property name="toolbar_pane">0</property>
+                      <property name="tooltip"></property>
+                      <property name="validator_data_type"></property>
+                      <property name="validator_style">wxFILTER_NONE</property>
+                      <property name="validator_type">wxDefaultValidator</property>
+                      <property name="validator_variable"></property>
+                      <property name="window_extra_style"></property>
+                      <property name="window_name"></property>
+                      <property name="window_style"></property>
+                      <event name="OnButtonClick">onDeletePreset</event>
+                    </object>
+                  </object>
+                </object>
+              </object>
+              <object class="sizeritem" expanded="false">
+                <property name="border">5</property>
+                <property name="flag">wxALL|wxEXPAND</property>
+                <property name="proportion">0</property>
+                <object class="wxTextCtrl" expanded="false">
+                  <property name="BottomDockable">1</property>
+                  <property name="LeftDockable">1</property>
+                  <property name="RightDockable">1</property>
+                  <property name="TopDockable">1</property>
+                  <property name="aui_layer"></property>
+                  <property name="aui_name"></property>
+                  <property name="aui_position"></property>
+                  <property name="aui_row"></property>
+                  <property name="best_size"></property>
+                  <property name="bg"></property>
+                  <property name="caption"></property>
+                  <property name="caption_visible">1</property>
+                  <property name="center_pane">0</property>
+                  <property name="close_button">1</property>
+                  <property name="context_help"></property>
+                  <property name="context_menu">1</property>
+                  <property name="default_pane">0</property>
+                  <property name="dock">Dock</property>
+                  <property name="dock_fixed">0</property>
+                  <property name="docking">Left</property>
+                  <property name="drag_accept_files">0</property>
+                  <property name="enabled"></property>
+                  <property name="fg"></property>
+                  <property name="floatable">1</property>
+                  <property name="font"></property>
+                  <property name="gripper">0</property>
+                  <property name="hidden"></property>
+                  <property name="id">wxID_ANY</property>
+                  <property name="max_size"></property>
+                  <property name="maximize_button">0</property>
+                  <property name="maximum_size"></property>
+                  <property name="maxlength">0</property>
+                  <property name="min_size"></property>
+                  <property name="minimize_button">0</property>
+                  <property name="minimum_size">-1,100</property>
+                  <property name="moveable">1</property>
+                  <property name="name">logs</property>
+                  <property name="pane_border">1</property>
+                  <property name="pane_position"></property>
+                  <property name="pane_size"></property>
+                  <property name="permission">protected</property>
+                  <property name="pin_button">1</property>
+                  <property name="pos"></property>
+                  <property name="resize">Resizable</property>
+                  <property name="show">1</property>
+                  <property name="size"></property>
+                  <property name="style">wxTE_WORDWRAP|wxTE_READONLY|wxTE_MULTILINE|wxTE_AUTO_URL</property>
+                  <property name="subclass">; ; forward_declare</property>
+                  <property name="toolbar_pane">0</property>
+                  <property name="tooltip"></property>
+                  <property name="validator_data_type"></property>
+                  <property name="validator_style">wxFILTER_NONE</property>
+                  <property name="validator_type">wxDefaultValidator</property>
+                  <property name="validator_variable"></property>
+                  <property name="value"></property>
+                  <property name="window_extra_style"></property>
+                  <property name="window_name"></property>
+                  <property name="window_style">wxFULL_REPAINT_ON_RESIZE</property>
+                </object>
+              </object>
+            </object>
+          </object>
+        </object>
+      </object>
+      <object class="wxStatusBar" expanded="false">
+        <property name="bg"></property>
+        <property name="context_help"></property>
+        <property name="context_menu">1</property>
+        <property name="drag_accept_files">0</property>
+        <property name="enabled"></property>
+        <property name="fg"></property>
+        <property name="fields">1</property>
+        <property name="font"></property>
+        <property name="hidden"></property>
+        <property name="id">wxID_ANY</property>
+        <property name="maximum_size"></property>
+        <property name="minimum_size"></property>
+        <property name="name">m_statusBar166</property>
+        <property name="permission">protected</property>
+        <property name="pos"></property>
+        <property name="size"></property>
+        <property name="style">wxSTB_DEFAULT_STYLE</property>
+        <property name="subclass">; ; forward_declare</property>
+        <property name="tooltip"></property>
+        <property name="window_extra_style"></property>
+        <property name="window_name"></property>
+        <property name="window_style"></property>
+      </object>
+    </object>
+    <object class="Frame" expanded="true">
+      <property name="aui_managed"></property>
+      <property name="aui_manager_style">wxAUI_MGR_DEFAULT</property>
+      <property name="bg"></property>
+      <property name="center">wxBOTH</property>
+      <property name="context_help"></property>
+      <property name="context_menu">1</property>
+      <property name="drag_accept_files">0</property>
+      <property name="enabled">1</property>
+      <property name="event_handler">impl_virtual</property>
+      <property name="extra_style"></property>
+      <property name="fg"></property>
+      <property name="font"></property>
+      <property name="hidden"></property>
+      <property name="id">wxID_ANY</property>
+      <property name="maximum_size"></property>
+      <property name="minimum_size"></property>
+      <property name="name">Settings</property>
+      <property name="pos"></property>
+      <property name="size">600,400</property>
+      <property name="style">wxFRAME_NO_TASKBAR|wxFRAME_FLOAT_ON_PARENT|wxCAPTION|wxCLOSE_BOX</property>
+      <property name="subclass">; ; forward_declare</property>
+      <property name="title">Settings</property>
+      <property name="tooltip"></property>
+      <property name="two_step_creation">0</property>
+      <property name="window_extra_style"></property>
+      <property name="window_name"></property>
+      <property name="window_style">wxFULL_REPAINT_ON_RESIZE|wxTAB_TRAVERSAL|wxBORDER_THEME</property>
+      <property name="xrc_skip_sizer">1</property>
+      <object class="wxBoxSizer" expanded="true">
+        <property name="minimum_size"></property>
+        <property name="name">sizer2010</property>
+        <property name="orient">wxVERTICAL</property>
+        <property name="permission">none</property>
+        <object class="sizeritem" expanded="true">
+          <property name="border">5</property>
+          <property name="flag">wxALL|wxEXPAND</property>
+          <property name="proportion">1</property>
+          <object class="wxNotebook" expanded="true">
+            <property name="BottomDockable">1</property>
+            <property name="LeftDockable">1</property>
+            <property name="RightDockable">1</property>
+            <property name="TopDockable">1</property>
+            <property name="aui_layer"></property>
+            <property name="aui_name"></property>
+            <property name="aui_position"></property>
+            <property name="aui_row"></property>
+            <property name="best_size"></property>
+            <property name="bg"></property>
+            <property name="bitmapsize"></property>
+            <property name="caption"></property>
+            <property name="caption_visible">1</property>
+            <property name="center_pane">0</property>
+            <property name="close_button">1</property>
+            <property name="context_help"></property>
+            <property name="context_menu">1</property>
+            <property name="default_pane">0</property>
+            <property name="dock">Dock</property>
+            <property name="dock_fixed">0</property>
+            <property name="docking">Left</property>
+            <property name="drag_accept_files">0</property>
+            <property name="enabled">1</property>
+            <property name="fg"></property>
+            <property name="floatable">1</property>
+            <property name="font"></property>
+            <property name="gripper">0</property>
+            <property name="hidden"></property>
+            <property name="id">wxID_ANY</property>
+            <property name="max_size"></property>
+            <property name="maximize_button">0</property>
+            <property name="maximum_size"></property>
+            <property name="min_size"></property>
+            <property name="minimize_button">0</property>
+            <property name="minimum_size"></property>
+            <property name="moveable">1</property>
+            <property name="name">m_notebook1696</property>
+            <property name="pane_border">1</property>
+            <property name="pane_position"></property>
+            <property name="pane_size"></property>
+            <property name="permission">protected</property>
+            <property name="pin_button">1</property>
+            <property name="pos"></property>
+            <property name="resize">Resizable</property>
+            <property name="show">1</property>
+            <property name="size"></property>
+            <property name="style">wxBK_DEFAULT</property>
+            <property name="subclass">; ; forward_declare</property>
+            <property name="toolbar_pane">0</property>
+            <property name="tooltip"></property>
+            <property name="window_extra_style"></property>
+            <property name="window_name"></property>
+            <property name="window_style"></property>
+            <object class="notebookpage" expanded="true">
+              <property name="bitmap">Load From Embedded File; icons/16/disk.png</property>
+              <property name="label">Paths</property>
+              <property name="select">0</property>
+              <object class="wxPanel" expanded="true">
+                <property name="BottomDockable">1</property>
+                <property name="LeftDockable">1</property>
+                <property name="RightDockable">1</property>
+                <property name="TopDockable">1</property>
+                <property name="aui_layer"></property>
+                <property name="aui_name"></property>
+                <property name="aui_position"></property>
+                <property name="aui_row"></property>
+                <property name="best_size"></property>
+                <property name="bg"></property>
+                <property name="caption"></property>
+                <property name="caption_visible">1</property>
+                <property name="center_pane">0</property>
+                <property name="close_button">1</property>
+                <property name="context_help"></property>
+                <property name="context_menu">1</property>
+                <property name="default_pane">0</property>
+                <property name="dock">Dock</property>
+                <property name="dock_fixed">0</property>
+                <property name="docking">Left</property>
+                <property name="drag_accept_files">0</property>
+                <property name="enabled"></property>
+                <property name="fg"></property>
+                <property name="floatable">1</property>
+                <property name="font"></property>
+                <property name="gripper">0</property>
+                <property name="hidden"></property>
+                <property name="id">wxID_ANY</property>
+                <property name="max_size"></property>
+                <property name="maximize_button">0</property>
+                <property name="maximum_size"></property>
+                <property name="min_size"></property>
+                <property name="minimize_button">0</property>
+                <property name="minimum_size"></property>
+                <property name="moveable">1</property>
+                <property name="name">m_path_panel</property>
+                <property name="pane_border">1</property>
+                <property name="pane_position"></property>
+                <property name="pane_size"></property>
+                <property name="permission">protected</property>
+                <property name="pin_button">1</property>
+                <property name="pos"></property>
+                <property name="resize">Resizable</property>
+                <property name="show">1</property>
+                <property name="size"></property>
+                <property name="subclass">; ; forward_declare</property>
+                <property name="toolbar_pane">0</property>
+                <property name="tooltip"></property>
+                <property name="window_extra_style"></property>
+                <property name="window_name"></property>
+                <property name="window_style">wxTAB_TRAVERSAL</property>
+                <object class="wxBoxSizer" expanded="true">
+                  <property name="minimum_size"></property>
+                  <property name="name">sizer2011</property>
+                  <property name="orient">wxVERTICAL</property>
+                  <property name="permission">none</property>
+                  <object class="sizeritem" expanded="true">
+                    <property name="border">5</property>
+                    <property name="flag">wxEXPAND</property>
+                    <property name="proportion">0</property>
+                    <object class="wxGridSizer" expanded="true">
+                      <property name="cols">2</property>
+                      <property name="hgap">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="name">sizer2012</property>
+                      <property name="permission">none</property>
+                      <property name="rows">0</property>
+                      <property name="vgap">0</property>
+                      <object class="sizeritem" expanded="false">
+                        <property name="border">5</property>
+                        <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
+                        <property name="proportion">0</property>
+                        <object class="wxStaticText" expanded="false">
+                          <property name="BottomDockable">1</property>
+                          <property name="LeftDockable">1</property>
+                          <property name="RightDockable">1</property>
+                          <property name="TopDockable">1</property>
+                          <property name="aui_layer"></property>
+                          <property name="aui_name"></property>
+                          <property name="aui_position"></property>
+                          <property name="aui_row"></property>
+                          <property name="best_size"></property>
+                          <property name="bg"></property>
+                          <property name="caption"></property>
+                          <property name="caption_visible">1</property>
+                          <property name="center_pane">0</property>
+                          <property name="close_button">1</property>
+                          <property name="context_help"></property>
+                          <property name="context_menu">1</property>
+                          <property name="default_pane">0</property>
+                          <property name="dock">Dock</property>
+                          <property name="dock_fixed">0</property>
+                          <property name="docking">Left</property>
+                          <property name="drag_accept_files">0</property>
+                          <property name="enabled">1</property>
+                          <property name="fg"></property>
+                          <property name="floatable">1</property>
+                          <property name="font"></property>
+                          <property name="gripper">0</property>
+                          <property name="hidden"></property>
+                          <property name="id">wxID_ANY</property>
+                          <property name="label">Models path</property>
+                          <property name="markup">0</property>
+                          <property name="max_size"></property>
+                          <property name="maximize_button">0</property>
+                          <property name="maximum_size"></property>
+                          <property name="min_size"></property>
+                          <property name="minimize_button">0</property>
+                          <property name="minimum_size"></property>
+                          <property name="moveable">1</property>
+                          <property name="name">m_staticText172410</property>
+                          <property name="pane_border">1</property>
+                          <property name="pane_position"></property>
+                          <property name="pane_size"></property>
+                          <property name="permission">protected</property>
+                          <property name="pin_button">1</property>
+                          <property name="pos"></property>
+                          <property name="resize">Resizable</property>
+                          <property name="show">1</property>
+                          <property name="size"></property>
+                          <property name="style"></property>
+                          <property name="subclass">; ; forward_declare</property>
+                          <property name="toolbar_pane">0</property>
+                          <property name="tooltip"></property>
+                          <property name="window_extra_style"></property>
+                          <property name="window_name"></property>
+                          <property name="window_style"></property>
+                          <property name="wrap">0</property>
+                        </object>
+                      </object>
+                      <object class="sizeritem" expanded="false">
+                        <property name="border">5</property>
+                        <property name="flag">wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL</property>
+                        <property name="proportion">0</property>
+                        <object class="wxDirPickerCtrl" expanded="false">
+                          <property name="BottomDockable">1</property>
+                          <property name="LeftDockable">1</property>
+                          <property name="RightDockable">1</property>
+                          <property name="TopDockable">1</property>
+                          <property name="aui_layer"></property>
+                          <property name="aui_name"></property>
+                          <property name="aui_position"></property>
+                          <property name="aui_row"></property>
+                          <property name="best_size"></property>
+                          <property name="bg"></property>
+                          <property name="caption"></property>
+                          <property name="caption_visible">1</property>
+                          <property name="center_pane">0</property>
+                          <property name="close_button">1</property>
+                          <property name="context_help"></property>
+                          <property name="context_menu">1</property>
+                          <property name="default_pane">0</property>
+                          <property name="dock">Dock</property>
+                          <property name="dock_fixed">0</property>
+                          <property name="docking">Left</property>
+                          <property name="drag_accept_files">0</property>
+                          <property name="enabled">1</property>
+                          <property name="fg"></property>
+                          <property name="floatable">1</property>
+                          <property name="font"></property>
+                          <property name="gripper">0</property>
+                          <property name="hidden"></property>
+                          <property name="id">wxID_ANY</property>
+                          <property name="max_size"></property>
+                          <property name="maximize_button">0</property>
+                          <property name="maximum_size"></property>
+                          <property name="message">Select a folder</property>
+                          <property name="min_size"></property>
+                          <property name="minimize_button">0</property>
+                          <property name="minimum_size">200,-1</property>
+                          <property name="moveable">1</property>
+                          <property name="name">m_model_dir</property>
+                          <property name="pane_border">1</property>
+                          <property name="pane_position"></property>
+                          <property name="pane_size"></property>
+                          <property name="permission">protected</property>
+                          <property name="pin_button">1</property>
+                          <property name="pos"></property>
+                          <property name="resize">Resizable</property>
+                          <property name="show">1</property>
+                          <property name="size"></property>
+                          <property name="style">wxDIRP_SMALL|wxDIRP_DEFAULT_STYLE</property>
+                          <property name="subclass">; ; forward_declare</property>
+                          <property name="toolbar_pane">0</property>
+                          <property name="tooltip"></property>
+                          <property name="validator_data_type"></property>
+                          <property name="validator_style">wxFILTER_NONE</property>
+                          <property name="validator_type">wxDefaultValidator</property>
+                          <property name="validator_variable"></property>
+                          <property name="value"></property>
+                          <property name="window_extra_style"></property>
+                          <property name="window_name"></property>
+                          <property name="window_style"></property>
+                        </object>
+                      </object>
+                    </object>
+                  </object>
+                  <object class="sizeritem" expanded="true">
+                    <property name="border">5</property>
+                    <property name="flag">wxEXPAND</property>
+                    <property name="proportion">0</property>
+                    <object class="wxGridSizer" expanded="true">
+                      <property name="cols">2</property>
+                      <property name="hgap">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="name">sizer2013</property>
+                      <property name="permission">none</property>
+                      <property name="rows">0</property>
+                      <property name="vgap">0</property>
+                      <object class="sizeritem" expanded="false">
+                        <property name="border">5</property>
+                        <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
+                        <property name="proportion">0</property>
+                        <object class="wxStaticText" expanded="false">
+                          <property name="BottomDockable">1</property>
+                          <property name="LeftDockable">1</property>
+                          <property name="RightDockable">1</property>
+                          <property name="TopDockable">1</property>
+                          <property name="aui_layer"></property>
+                          <property name="aui_name"></property>
+                          <property name="aui_position"></property>
+                          <property name="aui_row"></property>
+                          <property name="best_size"></property>
+                          <property name="bg"></property>
+                          <property name="caption"></property>
+                          <property name="caption_visible">1</property>
+                          <property name="center_pane">0</property>
+                          <property name="close_button">1</property>
+                          <property name="context_help"></property>
+                          <property name="context_menu">1</property>
+                          <property name="default_pane">0</property>
+                          <property name="dock">Dock</property>
+                          <property name="dock_fixed">0</property>
+                          <property name="docking">Left</property>
+                          <property name="drag_accept_files">0</property>
+                          <property name="enabled">1</property>
+                          <property name="fg"></property>
+                          <property name="floatable">1</property>
+                          <property name="font"></property>
+                          <property name="gripper">0</property>
+                          <property name="hidden"></property>
+                          <property name="id">wxID_ANY</property>
+                          <property name="label">Vae path</property>
+                          <property name="markup">0</property>
+                          <property name="max_size"></property>
+                          <property name="maximize_button">0</property>
+                          <property name="maximum_size"></property>
+                          <property name="min_size"></property>
+                          <property name="minimize_button">0</property>
+                          <property name="minimum_size"></property>
+                          <property name="moveable">1</property>
+                          <property name="name">m_staticText18013</property>
+                          <property name="pane_border">1</property>
+                          <property name="pane_position"></property>
+                          <property name="pane_size"></property>
+                          <property name="permission">protected</property>
+                          <property name="pin_button">1</property>
+                          <property name="pos"></property>
+                          <property name="resize">Resizable</property>
+                          <property name="show">1</property>
+                          <property name="size"></property>
+                          <property name="style"></property>
+                          <property name="subclass">; ; forward_declare</property>
+                          <property name="toolbar_pane">0</property>
+                          <property name="tooltip"></property>
+                          <property name="window_extra_style"></property>
+                          <property name="window_name"></property>
+                          <property name="window_style"></property>
+                          <property name="wrap">0</property>
+                        </object>
+                      </object>
+                      <object class="sizeritem" expanded="false">
+                        <property name="border">5</property>
+                        <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND</property>
+                        <property name="proportion">0</property>
+                        <object class="wxDirPickerCtrl" expanded="false">
+                          <property name="BottomDockable">1</property>
+                          <property name="LeftDockable">1</property>
+                          <property name="RightDockable">1</property>
+                          <property name="TopDockable">1</property>
+                          <property name="aui_layer"></property>
+                          <property name="aui_name"></property>
+                          <property name="aui_position"></property>
+                          <property name="aui_row"></property>
+                          <property name="best_size"></property>
+                          <property name="bg"></property>
+                          <property name="caption"></property>
+                          <property name="caption_visible">1</property>
+                          <property name="center_pane">0</property>
+                          <property name="close_button">1</property>
+                          <property name="context_help"></property>
+                          <property name="context_menu">1</property>
+                          <property name="default_pane">0</property>
+                          <property name="dock">Dock</property>
+                          <property name="dock_fixed">0</property>
+                          <property name="docking">Left</property>
+                          <property name="drag_accept_files">0</property>
+                          <property name="enabled">1</property>
+                          <property name="fg"></property>
+                          <property name="floatable">1</property>
+                          <property name="font"></property>
+                          <property name="gripper">0</property>
+                          <property name="hidden"></property>
+                          <property name="id">wxID_ANY</property>
+                          <property name="max_size"></property>
+                          <property name="maximize_button">0</property>
+                          <property name="maximum_size"></property>
+                          <property name="message">Select a folder</property>
+                          <property name="min_size"></property>
+                          <property name="minimize_button">0</property>
+                          <property name="minimum_size">200,-1</property>
+                          <property name="moveable">1</property>
+                          <property name="name">m_vae_dir</property>
+                          <property name="pane_border">1</property>
+                          <property name="pane_position"></property>
+                          <property name="pane_size"></property>
+                          <property name="permission">protected</property>
+                          <property name="pin_button">1</property>
+                          <property name="pos"></property>
+                          <property name="resize">Resizable</property>
+                          <property name="show">1</property>
+                          <property name="size"></property>
+                          <property name="style">wxDIRP_SMALL|wxDIRP_DEFAULT_STYLE</property>
+                          <property name="subclass">; ; forward_declare</property>
+                          <property name="toolbar_pane">0</property>
+                          <property name="tooltip"></property>
+                          <property name="validator_data_type"></property>
+                          <property name="validator_style">wxFILTER_NONE</property>
+                          <property name="validator_type">wxDefaultValidator</property>
+                          <property name="validator_variable"></property>
+                          <property name="value"></property>
+                          <property name="window_extra_style"></property>
+                          <property name="window_name"></property>
+                          <property name="window_style"></property>
+                        </object>
+                      </object>
+                    </object>
+                  </object>
+                  <object class="sizeritem" expanded="true">
+                    <property name="border">5</property>
+                    <property name="flag">wxEXPAND</property>
+                    <property name="proportion">0</property>
+                    <object class="wxGridSizer" expanded="true">
+                      <property name="cols">2</property>
+                      <property name="hgap">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="name">sizer2014</property>
+                      <property name="permission">none</property>
+                      <property name="rows">0</property>
+                      <property name="vgap">0</property>
+                      <object class="sizeritem" expanded="false">
+                        <property name="border">5</property>
+                        <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
+                        <property name="proportion">0</property>
+                        <object class="wxStaticText" expanded="false">
+                          <property name="BottomDockable">1</property>
+                          <property name="LeftDockable">1</property>
+                          <property name="RightDockable">1</property>
+                          <property name="TopDockable">1</property>
+                          <property name="aui_layer"></property>
+                          <property name="aui_name"></property>
+                          <property name="aui_position"></property>
+                          <property name="aui_row"></property>
+                          <property name="best_size"></property>
+                          <property name="bg"></property>
+                          <property name="caption"></property>
+                          <property name="caption_visible">1</property>
+                          <property name="center_pane">0</property>
+                          <property name="close_button">1</property>
+                          <property name="context_help"></property>
+                          <property name="context_menu">1</property>
+                          <property name="default_pane">0</property>
+                          <property name="dock">Dock</property>
+                          <property name="dock_fixed">0</property>
+                          <property name="docking">Left</property>
+                          <property name="drag_accept_files">0</property>
+                          <property name="enabled">1</property>
+                          <property name="fg"></property>
+                          <property name="floatable">1</property>
+                          <property name="font"></property>
+                          <property name="gripper">0</property>
+                          <property name="hidden"></property>
+                          <property name="id">wxID_ANY</property>
+                          <property name="label">Embedding path</property>
+                          <property name="markup">0</property>
+                          <property name="max_size"></property>
+                          <property name="maximize_button">0</property>
+                          <property name="maximum_size"></property>
+                          <property name="min_size"></property>
+                          <property name="minimize_button">0</property>
+                          <property name="minimum_size"></property>
+                          <property name="moveable">1</property>
+                          <property name="name">m_staticText1801317202731</property>
+                          <property name="pane_border">1</property>
+                          <property name="pane_position"></property>
+                          <property name="pane_size"></property>
+                          <property name="permission">protected</property>
+                          <property name="pin_button">1</property>
+                          <property name="pos"></property>
+                          <property name="resize">Resizable</property>
+                          <property name="show">1</property>
+                          <property name="size"></property>
+                          <property name="style"></property>
+                          <property name="subclass">; ; forward_declare</property>
+                          <property name="toolbar_pane">0</property>
+                          <property name="tooltip"></property>
+                          <property name="window_extra_style"></property>
+                          <property name="window_name"></property>
+                          <property name="window_style"></property>
+                          <property name="wrap">0</property>
+                        </object>
+                      </object>
+                      <object class="sizeritem" expanded="false">
+                        <property name="border">5</property>
+                        <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND</property>
+                        <property name="proportion">0</property>
+                        <object class="wxDirPickerCtrl" expanded="false">
+                          <property name="BottomDockable">1</property>
+                          <property name="LeftDockable">1</property>
+                          <property name="RightDockable">1</property>
+                          <property name="TopDockable">1</property>
+                          <property name="aui_layer"></property>
+                          <property name="aui_name"></property>
+                          <property name="aui_position"></property>
+                          <property name="aui_row"></property>
+                          <property name="best_size"></property>
+                          <property name="bg"></property>
+                          <property name="caption"></property>
+                          <property name="caption_visible">1</property>
+                          <property name="center_pane">0</property>
+                          <property name="close_button">1</property>
+                          <property name="context_help"></property>
+                          <property name="context_menu">1</property>
+                          <property name="default_pane">0</property>
+                          <property name="dock">Dock</property>
+                          <property name="dock_fixed">0</property>
+                          <property name="docking">Left</property>
+                          <property name="drag_accept_files">0</property>
+                          <property name="enabled">1</property>
+                          <property name="fg"></property>
+                          <property name="floatable">1</property>
+                          <property name="font"></property>
+                          <property name="gripper">0</property>
+                          <property name="hidden"></property>
+                          <property name="id">wxID_ANY</property>
+                          <property name="max_size"></property>
+                          <property name="maximize_button">0</property>
+                          <property name="maximum_size"></property>
+                          <property name="message">Select a folder</property>
+                          <property name="min_size"></property>
+                          <property name="minimize_button">0</property>
+                          <property name="minimum_size">200,-1</property>
+                          <property name="moveable">1</property>
+                          <property name="name">m_embedding_dir</property>
+                          <property name="pane_border">1</property>
+                          <property name="pane_position"></property>
+                          <property name="pane_size"></property>
+                          <property name="permission">protected</property>
+                          <property name="pin_button">1</property>
+                          <property name="pos"></property>
+                          <property name="resize">Resizable</property>
+                          <property name="show">1</property>
+                          <property name="size"></property>
+                          <property name="style">wxDIRP_SMALL|wxDIRP_DEFAULT_STYLE</property>
+                          <property name="subclass">; ; forward_declare</property>
+                          <property name="toolbar_pane">0</property>
+                          <property name="tooltip"></property>
+                          <property name="validator_data_type"></property>
+                          <property name="validator_style">wxFILTER_NONE</property>
+                          <property name="validator_type">wxDefaultValidator</property>
+                          <property name="validator_variable"></property>
+                          <property name="value"></property>
+                          <property name="window_extra_style"></property>
+                          <property name="window_name"></property>
+                          <property name="window_style"></property>
+                        </object>
+                      </object>
+                    </object>
+                  </object>
+                  <object class="sizeritem" expanded="true">
+                    <property name="border">5</property>
+                    <property name="flag">wxEXPAND</property>
+                    <property name="proportion">0</property>
+                    <object class="wxGridSizer" expanded="true">
+                      <property name="cols">2</property>
+                      <property name="hgap">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="name">sizer2015</property>
+                      <property name="permission">none</property>
+                      <property name="rows">0</property>
+                      <property name="vgap">0</property>
+                      <object class="sizeritem" expanded="false">
+                        <property name="border">5</property>
+                        <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
+                        <property name="proportion">0</property>
+                        <object class="wxStaticText" expanded="false">
+                          <property name="BottomDockable">1</property>
+                          <property name="LeftDockable">1</property>
+                          <property name="RightDockable">1</property>
+                          <property name="TopDockable">1</property>
+                          <property name="aui_layer"></property>
+                          <property name="aui_name"></property>
+                          <property name="aui_position"></property>
+                          <property name="aui_row"></property>
+                          <property name="best_size"></property>
+                          <property name="bg"></property>
+                          <property name="caption"></property>
+                          <property name="caption_visible">1</property>
+                          <property name="center_pane">0</property>
+                          <property name="close_button">1</property>
+                          <property name="context_help"></property>
+                          <property name="context_menu">1</property>
+                          <property name="default_pane">0</property>
+                          <property name="dock">Dock</property>
+                          <property name="dock_fixed">0</property>
+                          <property name="docking">Left</property>
+                          <property name="drag_accept_files">0</property>
+                          <property name="enabled">1</property>
+                          <property name="fg"></property>
+                          <property name="floatable">1</property>
+                          <property name="font"></property>
+                          <property name="gripper">0</property>
+                          <property name="hidden"></property>
+                          <property name="id">wxID_ANY</property>
+                          <property name="label">Lora path</property>
+                          <property name="markup">0</property>
+                          <property name="max_size"></property>
+                          <property name="maximize_button">0</property>
+                          <property name="maximum_size"></property>
+                          <property name="min_size"></property>
+                          <property name="minimize_button">0</property>
+                          <property name="minimum_size"></property>
+                          <property name="moveable">1</property>
+                          <property name="name">m_staticText18013172027</property>
+                          <property name="pane_border">1</property>
+                          <property name="pane_position"></property>
+                          <property name="pane_size"></property>
+                          <property name="permission">protected</property>
+                          <property name="pin_button">1</property>
+                          <property name="pos"></property>
+                          <property name="resize">Resizable</property>
+                          <property name="show">1</property>
+                          <property name="size"></property>
+                          <property name="style"></property>
+                          <property name="subclass">; ; forward_declare</property>
+                          <property name="toolbar_pane">0</property>
+                          <property name="tooltip"></property>
+                          <property name="window_extra_style"></property>
+                          <property name="window_name"></property>
+                          <property name="window_style"></property>
+                          <property name="wrap">0</property>
+                        </object>
+                      </object>
+                      <object class="sizeritem" expanded="false">
+                        <property name="border">5</property>
+                        <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND</property>
+                        <property name="proportion">0</property>
+                        <object class="wxDirPickerCtrl" expanded="false">
+                          <property name="BottomDockable">1</property>
+                          <property name="LeftDockable">1</property>
+                          <property name="RightDockable">1</property>
+                          <property name="TopDockable">1</property>
+                          <property name="aui_layer"></property>
+                          <property name="aui_name"></property>
+                          <property name="aui_position"></property>
+                          <property name="aui_row"></property>
+                          <property name="best_size"></property>
+                          <property name="bg"></property>
+                          <property name="caption"></property>
+                          <property name="caption_visible">1</property>
+                          <property name="center_pane">0</property>
+                          <property name="close_button">1</property>
+                          <property name="context_help"></property>
+                          <property name="context_menu">1</property>
+                          <property name="default_pane">0</property>
+                          <property name="dock">Dock</property>
+                          <property name="dock_fixed">0</property>
+                          <property name="docking">Left</property>
+                          <property name="drag_accept_files">0</property>
+                          <property name="enabled">1</property>
+                          <property name="fg"></property>
+                          <property name="floatable">1</property>
+                          <property name="font"></property>
+                          <property name="gripper">0</property>
+                          <property name="hidden"></property>
+                          <property name="id">wxID_ANY</property>
+                          <property name="max_size"></property>
+                          <property name="maximize_button">0</property>
+                          <property name="maximum_size"></property>
+                          <property name="message">Select a folder</property>
+                          <property name="min_size"></property>
+                          <property name="minimize_button">0</property>
+                          <property name="minimum_size">200,-1</property>
+                          <property name="moveable">1</property>
+                          <property name="name">m_lora_dir</property>
+                          <property name="pane_border">1</property>
+                          <property name="pane_position"></property>
+                          <property name="pane_size"></property>
+                          <property name="permission">protected</property>
+                          <property name="pin_button">1</property>
+                          <property name="pos"></property>
+                          <property name="resize">Resizable</property>
+                          <property name="show">1</property>
+                          <property name="size"></property>
+                          <property name="style">wxDIRP_SMALL|wxDIRP_DEFAULT_STYLE</property>
+                          <property name="subclass">; ; forward_declare</property>
+                          <property name="toolbar_pane">0</property>
+                          <property name="tooltip"></property>
+                          <property name="validator_data_type"></property>
+                          <property name="validator_style">wxFILTER_NONE</property>
+                          <property name="validator_type">wxDefaultValidator</property>
+                          <property name="validator_variable"></property>
+                          <property name="value"></property>
+                          <property name="window_extra_style"></property>
+                          <property name="window_name"></property>
+                          <property name="window_style"></property>
+                        </object>
+                      </object>
+                    </object>
+                  </object>
+                  <object class="sizeritem" expanded="true">
+                    <property name="border">5</property>
+                    <property name="flag">wxEXPAND</property>
+                    <property name="proportion">0</property>
+                    <object class="wxGridSizer" expanded="true">
+                      <property name="cols">2</property>
+                      <property name="hgap">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="name">gSizer8</property>
+                      <property name="permission">none</property>
+                      <property name="rows">0</property>
+                      <property name="vgap">0</property>
+                      <object class="sizeritem" expanded="false">
+                        <property name="border">5</property>
+                        <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
+                        <property name="proportion">0</property>
+                        <object class="wxStaticText" expanded="false">
+                          <property name="BottomDockable">1</property>
+                          <property name="LeftDockable">1</property>
+                          <property name="RightDockable">1</property>
+                          <property name="TopDockable">1</property>
+                          <property name="aui_layer"></property>
+                          <property name="aui_name"></property>
+                          <property name="aui_position"></property>
+                          <property name="aui_row"></property>
+                          <property name="best_size"></property>
+                          <property name="bg"></property>
+                          <property name="caption"></property>
+                          <property name="caption_visible">1</property>
+                          <property name="center_pane">0</property>
+                          <property name="close_button">1</property>
+                          <property name="context_help"></property>
+                          <property name="context_menu">1</property>
+                          <property name="default_pane">0</property>
+                          <property name="dock">Dock</property>
+                          <property name="dock_fixed">0</property>
+                          <property name="docking">Left</property>
+                          <property name="drag_accept_files">0</property>
+                          <property name="enabled">1</property>
+                          <property name="fg"></property>
+                          <property name="floatable">1</property>
+                          <property name="font"></property>
+                          <property name="gripper">0</property>
+                          <property name="hidden">0</property>
+                          <property name="id">wxID_ANY</property>
+                          <property name="label">Presets path</property>
+                          <property name="markup">0</property>
+                          <property name="max_size"></property>
+                          <property name="maximize_button">0</property>
+                          <property name="maximum_size"></property>
+                          <property name="min_size"></property>
+                          <property name="minimize_button">0</property>
+                          <property name="minimum_size"></property>
+                          <property name="moveable">1</property>
+                          <property name="name">m_staticText19</property>
+                          <property name="pane_border">1</property>
+                          <property name="pane_position"></property>
+                          <property name="pane_size"></property>
+                          <property name="permission">protected</property>
+                          <property name="pin_button">1</property>
+                          <property name="pos"></property>
+                          <property name="resize">Resizable</property>
+                          <property name="show">1</property>
+                          <property name="size"></property>
+                          <property name="style"></property>
+                          <property name="subclass">; ; forward_declare</property>
+                          <property name="toolbar_pane">0</property>
+                          <property name="tooltip"></property>
+                          <property name="window_extra_style"></property>
+                          <property name="window_name"></property>
+                          <property name="window_style"></property>
+                          <property name="wrap">-1</property>
+                        </object>
+                      </object>
+                      <object class="sizeritem" expanded="true">
+                        <property name="border">5</property>
+                        <property name="flag">wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL</property>
+                        <property name="proportion">0</property>
+                        <object class="wxDirPickerCtrl" expanded="true">
+                          <property name="BottomDockable">1</property>
+                          <property name="LeftDockable">1</property>
+                          <property name="RightDockable">1</property>
+                          <property name="TopDockable">1</property>
+                          <property name="aui_layer"></property>
+                          <property name="aui_name"></property>
+                          <property name="aui_position"></property>
+                          <property name="aui_row"></property>
+                          <property name="best_size"></property>
+                          <property name="bg"></property>
+                          <property name="caption"></property>
+                          <property name="caption_visible">1</property>
+                          <property name="center_pane">0</property>
+                          <property name="close_button">1</property>
+                          <property name="context_help"></property>
+                          <property name="context_menu">1</property>
+                          <property name="default_pane">0</property>
+                          <property name="dock">Dock</property>
+                          <property name="dock_fixed">0</property>
+                          <property name="docking">Left</property>
+                          <property name="drag_accept_files">0</property>
+                          <property name="enabled">1</property>
+                          <property name="fg"></property>
+                          <property name="floatable">1</property>
+                          <property name="font"></property>
+                          <property name="gripper">0</property>
+                          <property name="hidden">0</property>
+                          <property name="id">wxID_ANY</property>
+                          <property name="max_size"></property>
+                          <property name="maximize_button">0</property>
+                          <property name="maximum_size"></property>
+                          <property name="message">Select a folder</property>
+                          <property name="min_size"></property>
+                          <property name="minimize_button">0</property>
+                          <property name="minimum_size">200,-1</property>
+                          <property name="moveable">1</property>
+                          <property name="name">m_presets_dir</property>
+                          <property name="pane_border">1</property>
+                          <property name="pane_position"></property>
+                          <property name="pane_size"></property>
+                          <property name="permission">protected</property>
+                          <property name="pin_button">1</property>
+                          <property name="pos"></property>
+                          <property name="resize">Resizable</property>
+                          <property name="show">1</property>
+                          <property name="size"></property>
+                          <property name="style">wxDIRP_DEFAULT_STYLE|wxDIRP_SMALL</property>
+                          <property name="subclass">; ; forward_declare</property>
+                          <property name="toolbar_pane">0</property>
+                          <property name="tooltip"></property>
+                          <property name="validator_data_type"></property>
+                          <property name="validator_style">wxFILTER_NONE</property>
+                          <property name="validator_type">wxDefaultValidator</property>
+                          <property name="validator_variable"></property>
+                          <property name="value"></property>
+                          <property name="window_extra_style"></property>
+                          <property name="window_name"></property>
+                          <property name="window_style"></property>
+                        </object>
+                      </object>
+                    </object>
+                  </object>
+                  <object class="sizeritem" expanded="false">
+                    <property name="border">5</property>
+                    <property name="flag">wxALL|wxEXPAND</property>
+                    <property name="proportion">0</property>
+                    <object class="wxStaticLine" expanded="false">
+                      <property name="BottomDockable">1</property>
+                      <property name="LeftDockable">1</property>
+                      <property name="RightDockable">1</property>
+                      <property name="TopDockable">1</property>
+                      <property name="aui_layer"></property>
+                      <property name="aui_name"></property>
+                      <property name="aui_position"></property>
+                      <property name="aui_row"></property>
+                      <property name="best_size"></property>
+                      <property name="bg"></property>
+                      <property name="caption"></property>
+                      <property name="caption_visible">1</property>
+                      <property name="center_pane">0</property>
+                      <property name="close_button">1</property>
+                      <property name="context_help"></property>
+                      <property name="context_menu">1</property>
+                      <property name="default_pane">0</property>
+                      <property name="dock">Dock</property>
+                      <property name="dock_fixed">0</property>
+                      <property name="docking">Left</property>
+                      <property name="drag_accept_files">0</property>
+                      <property name="enabled"></property>
+                      <property name="fg"></property>
+                      <property name="floatable">1</property>
+                      <property name="font"></property>
+                      <property name="gripper">0</property>
+                      <property name="hidden"></property>
+                      <property name="id">wxID_ANY</property>
+                      <property name="max_size"></property>
+                      <property name="maximize_button">0</property>
+                      <property name="maximum_size"></property>
+                      <property name="min_size"></property>
+                      <property name="minimize_button">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="moveable">1</property>
+                      <property name="name">m_staticLine223</property>
+                      <property name="pane_border">1</property>
+                      <property name="pane_position"></property>
+                      <property name="pane_size"></property>
+                      <property name="permission">protected</property>
+                      <property name="pin_button">1</property>
+                      <property name="pos"></property>
+                      <property name="resize">Resizable</property>
+                      <property name="show">1</property>
+                      <property name="size"></property>
+                      <property name="style">wxLI_HORIZONTAL</property>
+                      <property name="subclass">; ; forward_declare</property>
+                      <property name="toolbar_pane">0</property>
+                      <property name="tooltip"></property>
+                      <property name="window_extra_style"></property>
+                      <property name="window_name"></property>
+                      <property name="window_style"></property>
+                    </object>
+                  </object>
+                  <object class="sizeritem" expanded="true">
+                    <property name="border">5</property>
+                    <property name="flag">wxEXPAND</property>
+                    <property name="proportion">0</property>
+                    <object class="wxGridSizer" expanded="true">
+                      <property name="cols">2</property>
+                      <property name="hgap">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="name">sizer2016</property>
+                      <property name="permission">none</property>
+                      <property name="rows">0</property>
+                      <property name="vgap">0</property>
+                      <object class="sizeritem" expanded="false">
+                        <property name="border">5</property>
+                        <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
+                        <property name="proportion">0</property>
+                        <object class="wxStaticText" expanded="false">
+                          <property name="BottomDockable">1</property>
+                          <property name="LeftDockable">1</property>
+                          <property name="RightDockable">1</property>
+                          <property name="TopDockable">1</property>
+                          <property name="aui_layer"></property>
+                          <property name="aui_name"></property>
+                          <property name="aui_position"></property>
+                          <property name="aui_row"></property>
+                          <property name="best_size"></property>
+                          <property name="bg"></property>
+                          <property name="caption"></property>
+                          <property name="caption_visible">1</property>
+                          <property name="center_pane">0</property>
+                          <property name="close_button">1</property>
+                          <property name="context_help"></property>
+                          <property name="context_menu">1</property>
+                          <property name="default_pane">0</property>
+                          <property name="dock">Dock</property>
+                          <property name="dock_fixed">0</property>
+                          <property name="docking">Left</property>
+                          <property name="drag_accept_files">0</property>
+                          <property name="enabled">1</property>
+                          <property name="fg"></property>
+                          <property name="floatable">1</property>
+                          <property name="font"></property>
+                          <property name="gripper">0</property>
+                          <property name="hidden"></property>
+                          <property name="id">wxID_ANY</property>
+                          <property name="label">Images output</property>
+                          <property name="markup">0</property>
+                          <property name="max_size"></property>
+                          <property name="maximize_button">0</property>
+                          <property name="maximum_size"></property>
+                          <property name="min_size"></property>
+                          <property name="minimize_button">0</property>
+                          <property name="minimum_size"></property>
+                          <property name="moveable">1</property>
+                          <property name="name">m_staticText180131720</property>
+                          <property name="pane_border">1</property>
+                          <property name="pane_position"></property>
+                          <property name="pane_size"></property>
+                          <property name="permission">protected</property>
+                          <property name="pin_button">1</property>
+                          <property name="pos"></property>
+                          <property name="resize">Resizable</property>
+                          <property name="show">1</property>
+                          <property name="size"></property>
+                          <property name="style"></property>
+                          <property name="subclass">; ; forward_declare</property>
+                          <property name="toolbar_pane">0</property>
+                          <property name="tooltip"></property>
+                          <property name="window_extra_style"></property>
+                          <property name="window_name"></property>
+                          <property name="window_style"></property>
+                          <property name="wrap">0</property>
+                        </object>
+                      </object>
+                      <object class="sizeritem" expanded="false">
+                        <property name="border">5</property>
+                        <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND</property>
+                        <property name="proportion">0</property>
+                        <object class="wxDirPickerCtrl" expanded="false">
+                          <property name="BottomDockable">1</property>
+                          <property name="LeftDockable">1</property>
+                          <property name="RightDockable">1</property>
+                          <property name="TopDockable">1</property>
+                          <property name="aui_layer"></property>
+                          <property name="aui_name"></property>
+                          <property name="aui_position"></property>
+                          <property name="aui_row"></property>
+                          <property name="best_size"></property>
+                          <property name="bg"></property>
+                          <property name="caption"></property>
+                          <property name="caption_visible">1</property>
+                          <property name="center_pane">0</property>
+                          <property name="close_button">1</property>
+                          <property name="context_help"></property>
+                          <property name="context_menu">1</property>
+                          <property name="default_pane">0</property>
+                          <property name="dock">Dock</property>
+                          <property name="dock_fixed">0</property>
+                          <property name="docking">Left</property>
+                          <property name="drag_accept_files">0</property>
+                          <property name="enabled">1</property>
+                          <property name="fg"></property>
+                          <property name="floatable">1</property>
+                          <property name="font"></property>
+                          <property name="gripper">0</property>
+                          <property name="hidden"></property>
+                          <property name="id">wxID_ANY</property>
+                          <property name="max_size"></property>
+                          <property name="maximize_button">0</property>
+                          <property name="maximum_size"></property>
+                          <property name="message">Select a folder</property>
+                          <property name="min_size"></property>
+                          <property name="minimize_button">0</property>
+                          <property name="minimum_size">200,-1</property>
+                          <property name="moveable">1</property>
+                          <property name="name">m_images_output</property>
+                          <property name="pane_border">1</property>
+                          <property name="pane_position"></property>
+                          <property name="pane_size"></property>
+                          <property name="permission">protected</property>
+                          <property name="pin_button">1</property>
+                          <property name="pos"></property>
+                          <property name="resize">Resizable</property>
+                          <property name="show">1</property>
+                          <property name="size"></property>
+                          <property name="style">wxDIRP_SMALL|wxDIRP_DEFAULT_STYLE</property>
+                          <property name="subclass">; ; forward_declare</property>
+                          <property name="toolbar_pane">0</property>
+                          <property name="tooltip"></property>
+                          <property name="validator_data_type"></property>
+                          <property name="validator_style">wxFILTER_NONE</property>
+                          <property name="validator_type">wxDefaultValidator</property>
+                          <property name="validator_variable"></property>
+                          <property name="value"></property>
+                          <property name="window_extra_style"></property>
+                          <property name="window_name"></property>
+                          <property name="window_style"></property>
+                        </object>
+                      </object>
+                    </object>
+                  </object>
+                </object>
+              </object>
+            </object>
+            <object class="notebookpage" expanded="false">
+              <property name="bitmap">Load From Embedded File; icons/16/palette.png</property>
+              <property name="label">Diffusion</property>
+              <property name="select">0</property>
+              <object class="wxPanel" expanded="false">
+                <property name="BottomDockable">1</property>
+                <property name="LeftDockable">1</property>
+                <property name="RightDockable">1</property>
+                <property name="TopDockable">1</property>
+                <property name="aui_layer"></property>
+                <property name="aui_name"></property>
+                <property name="aui_position"></property>
+                <property name="aui_row"></property>
+                <property name="best_size"></property>
+                <property name="bg"></property>
+                <property name="caption"></property>
+                <property name="caption_visible">1</property>
+                <property name="center_pane">0</property>
+                <property name="close_button">1</property>
+                <property name="context_help"></property>
+                <property name="context_menu">1</property>
+                <property name="default_pane">0</property>
+                <property name="dock">Dock</property>
+                <property name="dock_fixed">0</property>
+                <property name="docking">Left</property>
+                <property name="drag_accept_files">0</property>
+                <property name="enabled"></property>
+                <property name="fg"></property>
+                <property name="floatable">1</property>
+                <property name="font"></property>
+                <property name="gripper">0</property>
+                <property name="hidden"></property>
+                <property name="id">wxID_ANY</property>
+                <property name="max_size"></property>
+                <property name="maximize_button">0</property>
+                <property name="maximum_size"></property>
+                <property name="min_size"></property>
+                <property name="minimize_button">0</property>
+                <property name="minimum_size"></property>
+                <property name="moveable">1</property>
+                <property name="name">m_settings</property>
+                <property name="pane_border">1</property>
+                <property name="pane_position"></property>
+                <property name="pane_size"></property>
+                <property name="permission">protected</property>
+                <property name="pin_button">1</property>
+                <property name="pos"></property>
+                <property name="resize">Resizable</property>
+                <property name="show">1</property>
+                <property name="size"></property>
+                <property name="subclass">; ; forward_declare</property>
+                <property name="toolbar_pane">0</property>
+                <property name="tooltip"></property>
+                <property name="window_extra_style"></property>
+                <property name="window_name"></property>
+                <property name="window_style">wxTAB_TRAVERSAL</property>
+                <object class="wxBoxSizer" expanded="false">
+                  <property name="minimum_size"></property>
+                  <property name="name">sizer2017</property>
+                  <property name="orient">wxVERTICAL</property>
+                  <property name="permission">none</property>
+                  <object class="sizeritem" expanded="false">
+                    <property name="border">5</property>
+                    <property name="flag">wxALL|wxEXPAND</property>
+                    <property name="proportion">0</property>
+                    <object class="wxGridSizer" expanded="false">
+                      <property name="cols">2</property>
+                      <property name="hgap">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="name">sizer2018</property>
+                      <property name="permission">none</property>
+                      <property name="rows">0</property>
+                      <property name="vgap">0</property>
+                      <object class="sizeritem" expanded="false">
+                        <property name="border">5</property>
+                        <property name="flag">wxALIGN_LEFT|wxALL</property>
+                        <property name="proportion">0</property>
+                        <object class="wxCheckBox" expanded="false">
+                          <property name="BottomDockable">1</property>
+                          <property name="LeftDockable">1</property>
+                          <property name="RightDockable">1</property>
+                          <property name="TopDockable">1</property>
+                          <property name="aui_layer"></property>
+                          <property name="aui_name"></property>
+                          <property name="aui_position"></property>
+                          <property name="aui_row"></property>
+                          <property name="best_size"></property>
+                          <property name="bg"></property>
+                          <property name="caption"></property>
+                          <property name="caption_visible">1</property>
+                          <property name="center_pane">0</property>
+                          <property name="checked">1</property>
+                          <property name="close_button">1</property>
+                          <property name="context_help"></property>
+                          <property name="context_menu">1</property>
+                          <property name="default_pane">0</property>
+                          <property name="dock">Dock</property>
+                          <property name="dock_fixed">0</property>
+                          <property name="docking">Left</property>
+                          <property name="drag_accept_files">0</property>
+                          <property name="enabled">1</property>
+                          <property name="fg"></property>
+                          <property name="floatable">1</property>
+                          <property name="font"></property>
+                          <property name="gripper">0</property>
+                          <property name="hidden"></property>
+                          <property name="id">wxID_ANY</property>
+                          <property name="label">Keep model in memory</property>
+                          <property name="max_size"></property>
+                          <property name="maximize_button">0</property>
+                          <property name="maximum_size"></property>
+                          <property name="min_size"></property>
+                          <property name="minimize_button">0</property>
+                          <property name="minimum_size"></property>
+                          <property name="moveable">1</property>
+                          <property name="name">m_keep_model_in_memory</property>
+                          <property name="pane_border">1</property>
+                          <property name="pane_position"></property>
+                          <property name="pane_size"></property>
+                          <property name="permission">protected</property>
+                          <property name="pin_button">1</property>
+                          <property name="pos"></property>
+                          <property name="resize">Resizable</property>
+                          <property name="show">1</property>
+                          <property name="size"></property>
+                          <property name="style"></property>
+                          <property name="subclass">; ; forward_declare</property>
+                          <property name="toolbar_pane">0</property>
+                          <property name="tooltip"></property>
+                          <property name="validator_data_type"></property>
+                          <property name="validator_style">wxFILTER_NONE</property>
+                          <property name="validator_type">wxDefaultValidator</property>
+                          <property name="validator_variable"></property>
+                          <property name="window_extra_style"></property>
+                          <property name="window_name"></property>
+                          <property name="window_style"></property>
+                        </object>
+                      </object>
+                    </object>
+                  </object>
+                  <object class="sizeritem" expanded="false">
+                    <property name="border">5</property>
+                    <property name="flag">wxALL|wxEXPAND</property>
+                    <property name="proportion">0</property>
+                    <object class="wxGridSizer" expanded="false">
+                      <property name="cols">2</property>
+                      <property name="hgap">0</property>
+                      <property name="minimum_size"></property>
+                      <property name="name">sizer2019</property>
+                      <property name="permission">none</property>
+                      <property name="rows">0</property>
+                      <property name="vgap">0</property>
+                      <object class="sizeritem" expanded="false">
+                        <property name="border">5</property>
+                        <property name="flag">wxALIGN_LEFT|wxALL</property>
+                        <property name="proportion">0</property>
+                        <object class="wxCheckBox" expanded="false">
+                          <property name="BottomDockable">1</property>
+                          <property name="LeftDockable">1</property>
+                          <property name="RightDockable">1</property>
+                          <property name="TopDockable">1</property>
+                          <property name="aui_layer"></property>
+                          <property name="aui_name"></property>
+                          <property name="aui_position"></property>
+                          <property name="aui_row"></property>
+                          <property name="best_size"></property>
+                          <property name="bg"></property>
+                          <property name="caption"></property>
+                          <property name="caption_visible">1</property>
+                          <property name="center_pane">0</property>
+                          <property name="checked">1</property>
+                          <property name="close_button">1</property>
+                          <property name="context_help"></property>
+                          <property name="context_menu">1</property>
+                          <property name="default_pane">0</property>
+                          <property name="dock">Dock</property>
+                          <property name="dock_fixed">0</property>
+                          <property name="docking">Left</property>
+                          <property name="drag_accept_files">0</property>
+                          <property name="enabled">1</property>
+                          <property name="fg"></property>
+                          <property name="floatable">1</property>
+                          <property name="font"></property>
+                          <property name="gripper">0</property>
+                          <property name="hidden"></property>
+                          <property name="id">wxID_ANY</property>
+                          <property name="label">Save all images (intermediat images)</property>
+                          <property name="max_size"></property>
+                          <property name="maximize_button">0</property>
+                          <property name="maximum_size"></property>
+                          <property name="min_size"></property>
+                          <property name="minimize_button">0</property>
+                          <property name="minimum_size"></property>
+                          <property name="moveable">1</property>
+                          <property name="name">m_save_all_image</property>
+                          <property name="pane_border">1</property>
+                          <property name="pane_position"></property>
+                          <property name="pane_size"></property>
+                          <property name="permission">protected</property>
+                          <property name="pin_button">1</property>
+                          <property name="pos"></property>
+                          <property name="resize">Resizable</property>
+                          <property name="show">1</property>
+                          <property name="size"></property>
+                          <property name="style"></property>
+                          <property name="subclass">; ; forward_declare</property>
+                          <property name="toolbar_pane">0</property>
+                          <property name="tooltip"></property>
+                          <property name="validator_data_type"></property>
+                          <property name="validator_style">wxFILTER_NONE</property>
+                          <property name="validator_type">wxDefaultValidator</property>
+                          <property name="validator_variable"></property>
+                          <property name="window_extra_style"></property>
+                          <property name="window_name"></property>
+                          <property name="window_style"></property>
+                        </object>
+                      </object>
+                    </object>
+                  </object>
+                  <object class="sizeritem" expanded="false">
+                    <property name="border">5</property>
+                    <property name="flag">wxEXPAND</property>
+                    <property name="proportion">0</property>
+                    <object class="wxBoxSizer" expanded="false">
+                      <property name="minimum_size"></property>
+                      <property name="name">bSizer10</property>
+                      <property name="orient">wxHORIZONTAL</property>
+                      <property name="permission">none</property>
+                      <object class="sizeritem" expanded="false">
+                        <property name="border">5</property>
+                        <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
+                        <property name="proportion">0</property>
+                        <object class="wxStaticText" expanded="false">
+                          <property name="BottomDockable">1</property>
+                          <property name="LeftDockable">1</property>
+                          <property name="RightDockable">1</property>
+                          <property name="TopDockable">1</property>
+                          <property name="aui_layer"></property>
+                          <property name="aui_name"></property>
+                          <property name="aui_position"></property>
+                          <property name="aui_row"></property>
+                          <property name="best_size"></property>
+                          <property name="bg"></property>
+                          <property name="caption"></property>
+                          <property name="caption_visible">1</property>
+                          <property name="center_pane">0</property>
+                          <property name="close_button">1</property>
+                          <property name="context_help"></property>
+                          <property name="context_menu">1</property>
+                          <property name="default_pane">0</property>
+                          <property name="dock">Dock</property>
+                          <property name="dock_fixed">0</property>
+                          <property name="docking">Left</property>
+                          <property name="drag_accept_files">0</property>
+                          <property name="enabled">1</property>
+                          <property name="fg"></property>
+                          <property name="floatable">1</property>
+                          <property name="font"></property>
+                          <property name="gripper">0</property>
+                          <property name="hidden">0</property>
+                          <property name="id">wxID_ANY</property>
+                          <property name="label">Output images type</property>
+                          <property name="markup">0</property>
+                          <property name="max_size"></property>
+                          <property name="maximize_button">0</property>
+                          <property name="maximum_size"></property>
+                          <property name="min_size"></property>
+                          <property name="minimize_button">0</property>
+                          <property name="minimum_size"></property>
+                          <property name="moveable">1</property>
+                          <property name="name">m_staticText16</property>
+                          <property name="pane_border">1</property>
+                          <property name="pane_position"></property>
+                          <property name="pane_size"></property>
+                          <property name="permission">protected</property>
+                          <property name="pin_button">1</property>
+                          <property name="pos"></property>
+                          <property name="resize">Resizable</property>
+                          <property name="show">1</property>
+                          <property name="size"></property>
+                          <property name="style"></property>
+                          <property name="subclass">; ; forward_declare</property>
+                          <property name="toolbar_pane">0</property>
+                          <property name="tooltip"></property>
+                          <property name="window_extra_style"></property>
+                          <property name="window_name"></property>
+                          <property name="window_style"></property>
+                          <property name="wrap">-1</property>
+                        </object>
+                      </object>
+                      <object class="sizeritem" expanded="false">
+                        <property name="border">5</property>
+                        <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
+                        <property name="proportion">0</property>
+                        <object class="wxChoice" expanded="false">
+                          <property name="BottomDockable">1</property>
+                          <property name="LeftDockable">1</property>
+                          <property name="RightDockable">1</property>
+                          <property name="TopDockable">1</property>
+                          <property name="aui_layer"></property>
+                          <property name="aui_name"></property>
+                          <property name="aui_position"></property>
+                          <property name="aui_row"></property>
+                          <property name="best_size"></property>
+                          <property name="bg"></property>
+                          <property name="caption"></property>
+                          <property name="caption_visible">1</property>
+                          <property name="center_pane">0</property>
+                          <property name="choices">&quot;.png&quot; &quot;.jpg&quot;</property>
+                          <property name="close_button">1</property>
+                          <property name="context_help"></property>
+                          <property name="context_menu">1</property>
+                          <property name="default_pane">0</property>
+                          <property name="dock">Dock</property>
+                          <property name="dock_fixed">0</property>
+                          <property name="docking">Left</property>
+                          <property name="drag_accept_files">0</property>
+                          <property name="enabled">1</property>
+                          <property name="fg"></property>
+                          <property name="floatable">1</property>
+                          <property name="font"></property>
+                          <property name="gripper">0</property>
+                          <property name="hidden">0</property>
+                          <property name="id">wxID_ANY</property>
+                          <property name="max_size"></property>
+                          <property name="maximize_button">0</property>
+                          <property name="maximum_size"></property>
+                          <property name="min_size"></property>
+                          <property name="minimize_button">0</property>
+                          <property name="minimum_size"></property>
+                          <property name="moveable">1</property>
+                          <property name="name">m_choice4</property>
+                          <property name="pane_border">1</property>
+                          <property name="pane_position"></property>
+                          <property name="pane_size"></property>
+                          <property name="permission">protected</property>
+                          <property name="pin_button">1</property>
+                          <property name="pos"></property>
+                          <property name="resize">Resizable</property>
+                          <property name="selection">0</property>
+                          <property name="show">1</property>
+                          <property name="size"></property>
+                          <property name="style"></property>
+                          <property name="subclass">; ; forward_declare</property>
+                          <property name="toolbar_pane">0</property>
+                          <property name="tooltip"></property>
+                          <property name="validator_data_type"></property>
+                          <property name="validator_style">wxFILTER_NONE</property>
+                          <property name="validator_type">wxDefaultValidator</property>
+                          <property name="validator_variable"></property>
+                          <property name="window_extra_style"></property>
+                          <property name="window_name"></property>
+                          <property name="window_style"></property>
+                        </object>
+                      </object>
+                    </object>
+                  </object>
+                </object>
+              </object>
+            </object>
+          </object>
+        </object>
+        <object class="sizeritem" expanded="false">
+          <property name="border">5</property>
+          <property name="flag">wxALL</property>
+          <property name="proportion">0</property>
+          <object class="wxButton" expanded="false">
+            <property name="BottomDockable">1</property>
+            <property name="LeftDockable">1</property>
+            <property name="RightDockable">1</property>
+            <property name="TopDockable">1</property>
+            <property name="aui_layer"></property>
+            <property name="aui_name"></property>
+            <property name="aui_position"></property>
+            <property name="aui_row"></property>
+            <property name="auth_needed">0</property>
+            <property name="best_size"></property>
+            <property name="bg"></property>
+            <property name="bitmap">Load From Embedded File; icons/16/disk.png</property>
+            <property name="caption"></property>
+            <property name="caption_visible">1</property>
+            <property name="center_pane">0</property>
+            <property name="close_button">1</property>
+            <property name="context_help"></property>
+            <property name="context_menu">1</property>
+            <property name="current"></property>
+            <property name="default">0</property>
+            <property name="default_pane">0</property>
+            <property name="disabled"></property>
+            <property name="dock">Dock</property>
+            <property name="dock_fixed">0</property>
+            <property name="docking">Left</property>
+            <property name="drag_accept_files">0</property>
+            <property name="enabled">1</property>
+            <property name="fg"></property>
+            <property name="floatable">1</property>
+            <property name="focus"></property>
+            <property name="font"></property>
+            <property name="gripper">0</property>
+            <property name="hidden">0</property>
+            <property name="id">wxID_ANY</property>
+            <property name="label">Save</property>
+            <property name="margins"></property>
+            <property name="markup">0</property>
+            <property name="max_size"></property>
+            <property name="maximize_button">0</property>
+            <property name="maximum_size"></property>
+            <property name="min_size"></property>
+            <property name="minimize_button">0</property>
+            <property name="minimum_size"></property>
+            <property name="moveable">1</property>
+            <property name="name">m_save</property>
+            <property name="pane_border">1</property>
+            <property name="pane_position"></property>
+            <property name="pane_size"></property>
+            <property name="permission">protected</property>
+            <property name="pin_button">1</property>
+            <property name="pos"></property>
+            <property name="position"></property>
+            <property name="pressed"></property>
+            <property name="resize">Resizable</property>
+            <property name="show">1</property>
+            <property name="size"></property>
+            <property name="style"></property>
+            <property name="subclass">; ; forward_declare</property>
+            <property name="toolbar_pane">0</property>
+            <property name="tooltip"></property>
+            <property name="validator_data_type"></property>
+            <property name="validator_style">wxFILTER_NONE</property>
+            <property name="validator_type">wxDefaultValidator</property>
+            <property name="validator_variable"></property>
+            <property name="window_extra_style"></property>
+            <property name="window_name"></property>
+            <property name="window_style"></property>
+            <event name="OnButtonClick">onSave</event>
+          </object>
+        </object>
+      </object>
+    </object>
+    <object class="Frame" expanded="true">
+      <property name="aui_managed">0</property>
+      <property name="aui_manager_style">wxAUI_MGR_DEFAULT</property>
+      <property name="bg"></property>
+      <property name="center">wxBOTH</property>
+      <property name="context_help"></property>
+      <property name="context_menu">1</property>
+      <property name="drag_accept_files">0</property>
+      <property name="enabled">1</property>
+      <property name="event_handler">impl_virtual</property>
+      <property name="extra_style"></property>
+      <property name="fg"></property>
+      <property name="font"></property>
+      <property name="hidden">0</property>
+      <property name="id">wxID_ANY</property>
+      <property name="maximum_size"></property>
+      <property name="minimum_size">512,512</property>
+      <property name="name">ImageViewer</property>
+      <property name="pos"></property>
+      <property name="size">800,600</property>
+      <property name="style">wxDEFAULT_FRAME_STYLE</property>
+      <property name="subclass">; ; forward_declare</property>
+      <property name="title"></property>
+      <property name="tooltip"></property>
+      <property name="two_step_creation">0</property>
+      <property name="window_extra_style"></property>
+      <property name="window_name"></property>
+      <property name="window_style">wxTAB_TRAVERSAL</property>
+      <property name="xrc_skip_sizer">0</property>
+      <object class="wxBoxSizer" expanded="true">
+        <property name="minimum_size"></property>
+        <property name="name">ImageViewerbSizer11</property>
+        <property name="orient">wxHORIZONTAL</property>
+        <property name="permission">none</property>
+        <object class="sizeritem" expanded="false">
+          <property name="border">5</property>
+          <property name="flag">wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxALIGN_CENTER_VERTICAL</property>
+          <property name="proportion">1</property>
+          <object class="wxStaticBitmap" expanded="false">
+            <property name="BottomDockable">1</property>
+            <property name="LeftDockable">1</property>
+            <property name="RightDockable">1</property>
+            <property name="TopDockable">1</property>
+            <property name="aui_layer"></property>
+            <property name="aui_name"></property>
+            <property name="aui_position"></property>
+            <property name="aui_row"></property>
+            <property name="best_size"></property>
+            <property name="bg"></property>
+            <property name="bitmap">Load From File; </property>
+            <property name="caption"></property>
+            <property name="caption_visible">1</property>
+            <property name="center_pane">0</property>
+            <property name="close_button">1</property>
+            <property name="context_help"></property>
+            <property name="context_menu">1</property>
+            <property name="default_pane">0</property>
+            <property name="dock">Dock</property>
+            <property name="dock_fixed">0</property>
+            <property name="docking">Left</property>
+            <property name="drag_accept_files">0</property>
+            <property name="enabled">1</property>
+            <property name="fg"></property>
+            <property name="floatable">1</property>
+            <property name="font"></property>
+            <property name="gripper">0</property>
+            <property name="hidden">0</property>
+            <property name="id">wxID_ANY</property>
+            <property name="max_size"></property>
+            <property name="maximize_button">0</property>
+            <property name="maximum_size"></property>
+            <property name="min_size"></property>
+            <property name="minimize_button">0</property>
+            <property name="minimum_size">512,512</property>
+            <property name="moveable">1</property>
+            <property name="name">m_bitmap</property>
+            <property name="pane_border">1</property>
+            <property name="pane_position"></property>
+            <property name="pane_size"></property>
+            <property name="permission">public</property>
+            <property name="pin_button">1</property>
+            <property name="pos"></property>
+            <property name="resize">Resizable</property>
+            <property name="show">1</property>
+            <property name="size"></property>
+            <property name="subclass">; ; forward_declare</property>
+            <property name="toolbar_pane">0</property>
+            <property name="tooltip"></property>
+            <property name="window_extra_style"></property>
+            <property name="window_name"></property>
+            <property name="window_style"></property>
+          </object>
+        </object>
+        <object class="sizeritem" expanded="false">
+          <property name="border">5</property>
+          <property name="flag">wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL</property>
+          <property name="proportion">1</property>
+          <object class="wxTextCtrl" expanded="false">
+            <property name="BottomDockable">1</property>
+            <property name="LeftDockable">1</property>
+            <property name="RightDockable">1</property>
+            <property name="TopDockable">1</property>
+            <property name="aui_layer"></property>
+            <property name="aui_name"></property>
+            <property name="aui_position"></property>
+            <property name="aui_row"></property>
+            <property name="best_size"></property>
+            <property name="bg"></property>
+            <property name="caption"></property>
+            <property name="caption_visible">1</property>
+            <property name="center_pane">0</property>
+            <property name="close_button">1</property>
+            <property name="context_help"></property>
+            <property name="context_menu">1</property>
+            <property name="default_pane">0</property>
+            <property name="dock">Dock</property>
+            <property name="dock_fixed">0</property>
+            <property name="docking">Left</property>
+            <property name="drag_accept_files">0</property>
+            <property name="enabled">1</property>
+            <property name="fg"></property>
+            <property name="floatable">1</property>
+            <property name="font"></property>
+            <property name="gripper">0</property>
+            <property name="hidden">0</property>
+            <property name="id">wxID_ANY</property>
+            <property name="max_size"></property>
+            <property name="maximize_button">0</property>
+            <property name="maximum_size"></property>
+            <property name="maxlength"></property>
+            <property name="min_size"></property>
+            <property name="minimize_button">0</property>
+            <property name="minimum_size">-1,80</property>
+            <property name="moveable">1</property>
+            <property name="name">m_textCtrl4</property>
+            <property name="pane_border">1</property>
+            <property name="pane_position"></property>
+            <property name="pane_size"></property>
+            <property name="permission">public</property>
+            <property name="pin_button">1</property>
+            <property name="pos"></property>
+            <property name="resize">Resizable</property>
+            <property name="show">1</property>
+            <property name="size">-1,80</property>
+            <property name="style">wxTE_MULTILINE|wxTE_READONLY|wxTE_WORDWRAP</property>
+            <property name="subclass">; ; forward_declare</property>
+            <property name="toolbar_pane">0</property>
+            <property name="tooltip"></property>
+            <property name="validator_data_type"></property>
+            <property name="validator_style">wxFILTER_NONE</property>
+            <property name="validator_type">wxDefaultValidator</property>
+            <property name="validator_variable"></property>
+            <property name="value"></property>
+            <property name="window_extra_style"></property>
+            <property name="window_name"></property>
+            <property name="window_style"></property>
+          </object>
+        </object>
+      </object>
+    </object>
+  </object>
+</wxFormBuilder_Project>
diff --git a/vcpkg-configuration.json b/vcpkg-configuration.json
new file mode 100644
index 0000000..b12c963
--- /dev/null
+++ b/vcpkg-configuration.json
@@ -0,0 +1,14 @@
+{
+  "default-registry": {
+    "kind": "git",
+    "baseline": "7233110263ec34c316fd12d0a91c11d1ca9f860b",
+    "repository": "https://github.com/microsoft/vcpkg"
+  },
+  "registries": [
+    {
+      "kind": "artifact",
+      "location": "https://github.com/microsoft/vcpkg-ce-catalog/archive/refs/heads/main.zip",
+      "name": "microsoft"
+    }
+  ]
+}
diff --git a/vcpkg.json b/vcpkg.json
new file mode 100644
index 0000000..82a80d3
--- /dev/null
+++ b/vcpkg.json
@@ -0,0 +1,9 @@
+{
+  "dependencies": [
+    "fmt",
+    "wxwidgets",
+    "cuda",
+    "nlohmann-json",
+    "opencv4"
+  ]
+}
\ No newline at end of file

--
Gitblit v1.9.3