Blender  V3.3
Classes
interface_region_menu_popup.cc File Reference
#include <cstdarg>
#include <cstdlib>
#include <cstring>
#include "MEM_guardedalloc.h"
#include "DNA_userdef_types.h"
#include "BLI_listbase.h"
#include "BLI_math.h"
#include "BLI_ghash.h"
#include "BLI_rect.h"
#include "BLI_string.h"
#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_report.h"
#include "BKE_screen.h"
#include "WM_api.h"
#include "WM_types.h"
#include "RNA_access.h"
#include "UI_interface.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  uiPopupMenu
 

Functions

Utility Functions
bool ui_but_menu_step_poll (const uiBut *but)
 
int ui_but_menu_step (uiBut *but, int direction)
 
Popup Menu Memory

Support menu-memory, a feature that positions the cursor over the previously used menu item.

Note
This is stored for each unique menu title.
static uint ui_popup_string_hash (const char *str, const bool use_sep)
 
uint ui_popup_menu_hash (const char *str)
 
static uiButui_popup_menu_memory__internal (uiBlock *block, uiBut *but)
 
uiButui_popup_menu_memory_get (uiBlock *block)
 
void ui_popup_menu_memory_set (uiBlock *block, uiBut *but)
 
Popup Menu with Callback or String
static uiBlockui_block_func_POPUP (bContext *C, uiPopupBlockHandle *handle, void *arg_pup)
 
uiPopupBlockHandleui_popup_menu_create (bContext *C, ARegion *butregion, uiBut *but, uiMenuCreateFunc menu_func, void *arg)
 
Popup Menu API with begin & end
uiPopupMenuUI_popup_menu_begin_ex (bContext *C, const char *title, const char *block_name, int icon)
 
uiPopupMenuUI_popup_menu_begin (bContext *C, const char *title, int icon)
 
void UI_popup_menu_but_set (uiPopupMenu *pup, struct ARegion *butregion, uiBut *but)
 
void UI_popup_menu_end (bContext *C, uiPopupMenu *pup)
 
bool UI_popup_menu_end_or_cancel (bContext *C, uiPopupMenu *pup)
 
uiLayoutUI_popup_menu_layout (uiPopupMenu *pup)
 
Standard Popup Menus
void UI_popup_menu_reports (bContext *C, ReportList *reports)
 
int UI_popup_menu_invoke (bContext *C, const char *idname, ReportList *reports)
 
Popup Block API
void UI_popup_block_invoke_ex (bContext *C, uiBlockCreateFunc func, void *arg, uiFreeArgFunc arg_free, bool can_refresh)
 
void UI_popup_block_invoke (bContext *C, uiBlockCreateFunc func, void *arg, uiFreeArgFunc arg_free)
 
void UI_popup_block_ex (bContext *C, uiBlockCreateFunc func, uiBlockHandleFunc popup_func, uiBlockCancelFunc cancel_func, void *arg, wmOperator *op)
 
void UI_popup_block_close (bContext *C, wmWindow *win, uiBlock *block)
 
bool UI_popup_block_name_exists (const bScreen *screen, const char *name)
 

Detailed Description

PopUp Menu Region

Definition in file interface_region_menu_popup.cc.

Function Documentation

◆ ui_block_func_POPUP()

static uiBlock* ui_block_func_POPUP ( bContext C,
uiPopupBlockHandle handle,
void arg_pup 
)
static

◆ ui_but_menu_step()

int ui_but_menu_step ( uiBut but,
int  direction 
)

◆ ui_but_menu_step_poll()

bool ui_but_menu_step_poll ( const uiBut but)

◆ UI_popup_block_close()

void UI_popup_block_close ( bContext C,
wmWindow win,
uiBlock block 
)

◆ UI_popup_block_ex()

void UI_popup_block_ex ( bContext C,
uiBlockCreateFunc  func,
uiBlockHandleFunc  popup_func,
uiBlockCancelFunc  cancel_func,
void arg,
wmOperator op 
)

◆ UI_popup_block_invoke()

void UI_popup_block_invoke ( bContext C,
uiBlockCreateFunc  func,
void arg,
uiFreeArgFunc  arg_free 
)

◆ UI_popup_block_invoke_ex()

void UI_popup_block_invoke_ex ( bContext C,
uiBlockCreateFunc  func,
void arg,
uiFreeArgFunc  arg_free,
bool  can_refresh 
)

◆ UI_popup_block_name_exists()

bool UI_popup_block_name_exists ( const bScreen screen,
const char *  name 
)

Definition at line 669 of file interface_region_menu_popup.cc.

References LISTBASE_FOREACH, bScreen::regionbase, and STREQ.

◆ UI_popup_menu_begin()

uiPopupMenu* UI_popup_menu_begin ( bContext C,
const char *  title,
int  icon 
)

◆ UI_popup_menu_begin_ex()

uiPopupMenu* UI_popup_menu_begin_ex ( struct bContext C,
const char *  title,
const char *  block_name,
int  icon 
)

◆ UI_popup_menu_but_set()

void UI_popup_menu_but_set ( uiPopupMenu pup,
struct ARegion butregion,
uiBut but 
)

Setting the button makes the popup open from the button instead of the cursor.

Definition at line 442 of file interface_region_menu_popup.cc.

References uiPopupMenu::but, and uiPopupMenu::butregion.

Referenced by ui_item_menu_hold().

◆ ui_popup_menu_create()

uiPopupBlockHandle* ui_popup_menu_create ( bContext C,
ARegion butregion,
uiBut but,
uiMenuCreateFunc  menu_func,
void arg 
)

◆ UI_popup_menu_end()

void UI_popup_menu_end ( struct bContext C,
struct uiPopupMenu pup 
)

◆ UI_popup_menu_end_or_cancel()

bool UI_popup_menu_end_or_cancel ( bContext C,
uiPopupMenu pup 
)

◆ ui_popup_menu_hash()

uint ui_popup_menu_hash ( const char *  str)

Definition at line 104 of file interface_region_menu_popup.cc.

References BLI_ghashutil_strhash, and str.

Referenced by UI_pie_menu_begin(), and UI_popup_menu_begin_ex().

◆ UI_popup_menu_invoke()

int UI_popup_menu_invoke ( bContext C,
const char *  idname,
ReportList reports 
)

◆ UI_popup_menu_layout()

uiLayout* UI_popup_menu_layout ( uiPopupMenu pup)

◆ ui_popup_menu_memory__internal()

static uiBut* ui_popup_menu_memory__internal ( uiBlock block,
uiBut but 
)
static

◆ ui_popup_menu_memory_get()

uiBut* ui_popup_menu_memory_get ( uiBlock block)

Definition at line 147 of file interface_region_menu_popup.cc.

References ui_popup_menu_memory__internal().

Referenced by ui_block_func_POPUP().

◆ ui_popup_menu_memory_set()

void ui_popup_menu_memory_set ( uiBlock block,
uiBut but 
)

Definition at line 152 of file interface_region_menu_popup.cc.

References ui_popup_menu_memory__internal().

Referenced by button_activate_exit().

◆ UI_popup_menu_reports()

void UI_popup_menu_reports ( bContext C,
ReportList reports 
)

◆ ui_popup_string_hash()

static uint ui_popup_string_hash ( const char *  str,
const bool  use_sep 
)
static