// File: setwimdlcrossplatform.s
// Cross-platform window maximize for TSE
// Windows: Uses proven SendMessage method
// Linux: Uses wmctrl
// (filenamemacro=setwimdlcrossplatform.s) [kn, am, we, ri, 2025-11-01]
FORWARD PROC Main()
FORWARD PROC PROCWindowSetMaximizeDll(INTEGER i1)
FORWARD PROC PROCWindowSetMaximizeLinux()
// Windows DLL
DLL "<user32.dll>"
INTEGER PROC SendMessage(INTEGER hwnd, INTEGER msg, INTEGER wparam, INTEGER lparam) : "SendMessageA"
END
// Windows constants
#DEFINE SWP_NOSIZE 0x0001
#DEFINE WM_SYSCOMMAND 0x0112
#DEFINE SC_MAXIMIZE 0xF030
// Main entry point
PROC Main()
IF (WhichOS() == _WINDOWS_) OR (WhichOS() == _WINDOWS_NT_)
PROCWindowSetMaximizeDll(GetWinHandle())
ELSE
PROCWindowSetMaximizeLinux()
ENDIF
END
<F12> Main()
// library: window: set: maximize: dll <description>Windows maximize</description>
// <version>1.0.0.0.12</version> <version control></version control>
// (filenamemacro=setwimdl.s) [<Program>] [<Research>] [kn, am, we, 09-02-2011 21:03:28]
PROC PROCWindowSetMaximizeDll(INTEGER windowsHandleI)
SendMessage(windowsHandleI, WM_SYSCOMMAND, SC_MAXIMIZE, 0)
END
// library: window: set: maximize: linux <description>Linux maximize</description>
// <version>1.0.0.0.1</version> [ri, 2025-11-01]
PROC PROCWindowSetMaximizeLinux()
Dos("wmctrl -r :ACTIVE: -b add,maximized_vert,maximized_horz", _DONT_PROMPT_)
END