Add Undo/Redo to Amiga version. NB: Clear selection no longer has a shortcut key.

This commit is contained in:
Chris Young 2013-10-01 18:51:27 +01:00
parent 0c4f32fb1d
commit bdf76965b4
5 changed files with 44 additions and 3 deletions

View File

@ -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,

View File

@ -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':

View File

@ -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;

View File

@ -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)

View File

@ -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
#