Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[1805] Prototype More Functions #2263

Merged
merged 12 commits into from
Jul 22, 2024

Conversation

Rixxan
Copy link
Contributor

@Rixxan Rixxan commented Jun 18, 2024

Description

This PR hands over duties for a number of direct calls to the Win32 API to the pywin32 library. These calls help properly prototype a number of used functions and reduce reliance on the direct calling of the Win32 API.

This has the added benefit of helping to properly set up the code to be more stable and reliable when using built 64-bit versions of EDMC. Where pywin32 isn't available, proper prototyping of direct win32 api calls h ave been performed to enhance stability.

Additionally, makes changes to enable the usage of game_running() on Linux.

Type of Change

Enhancement

How Tested

Tested using multiple local builds of EDMC on 32 and 64 bit Windows and ensuring the program executes properly.

Notes

Related to #1805 (though a second look is due when pywin32 307 comes out)
Replaces #1808
Closes #610

@Rixxan Rixxan added enhancement code cleanup Cleaning up code python Pull requests that update Python code labels Jun 18, 2024
@Rixxan Rixxan added this to the 5.12 milestone Jun 18, 2024
@Rixxan Rixxan requested a review from C1701D June 18, 2024 16:34
@Rixxan Rixxan self-assigned this Jun 18, 2024
@Rixxan Rixxan marked this pull request as ready for review June 21, 2024 01:02
@Rixxan Rixxan added the Ready for Review PRs ready for review and merge label Jun 23, 2024
ElSaico added a commit to ElSaico/EDMarketConnector that referenced this pull request Jun 24, 2024
Also updated theme.py to pywin32 ahead of EDCD#2263, in order to minimize the merging mess
@Rixxan Rixxan merged commit 5c5682d into EDCD:develop Jul 22, 2024
2 checks passed
@Rixxan Rixxan deleted the enhancement/1805/additional-prototyping branch July 22, 2024 04:16
Balvald added a commit to Balvald/EDMarketConnector that referenced this pull request Feb 7, 2025
* Excluded ttk widgets from theme.theme

* Changed all main window widgets to ttk

* Fixed type signatures caught up by mypy

* As I was saying, fixed type signatures...

* meh

* We don't need to actually change the killswitch

* Added JSON theme

* Simplified style, fixed HyperlinkLabel underline font

* Set baseline for themes

* Integrated ttk themes in theme.apply()

* oops

* Leftover import

* Applying theme palette to Tk widgets more reliably

* Caught a plugin using theme.register() directly, so reinstated as stub

* Added Ttk catalog plugin (enabled by flag)

* Fixed TTK Catalog positioning

* Ttk catalog: replaced alternative styles with HyperlinkLabel frame

* Nicer labels

* Using clam as the base ttk theme on Windows

The native themes - vista, xpnative, winnative - use elements (e.g. buttons, notebooks) whose customization is very limited; most notably, their background colors cannot be changed

* Added Tk widgets to Ttk catalog for comparison

* Theme in pure Tcl

* Fixed theme font

* Ttk catalog: properly labeled Tk widgets

* Added default theme; final touches in dark?

* flake8

* mypy

* Themes as tcl packages, deprecated most of myNotebook

* HyperlinkLabel is a Button. Obviously.

* Fixed underline font

* A possible solution for HyperlinkLabel on the way?

* Dropped most of myNotebook from core plugins (except for EntryMenu)

* HyperlinkLabel seems to work now

* Dropped unnecessary tk call

* Dropping justify config in HyperlinkLabel

* Slight cleanup on font loading code

- why two ifs for linux at the beginning?
- using pathlib operator instead of os.path.join
- FR_NOT_ENUM is not used
- AddFontResourceExW.restypes should be argtypes
- AddFontResourceExW has only one signature so argtypes is pointless anyway

* Added check to whether Euro Caps actually loads on Windows

* Some words of encouragement

* Better deprecation notices on theme.register() and theme.update()

* Something to the logs

* Proper theme/myNotebook deprecation warnings

* We don't need most of nb now, so...

* Dropped ttk::theme lookup on theme files

* Dropped post-merge repetition

* Dropped alternative title bar and update button

* Using native dark mode title bar on Windows

* Removed widget switcheroo, all themes use the same menu

* Style tweaks

* Customizing title bar via PyWinRT

Also updated theme.py to pywin32 ahead of EDCD#2263, in order to minimize the merging mess

* Import shenanigans now that pywinrt works

* We no longer need those drag events

* Bump WinRT dependency (as it missed a DLL)

* Post-merge clarity

* Fixed pywin32 call

* whoops

* Added gap for custom title bar under Transparent

* Using PyWinRT visual layer

* Post-merge ttk catalog fix

* Some simplification and making mypy happier

* Ditched visual layer + setting Windows caption button colors

---------

yoink
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
code cleanup Cleaning up code enhancement python Pull requests that update Python code Ready for Review PRs ready for review and merge
Projects
Status: Complete
1 participant