Blender  V3.3
Classes | Macros
interface_region_search.cc File Reference
#include <cstdarg>
#include <cstdlib>
#include <cstring>
#include "DNA_ID.h"
#include "MEM_guardedalloc.h"
#include "DNA_userdef_types.h"
#include "BLI_math.h"
#include "BLI_listbase.h"
#include "BLI_rect.h"
#include "BLI_string.h"
#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_screen.h"
#include "WM_api.h"
#include "WM_types.h"
#include "RNA_access.h"
#include "UI_interface.h"
#include "UI_interface_icons.h"
#include "UI_view2d.h"
#include "BLT_translation.h"
#include "ED_screen.h"
#include "GPU_state.h"
#include "interface_intern.h"
#include "interface_regions_intern.h"

Go to the source code of this file.

Classes

struct  uiSearchItems
 
struct  uiSearchboxData
 

Macros

#define MENU_BORDER   (int)(0.3f * U.widget_unit)
 

Search Box Creation

#define SEARCH_ITEMS   10
 
bool UI_search_item_add (uiSearchItems *items, const char *name, void *poin, int iconid, const int but_flag, const uint8_t name_prefix_offset)
 
int UI_searchbox_size_y ()
 
int UI_searchbox_size_x ()
 
int UI_search_items_find_index (uiSearchItems *items, const char *name)
 
static void ui_searchbox_select (bContext *C, ARegion *region, uiBut *but, int step)
 
static void ui_searchbox_butrect (rcti *r_rect, uiSearchboxData *data, int itemnr)
 
int ui_searchbox_find_index (ARegion *region, const char *name)
 
bool ui_searchbox_inside (ARegion *region, const int xy[2])
 
bool ui_searchbox_apply (uiBut *but, ARegion *region)
 
static struct ARegionwm_searchbox_tooltip_init (struct bContext *C, struct ARegion *region, int *UNUSED(r_pass), double *UNUSED(pass_delay), bool *r_exit_on_event)
 
bool ui_searchbox_event (bContext *C, ARegion *region, uiBut *but, ARegion *butregion, const wmEvent *event)
 
static void ui_searchbox_update_fn (bContext *C, uiButSearch *search_but, const char *str, uiSearchItems *items)
 
void ui_searchbox_update (bContext *C, ARegion *region, uiBut *but, const bool reset)
 
int ui_searchbox_autocomplete (bContext *C, ARegion *region, uiBut *but, char *str)
 
static void ui_searchbox_region_draw_fn (const bContext *C, ARegion *region)
 
static void ui_searchbox_region_free_fn (ARegion *region)
 
static ARegionui_searchbox_create_generic_ex (bContext *C, ARegion *butregion, uiButSearch *search_but, const bool use_shortcut_sep)
 
ARegionui_searchbox_create_generic (bContext *C, ARegion *butregion, uiButSearch *search_but)
 
static void str_tolower_titlecaps_ascii (char *str, const size_t len)
 
static void ui_searchbox_region_draw_cb__operator (const bContext *UNUSED(C), ARegion *region)
 
ARegionui_searchbox_create_operator (bContext *C, ARegion *butregion, uiButSearch *search_but)
 
void ui_searchbox_free (bContext *C, ARegion *region)
 
static void ui_searchbox_region_draw_cb__menu (const bContext *UNUSED(C), ARegion *UNUSED(region))
 
ARegionui_searchbox_create_menu (bContext *C, ARegion *butregion, uiButSearch *search_but)
 
void ui_but_search_refresh (uiButSearch *search_but)
 

Detailed Description

Search Box Region & Interaction

Definition in file interface_region_search.cc.

Macro Definition Documentation

◆ MENU_BORDER

#define MENU_BORDER   (int)(0.3f * U.widget_unit)

Definition at line 46 of file interface_region_search.cc.

◆ SEARCH_ITEMS

#define SEARCH_ITEMS   10

Definition at line 91 of file interface_region_search.cc.

Function Documentation

◆ str_tolower_titlecaps_ascii()

static void str_tolower_titlecaps_ascii ( char *  str,
const size_t  len 
)
static

Similar to Python's str.title except...

  • we know words are upper case and ascii only.
  • '_' are replaces by spaces.

Definition at line 872 of file interface_region_search.cc.

References ELEM, len, and str.

Referenced by ui_searchbox_region_draw_cb__operator().

◆ ui_but_search_refresh()

void ui_but_search_refresh ( uiButSearch but)

◆ UI_search_item_add()

bool UI_search_item_add ( uiSearchItems items,
const char *  name,
void poin,
int  iconid,
int  but_flag,
uint8_t  name_prefix_offset 
)

◆ UI_search_items_find_index()

int UI_search_items_find_index ( uiSearchItems items,
const char *  name 
)

◆ ui_searchbox_apply()

bool ui_searchbox_apply ( uiBut but,
struct ARegion region 
)

String validated to be of correct length (but->hardmax).

Definition at line 272 of file interface_region_search.cc.

References BLI_assert, BLI_strncpy(), data, uiBut::editstr, uiBut::hardmax, uiButSearch::item_active, ARegion::regiondata, uiBut::type, UI_BTYPE_SEARCH_MENU, and UI_SEP_CHAR.

Referenced by ui_textedit_end().

◆ ui_searchbox_autocomplete()

int ui_searchbox_autocomplete ( bContext C,
ARegion region,
uiBut but,
char *  str 
)

◆ ui_searchbox_butrect()

static void ui_searchbox_butrect ( rcti r_rect,
uiSearchboxData data,
int  itemnr 
)
static

◆ ui_searchbox_create_generic()

ARegion* ui_searchbox_create_generic ( struct bContext C,
struct ARegion butregion,
uiButSearch search_but 
)

Search-box for string button.

Definition at line 861 of file interface_region_search.cc.

References C, and ui_searchbox_create_generic_ex().

Referenced by template_common_search_menu(), ui_but_add_search(), UI_but_func_search_set(), and uiDefSearchButO_ptr().

◆ ui_searchbox_create_generic_ex()

static ARegion* ui_searchbox_create_generic_ex ( bContext C,
ARegion butregion,
uiButSearch search_but,
const bool  use_shortcut_sep 
)
static

◆ ui_searchbox_create_menu()

ARegion* ui_searchbox_create_menu ( bContext C,
ARegion butregion,
uiButSearch search_but 
)

◆ ui_searchbox_create_operator()

ARegion* ui_searchbox_create_operator ( bContext C,
ARegion butregion,
uiButSearch search_but 
)

◆ ui_searchbox_event()

bool ui_searchbox_event ( bContext C,
ARegion region,
uiBut but,
ARegion butregion,
const wmEvent event 
)

◆ ui_searchbox_find_index()

int ui_searchbox_find_index ( ARegion region,
const char *  name 
)

Definition at line 259 of file interface_region_search.cc.

References data, ARegion::regiondata, and UI_search_items_find_index().

Referenced by ui_textedit_end().

◆ ui_searchbox_free()

void ui_searchbox_free ( bContext C,
ARegion region 
)

Definition at line 979 of file interface_region_search.cc.

References C, CTX_wm_screen(), and ui_region_temp_remove().

Referenced by ui_textedit_end().

◆ ui_searchbox_inside()

bool ui_searchbox_inside ( ARegion region,
const int  xy[2] 
)

◆ ui_searchbox_region_draw_cb__menu()

static void ui_searchbox_region_draw_cb__menu ( const bContext UNUSEDC,
ARegion UNUSEDregion 
)
static

Definition at line 984 of file interface_region_search.cc.

Referenced by ui_searchbox_create_menu().

◆ ui_searchbox_region_draw_cb__operator()

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

◆ ui_searchbox_region_draw_fn()

static void ui_searchbox_region_draw_fn ( const bContext C,
ARegion region 
)
static

◆ ui_searchbox_region_free_fn()

static void ui_searchbox_region_free_fn ( ARegion region)
static

Definition at line 671 of file interface_region_search.cc.

References Freestyle::a, data, MEM_freeN, and ARegion::regiondata.

Referenced by ui_searchbox_create_generic_ex().

◆ ui_searchbox_select()

static void ui_searchbox_select ( bContext C,
ARegion region,
uiBut but,
int  step 
)
static

◆ UI_searchbox_size_x()

int UI_searchbox_size_x ( void  )

◆ UI_searchbox_size_y()

int UI_searchbox_size_y ( void  )

◆ ui_searchbox_update()

void ui_searchbox_update ( struct bContext C,
struct ARegion region,
uiBut but,
bool  reset 
)

◆ ui_searchbox_update_fn()

static void ui_searchbox_update_fn ( bContext C,
uiButSearch search_but,
const char *  str,
uiSearchItems items 
)
static

◆ wm_searchbox_tooltip_init()

static struct ARegion* wm_searchbox_tooltip_init ( struct bContext C,
struct ARegion region,
int *  UNUSEDr_pass,
double UNUSEDpass_delay,
bool r_exit_on_event 
)
static