styling.py (25888B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\carbonui\button\styling.py 2 from carbonui.button.const import ButtonStyle, ButtonVariant, HEIGHT_COMPACT, HEIGHT_EXPANDED, HEIGHT_NORMAL, InteractionState 3 from carbonui.fontconst import EVE_LARGE_FONTSIZE, EVE_SMALL_FONTSIZE 4 from carbonui.text.color import TextColor 5 from carbonui.uiconst import Density 6 from eve.client.script.ui import eveColor, eveThemeColor 7 _FOREGROUND_COLOR_IDLE = {ButtonVariant.NORMAL: {ButtonStyle.NORMAL: TextColor.NORMAL, 8 ButtonStyle.WARNING: TextColor.NORMAL, 9 ButtonStyle.DANGER: TextColor.NORMAL, 10 ButtonStyle.MONETIZATION: TextColor.NORMAL, 11 ButtonStyle.SUCCESS: TextColor.NORMAL}, 12 ButtonVariant.PRIMARY: {ButtonStyle.NORMAL: TextColor.NORMAL, 13 ButtonStyle.WARNING: TextColor.NORMAL, 14 ButtonStyle.DANGER: TextColor.NORMAL, 15 ButtonStyle.MONETIZATION: eveColor.OMEGA_ACCENT, 16 ButtonStyle.SUCCESS: TextColor.NORMAL}, 17 ButtonVariant.GHOST: {ButtonStyle.NORMAL: TextColor.NORMAL, 18 ButtonStyle.WARNING: TextColor.NORMAL, 19 ButtonStyle.DANGER: TextColor.NORMAL, 20 ButtonStyle.MONETIZATION: TextColor.NORMAL, 21 ButtonStyle.SUCCESS: TextColor.NORMAL}} 22 _FOREGROUND_COLOR_HOVERED = {ButtonVariant.NORMAL: {ButtonStyle.NORMAL: TextColor.NORMAL, 23 ButtonStyle.WARNING: TextColor.NORMAL, 24 ButtonStyle.DANGER: TextColor.NORMAL, 25 ButtonStyle.MONETIZATION: TextColor.HIGHLIGHT, 26 ButtonStyle.SUCCESS: TextColor.NORMAL}, 27 ButtonVariant.PRIMARY: {ButtonStyle.NORMAL: TextColor.NORMAL, 28 ButtonStyle.WARNING: TextColor.NORMAL, 29 ButtonStyle.DANGER: TextColor.NORMAL, 30 ButtonStyle.MONETIZATION: eveColor.OMEGA_ACCENT, 31 ButtonStyle.SUCCESS: TextColor.NORMAL}, 32 ButtonVariant.GHOST: {ButtonStyle.NORMAL: TextColor.NORMAL, 33 ButtonStyle.WARNING: TextColor.NORMAL, 34 ButtonStyle.DANGER: TextColor.NORMAL, 35 ButtonStyle.MONETIZATION: TextColor.HIGHLIGHT, 36 ButtonStyle.SUCCESS: TextColor.NORMAL}} 37 _FOREGROUND_COLOR_PRESSED = eveColor.BLACK 38 _FOREGROUND_COLOR_DISABLED = {ButtonStyle.NORMAL: TextColor.DISABLED, 39 ButtonStyle.WARNING: TextColor.DISABLED, 40 ButtonStyle.DANGER: TextColor.DISABLED, 41 ButtonStyle.MONETIZATION: TextColor.SECONDARY, 42 ButtonStyle.SUCCESS: TextColor.DISABLED} 43 _ICON_COLOR_IDLE = TextColor.NORMAL 44 _ICON_COLOR_HOVERED = TextColor.HIGHLIGHT 45 _ICON_COLOR_PRESSED = eveColor.BLACK 46 _ICON_COLOR_DISABLED = TextColor.DISABLED 47 _BACKGROUND_COLOR_IDLE = {ButtonVariant.NORMAL: {ButtonStyle.NORMAL: lambda : eveThemeColor.THEME_FOCUSDARK.rgb + (0.2,), 48 ButtonStyle.WARNING: tuple(eveColor.DUSKY_ORANGE[:3]) + (0.2,), 49 ButtonStyle.DANGER: tuple(eveColor.CHERRY_RED[:3]) + (0.2,), 50 ButtonStyle.MONETIZATION: tuple(eveColor.OMEGA_ACCENT[:3]) + (0.1,), 51 ButtonStyle.SUCCESS: tuple(eveColor.COPPER_OXIDE_GREEN[:3]) + (0.2,)}, 52 ButtonVariant.PRIMARY: {ButtonStyle.NORMAL: lambda : eveThemeColor.THEME_FOCUSDARK.rgb + (0.6,), 53 ButtonStyle.WARNING: tuple(eveColor.DUSKY_ORANGE[:3]) + (0.6,), 54 ButtonStyle.DANGER: tuple(eveColor.CHERRY_RED[:3]) + (0.6,), 55 ButtonStyle.MONETIZATION: tuple(eveColor.OMEGA_ACCENT[:3]) + (0.2,), 56 ButtonStyle.SUCCESS: tuple(eveColor.COPPER_OXIDE_GREEN[:3]) + (0.6,)}, 57 ButtonVariant.GHOST: {ButtonStyle.NORMAL: lambda : eveThemeColor.THEME_FOCUSDARK.rgb + (0.0,), 58 ButtonStyle.WARNING: tuple(eveColor.DUSKY_ORANGE[:3]) + (0.0,), 59 ButtonStyle.DANGER: tuple(eveColor.CHERRY_RED[:3]) + (0.0,), 60 ButtonStyle.MONETIZATION: tuple(eveColor.BLACK[:3]) + (0.5,), 61 ButtonStyle.SUCCESS: tuple(eveColor.COPPER_OXIDE_GREEN[:3]) + (0.0,)}} 62 _BACKGROUND_COLOR_HOVERED = {ButtonVariant.NORMAL: {ButtonStyle.NORMAL: lambda : eveThemeColor.THEME_FOCUSDARK.rgb + (0.6,), 63 ButtonStyle.WARNING: tuple(eveColor.DUSKY_ORANGE[:3]) + (0.6,), 64 ButtonStyle.DANGER: tuple(eveColor.CHERRY_RED[:3]) + (0.6,), 65 ButtonStyle.MONETIZATION: tuple(eveColor.OMEGA_ACCENT[:3]) + (0.2,), 66 ButtonStyle.SUCCESS: tuple(eveColor.COPPER_OXIDE_GREEN[:3]) + (0.6,)}, 67 ButtonVariant.PRIMARY: {ButtonStyle.NORMAL: lambda : eveThemeColor.THEME_FOCUSDARK.rgb + (0.6,), 68 ButtonStyle.WARNING: tuple(eveColor.DUSKY_ORANGE[:3]) + (0.6,), 69 ButtonStyle.DANGER: tuple(eveColor.CHERRY_RED[:3]) + (0.6,), 70 ButtonStyle.MONETIZATION: tuple(eveColor.OMEGA_ACCENT[:3]) + (0.2,), 71 ButtonStyle.SUCCESS: tuple(eveColor.COPPER_OXIDE_GREEN[:3]) + (0.6,)}, 72 ButtonVariant.GHOST: {ButtonStyle.NORMAL: lambda : eveThemeColor.THEME_FOCUSDARK.rgb + (0.6,), 73 ButtonStyle.WARNING: tuple(eveColor.DUSKY_ORANGE[:3]) + (0.6,), 74 ButtonStyle.DANGER: tuple(eveColor.CHERRY_RED[:3]) + (0.6,), 75 ButtonStyle.MONETIZATION: tuple(eveColor.BLACK[:3]) + (0.5,), 76 ButtonStyle.SUCCESS: tuple(eveColor.COPPER_OXIDE_GREEN[:3]) + (0.6,)}} 77 _BACKGROUND_COLOR_PRESSED = {ButtonStyle.NORMAL: eveColor.TUNGSTEN_GREY, 78 ButtonStyle.WARNING: eveColor.TUNGSTEN_GREY, 79 ButtonStyle.DANGER: eveColor.TUNGSTEN_GREY, 80 ButtonStyle.MONETIZATION: eveColor.OMEGA_ACCENT, 81 ButtonStyle.SUCCESS: eveColor.TUNGSTEN_GREY} 82 _BACKGROUND_COLOR_DISABLED = {ButtonVariant.NORMAL: {ButtonStyle.NORMAL: tuple(eveColor.MATTE_BLACK[:3]) + (0.2,), 83 ButtonStyle.WARNING: tuple(eveColor.MATTE_BLACK[:3]) + (0.2,), 84 ButtonStyle.DANGER: tuple(eveColor.MATTE_BLACK[:3]) + (0.2,), 85 ButtonStyle.MONETIZATION: tuple(eveColor.BLACK[:3]) + (0.5,), 86 ButtonStyle.SUCCESS: tuple(eveColor.MATTE_BLACK[:3]) + (0.2,)}, 87 ButtonVariant.PRIMARY: {ButtonStyle.NORMAL: tuple(eveColor.MATTE_BLACK[:3]) + (0.6,), 88 ButtonStyle.WARNING: tuple(eveColor.MATTE_BLACK[:3]) + (0.6,), 89 ButtonStyle.DANGER: tuple(eveColor.MATTE_BLACK[:3]) + (0.6,), 90 ButtonStyle.MONETIZATION: tuple(eveColor.BLACK[:3]) + (0.5,), 91 ButtonStyle.SUCCESS: tuple(eveColor.MATTE_BLACK[:3]) + (0.6,)}, 92 ButtonVariant.GHOST: {ButtonStyle.NORMAL: tuple(eveColor.MATTE_BLACK[:3]) + (0.0,), 93 ButtonStyle.WARNING: tuple(eveColor.MATTE_BLACK[:3]) + (0.0,), 94 ButtonStyle.DANGER: tuple(eveColor.MATTE_BLACK[:3]) + (0.0,), 95 ButtonStyle.MONETIZATION: tuple(eveColor.BLACK[:3]) + (0.5,), 96 ButtonStyle.SUCCESS: tuple(eveColor.MATTE_BLACK[:3]) + (0.0,)}} 97 _STROKE_COLOR_IDLE = {ButtonVariant.NORMAL: {ButtonStyle.NORMAL: lambda : eveThemeColor.THEME_FOCUSDARK, 98 ButtonStyle.WARNING: eveColor.WARNING_ORANGE, 99 ButtonStyle.DANGER: eveColor.CHERRY_RED, 100 ButtonStyle.MONETIZATION: eveColor.OMEGA_TERTIARY, 101 ButtonStyle.SUCCESS: eveColor.SUCCESS_GREEN}, 102 ButtonVariant.PRIMARY: {ButtonStyle.NORMAL: lambda : eveThemeColor.THEME_FOCUS, 103 ButtonStyle.WARNING: eveColor.WARNING_ORANGE, 104 ButtonStyle.DANGER: eveColor.CHERRY_RED, 105 ButtonStyle.MONETIZATION: eveColor.OMEGA_ACCENT_STROKE, 106 ButtonStyle.SUCCESS: eveColor.SUCCESS_GREEN}, 107 ButtonVariant.GHOST: {ButtonStyle.NORMAL: lambda : eveThemeColor.THEME_FOCUSDARK.rgb + (0.6,), 108 ButtonStyle.WARNING: tuple(eveColor.DUSKY_ORANGE[:3]) + (0.6,), 109 ButtonStyle.DANGER: tuple(eveColor.CHERRY_RED[:3]) + (0.6,), 110 ButtonStyle.MONETIZATION: eveColor.OMEGA_TERTIARY, 111 ButtonStyle.SUCCESS: tuple(eveColor.COPPER_OXIDE_GREEN[:3]) + (0.6,)}} 112 _STROKE_COLOR_HOVERED = {ButtonVariant.NORMAL: {ButtonStyle.NORMAL: lambda : eveThemeColor.THEME_FOCUS, 113 ButtonStyle.WARNING: eveColor.WARNING_ORANGE, 114 ButtonStyle.DANGER: eveColor.HOT_RED, 115 ButtonStyle.MONETIZATION: eveColor.OMEGA_ACCENT, 116 ButtonStyle.SUCCESS: eveColor.SUCCESS_GREEN}, 117 ButtonVariant.PRIMARY: {ButtonStyle.NORMAL: lambda : eveThemeColor.THEME_FOCUS, 118 ButtonStyle.WARNING: eveColor.WARNING_ORANGE, 119 ButtonStyle.DANGER: eveColor.HOT_RED, 120 ButtonStyle.MONETIZATION: eveColor.OMEGA_ACCENT, 121 ButtonStyle.SUCCESS: eveColor.SUCCESS_GREEN}, 122 ButtonVariant.GHOST: {ButtonStyle.NORMAL: lambda : eveThemeColor.THEME_FOCUS, 123 ButtonStyle.WARNING: eveColor.WARNING_ORANGE, 124 ButtonStyle.DANGER: eveColor.HOT_RED, 125 ButtonStyle.MONETIZATION: tuple(eveColor.OMEGA_ACCENT[:3]) + (0.4,), 126 ButtonStyle.SUCCESS: eveColor.SUCCESS_GREEN}} 127 _STROKE_COLOR_PRESSED = {ButtonStyle.NORMAL: eveColor.TUNGSTEN_GREY, 128 ButtonStyle.WARNING: eveColor.TUNGSTEN_GREY, 129 ButtonStyle.DANGER: eveColor.TUNGSTEN_GREY, 130 ButtonStyle.MONETIZATION: eveColor.OMEGA_ACCENT, 131 ButtonStyle.SUCCESS: eveColor.TUNGSTEN_GREY} 132 _STROKE_COLOR_DISABLED = {ButtonStyle.NORMAL: tuple(eveColor.MATTE_BLACK[:3]) + (0.6,), 133 ButtonStyle.WARNING: tuple(eveColor.MATTE_BLACK[:3]) + (0.6,), 134 ButtonStyle.DANGER: tuple(eveColor.MATTE_BLACK[:3]) + (0.6,), 135 ButtonStyle.MONETIZATION: eveColor.OMEGA_SECONDARY, 136 ButtonStyle.SUCCESS: tuple(eveColor.MATTE_BLACK[:3]) + (0.6,)} 137 _GLOW_COLOR_IDLE = {ButtonVariant.NORMAL: {ButtonStyle.NORMAL: lambda : eveThemeColor.THEME_FOCUS.rgb + (0.0,), 138 ButtonStyle.WARNING: tuple(eveColor.WARNING_ORANGE[:3]) + (0.0,), 139 ButtonStyle.DANGER: tuple(eveColor.HOT_RED[:3]) + (0.0,), 140 ButtonStyle.MONETIZATION: tuple(eveColor.OMEGA_ACCENT[:3]) + (0.0,), 141 ButtonStyle.SUCCESS: tuple(eveColor.SUCCESS_GREEN[:3]) + (0.0,)}, 142 ButtonVariant.PRIMARY: {ButtonStyle.NORMAL: lambda : eveThemeColor.THEME_FOCUS.rgb + (0.0,), 143 ButtonStyle.WARNING: tuple(eveColor.WARNING_ORANGE[:3]) + (0.0,), 144 ButtonStyle.DANGER: tuple(eveColor.HOT_RED[:3]) + (0.0,), 145 ButtonStyle.MONETIZATION: tuple(eveColor.OMEGA_ACCENT[:3]) + (0.0,), 146 ButtonStyle.SUCCESS: tuple(eveColor.SUCCESS_GREEN[:3]) + (0.0,)}, 147 ButtonVariant.GHOST: {ButtonStyle.NORMAL: tuple(eveColor.BLACK[:3]) + (0.0,), 148 ButtonStyle.WARNING: tuple(eveColor.BLACK[:3]) + (0.0,), 149 ButtonStyle.DANGER: tuple(eveColor.BLACK[:3]) + (0.0,), 150 ButtonStyle.MONETIZATION: tuple(eveColor.BLACK[:3]) + (0.0,), 151 ButtonStyle.SUCCESS: tuple(eveColor.BLACK[:3]) + (0.0,)}} 152 _GLOW_COLOR_HOVERED = {ButtonVariant.NORMAL: {ButtonStyle.NORMAL: lambda : tuple(eveThemeColor.THEME_FOCUS[:3]) + (0.6,), 153 ButtonStyle.WARNING: tuple(eveColor.WARNING_ORANGE[:3]) + (0.6,), 154 ButtonStyle.DANGER: tuple(eveColor.HOT_RED[:3]) + (0.6,), 155 ButtonStyle.MONETIZATION: tuple(eveColor.OMEGA_ACCENT[:3]) + (0.6,), 156 ButtonStyle.SUCCESS: tuple(eveColor.SUCCESS_GREEN[:3]) + (0.6,)}, 157 ButtonVariant.PRIMARY: {ButtonStyle.NORMAL: lambda : tuple(eveThemeColor.THEME_FOCUS[:3]) + (0.6,), 158 ButtonStyle.WARNING: tuple(eveColor.WARNING_ORANGE[:3]) + (0.6,), 159 ButtonStyle.DANGER: tuple(eveColor.HOT_RED[:3]) + (0.6,), 160 ButtonStyle.MONETIZATION: tuple(eveColor.OMEGA_ACCENT[:3]) + (0.6,), 161 ButtonStyle.SUCCESS: tuple(eveColor.SUCCESS_GREEN[:3]) + (0.6,)}, 162 ButtonVariant.GHOST: {ButtonStyle.NORMAL: lambda : tuple(eveThemeColor.THEME_FOCUS[:3]) + (0.6,), 163 ButtonStyle.WARNING: tuple(eveColor.WARNING_ORANGE[:3]) + (0.6,), 164 ButtonStyle.DANGER: tuple(eveColor.HOT_RED[:3]) + (0.6,), 165 ButtonStyle.MONETIZATION: tuple(eveColor.OMEGA_ACCENT[:3]) + (0.0,), 166 ButtonStyle.SUCCESS: tuple(eveColor.SUCCESS_GREEN[:3]) + (0.6,)}} 167 _GLOW_COLOR_PRESSED = {ButtonVariant.NORMAL: {ButtonStyle.NORMAL: eveColor.TUNGSTEN_GREY, 168 ButtonStyle.WARNING: eveColor.TUNGSTEN_GREY, 169 ButtonStyle.DANGER: eveColor.TUNGSTEN_GREY, 170 ButtonStyle.MONETIZATION: eveColor.OMEGA_ACCENT, 171 ButtonStyle.SUCCESS: eveColor.TUNGSTEN_GREY}, 172 ButtonVariant.PRIMARY: {ButtonStyle.NORMAL: eveColor.TUNGSTEN_GREY, 173 ButtonStyle.WARNING: eveColor.TUNGSTEN_GREY, 174 ButtonStyle.DANGER: eveColor.TUNGSTEN_GREY, 175 ButtonStyle.MONETIZATION: eveColor.OMEGA_ACCENT, 176 ButtonStyle.SUCCESS: eveColor.TUNGSTEN_GREY}, 177 ButtonVariant.GHOST: {ButtonStyle.NORMAL: eveColor.TUNGSTEN_GREY, 178 ButtonStyle.WARNING: eveColor.TUNGSTEN_GREY, 179 ButtonStyle.DANGER: eveColor.TUNGSTEN_GREY, 180 ButtonStyle.MONETIZATION: tuple(eveColor.OMEGA_ACCENT[:3]) + (0.0,), 181 ButtonStyle.SUCCESS: eveColor.TUNGSTEN_GREY}} 182 _GLOW_COLOR_DISABLED = tuple(eveColor.TUNGSTEN_GREY[:3]) + (0.0,) 183 _DEFAULT_TOP_LINE_RGB_DATA = [(0.0, eveColor.WHITE[:3]), (1.0, eveColor.WHITE[:3])] 184 _DEFAULT_TOP_LINE_ALPHA_DATA = [(0.0, 0.0), (1.0, 0.0)] 185 _FRAME_TOP_LINE_RGB_DATA = {ButtonVariant.NORMAL: {ButtonStyle.NORMAL: _DEFAULT_TOP_LINE_RGB_DATA, 186 ButtonStyle.WARNING: _DEFAULT_TOP_LINE_RGB_DATA, 187 ButtonStyle.DANGER: _DEFAULT_TOP_LINE_RGB_DATA, 188 ButtonStyle.MONETIZATION: _DEFAULT_TOP_LINE_RGB_DATA, 189 ButtonStyle.SUCCESS: _DEFAULT_TOP_LINE_RGB_DATA}, 190 ButtonVariant.PRIMARY: {ButtonStyle.NORMAL: _DEFAULT_TOP_LINE_RGB_DATA, 191 ButtonStyle.WARNING: _DEFAULT_TOP_LINE_RGB_DATA, 192 ButtonStyle.DANGER: _DEFAULT_TOP_LINE_RGB_DATA, 193 ButtonStyle.MONETIZATION: eveColor.OMEGA_LINE_GRADIENT_RGB_DATA, 194 ButtonStyle.SUCCESS: _DEFAULT_TOP_LINE_RGB_DATA}, 195 ButtonVariant.GHOST: {ButtonStyle.NORMAL: _DEFAULT_TOP_LINE_RGB_DATA, 196 ButtonStyle.WARNING: _DEFAULT_TOP_LINE_RGB_DATA, 197 ButtonStyle.DANGER: _DEFAULT_TOP_LINE_RGB_DATA, 198 ButtonStyle.MONETIZATION: _DEFAULT_TOP_LINE_RGB_DATA, 199 ButtonStyle.SUCCESS: _DEFAULT_TOP_LINE_RGB_DATA}} 200 _FRAME_TOP_LINE_ALPHA_DATA = {ButtonVariant.NORMAL: {ButtonStyle.NORMAL: _DEFAULT_TOP_LINE_ALPHA_DATA, 201 ButtonStyle.WARNING: _DEFAULT_TOP_LINE_ALPHA_DATA, 202 ButtonStyle.DANGER: _DEFAULT_TOP_LINE_ALPHA_DATA, 203 ButtonStyle.MONETIZATION: _DEFAULT_TOP_LINE_ALPHA_DATA, 204 ButtonStyle.SUCCESS: _DEFAULT_TOP_LINE_ALPHA_DATA}, 205 ButtonVariant.PRIMARY: {ButtonStyle.NORMAL: _DEFAULT_TOP_LINE_ALPHA_DATA, 206 ButtonStyle.WARNING: _DEFAULT_TOP_LINE_ALPHA_DATA, 207 ButtonStyle.DANGER: _DEFAULT_TOP_LINE_ALPHA_DATA, 208 ButtonStyle.MONETIZATION: eveColor.OMEGA_LINE_GRADIENT_ALPHA_DATA, 209 ButtonStyle.SUCCESS: _DEFAULT_TOP_LINE_ALPHA_DATA}, 210 ButtonVariant.GHOST: {ButtonStyle.NORMAL: _DEFAULT_TOP_LINE_ALPHA_DATA, 211 ButtonStyle.WARNING: _DEFAULT_TOP_LINE_ALPHA_DATA, 212 ButtonStyle.DANGER: _DEFAULT_TOP_LINE_ALPHA_DATA, 213 ButtonStyle.MONETIZATION: _DEFAULT_TOP_LINE_ALPHA_DATA, 214 ButtonStyle.SUCCESS: _DEFAULT_TOP_LINE_ALPHA_DATA}} 215 _DEFAULT_TOP_EFEFCT_TEXTURE = None 216 _DEFAULT_TOP_EFFECT_COLOR = eveColor.WHITE 217 _DEFAULT_TOP_EFFECT_OPACITY = 0.0 218 _DEFAULT_TOP_EFFECT_POS = (0, 0, 0, 0) 219 _FRAME_TOP_EFFECT_TEXTURE = {ButtonVariant.NORMAL: {ButtonStyle.NORMAL: _DEFAULT_TOP_EFEFCT_TEXTURE, 220 ButtonStyle.WARNING: _DEFAULT_TOP_EFEFCT_TEXTURE, 221 ButtonStyle.DANGER: _DEFAULT_TOP_EFEFCT_TEXTURE, 222 ButtonStyle.MONETIZATION: _DEFAULT_TOP_EFEFCT_TEXTURE, 223 ButtonStyle.SUCCESS: _DEFAULT_TOP_EFEFCT_TEXTURE}, 224 ButtonVariant.PRIMARY: {ButtonStyle.NORMAL: _DEFAULT_TOP_EFEFCT_TEXTURE, 225 ButtonStyle.WARNING: _DEFAULT_TOP_EFEFCT_TEXTURE, 226 ButtonStyle.DANGER: _DEFAULT_TOP_EFEFCT_TEXTURE, 227 ButtonStyle.MONETIZATION: 'res:/UI/Texture/classes/Button/frame_top_effect.png', 228 ButtonStyle.SUCCESS: _DEFAULT_TOP_EFEFCT_TEXTURE}, 229 ButtonVariant.GHOST: {ButtonStyle.NORMAL: _DEFAULT_TOP_EFEFCT_TEXTURE, 230 ButtonStyle.WARNING: _DEFAULT_TOP_EFEFCT_TEXTURE, 231 ButtonStyle.DANGER: _DEFAULT_TOP_EFEFCT_TEXTURE, 232 ButtonStyle.MONETIZATION: _DEFAULT_TOP_EFEFCT_TEXTURE, 233 ButtonStyle.SUCCESS: _DEFAULT_TOP_EFEFCT_TEXTURE}} 234 _FRAME_TOP_EFFECT_COLOR = {ButtonVariant.NORMAL: {ButtonStyle.NORMAL: _DEFAULT_TOP_EFFECT_COLOR, 235 ButtonStyle.WARNING: _DEFAULT_TOP_EFFECT_COLOR, 236 ButtonStyle.DANGER: _DEFAULT_TOP_EFFECT_COLOR, 237 ButtonStyle.MONETIZATION: _DEFAULT_TOP_EFFECT_COLOR, 238 ButtonStyle.SUCCESS: _DEFAULT_TOP_EFFECT_COLOR}, 239 ButtonVariant.PRIMARY: {ButtonStyle.NORMAL: _DEFAULT_TOP_EFFECT_COLOR, 240 ButtonStyle.WARNING: _DEFAULT_TOP_EFFECT_COLOR, 241 ButtonStyle.DANGER: _DEFAULT_TOP_EFFECT_COLOR, 242 ButtonStyle.MONETIZATION: eveColor.OMEGA_ACCENT, 243 ButtonStyle.SUCCESS: _DEFAULT_TOP_EFFECT_COLOR}, 244 ButtonVariant.GHOST: {ButtonStyle.NORMAL: _DEFAULT_TOP_EFFECT_COLOR, 245 ButtonStyle.WARNING: _DEFAULT_TOP_EFFECT_COLOR, 246 ButtonStyle.DANGER: _DEFAULT_TOP_EFFECT_COLOR, 247 ButtonStyle.MONETIZATION: _DEFAULT_TOP_EFFECT_COLOR, 248 ButtonStyle.SUCCESS: _DEFAULT_TOP_EFFECT_COLOR}} 249 _FRAME_TOP_EFFECT_OPACITY = {ButtonVariant.NORMAL: {ButtonStyle.NORMAL: _DEFAULT_TOP_EFFECT_OPACITY, 250 ButtonStyle.WARNING: _DEFAULT_TOP_EFFECT_OPACITY, 251 ButtonStyle.DANGER: _DEFAULT_TOP_EFFECT_OPACITY, 252 ButtonStyle.MONETIZATION: _DEFAULT_TOP_EFFECT_OPACITY, 253 ButtonStyle.SUCCESS: _DEFAULT_TOP_EFFECT_OPACITY}, 254 ButtonVariant.PRIMARY: {ButtonStyle.NORMAL: _DEFAULT_TOP_EFFECT_OPACITY, 255 ButtonStyle.WARNING: _DEFAULT_TOP_EFFECT_OPACITY, 256 ButtonStyle.DANGER: _DEFAULT_TOP_EFFECT_OPACITY, 257 ButtonStyle.MONETIZATION: 0.2, 258 ButtonStyle.SUCCESS: _DEFAULT_TOP_EFFECT_OPACITY}, 259 ButtonVariant.GHOST: {ButtonStyle.NORMAL: _DEFAULT_TOP_EFFECT_OPACITY, 260 ButtonStyle.WARNING: _DEFAULT_TOP_EFFECT_OPACITY, 261 ButtonStyle.DANGER: _DEFAULT_TOP_EFFECT_OPACITY, 262 ButtonStyle.MONETIZATION: _DEFAULT_TOP_EFFECT_OPACITY, 263 ButtonStyle.SUCCESS: _DEFAULT_TOP_EFFECT_OPACITY}} 264 _FRAME_TOP_EFFECT_POS = {ButtonVariant.NORMAL: {ButtonStyle.NORMAL: _DEFAULT_TOP_EFFECT_POS, 265 ButtonStyle.WARNING: _DEFAULT_TOP_EFFECT_POS, 266 ButtonStyle.DANGER: _DEFAULT_TOP_EFFECT_POS, 267 ButtonStyle.MONETIZATION: _DEFAULT_TOP_EFFECT_POS, 268 ButtonStyle.SUCCESS: _DEFAULT_TOP_EFFECT_POS}, 269 ButtonVariant.PRIMARY: {ButtonStyle.NORMAL: _DEFAULT_TOP_EFFECT_POS, 270 ButtonStyle.WARNING: _DEFAULT_TOP_EFFECT_POS, 271 ButtonStyle.DANGER: _DEFAULT_TOP_EFFECT_POS, 272 ButtonStyle.MONETIZATION: (0, -11, 78, 22), 273 ButtonStyle.SUCCESS: _DEFAULT_TOP_EFFECT_POS}, 274 ButtonVariant.GHOST: {ButtonStyle.NORMAL: _DEFAULT_TOP_EFFECT_POS, 275 ButtonStyle.WARNING: _DEFAULT_TOP_EFFECT_POS, 276 ButtonStyle.DANGER: _DEFAULT_TOP_EFFECT_POS, 277 ButtonStyle.MONETIZATION: _DEFAULT_TOP_EFFECT_POS, 278 ButtonStyle.SUCCESS: _DEFAULT_TOP_EFFECT_POS}} 279 280 def resolve(color): 281 if callable(color): 282 color = color() 283 if hasattr(color, 'rgba'): 284 color = color.rgba 285 return color 286 287 288 def get_foreground_color(button_variant, button_style, interaction_states): 289 if InteractionState.disabled in interaction_states: 290 return resolve(_FOREGROUND_COLOR_DISABLED[button_style]) 291 elif InteractionState.pressed in interaction_states: 292 return resolve(_FOREGROUND_COLOR_PRESSED) 293 elif InteractionState.hovered in interaction_states: 294 return resolve(_FOREGROUND_COLOR_HOVERED[button_variant][button_style]) 295 else: 296 return resolve(_FOREGROUND_COLOR_IDLE[button_variant][button_style]) 297 298 299 def get_icon_color(button_variant, button_style, interaction_states): 300 if InteractionState.disabled in interaction_states: 301 return resolve(_ICON_COLOR_DISABLED) 302 elif InteractionState.pressed in interaction_states: 303 return resolve(_ICON_COLOR_PRESSED) 304 elif InteractionState.hovered in interaction_states: 305 return resolve(_ICON_COLOR_HOVERED) 306 else: 307 return resolve(_ICON_COLOR_IDLE) 308 309 310 def get_background_color(button_variant, button_style, interaction_states): 311 if InteractionState.disabled in interaction_states: 312 return resolve(_BACKGROUND_COLOR_DISABLED[button_variant][button_style]) 313 elif InteractionState.pressed in interaction_states: 314 return resolve(_BACKGROUND_COLOR_PRESSED[button_style]) 315 elif InteractionState.hovered in interaction_states: 316 return resolve(_BACKGROUND_COLOR_HOVERED[button_variant][button_style]) 317 else: 318 return resolve(_BACKGROUND_COLOR_IDLE[button_variant][button_style]) 319 320 321 def get_stroke_color(button_variant, button_style, interaction_states): 322 if InteractionState.disabled in interaction_states: 323 return resolve(_STROKE_COLOR_DISABLED[button_style]) 324 elif InteractionState.pressed in interaction_states: 325 return resolve(_STROKE_COLOR_PRESSED[button_style]) 326 elif InteractionState.hovered in interaction_states: 327 return resolve(_STROKE_COLOR_HOVERED[button_variant][button_style]) 328 else: 329 return resolve(_STROKE_COLOR_IDLE[button_variant][button_style]) 330 331 332 def get_glow_color(button_variant, button_style, interaction_states): 333 if InteractionState.disabled in interaction_states: 334 return resolve(_GLOW_COLOR_DISABLED) 335 elif InteractionState.pressed in interaction_states: 336 return resolve(_GLOW_COLOR_PRESSED[button_variant][button_style]) 337 elif InteractionState.hovered in interaction_states: 338 return resolve(_GLOW_COLOR_HOVERED[button_variant][button_style]) 339 else: 340 return resolve(_GLOW_COLOR_IDLE[button_variant][button_style]) 341 342 343 def get_frame_top_line_rgb_data(button_variant, button_style, interaction_states): 344 return resolve(_FRAME_TOP_LINE_RGB_DATA[button_variant][button_style]) 345 346 347 def get_frame_top_line_alpha_data(button_variant, button_style, interaction_states): 348 return resolve(_FRAME_TOP_LINE_ALPHA_DATA[button_variant][button_style]) 349 350 351 def get_frame_top_effect_texture(button_variant, button_style, interaction_states): 352 return resolve(_FRAME_TOP_EFFECT_TEXTURE[button_variant][button_style]) 353 354 355 def get_frame_top_effect_color(button_variant, button_style, interaction_states): 356 return resolve(_FRAME_TOP_EFFECT_COLOR[button_variant][button_style]) 357 358 359 def get_frame_top_effect_opacity(button_variant, button_style, interaction_states): 360 return resolve(_FRAME_TOP_EFFECT_OPACITY[button_variant][button_style]) 361 362 363 def get_frame_top_effect_pos(button_variant, button_style, interaction_states): 364 return resolve(_FRAME_TOP_EFFECT_POS[button_variant][button_style]) 365 366 367 def get_height(density): 368 if density == Density.NORMAL: 369 return HEIGHT_NORMAL 370 if density == Density.COMPACT: 371 return HEIGHT_COMPACT 372 if density == Density.EXPANDED: 373 return HEIGHT_EXPANDED 374 375 376 def get_min_width(density): 377 return get_height(density) 378 379 380 def get_icon_offset(density): 381 if density in [Density.NORMAL, Density.EXPANDED]: 382 return 4 383 if density == Density.COMPACT: 384 return 2 385 386 387 def get_icon_gap(density): 388 if density in [Density.NORMAL, Density.EXPANDED]: 389 return 8 390 if density == Density.COMPACT: 391 return 6 392 393 394 def get_side_padding(density): 395 if density == Density.NORMAL: 396 return 16 397 if density == Density.COMPACT: 398 return 8 399 if density == Density.EXPANDED: 400 return 40 401 402 403 def get_fontsize(density): 404 if density == Density.NORMAL: 405 return EVE_SMALL_FONTSIZE 406 if density == Density.COMPACT: 407 return EVE_SMALL_FONTSIZE 408 if density == Density.EXPANDED: 409 return EVE_LARGE_FONTSIZE 410 411 412 def get_default_min_width(density): 413 if density == Density.EXPANDED: 414 return 180 415 return 32