From bdf76965b4ce27b84f9850e59bde0cc1a3c16845 Mon Sep 17 00:00:00 2001 From: Chris Young Date: Tue, 1 Oct 2013 18:51:27 +0100 Subject: Add Undo/Redo to Amiga version. NB: Clear selection no longer has a shortcut key. --- amiga/context_menu.c | 1 - amiga/gui.c | 6 +++++- amiga/menu.c | 25 ++++++++++++++++++++++++- amiga/menu.h | 5 +++++ resources/FatMessages | 10 ++++++++++ 5 files changed, 44 insertions(+), 3 deletions(-) diff --git a/amiga/context_menu.c b/amiga/context_menu.c index 454fe266e..03672ef56 100644 --- a/amiga/context_menu.c +++ b/amiga/context_menu.c @@ -508,7 +508,6 @@ void ami_context_menu_add_submenu(Object *ctxmenuobj, ULONG cmsub, void *userdat PMIA_Title, (ULONG)ctxmenulab[CMID_SELCLEAR], PMIA_ID,CMID_SELCLEAR, PMIA_Disabled, disabled_noselection, - PMIA_CommKey, "Z", TAG_DONE), PMA_AddItem,NewObject(POPUPMENU_GetItemClass(), NULL, PMIA_Title, ~0, diff --git a/amiga/gui.c b/amiga/gui.c index b7c5585ad..acbf84126 100644 --- a/amiga/gui.c +++ b/amiga/gui.c @@ -2023,7 +2023,11 @@ void ami_handle_msg(void) break; case 'z': - browser_window_key_press(gwin->bw, KEY_CLEAR_SELECTION); + browser_window_key_press(gwin->bw, KEY_UNDO); + break; + + case 'y': + browser_window_key_press(gwin->bw, KEY_REDO); break; case 'f': diff --git a/amiga/menu.c b/amiga/menu.c index de4d63ee1..3280bdedd 100644 --- a/amiga/menu.c +++ b/amiga/menu.c @@ -98,6 +98,8 @@ static void ami_menu_item_edit_copy(struct Hook *hook, APTR window, struct Intui static void ami_menu_item_edit_paste(struct Hook *hook, APTR window, struct IntuiMessage *msg); static void ami_menu_item_edit_selectall(struct Hook *hook, APTR window, struct IntuiMessage *msg); static void ami_menu_item_edit_clearsel(struct Hook *hook, APTR window, struct IntuiMessage *msg); +static void ami_menu_item_edit_undo(struct Hook *hook, APTR window, struct IntuiMessage *msg); +static void ami_menu_item_edit_redo(struct Hook *hook, APTR window, struct IntuiMessage *msg); static void ami_menu_item_browser_find(struct Hook *hook, APTR window, struct IntuiMessage *msg); static void ami_menu_item_browser_localhistory(struct Hook *hook, APTR window, struct IntuiMessage *msg); static void ami_menu_item_browser_globalhistory(struct Hook *hook, APTR window, struct IntuiMessage *msg); @@ -241,8 +243,13 @@ void ami_init_menulabs(struct gui_window_2 *gwin) ami_menu_alloc_item(gwin, M_BAR_E1, NM_ITEM, NM_BARLABEL, 0, NULL, NULL, NULL); ami_menu_alloc_item(gwin, M_SELALL, NM_ITEM, "SelectAllNS", 'A', NULL, ami_menu_item_edit_selectall, NULL); - ami_menu_alloc_item(gwin, M_CLEAR, NM_ITEM, "ClearNS", 'Z', NULL, + ami_menu_alloc_item(gwin, M_CLEAR, NM_ITEM, "ClearNS", 0, NULL, ami_menu_item_edit_clearsel, NULL); + ami_menu_alloc_item(gwin, M_BAR_E2, NM_ITEM, NM_BARLABEL, 0, NULL, NULL, NULL); + ami_menu_alloc_item(gwin, M_UNDO, NM_ITEM, "Undo", 'Z', NULL, + ami_menu_item_edit_undo, NULL); + ami_menu_alloc_item(gwin, M_REDO, NM_ITEM, "Redo", 'Y', NULL, + ami_menu_item_edit_redo, NULL); ami_menu_alloc_item(gwin, M_BROWSER, NM_TITLE, "Browser", 0, NULL, NULL, NULL); ami_menu_alloc_item(gwin, M_FIND, NM_ITEM, "FindTextNS", 'F', NULL, @@ -897,6 +904,22 @@ static void ami_menu_item_edit_clearsel(struct Hook *hook, APTR window, struct I browser_window_key_press(gwin->bw, KEY_CLEAR_SELECTION); } +static void ami_menu_item_edit_undo(struct Hook *hook, APTR window, struct IntuiMessage *msg) +{ + struct gui_window_2 *gwin; + GetAttr(WINDOW_UserData, (Object *)window, (ULONG *)&gwin); + + browser_window_key_press(gwin->bw, KEY_UNDO); +} + +static void ami_menu_item_edit_redo(struct Hook *hook, APTR window, struct IntuiMessage *msg) +{ + struct gui_window_2 *gwin; + GetAttr(WINDOW_UserData, (Object *)window, (ULONG *)&gwin); + + browser_window_key_press(gwin->bw, KEY_REDO); +} + static void ami_menu_item_browser_find(struct Hook *hook, APTR window, struct IntuiMessage *msg) { struct gui_window_2 *gwin; diff --git a/amiga/menu.h b/amiga/menu.h index 9f13e016f..b54e78301 100755 --- a/amiga/menu.h +++ b/amiga/menu.h @@ -62,6 +62,9 @@ enum { M_BAR_E1, M_SELALL, M_CLEAR, + M_BAR_E2, + M_UNDO, + M_REDO, /* Browser menu */ M_BROWSER, M_FIND, @@ -119,6 +122,8 @@ enum { #define AMI_MENU_PASTE FULLMENUNUM(1,2,0) #define AMI_MENU_SELECTALL FULLMENUNUM(1,4,0) #define AMI_MENU_CLEAR FULLMENUNUM(1,5,0) +#define AMI_MENU_UNDO FULLMENUNUM(1,8,0) +#define AMI_MENU_REDO FULLMENUNUM(1,9,0) #define AMI_MENU_FIND FULLMENUNUM(2,0,0) #define AMI_MENU_FOREIMG FULLMENUNUM(2,8,0) #define AMI_MENU_BACKIMG FULLMENUNUM(2,8,1) diff --git a/resources/FatMessages b/resources/FatMessages index b27df8da8..b78b5a7d6 100644 --- a/resources/FatMessages +++ b/resources/FatMessages @@ -817,6 +817,16 @@ de.all.ClearNS:Auswahl rückgängig fr.all.ClearNS:Clear selection it.all.ClearNS:Annulla selezione nl.all.ClearNS:Clear selection +en.ami.Undo:Undo +de.ami.Undo:Undo +fr.ami.Undo:Undo +it.ami.Undo:Undo +nl.ami.Undo:Undo +en.ami.Redo:Redo +de.ami.Redo:Redo +fr.ami.Redo:Redo +it.ami.Redo:Redo +nl.ami.Redo:Redo # Browser menu # -- cgit v1.2.3