From 10b6d06f1523ca7e5ef5e1cf73f6ff6a9f1bd291 Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Mon, 9 Nov 2015 17:52:46 +0100 Subject: [PATCH] ieframe: Store toolbar handle in InternetEplorer. Signed-off-by: Jacek Caban Signed-off-by: Alexandre Julliard --- dlls/ieframe/ieframe.h | 1 + dlls/ieframe/iexplore.c | 50 ++++++++++++++++++++++++------------------------- 2 files changed, 25 insertions(+), 26 deletions(-) diff --git a/dlls/ieframe/ieframe.h b/dlls/ieframe/ieframe.h index 5806107eb67..f0ca235d4a9 100644 --- a/dlls/ieframe/ieframe.h +++ b/dlls/ieframe/ieframe.h @@ -230,6 +230,7 @@ struct InternetExplorer { HWND frame_hwnd; HWND status_hwnd; + HWND toolbar_hwnd; HMENU menu; BOOL nohome; diff --git a/dlls/ieframe/iexplore.c b/dlls/ieframe/iexplore.c index 6260476465f..18437c9436b 100644 --- a/dlls/ieframe/iexplore.c +++ b/dlls/ieframe/iexplore.c @@ -402,7 +402,7 @@ static void ie_dialog_about(HWND hwnd) DestroyIcon(icon); } -static void add_tb_separator(HWND hwnd) +static void add_tb_separator(InternetExplorer *ie) { TBBUTTON btn; @@ -410,10 +410,10 @@ static void add_tb_separator(HWND hwnd) btn.iBitmap = 3; btn.fsStyle = BTNS_SEP; - SendMessageW(hwnd, TB_ADDBUTTONSW, 1, (LPARAM)&btn); + SendMessageW(ie->toolbar_hwnd, TB_ADDBUTTONSW, 1, (LPARAM)&btn); } -static void add_tb_button(HWND hwnd, int bmp, int cmd, int strId) +static void add_tb_button(InternetExplorer *ie, int bmp, int cmd, int strId) { TBBUTTON btn; WCHAR buf[30]; @@ -427,14 +427,13 @@ static void add_tb_button(HWND hwnd, int bmp, int cmd, int strId) btn.dwData = 0; btn.iString = (INT_PTR)buf; - SendMessageW(hwnd, TB_ADDBUTTONSW, 1, (LPARAM)&btn); + SendMessageW(ie->toolbar_hwnd, TB_ADDBUTTONSW, 1, (LPARAM)&btn); } -static void create_rebar(HWND hwnd) +static void create_rebar(InternetExplorer *ie) { HWND hwndRebar; HWND hwndAddress; - HWND hwndToolbar; REBARINFO rebarinf; REBARBANDINFOW bandinf; WCHAR addr[40]; @@ -445,7 +444,7 @@ static void create_rebar(HWND hwnd) hwndRebar = CreateWindowExW(WS_EX_TOOLWINDOW, REBARCLASSNAMEW, NULL, WS_CHILD|WS_VISIBLE|WS_CLIPSIBLINGS|WS_CLIPCHILDREN|RBS_VARHEIGHT|CCS_TOP|CCS_NODIVIDER, 0, 0, 0, 0, - hwnd, (HMENU)IDC_BROWSE_REBAR, ieframe_instance, NULL); + ie->frame_hwnd, (HMENU)IDC_BROWSE_REBAR, ieframe_instance, NULL); rebarinf.cbSize = sizeof(rebarinf); rebarinf.fMask = 0; @@ -453,29 +452,29 @@ static void create_rebar(HWND hwnd) SendMessageW(hwndRebar, RB_SETBARINFO, 0, (LPARAM)&rebarinf); - hwndToolbar = CreateWindowExW(TBSTYLE_EX_MIXEDBUTTONS, TOOLBARCLASSNAMEW, NULL, TBSTYLE_FLAT | WS_CHILD | WS_VISIBLE | CCS_NORESIZE, + ie->toolbar_hwnd = CreateWindowExW(TBSTYLE_EX_MIXEDBUTTONS, TOOLBARCLASSNAMEW, NULL, TBSTYLE_FLAT | WS_CHILD | WS_VISIBLE | CCS_NORESIZE, 0, 0, 0, 0, hwndRebar, (HMENU)IDC_BROWSE_TOOLBAR, ieframe_instance, NULL); imagelist = ImageList_LoadImageW(ieframe_instance, MAKEINTRESOURCEW(IDB_IETOOLBAR), 32, 0, CLR_NONE, IMAGE_BITMAP, LR_CREATEDIBSECTION); - SendMessageW(hwndToolbar, TB_SETIMAGELIST, 0, (LPARAM)imagelist); - SendMessageW(hwndToolbar, TB_BUTTONSTRUCTSIZE, sizeof(TBBUTTON), 0); - add_tb_button(hwndToolbar, 0, ID_BROWSE_BACK, IDS_TB_BACK); - add_tb_button(hwndToolbar, 1, ID_BROWSE_FORWARD, IDS_TB_FORWARD); - add_tb_button(hwndToolbar, 2, ID_BROWSE_STOP, IDS_TB_STOP); - add_tb_button(hwndToolbar, 3, ID_BROWSE_REFRESH, IDS_TB_REFRESH); - add_tb_button(hwndToolbar, 4, ID_BROWSE_HOME, IDS_TB_HOME); - add_tb_separator(hwndToolbar); - add_tb_button(hwndToolbar, 5, ID_BROWSE_PRINT, IDS_TB_PRINT); - SendMessageW(hwndToolbar, TB_SETBUTTONSIZE, 0, MAKELPARAM(55,50)); - SendMessageW(hwndToolbar, TB_GETMAXSIZE, 0, (LPARAM)&toolbar_size); + SendMessageW(ie->toolbar_hwnd, TB_SETIMAGELIST, 0, (LPARAM)imagelist); + SendMessageW(ie->toolbar_hwnd, TB_BUTTONSTRUCTSIZE, sizeof(TBBUTTON), 0); + add_tb_button(ie, 0, ID_BROWSE_BACK, IDS_TB_BACK); + add_tb_button(ie, 1, ID_BROWSE_FORWARD, IDS_TB_FORWARD); + add_tb_button(ie, 2, ID_BROWSE_STOP, IDS_TB_STOP); + add_tb_button(ie, 3, ID_BROWSE_REFRESH, IDS_TB_REFRESH); + add_tb_button(ie, 4, ID_BROWSE_HOME, IDS_TB_HOME); + add_tb_separator(ie); + add_tb_button(ie, 5, ID_BROWSE_PRINT, IDS_TB_PRINT); + SendMessageW(ie->toolbar_hwnd, TB_SETBUTTONSIZE, 0, MAKELPARAM(55,50)); + SendMessageW(ie->toolbar_hwnd, TB_GETMAXSIZE, 0, (LPARAM)&toolbar_size); bandinf.cbSize = sizeof(bandinf); bandinf.fMask = RBBIM_STYLE | RBBIM_CHILD | RBBIM_CHILDSIZE; bandinf.fStyle = RBBS_CHILDEDGE; bandinf.cxMinChild = toolbar_size.cx; bandinf.cyMinChild = toolbar_size.cy+2; - bandinf.hwndChild = hwndToolbar; + bandinf.hwndChild = ie->toolbar_hwnd; SendMessageW(hwndRebar, RB_INSERTBANDW, -1, (LPARAM)&bandinf); @@ -497,13 +496,15 @@ static LRESULT iewnd_OnCreate(HWND hwnd, LPCREATESTRUCTW lpcs) InternetExplorer* This = (InternetExplorer*)lpcs->lpCreateParams; SetWindowLongPtrW(hwnd, 0, (LONG_PTR) lpcs->lpCreateParams); + This->doc_host.frame_hwnd = This->frame_hwnd = hwnd; + This->menu = create_ie_menu(); This->status_hwnd = CreateStatusWindowW(WS_VISIBLE|WS_CHILD|SBT_NOBORDERS|CCS_NODIVIDER, NULL, hwnd, IDC_BROWSE_STATUSBAR); SendMessageW(This->status_hwnd, SB_SIMPLE, TRUE, 0); - create_rebar(hwnd); + create_rebar(This); return 0; } @@ -567,9 +568,7 @@ static LRESULT iewnd_OnNotify(InternetExplorer *This, WPARAM wparam, LPARAM lpar static LRESULT iewnd_OnDestroy(InternetExplorer *This) { - HWND hwndRebar = GetDlgItem(This->frame_hwnd, IDC_BROWSE_REBAR); - HWND hwndToolbar = GetDlgItem(hwndRebar, IDC_BROWSE_TOOLBAR); - HIMAGELIST list = (HIMAGELIST)SendMessageW(hwndToolbar, TB_GETIMAGELIST, 0, 0); + HIMAGELIST list = (HIMAGELIST)SendMessageW(This->toolbar_hwnd, TB_GETIMAGELIST, 0, 0); TRACE("%p\n", This); @@ -722,7 +721,7 @@ void unregister_iewindow_class(void) static void create_frame_hwnd(InternetExplorer *This) { - This->frame_hwnd = CreateWindowExW( + CreateWindowExW( WS_EX_WINDOWEDGE, szIEWinFrame, wszWineInternetExplorer, WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME @@ -730,7 +729,6 @@ static void create_frame_hwnd(InternetExplorer *This) CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL /* FIXME */, ieframe_instance, This); - This->doc_host.frame_hwnd = This->frame_hwnd; create_doc_view_hwnd(&This->doc_host); } -- 2.11.4.GIT