Blender  V2.93
Classes | Macros
interface_region_search.c File Reference
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
#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
 
typedef struct uiSearchboxData uiSearchboxData
 
bool UI_search_item_add (uiSearchItems *items, const char *name, void *poin, int iconid, int state, const uint8_t name_prefix_offset)
 
int UI_searchbox_size_y (void)
 
int UI_searchbox_size_x (void)
 
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, int x, int y)
 
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_cb (const bContext *C, ARegion *region)
 
static void ui_searchbox_region_free_cb (ARegion *region)
 
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.c.

Macro Definition Documentation

◆ MENU_BORDER

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

Definition at line 62 of file interface_region_search.c.

◆ SEARCH_ITEMS

#define SEARCH_ITEMS   10

Definition at line 107 of file interface_region_search.c.

Typedef Documentation

◆ uiSearchboxData

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 897 of file interface_region_search.c.

References ELEM, len, and str.

Referenced by ui_searchbox_region_draw_cb__operator().

◆ ui_but_search_refresh()

void ui_but_search_refresh ( uiButSearch search_but)

◆ UI_search_item_add()

bool UI_search_item_add ( uiSearchItems items,
const char *  name,
void *  poin,
int  iconid,
int  state,
const 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,
ARegion region 
)

◆ 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 ( bContext C,
ARegion butregion,
uiButSearch search_but 
)

◆ 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 286 of file interface_region_search.c.

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 1007 of file interface_region_search.c.

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

Referenced by ui_textedit_end().

◆ ui_searchbox_inside()

bool ui_searchbox_inside ( ARegion region,
int  x,
int  y 
)

◆ ui_searchbox_region_draw_cb()

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

◆ ui_searchbox_region_draw_cb__menu()

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

Definition at line 1012 of file interface_region_search.c.

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_free_cb()

static void ui_searchbox_region_free_cb ( ARegion region)
static

Definition at line 700 of file interface_region_search.c.

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

Referenced by ui_searchbox_create_generic().

◆ 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 ( bContext C,
ARegion region,
uiBut but,
const 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