aboutsummaryrefslogtreecommitdiff
path: root/Src/Wasabi/wasabicfg/wasabicfg.h
diff options
context:
space:
mode:
Diffstat (limited to 'Src/Wasabi/wasabicfg/wasabicfg.h')
-rw-r--r--Src/Wasabi/wasabicfg/wasabicfg.h470
1 files changed, 470 insertions, 0 deletions
diff --git a/Src/Wasabi/wasabicfg/wasabicfg.h b/Src/Wasabi/wasabicfg/wasabicfg.h
new file mode 100644
index 00000000..aef4337a
--- /dev/null
+++ b/Src/Wasabi/wasabicfg/wasabicfg.h
@@ -0,0 +1,470 @@
+#ifndef __WASABI_CFG_H
+#define __WASABI_CFG_H
+
+#define GEN_FF
+#define WA5
+
+//#define _WASABIRUNTIME
+
+// Uncomment this to have an old-style global api pointer
+//#define WA3COMPATIBILITY
+
+
+#ifndef _WASABIRUNTIME
+
+#ifndef WA3COMPATIBILITY
+#define WASABINOMAINAPI
+#endif
+
+/*
+
+Comment or uncomment the following directives according to the needs of your application :
+
+*/
+
+/* note to the team:
+
+ the WANT_WASABI_API_* directives will go away once we're done splitting the api, their only purpose
+ is to split the api one bit at a time while the rest remains working. when it's done, all that will remain
+ will be the WASABI_COMPILE_* directives
+
+*/
+
+
+// This allows component (external plugins)
+//#define WASABI_COMPILE_COMPONENTS
+
+// This enables the layered UI
+#define WASABI_COMPILE_WND
+
+// This enables multiplexed timers
+#define WASABI_COMPILE_TIMERS
+
+// This enables xml group loading within the window api
+#define WASABI_COMPILE_SKIN
+#define WASABI_SCRIPT_SYSTEMOBJECT_WA3COMPATIBLE
+
+// This enables internationalizaiton
+// #define WASABI_COMPILE_UTF
+
+// This enables action handling in UI objects (clicks and keypresses)
+//#define WASABI_COMPILE_ACTIONS // CUT!!!
+
+// This enables UI scripting
+#define WASABI_COMPILE_SCRIPT
+
+// This enables keyboard locales in UI
+#define WASABI_COMPILE_LOCALES
+
+// This enables bitmap and truetype font rendering
+#define WASABI_COMPILE_FONTS
+
+//#define WASABI_FONT_RENDERER_USE_WIN32
+#define WASABI_FONT_RENDERER_USE_FREETYPE
+
+// This sets the static font renderer. If you are compiling with api_config, the attribute to set is { 0x280876cf, 0x48c0, 0x40bc, { 0x8e, 0x86, 0x73, 0xce, 0x6b, 0xb4, 0x62, 0xe5 } }, "Font Renderer"
+#if defined(WASABI_FONT_RENDERER_USE_WIN32)
+#define WASABI_FONT_RENDERER "" // "" is Win32
+#elif defined(WASABI_FONT_RENDERER_USE_FREETYPE)
+#define WASABI_FONT_RENDERER "Freetype" // Freetype lib
+#else
+#define WASABI_FONT_RENDERER "" // "" default for OS
+#endif
+
+// This lets you override all bitmapfonts using TTF fonts (for internationalization). define to a function call or a global value to change this value dynamically.
+// If you are compiling with api_config, the attribute to set is { 0x280876cf, 0x48c0, 0x40bc, { 0x8e, 0x86, 0x73, 0xce, 0x6b, 0xb4, 0x62, 0xe5 } }, "Use bitmap fonts (no international support)"
+#define WASABI_FONT_TTFOVERRIDE 0 // 1 does all rendering with TTF
+
+#define WASABI_WNDMGR_ANIMATEDRECTS 0 // if api_config is compiled, the item controlling this is {280876CF-48C0-40bc-8E86-73CE6BB462E5};"Animated rects"
+#define WASABI_WNDMGR_FINDOPENRECT 0 // if api_config is compiled, the item controlling this is {280876CF-48C0-40bc-8E86-73CE6BB462E5};"Find open rect"
+#define WASABI_WNDMGR_LINKLAYOUTSCALES 0 // if api_config is compiled, the item controlling this is {9149C445-3C30-4e04-8433-5A518ED0FDDE};"Link layouts scale"
+#define WASABI_WNDMGR_LINKLAYOUTSALPHA 0 // if api_config is compiled, the item controlling this is {9149C445-3C30-4e04-8433-5A518ED0FDDE};"Link layouts alpha"
+#define WASABI_WNDMGR_DESKTOPALPHA 1 // if api_config is compiled, the item controlling this is {9149C445-3C30-4e04-8433-5A518ED0FDDE};"Enable desktop alpha"
+// This enables loading for pngs, jpgs (you need to add the necessary image loader services)
+#define WASABI_COMPILE_IMGLDR
+#define WASABI_COMPILE_IMGLDR_PNGREAD
+#define WASABI_COMPILE_IMGLDR_JPGREAD
+
+// This enables metadb support
+//#define WASABI_COMPILE_METADB
+
+// This enables config file support
+#define WASABI_COMPILE_CONFIG
+
+// This enables the filereader pipeline
+#define WASABI_COMPILE_FILEREADER
+
+// This enables the zip filereader
+//#define WASABI_COMPILE_ZIPREADER
+
+// This enables the xml parser for config and group loading
+#define WASABI_COMPILE_XMLPARSER
+
+// This enables system callback management
+#define WASABI_COMPILE_SYSCB
+
+// This enables centralized memory allocation/deallocation
+#define WASABI_COMPILE_MEMMGR
+
+#define WASABI_DIRS_FROMEXEPATH // otherwise, if the lib is running from a dll in another path, undefining that means the path are relative to the DLL path
+#define WASABI_SKINS_SUBDIRECTORY "skins"
+#define WASABI_RESOURCES_SUBDIRECTORY "plugins/freeform"
+
+#define WASABI_COMPILE_MEDIACORE
+
+#define WASABI_COMPILE_WNDMGR
+#define WASABI_COMPILE_PAINTSETS
+#define WASABI_COMPILE_MAKIDEBUG
+
+#define WASABI_CUSTOMIMPL_MEDIACORE
+#define WASABI_WIDGETS_MEDIASLIDERS
+
+#define WASABI_CUSTOM_CONTEXTMENUS
+
+#define WASABI_CUSTOM_QUIT
+#define WASABI_CUSTOM_QUITFN { extern void appQuit(); appQuit(); }
+
+#define WASABI_CUSTOM_ONTOP
+
+#else // not _WASABIRUNTIME
+
+// this section should define the entire set of wasabi parts since this is a full runtime build
+
+#define WASABI_COMPILE_COMPONENTS
+#define WASABI_COMPILE_SKIN
+#define WASABI_COMPILE_ACTIONS
+#define WASABI_COMPILE_SCRIPT
+#define WASABI_COMPILE_FONTS
+#define WASABI_COMPILE_LOCALES
+#define WASABI_COMPILE_IMGLDR
+#define WASABI_COMPILE_IMGLDR_PNGREAD
+#define WASABI_COMPILE_IMGLDR_JPGREAD
+#define WASABI_COMPILE_METADB
+#define WASABI_COMPILE_CONFIG
+#define WASABI_COMPILE_FILEREADER
+#define WASABI_COMPILE_XMLPARSER
+#define WASABI_COMPILE_SYSCB
+#define WASABI_COMPILE_MEMMGR
+#define WASABI_COMPILE_SKIN_WA2
+#define WASABI_COMPILE_PAINTSETS
+#define WASABI_COMPILE_WNDMGR
+#define WASABI_COMPILE_MEDIACORE
+#define WASABI_COMPILE_TIMERS
+#define WASABI_COMPILE_WND
+#define WASABI_COMPILE_UTF
+#define WASABI_SKINS_SUBDIRECTORY "skins"
+#define WASABI_FONT_RENDERER "" // "" is Win32
+#define WASABI_WNDMGR_ANIMATEDRECTS 0 // if api_config is compiled, the item controlling this is {280876CF-48C0-40bc-8E86-73CE6BB462E5};"Animated rects"
+#define WASABI_WNDMGR_FINDOPENRECT 0 // if api_config is compiled, the item controlling this is {280876CF-48C0-40bc-8E86-73CE6BB462E5};"Find open rect"
+#define WASABI_COMPILE_MAKIDEBUG
+
+#endif // not _WASABIRUNTIME
+
+#ifdef _WASABIRUNTIME
+ #define WASABI_API_SYSTEM api
+ #define WASABI_API_APP api
+ #define WASABI_API_COMPONENT api
+ #define WASABI_API_SVC api
+ #define WASABI_API_SYSCB api
+ #define WASABI_API_MAKI api
+ #define WASABI_API_UTF api
+ #define WASABI_API_WND api
+ #define WASABI_API_IMGLDR api
+ #define WASABI_API_FILE api
+ #define WASABI_API_TIMER api
+ #define WASABI_API_WNDMGR api
+ #define WASABI_API_SKIN api
+ #define WASABI_API_METADB api
+ #define WASABI_API_LOCALE api
+ #define WASABI_API_CONFIG api
+ #define WASABI_API_FONT api
+ #define WASABI_API_MEMMGR api
+ #define WASABI_API_XML api
+ #define WASABI_API_MEDIACORE api
+ #define WASABI_API_MAKIDEBUG debugApi
+
+#else // _WASABIRUNTIME
+
+ #define WASABI_API_SYSTEM systemApi
+
+ #define WASABI_API_APP applicationApi
+ #define WASABI_API_SVC serviceApi
+ #define WASABI_API_SYSCB sysCallbackApi
+
+ #ifdef WASABI_COMPILE_COMPONENTS
+ #define WASABI_API_COMPONENT componentApi
+ #endif
+
+ #ifdef WASABI_COMPILE_SCRIPT
+ #define WASABI_API_MAKI makiApi
+ #endif
+
+ #ifdef WASABI_COMPILE_UTF
+ #define WASABI_API_UTF utfApi
+ #endif
+
+ #ifdef WASABI_COMPILE_WND
+ #define WASABI_API_WND wndApi
+ #endif
+
+ #ifdef WASABI_COMPILE_IMGLDR
+ #define WASABI_API_IMGLDR imgLoaderApi
+ #endif
+
+ #ifdef WASABI_COMPILE_FILEREADER
+ #define WASABI_API_FILE fileApi
+ #endif
+
+ #ifdef WASABI_COMPILE_TIMERS
+ #define WASABI_API_TIMER timerApi
+ #endif
+
+ #ifdef WASABI_COMPILE_WNDMGR
+ #define WASABI_API_WNDMGR wndManagerApi
+ #endif
+
+ #ifdef WASABI_COMPILE_SKIN
+ #define WASABI_API_SKIN skinApi
+ #endif
+
+ #ifdef WASABI_COMPILE_METADB
+ #define WASABI_API_METADB metadbApi
+ #endif
+
+ #ifdef WASABI_COMPILE_LOCALES
+ #define WASABI_API_LOCALE localesApi
+ #endif
+
+ #ifdef WASABI_COMPILE_CONFIG
+ #define WASABI_API_CONFIG configApi
+ #endif
+
+ #ifdef WASABI_COMPILE_FONTS
+ #define WASABI_API_FONT fontApi
+ #endif
+
+ #ifdef WASABI_COMPILE_MEMMGR
+ #define WASABI_API_MEMMGR memmgrApi
+ #endif
+
+ #ifdef WASABI_COMPILE_XMLPARSER
+ #define WASABI_API_XML xmlApi
+ #endif
+
+ #ifdef WASABI_COMPILE_MEDIACORE
+ #define WASABI_API_MEDIACORE coreApi
+ #endif
+
+
+ #ifdef WASABI_COMPILE_MAKIDEBUG
+ #define WASABI_API_MAKIDEBUG debugApi
+ #endif
+
+#endif // _WASABIRUNTIME
+
+// #define WASABI_EXTERNAL_GUIOBJECTS
+
+#define WASABI_WIDGETS_GUIOBJECT
+#define WASABI_WIDGETS_LAYER
+#define WASABI_WIDGETS_TEXT
+#define WASABI_WIDGETS_BUTTON
+#define WASABI_WIDGETS_TGBUTTON
+#define WASABI_WIDGETS_ANIMLAYER
+#define WASABI_WIDGETS_GROUPLIST
+#define WASABI_WIDGETS_MOUSEREDIR
+#define WASABI_WIDGETS_SLIDER
+#define WASABI_WIDGETS_MEDIAVIS
+#define WASABI_WIDGETS_MEDIAEQCURVE
+#define WASABI_WIDGETS_MEDIASTATUS
+//#define WASABI_WIDGETS_SVCWND
+#define WASABI_WIDGETS_EDIT
+#define WASABI_WIDGETS_TITLEBAR
+#define WASABI_WIDGETS_COMPBUCK
+#define WASABI_WIDGETS_BROWSER
+#define WASABI_WIDGETS_FRAME
+#define WASABI_WIDGETS_GRID
+//#define WASABI_WIDGETS_QUERYDRAG
+//#define WASABI_WIDGETS_QUERYLIST
+//#define WASABI_WIDGETS_FILTERLIST
+//#define WASABI_WIDGETS_QUERYLINE
+#define WASABI_WIDGETS_TABSHEET
+#define WASABI_WIDGETS_CHECKBOX
+#define WASABI_WIDGETS_TITLEBOX
+#define WASABI_WIDGETS_CUSTOMOBJECT
+#define WASABI_WIDGETS_OSWNDHOST
+#define WASABI_WIDGETS_RADIOGROUP
+#define WASABI_WIDGETS_LIST
+#define WASABI_WIDGETS_TREE
+#define WASABI_WIDGETS_DROPDOWNLIST
+#define WASABI_WIDGETS_COMBOBOX
+#define WASABI_WIDGETS_HISTORYEDITBOX
+#define WASABI_WIDGETS_OBJECTDIRECTORY
+#define WASABI_WIDGETS_RECTANGLE
+#define WASABI_WIDGETS_PATHPICKER
+#define WASABI_WIDGETS_GRADIENT
+#define WASABI_WIDGETS_MENUBUTTON
+#define WASABI_WIDGETS_MENU
+#define WASABI_WIDGETS_WNDHOLDER
+#define WASABI_WIDGETS_LAYOUTSTATUS
+#define WASABI_WIDGETS_TOOLTIPS
+
+#if defined(_DEBUG) | defined(WASABI_DEBUG)
+#define WASABI_COMPILE_STATSWND
+#ifndef WASABI_DEBUG
+#define WASABI_DEBUG
+#endif
+#endif
+
+#define WASABI_TOOLOBJECT_HIDEOBJECT
+#define WASABI_TOOLOBJECT_SENDPARAMS
+#define WASABI_TOOLOBJECT_ADDPARAMS
+
+// #endif // WASABI_EXTERNAL_GUIOBJECTS
+#define WASABI_COMPILE_COLORTHEMES
+
+#define WASABI_SCRIPTOBJECTS_POPUP
+#define WASABI_SCRIPTOBJECTS_LIST
+#define WASABI_SCRIPTOBJECTS_BITLIST
+#define WASABI_SCRIPTOBJECTS_REGION
+#define WASABI_SCRIPTOBJECTS_TIMER
+#define WASABI_SCRIPTOBJECTS_MAP
+#define WASABI_SCRIPTOBJECTS_EMBEDDEDXUI // needed by 3rd+ level objects
+
+#ifndef WASABI_EXTERNAL_GUIOBJECTS
+#define WASABI_SCRIPTOBJECTS_WAC
+#endif // WASABI_EXTERNAL_GUIOBJECTS
+
+// lone is super dirty but wants to get stuff working. we need to clean that up
+#ifdef WASABI_CUSTOMIMPL_MEDIACORE
+class api_core;
+extern api_core *createCustomCoreApi();
+extern void destroyCustomCoreApi(api_core *core);
+#endif
+
+#define WASABI_WNDMGR_ALLCONTAINERSDYNAMIC 0
+#define WASABI_WNDMGR_NORESPAWN
+#define WASABI_WNDMGR_OSMSGBOX
+
+#define WASABI_STATICVARMGR
+#define WASABI_CUSTOM_MODULE_SVCMGR
+
+#define ON_LAYOUT_CHANGED { extern void onLayoutChanged(); onLayoutChanged(); }
+
+#define ON_FATAL_SKIN_ERROR { extern void onFatalSkinError(); onFatalSkinError(); }
+
+#define ON_CREATE_EXTERNAL_WINDOW_GUID(x, y) { extern int onCreateExternalWindowGuid(GUID g); y = onCreateExternalWindowGuid(x); }
+
+#define ON_TOGGLE_DESKTOPALPHA(v) { extern void onToggleDesktopAlpha(int v); onToggleDesktopAlpha(v); }
+#define ON_TWEAK_RENDER_RATIO(x) { extern float onTweakRenderRatio(float v); x = onTweakRenderRatio(x); }
+#define ON_CUSTOM_ALTF4 { extern void onCustomAltF4(); onCustomAltF4(); }
+
+#define WASABI_DEFAULT_STDCONTAINER "resizable_status"
+
+#define SWITCH_SKIN(x) { extern void switchSkin(const char *name); switchSkin(x); }
+#define IS_SKIN_STILL_LOADING(x) { extern int isSkinStillLoading(); x = isSkinStillLoading(); }
+
+#define ON_LOAD_EXTRA_COLORTHEMES() { extern void loadExtraColorThemes(); loadExtraColorThemes(); }
+
+#define LOCALES_CUSTOM_LOAD(x) { extern const char *localesCustomGetFile(); x = localesCustomGetFile(); }
+
+#define DEFAULT_CROSSFADE_ENABLED FALSE
+
+#define CUSTOM_VARS(x, y) { extern const char *getCustomVar(const char *var); y = getCustomVar(x); }
+
+#define WASABI_NO_RELEASEMODE_DEBUGSTRINGS
+
+#define WASABI_CUSTOM_MINIDB(field, buf, len) { extern void getCustomMetaData(const char *f, char *b, int l); getCustomMetaData(field, buf, len); }
+
+#define GET_SONG_INFO_TEXT(ret) { extern const char *getSongInfoText(); ret = getSongInfoText(); }
+
+#define GET_KBDFORWARD_WND(g, wnd) { extern OSWINDOWHANDLE getKeyboardForwardWnd(GUID g); wnd = getKeyboardForwardWnd(g); }
+
+#define WASABI_EDITWND_LISTCOLORS // editwnds use list foreground & background rather than their own colors
+
+#define WASABI_APPBAR_ONDOCKCHANGED(wnd) { extern void onAppBarDockChanged(api_window *w); onAppBarDockChanged(wnd); }
+
+#define WASABI_GET_VERSION(cs, n) { extern const char *getVersion(); STRNCPY(cs, getVersion(), n); cs[n] = 0; }
+
+#define WASABI_ON_MAIN_MOVE(hwnd) { extern void onMainLayoutMove(HWND w); onMainLayoutMove(hwnd); }
+
+#define WASABI_ON_REPARENT(hwnd) { extern void onReParent(HWND w); onReParent(hwnd); }
+
+#define WASABI_ON_REINIT( hwnd) { extern void onReInit(HWND w); onReInit(hwnd); }
+
+// config defaults
+
+#define DEFAULT_DESKTOPALPHA FALSE
+#define DEFAULT_LINKLAYOUTSCALE TRUE
+#define DEFAULT_LINKLAYOUTSALPHA FALSE
+#define DEFAULT_LINKALLALPHA TRUE
+#define DEFAULT_LINKALLRATIO FALSE
+#define DEFAULT_LINKEDALPHA 255
+#define DEFAULT_AUTOOPACITYTIME 2000
+#define DEFAULT_AUTOOPACITYFADEIN 250
+#define DEFAULT_AUTOOPACITYFADEOUT 1000
+#define DEFAULT_AUTOOPACITYTYPE 0
+#define DEFAULT_EXTENDAUTOOPACITY 25
+#define DEFAULT_USERATIOLOCKS FALSE
+#define DEFAULT_TIMERRESOLUTION 33
+#define DEFAULT_TOOLTIPS TRUE
+#define DEFAULT_TEXTSPEED 1.0f/3.0f
+
+#define UTF8 0
+#define WANT_UTF8_WARNINGS
+
+//#define DROP_BITMAP_ON_IDLE
+
+//#include "../../bfc/api/api_system.h"
+#include <api/application/api_application.h>
+#include <api/service/api_service.h>
+#include <api/syscb/api_syscb.h>
+
+#ifdef WASABI_COMPILE_MEMMGR
+# include <api/memmgr/api_memmgr.h>
+#endif
+
+#ifdef WASABI_COMPILE_SCRIPT
+# include <api/script/api_maki.h>
+#endif
+
+#ifdef WASABI_COMPILE_FONTS
+# include <api/font/api_font.h>
+#endif
+
+#ifdef WASABI_COMPILE_WND
+# include <api/wnd/api_wnd.h>
+#endif
+
+#ifdef WASABI_COMPILE_IMGLDR
+# include <api/imgldr/api_imgldr.h>
+#endif
+
+#ifdef WASABI_COMPILE_FILEREADER
+# include <api/filereader/api_filereader.h>
+#endif
+
+#ifdef WASABI_COMPILE_TIMERS
+# include <api/timer/api_timer.h>
+#endif
+
+#ifdef WASABI_COMPILE_WNDMGR
+# include <api/wndmgr/api_wndmgr.h>
+#endif
+
+#ifdef WASABI_COMPILE_LOCALES
+# include <api/locales/api_locales.h>
+#endif
+
+#ifdef WASABI_COMPILE_CONFIG
+# include <api/config/api_config.h>
+#endif
+
+#ifdef WASABI_COMPILE_SKIN
+# include <api/skin/api_skin.h>
+#endif
+
+#ifdef WASABI_COMPILE_MAKIDEBUG
+# include <api/script/debugger/api_makidebug.h>
+#endif
+
+#endif