Wanderer: Add DEL as shortcut to Icon->Delete

This commit is contained in:
deadwood 2024-04-23 09:51:44 +02:00
parent 1058081694
commit 7adbd730b8
3 changed files with 45 additions and 1 deletions

View File

@ -33,6 +33,8 @@
#include <datatypes/pictureclass.h>
#include <clib/macros.h>
#include <devices/rawkeycodes.h>
#ifndef _PROTO_INTUITION_H
#include <proto/intuition.h>
#endif
@ -225,6 +227,12 @@ Object *IconWindowDrawerList__OM_NEW(Class *CLASS, Object *self, struct opSet *m
drawerlist_data->iwidld_DrawerNotifyRequest.nr_stuff.nr_Msg.nr_Port = (struct MsgPort *)_newIconList__FSNotifyPort;
D(bug("[Wanderer:DrawerList] %s: FS Notify Port @ 0x%p\n", __PRETTY_FUNCTION__, _newIconList__FSNotifyPort));
}
data->iwidld_EventHandlerNode.ehn_Priority = 1;
data->iwidld_EventHandlerNode.ehn_Flags = 0;
data->iwidld_EventHandlerNode.ehn_Object = self;
data->iwidld_EventHandlerNode.ehn_Class = CLASS;
data->iwidld_EventHandlerNode.ehn_Events = IDCMP_RAWKEY;
}
return self;
@ -471,6 +479,9 @@ IPTR IconWindowDrawerList__MUIM_Setup
UpdateFSNotification(directory_path, data, self);
/* Adding event handler */
DoMethod(_win(self), MUIM_Window_AddEventHandler, &data->iwidld_EventHandlerNode);
D(bug("[Wanderer:DrawerList] %s: Setup complete!\n", __PRETTY_FUNCTION__));
return TRUE;
@ -512,10 +523,37 @@ IPTR IconWindowDrawerList__MUIM_Cleanup
RemoveFSNotification(data);
DoMethod(_win(self), MUIM_Window_RemEventHandler, &data->iwidld_EventHandlerNode);
return DoSuperMethodA(CLASS, self, message);
}
///
///IconWindowDrawerList__MUIM_HandleEvent()
IPTR IconWindowDrawerList__MUIM_HandleEvent
(
Class *CLASS, Object *self, struct MUIP_HandleEvent *message
)
{
struct IntuiMessage *imsg = message->imsg;
D(bug("[Wanderer:DrawerList]: %s()\n", __func__));
switch(message->imsg->Code)
{
case(RAWKEY_DELETE):
{
void wanderer_menufunc_icon_delete(void);
wanderer_menufunc_icon_delete();
return MUI_EventHandlerRC_Eat;
}
}
return 0;
}
///
///IconWindowDrawerList__MUIM_DrawBackground()
IPTR IconWindowDrawerList__MUIM_DrawBackground
(
@ -651,6 +689,7 @@ ICONWINDOWICONDRAWERLIST_CUSTOMCLASS
MUIM_Setup, Msg,
MUIM_Cleanup, Msg,
MUIM_DrawBackground, struct MUIP_DrawBackground *,
MUIM_HandleEvent, struct MUIP_HandleEvent *,
MUIM_IconWindowDrawerList_FileSystemChanged, Msg,
MUIM_IconWindowIconList_RateLimitRefresh, Msg
);

View File

@ -47,7 +47,8 @@ and temporarily placed here */
m5, m5_msg_type, \
m6, m6_msg_type, \
m7, m7_msg_type, \
m8, m8_msg_type) \
m8, m8_msg_type, \
m9, m9_msg_type) \
__ZUNE_CUSTOMCLASS_START(name) \
__ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
__ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
@ -57,6 +58,7 @@ and temporarily placed here */
__ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
__ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
__ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
__ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m9, m9, m9_msg_type); \
__ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
#define ICONWINDOWICONVOLUMELIST_CUSTOMCLASS(name, base, parent_name, parent_class, \

View File

@ -2565,6 +2565,9 @@ void wanderer_menufunc_icon_delete(void)
ULONG updatedIcons;
DoMethod(iconList, MUIM_IconList_NextIcon, MUIV_IconList_NextIcon_Selected, (IPTR) &entry);
if ((IPTR)entry == MUIV_IconList_NextIcon_End)
return;
displayCopyHook.h_Entry = (HOOKFUNC) Wanderer__HookFunc_DisplayCopyFunc;
displayAskHook.h_Entry = (HOOKFUNC) Wanderer__HookFunc_AskModeFunc;