578 lines
24 KiB
Text
578 lines
24 KiB
Text
|
|
||
|
#ifndef __quickchat__
|
||
|
#define __quickchat__
|
||
|
|
||
|
#define DEACTIVATE_TRANSITION_TIME 200
|
||
|
|
||
|
#define SLIDE_TIME 250
|
||
|
|
||
|
#define COLOR_RADIAL_FILL "0.4, 0.4, 0.4, 0.5"
|
||
|
#define COLOR_RADIAL_GRADIENT "0.2, 0.2, 0.2, 0.3"
|
||
|
#define COLOR_RADIAL_LINES "1, 1, 1, 0.2"
|
||
|
#define COLOR_RADIAL_HI_FILL "0.9, 0.4, 0, 1"
|
||
|
#define COLOR_RADIAL_HI_GRADIENT "0.9, 0.55, 0, 1"
|
||
|
|
||
|
|
||
|
$template __dim_color( Color )
|
||
|
if( itemEnabled == false ) {
|
||
|
Color.a = immediate( Color.a * 0.3f );
|
||
|
}
|
||
|
$endtemplate
|
||
|
|
||
|
|
||
|
$template __quickchat_materials
|
||
|
materials {
|
||
|
// normal vertical sizes
|
||
|
"normal_v_fill_l" "guis/quickchat/qchat_fill, rect( 152, 29, 26, 21 )"
|
||
|
"normal_v_fill_c" "guis/quickchat/qchat_fill, rect( 176, 29, 4, 21 )"
|
||
|
"normal_v_fill_r" "guis/quickchat/qchat_fill, rect( 249, 29, 5, 21 )"
|
||
|
|
||
|
"normal_v_grad_l" "guis/quickchat/qchat_gradients, rect( 152, 29, 63, 21 )"
|
||
|
"normal_v_grad_c" "guis/quickchat/qchat_gradients, rect( 219, 29, 1, 21 )"
|
||
|
"normal_v_grad_r" "guis/quickchat/qchat_gradients, rect( 220, 29, 35, 21 )"
|
||
|
|
||
|
"normal_v_line_l" "guis/quickchat/qchat_lines, rect( 152, 29, 26, 21 )"
|
||
|
"normal_v_line_c" "guis/quickchat/qchat_lines, rect( 176, 29, 4, 21 )"
|
||
|
"normal_v_line_r" "guis/quickchat/qchat_lines, rect( 249, 29, 5, 21 )"
|
||
|
|
||
|
"normal_v_high_l" "guis/quickchat/qchat_highlight, rect( 152, 29, 26, 21 )"
|
||
|
"normal_v_high_c" "guis/quickchat/qchat_highlight, rect( 176, 29, 4, 21 )"
|
||
|
"normal_v_high_r" "guis/quickchat/qchat_highlight, rect( 249, 29, 5, 21 )"
|
||
|
|
||
|
// top center radial
|
||
|
"top_center_r_fill_tl" "guis/quickchat/qchat_fill, rect( 2, 1, 31, 48 )"
|
||
|
"top_center_r_fill_l" "guis/quickchat/qchat_fill, rect( 33, 1, 1, 48 )"
|
||
|
"top_center_r_fill_c" "guis/quickchat/qchat_fill, rect( 33, 1, 37, 48 )"
|
||
|
"top_center_r_fill_r" "guis/quickchat/qchat_fill, rect( 33, 1, 1, 48 )"
|
||
|
"top_center_r_fill_tr" "guis/quickchat/qchat_fill, rect( 2, 1, 31, 48 ), flipX"
|
||
|
|
||
|
"top_center_r_grad_tl" "guis/quickchat/qchat_gradients, rect( 2, 1, 31, 48 )"
|
||
|
"top_center_r_grad_l" "guis/quickchat/qchat_gradients, rect( 33, 1, 1, 48 )"
|
||
|
"top_center_r_grad_c" "guis/quickchat/qchat_gradients, rect( 33, 1, 37, 48 )"
|
||
|
"top_center_r_grad_r" "guis/quickchat/qchat_gradients, rect( 33, 1, 1, 48 )"
|
||
|
"top_center_r_grad_tr" "guis/quickchat/qchat_gradients, rect( 2, 1, 31, 48 ), flipX"
|
||
|
|
||
|
"top_center_r_line_tl" "guis/quickchat/qchat_lines, rect( 2, 1, 31, 48 )"
|
||
|
"top_center_r_line_l" "guis/quickchat/qchat_lines, rect( 33, 1, 1, 48 )"
|
||
|
"top_center_r_line_c" "guis/quickchat/qchat_lines, rect( 33, 1, 37, 48 )"
|
||
|
"top_center_r_line_r" "guis/quickchat/qchat_lines, rect( 33, 1, 1, 48 )"
|
||
|
"top_center_r_line_tr" "guis/quickchat/qchat_lines, rect( 2, 1, 31, 48 ), flipX"
|
||
|
|
||
|
"top_center_r_high_tl" "guis/quickchat/qchat_highlight, rect( 2, 1, 31, 48 )"
|
||
|
"top_center_r_high_l" "guis/quickchat/qchat_highlight, rect( 33, 1, 1, 48 )"
|
||
|
"top_center_r_high_c" "guis/quickchat/qchat_highlight, rect( 33, 1, 37, 48 )"
|
||
|
"top_center_r_high_r" "guis/quickchat/qchat_highlight, rect( 33, 1, 1, 48 )"
|
||
|
"top_center_r_high_tr" "guis/quickchat/qchat_highlight, rect( 2, 1, 31, 48 ), flipX"
|
||
|
|
||
|
// bottom center radial
|
||
|
"bottom_center_r_fill_tl" "guis/quickchat/qchat_fill, rect( 171, 84, 22, 42 )"
|
||
|
"bottom_center_r_fill_l" "guis/quickchat/qchat_fill, rect( 192, 84, 1, 42 )"
|
||
|
"bottom_center_r_fill_c" "guis/quickchat/qchat_fill, rect( 192, 84, 41, 42 )"
|
||
|
"bottom_center_r_fill_r" "guis/quickchat/qchat_fill, rect( 192, 84, 1, 42 )"
|
||
|
"bottom_center_r_fill_tr" "guis/quickchat/qchat_fill, rect( 171, 84, 22, 42 ), flipX"
|
||
|
|
||
|
"bottom_center_r_line_tl" "guis/quickchat/qchat_lines, rect( 171, 84, 22, 42 )"
|
||
|
"bottom_center_r_line_l" "guis/quickchat/qchat_lines, rect( 192, 84, 1, 42 )"
|
||
|
"bottom_center_r_line_c" "guis/quickchat/qchat_lines, rect( 192, 84, 41, 42 )"
|
||
|
"bottom_center_r_line_r" "guis/quickchat/qchat_lines, rect( 192, 84, 1, 42 )"
|
||
|
"bottom_center_r_line_tr" "guis/quickchat/qchat_lines, rect( 171, 84, 22, 42 ), flipX"
|
||
|
|
||
|
"bottom_center_r_grad_tl" "guis/quickchat/qchat_gradients, rect( 171, 84, 22, 42 )"
|
||
|
"bottom_center_r_grad_l" "guis/quickchat/qchat_gradients, rect( 192, 84, 1, 42 )"
|
||
|
"bottom_center_r_grad_c" "guis/quickchat/qchat_gradients, rect( 192, 84, 41, 42 )"
|
||
|
"bottom_center_r_grad_r" "guis/quickchat/qchat_gradients, rect( 192, 84, 1, 42 )"
|
||
|
"bottom_center_r_grad_tr" "guis/quickchat/qchat_gradients, rect( 171, 84, 22, 42 ), flipX"
|
||
|
|
||
|
"bottom_center_r_high_tl" "guis/quickchat/qchat_highlight, rect( 171, 84, 22, 42 )"
|
||
|
"bottom_center_r_high_l" "guis/quickchat/qchat_highlight, rect( 192, 84, 1, 42 )"
|
||
|
"bottom_center_r_high_c" "guis/quickchat/qchat_highlight, rect( 192, 84, 41, 42 )"
|
||
|
"bottom_center_r_high_r" "guis/quickchat/qchat_highlight, rect( 192, 84, 1, 42 )"
|
||
|
"bottom_center_r_high_tr" "guis/quickchat/qchat_highlight, rect( 171, 84, 22, 42 ), flipX"
|
||
|
|
||
|
|
||
|
// top left side radial
|
||
|
"top_left_r_fill_l" "guis/quickchat/qchat_fill, rect( 2, 50, 18, 24 )"
|
||
|
"top_left_r_fill_c" "guis/quickchat/qchat_fill, rect( 20, 50, 1, 24 )"
|
||
|
"top_left_r_fill_r" "guis/quickchat/qchat_fill, rect( 76, 50, 41, 24 )"
|
||
|
|
||
|
"top_left_r_line_l" "guis/quickchat/qchat_lines, rect( 2, 50, 18, 24 )"
|
||
|
"top_left_r_line_c" "guis/quickchat/qchat_lines, rect( 20, 50, 1, 24 )"
|
||
|
"top_left_r_line_r" "guis/quickchat/qchat_lines, rect( 76, 50, 41, 24 )"
|
||
|
|
||
|
"top_left_r_grad_l" "guis/quickchat/qchat_gradients, rect( 2, 50, 64, 24 )"
|
||
|
"top_left_r_grad_c" "guis/quickchat/qchat_gradients, rect( 65, 50, 1, 24 )"
|
||
|
"top_left_r_grad_r" "guis/quickchat/qchat_gradients, rect( 67, 50, 49, 24 )"
|
||
|
|
||
|
"top_left_r_high_l" "guis/quickchat/qchat_highlight, rect( 2, 50, 18, 24 )"
|
||
|
"top_left_r_high_c" "guis/quickchat/qchat_highlight, rect( 20, 50, 1, 24 )"
|
||
|
"top_left_r_high_r" "guis/quickchat/qchat_highlight, rect( 76, 50, 41, 24 )"
|
||
|
|
||
|
// top right side radial
|
||
|
"top_right_r_fill_l" "guis/quickchat/qchat_fill, rect( 76, 50, 41, 24 ), flipX"
|
||
|
"top_right_r_fill_c" "guis/quickchat/qchat_fill, rect( 20, 50, 1, 24 ), flipX"
|
||
|
"top_right_r_fill_r" "guis/quickchat/qchat_fill, rect( 2, 50, 18, 24 ), flipX"
|
||
|
|
||
|
"top_right_r_line_l" "guis/quickchat/qchat_lines, rect( 76, 50, 41, 24 ), flipX"
|
||
|
"top_right_r_line_c" "guis/quickchat/qchat_lines, rect( 20, 50, 1, 24 ), flipX"
|
||
|
"top_right_r_line_r" "guis/quickchat/qchat_lines, rect( 2, 50, 18, 24 ), flipX"
|
||
|
|
||
|
"top_right_r_grad_l" "guis/quickchat/qchat_gradients, rect( 67, 50, 49, 24 ), flipX"
|
||
|
"top_right_r_grad_c" "guis/quickchat/qchat_gradients, rect( 65, 50, 1, 24 ), flipX"
|
||
|
"top_right_r_grad_r" "guis/quickchat/qchat_gradients, rect( 2, 50, 64, 24 ), flipX"
|
||
|
|
||
|
"top_right_r_high_l" "guis/quickchat/qchat_highlight, rect( 76, 50, 41, 24 ), flipX"
|
||
|
"top_right_r_high_c" "guis/quickchat/qchat_highlight, rect( 20, 50, 1, 24 ), flipX"
|
||
|
"top_right_r_high_r" "guis/quickchat/qchat_highlight, rect( 2, 50, 18, 24 ), flipX"
|
||
|
|
||
|
// bottom left side radial
|
||
|
"bottom_left_r_fill_l" "guis/quickchat/qchat_fill, rect( 2, 50, 18, 24 ), flipY"
|
||
|
"bottom_left_r_fill_c" "guis/quickchat/qchat_fill, rect( 20, 50, 1, 24 ), flipY"
|
||
|
"bottom_left_r_fill_r" "guis/quickchat/qchat_fill, rect( 76, 50, 41, 24 ), flipY"
|
||
|
|
||
|
"bottom_left_r_line_l" "guis/quickchat/qchat_lines, rect( 2, 50, 18, 24 ), flipY"
|
||
|
"bottom_left_r_line_c" "guis/quickchat/qchat_lines, rect( 20, 50, 1, 24 ), flipY"
|
||
|
"bottom_left_r_line_r" "guis/quickchat/qchat_lines, rect( 76, 50, 41, 24 ), flipY"
|
||
|
|
||
|
"bottom_left_r_grad_l" "guis/quickchat/qchat_gradients, rect( 2, 50, 64, 24 ), flipY"
|
||
|
"bottom_left_r_grad_c" "guis/quickchat/qchat_gradients, rect( 65, 50, 1, 24 ), flipY"
|
||
|
"bottom_left_r_grad_r" "guis/quickchat/qchat_gradients, rect( 67, 50, 49, 24 ), flipY"
|
||
|
|
||
|
"bottom_left_r_high_l" "guis/quickchat/qchat_highlight, rect( 2, 50, 18, 24 ), flipY"
|
||
|
"bottom_left_r_high_c" "guis/quickchat/qchat_highlight, rect( 20, 50, 1, 24 ), flipY"
|
||
|
"bottom_left_r_high_r" "guis/quickchat/qchat_highlight, rect( 76, 50, 41, 24 ), flipY"
|
||
|
|
||
|
// bottom right side radial
|
||
|
"bottom_right_r_fill_l" "guis/quickchat/qchat_fill, rect( 76, 50, 41, 24 ), flipX, flipY"
|
||
|
"bottom_right_r_fill_c" "guis/quickchat/qchat_fill, rect( 20, 50, 1, 24 ), flipX, flipY"
|
||
|
"bottom_right_r_fill_r" "guis/quickchat/qchat_fill, rect( 2, 50, 18, 24 ), flipX, flipY"
|
||
|
|
||
|
"bottom_right_r_line_l" "guis/quickchat/qchat_lines, rect( 76, 50, 41, 24 ), flipX, flipY"
|
||
|
"bottom_right_r_line_c" "guis/quickchat/qchat_lines, rect( 20, 50, 1, 24 ), flipX, flipY"
|
||
|
"bottom_right_r_line_r" "guis/quickchat/qchat_lines, rect( 2, 50, 18, 24 ), flipX, flipY"
|
||
|
|
||
|
"bottom_right_r_grad_l" "guis/quickchat/qchat_gradients, rect( 67, 50, 49, 24 ), flipX, flipY"
|
||
|
"bottom_right_r_grad_c" "guis/quickchat/qchat_gradients, rect( 65, 50, 1, 24 ), flipX, flipY"
|
||
|
"bottom_right_r_grad_r" "guis/quickchat/qchat_gradients, rect( 2, 50, 64, 24 ), flipX, flipY"
|
||
|
|
||
|
"bottom_right_r_high_l" "guis/quickchat/qchat_highlight, rect( 76, 50, 41, 24 ), flipX, flipY"
|
||
|
"bottom_right_r_high_c" "guis/quickchat/qchat_highlight, rect( 20, 50, 1, 24 ), flipX, flipY"
|
||
|
"bottom_right_r_high_r" "guis/quickchat/qchat_highlight, rect( 2, 50, 18, 24 ), flipX, flipY"
|
||
|
|
||
|
// left radial
|
||
|
"left_r_fill_l" "guis/quickchat/qchat_fill, rect( 1, 75, 61, 18 )"
|
||
|
"left_r_fill_c" "guis/quickchat/qchat_fill, rect( 62, 75, 1, 18 )"
|
||
|
"left_r_fill_r" "guis/quickchat/qchat_fill, rect( 62, 75, 64, 18 )"
|
||
|
|
||
|
"left_r_line_l" "guis/quickchat/qchat_lines, rect( 1, 75, 61, 18 )"
|
||
|
"left_r_line_c" "guis/quickchat/qchat_lines, rect( 62, 75, 1, 18 )"
|
||
|
"left_r_line_r" "guis/quickchat/qchat_lines, rect( 62, 75, 64, 18 )"
|
||
|
|
||
|
"left_r_grad_l" "guis/quickchat/qchat_gradients, rect( 1, 75, 61, 18 )"
|
||
|
"left_r_grad_c" "guis/quickchat/qchat_gradients, rect( 62, 75, 1, 18 )"
|
||
|
"left_r_grad_r" "guis/quickchat/qchat_gradients, rect( 62, 75, 64, 18 )"
|
||
|
|
||
|
"left_r_high_l" "guis/quickchat/qchat_highlight, rect( 1, 75, 61, 18 )"
|
||
|
"left_r_high_c" "guis/quickchat/qchat_highlight, rect( 62, 75, 1, 18 )"
|
||
|
"left_r_high_r" "guis/quickchat/qchat_highlight, rect( 62, 75, 64, 18 )"
|
||
|
|
||
|
// right radial
|
||
|
"right_r_fill_l" "guis/quickchat/qchat_fill, rect( 62, 75, 64, 18 ), flipX"
|
||
|
"right_r_fill_c" "guis/quickchat/qchat_fill, rect( 62, 75, 1, 18 ), flipX"
|
||
|
"right_r_fill_r" "guis/quickchat/qchat_fill, rect( 1, 75, 61, 18 ), flipX"
|
||
|
|
||
|
"right_r_line_l" "guis/quickchat/qchat_lines, rect( 62, 75, 64, 18 ), flipX"
|
||
|
"right_r_line_c" "guis/quickchat/qchat_lines, rect( 62, 75, 1, 18 ), flipX"
|
||
|
"right_r_line_r" "guis/quickchat/qchat_lines, rect( 1, 75, 61, 18 ), flipX"
|
||
|
|
||
|
"right_r_grad_l" "guis/quickchat/qchat_gradients, rect( 62, 75, 64, 18 ), flipX"
|
||
|
"right_r_grad_c" "guis/quickchat/qchat_gradients, rect( 62, 75, 1, 18 ), flipX"
|
||
|
"right_r_grad_r" "guis/quickchat/qchat_gradients, rect( 1, 75, 61, 18 ), flipX"
|
||
|
|
||
|
"right_r_high_l" "guis/quickchat/qchat_highlight, rect( 62, 75, 64, 18 ), flipX"
|
||
|
"right_r_high_c" "guis/quickchat/qchat_highlight, rect( 62, 75, 1, 18 ), flipX"
|
||
|
"right_r_high_r" "guis/quickchat/qchat_highlight, rect( 1, 75, 61, 18 ), flipX"
|
||
|
|
||
|
"context_l_t" "guis/quickchat/qchat_fill, rect( 79, 107, 28, 19 ), flipX"
|
||
|
"context_l_c" "guis/nodraw"
|
||
|
"context_l_b" "guis/quickchat/qchat_fill, rect( 79, 107, 28, 19 ), flipX, flipY"
|
||
|
|
||
|
"context_r_t" "guis/quickchat/qchat_fill, rect( 79, 107, 28, 19 )"
|
||
|
"context_r_c" "guis/nodraw"
|
||
|
"context_r_b" "guis/quickchat/qchat_fill, rect( 79, 107, 28, 19 ), flipY"
|
||
|
|
||
|
"chevron" "hud/quick_chat/chevron"
|
||
|
|
||
|
"deadzone_fill_l" "guis/quickchat/qchat_fill, rect( 114, 93, 16, 32 )"
|
||
|
"deadzone_fill_c" "guis/quickchat/qchat_fill, rect( 130, 93, 1, 32 )"
|
||
|
"deadzone_fill_r" "guis/quickchat/qchat_fill, rect( 130, 93, 16, 32 )"
|
||
|
|
||
|
"deadzone_grad_l" "guis/quickchat/qchat_gradients, rect( 114, 93, 16, 32 )"
|
||
|
"deadzone_grad_c" "guis/quickchat/qchat_gradients, rect( 130, 93, 1, 32 )"
|
||
|
"deadzone_grad_r" "guis/quickchat/qchat_gradients, rect( 130, 93, 16, 32 )"
|
||
|
|
||
|
}
|
||
|
$endtemplate
|
||
|
|
||
|
$template __quickchat_drawing
|
||
|
properties {
|
||
|
handle fill;
|
||
|
handle grad;
|
||
|
handle line;
|
||
|
handle high;
|
||
|
|
||
|
float drawStyle = DS_INVALID;
|
||
|
|
||
|
handle contextLeft = gui.cacheMaterial( "context_l", "_3v context_l" );
|
||
|
handle contextRight = gui.cacheMaterial( "context_r", "_3v context_r" );
|
||
|
|
||
|
handle chevron = gui.cacheMaterial( "chevron", "chevron" );
|
||
|
|
||
|
float itemChevron;
|
||
|
float itemEnabled;
|
||
|
rect itemRect;
|
||
|
wstring itemShortcut;
|
||
|
handle itemTitle;
|
||
|
float itemIndex;
|
||
|
float itemStyle;
|
||
|
string itemDrawCallback;
|
||
|
|
||
|
vec2 backOffset;
|
||
|
vec2 itemSize;
|
||
|
vec4 scratchColor;
|
||
|
vec4 scratchRect;
|
||
|
vec4 iconRect = 0, 0, 14, 14;
|
||
|
vec4 shortcutRect;
|
||
|
vec4 textRect;
|
||
|
float scratchFloat;
|
||
|
|
||
|
float lastSelected = -1;
|
||
|
float verticalPadding = 8;
|
||
|
}
|
||
|
events {
|
||
|
onMeasureItem {
|
||
|
itemIndex = gui.scriptGetFloatResult();
|
||
|
itemStyle = gui.scriptGetFloatResult();
|
||
|
itemSize = gui.scriptGetVec2Result();
|
||
|
|
||
|
if( drawStyle == DS_ARC ) {
|
||
|
scratchFloat = 150;
|
||
|
if( itemStyle & ( RIS_LEFT | RIS_RIGHT | RIS_TOP | RIS_BOTTOM ) ) {
|
||
|
itemSize.y = 24;
|
||
|
}
|
||
|
if( itemStyle == RIS_LEFT || itemStyle == RIS_RIGHT ) {
|
||
|
itemSize.y = 18;
|
||
|
}
|
||
|
if( itemStyle == ( RIS_TOP | RIS_CENTER ) ) {
|
||
|
itemSize.y = 48;
|
||
|
scratchFloat = 140;
|
||
|
}
|
||
|
if( itemStyle == ( RIS_BOTTOM | RIS_CENTER ) ) {
|
||
|
itemSize.y = 48;
|
||
|
scratchFloat = 132;
|
||
|
}
|
||
|
|
||
|
if( itemStyle == RIS_CENTER ) {
|
||
|
itemSize.y = 32;
|
||
|
scratchFloat = 96;
|
||
|
}
|
||
|
} else {
|
||
|
scratchFloat = max( itemSize.x, 100 );
|
||
|
scratchFloat = immediate( scratchFloat + 32 ); // pad out a bit for icon/shortcuts keys
|
||
|
itemSize.y = 21;
|
||
|
}
|
||
|
scratchFloat = immediate( scratchFloat + 32 );
|
||
|
|
||
|
itemSize.x = max( itemSize.x, scratchFloat );
|
||
|
|
||
|
if( drawStyle == DS_VERTICAL ) {
|
||
|
rect.w = max( rect.w, itemSize.x );
|
||
|
}
|
||
|
|
||
|
gui.scriptPushVec2( itemSize );
|
||
|
}
|
||
|
|
||
|
onDrawItem {
|
||
|
itemShortcut = gui.scriptGetWStringResult();
|
||
|
itemTitle = floatToHandle( gui.scriptGetFloatResult() );
|
||
|
itemChevron = gui.scriptGetFloatResult();
|
||
|
itemEnabled = gui.scriptGetFloatResult();
|
||
|
itemRect = gui.scriptGetVec4Result();
|
||
|
itemIndex = gui.scriptGetFloatResult();
|
||
|
itemStyle = gui.scriptGetFloatResult();
|
||
|
itemDrawCallback = gui.scriptGetStringResult();
|
||
|
|
||
|
backOffset = 0, 0;
|
||
|
|
||
|
//drawRect( itemRect, "1,0,0,1", 1 );
|
||
|
textRect = itemRect;
|
||
|
|
||
|
if( drawStyle == DS_ARC ) {
|
||
|
if( itemStyle == ( RIS_CENTER ) ) {
|
||
|
fill = gui.cacheMaterial( "fill", "_3h deadzone_fill" );
|
||
|
grad = gui.cacheMaterial( "grad", "_3h deadzone_grad" );
|
||
|
line = floatToHandle( -1 );
|
||
|
high = floatToHandle( -1 );
|
||
|
|
||
|
backOffset.y = 0;
|
||
|
iconRect.x = itemRect.x + 8;
|
||
|
iconRect.y = itemRect.y + 18;
|
||
|
|
||
|
shortcutRect.x = itemRect.x + 6;
|
||
|
shortcutRect.y = itemRect.y + 16;
|
||
|
}
|
||
|
if( itemStyle == ( RIS_TOP | RIS_CENTER ) ) {
|
||
|
fill = gui.cacheMaterial( "fill", "_5h top_center_r_fill" );
|
||
|
grad = gui.cacheMaterial( "grad", "_5h top_center_r_grad" );
|
||
|
line = gui.cacheMaterial( "line", "_5h top_center_r_line" );
|
||
|
high = gui.cacheMaterial( "high", "_5h top_center_r_high" );
|
||
|
|
||
|
backOffset.y = 10;
|
||
|
iconRect.x = itemRect.x + 14;
|
||
|
iconRect.y = itemRect.y + 16;
|
||
|
|
||
|
textRect.x = itemRect.x + 26;
|
||
|
textRect.w = itemRect.w - 52;
|
||
|
|
||
|
shortcutRect.x = itemRect.x + 8;
|
||
|
shortcutRect.y = itemRect.y + 24;
|
||
|
}
|
||
|
if( itemStyle == ( RIS_BOTTOM | RIS_CENTER ) ) {
|
||
|
fill = gui.cacheMaterial( "fill", "_5h bottom_center_r_fill" );
|
||
|
grad = gui.cacheMaterial( "grad", "_5h bottom_center_r_grad" );
|
||
|
line = gui.cacheMaterial( "line", "_5h bottom_center_r_line" );
|
||
|
high = gui.cacheMaterial( "high", "_5h bottom_center_r_high" );
|
||
|
|
||
|
backOffset.y = -22;
|
||
|
iconRect.x = itemRect.x + 14;
|
||
|
iconRect.y = itemRect.y + 7;
|
||
|
|
||
|
textRect.x = itemRect.x + 26;
|
||
|
textRect.y = itemRect.y - 9;
|
||
|
textRect.w = itemRect.w - 52;
|
||
|
|
||
|
shortcutRect.x = itemRect.x + 8;
|
||
|
shortcutRect.y = itemRect.y + 13;
|
||
|
}
|
||
|
if( itemStyle == ( RIS_LEFT | RIS_TOP ) ) {
|
||
|
fill = gui.cacheMaterial( "fill", "_3h top_left_r_fill" );
|
||
|
line = gui.cacheMaterial( "line", "_3h top_left_r_line" );
|
||
|
grad = gui.cacheMaterial( "grad", "_3h top_left_r_grad" );
|
||
|
high = gui.cacheMaterial( "high", "_3h top_left_r_high" );
|
||
|
|
||
|
backOffset.y = 2;
|
||
|
|
||
|
iconRect.x = itemRect.x + 14;
|
||
|
iconRect.y = itemRect.y + 8;
|
||
|
|
||
|
textRect.x = itemRect.x + 26;
|
||
|
textRect.w = itemRect.w - 52;
|
||
|
|
||
|
shortcutRect.x = itemRect.x + 8;
|
||
|
shortcutRect.y = itemRect.y + 12;
|
||
|
}
|
||
|
if( itemStyle == ( RIS_RIGHT | RIS_TOP ) ) {
|
||
|
fill = gui.cacheMaterial( "fill", "_3h top_right_r_fill" );
|
||
|
line = gui.cacheMaterial( "line", "_3h top_right_r_line" );
|
||
|
grad = gui.cacheMaterial( "grad", "_3h top_right_r_grad" );
|
||
|
high = gui.cacheMaterial( "high", "_3h top_right_r_high" );
|
||
|
|
||
|
backOffset.y = 2;
|
||
|
|
||
|
iconRect.x = itemRect.x + 32;
|
||
|
iconRect.y = itemRect.y + 6;
|
||
|
|
||
|
textRect.x = itemRect.x + 44;
|
||
|
textRect.w = itemRect.w - 60;
|
||
|
|
||
|
shortcutRect.x = itemRect.x + itemRect.w - 8;
|
||
|
shortcutRect.y = itemRect.y + 12;
|
||
|
}
|
||
|
if( itemStyle == ( RIS_RIGHT | RIS_BOTTOM ) ) {
|
||
|
fill = gui.cacheMaterial( "fill", "_3h bottom_right_r_fill" );
|
||
|
line = gui.cacheMaterial( "line", "_3h bottom_right_r_line" );
|
||
|
grad = gui.cacheMaterial( "grad", "_3h bottom_right_r_grad" );
|
||
|
high = gui.cacheMaterial( "high", "_3h bottom_right_r_high" );
|
||
|
|
||
|
backOffset.y = -3;
|
||
|
|
||
|
iconRect.x = itemRect.x + 32;
|
||
|
iconRect.y = itemRect.y + 6;
|
||
|
|
||
|
textRect.x = itemRect.x + 44;
|
||
|
textRect.w = itemRect.w - 58;
|
||
|
|
||
|
shortcutRect.x = itemRect.x + itemRect.w - 8;
|
||
|
shortcutRect.y = itemRect.y + 11;
|
||
|
}
|
||
|
if( itemStyle == ( RIS_LEFT | RIS_BOTTOM ) ) {
|
||
|
fill = gui.cacheMaterial( "fill", "_3h bottom_left_r_fill" );
|
||
|
line = gui.cacheMaterial( "line", "_3h bottom_left_r_line" );
|
||
|
grad = gui.cacheMaterial( "grad", "_3h bottom_left_r_grad" );
|
||
|
high = gui.cacheMaterial( "high", "_3h bottom_left_r_high" );
|
||
|
backOffset.y = -5;
|
||
|
|
||
|
iconRect.x = itemRect.x + 14;
|
||
|
iconRect.y = itemRect.y + 6;
|
||
|
|
||
|
textRect.x = itemRect.x + 26;
|
||
|
textRect.w = itemRect.w - 52;
|
||
|
|
||
|
shortcutRect.x = itemRect.x + 9;
|
||
|
shortcutRect.y = itemRect.y + 11;
|
||
|
}
|
||
|
|
||
|
if( itemStyle == RIS_LEFT ) {
|
||
|
fill = gui.cacheMaterial( "fill", "_3h left_r_fill" );
|
||
|
line = gui.cacheMaterial( "line", "_3h left_r_line" );
|
||
|
grad = gui.cacheMaterial( "grad", "_3h left_r_grad" );
|
||
|
high = gui.cacheMaterial( "high", "_3h left_r_high" );
|
||
|
|
||
|
iconRect.x = itemRect.x + 14;
|
||
|
iconRect.y = itemRect.y + 5;
|
||
|
|
||
|
textRect.x = itemRect.x + 26;
|
||
|
textRect.w = itemRect.w - 52;
|
||
|
|
||
|
shortcutRect.x = itemRect.x + 8;
|
||
|
shortcutRect.y = itemRect.y + 10;
|
||
|
}
|
||
|
|
||
|
if( itemStyle == RIS_RIGHT ) {
|
||
|
fill = gui.cacheMaterial( "fill", "_3h right_r_fill" );
|
||
|
line = gui.cacheMaterial( "line", "_3h right_r_line" );
|
||
|
grad = gui.cacheMaterial( "grad", "_3h right_r_grad" );
|
||
|
high = gui.cacheMaterial( "high", "_3h right_r_high" );
|
||
|
|
||
|
iconRect.x = itemRect.x + 32;
|
||
|
iconRect.y = itemRect.y + 5;
|
||
|
|
||
|
shortcutRect.x = itemRect.x + itemRect.w - 9;
|
||
|
shortcutRect.y = itemRect.y + 10;
|
||
|
|
||
|
textRect.x = itemRect.x + 44;
|
||
|
textRect.w = itemRect.w - 56;
|
||
|
}
|
||
|
} else {
|
||
|
fill = gui.cacheMaterial( "fill", "_3h normal_v_fill" );
|
||
|
grad = gui.cacheMaterial( "grad", "_3h normal_v_grad" );
|
||
|
line = gui.cacheMaterial( "line", "_3h normal_v_line" );
|
||
|
high = gui.cacheMaterial( "high", "_3h normal_v_high" );
|
||
|
|
||
|
iconRect.x = itemRect.x + 14;
|
||
|
iconRect.y = itemRect.y + 8;
|
||
|
|
||
|
shortcutRect.x = itemRect.x + 8;
|
||
|
shortcutRect.y = itemRect.y + 16;
|
||
|
|
||
|
textRect.x = itemRect.x + 28;
|
||
|
textRect.w = itemRect.w - 30;
|
||
|
}
|
||
|
|
||
|
if( drawStyle == DS_VERTICAL ) {
|
||
|
scratchRect = getItemTransitionVec4Result( RTP_PROPERTY_2, "0,0,0,0", itemIndex, currentPage );
|
||
|
itemRect.x = immediate( itemRect.x + scratchRect.x );
|
||
|
}
|
||
|
|
||
|
scratchRect = itemRect;
|
||
|
scratchRect.x = immediate( scratchRect.x + backOffset.x );
|
||
|
scratchRect.y = immediate( scratchRect.y + backOffset.y );
|
||
|
|
||
|
// fill
|
||
|
scratchColor = COLOR_RADIAL_FILL;
|
||
|
__dim_color( scratchColor )
|
||
|
drawCachedMaterial( fill, scratchRect, scratchColor );
|
||
|
|
||
|
// highlight
|
||
|
if( itemEnabled == true ) {
|
||
|
scratchColor = getItemTransitionVec4Result( RTP_PROPERTY_1, COLOR_INVISIBLE, itemIndex, currentPage );
|
||
|
drawCachedMaterial( fill, scratchRect, scratchColor );
|
||
|
drawCachedMaterial( high, scratchRect, scratchColor );
|
||
|
}
|
||
|
// gradient
|
||
|
// if( itemEnabled == true ) {
|
||
|
|
||
|
scratchColor = getItemTransitionVec4Result( RTP_PROPERTY_0, COLOR_RADIAL_GRADIENT, itemIndex, currentPage );
|
||
|
__dim_color( scratchColor )
|
||
|
drawCachedMaterial( grad, scratchRect, scratchColor );
|
||
|
// }
|
||
|
// lines
|
||
|
scratchColor = COLOR_RADIAL_LINES;
|
||
|
__dim_color( scratchColor )
|
||
|
drawCachedMaterial( line, scratchRect, scratchColor );
|
||
|
|
||
|
// text
|
||
|
scratchColor = COLOR_WHITE;
|
||
|
__dim_color( scratchColor )
|
||
|
|
||
|
drawText( itemShortcut, shortCutRect, scratchColor, 12, DTF_SINGLELINE | DTF_CENTER | DTF_VCENTER );
|
||
|
|
||
|
// TODO: Icon
|
||
|
if( itemChevron ) {
|
||
|
scratchColor = COLOR_WHITE;
|
||
|
__dim_color( scratchColor )
|
||
|
drawCachedMaterial( chevron, iconRect, scratchColor );
|
||
|
} else {
|
||
|
//drawRect( iconRect, COLOR_WHITE, 1 );
|
||
|
}
|
||
|
|
||
|
drawLocalizedText( itemTitle, textRect, scratchColor, 12, DTF_SINGLELINE | DTF_CENTER | DTF_VCENTER );
|
||
|
|
||
|
if( compare( itemDrawCallback, "" ) == false ) {
|
||
|
postOptionalNamedEvent( itemDrawCallback );
|
||
|
}
|
||
|
}
|
||
|
|
||
|
onPropertyChanged "currentPage" {
|
||
|
callSuper();
|
||
|
clearTransitions( -1, -1 );
|
||
|
lastSelected = -1;
|
||
|
postNamedEvent( "transitionItems" );
|
||
|
}
|
||
|
onPropertyChanged "currentItem" {
|
||
|
postNamedEvent( "transitionItems" );
|
||
|
callSuper();
|
||
|
}
|
||
|
onNamedEvent "transitionItems" {
|
||
|
if( lastSelected != -1 ) {
|
||
|
scratchColor = getItemTransitionVec4Result( RTP_PROPERTY_0, COLOR_RADIAL_GRADIENT, lastSelected, currentPage );
|
||
|
transitionItemVec4( RTP_PROPERTY_0, scratchColor, COLOR_RADIAL_GRADIENT, DEACTIVATE_TRANSITION_TIME, "", lastSelected, currentPage );
|
||
|
|
||
|
scratchColor = getItemTransitionVec4Result( RTP_PROPERTY_1, COLOR_INVISIBLE, lastSelected, currentPage );
|
||
|
transitionItemVec4( RTP_PROPERTY_1, scratchColor, COLOR_INVISIBLE, DEACTIVATE_TRANSITION_TIME, "", lastSelected, currentPage );
|
||
|
|
||
|
if( drawStyle == DS_VERTICAL ) {
|
||
|
scratchRect = getItemTransitionVec4Result( RTP_PROPERTY_2, "0,0,0,0", lastSelected, currentPage );
|
||
|
transitionItemVec4( RTP_PROPERTY_2, scratchRect, "0,0,0,0", SLIDE_TIME, "", lastSelected, currentPage );
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if( currentItem != -1 ) {
|
||
|
scratchColor = getItemTransitionVec4Result( RTP_PROPERTY_0, COLOR_RADIAL_GRADIENT, currentItem, currentPage );
|
||
|
transitionItemVec4( RTP_PROPERTY_0, scratchColor, COLOR_RADIAL_HI_GRADIENT, ACTIVATE_TRANSITION_TIME, "", currentItem, currentPage );
|
||
|
|
||
|
scratchColor = getItemTransitionVec4Result( RTP_PROPERTY_1, COLOR_INVISIBLE, currentItem, currentPage );
|
||
|
transitionItemVec4( RTP_PROPERTY_1, scratchColor, COLOR_RADIAL_HI_FILL, ACTIVATE_TRANSITION_TIME, "", currentItem, currentPage );
|
||
|
|
||
|
if( drawStyle == DS_VERTICAL ) {
|
||
|
scratchRect = getItemTransitionVec4Result( RTP_PROPERTY_2, "0,0,0,0", currentItem, currentPage );
|
||
|
transitionItemVec4( RTP_PROPERTY_2, scratchRect, "-16,0,0,0", SLIDE_TIME, "", currentItem, currentPage );
|
||
|
}
|
||
|
}
|
||
|
lastSelected = immediate( currentItem );
|
||
|
}
|
||
|
onPropertyChanged "drawStyle" {
|
||
|
if( drawStyle == DS_ARC ) {
|
||
|
rect = gui.screenCenter.x - ( 0.5 * rect.w ), gui.screenCenter.y - ( 0.5 * rect.h ), 3 * radius, 2 * radius;
|
||
|
radius = 54;
|
||
|
return;
|
||
|
}
|
||
|
if( drawStyle == DS_VERTICAL ) {
|
||
|
rect = SCREEN_WIDTH - ( rect.w + 2 ), SCREEN_HEIGHT - ( 74 + rect.h ), 115, 220;
|
||
|
radius = 0;
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
$endtemplate
|
||
|
|
||
|
#endif // !__quickchat__
|