//#define ENABLE_BUTTON_BG 1 // enables button background image #define ENABLE_SEPARATOR 1 // enables separator bars #define ENABLE_TITLE_BG 1 // enables menu title background graphics /* #ifndef CHOICE_SIZE_X #error "CHOICE_SIZE_X undefined" #endif #ifndef CHOICE_SIZE_Y #error "CHOICE_SIZE_Y undefined" #endif */ #ifndef CHOICE_SIZE_X #define CHOICE_SIZE_X 150 #endif #ifndef CHOICE_SIZE_Y #define CHOICE_SIZE_Y 22 #endif #ifndef CHOICE_SIDEITEM_SIZE_X #define CHOICE_SIDEITEM_SIZE_X 64 #endif #ifndef CHOICE_SIDEITEM_SPACING #define CHOICE_SIDEITEM_SPACING 16 #endif #ifndef CHOICE_GROUP #define CHOICE_GROUP "" #endif #ifndef CHOICE_X_START #define CHOICE_X_START 58 #endif #ifndef CHOICE_X_SPACING #define CHOICE_X_SPACING 250 #endif #ifndef CHOICE_Y_START #define CHOICE_Y_START 82 #endif #ifndef CHOICE_Y_SPACING #define CHOICE_Y_SPACING 20 #endif #ifndef CHOICE_Y_COUNT #define CHOICE_Y_COUNT 20 #endif #ifndef CHOICE_TEXT_OFFSET_X #define CHOICE_TEXT_OFFSET_X 22 #endif #ifndef SECTION_TEXT_OFFSET_X #define SECTION_TEXT_OFFSET_X 0 #endif #ifndef CHOICE_ACCEPT_ALIGN_X #define CHOICE_ACCEPT_ALIGN_X 6 #endif #ifndef CHOICE_ACCEPT_ALIGN_Y #define CHOICE_ACCEPT_ALIGN_Y 2 #endif #ifndef NEW_X_OFFSET #define NEW_X_OFFSET 0 #endif #ifndef NEW_Y_OFFSET #define NEW_Y_OFFSET 0 #endif #ifndef TITLE_Y_OFFSET #define TITLE_Y_OFFSET 0 #endif #ifndef TITLE_X_OFFSET #define TITLE_X_OFFSET 0 #endif #ifndef CHOICE_FOCUS_SOUND #define CHOICE_FOCUS_SOUND "mouse_over" #endif #ifndef CHOICE_TEXTSIZE #define CHOICE_TEXTSIZE TEXTSIZE_DEFAULT #endif #ifndef CHOICE_TEXTFONT #define CHOICE_TEXTFONT UI_FONT_NORMAL #endif #ifndef CHOICE_HEADERCOLOR #define CHOICE_HEADERCOLOR 1 1 1 0.75 #endif #ifndef CHOICE_TEXTCOLOR #define CHOICE_TEXTCOLOR 1 1 1 0.5 #endif #ifndef CHOICE_TEXTCOLOR_CAPT #define CHOICE_TEXTCOLOR_CAPT CHOICE_TEXTCOLOR #endif #ifndef CHOICE_TEXTSTYLE #define CHOICE_TEXTSTYLE 0 #endif #ifndef CHOICE_TEXTALIGN #define CHOICE_TEXTALIGN ITEM_ALIGN_MIDDLE_LEFT #endif #ifndef ALT_HINT_X_OFFSET #define ALT_HINT_X_OFFSET -16 #endif #ifndef SECTION_X_OFFSET #define SECTION_X_OFFSET 0 #endif #ifndef CHOICE_TEXTCOLOR_DISABLED #define CHOICE_TEXTCOLOR_DISABLED 0.5 0.5 0.5 0.5 #endif #ifndef CHOICE_SEP_WIDTH #define CHOICE_SEP_WIDTH 130 #endif #ifndef CHOICE_SEP_OFFSET_X #define CHOICE_SEP_OFFSET_X 0 #endif #ifndef CHOICE_SEP_OFFSET_Y #define CHOICE_SEP_OFFSET_Y 0 #endif #ifndef CHOICE_DVAR_WIDTH_OFFSET #define CHOICE_DVAR_WIDTH_OFFSET 0 #endif #ifndef CHOICE_DVAR_TEXTALIGN #define CHOICE_DVAR_TEXTALIGN ITEM_ALIGN_MIDDLE_RIGHT #endif #ifndef CHOICE_DVAR_OFFSET_X #define CHOICE_DVAR_OFFSET_X (0 - CHOICE_TEXT_OFFSET_X) #endif #ifndef CHOICE_SEP_BACKGROUND #define CHOICE_SEP_BACKGROUND "gradient_fadein" #endif #ifndef HIGHLIGHT_SHADER_ART #define HIGHLIGHT_SHADER_ART "button_highlight_end" #endif #ifndef ALTERNATE_HINT_SHADER #define ALTERNATE_HINT_SHADER "alternate_hint" #endif #ifndef ALTERNATE_HINT_COLOR #define ALTERNATE_HINT_COLOR 1 1 1 1 //0.55 0.95 0.55 0.9//0 1 0 0.35//0.75 .75 0.8 1 #endif #ifndef HIGHLIGHT_COLOR #define HIGHLIGHT_COLOR 0.2 0.25 0.35 0.25 #endif #ifndef HIGHLIGHT_BORDER_COLOR #define HIGHLIGHT_BORDER_COLOR 0.8 0.95 1 0.4 #endif #ifndef CHOICE_HORIZONTAL_ALIGN #define CHOICE_HORIZONTAL_ALIGN HORIZONTAL_ALIGN_DEFAULT #endif #ifndef CHOICE_VERTICAL_ALIGN #define CHOICE_VERTICAL_ALIGN VERTICAL_ALIGN_DEFAULT #endif #ifndef HIGHLIGHT_BORDER #define HIGHLIGHT_BORDER WINDOW_BORDER_RAISED #endif #ifndef HIGHLIGHT_SHADER #define HIGHLIGHT_SHADER "white" #endif #ifndef A_BUTTON_SIZE #define A_BUTTON_SIZE 0.33 #endif #ifndef A_BUTTON_OFFSET_X #define A_BUTTON_OFFSET_X (0-4) #endif #ifndef A_BUTTON_FONT #define A_BUTTON_FONT UI_FONT_NORMAL #endif #ifndef A_BUTTON_OFFSET_Y #define A_BUTTON_OFFSET_Y 0 #endif #ifndef A_BUTTON_OFFSET_Y #define A_BUTTON_OFFSET_Y 0 #endif #ifdef PS3 #define A_BUTTON_BG_COLOR 0.25 0.25 0.25 1 #else #define A_BUTTON_BG_COLOR 0 0 0 1 #endif #define A_BUTTON_TEXTSTYLE ITEM_TEXTSTYLE_NORMAL #ifndef A_BUTTON_COLOR #define A_BUTTON_COLOR 1 1 1 1 #endif #ifndef BUTTON_BG_COLOR #define BUTTON_BG_COLOR 0.9 0.9 1 0.07 #endif // ------------ splitscreen ---------------- // ----------------------------------------- #if !defined( CHOICE_SEP_1 ) || !defined( CHOICE_SEP_SPACING ) #define CHOICE_SEP_TOTAL_SPACING( itemIndex ) 0 #elif !defined( CHOICE_SEP_2 ) #define CHOICE_SEP_TOTAL_SPACING( itemIndex ) ((itemIndex <= CHOICE_SEP_1) ? 0 : CHOICE_SEP_SPACING ) #elif !defined( CHOICE_SEP_3 ) #define CHOICE_SEP_TOTAL_SPACING( itemIndex ) ((itemIndex <= CHOICE_SEP_1) ? 0 : ( (itemIndex <= CHOICE_SEP_2) ? CHOICE_SEP_SPACING : CHOICE_SEP_SPACING * 2 ) ) #else #define CHOICE_SEP_TOTAL_SPACING( itemIndex ) ((itemIndex <= CHOICE_SEP_1) ? 0 : ( (itemIndex <= CHOICE_SEP_2) ? CHOICE_SEP_SPACING : ( (itemIndex <= CHOICE_SEP_3) ? CHOICE_SEP_SPACING * 2 : CHOICE_SEP_SPACING * 3) ) ) #endif #define CHOICE_ROW( itemIndex ) ((itemIndex - 1) % CHOICE_Y_COUNT) #define CHOICE_COL( itemIndex ) ((itemIndex - 1 - ((itemIndex - 1) % CHOICE_Y_COUNT)) / CHOICE_Y_COUNT) #define CHOICE_X( itemIndex ) (CHOICE_X_START + CHOICE_X_SPACING * CHOICE_COL( itemIndex )) #define CHOICE_Y( itemIndex ) (CHOICE_Y_START + CHOICE_Y_SPACING * CHOICE_ROW( itemIndex ) + CHOICE_SEP_TOTAL_SPACING( itemIndex )) #define CHOICE_ORIGIN( itemIndex ) CHOICE_X( itemIndex ) CHOICE_Y( itemIndex ) #define CHOICE_RECT( itemIndex ) CHOICE_ORIGIN( itemIndex ) CHOICE_SIZE_X CHOICE_SIZE_Y CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN #define FOOTNOTE_RECT( x, y ) x y 240 60 CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN // ====================================================================================================================================== // ====================================================================================================================================== // ====================================================================================================================================== #define CHOICE_HIGHLIGHT( itemIndex, vis ) \ CHOICE_HIGHLIGHT_CUSTOM( itemIndex, HIGHLIGHT_COLOR, HIGHLIGHT_BORDER_COLOR, vis ) #define UI_EDGE( porigin, palign, poffset_x, poffset_y, pcolor ) UI_EDGE_RAW( porigin, palign, 5, 20, poffset_x, poffset_y, pcolor ) #define UI_EDGE_REVERSE( porigin, palign, poffset_x, poffset_y, pcolor ) UI_EDGE_RAW( porigin, palign, -5, 20, poffset_x, poffset_y, pcolor ) #define UI_EDGE_RAW( porigin, palign, pw, ph, poffset_x, poffset_y, pcolor ) \ itemDef \ { \ style WINDOW_STYLE_SHADER \ rect porigin pw ph palign \ origin poffset_x poffset_y \ background HIGHLIGHT_SHADER_ART \ forecolor pcolor \ visible 1; \ decoration \ } \ #define CHOICE_BUTTON_BG( itemIndex, visArg ) CHOICE_BUTTON_BG_RAW( itemIndex, "gradient_fadein", BUTTON_BG_COLOR, visArg ) #define CHOICE_BUTTON_BG_RAW( itemIndex, bgimage, foreColorArg, visArg ) \ itemDef \ { \ style WINDOW_STYLE_SHADER \ rect CHOICE_ORIGIN( itemIndex ) (CHOICE_SIZE_X-(CHOICE_SIZE_Y/4)) CHOICE_SIZE_Y CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN \ exp material( bgimage ); \ forecolor foreColorArg \ visible visArg; \ decoration \ } \ itemDef \ { \ style WINDOW_STYLE_SHADER \ rect (CHOICE_X( itemIndex )+(CHOICE_SIZE_X-(CHOICE_SIZE_Y/4))) CHOICE_Y( itemIndex ) (CHOICE_SIZE_Y/4) CHOICE_SIZE_Y CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN \ background HIGHLIGHT_SHADER_ART \ forecolor foreColorArg \ visible visArg; \ decoration \ } \ #define CHOICE_HIGHLIGHT_CUSTOM( itemIndex, foreColorArg, borderColorArg, visArg ) \ itemDef \ { \ style WINDOW_STYLE_SHADER \ rect CHOICE_ORIGIN( itemIndex ) (CHOICE_SIZE_X-(CHOICE_SIZE_Y/4)) CHOICE_SIZE_Y CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN \ background HIGHLIGHT_SHADER \ forecolor foreColorArg \ border HIGHLIGHT_BORDER \ bordersize 2 \ bordercolor borderColorArg \ visible when( localVarInt( ui_highlight ) == itemIndex && localVarString( ui_choicegroup ) == CHOICE_GROUP ); \ decoration \ } \ itemDef \ { \ style WINDOW_STYLE_SHADER \ rect (CHOICE_X( itemIndex )+(CHOICE_SIZE_X-(CHOICE_SIZE_Y/4))) CHOICE_Y( itemIndex ) (CHOICE_SIZE_Y/4) CHOICE_SIZE_Y CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN \ background HIGHLIGHT_SHADER_ART \ forecolor foreColorArg \ visible when( localVarInt( ui_highlight ) == itemIndex && localVarString( ui_choicegroup ) == CHOICE_GROUP ); \ decoration \ } \ CHOICE_ACCEPT_HINT( itemIndex, visArg ) // used for custom highlights for itemDefs that are special and can not use itemIndex or complie with the strict alignment of this macro set #define CHOICE_HIGHLIGHT_CUSTOM_2( px, py, pw, ph, visArg ) \ itemDef \ { \ style WINDOW_STYLE_SHADER \ rect (px+(ph/4)) py (-(pw-(ph/4))) ph CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN \ background HIGHLIGHT_SHADER \ forecolor BUTTON_BG_COLOR \ visible 1 \ decoration \ } \ itemDef \ { \ style WINDOW_STYLE_SHADER \ rect px py (-(ph/4)) ph CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN \ background HIGHLIGHT_SHADER_ART \ forecolor BUTTON_BG_COLOR \ visible 1 \ decoration \ } \ itemDef \ { \ style WINDOW_STYLE_SHADER \ rect (px+(ph/4)) py (-(pw-(ph/4))) ph CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN \ background HIGHLIGHT_SHADER \ forecolor HIGHLIGHT_COLOR \ visible visArg \ decoration \ } \ itemDef \ { \ style WINDOW_STYLE_SHADER \ rect px py (-(ph/4)) ph CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN \ background HIGHLIGHT_SHADER_ART \ forecolor HIGHLIGHT_COLOR \ visible visArg \ decoration \ } \ //CHOICE_TEXT_OFFSET_X #if defined( CONSOLE ) && !defined( SPLITSCREEN ) #define CHOICE_ACCEPT_HINT( itemIndex, vis ) \ itemDef \ { \ rect CHOICE_RECT( itemIndex ) \ origin A_BUTTON_OFFSET_X A_BUTTON_OFFSET_Y \ text "@PLATFORM_UI_SELECTBUTTON" \ textfont A_BUTTON_FONT \ textscale A_BUTTON_SIZE \ textstyle A_BUTTON_TEXTSTYLE \ textAlign CHOICE_TEXTALIGN \ textAlignX 0\ textAlignY -1\ forecolor 1 1 1 1 \ visible when( localVarInt( ui_highlight ) == itemIndex && localVarString( ui_choicegroup ) == CHOICE_GROUP && vis ); \ decoration \ } #else // #if defined( CONSOLE ) && !defined( SPLITSCREEN ) #define CHOICE_ACCEPT_HINT( itemIndex, vis ) #endif // #else // #if defined( CONSOLE ) && !defined( SPLITSCREEN ) #define CHOICE_MENU_TITLE_SS( titleArg ) \ itemDef \ { \ type ITEM_TYPE_TEXT \ origin ORIGIN_TITLE \ forecolor COLOR_TITLE \ exp text( titleArg ) \ textalignx -14 \ textfont UI_FONT_NORMAL \ textscale TEXTSIZE_DEFAULT \ textstyle CHOICE_TEXTSTYLE \ textalign ITEM_ALIGN_TOP_LEFT \ visible 1 \ decoration \ } #define CHOICE_MENU_TITLE( titleArg ) \ itemDef \ { \ type ITEM_TYPE_TEXT \ origin ORIGIN_TITLE \ forecolor COLOR_TITLE \ exp text( titleArg ) \ textfont UI_FONT_NORMAL \ textscale TEXTSIZE_TITLE \ textstyle CHOICE_TEXTSTYLE \ textalign ITEM_ALIGN_TOP_LEFT \ textaligny TITLE_Y_OFFSET \ textalignx TITLE_X_OFFSET \ visible 1 \ decoration \ } #define CHOICE_MENU_TITLE_VIS( titleArg, visArg ) \ itemDef \ { \ type ITEM_TYPE_TEXT \ origin ORIGIN_TITLE \ forecolor COLOR_TITLE \ text titleArg \ textfont UI_FONT_NORMAL \ textscale TEXTSIZE_TITLE \ textstyle CHOICE_TEXTSTYLE \ textalign ITEM_ALIGN_TOP_LEFT \ visible when( visArg ) \ decoration \ } #define CHOICE_SECTION_TITLE( itemIndex, titleArg ) \ CHOICE_SECTION_TITLE_VIS( itemIndex, titleArg, 1 ) #define CHOICE_SECTION_TITLE_VIS( itemIndex, titleArg, visArg ) \ itemDef \ { \ style WINDOW_STYLE_SHADER \ rect (SECTION_X_OFFSET+0) 7 240 0.5 CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN \ origin CHOICE_ORIGIN( itemIndex ) \ background "line_horizontal" \ forecolor 1 1 1 0.85 \ visible visArg \ decoration \ } \ itemDef \ { \ style WINDOW_STYLE_SHADER \ rect (SECTION_X_OFFSET+20) 8 200 10 CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN \ origin CHOICE_ORIGIN( itemIndex ) \ background "line_horizontal" \ forecolor 0.4 0.6 1 0.8 \ visible visArg \ decoration \ } \ itemDef \ { \ style WINDOW_STYLE_SHADER \ rect (SECTION_X_OFFSET+0) 19 240 0.5 CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN \ origin CHOICE_ORIGIN( itemIndex ) \ background "line_horizontal" \ forecolor 1 1 1 0.85 \ visible visArg \ decoration \ } \ itemDef \ { \ type ITEM_TYPE_TEXT \ rect (SECTION_X_OFFSET+0) -1 240 24 CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN \ origin CHOICE_ORIGIN( itemIndex ) \ forecolor 1 1 1 0.8 \ exp text( titleArg );\ textstyle ITEM_TEXTSTYLE_SHADOWED \ textfont UI_FONT_NORMAL \ textscale TEXTSIZE_DEFAULT \ textstyle CHOICE_TEXTSTYLE \ textAlign ITEM_ALIGN_MIDDLE_CENTER \ textAlignX SECTION_TEXT_OFFSET_X \ visible visArg \ decoration \ } #define CHOICE_SEPARATOR( afterItemIndex ) \ CHOICE_SEPARATOR_VIS( afterItemIndex, when( ENABLE_SEPARATOR ) ) #define CHOICE_SEPARATOR_VIS( afterItemIndex, visArg ) \ itemDef \ { \ style WINDOW_STYLE_SHADER \ rect (CHOICE_SEP_OFFSET_X) (CHOICE_Y_SPACING + CHOICE_SEP_SPACING / 2 + CHOICE_SEP_OFFSET_Y - 3 ) CHOICE_SEP_WIDTH 8 CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN \ origin CHOICE_ORIGIN( afterItemIndex ) \ background CHOICE_SEP_BACKGROUND \ forecolor BUTTON_BG_COLOR \ visible visArg \ decoration \ } #define CHOICE_BUTTON( itemIndex, textArg, actionArg ) \ CHOICE_BUTTON_VIS( itemIndex, textArg, actionArg, 1 ) #define CHOICE_BUTTON_NOHI( itemIndex, textArg, actionArg ) \ CHOICE_BUTTON_VIS_NOHI( itemIndex, textArg, actionArg, 1 ) #define CHOICE_BUTTON_VIS( itemIndex, textArg, actionArg, visArg ) \ CHOICE_BUTTON_BG( itemIndex, visArg ) \ CHOICE_HIGHLIGHT( itemIndex, 1 ) \ CHOICE_BUTTON_VIS_NOHI( itemIndex, textArg, actionArg, visArg ) #define CHOICE_BUTTON_VIS_ADV( itemIndex, textArg, actionArg, visArg, vis ) \ CHOICE_BUTTON_BG( itemIndex, visArg ) \ CHOICE_HIGHLIGHT( itemIndex, vis ) \ CHOICE_BUTTON_VIS_NOHI( itemIndex, textArg, actionArg, visArg ) #define CHOICE_BUTTON_VIS_NOHI( itemIndex, textArg, actionArg, visArg ) \ CHOICE_BUTTON_FOCUS_VIS_NOHI( itemIndex, textArg, actionArg, ;, ;, visArg ) #define CHOICE_BUTTON_FOCUS( itemIndex, textArg, actionArg, onFocusArg, leaveFocusArg ) \ CHOICE_BUTTON_FOCUS_VIS( itemIndex, textArg, actionArg, onFocusArg, leaveFocusArg, 1 ) #define CHOICE_BUTTON_FOCUS_NOHI( itemIndex, textArg, actionArg, onFocusArg, leaveFocusArg ) \ CHOICE_BUTTON_FOCUS_VIS_NOHI( itemIndex, textArg, actionArg, onFocusArg, leaveFocusArg, 1 ) #define CHOICE_BUTTON_FOCUS_VIS( itemIndex, textArg, actionArg, onFocusArg, leaveFocusArg, visArg ) \ CHOICE_BUTTON_BG( itemIndex, visArg ) \ CHOICE_HIGHLIGHT( itemIndex, 1 ) \ CHOICE_BUTTON_FOCUS_VIS_NOHI( itemIndex, textArg, actionArg, onFocusArg, leaveFocusArg, visArg ) #define CHOICE_BUTTON_FOCUS_VIS_ADV( itemIndex, textArg, actionArg, onFocusArg, leaveFocusArg, visArg, vis ) \ CHOICE_BUTTON_BG( itemIndex, visArg ) \ CHOICE_HIGHLIGHT( itemIndex, vis ) \ CHOICE_BUTTON_FOCUS_VIS_NOHI( itemIndex, textArg, actionArg, onFocusArg, leaveFocusArg, visArg ) #define CHOICE_BUTTON_FOCUS_VIS_NOHI( itemIndex, textArg, actionArg, onFocusArg, leaveFocusArg, visArg ) \ CHOICE_BUTTON_FOCUS_VIS_NOHI_EX( itemIndex, textArg, actionArg, onFocusArg, leaveFocusArg, visArg, ; ) #define CHOICE_BUTTON_EX( itemIndex, textArg, actionArg, extraArgs ) \ CHOICE_BUTTON_BG( itemIndex, 1 ) \ CHOICE_HIGHLIGHT( itemIndex, 1 ) \ CHOICE_BUTTON_FOCUS_VIS_NOHI_EX( itemIndex, textArg, actionArg, ;, ;, 1, extraArgs ) #define CHOICE_BUTTON_EX_ADV( itemIndex, textArg, actionArg, extraArgs, visArg ) \ CHOICE_BUTTON_BG( itemIndex, 1 ) \ CHOICE_HIGHLIGHT( itemIndex, 1 ) \ CHOICE_BUTTON_FOCUS_VIS_NOHI_EX( itemIndex, textArg, actionArg, ;, ;, visArg, extraArgs ) #define CHOICE_BUTTON_FOCUS_VIS_EX( itemIndex, textArg, actionArg, onFocusArg, leaveFocusArg, visArg, extraArgs ) \ CHOICE_BUTTON_BG( itemIndex, visArg ) \ CHOICE_HIGHLIGHT( itemIndex, 1 ) \ CHOICE_BUTTON_FOCUS_VIS_NOHI_EX( itemIndex, textArg, actionArg, onFocusArg, leaveFocusArg, visArg, extraArgs ) #define CHOICE_BUTTON_FOCUS_VIS_EX_ADV( itemIndex, textArg, actionArg, onFocusArg, leaveFocusArg, visArg, extraArgs, vis ) \ CHOICE_BUTTON_BG( itemIndex, visArg ) \ CHOICE_HIGHLIGHT( itemIndex, vis ) \ CHOICE_BUTTON_FOCUS_VIS_NOHI_EX( itemIndex, textArg, actionArg, onFocusArg, leaveFocusArg, visArg, extraArgs ) #define CHOICE_BUTTON_FOCUS_VIS_NOHI_EX( itemIndex, textArg, actionArg, onFocusArg, leaveFocusArg, visArg, extraArgs ) \ itemDef \ { \ type ITEM_TYPE_BUTTON \ rect CHOICE_RECT( itemIndex ) \ exp text( textArg ); \ textfont CHOICE_TEXTFONT \ textscale CHOICE_TEXTSIZE \ textstyle CHOICE_TEXTSTYLE \ textAlign CHOICE_TEXTALIGN \ textAlignX CHOICE_TEXT_OFFSET_X \ forecolor CHOICE_TEXTCOLOR \ visible visArg \ extraArgs \ CHOICE_SCRIPTS_ALL( itemIndex, actionArg, onFocusArg, leaveFocusArg ) \ } \ #define CHOICE_DBUTTON_VIS_NOHI( itemIndex, textArg, visArg ) \ itemDef \ { \ type ITEM_TYPE_TEXT \ rect CHOICE_RECT( itemIndex ) \ exp text( textArg ); \ textfont CHOICE_TEXTFONT \ textscale CHOICE_TEXTSIZE \ textstyle CHOICE_TEXTSTYLE \ textAlign CHOICE_TEXTALIGN \ textAlignX CHOICE_TEXT_OFFSET_X \ forecolor CHOICE_TEXTCOLOR_DISABLED \ visible visArg \ decoration \ } \ #define CHOICE_DBUTTON_VIS( itemIndex, textArg, visArg ) \ CHOICE_BUTTON_BG( itemIndex, visArg ) \ itemDef \ { \ type ITEM_TYPE_TEXT \ rect CHOICE_RECT( itemIndex ) \ exp text( textArg ); \ textfont UI_FONT_NORMAL \ textscale CHOICE_TEXTSIZE \ textstyle CHOICE_TEXTSTYLE \ textAlign CHOICE_TEXTALIGN \ textAlignX CHOICE_TEXT_OFFSET_X \ forecolor CHOICE_TEXTCOLOR_DISABLED \ visible visArg \ decoration \ } \ #define CHOICE_DVARENUMLIST( itemIndex, textArg, dvarArg, dvarListArg, actionArg ) \ CHOICE_DVARLIST_VIS( itemIndex, textArg, dvarArg, ITEM_TYPE_DVARENUM, dvarEnumList dvarListArg, actionArg, 1 ) #define CHOICE_DVARENUMLIST_VIS( itemIndex, textArg, dvarArg, dvarListArg, actionArg, visArg ) \ CHOICE_DVARLIST_VIS( itemIndex, textArg, dvarArg, ITEM_TYPE_DVARENUM, dvarEnumList dvarListArg, actionArg, visArg ) #define CHOICE_DVARSTRINGLIST( itemIndex, textArg, dvarArg, strListArg, actionArg ) \ CHOICE_DVARLIST_VIS( itemIndex, textArg, dvarArg, ITEM_TYPE_MULTI, dvarStrList strListArg, actionArg, 1 ) #define CHOICE_DVARSTRINGLIST_VIS( itemIndex, textArg, dvarArg, strListArg, actionArg, visArg ) \ CHOICE_DVARLIST_VIS( itemIndex, textArg, dvarArg, ITEM_TYPE_MULTI, dvarStrList strListArg, actionArg, visArg ) #define CHOICE_DVARFLOATLIST( itemIndex, textArg, dvarArg, strListArg, actionArg ) \ CHOICE_DVARLIST_VIS( itemIndex, textArg, dvarArg, ITEM_TYPE_MULTI, dvarFloatList strListArg, actionArg, 1 ) #define CHOICE_DVARFLOATLIST_VIS( itemIndex, textArg, dvarArg, strListArg, actionArg, visArg ) \ CHOICE_DVARLIST_VIS( itemIndex, textArg, dvarArg, ITEM_TYPE_MULTI, dvarFloatList strListArg, actionArg, visArg ) #define CHOICE_DVARFLOATLIST_FOCUS_VIS( itemIndex, textArg, dvarArg, strListArg, actionArg, onFocusArg, leaveFocusArg, visArg ) \ CHOICE_DVARLIST_FOCUS_VIS( itemIndex, textArg, dvarArg, ITEM_TYPE_MULTI, dvarFloatList strListArg, actionArg, onFocusArg, leaveFocusArg, visArg ) #define CHOICE_DVARLIST_VIS( itemIndex, textArg, dvarArg, listTypeArg, listArg, actionArg, visArg ) \ CHOICE_DVARLIST_FOCUS_VIS( itemIndex, textArg, dvarArg, listTypeArg, listArg, actionArg, ;, ;, visArg ) #define CHOICE_DVARLIST_FOCUS_VIS( itemIndex, textArg, dvarArg, listTypeArg, listArg, actionArg, onFocusArg, leaveFocusArg, visArg ) \ CHOICE_HIGHLIGHT( itemIndex, 1 ) \ CHOICE_BUTTON_BG( itemIndex, visArg ) \ CHOICE_CAPTION_VIS( itemIndex, textArg, visArg ) \ itemDef \ { \ type listTypeArg \ dvar dvarArg \ listArg \ rect CHOICE_ORIGIN( itemIndex ) (CHOICE_SIZE_X+CHOICE_DVAR_WIDTH_OFFSET) CHOICE_SIZE_Y CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN \ textalign CHOICE_DVAR_TEXTALIGN \ textalignx CHOICE_DVAR_OFFSET_X \ textscale CHOICE_TEXTSIZE \ textstyle ITEM_TEXTSTYLE_SHADOWED \ style WINDOW_STYLE_FILLED \ forecolor CHOICE_TEXTCOLOR \ visible visArg ; \ CHOICE_SCRIPTS_ALL( itemIndex, actionArg, onFocusArg, leaveFocusArg ) \ } #define CHOICE_STATUS_COLOR_VIS( itemIndex, textArg, colorArg, visArg ) \ itemDef \ { \ type ITEM_TYPE_TEXT \ rect CHOICE_RECT( itemIndex ) \ exp text( textArg ); \ textalign ITEM_ALIGN_MIDDLE_RIGHT \ textalignx (0 - CHOICE_TEXT_OFFSET_X) \ textscale CHOICE_TEXTSIZE \ style WINDOW_STYLE_FILLED \ forecolor colorArg \ visible visArg ; \ decoration \ } #define CHOICE_NEWICON_VIS( itemIndex, imageArg, visArg ) \ itemDef \ { \ style WINDOW_STYLE_SHADER \ rect (CHOICE_X( itemIndex ) + CHOICE_SIZE_X + NEW_X_OFFSET ) (CHOICE_Y( itemIndex )+2+NEW_Y_OFFSET) (CHOICE_SIZE_Y*2) CHOICE_SIZE_Y CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN \ exp material( imageArg ) \ visible visArg ; \ decoration \ } #define CHOICE_LEFTITEM_VIS( itemIndex, textArg, colorArg, visArg ) \ itemDef \ { \ type ITEM_TYPE_TEXT \ rect (CHOICE_X( itemIndex ) - CHOICE_SIDEITEM_SIZE_X - CHOICE_SIDEITEM_SPACING) CHOICE_Y( itemIndex ) CHOICE_SIDEITEM_SIZE_X CHOICE_SIZE_Y CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN \ exp text( textArg ); \ textalign ITEM_ALIGN_MIDDLE_LEFT \ textfont CHOICE_TEXTFONT \ textscale CHOICE_TEXTSIZE \ textstyle ITEM_TEXTSTYLE_SHADOWED \ style WINDOW_STYLE_FILLED \ forecolor colorArg \ visible visArg ; \ decoration \ } #define CHOICE_RIGHTITEM_VIS( itemIndex, textArg, colorArg, visArg ) \ itemDef \ { \ type ITEM_TYPE_TEXT \ rect (CHOICE_X( itemIndex ) + CHOICE_SIDEITEM_SIZE_X + CHOICE_SIDEITEM_SPACING) CHOICE_Y( itemIndex ) CHOICE_SIDEITEM_SIZE_X CHOICE_SIZE_Y CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN \ exp text( textArg ); \ textalign ITEM_ALIGN_MIDDLE_RIGHT \ textscale CHOICE_TEXTSIZE \ textstyle ITEM_TEXTSTYLE_SHADOWED \ style WINDOW_STYLE_FILLED \ forecolor colorArg \ visible visArg ; \ decoration \ } #define CHOICE_DVAREDIT_NUMERIC( itemIndex, textArg, dvarArg, max_chars, actionArg ) \ CHOICE_DVAREDIT_NUMERIC_VIS( itemIndex, textArg, dvarArg, max_chars, actionArg, 1 ) #define CHOICE_DVAREDIT_NUMERIC_VIS( itemIndex, textArg, dvarArg, max_chars, actionArg, visArg ) \ CHOICE_BUTTON_BG( itemIndex, 1 ) \ CHOICE_HIGHLIGHT( itemIndex, 1 ) \ CHOICE_CAPTION( itemIndex, textArg ) \ itemDef \ { \ type ITEM_TYPE_NUMERICFIELD \ text " " \ dvar dvarArg \ rect CHOICE_ORIGIN( itemIndex ) (CHOICE_SIZE_X+120) CHOICE_SIZE_Y CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN \ textalign ITEM_ALIGN_MIDDLE_LEFT \ textalignx (CHOICE_SIZE_X+8) /*(-(CHOICE_TEXT_OFFSET_X))*/ \ textscale CHOICE_TEXTSIZE \ textstyle ITEM_TEXTSTYLE_SHADOWED \ style WINDOW_STYLE_FILLED \ forecolor CHOICE_TEXTCOLOR \ visible visArg \ maxChars max_chars \ CHOICE_SCRIPTS_ACTION( itemIndex, actionArg ) \ } #define CHOICE_DVAREDIT( itemIndex, textArg, dvarArg, actionArg ) \ CHOICE_DVAREDIT_VIS( itemIndex, textArg, dvarArg, 31, 18, actionArg, 1 ) #define CHOICE_DVAREDIT_VIS( itemIndex, textArg, dvarArg, max_chars, max_paintchars, actionArg, visArg ) \ CHOICE_BUTTON_BG( itemIndex, 1 ) \ CHOICE_HIGHLIGHT( itemIndex, 1 ) \ CHOICE_CAPTION( itemIndex, textArg ) \ itemDef \ { \ type ITEM_TYPE_EDITFIELD \ text " " \ dvar dvarArg \ rect CHOICE_ORIGIN( itemIndex ) (CHOICE_SIZE_X+120) CHOICE_SIZE_Y CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN \ textalign ITEM_ALIGN_MIDDLE_LEFT \ textalignx (CHOICE_SIZE_X+8) /*(-(CHOICE_TEXT_OFFSET_X))*/ \ textscale CHOICE_TEXTSIZE \ textstyle ITEM_TEXTSTYLE_SHADOWED \ style WINDOW_STYLE_FILLED \ forecolor CHOICE_TEXTCOLOR \ visible visArg \ maxChars max_chars \ maxpaintchars max_paintchars \ CHOICE_SCRIPTS_ACTION( itemIndex, actionArg ) \ } #define CHOICE_DVARSLIDER( itemIndex, textArg, dvarArg, defaultArg, minArg, maxArg, actionArg ) \ CHOICE_DVARSLIDER_VIS( itemIndex, textArg, dvarArg, defaultArg, minArg, maxArg, actionArg, 1 ) #define CHOICE_DVARSLIDER_VIS( itemIndex, textArg, dvarArg, defaultArg, minArg, maxArg, actionArg, visArg ) \ CHOICE_DVARSLIDER_VIS_EX( itemIndex, textArg, dvarArg, defaultArg, minArg, maxArg, actionArg, ;, 1 ) #define CHOICE_DVARSLIDER_VIS_EX( itemIndex, textArg, dvarArg, defaultArg, minArg, maxArg, actionArg, extraArg, visArg ) \ CHOICE_BUTTON_BG( itemIndex, 1 ) \ CHOICE_HIGHLIGHT( itemIndex, 1 ) \ CHOICE_CAPTION( itemIndex, textArg ) \ itemDef \ { \ type ITEM_TYPE_SLIDER \ dvarfloat dvarArg defaultArg minArg maxArg \ rect CHOICE_ORIGIN( itemIndex ) (CHOICE_SIZE_X+120) CHOICE_SIZE_Y CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN \ textalign ITEM_ALIGN_MIDDLE_LEFT \ textalignx (CHOICE_SIZE_X+20) /*(-(CHOICE_TEXT_OFFSET_X))*/ \ textscale CHOICE_TEXTSIZE \ textstyle ITEM_TEXTSTYLE_SHADOWED \ style WINDOW_STYLE_FILLED \ forecolor CHOICE_TEXTCOLOR \ visible visArg \ extraArg \ CHOICE_SCRIPTS_ACTION( itemIndex, actionArg ) \ } #define CHOICE_DVARYESNO( itemIndex, textArg, dvarArg, actionArg ) \ CHOICE_DVARYESNO_VIS( itemIndex, textArg, dvarArg, actionArg, 1 ) #define CHOICE_DVARYESNO_VIS( itemIndex, textArg, dvarArg, actionArg, visArg ) \ CHOICE_BUTTON_BG( itemIndex, visArg ) \ CHOICE_HIGHLIGHT( itemIndex, 1 ) \ CHOICE_CAPTION_VIS( itemIndex, textArg, visArg ) \ itemDef \ { \ type ITEM_TYPE_YESNO \ dvar dvarArg \ rect CHOICE_ORIGIN( itemIndex ) (CHOICE_SIZE_X+120) CHOICE_SIZE_Y CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN \ textalign ITEM_ALIGN_MIDDLE_LEFT \ textalignx (CHOICE_SIZE_X+20)/*(-(CHOICE_TEXT_OFFSET_X))*/ \ textscale CHOICE_TEXTSIZE \ textstyle ITEM_TEXTSTYLE_SHADOWED \ style WINDOW_STYLE_FILLED \ forecolor CHOICE_TEXTCOLOR \ visible visArg \ CHOICE_SCRIPTS_ACTION( itemIndex, actionArg ) \ } #define CHOICE_BIND( itemIndex, textArg, cmdArg, actionArg ) \ CHOICE_BIND_VIS( itemIndex, textArg, cmdArg, actionArg, 1 ) #define CHOICE_BIND_VIS( itemIndex, textArg, cmdArg, actionArg, visArg ) \ CHOICE_BUTTON_BG( itemIndex, visArg ) \ CHOICE_HIGHLIGHT( itemIndex, visArg ) \ CHOICE_CAPTION_VIS( itemIndex, textArg, visArg ) \ itemDef \ { \ type ITEM_TYPE_BIND \ dvar cmdArg \ rect CHOICE_ORIGIN( itemIndex ) (CHOICE_SIZE_X+120) CHOICE_SIZE_Y CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN \ textalign ITEM_ALIGN_MIDDLE_LEFT \ textalignx (CHOICE_SIZE_X+20)/*(-(CHOICE_TEXT_OFFSET_X))*/ \ textscale CHOICE_TEXTSIZE \ textstyle ITEM_TEXTSTYLE_SHADOWED \ style WINDOW_STYLE_FILLED \ forecolor CHOICE_TEXTCOLOR \ visible visArg \ CHOICE_SCRIPTS_ALL( itemIndex, actionArg, show keyBindStatus, hide keyBindStatus ) \ } #define CHOICE_CAPTION( itemIndex, textArg ) \ CHOICE_CAPTION_VIS( itemIndex, textArg, 1 ) #define CHOICE_CAPTION_COLOR( itemIndex, textArg, colorArg ) \ CHOICE_CAPTION_COLOR_VIS( itemIndex, textArg, colorArg, 1 ) #define CHOICE_CAPTION_VIS( itemIndex, textArg, visArg ) \ CHOICE_CAPTION_COLOR_VIS( itemIndex, textArg, CHOICE_TEXTCOLOR_CAPT, visArg ) #define CHOICE_CAPTION_COLOR_VIS( itemIndex, textArg, colorArg, visArg ) \ itemDef \ { \ type ITEM_TYPE_BUTTON \ rect CHOICE_RECT( itemIndex ) \ exp text( textArg ); \ textfont UI_FONT_NORMAL \ textscale CHOICE_TEXTSIZE \ textstyle CHOICE_TEXTSTYLE \ textAlign CHOICE_TEXTALIGN \ textAlignX CHOICE_TEXT_OFFSET_X \ forecolor colorArg \ visible visArg \ decoration \ } #define CHOICE_SUBTEXT_COLOR_VIS( itemIndex, textArg, colorArg, visArg ) \ itemDef \ { \ type ITEM_TYPE_BUTTON \ rect CHOICE_RECT( itemIndex ) \ exp text( textArg ); \ textfont UI_FONT_NORMAL \ textscale CHOICE_TEXTSIZE \ textstyle CHOICE_TEXTSTYLE \ textAlign ITEM_ALIGN_MIDDLE_LEFT \ forecolor colorArg \ visible visArg \ decoration \ } #define CHOICE_SCRIPTS_ACTION( itemIndex, actionArg ) \ CHOICE_SCRIPTS_ALL( itemIndex, actionArg, ;, ; ) #define CHOICE_SCRIPTS_ALL( itemIndex, actionArg, onFocusArg, leaveFocusArg ) \ onFocus \ { \ play CHOICE_FOCUS_SOUND; \ setLocalVarInt ui_highlight itemIndex; \ setLocalVarString ui_choicegroup CHOICE_GROUP; \ onFocusArg \ } \ leaveFocus \ { \ setLocalVarInt ui_highlight 0; \ leaveFocusArg \ } \ action \ { \ play "mouse_click"; \ actionArg; \ } #define CHOICE_APPLY( textArg, actionArg ) \ CHOICE_APPLY_VIS( textArg, actionArg, 1 ) #define CHOICE_APPLY_VIS( textArg, actionArg, visArg ) \ itemDef \ { \ type ITEM_TYPE_BUTTON \ rect 430 422 100 16 CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN \ text textArg \ textfont UI_FONT_NORMAL \ textscale TEXTSIZE_DEFAULT \ textstyle ITEM_TEXTSTYLE_SHADOWED \ textAlign ITEM_ALIGN_MIDDLE_CENTER \ forecolor COLOR_FOCUSED \ visible visArg ; \ action \ { \ play "mouse_click"; \ actionArg; \ } \ } #define CHOICE_BACK( textArg, actionArg ) \ CHOICE_BACK_VIS( textArg, actionArg, 1 ) #define CHOICE_BACK_VIS( textArg, actionArg, visArg ) \ itemDef \ { \ type ITEM_TYPE_BUTTON \ rect 270 422 100 16 CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN \ text textArg \ textfont UI_FONT_NORMAL \ textscale TEXTSIZE_DEFAULT \ textstyle ITEM_TEXTSTYLE_SHADOWED \ textAlign ITEM_ALIGN_MIDDLE_CENTER \ forecolor COLOR_FOCUSED \ visible visArg ; \ action \ { \ play "mouse_click"; \ actionArg; \ } \ } #define CHOICE_FOOTNOTE( textArg, x, y ) \ CHOICE_FOOTNOTE_VIS( textArg, x, y, 1 ) #define CHOICE_FOOTNOTE_VIS( textArg, x, y, visArg ) \ itemDef \ { \ text textArg \ rect FOOTNOTE_RECT( x, y ) \ autowrapped \ textfont UI_FONT_NORMAL \ textscale TEXTSIZE_SMALL \ textstyle ITEM_TEXTSTYLE_SHADOWED \ textalign ITEM_ALIGN_TOP_LEFT \ visible visArg \ decoration \ } #define CHOICE_KEYBINDHELP \ itemDef \ { \ name keyBindStatus \ rect -190 -8 300 20 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_BOTTOM \ ownerdraw UI_KEYBINDSTATUS \ textstyle ITEM_TEXTSTYLE_SHADOWED \ style WINDOW_STYLE_FILLED \ backcolor 0 0 0 0 \ forecolor .9 .9 .9 1 \ border 0 \ bordercolor .5 .5 .5 .5 \ textscale TEXTSIZE_SMALL \ textalign ITEM_ALIGN_MIDDLE_LEFT \ visible 0 \ decoration \ }