summaryrefslogtreecommitdiff
path: root/amiga/arexx.c
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2010-07-11 15:34:35 +0000
committerChris Young <chris@unsatisfactorysoftware.co.uk>2010-07-11 15:34:35 +0000
commit1c48e85ce9b7c82cb6b5e5d3bee88ad77d001c1c (patch)
tree8a67143ae3760212995445432c7666bec7e5bc01 /amiga/arexx.c
parentf6f1fe1ceefc31f254184684596d84a84f17c67a (diff)
downloadnetsurf-1c48e85ce9b7c82cb6b5e5d3bee88ad77d001c1c.tar.gz
netsurf-1c48e85ce9b7c82cb6b5e5d3bee88ad77d001c1c.tar.bz2
Add commands BACK, FORWARD, HOME and RELOAD to correspond with the buttons on the GUI.
svn path=/trunk/netsurf/; revision=10628
Diffstat (limited to 'amiga/arexx.c')
-rwxr-xr-xamiga/arexx.c59
1 files changed, 58 insertions, 1 deletions
diff --git a/amiga/arexx.c b/amiga/arexx.c
index a85b8cc0d..1be7b452b 100755
--- a/amiga/arexx.c
+++ b/amiga/arexx.c
@@ -43,7 +43,11 @@ enum
RX_GETTITLE,
RX_VERSION,
RX_SAVE,
- RX_PUBSCREEN
+ RX_PUBSCREEN,
+ RX_BACK,
+ RX_FORWARD,
+ RX_HOME,
+ RX_RELOAD
};
STATIC char result[100];
@@ -56,6 +60,10 @@ STATIC VOID rx_gettitle(struct ARexxCmd *, struct RexxMsg *);
STATIC VOID rx_version(struct ARexxCmd *, struct RexxMsg *);
STATIC VOID rx_save(struct ARexxCmd *, struct RexxMsg *);
STATIC VOID rx_pubscreen(struct ARexxCmd *, struct RexxMsg *);
+STATIC VOID rx_back(struct ARexxCmd *, struct RexxMsg *);
+STATIC VOID rx_forward(struct ARexxCmd *, struct RexxMsg *);
+STATIC VOID rx_home(struct ARexxCmd *, struct RexxMsg *);
+STATIC VOID rx_reload(struct ARexxCmd *, struct RexxMsg *);
STATIC struct ARexxCmd Commands[] =
{
@@ -67,6 +75,10 @@ STATIC struct ARexxCmd Commands[] =
{"VERSION",RX_VERSION,rx_version,"VERSION/N,SVN=REVISION/N,RELEASE/S", 0, NULL, 0, 0, NULL },
{"SAVE",RX_SAVE,rx_save,"FILENAME/A", 0, NULL, 0, 0, NULL },
{"GETSCREENNAME",RX_PUBSCREEN,rx_pubscreen,NULL, 0, NULL, 0, 0, NULL },
+ {"BACK", RX_BACK, rx_back, "WINDOW/K/N, TAB/K/N", 0, NULL, 0, 0, NULL },
+ {"FORWARD", RX_FORWARD, rx_forward, "WINDOW/K/N, TAB/K/N", 0, NULL, 0, 0, NULL },
+ {"HOME", RX_HOME, rx_home, "WINDOW/K/N, TAB/K/N", 0, NULL, 0, 0, NULL },
+ {"RELOAD", RX_RELOAD, rx_reload, "FORCE/S, WINDOW/K/N, TAB/K/N", 0, NULL, 0, 0, NULL },
{ NULL, 0, NULL, NULL, 0, NULL, 0, 0, NULL }
};
@@ -280,3 +292,48 @@ STATIC VOID rx_pubscreen(struct ARexxCmd *cmd, struct RexxMsg *rxm __attribute__
cmd->ac_Result = result;
}
+
+STATIC VOID rx_back(struct ARexxCmd *cmd, struct RexxMsg *rxm __attribute__((unused)))
+{
+ if(curbw)
+ {
+ if(browser_window_back_available(curbw))
+ {
+ history_back(curbw, curbw->history);
+ }
+ }
+}
+
+STATIC VOID rx_forward(struct ARexxCmd *cmd, struct RexxMsg *rxm __attribute__((unused)))
+{
+ if(curbw)
+ {
+ if(browser_window_forward_available(curbw))
+ {
+ history_forward(curbw, curbw->history);
+ }
+ }
+}
+
+STATIC VOID rx_home(struct ARexxCmd *cmd, struct RexxMsg *rxm __attribute__((unused)))
+{
+ if(curbw)
+ {
+ browser_window_go(curbw, option_homepage_url, NULL, true);
+ }
+}
+
+STATIC VOID rx_reload(struct ARexxCmd *cmd, struct RexxMsg *rxm __attribute__((unused)))
+{
+ if(curbw)
+ {
+ if(cmd->ac_ArgList[0]) /* FORCE */
+ {
+ browser_window_reload(curbw, true);
+ }
+ else
+ {
+ browser_window_reload(curbw, false);
+ }
+ }
+}