TSE: Linux + Microsoft Windows: How to maximize the screen?

3 views
Skip to first unread message

knud van eeden

unread,
Nov 1, 2025, 7:10:11 PM (4 days ago) Nov 1
to SemWare TSE Pro Text Editor
TSE: Linux + Microsoft Windows: How to maximize the screen?

Hello,

// 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


with friendly greetings
Knud van Eeden
setwimdlcrossplatform.s

knud van eeden

unread,
Nov 1, 2025, 7:12:15 PM (4 days ago) Nov 1
to SemWare TSE Pro Text Editor
TSE: Linux + Microsoft Windows: How to restore the screen?

Hello,

DLL "<user32.dll>"
 INTEGER PROC SendMessageA(INTEGER hwnd, INTEGER msg, INTEGER wparam, INTEGER lparam) : "SendMessageA"
END

#DEFINE WM_SYSCOMMAND 0x0112
#DEFINE SC_RESTORE    0xF120

INTEGER PROC RestoreWindows()
 SendMessageA(GetWinHandle(), WM_SYSCOMMAND, SC_RESTORE, 0)
 RETURN(TRUE)
END

INTEGER PROC RestoreLinux()
 RETURN(Dos("wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz", _DONT_PROMPT_) == 0)
END

PROC Main()
 IF ( WhichOS() == _WINDOWS_ ) OR ( WhichOS() == _WINDOWS_NT_ )
  RestoreWindows()
 ELSE
  RestoreLinux()
 ENDIF
END

resetwimdlcrossplatform.s
Reply all
Reply to author
Forward
0 new messages