Blender  V3.3
Classes | Macros | Typedefs | Functions
interface_region_tooltip.c File Reference
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
#include "MEM_guardedalloc.h"
#include "DNA_brush_types.h"
#include "DNA_userdef_types.h"
#include "BLI_listbase.h"
#include "BLI_math.h"
#include "BLI_rect.h"
#include "BLI_string.h"
#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_paint.h"
#include "BKE_screen.h"
#include "WM_api.h"
#include "WM_types.h"
#include "RNA_access.h"
#include "RNA_path.h"
#include "UI_interface.h"
#include "BLF_api.h"
#include "BLT_translation.h"
#include "ED_screen.h"
#include "interface_intern.h"
#include "interface_regions_intern.h"

Go to the source code of this file.

Classes

struct  uiTooltipFormat
 
struct  uiTooltipField
 
struct  uiTooltipData
 

Macros

#define UI_TIP_PAD_FAC   1.3f
 
#define UI_TIP_PADDING   (int)(UI_TIP_PAD_FAC * UI_UNIT_Y)
 
#define UI_TIP_MAXWIDTH   600
 
#define UI_TIP_STR_MAX   1024
 
#define UI_TIP_LC_MAX   6
 
#define TIP_BORDER_X   (16.0f / aspect)
 
#define TIP_BORDER_Y   (6.0f / aspect)
 

Typedefs

typedef struct uiTooltipFormat uiTooltipFormat
 
typedef struct uiTooltipField uiTooltipField
 
typedef struct uiTooltipData uiTooltipData
 

Functions

 BLI_STATIC_ASSERT (UI_TIP_LC_MAX==UI_TIP_LC_ALERT+1, "invalid lc-max")
 
 BLI_STATIC_ASSERT (sizeof(uiTooltipFormat)<=sizeof(int), "oversize")
 
static uiTooltipFieldtext_field_add_only (uiTooltipData *data)
 
static uiTooltipFieldtext_field_add (uiTooltipData *data, const uiTooltipFormat *format)
 
ToolTip Callbacks (Draw & Free)
static void rgb_tint (float col[3], float h, float h_strength, float v, float v_strength)
 
static void ui_tooltip_region_draw_cb (const bContext *UNUSED(C), ARegion *region)
 
static void ui_tooltip_region_free_cb (ARegion *region)
 
ToolTip Creation Utility Functions
static char * ui_tooltip_text_python_from_op (bContext *C, wmOperatorType *ot, PointerRNA *opptr)
 
ToolTip Creation
static uiTooltipDataui_tooltip_data_from_tool (bContext *C, uiBut *but, bool is_label)
 
static uiTooltipDataui_tooltip_data_from_button_or_extra_icon (bContext *C, uiBut *but, uiButExtraOpIcon *extra_icon)
 
static uiTooltipDataui_tooltip_data_from_gizmo (bContext *C, wmGizmo *gz)
 
static ARegionui_tooltip_create_with_data (bContext *C, uiTooltipData *data, const float init_position[2], const rcti *init_rect_overlap, const float aspect)
 
ToolTip Public API
ARegionUI_tooltip_create_from_button_or_extra_icon (bContext *C, ARegion *butregion, uiBut *but, uiButExtraOpIcon *extra_icon, bool is_label)
 
ARegionUI_tooltip_create_from_button (bContext *C, ARegion *butregion, uiBut *but, bool is_label)
 
ARegionUI_tooltip_create_from_gizmo (bContext *C, wmGizmo *gz)
 
static uiTooltipDataui_tooltip_data_from_search_item_tooltip_data (const uiSearchItemTooltipData *item_tooltip_data)
 
ARegionUI_tooltip_create_from_search_item_generic (bContext *C, const ARegion *searchbox_region, const rcti *item_rect, const uiSearchItemTooltipData *item_tooltip_data)
 
void UI_tooltip_free (bContext *C, bScreen *screen, ARegion *region)
 

Detailed Description

ToolTip Region and Construction

Definition in file interface_region_tooltip.c.

Macro Definition Documentation

◆ TIP_BORDER_X

#define TIP_BORDER_X   (16.0f / aspect)

◆ TIP_BORDER_Y

#define TIP_BORDER_Y   (6.0f / aspect)

◆ UI_TIP_LC_MAX

#define UI_TIP_LC_MAX   6

Definition at line 101 of file interface_region_tooltip.c.

◆ UI_TIP_MAXWIDTH

#define UI_TIP_MAXWIDTH   600

Definition at line 60 of file interface_region_tooltip.c.

◆ UI_TIP_PAD_FAC

#define UI_TIP_PAD_FAC   1.3f

Definition at line 58 of file interface_region_tooltip.c.

◆ UI_TIP_PADDING

#define UI_TIP_PADDING   (int)(UI_TIP_PAD_FAC * UI_UNIT_Y)

Definition at line 59 of file interface_region_tooltip.c.

◆ UI_TIP_STR_MAX

#define UI_TIP_STR_MAX   1024

Definition at line 62 of file interface_region_tooltip.c.

Typedef Documentation

◆ uiTooltipData

typedef struct uiTooltipData uiTooltipData

◆ uiTooltipField

◆ uiTooltipFormat

Function Documentation

◆ BLI_STATIC_ASSERT() [1/2]

BLI_STATIC_ASSERT ( sizeof(uiTooltipFormat)<=sizeof(int)  ,
"oversize"   
)

◆ BLI_STATIC_ASSERT() [2/2]

BLI_STATIC_ASSERT ( UI_TIP_LC_MAX  = =UI_TIP_LC_ALERT+1,
"invalid lc-max  
)

◆ rgb_tint()

static void rgb_tint ( float  col[3],
float  h,
float  h_strength,
float  v,
float  v_strength 
)
static

Definition at line 124 of file interface_region_tooltip.c.

References col, hsv_to_rgb_v(), rgb_to_hsv_v(), and v.

Referenced by ui_tooltip_region_draw_cb().

◆ text_field_add()

static uiTooltipField* text_field_add ( uiTooltipData data,
const uiTooltipFormat format 
)
static

◆ text_field_add_only()

static uiTooltipField* text_field_add_only ( uiTooltipData data)
static

Definition at line 106 of file interface_region_tooltip.c.

References data, and MEM_recallocN.

Referenced by text_field_add().

◆ UI_tooltip_create_from_button()

ARegion* UI_tooltip_create_from_button ( struct bContext C,
struct ARegion butregion,
uiBut but,
bool  is_label 
)
Parameters
is_labelWhen true, show a small tip that only shows the name, otherwise show the full tooltip.

Definition at line 1462 of file interface_region_tooltip.c.

References C, NULL, and UI_tooltip_create_from_button_or_extra_icon().

Referenced by ui_search_menu_create_tooltip().

◆ UI_tooltip_create_from_button_or_extra_icon()

ARegion* UI_tooltip_create_from_button_or_extra_icon ( bContext C,
ARegion butregion,
uiBut but,
uiButExtraOpIcon extra_icon,
bool  is_label 
)

◆ UI_tooltip_create_from_gizmo()

ARegion* UI_tooltip_create_from_gizmo ( bContext C,
wmGizmo gz 
)

◆ UI_tooltip_create_from_search_item_generic()

ARegion* UI_tooltip_create_from_search_item_generic ( bContext C,
const ARegion searchbox_region,
const rcti item_rect,
const uiSearchItemTooltipData item_tooltip_data 
)

◆ ui_tooltip_create_with_data()

static ARegion* ui_tooltip_create_with_data ( bContext C,
uiTooltipData data,
const float  init_position[2],
const rcti init_rect_overlap,
const float  aspect 
)
static

◆ ui_tooltip_data_from_button_or_extra_icon()

static uiTooltipData* ui_tooltip_data_from_button_or_extra_icon ( bContext C,
uiBut but,
uiButExtraOpIcon extra_icon 
)
static

Definition at line 755 of file interface_region_tooltip.c.

References BLI_sprintfN(), BLI_strdup(), BUT_GET_LABEL, BUT_GET_OP_KEYMAP, BUT_GET_PROP_KEYMAP, BUT_GET_RNAENUM_LABEL, BUT_GET_RNAENUM_TIP, BUT_GET_RNAPROP_IDENTIFIER, BUT_GET_RNASTRUCT_IDENTIFIER, BUT_GET_TIP, C, CTX_data_main(), CTX_wm_operator_poll_msg_clear(), CTX_wm_operator_poll_msg_get(), data, uiBut::disabled_info, uiBut::drawstr, ELEM, Library::filepath, uiBut::flag, id, ID_IS_LINKED, ID::lib, MEM_callocN, MEM_freeN, NULL, uiBut::opcontext, wmOperatorCallParams::opcontext, uiBut::optype, uiButExtraOpIcon::optype_params, PointerRNA::owner_id, PROP_ENUM_FLAG, PROP_FLOAT, PROP_PASSWORD, PROP_UNIT_ROTATION, RNA_path_full_property_py_ex(), RNA_path_full_struct_py(), RNA_property_array_check(), RNA_property_flag(), RNA_property_float_get(), RNA_property_float_get_index(), RNA_property_subtype(), RNA_property_type(), uiBut::rnaindex, uiBut::rnapoin, uiBut::rnaprop, str, uiStringInfo::strinfo, STRPREFIX, uiTooltipField::text, text_field_add(), uiTooltipField::text_suffix, TIP_, uiBut::tip_func, uiBut::type, UI_BTYPE_ROW, UI_BTYPE_SEARCH_MENU, UI_BTYPE_TEXT, ui_but_anim_expression_get(), ui_but_context_poll_operator_ex(), UI_BUT_DISABLED, UI_BUT_DRIVEN, UI_but_extra_icon_string_info_get(), UI_but_extra_operator_icon_opptr_get(), UI_but_extra_operator_icon_optype_get(), UI_but_operator_ptr_get(), ui_but_string_get(), UI_but_string_info_get(), UI_but_unit_type_get(), ui_tooltip_text_python_from_op(), USER_TOOLTIPS_PYTHON, and WM_operator_properties_sanitize().

Referenced by UI_tooltip_create_from_button_or_extra_icon().

◆ ui_tooltip_data_from_gizmo()

static uiTooltipData* ui_tooltip_data_from_gizmo ( bContext C,
wmGizmo gz 
)
static

◆ ui_tooltip_data_from_search_item_tooltip_data()

static uiTooltipData* ui_tooltip_data_from_search_item_tooltip_data ( const uiSearchItemTooltipData item_tooltip_data)
static

◆ ui_tooltip_data_from_tool()

static uiTooltipData* ui_tooltip_data_from_tool ( bContext C,
uiBut but,
bool  is_label 
)
static

◆ UI_tooltip_free()

void UI_tooltip_free ( bContext C,
bScreen screen,
ARegion region 
)

Definition at line 1554 of file interface_region_tooltip.c.

References C, and ui_region_temp_remove().

Referenced by WM_tooltip_clear(), WM_tooltip_init(), and WM_tooltip_refresh().

◆ ui_tooltip_region_draw_cb()

static void ui_tooltip_region_draw_cb ( const bContext UNUSEDC,
ARegion region 
)
static

◆ ui_tooltip_region_free_cb()

static void ui_tooltip_region_free_cb ( ARegion region)
static

◆ ui_tooltip_text_python_from_op()

static char* ui_tooltip_text_python_from_op ( bContext C,
wmOperatorType ot,
PointerRNA opptr 
)
static