diff options
Diffstat (limited to 'Src/Wasabi/wasabicfg/wasabicfg.h')
-rw-r--r-- | Src/Wasabi/wasabicfg/wasabicfg.h | 470 |
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 |