Wrote back & history support.
Correctly implemented << and >> buttons.
Added support for page level macros.
diff --git a/programs/winhelp/macro.c b/programs/winhelp/macro.c
index fb3b396..dcf8750 100644
--- a/programs/winhelp/macro.c
+++ b/programs/winhelp/macro.c
@@ -222,12 +222,32 @@
void MACRO_Back(void)
{
- WINE_FIXME("()\n");
+ WINHELP_WINDOW* win = Globals.active_win;
+
+ WINE_TRACE("()\n");
+
+ if (win && win->backIndex >= 2)
+ WINHELP_CreateHelpWindow(win->back[--win->backIndex - 1],
+ win->info, SW_SHOW);
}
void MACRO_BackFlush(void)
{
- WINE_FIXME("()\n");
+ WINHELP_WINDOW* win = Globals.active_win;
+
+ WINE_TRACE("()\n");
+
+ if (win)
+ {
+ int i;
+
+ for (i = 0; i < win->backIndex; i++)
+ {
+ HLPFILE_FreeHlpFile(win->back[i]->file);
+ win->back[i] = NULL;
+ }
+ win->backIndex = 0;
+ }
}
void MACRO_BookmarkDefine(void)
@@ -599,7 +619,14 @@
void MACRO_History(void)
{
- WINE_FIXME("()\n");
+ WINE_TRACE("()\n");
+
+ if (Globals.active_win && !Globals.active_win->hHistoryWnd)
+ {
+ HWND hWnd = CreateWindow(HISTORY_WIN_CLASS_NAME, "History", WS_OVERLAPPEDWINDOW,
+ 0, 0, 0, 0, 0, 0, Globals.hInstance, Globals.active_win);
+ ShowWindow(hWnd, SW_NORMAL);
+ }
}
void MACRO_IfThen(BOOL b, LPCSTR t)
@@ -717,7 +744,9 @@
HLPFILE_PAGE* page;
WINE_TRACE("()\n");
- if ((page = Globals.active_win->page->next) != NULL)
+ page = Globals.active_win->page;
+ page = HLPFILE_PageByOffset(page->file, page->browse_fwd);
+ if (page)
{
page->file->wRefCount++;
WINHELP_CreateHelpWindow(page, Globals.active_win->info, SW_NORMAL);
@@ -754,7 +783,9 @@
HLPFILE_PAGE* page;
WINE_TRACE("()\n");
- if ((page = Globals.active_win->page->prev) != NULL)
+ page = Globals.active_win->page;
+ page = HLPFILE_PageByOffset(page->file, page->browse_bwd);
+ if (page)
{
page->file->wRefCount++;
WINHELP_CreateHelpWindow(page, Globals.active_win->info, SW_NORMAL);