Cleanup: use event parameters for functions that create key-map items
Replace 5 arguments with a single struct as the same arguments are used in many places. This didn't read well and was confusing with both arguments named `val` & `value` in the case of WM_modalkeymap_add_item.
This commit is contained in:
		@@ -202,7 +202,14 @@ static uiBlock *menu_add_shortcut(bContext *C, ARegion *region, void *arg)
 | 
			
		||||
  /* XXX this guess_opname can potentially return a different keymap
 | 
			
		||||
   * than being found on adding later... */
 | 
			
		||||
  wmKeyMap *km = WM_keymap_guess_opname(C, idname);
 | 
			
		||||
  wmKeyMapItem *kmi = WM_keymap_add_item(km, idname, EVT_AKEY, KM_PRESS, 0, 0, KM_ANY);
 | 
			
		||||
  wmKeyMapItem *kmi = WM_keymap_add_item(km,
 | 
			
		||||
                                         idname,
 | 
			
		||||
                                         &(const KeyMapItem_Params){
 | 
			
		||||
                                             .type = EVT_AKEY,
 | 
			
		||||
                                             .value = KM_PRESS,
 | 
			
		||||
                                             .modifier = 0,
 | 
			
		||||
                                             .direction = KM_ANY,
 | 
			
		||||
                                         });
 | 
			
		||||
  const int kmi_id = kmi->id;
 | 
			
		||||
 | 
			
		||||
  /* This takes ownership of prop, or prop can be NULL for reset. */
 | 
			
		||||
 
 | 
			
		||||
@@ -50,12 +50,30 @@ void viewdolly_modal_keymap(wmKeyConfig *keyconf)
 | 
			
		||||
 | 
			
		||||
  /* disabled mode switching for now, can re-implement better, later on */
 | 
			
		||||
#if 0
 | 
			
		||||
  WM_modalkeymap_add_item(
 | 
			
		||||
      keymap, LEFTMOUSE, KM_RELEASE, KM_ANY, 0, KM_ANY, VIEWROT_MODAL_SWITCH_ROTATE);
 | 
			
		||||
  WM_modalkeymap_add_item(
 | 
			
		||||
      keymap, LEFTCTRLKEY, KM_RELEASE, KM_ANY, 0, KM_ANY, VIEWROT_MODAL_SWITCH_ROTATE);
 | 
			
		||||
  WM_modalkeymap_add_item(
 | 
			
		||||
      keymap, LEFTSHIFTKEY, KM_PRESS, KM_ANY, 0, KM_ANY, VIEWROT_MODAL_SWITCH_MOVE);
 | 
			
		||||
  WM_modalkeymap_add_item(keymap,
 | 
			
		||||
                          &(const KeyMapItem_Params){
 | 
			
		||||
                              .type = LEFTMOUSE,
 | 
			
		||||
                              .value = KM_RELEASE,
 | 
			
		||||
                              .modifier = KM_ANY,
 | 
			
		||||
                              .direction = KM_ANY,
 | 
			
		||||
                          },
 | 
			
		||||
                          VIEWROT_MODAL_SWITCH_ROTATE);
 | 
			
		||||
  WM_modalkeymap_add_item(keymap,
 | 
			
		||||
                          &(const KeyMapItem_Params){
 | 
			
		||||
                              .type = EVT_LEFTCTRLKEY,
 | 
			
		||||
                              .value = KM_RELEASE,
 | 
			
		||||
                              .modifier = KM_ANY,
 | 
			
		||||
                              .direction = KM_ANY,
 | 
			
		||||
                          },
 | 
			
		||||
                          VIEWROT_MODAL_SWITCH_ROTATE);
 | 
			
		||||
  WM_modalkeymap_add_item(keymap,
 | 
			
		||||
                          &(const KeyMapItem_Params){
 | 
			
		||||
                              .type = EVT_LEFTSHIFTKEY,
 | 
			
		||||
                              .value = KM_PRESS,
 | 
			
		||||
                              .modifier = KM_ANY,
 | 
			
		||||
                              .direction = KM_ANY,
 | 
			
		||||
                          },
 | 
			
		||||
                          VIEWROT_MODAL_SWITCH_MOVE);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
  /* assign map to operators */
 | 
			
		||||
 
 | 
			
		||||
@@ -43,15 +43,50 @@ void viewmove_modal_keymap(wmKeyConfig *keyconf)
 | 
			
		||||
  keymap = WM_modalkeymap_ensure(keyconf, "View3D Move Modal", modal_items);
 | 
			
		||||
 | 
			
		||||
  /* items for modal map */
 | 
			
		||||
  WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_RELEASE, KM_ANY, 0, KM_ANY, VIEW_MODAL_CONFIRM);
 | 
			
		||||
  WM_modalkeymap_add_item(keymap, EVT_ESCKEY, KM_PRESS, KM_ANY, 0, KM_ANY, VIEW_MODAL_CONFIRM);
 | 
			
		||||
 | 
			
		||||
  WM_modalkeymap_add_item(keymap,
 | 
			
		||||
                          &(const KeyMapItem_Params){
 | 
			
		||||
                              .type = MIDDLEMOUSE,
 | 
			
		||||
                              .value = KM_RELEASE,
 | 
			
		||||
                              .modifier = KM_ANY,
 | 
			
		||||
                              .direction = KM_ANY,
 | 
			
		||||
                          },
 | 
			
		||||
                          VIEW_MODAL_CONFIRM);
 | 
			
		||||
  WM_modalkeymap_add_item(keymap,
 | 
			
		||||
                          &(const KeyMapItem_Params){
 | 
			
		||||
                              .type = EVT_ESCKEY,
 | 
			
		||||
                              .value = KM_PRESS,
 | 
			
		||||
                              .modifier = KM_ANY,
 | 
			
		||||
                              .direction = KM_ANY,
 | 
			
		||||
                          },
 | 
			
		||||
                          VIEW_MODAL_CONFIRM);
 | 
			
		||||
 | 
			
		||||
  /* disabled mode switching for now, can re-implement better, later on */
 | 
			
		||||
#if 0
 | 
			
		||||
  WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_PRESS, KM_ANY, 0, VIEWROT_MODAL_SWITCH_ZOOM);
 | 
			
		||||
  WM_modalkeymap_add_item(keymap, LEFTCTRLKEY, KM_PRESS, KM_ANY, 0, VIEWROT_MODAL_SWITCH_ZOOM);
 | 
			
		||||
  WM_modalkeymap_add_item(
 | 
			
		||||
      keymap, LEFTSHIFTKEY, KM_RELEASE, KM_ANY, 0, VIEWROT_MODAL_SWITCH_ROTATE);
 | 
			
		||||
  WM_modalkeymap_add_item(keymap,
 | 
			
		||||
                          &(const KeyMapItem_Params){
 | 
			
		||||
                              .type = LEFTMOUSE,
 | 
			
		||||
                              .value = KM_PRESS,
 | 
			
		||||
                              .modifier = KM_ANY,
 | 
			
		||||
                              .direction = KM_ANY,
 | 
			
		||||
                          },
 | 
			
		||||
                          VIEWROT_MODAL_SWITCH_ZOOM);
 | 
			
		||||
  WM_modalkeymap_add_item(keymap,
 | 
			
		||||
                          &(const KeyMapItem_Params){
 | 
			
		||||
                              .type = EVT_LEFTCTRLKEY,
 | 
			
		||||
                              .value = KM_PRESS,
 | 
			
		||||
                              .modifier = KM_ANY,
 | 
			
		||||
                              .direction = KM_ANY,
 | 
			
		||||
                          },
 | 
			
		||||
                          VIEWROT_MODAL_SWITCH_ZOOM);
 | 
			
		||||
  WM_modalkeymap_add_item(keymap,
 | 
			
		||||
                          &(const KeyMapItem_Params){
 | 
			
		||||
                              .type = EVT_LEFTSHIFTKEY,
 | 
			
		||||
                              .value = KM_RELEASE,
 | 
			
		||||
                              .modifier = KM_ANY,
 | 
			
		||||
                              .direction = KM_ANY,
 | 
			
		||||
                          },
 | 
			
		||||
                          VIEWROT_MODAL_SWITCH_ROTATE);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
  /* assign map to operators */
 | 
			
		||||
 
 | 
			
		||||
@@ -46,9 +46,30 @@ void viewrotate_modal_keymap(wmKeyConfig *keyconf)
 | 
			
		||||
 | 
			
		||||
  /* disabled mode switching for now, can re-implement better, later on */
 | 
			
		||||
#if 0
 | 
			
		||||
  WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_PRESS, KM_ANY, 0, VIEWROT_MODAL_SWITCH_ZOOM);
 | 
			
		||||
  WM_modalkeymap_add_item(keymap, LEFTCTRLKEY, KM_PRESS, KM_ANY, 0, VIEWROT_MODAL_SWITCH_ZOOM);
 | 
			
		||||
  WM_modalkeymap_add_item(keymap, LEFTSHIFTKEY, KM_PRESS, KM_ANY, 0, VIEWROT_MODAL_SWITCH_MOVE);
 | 
			
		||||
  WM_modalkeymap_add_item(keymap,
 | 
			
		||||
                          &(const KeyMapItem_Params){
 | 
			
		||||
                              .type = LEFTMOUSE,
 | 
			
		||||
                              .value = KM_PRESS,
 | 
			
		||||
                              .modifier = KM_ANY,
 | 
			
		||||
                              .direction = KM_ANY,
 | 
			
		||||
                          },
 | 
			
		||||
                          VIEWROT_MODAL_SWITCH_ZOOM);
 | 
			
		||||
  WM_modalkeymap_add_item(keymap,
 | 
			
		||||
                          &(const KeyMapItem_Params){
 | 
			
		||||
                              .type = EVT_LEFTCTRLKEY,
 | 
			
		||||
                              .value = KM_PRESS,
 | 
			
		||||
                              .modifier = KM_ANY,
 | 
			
		||||
                              .direction = KM_ANY,
 | 
			
		||||
                          },
 | 
			
		||||
                          VIEWROT_MODAL_SWITCH_ZOOM);
 | 
			
		||||
  WM_modalkeymap_add_item(keymap,
 | 
			
		||||
                          &(const KeyMapItem_Params){
 | 
			
		||||
                              .type = EVT_LEFTSHIFTKEY,
 | 
			
		||||
                              .value = KM_PRESS,
 | 
			
		||||
                              .modifier = KM_ANY,
 | 
			
		||||
                              .direction = KM_ANY,
 | 
			
		||||
                          },
 | 
			
		||||
                          VIEWROT_MODAL_SWITCH_MOVE);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
  /* assign map to operators */
 | 
			
		||||
 
 | 
			
		||||
@@ -50,9 +50,30 @@ void viewzoom_modal_keymap(wmKeyConfig *keyconf)
 | 
			
		||||
 | 
			
		||||
  /* disabled mode switching for now, can re-implement better, later on */
 | 
			
		||||
#if 0
 | 
			
		||||
  WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_RELEASE, KM_ANY, 0, VIEWROT_MODAL_SWITCH_ROTATE);
 | 
			
		||||
  WM_modalkeymap_add_item(keymap, LEFTCTRLKEY, KM_RELEASE, KM_ANY, 0, VIEWROT_MODAL_SWITCH_ROTATE);
 | 
			
		||||
  WM_modalkeymap_add_item(keymap, LEFTSHIFTKEY, KM_PRESS, KM_ANY, 0, VIEWROT_MODAL_SWITCH_MOVE);
 | 
			
		||||
  WM_modalkeymap_add_item(keymap,
 | 
			
		||||
                          &(const KeyMapItem_Params){
 | 
			
		||||
                              .type = LEFTMOUSE,
 | 
			
		||||
                              .value = KM_RELEASE,
 | 
			
		||||
                              .modifier = KM_ANY,
 | 
			
		||||
                              .direction = KM_ANY,
 | 
			
		||||
                          },
 | 
			
		||||
                          VIEWROT_MODAL_SWITCH_ROTATE);
 | 
			
		||||
  WM_modalkeymap_add_item(keymap,
 | 
			
		||||
                          &(const KeyMapItem_Params){
 | 
			
		||||
                              .type = EVT_LEFTCTRLKEY,
 | 
			
		||||
                              .value = KM_RELEASE,
 | 
			
		||||
                              .modifier = KM_ANY,
 | 
			
		||||
                              .direction = KM_ANY,
 | 
			
		||||
                          },
 | 
			
		||||
                          VIEWROT_MODAL_SWITCH_ROTATE);
 | 
			
		||||
  WM_modalkeymap_add_item(keymap,
 | 
			
		||||
                          &(const KeyMapItem_Params){
 | 
			
		||||
                              .type = EVT_LEFTSHIFTKEY,
 | 
			
		||||
                              .value = KM_PRESS,
 | 
			
		||||
                              .modifier = KM_ANY,
 | 
			
		||||
                              .direction = KM_ANY,
 | 
			
		||||
                          },
 | 
			
		||||
                          VIEWROT_MODAL_SWITCH_MOVE);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
  /* assign map to operators */
 | 
			
		||||
 
 | 
			
		||||
@@ -704,17 +704,78 @@ wmKeyMap *transform_modal_keymap(wmKeyConfig *keyconf)
 | 
			
		||||
  /* Default modal map values:
 | 
			
		||||
   *
 | 
			
		||||
   * \code{.c}
 | 
			
		||||
   * WM_modalkeymap_add_item(keymap, EVT_RETKEY, KM_PRESS, KM_ANY, 0, TFM_MODAL_CONFIRM);
 | 
			
		||||
   * WM_modalkeymap_add_item(keymap, EVT_ESCKEY, KM_PRESS, KM_ANY, 0, TFM_MODAL_CANCEL);
 | 
			
		||||
   * WM_modalkeymap_add_item(keymap, EVT_PAGEUPKEY, KM_PRESS, KM_ANY, 0, TFM_MODAL_AUTOIK_LEN_INC);
 | 
			
		||||
   * WM_modalkeymap_add_item(
 | 
			
		||||
   *     keymap, EVT_PAGEDOWNKEY, KM_PRESS, KM_ANY, 0, TFM_MODAL_AUTOIK_LEN_DEC);
 | 
			
		||||
   * WM_modalkeymap_add_item(keymap, EVT_GKEY, KM_PRESS, KM_ANY, 0, TFM_MODAL_TRANSLATE);
 | 
			
		||||
   * WM_modalkeymap_add_item(keymap, EVT_RKEY, KM_PRESS, KM_ANY, 0, TFM_MODAL_ROTATE);
 | 
			
		||||
   * WM_modalkeymap_add_item(keymap, EVT_SKEY, KM_PRESS, KM_ANY, 0, TFM_MODAL_RESIZE);
 | 
			
		||||
   * WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_PRESS, KM_ANY, 0, TFM_MODAL_AUTOCONSTRAINT);
 | 
			
		||||
   * WM_modalkeymap_add_item(
 | 
			
		||||
   *     keymap, MIDDLEMOUSE, KM_PRESS, KM_SHIFT, 0, TFM_MODAL_AUTOCONSTRAINTPLANE);
 | 
			
		||||
   * WM_modalkeymap_add_item(keymap,
 | 
			
		||||
   *                         &(const KeyMapItem_Params){
 | 
			
		||||
   *                             .type = EVT_RETKEY,
 | 
			
		||||
   *                             .value = KM_PRESS,
 | 
			
		||||
   *                             .modifier = KM_ANY,
 | 
			
		||||
   *                             .direction = KM_ANY,
 | 
			
		||||
   *                         },
 | 
			
		||||
   *                         TFM_MODAL_CONFIRM);
 | 
			
		||||
   * WM_modalkeymap_add_item(keymap,
 | 
			
		||||
   *                         &(const KeyMapItem_Params){
 | 
			
		||||
   *                             .type = EVT_ESCKEY,
 | 
			
		||||
   *                             .value = KM_PRESS,
 | 
			
		||||
   *                             .modifier = KM_ANY,
 | 
			
		||||
   *                             .direction = KM_ANY,
 | 
			
		||||
   *                         },
 | 
			
		||||
   *                         TFM_MODAL_CANCEL);
 | 
			
		||||
   * WM_modalkeymap_add_item(keymap,
 | 
			
		||||
   *                         &(const KeyMapItem_Params){
 | 
			
		||||
   *                             .type = EVT_PAGEUPKEY,
 | 
			
		||||
   *                             .value = KM_PRESS,
 | 
			
		||||
   *                             .modifier = KM_ANY,
 | 
			
		||||
   *                             .direction = KM_ANY,
 | 
			
		||||
   *                         },
 | 
			
		||||
   *                         TFM_MODAL_AUTOIK_LEN_INC);
 | 
			
		||||
   * WM_modalkeymap_add_item(keymap,
 | 
			
		||||
   *                         &(const KeyMapItem_Params){
 | 
			
		||||
   *                             .type = EVT_PAGEDOWNKEY,
 | 
			
		||||
   *                             .value = KM_PRESS,
 | 
			
		||||
   *                             .modifier = KM_ANY,
 | 
			
		||||
   *                             .direction = KM_ANY,
 | 
			
		||||
   *                         },
 | 
			
		||||
   *                         TFM_MODAL_AUTOIK_LEN_DEC);
 | 
			
		||||
   * WM_modalkeymap_add_item(keymap,
 | 
			
		||||
   *                         &(const KeyMapItem_Params){
 | 
			
		||||
   *                             .type = EVT_GKEY,
 | 
			
		||||
   *                             .value = KM_PRESS,
 | 
			
		||||
   *                             .modifier = KM_ANY,
 | 
			
		||||
   *                             .direction = KM_ANY,
 | 
			
		||||
   *                         },
 | 
			
		||||
   *                         TFM_MODAL_TRANSLATE);
 | 
			
		||||
   * WM_modalkeymap_add_item(keymap,
 | 
			
		||||
   *                         &(const KeyMapItem_Params){
 | 
			
		||||
   *                             .type = EVT_RKEY,
 | 
			
		||||
   *                             .value = KM_PRESS,
 | 
			
		||||
   *                             .modifier = KM_ANY,
 | 
			
		||||
   *                             .direction = KM_ANY,
 | 
			
		||||
   *                         },
 | 
			
		||||
   *                         TFM_MODAL_ROTATE);
 | 
			
		||||
   * WM_modalkeymap_add_item(keymap,
 | 
			
		||||
   *                         &(const KeyMapItem_Params){
 | 
			
		||||
   *                             .type = EVT_SKEY,
 | 
			
		||||
   *                             .value = KM_PRESS,
 | 
			
		||||
   *                             .modifier = KM_ANY,
 | 
			
		||||
   *                             .direction = KM_ANY,
 | 
			
		||||
   *                         },
 | 
			
		||||
   *                         TFM_MODAL_RESIZE);
 | 
			
		||||
   * WM_modalkeymap_add_item(keymap,
 | 
			
		||||
   *                         &(const KeyMapItem_Params){
 | 
			
		||||
   *                             .type = MIDDLEMOUSE,
 | 
			
		||||
   *                             .value = KM_PRESS,
 | 
			
		||||
   *                             .modifier = KM_ANY,
 | 
			
		||||
   *                             .direction = KM_ANY,
 | 
			
		||||
   *                         },
 | 
			
		||||
   *                         TFM_MODAL_AUTOCONSTRAINT);
 | 
			
		||||
   * WM_modalkeymap_add_item(keymap,
 | 
			
		||||
   *                         &(const KeyMapItem_Params){
 | 
			
		||||
   *                             .type = MIDDLEMOUSE,
 | 
			
		||||
   *                             .value = KM_PRESS,
 | 
			
		||||
   *                             .modifier = KM_SHIFT,
 | 
			
		||||
   *                             .direction = KM_ANY,
 | 
			
		||||
   *                         },
 | 
			
		||||
   *                         TFM_MODAL_AUTOCONSTRAINTPLANE);
 | 
			
		||||
   * \endcode
 | 
			
		||||
   */
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -276,7 +276,15 @@ static wmKeyMapItem *rna_KeyMap_item_new(wmKeyMap *km,
 | 
			
		||||
  WM_operator_bl_idname(idname_bl, idname);
 | 
			
		||||
 | 
			
		||||
  /* create keymap item */
 | 
			
		||||
  kmi = WM_keymap_add_item(km, idname_bl, type, value, modifier, keymodifier, direction);
 | 
			
		||||
  kmi = WM_keymap_add_item(km,
 | 
			
		||||
                           idname_bl,
 | 
			
		||||
                           &(const KeyMapItem_Params){
 | 
			
		||||
                               .type = type,
 | 
			
		||||
                               .value = value,
 | 
			
		||||
                               .modifier = modifier,
 | 
			
		||||
                               .keymodifier = keymodifier,
 | 
			
		||||
                               .direction = direction,
 | 
			
		||||
                           });
 | 
			
		||||
 | 
			
		||||
  if (!repeat) {
 | 
			
		||||
    kmi->flag |= KMI_REPEAT_IGNORE;
 | 
			
		||||
@@ -338,16 +346,23 @@ static wmKeyMapItem *rna_KeyMap_item_new_modal(wmKeyMap *km,
 | 
			
		||||
  const int modifier = keymap_item_modifier_flag_from_args(any, shift, ctrl, alt, oskey);
 | 
			
		||||
  int propvalue = 0;
 | 
			
		||||
 | 
			
		||||
  KeyMapItem_Params params = {
 | 
			
		||||
      .type = type,
 | 
			
		||||
      .value = value,
 | 
			
		||||
      .modifier = modifier,
 | 
			
		||||
      .keymodifier = keymodifier,
 | 
			
		||||
      .direction = direction,
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  /* not initialized yet, do delayed lookup */
 | 
			
		||||
  if (!km->modal_items) {
 | 
			
		||||
    kmi = WM_modalkeymap_add_item_str(
 | 
			
		||||
        km, type, value, modifier, keymodifier, direction, propvalue_str);
 | 
			
		||||
    kmi = WM_modalkeymap_add_item_str(km, ¶ms, propvalue_str);
 | 
			
		||||
  }
 | 
			
		||||
  else {
 | 
			
		||||
    if (RNA_enum_value_from_id(km->modal_items, propvalue_str, &propvalue) == 0) {
 | 
			
		||||
      BKE_report(reports, RPT_WARNING, "Property value not in enumeration");
 | 
			
		||||
    }
 | 
			
		||||
    kmi = WM_modalkeymap_add_item(km, type, value, modifier, keymodifier, direction, propvalue);
 | 
			
		||||
    kmi = WM_modalkeymap_add_item(km, ¶ms, propvalue);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (!repeat) {
 | 
			
		||||
 
 | 
			
		||||
@@ -37,6 +37,20 @@ void WM_keyconfig_update_operatortype(void);
 | 
			
		||||
 | 
			
		||||
/* Keymap */
 | 
			
		||||
 | 
			
		||||
/** Parameters for matching events, passed into functions that create key-map items. */
 | 
			
		||||
typedef struct KeyMapItem_Params {
 | 
			
		||||
  /** #wmKeyMapItem.type */
 | 
			
		||||
  int16_t type;
 | 
			
		||||
  /** #wmKeyMapItem.val */
 | 
			
		||||
  int8_t value;
 | 
			
		||||
  /** #wmKeyMapItem `ctrl, shift, alt, oskey` */
 | 
			
		||||
  int8_t modifier;
 | 
			
		||||
  /** #wmKeyMapItem.keymodifier */
 | 
			
		||||
  int16_t keymodifier;
 | 
			
		||||
  /** #wmKeyMapItem.direction */
 | 
			
		||||
  int8_t direction;
 | 
			
		||||
} KeyMapItem_Params;
 | 
			
		||||
 | 
			
		||||
void WM_keymap_clear(struct wmKeyMap *keymap);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -44,11 +58,7 @@ void WM_keymap_clear(struct wmKeyMap *keymap);
 | 
			
		||||
 */
 | 
			
		||||
wmKeyMapItem *WM_keymap_add_item(struct wmKeyMap *keymap,
 | 
			
		||||
                                 const char *idname,
 | 
			
		||||
                                 int type,
 | 
			
		||||
                                 int val,
 | 
			
		||||
                                 int modifier,
 | 
			
		||||
                                 int keymodifier,
 | 
			
		||||
                                 int direction);
 | 
			
		||||
                                 const KeyMapItem_Params *params);
 | 
			
		||||
wmKeyMapItem *WM_keymap_add_item_copy(struct wmKeyMap *keymap, wmKeyMapItem *kmi_src);
 | 
			
		||||
 | 
			
		||||
bool WM_keymap_remove_item(struct wmKeyMap *keymap, struct wmKeyMapItem *kmi);
 | 
			
		||||
@@ -87,41 +97,25 @@ bool WM_keymap_item_compare(const struct wmKeyMapItem *k1, const struct wmKeyMap
 | 
			
		||||
 */
 | 
			
		||||
wmKeyMapItem *WM_keymap_add_menu(struct wmKeyMap *keymap,
 | 
			
		||||
                                 const char *idname,
 | 
			
		||||
                                 int type,
 | 
			
		||||
                                 int val,
 | 
			
		||||
                                 int modifier,
 | 
			
		||||
                                 int keymodifier,
 | 
			
		||||
                                 int direction);
 | 
			
		||||
                                 const KeyMapItem_Params *params);
 | 
			
		||||
/**
 | 
			
		||||
 * Pie-menu wrapper for #WM_keymap_add_item.
 | 
			
		||||
 */
 | 
			
		||||
wmKeyMapItem *WM_keymap_add_menu_pie(struct wmKeyMap *keymap,
 | 
			
		||||
                                     const char *idname,
 | 
			
		||||
                                     int type,
 | 
			
		||||
                                     int val,
 | 
			
		||||
                                     int modifier,
 | 
			
		||||
                                     int keymodifier,
 | 
			
		||||
                                     int direction);
 | 
			
		||||
                                     const KeyMapItem_Params *params);
 | 
			
		||||
/**
 | 
			
		||||
 * Panel (popover) wrapper for #WM_keymap_add_item.
 | 
			
		||||
 */
 | 
			
		||||
wmKeyMapItem *WM_keymap_add_panel(struct wmKeyMap *keymap,
 | 
			
		||||
                                  const char *idname,
 | 
			
		||||
                                  int type,
 | 
			
		||||
                                  int val,
 | 
			
		||||
                                  int modifier,
 | 
			
		||||
                                  int keymodifier,
 | 
			
		||||
                                  int direction);
 | 
			
		||||
                                  const KeyMapItem_Params *params);
 | 
			
		||||
/**
 | 
			
		||||
 * Tool wrapper for #WM_keymap_add_item.
 | 
			
		||||
 */
 | 
			
		||||
wmKeyMapItem *WM_keymap_add_tool(struct wmKeyMap *keymap,
 | 
			
		||||
                                 const char *idname,
 | 
			
		||||
                                 int type,
 | 
			
		||||
                                 int val,
 | 
			
		||||
                                 int modifier,
 | 
			
		||||
                                 int keymodifier,
 | 
			
		||||
                                 int direction);
 | 
			
		||||
                                 const KeyMapItem_Params *params);
 | 
			
		||||
 | 
			
		||||
wmKeyMap *WM_keymap_guess_from_context(const struct bContext *C);
 | 
			
		||||
 | 
			
		||||
@@ -154,18 +148,10 @@ wmKeyMap *WM_modalkeymap_ensure(struct wmKeyConfig *keyconf,
 | 
			
		||||
                                const struct EnumPropertyItem *items);
 | 
			
		||||
wmKeyMap *WM_modalkeymap_find(struct wmKeyConfig *keyconf, const char *idname);
 | 
			
		||||
wmKeyMapItem *WM_modalkeymap_add_item(struct wmKeyMap *km,
 | 
			
		||||
                                      int type,
 | 
			
		||||
                                      int val,
 | 
			
		||||
                                      int modifier,
 | 
			
		||||
                                      int keymodifier,
 | 
			
		||||
                                      int direction,
 | 
			
		||||
                                      const KeyMapItem_Params *params,
 | 
			
		||||
                                      int value);
 | 
			
		||||
wmKeyMapItem *WM_modalkeymap_add_item_str(struct wmKeyMap *km,
 | 
			
		||||
                                          int type,
 | 
			
		||||
                                          int val,
 | 
			
		||||
                                          int modifier,
 | 
			
		||||
                                          int keymodifier,
 | 
			
		||||
                                          int direction,
 | 
			
		||||
                                          const KeyMapItem_Params *params,
 | 
			
		||||
                                          const char *value);
 | 
			
		||||
const wmKeyMapItem *WM_modalkeymap_find_propvalue(const wmKeyMap *km, int propvalue);
 | 
			
		||||
void WM_modalkeymap_assign(struct wmKeyMap *km, const char *opname);
 | 
			
		||||
 
 | 
			
		||||
@@ -640,29 +640,105 @@ wmKeyMap *wm_gizmogroup_tweak_modal_keymap(wmKeyConfig *keyconf)
 | 
			
		||||
  keymap = WM_modalkeymap_ensure(keyconf, name, modal_items);
 | 
			
		||||
 | 
			
		||||
  /* items for modal map */
 | 
			
		||||
  WM_modalkeymap_add_item(keymap, EVT_ESCKEY, KM_PRESS, KM_ANY, 0, KM_ANY, TWEAK_MODAL_CANCEL);
 | 
			
		||||
  WM_modalkeymap_add_item(keymap, RIGHTMOUSE, KM_PRESS, KM_ANY, 0, KM_ANY, TWEAK_MODAL_CANCEL);
 | 
			
		||||
  WM_modalkeymap_add_item(keymap,
 | 
			
		||||
                          &(const KeyMapItem_Params){
 | 
			
		||||
                              .type = EVT_ESCKEY,
 | 
			
		||||
                              .value = KM_PRESS,
 | 
			
		||||
                              .modifier = KM_ANY,
 | 
			
		||||
                              .direction = KM_ANY,
 | 
			
		||||
                          },
 | 
			
		||||
                          TWEAK_MODAL_CANCEL);
 | 
			
		||||
  WM_modalkeymap_add_item(keymap,
 | 
			
		||||
                          &(const KeyMapItem_Params){
 | 
			
		||||
                              .type = RIGHTMOUSE,
 | 
			
		||||
                              .value = KM_PRESS,
 | 
			
		||||
                              .modifier = KM_ANY,
 | 
			
		||||
                              .direction = KM_ANY,
 | 
			
		||||
                          },
 | 
			
		||||
                          TWEAK_MODAL_CANCEL);
 | 
			
		||||
 | 
			
		||||
  WM_modalkeymap_add_item(keymap, EVT_RETKEY, KM_PRESS, KM_ANY, 0, KM_ANY, TWEAK_MODAL_CONFIRM);
 | 
			
		||||
  WM_modalkeymap_add_item(keymap, EVT_PADENTER, KM_PRESS, KM_ANY, 0, KM_ANY, TWEAK_MODAL_CONFIRM);
 | 
			
		||||
  WM_modalkeymap_add_item(keymap,
 | 
			
		||||
                          &(const KeyMapItem_Params){
 | 
			
		||||
                              .type = EVT_RETKEY,
 | 
			
		||||
                              .value = KM_PRESS,
 | 
			
		||||
                              .modifier = KM_ANY,
 | 
			
		||||
                              .direction = KM_ANY,
 | 
			
		||||
                          },
 | 
			
		||||
                          TWEAK_MODAL_CONFIRM);
 | 
			
		||||
  WM_modalkeymap_add_item(keymap,
 | 
			
		||||
                          &(const KeyMapItem_Params){
 | 
			
		||||
                              .type = EVT_PADENTER,
 | 
			
		||||
                              .value = KM_PRESS,
 | 
			
		||||
                              .modifier = KM_ANY,
 | 
			
		||||
                              .direction = KM_ANY,
 | 
			
		||||
                          },
 | 
			
		||||
                          TWEAK_MODAL_CONFIRM);
 | 
			
		||||
 | 
			
		||||
  WM_modalkeymap_add_item(
 | 
			
		||||
      keymap, EVT_RIGHTSHIFTKEY, KM_PRESS, KM_ANY, 0, KM_ANY, TWEAK_MODAL_PRECISION_ON);
 | 
			
		||||
  WM_modalkeymap_add_item(
 | 
			
		||||
      keymap, EVT_RIGHTSHIFTKEY, KM_RELEASE, KM_ANY, 0, KM_ANY, TWEAK_MODAL_PRECISION_OFF);
 | 
			
		||||
  WM_modalkeymap_add_item(
 | 
			
		||||
      keymap, EVT_LEFTSHIFTKEY, KM_PRESS, KM_ANY, 0, KM_ANY, TWEAK_MODAL_PRECISION_ON);
 | 
			
		||||
  WM_modalkeymap_add_item(
 | 
			
		||||
      keymap, EVT_LEFTSHIFTKEY, KM_RELEASE, KM_ANY, 0, KM_ANY, TWEAK_MODAL_PRECISION_OFF);
 | 
			
		||||
  WM_modalkeymap_add_item(keymap,
 | 
			
		||||
                          &(const KeyMapItem_Params){
 | 
			
		||||
                              .type = EVT_RIGHTSHIFTKEY,
 | 
			
		||||
                              .value = KM_PRESS,
 | 
			
		||||
                              .modifier = KM_ANY,
 | 
			
		||||
                              .direction = KM_ANY,
 | 
			
		||||
                          },
 | 
			
		||||
                          TWEAK_MODAL_PRECISION_ON);
 | 
			
		||||
  WM_modalkeymap_add_item(keymap,
 | 
			
		||||
                          &(const KeyMapItem_Params){
 | 
			
		||||
                              .type = EVT_RIGHTSHIFTKEY,
 | 
			
		||||
                              .value = KM_RELEASE,
 | 
			
		||||
                              .modifier = KM_ANY,
 | 
			
		||||
                              .direction = KM_ANY,
 | 
			
		||||
                          },
 | 
			
		||||
                          TWEAK_MODAL_PRECISION_OFF);
 | 
			
		||||
  WM_modalkeymap_add_item(keymap,
 | 
			
		||||
                          &(const KeyMapItem_Params){
 | 
			
		||||
                              .type = EVT_LEFTSHIFTKEY,
 | 
			
		||||
                              .value = KM_PRESS,
 | 
			
		||||
                              .modifier = KM_ANY,
 | 
			
		||||
                              .direction = KM_ANY,
 | 
			
		||||
                          },
 | 
			
		||||
                          TWEAK_MODAL_PRECISION_ON);
 | 
			
		||||
  WM_modalkeymap_add_item(keymap,
 | 
			
		||||
                          &(const KeyMapItem_Params){
 | 
			
		||||
                              .type = EVT_LEFTSHIFTKEY,
 | 
			
		||||
                              .value = KM_RELEASE,
 | 
			
		||||
                              .modifier = KM_ANY,
 | 
			
		||||
                              .direction = KM_ANY,
 | 
			
		||||
                          },
 | 
			
		||||
                          TWEAK_MODAL_PRECISION_OFF);
 | 
			
		||||
 | 
			
		||||
  WM_modalkeymap_add_item(
 | 
			
		||||
      keymap, EVT_RIGHTCTRLKEY, KM_PRESS, KM_ANY, 0, KM_ANY, TWEAK_MODAL_SNAP_ON);
 | 
			
		||||
  WM_modalkeymap_add_item(
 | 
			
		||||
      keymap, EVT_RIGHTCTRLKEY, KM_RELEASE, KM_ANY, 0, KM_ANY, TWEAK_MODAL_SNAP_OFF);
 | 
			
		||||
  WM_modalkeymap_add_item(
 | 
			
		||||
      keymap, EVT_LEFTCTRLKEY, KM_PRESS, KM_ANY, 0, KM_ANY, TWEAK_MODAL_SNAP_ON);
 | 
			
		||||
  WM_modalkeymap_add_item(
 | 
			
		||||
      keymap, EVT_LEFTCTRLKEY, KM_RELEASE, KM_ANY, 0, KM_ANY, TWEAK_MODAL_SNAP_OFF);
 | 
			
		||||
  WM_modalkeymap_add_item(keymap,
 | 
			
		||||
                          &(const KeyMapItem_Params){
 | 
			
		||||
                              .type = EVT_RIGHTCTRLKEY,
 | 
			
		||||
                              .value = KM_PRESS,
 | 
			
		||||
                              .modifier = KM_ANY,
 | 
			
		||||
                              .direction = KM_ANY,
 | 
			
		||||
                          },
 | 
			
		||||
                          TWEAK_MODAL_SNAP_ON);
 | 
			
		||||
  WM_modalkeymap_add_item(keymap,
 | 
			
		||||
                          &(const KeyMapItem_Params){
 | 
			
		||||
                              .type = EVT_RIGHTCTRLKEY,
 | 
			
		||||
                              .value = KM_RELEASE,
 | 
			
		||||
                              .modifier = KM_ANY,
 | 
			
		||||
                              .direction = KM_ANY,
 | 
			
		||||
                          },
 | 
			
		||||
                          TWEAK_MODAL_SNAP_OFF);
 | 
			
		||||
  WM_modalkeymap_add_item(keymap,
 | 
			
		||||
                          &(const KeyMapItem_Params){
 | 
			
		||||
                              .type = EVT_LEFTCTRLKEY,
 | 
			
		||||
                              .value = KM_PRESS,
 | 
			
		||||
                              .modifier = KM_ANY,
 | 
			
		||||
                              .direction = KM_ANY,
 | 
			
		||||
                          },
 | 
			
		||||
                          TWEAK_MODAL_SNAP_ON);
 | 
			
		||||
  WM_modalkeymap_add_item(keymap,
 | 
			
		||||
                          &(const KeyMapItem_Params){
 | 
			
		||||
                              .type = EVT_LEFTCTRLKEY,
 | 
			
		||||
                              .value = KM_RELEASE,
 | 
			
		||||
                              .modifier = KM_ANY,
 | 
			
		||||
                              .direction = KM_ANY,
 | 
			
		||||
                          },
 | 
			
		||||
                          TWEAK_MODAL_SNAP_OFF);
 | 
			
		||||
 | 
			
		||||
  WM_modalkeymap_assign(keymap, "GIZMOGROUP_OT_gizmo_tweak");
 | 
			
		||||
 | 
			
		||||
@@ -720,20 +796,44 @@ static wmKeyMap *WM_gizmogroup_keymap_template_select_ex(
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
  if (do_init) {
 | 
			
		||||
    WM_keymap_add_item(
 | 
			
		||||
        km, "GIZMOGROUP_OT_gizmo_tweak", action_mouse, action_mouse_val, KM_ANY, 0, KM_ANY);
 | 
			
		||||
    WM_keymap_add_item(
 | 
			
		||||
        km, "GIZMOGROUP_OT_gizmo_tweak", select_tweak, select_tweak_val, 0, 0, KM_ANY);
 | 
			
		||||
    WM_keymap_add_item(km,
 | 
			
		||||
                       "GIZMOGROUP_OT_gizmo_tweak",
 | 
			
		||||
                       &(const KeyMapItem_Params){
 | 
			
		||||
                           .type = action_mouse,
 | 
			
		||||
                           .value = action_mouse_val,
 | 
			
		||||
                           .modifier = KM_ANY,
 | 
			
		||||
                           .direction = KM_ANY,
 | 
			
		||||
                       });
 | 
			
		||||
    WM_keymap_add_item(km,
 | 
			
		||||
                       "GIZMOGROUP_OT_gizmo_tweak",
 | 
			
		||||
                       &(const KeyMapItem_Params){
 | 
			
		||||
                           .type = select_tweak,
 | 
			
		||||
                           .value = select_tweak_val,
 | 
			
		||||
                           .modifier = 0,
 | 
			
		||||
                           .direction = KM_ANY,
 | 
			
		||||
                       });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (do_init) {
 | 
			
		||||
    wmKeyMapItem *kmi = WM_keymap_add_item(
 | 
			
		||||
        km, "GIZMOGROUP_OT_gizmo_select", select_mouse, select_mouse_val, 0, 0, KM_ANY);
 | 
			
		||||
    wmKeyMapItem *kmi = WM_keymap_add_item(km,
 | 
			
		||||
                                           "GIZMOGROUP_OT_gizmo_select",
 | 
			
		||||
                                           &(const KeyMapItem_Params){
 | 
			
		||||
                                               .type = select_mouse,
 | 
			
		||||
                                               .value = select_mouse_val,
 | 
			
		||||
                                               .modifier = 0,
 | 
			
		||||
                                               .direction = KM_ANY,
 | 
			
		||||
                                           });
 | 
			
		||||
    RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
    RNA_boolean_set(kmi->ptr, "deselect", false);
 | 
			
		||||
    RNA_boolean_set(kmi->ptr, "toggle", false);
 | 
			
		||||
    kmi = WM_keymap_add_item(
 | 
			
		||||
        km, "GIZMOGROUP_OT_gizmo_select", select_mouse, select_mouse_val, KM_SHIFT, 0, KM_ANY);
 | 
			
		||||
    kmi = WM_keymap_add_item(km,
 | 
			
		||||
                             "GIZMOGROUP_OT_gizmo_select",
 | 
			
		||||
                             &(const KeyMapItem_Params){
 | 
			
		||||
                                 .type = select_mouse,
 | 
			
		||||
                                 .value = select_mouse_val,
 | 
			
		||||
                                 .modifier = KM_SHIFT,
 | 
			
		||||
                                 .direction = KM_ANY,
 | 
			
		||||
                             });
 | 
			
		||||
    RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
    RNA_boolean_set(kmi->ptr, "deselect", false);
 | 
			
		||||
    RNA_boolean_set(kmi->ptr, "toggle", true);
 | 
			
		||||
 
 | 
			
		||||
@@ -456,32 +456,35 @@ bool WM_keymap_poll(bContext *C, wmKeyMap *keymap)
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void keymap_event_set(
 | 
			
		||||
    wmKeyMapItem *kmi, short type, short val, int modifier, short keymodifier, int direction)
 | 
			
		||||
static void keymap_event_set(wmKeyMapItem *kmi, const KeyMapItem_Params *params)
 | 
			
		||||
{
 | 
			
		||||
  kmi->type = type;
 | 
			
		||||
  kmi->val = val;
 | 
			
		||||
  kmi->keymodifier = keymodifier;
 | 
			
		||||
  kmi->direction = direction;
 | 
			
		||||
  kmi->type = params->type;
 | 
			
		||||
  kmi->val = params->value;
 | 
			
		||||
  kmi->keymodifier = params->keymodifier;
 | 
			
		||||
  kmi->direction = params->direction;
 | 
			
		||||
 | 
			
		||||
  if (modifier == KM_ANY) {
 | 
			
		||||
  if (params->modifier == KM_ANY) {
 | 
			
		||||
    kmi->shift = kmi->ctrl = kmi->alt = kmi->oskey = KM_ANY;
 | 
			
		||||
  }
 | 
			
		||||
  else {
 | 
			
		||||
    /* Only one of the flags should be set. */
 | 
			
		||||
    BLI_assert(((modifier & (KM_SHIFT | KM_SHIFT_ANY)) != (KM_SHIFT | KM_SHIFT_ANY)) &&
 | 
			
		||||
               ((modifier & (KM_CTRL | KM_CTRL_ANY)) != (KM_CTRL | KM_CTRL_ANY)) &&
 | 
			
		||||
               ((modifier & (KM_ALT | KM_ALT_ANY)) != (KM_ALT | KM_ALT_ANY)) &&
 | 
			
		||||
               ((modifier & (KM_OSKEY | KM_OSKEY_ANY)) != (KM_OSKEY | KM_OSKEY_ANY)));
 | 
			
		||||
    BLI_assert(((params->modifier & (KM_SHIFT | KM_SHIFT_ANY)) != (KM_SHIFT | KM_SHIFT_ANY)) &&
 | 
			
		||||
               ((params->modifier & (KM_CTRL | KM_CTRL_ANY)) != (KM_CTRL | KM_CTRL_ANY)) &&
 | 
			
		||||
               ((params->modifier & (KM_ALT | KM_ALT_ANY)) != (KM_ALT | KM_ALT_ANY)) &&
 | 
			
		||||
               ((params->modifier & (KM_OSKEY | KM_OSKEY_ANY)) != (KM_OSKEY | KM_OSKEY_ANY)));
 | 
			
		||||
 | 
			
		||||
    kmi->shift = ((modifier & KM_SHIFT) ? KM_MOD_HELD :
 | 
			
		||||
                                          ((modifier & KM_SHIFT_ANY) ? KM_ANY : KM_NOTHING));
 | 
			
		||||
    kmi->ctrl = ((modifier & KM_CTRL) ? KM_MOD_HELD :
 | 
			
		||||
                                        ((modifier & KM_CTRL_ANY) ? KM_ANY : KM_NOTHING));
 | 
			
		||||
    kmi->alt = ((modifier & KM_ALT) ? KM_MOD_HELD :
 | 
			
		||||
                                      ((modifier & KM_ALT_ANY) ? KM_ANY : KM_NOTHING));
 | 
			
		||||
    kmi->oskey = ((modifier & KM_OSKEY) ? KM_MOD_HELD :
 | 
			
		||||
                                          ((modifier & KM_OSKEY_ANY) ? KM_ANY : KM_NOTHING));
 | 
			
		||||
    kmi->shift = ((params->modifier & KM_SHIFT) ?
 | 
			
		||||
                      KM_MOD_HELD :
 | 
			
		||||
                      ((params->modifier & KM_SHIFT_ANY) ? KM_ANY : KM_NOTHING));
 | 
			
		||||
    kmi->ctrl = ((params->modifier & KM_CTRL) ?
 | 
			
		||||
                     KM_MOD_HELD :
 | 
			
		||||
                     ((params->modifier & KM_CTRL_ANY) ? KM_ANY : KM_NOTHING));
 | 
			
		||||
    kmi->alt = ((params->modifier & KM_ALT) ?
 | 
			
		||||
                    KM_MOD_HELD :
 | 
			
		||||
                    ((params->modifier & KM_ALT_ANY) ? KM_ANY : KM_NOTHING));
 | 
			
		||||
    kmi->oskey = ((params->modifier & KM_OSKEY) ?
 | 
			
		||||
                      KM_MOD_HELD :
 | 
			
		||||
                      ((params->modifier & KM_OSKEY_ANY) ? KM_ANY : KM_NOTHING));
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -498,18 +501,14 @@ static void keymap_item_set_id(wmKeyMap *keymap, wmKeyMapItem *kmi)
 | 
			
		||||
 | 
			
		||||
wmKeyMapItem *WM_keymap_add_item(wmKeyMap *keymap,
 | 
			
		||||
                                 const char *idname,
 | 
			
		||||
                                 int type,
 | 
			
		||||
                                 int val,
 | 
			
		||||
                                 int modifier,
 | 
			
		||||
                                 int keymodifier,
 | 
			
		||||
                                 int direction)
 | 
			
		||||
                                 const KeyMapItem_Params *params)
 | 
			
		||||
{
 | 
			
		||||
  wmKeyMapItem *kmi = MEM_callocN(sizeof(wmKeyMapItem), "keymap entry");
 | 
			
		||||
 | 
			
		||||
  BLI_addtail(&keymap->items, kmi);
 | 
			
		||||
  BLI_strncpy(kmi->idname, idname, OP_MAX_TYPENAME);
 | 
			
		||||
 | 
			
		||||
  keymap_event_set(kmi, type, val, modifier, keymodifier, direction);
 | 
			
		||||
  keymap_event_set(kmi, params);
 | 
			
		||||
  wm_keymap_item_properties_set(kmi);
 | 
			
		||||
 | 
			
		||||
  keymap_item_set_id(keymap, kmi);
 | 
			
		||||
@@ -922,15 +921,14 @@ wmKeyMap *WM_modalkeymap_find(wmKeyConfig *keyconf, const char *idname)
 | 
			
		||||
  return NULL;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
wmKeyMapItem *WM_modalkeymap_add_item(
 | 
			
		||||
    wmKeyMap *km, int type, int val, int modifier, int keymodifier, int direction, int value)
 | 
			
		||||
wmKeyMapItem *WM_modalkeymap_add_item(wmKeyMap *km, const KeyMapItem_Params *params, int value)
 | 
			
		||||
{
 | 
			
		||||
  wmKeyMapItem *kmi = MEM_callocN(sizeof(wmKeyMapItem), "keymap entry");
 | 
			
		||||
 | 
			
		||||
  BLI_addtail(&km->items, kmi);
 | 
			
		||||
  kmi->propvalue = value;
 | 
			
		||||
 | 
			
		||||
  keymap_event_set(kmi, type, val, modifier, keymodifier, direction);
 | 
			
		||||
  keymap_event_set(kmi, params);
 | 
			
		||||
 | 
			
		||||
  keymap_item_set_id(km, kmi);
 | 
			
		||||
 | 
			
		||||
@@ -940,11 +938,7 @@ wmKeyMapItem *WM_modalkeymap_add_item(
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
wmKeyMapItem *WM_modalkeymap_add_item_str(wmKeyMap *km,
 | 
			
		||||
                                          int type,
 | 
			
		||||
                                          int val,
 | 
			
		||||
                                          int modifier,
 | 
			
		||||
                                          int keymodifier,
 | 
			
		||||
                                          int direction,
 | 
			
		||||
                                          const KeyMapItem_Params *params,
 | 
			
		||||
                                          const char *value)
 | 
			
		||||
{
 | 
			
		||||
  wmKeyMapItem *kmi = MEM_callocN(sizeof(wmKeyMapItem), "keymap entry");
 | 
			
		||||
@@ -952,7 +946,7 @@ wmKeyMapItem *WM_modalkeymap_add_item_str(wmKeyMap *km,
 | 
			
		||||
  BLI_addtail(&km->items, kmi);
 | 
			
		||||
  BLI_strncpy(kmi->propvalue_str, value, sizeof(kmi->propvalue_str));
 | 
			
		||||
 | 
			
		||||
  keymap_event_set(kmi, type, val, modifier, keymodifier, direction);
 | 
			
		||||
  keymap_event_set(kmi, params);
 | 
			
		||||
 | 
			
		||||
  keymap_item_set_id(km, kmi);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -31,42 +31,27 @@
 | 
			
		||||
 | 
			
		||||
wmKeyMapItem *WM_keymap_add_menu(wmKeyMap *keymap,
 | 
			
		||||
                                 const char *idname,
 | 
			
		||||
                                 int type,
 | 
			
		||||
                                 int val,
 | 
			
		||||
                                 int modifier,
 | 
			
		||||
                                 int keymodifier,
 | 
			
		||||
                                 int direction)
 | 
			
		||||
                                 const KeyMapItem_Params *params)
 | 
			
		||||
{
 | 
			
		||||
  wmKeyMapItem *kmi = WM_keymap_add_item(
 | 
			
		||||
      keymap, "WM_OT_call_menu", type, val, modifier, keymodifier, direction);
 | 
			
		||||
  wmKeyMapItem *kmi = WM_keymap_add_item(keymap, "WM_OT_call_menu", params);
 | 
			
		||||
  RNA_string_set(kmi->ptr, "name", idname);
 | 
			
		||||
  return kmi;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
wmKeyMapItem *WM_keymap_add_menu_pie(wmKeyMap *keymap,
 | 
			
		||||
                                     const char *idname,
 | 
			
		||||
                                     int type,
 | 
			
		||||
                                     int val,
 | 
			
		||||
                                     int modifier,
 | 
			
		||||
                                     int keymodifier,
 | 
			
		||||
                                     int direction)
 | 
			
		||||
                                     const KeyMapItem_Params *params)
 | 
			
		||||
{
 | 
			
		||||
  wmKeyMapItem *kmi = WM_keymap_add_item(
 | 
			
		||||
      keymap, "WM_OT_call_menu_pie", type, val, modifier, keymodifier, direction);
 | 
			
		||||
  wmKeyMapItem *kmi = WM_keymap_add_item(keymap, "WM_OT_call_menu_pie", params);
 | 
			
		||||
  RNA_string_set(kmi->ptr, "name", idname);
 | 
			
		||||
  return kmi;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
wmKeyMapItem *WM_keymap_add_panel(wmKeyMap *keymap,
 | 
			
		||||
                                  const char *idname,
 | 
			
		||||
                                  int type,
 | 
			
		||||
                                  int val,
 | 
			
		||||
                                  int modifier,
 | 
			
		||||
                                  int keymodifier,
 | 
			
		||||
                                  int direction)
 | 
			
		||||
                                  const KeyMapItem_Params *params)
 | 
			
		||||
{
 | 
			
		||||
  wmKeyMapItem *kmi = WM_keymap_add_item(
 | 
			
		||||
      keymap, "WM_OT_call_panel", type, val, modifier, keymodifier, direction);
 | 
			
		||||
  wmKeyMapItem *kmi = WM_keymap_add_item(keymap, "WM_OT_call_panel", params);
 | 
			
		||||
  RNA_string_set(kmi->ptr, "name", idname);
 | 
			
		||||
  /* TODO: we might want to disable this. */
 | 
			
		||||
  RNA_boolean_set(kmi->ptr, "keep_open", false);
 | 
			
		||||
@@ -75,14 +60,9 @@ wmKeyMapItem *WM_keymap_add_panel(wmKeyMap *keymap,
 | 
			
		||||
 | 
			
		||||
wmKeyMapItem *WM_keymap_add_tool(wmKeyMap *keymap,
 | 
			
		||||
                                 const char *idname,
 | 
			
		||||
                                 int type,
 | 
			
		||||
                                 int val,
 | 
			
		||||
                                 int modifier,
 | 
			
		||||
                                 int keymodifier,
 | 
			
		||||
                                 int direction)
 | 
			
		||||
                                 const KeyMapItem_Params *params)
 | 
			
		||||
{
 | 
			
		||||
  wmKeyMapItem *kmi = WM_keymap_add_item(
 | 
			
		||||
      keymap, "WM_OT_tool_set_by_id", type, val, modifier, keymodifier, direction);
 | 
			
		||||
  wmKeyMapItem *kmi = WM_keymap_add_item(keymap, "WM_OT_tool_set_by_id", params);
 | 
			
		||||
  RNA_string_set(kmi->ptr, "name", idname);
 | 
			
		||||
  return kmi;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user