Skip to content

Commit 355f9d4

Browse files
committed
WIP (10)
1 parent ba7267e commit 355f9d4

File tree

6 files changed

+43
-2
lines changed

6 files changed

+43
-2
lines changed

src/WinWebDiff/Resource.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
#define IDM_SYNC_SCROLL 161
4343
#define IDM_SYNC_CLICK 162
4444
#define IDM_SYNC_INPUT 163
45+
#define IDM_SYNC_GOBACKFORWARD 164
4546
#define IDM_CLEAR_DISK_CACHE 171
4647
#define IDM_CLEAR_COOKIES 172
4748
#define IDM_CLEAR_BROWSING_HISTORY 173

src/WinWebDiff/WinWebDiff.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -371,6 +371,7 @@ void UpdateMenuState(HWND hWnd)
371371
CheckMenuItem(hMenu, IDM_SYNC_SCROLL, m_pWebDiffWindow->GetSyncEventFlag(IWebDiffWindow::EVENT_SCROLL) ? MF_CHECKED : MF_UNCHECKED);
372372
CheckMenuItem(hMenu, IDM_SYNC_CLICK, m_pWebDiffWindow->GetSyncEventFlag(IWebDiffWindow::EVENT_CLICK) ? MF_CHECKED : MF_UNCHECKED);
373373
CheckMenuItem(hMenu, IDM_SYNC_INPUT, m_pWebDiffWindow->GetSyncEventFlag(IWebDiffWindow::EVENT_INPUT) ? MF_CHECKED : MF_UNCHECKED);
374+
CheckMenuItem(hMenu, IDM_SYNC_GOBACKFORWARD, m_pWebDiffWindow->GetSyncEventFlag(IWebDiffWindow::EVENT_GOBACKFORWARD) ? MF_CHECKED : MF_UNCHECKED);
374375
}
375376

376377
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)

src/WinWebDiff/WinWebDiff.rc

144 Bytes
Binary file not shown.

src/WinWebDiffLib/WebDiffWindow.hpp

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,24 @@ class CWebDiffWindow : public IWebDiffWindow
323323
{
324324
addEventListener(sender,ev.pane, nullptr);
325325
}
326+
else if (event == WebDiffEvent::GoBacked)
327+
{
328+
for (int pane = 0; pane < m_nPanes; ++pane)
329+
{
330+
if (ev.pane == pane)
331+
continue;
332+
m_webWindow[pane].GoBack();
333+
}
334+
}
335+
else if (event == WebDiffEvent::GoForwarded)
336+
{
337+
for (int pane = 0; pane < m_nPanes; ++pane)
338+
{
339+
if (ev.pane == pane)
340+
continue;
341+
m_webWindow[pane].GoForward();
342+
}
343+
}
326344
else if (event == WebDiffEvent::WebMessageReceived || event == WebDiffEvent::FrameWebMessageReceived)
327345
{
328346
std::wstring msg = m_webWindow[i].GetWebMessage();
@@ -1615,7 +1633,7 @@ class CWebDiffWindow : public IWebDiffWindow
16151633
bool m_bShowWordDifferences = true;
16161634
bool m_bSynchronizeEvents = true;
16171635
bool m_bCompareCompleted = false;
1618-
unsigned m_eventSyncFlags = EVENT_SCROLL | EVENT_CLICK | EVENT_INPUT;
1636+
unsigned m_eventSyncFlags = EVENT_SCROLL | EVENT_CLICK | EVENT_INPUT | EVENT_GOBACKFORWARD;
16191637
CompareState m_compareState = NOT_COMPARED;
16201638
IWebDiffWindow::ColorSettings m_colorSettings = {
16211639
RGB(239, 203, 5), RGB(192, 192, 192), RGB(0, 0, 0),

src/WinWebDiffLib/WebWindow.hpp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -394,6 +394,20 @@ class CWebWindow
394394
return hr;
395395
}
396396

397+
HRESULT GoBack()
398+
{
399+
if (!GetActiveWebView())
400+
return E_FAIL;
401+
return GetActiveWebView()->GoBack();
402+
}
403+
404+
HRESULT GoForward()
405+
{
406+
if (!GetActiveWebView())
407+
return E_FAIL;
408+
return GetActiveWebView()->GoForward();
409+
}
410+
397411
HRESULT Reload()
398412
{
399413
if (!GetActiveWebView())
@@ -1872,11 +1886,17 @@ class CWebWindow
18721886
{
18731887
case ID_GOBACK:
18741888
if (GetActiveWebView())
1889+
{
18751890
GetActiveWebView()->GoBack();
1891+
m_eventHandler(WebDiffEvent::GoBacked, nullptr, nullptr);
1892+
}
18761893
break;
18771894
case ID_GOFORWARD:
18781895
if (GetActiveWebView())
1896+
{
18791897
GetActiveWebView()->GoForward();
1898+
m_eventHandler(WebDiffEvent::GoForwarded, nullptr, nullptr);
1899+
}
18801900
break;
18811901
case ID_RELOAD:
18821902
if (GetActiveWebView())

src/WinWebDiffLib/WinWebDiffLib.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
struct WebDiffEvent
88
{
9-
enum EVENT_TYPE { ZoomFactorChanged, NewWindowRequested, WindowCloseRequested, NavigationStarting, FrameNavigationStarting, HistoryChanged, SourceChanged, DocumentTitleChanged, NavigationCompleted, FrameNavigationCompleted, WebMessageReceived, FrameWebMessageReceived, TabChanged, HSCROLL, VSCROLL, CompareStateChanged };
9+
enum EVENT_TYPE { ZoomFactorChanged, NewWindowRequested, WindowCloseRequested, NavigationStarting, FrameNavigationStarting, HistoryChanged, SourceChanged, DocumentTitleChanged, NavigationCompleted, FrameNavigationCompleted, WebMessageReceived, FrameWebMessageReceived, GoBacked, GoForwarded, TabChanged, HSCROLL, VSCROLL, CompareStateChanged };
1010
EVENT_TYPE type;
1111
int pane;
1212
};
@@ -61,6 +61,7 @@ struct IWebDiffWindow
6161
EVENT_SCROLL = ( 1 << 0 ),
6262
EVENT_CLICK = ( 1 << 1 ),
6363
EVENT_INPUT = ( 1 << 2 ),
64+
EVENT_GOBACKFORWARD = ( 1 << 3 ),
6465
};
6566
enum CompareState
6667
{

0 commit comments

Comments
 (0)