rodecomp/Source/Client/Browser/BrowserWindowSizing.cpp
ragnarok-clanker 248b618fda Decompile 5 functions in Source/Client/Browser/BrowserFrame.cpp, Source/Client/Browser/BrowserCursor.cpp, ...
Batch #14766 by kyoshi: 5 byte-identical, 0 confirmed by peer review.

- fn_17419 CWebBrowser::Poll: byte-identical (already on main)
- fn_45430 CWebBrowser::RefreshSize: byte-identical
- fn_45438 CWebBrowser::PollCursor: byte-identical
- fn_45439 CWebBrowser::SetCursorState: byte-identical
- fn_17414 CWebBrowser::Normalize: byte-identical (already on main)

Merged automatically: every function is byte-identical to the original.
2026-11-07 17:57:21 +00:00

69 lines
1.8 KiB
C++

#include "Client/Browser/WebBrowser.h"
// OFFSET: 0x00AB3060
// FUNCTION: fn_17421
void CWebBrowser::Resize(int requestedWidth, int requestedHeight) {
if (!this->browser) {
return;
}
this->width = requestedWidth == this->screenWidth ? requestedWidth - 1 : requestedWidth;
int height = requestedHeight == this->screenHeight ? requestedHeight - 1 : requestedHeight;
int toolbarHeight = 0;
if (this->rebar && this->auxiliaryVisible != 0) {
RECT rectangle;
GetClientRect(this->rebar, &rectangle);
toolbarHeight = rectangle.bottom - rectangle.top + 4;
}
this->height = height - toolbarHeight;
this->browser->put_Width(this->width);
this->browser->put_Height(this->height);
if (this->rebar) {
SetWindowPos(this->rebar, nullptr, 0, 0, requestedWidth, requestedHeight, SWP_NOMOVE);
}
}
// INLINED
int CWebBrowser::AuxiliaryHeight() {
if (this->rebar && this->auxiliaryVisible != 0) {
RECT rectangle;
GetClientRect(this->rebar, &rectangle);
return rectangle.bottom - rectangle.top + 4;
}
return 0;
}
// OFFSET: 0x00AB3120
// FUNCTION: fn_17422
void CWebBrowser::ShowAuxiliary(unsigned char value) {
if (!this->browser) {
return;
}
this->auxiliaryVisible = value;
if (!this->rebar) {
return;
}
this->browser->put_Visible(VARIANT_FALSE);
ShowWindow(this->rebar, this->auxiliaryVisible != 0 ? SW_SHOW : SW_HIDE);
if (this->externalEvents) {
RECT rectangle;
GetWindowRect(this->host, &rectangle);
POINT origin{};
ClientToScreen(this->host, &origin);
this->browser->put_Left(-origin.x);
}
this->browser->put_Top(this->AuxiliaryHeight());
RECT rectangle;
GetClientRect(this->host, &rectangle);
this->Resize(rectangle.right - rectangle.left, rectangle.bottom - rectangle.top);
this->browser->put_Visible(VARIANT_TRUE);
}