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 uiBut * ui_popup_menu_memory__internal (uiBlock *block, uiBut *but)
 
uiBut * ui_popup_menu_memory_get (uiBlock *block)
 
void ui_popup_menu_memory_set (uiBlock *block, uiBut *but)
 
Popup Menu with Callback or String
static uiBlock * ui_block_func_POPUP (bContext *C, uiPopupBlockHandle *handle, void *arg_pup)
 
uiPopupBlockHandle * ui_popup_menu_create (bContext *C, ARegion *butregion, uiBut *but, uiMenuCreateFunc menu_func, void *arg)
 
Popup Menu API with begin & end
uiPopupMenu * UI_popup_menu_begin_ex (bContext *C, const char *title, const char *block_name, int icon)
 
uiPopupMenu * UI_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)
 
uiLayout * UI_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