Blender  V3.3
interface_region_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_rect.h"
#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_screen.h"
#include "WM_api.h"
#include "WM_types.h"
#include "UI_interface.h"
#include "ED_screen.h"
#include "interface_intern.h"
#include "interface_regions_intern.h"

Go to the source code of this file.

Functions

Utility Functions
void ui_popup_translate (ARegion *region, const int mdiff[2])
 
static void ui_popup_block_position (wmWindow *window, ARegion *butregion, uiBut *but, uiBlock *block)
 
Menu Block Creation
static void ui_block_region_refresh (const bContext *C, ARegion *region)
 
static void ui_block_region_draw (const bContext *C, ARegion *region)
 
static void ui_block_region_popup_window_listener (const wmRegionListenerParams *params)
 
static void ui_popup_block_clip (wmWindow *window, uiBlock *block)
 
void ui_popup_block_scrolltest (uiBlock *block)
 
static void ui_popup_block_remove (bContext *C, uiPopupBlockHandle *handle)
 
uiBlockui_popup_block_refresh (bContext *C, uiPopupBlockHandle *handle, ARegion *butregion, uiBut *but)
 
uiPopupBlockHandleui_popup_block_create (bContext *C, ARegion *butregion, uiBut *but, uiBlockCreateFunc create_func, uiBlockHandleCreateFunc handle_create_func, void *arg, uiFreeArgFunc arg_free)
 
void ui_popup_block_free (bContext *C, uiPopupBlockHandle *handle)
 

Detailed Description

PopUp Region (Generic)

Definition in file interface_region_popup.cc.

Function Documentation

◆ ui_block_region_draw()

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

Definition at line 387 of file interface_region_popup.cc.

References C, LISTBASE_FOREACH, UI_block_draw(), and ARegion::uiblocks.

Referenced by ui_popup_block_create().

◆ ui_block_region_popup_window_listener()

static void ui_block_region_popup_window_listener ( const wmRegionListenerParams params)
static

Use to refresh centered popups on screen resizing (for splash).

Definition at line 397 of file interface_region_popup.cc.

References wmNotifier::action, wmNotifier::category, ED_region_tag_refresh_ui(), NA_EDITED, NC_WINDOW, and params.

Referenced by ui_popup_block_create().

◆ ui_block_region_refresh()

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

◆ ui_popup_block_clip()

static void ui_popup_block_clip ( wmWindow window,
uiBlock block 
)
static

◆ ui_popup_block_create()

uiPopupBlockHandle* ui_popup_block_create ( bContext C,
ARegion butregion,
uiBut but,
uiBlockCreateFunc  create_func,
uiBlockHandleCreateFunc  handle_create_func,
void arg,
uiFreeArgFunc  arg_free 
)

◆ ui_popup_block_free()

void ui_popup_block_free ( bContext C,
uiPopupBlockHandle handle 
)

◆ ui_popup_block_position()

static void ui_popup_block_position ( wmWindow window,
ARegion butregion,
uiBut but,
uiBlock block 
)
static

◆ ui_popup_block_refresh()

uiBlock* ui_popup_block_refresh ( struct bContext C,
uiPopupBlockHandle handle,
struct ARegion butregion,
uiBut but 
)

Called for creating new popups and refreshing existing ones.

Definition at line 538 of file interface_region_popup.cc.

References uiPopupBlockCreate::arg, uiBlock::aspect, BLI_addhead(), BLI_assert, BLI_rctf_recenter(), BLI_rctf_size_x(), BLI_rctf_size_y(), uiBut::block, uiBlock::bounds_type, uiBlock::buttons, C, uiPopupBlockHandle::can_refresh, copy_v2_v2(), create_func(), uiPopupBlockCreate::create_func, CTX_wm_window(), uiBlock::direction, uiPopupBlockHandle::direction, ED_region_floating_init(), ED_region_tag_redraw(), ED_region_update_rect(), ELEM, uiBlock::endblock, wmWindow::event_last_handled, uiPopupBlockCreate::event_xy, wmWindow::eventstate, ListBase::first, uiBlock::flag, PieMenuData::flags, uiBlock::handle, uiPopupBlockCreate::handle_create_func, LISTBASE_FOREACH, MEM_freeN, offset, uiBlock::oldblock, PieMenuData::pie_center_init, PieMenuData::pie_center_spawned, uiBlock::pie_data, uiPopupBlockHandle::popup_create_vars, uiPopupBlockHandle::prev_block_rect, uiBlock::rect, uiPopupBlockHandle::refresh, uiPopupBlockHandle::region, ARegion::regiondata, uiBlock::saferct, uiBlock::safety, uiSafetyRct::safety, uiPopupBlockHandle::scrolloffset, UI_BLOCK_BOUNDS_POPUP_CENTER, ui_block_calc_pie_segment(), UI_block_end_ex(), UI_BLOCK_LOOP, UI_BLOCK_POPOVER, UI_BLOCK_POPUP, UI_BLOCK_RADIAL, UI_BLOCK_THEME_STYLE_POPUP, UI_block_theme_style_set(), UI_block_translate(), UI_block_update_from_old(), UI_blocklist_free_inactive(), UI_DIR_DOWN, UI_DIR_UP, UI_PIE_INITIAL_DIRECTION, ui_popup_block_clip(), ui_popup_block_position(), ui_popup_block_scrolltest(), UI_POPUP_MARGIN, UI_POPUP_MENU_TOP, UI_RADIAL_NONE, UI_SCREEN_MARGIN, ARegion::uiblocks, UNPACK2, uiBlock::winmat, ARegion::winrct, WM_window_pixels_x(), WM_window_pixels_y(), wmGetProjectionMatrix(), rcti::xmax, rctf::xmax, rcti::xmin, rctf::xmin, rcti::ymax, rctf::ymax, rcti::ymin, and rctf::ymin.

Referenced by ui_block_region_refresh(), and ui_popup_block_create().

◆ ui_popup_block_remove()

static void ui_popup_block_remove ( bContext C,
uiPopupBlockHandle handle 
)
static

◆ ui_popup_block_scrolltest()

void ui_popup_block_scrolltest ( uiBlock block)

◆ ui_popup_translate()

void ui_popup_translate ( struct ARegion region,
const int  mdiff[2] 
)