From 040733a9fd75b356d359d76cf4b78b58e5c3bdea Mon Sep 17 00:00:00 2001 From: mi4code <114027049+mi4code@users.noreply.github.com> Date: Tue, 15 Apr 2025 22:22:18 +0200 Subject: [PATCH 01/12] add WindowControls --- hui_python.cc | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 58 insertions(+), 1 deletion(-) diff --git a/hui_python.cc b/hui_python.cc index 3d553d3..634b0b5 100644 --- a/hui_python.cc +++ b/hui_python.cc @@ -42,7 +42,64 @@ PYBIND11_MODULE(HUI, m) { .def("exit", &WebView::exit) ; + + + py::class_(m, "WindowControls") + .def(py::init(), py::arg("backend"), py::arg("handle")) + + .def("set_type", &WindowControls::set_type, py::arg("type")) + .def("get_type", &WindowControls::get_type) + + .def("set_layer", &WindowControls::set_layer, py::arg("layer")) + .def("get_layer", &WindowControls::get_layer) + + .def("set_geometry", &WindowControls::set_geometry, py::arg("geometry")) + .def("get_geometry", &WindowControls::get_geometry) + + .def("set_opacity", &WindowControls::set_opacity, py::arg("opacity")) + .def("get_opacity", &WindowControls::get_opacity) + + .def("set_id", &WindowControls::set_id, py::arg("id")) + .def("get_id", &WindowControls::get_id) + + .def("set_title", &WindowControls::set_title, py::arg("title")) + .def("get_title", &WindowControls::get_title) + + .def("set_exclusive_zone", &WindowControls::set_exclusive_zone, py::arg("zone")) + .def("get_exclusive_zone", &WindowControls::get_exclusive_zone) - // TODO: WindowControls + .def("set_focused", &WindowControls::set_focused, py::arg("activated")) + .def("get_focused", &WindowControls::get_focused) + + .def("set_input_mode_keyboard", &WindowControls::set_input_mode_keyboard, py::arg("mode")) + .def("get_input_mode_keyboard", &WindowControls::get_input_mode_keyboard) + + ; + + m.attr("WT_TOPLEVEL_SSD") = WT_TOPLEVEL_SSD; + m.attr("WT_TOPLEVEL_CSD") = WT_TOPLEVEL_CSD; + m.attr("WT_DESKTOP_COMPONENT") = WT_DESKTOP_COMPONENT; + m.attr("WT_POPOVER") = WT_POPOVER; + + m.attr("WL_BACKGROUND") = WL_BACKGROUND; + m.attr("WL_BOTTOM") = WL_BOTTOM; + m.attr("WL_TOP") = WL_TOP; + m.attr("WL_OVERLAY") = WL_OVERLAY; + m.attr("WL_TOPLEAST") = WL_TOPLEAST; + m.attr("WL_TOPMOST") = WL_TOPMOST; + + m.attr("WS_HIDDEN") = WS_HIDDEN; + m.attr("WS_NOT_HIDDEN") = WS_NOT_HIDDEN; + m.attr("WS_MINIMIZED") = WS_MINIMIZED; + m.attr("WS_NOT_MINIMIZED") = WS_NOT_MINIMIZED; + m.attr("WS_FULLSCREEN") = WS_FULLSCREEN; + m.attr("WS_NOT_FULLSCREEN") = WS_NOT_FULLSCREEN; + m.attr("WS_MAXIMIZED") = WS_MAXIMIZED; + m.attr("WS_NOT_MAXIMIZED") = WS_NOT_MAXIMIZED; + + m.attr("WIM_ALWAYS") = WIM_ALWAYS; + m.attr("WIM_AUTO_WINDOW") = WIM_AUTO_WINDOW; + m.attr("WIM_NEVER") = WIM_NEVER; + } From 28f1b631047763475ed70b37010ce2885afba8cc Mon Sep 17 00:00:00 2001 From: mi4code <114027049+mi4code@users.noreply.github.com> Date: Tue, 15 Apr 2025 22:25:33 +0200 Subject: [PATCH 02/12] build python --- .github/workflows/build.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d313705..6620cdd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -18,6 +18,9 @@ jobs: chmod +x ./build_linux_gtk3.sh sudo apt update ./build_linux_gtk3.sh --dependencies --deploy --tests + cd HUI-linux-x86_64-webkit-gtk3 + python3 ../build_python.py + - name: Upload build artifacts uses: actions/upload-artifact@v4 @@ -38,6 +41,8 @@ jobs: run: | choco install 7zip -y ./build_win_cef.bat --dependencies --deploy --tests + cd HUI-win-AMD64-blink-cef + python ../build_python.py - name: Upload build artifacts uses: actions/upload-artifact@v4 From 40698bd7eb848fd854efb6b0840b307a08924bd2 Mon Sep 17 00:00:00 2001 From: mi4code <114027049+mi4code@users.noreply.github.com> Date: Tue, 15 Apr 2025 22:28:20 +0200 Subject: [PATCH 03/12] make automation-friendly --- build_python.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build_python.py b/build_python.py index 7c43efd..87349e5 100644 --- a/build_python.py +++ b/build_python.py @@ -56,7 +56,7 @@ print("unsupported os, sorry") -input() + """ OLD NOTES: @@ -81,4 +81,4 @@ -""" \ No newline at end of file +""" From 996e8bff3f7b55f923de5e9918aafd86af7f6e35 Mon Sep 17 00:00:00 2001 From: mi4code <114027049+mi4code@users.noreply.github.com> Date: Tue, 15 Apr 2025 22:43:42 +0200 Subject: [PATCH 04/12] fix msvc cmd tools --- .github/workflows/build.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6620cdd..73b6695 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -37,6 +37,11 @@ jobs: - name: Checkout repository uses: actions/checkout@v3 + - name: MSVC cmd + uses: TheMrMilchmann/setup-msvc-dev@v3 + with: + arch: x64 + - name: Run script run: | choco install 7zip -y From 21782623f7a9198cc2a20e64ad1f2ca182433cbc Mon Sep 17 00:00:00 2001 From: mi4code <114027049+mi4code@users.noreply.github.com> Date: Tue, 15 Apr 2025 22:54:47 +0200 Subject: [PATCH 05/12] build_python.py: expect to run from msvc cmd --- build_python.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build_python.py b/build_python.py index 87349e5..edf3c0e 100644 --- a/build_python.py +++ b/build_python.py @@ -26,7 +26,8 @@ libpath = sys.base_prefix # C:\Program Files\Python312 pyname = "python"+str(sys.version_info.major)+str(sys.version_info.minor) # python312 suffix = sysconfig.get_config_var('EXT_SUFFIX') # .cp312-win_amd64.pyd - os.system("call \"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Auxiliary\\Build\\vcvars64.bat\" && cl /LD /EHsc /O2 /Fe:HUI"+suffix+" ../hui_python.cc "+includes+" /I\"..\" /link /LIBPATH:\""+libpath+"\\libs"+"\" "+pyname+".lib libHUI.lib") + #os.system("call \"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Auxiliary\\Build\\vcvars64.bat\" && cl /LD /EHsc /O2 /Fe:HUI"+suffix+" ../hui_python.cc "+includes+" /I\"..\" /link /LIBPATH:\""+libpath+"\\libs"+"\" "+pyname+".lib libHUI.lib") + os.system("cl /LD /EHsc /O2 /Fe:HUI"+suffix+" ../hui_python.cc "+includes+" /I\"..\" /link /LIBPATH:\""+libpath+"\\libs"+"\" "+pyname+".lib libHUI.lib") print("done") From ec82fe150a0b5f6ad1ffce56fc7c96bde3b80d5e Mon Sep 17 00:00:00 2001 From: mi4code <114027049+mi4code@users.noreply.github.com> Date: Tue, 15 Apr 2025 23:02:45 +0200 Subject: [PATCH 06/12] test --- .github/workflows/build.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 73b6695..6cbbfaf 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -46,7 +46,6 @@ jobs: run: | choco install 7zip -y ./build_win_cef.bat --dependencies --deploy --tests - cd HUI-win-AMD64-blink-cef python ../build_python.py - name: Upload build artifacts From 16a4f055b0c007b843369d97d882fcb3cd27f2d4 Mon Sep 17 00:00:00 2001 From: mi4code <114027049+mi4code@users.noreply.github.com> Date: Tue, 15 Apr 2025 23:15:58 +0200 Subject: [PATCH 07/12] undo previous --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6cbbfaf..73b6695 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -46,6 +46,7 @@ jobs: run: | choco install 7zip -y ./build_win_cef.bat --dependencies --deploy --tests + cd HUI-win-AMD64-blink-cef python ../build_python.py - name: Upload build artifacts From daeabdb73d5541f167c1ca9576839b99c3b62c2c Mon Sep 17 00:00:00 2001 From: mi4code <114027049+mi4code@users.noreply.github.com> Date: Tue, 15 Apr 2025 23:20:45 +0200 Subject: [PATCH 08/12] debug print --- build_python.py | 1 + 1 file changed, 1 insertion(+) diff --git a/build_python.py b/build_python.py index edf3c0e..3f7403e 100644 --- a/build_python.py +++ b/build_python.py @@ -27,6 +27,7 @@ pyname = "python"+str(sys.version_info.major)+str(sys.version_info.minor) # python312 suffix = sysconfig.get_config_var('EXT_SUFFIX') # .cp312-win_amd64.pyd #os.system("call \"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Auxiliary\\Build\\vcvars64.bat\" && cl /LD /EHsc /O2 /Fe:HUI"+suffix+" ../hui_python.cc "+includes+" /I\"..\" /link /LIBPATH:\""+libpath+"\\libs"+"\" "+pyname+".lib libHUI.lib") + print("cl /LD /EHsc /O2 /Fe:HUI"+suffix+" ../hui_python.cc "+includes+" /I\"..\" /link /LIBPATH:\""+libpath+"\\libs"+"\" "+pyname+".lib libHUI.lib") os.system("cl /LD /EHsc /O2 /Fe:HUI"+suffix+" ../hui_python.cc "+includes+" /I\"..\" /link /LIBPATH:\""+libpath+"\\libs"+"\" "+pyname+".lib libHUI.lib") print("done") From 9802f64a1f30c96b6e5d35630a12e2a04f46ed1c Mon Sep 17 00:00:00 2001 From: mi4code <114027049+mi4code@users.noreply.github.com> Date: Tue, 15 Apr 2025 23:26:50 +0200 Subject: [PATCH 09/12] no print --- build_python.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build_python.py b/build_python.py index 3f7403e..473bc18 100644 --- a/build_python.py +++ b/build_python.py @@ -27,7 +27,7 @@ pyname = "python"+str(sys.version_info.major)+str(sys.version_info.minor) # python312 suffix = sysconfig.get_config_var('EXT_SUFFIX') # .cp312-win_amd64.pyd #os.system("call \"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Auxiliary\\Build\\vcvars64.bat\" && cl /LD /EHsc /O2 /Fe:HUI"+suffix+" ../hui_python.cc "+includes+" /I\"..\" /link /LIBPATH:\""+libpath+"\\libs"+"\" "+pyname+".lib libHUI.lib") - print("cl /LD /EHsc /O2 /Fe:HUI"+suffix+" ../hui_python.cc "+includes+" /I\"..\" /link /LIBPATH:\""+libpath+"\\libs"+"\" "+pyname+".lib libHUI.lib") + #print("cl /LD /EHsc /O2 /Fe:HUI"+suffix+" ../hui_python.cc "+includes+" /I\"..\" /link /LIBPATH:\""+libpath+"\\libs"+"\" "+pyname+".lib libHUI.lib") os.system("cl /LD /EHsc /O2 /Fe:HUI"+suffix+" ../hui_python.cc "+includes+" /I\"..\" /link /LIBPATH:\""+libpath+"\\libs"+"\" "+pyname+".lib libHUI.lib") print("done") From 66fc960203ab65d820bb6f796068f399a1cf1a01 Mon Sep 17 00:00:00 2001 From: mi4code <114027049+mi4code@users.noreply.github.com> Date: Tue, 15 Apr 2025 23:32:42 +0200 Subject: [PATCH 10/12] clean --- build_python.py | 1 - 1 file changed, 1 deletion(-) diff --git a/build_python.py b/build_python.py index 473bc18..edf3c0e 100644 --- a/build_python.py +++ b/build_python.py @@ -27,7 +27,6 @@ pyname = "python"+str(sys.version_info.major)+str(sys.version_info.minor) # python312 suffix = sysconfig.get_config_var('EXT_SUFFIX') # .cp312-win_amd64.pyd #os.system("call \"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Auxiliary\\Build\\vcvars64.bat\" && cl /LD /EHsc /O2 /Fe:HUI"+suffix+" ../hui_python.cc "+includes+" /I\"..\" /link /LIBPATH:\""+libpath+"\\libs"+"\" "+pyname+".lib libHUI.lib") - #print("cl /LD /EHsc /O2 /Fe:HUI"+suffix+" ../hui_python.cc "+includes+" /I\"..\" /link /LIBPATH:\""+libpath+"\\libs"+"\" "+pyname+".lib libHUI.lib") os.system("cl /LD /EHsc /O2 /Fe:HUI"+suffix+" ../hui_python.cc "+includes+" /I\"..\" /link /LIBPATH:\""+libpath+"\\libs"+"\" "+pyname+".lib libHUI.lib") print("done") From b660abacb6fcde6fcf6d35dd377ccf9064e95d69 Mon Sep 17 00:00:00 2001 From: mi4code <114027049+mi4code@users.noreply.github.com> Date: Tue, 15 Apr 2025 23:52:44 +0200 Subject: [PATCH 11/12] Update build.yml --- .github/workflows/build.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 73b6695..42e8c2a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,6 +13,11 @@ jobs: - name: Checkout repository uses: actions/checkout@v3 + - name: Python version + uses: actions/setup-python@v5 + with: + python-version: 3.13 + - name: Run script run: | chmod +x ./build_linux_gtk3.sh @@ -37,6 +42,11 @@ jobs: - name: Checkout repository uses: actions/checkout@v3 + - name: Python version + uses: actions/setup-python@v5 + with: + python-version: 3.13 + - name: MSVC cmd uses: TheMrMilchmann/setup-msvc-dev@v3 with: From 5265e090fc5a836c78180471eea767639788b84c Mon Sep 17 00:00:00 2001 From: mi4code <114027049+mi4code@users.noreply.github.com> Date: Wed, 16 Apr 2025 00:09:15 +0200 Subject: [PATCH 12/12] fix py linux --- .github/workflows/build.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 42e8c2a..79735ab 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,10 +13,10 @@ jobs: - name: Checkout repository uses: actions/checkout@v3 - - name: Python version - uses: actions/setup-python@v5 - with: - python-version: 3.13 + # - name: Python version + # uses: actions/setup-python@v5 + # with: + # python-version: 3.13 - name: Run script run: |