📜 ⬆️ ⬇️

Continuing the conversation about layout indicators

Well, if such a thing has gone ( Topic 1 , Topic 2 )

In the end, IT resource shny, can we write the program by joint efforts?
For neither AML, nor Punto do not like many, and other handicrafts do not even reach these programs.


I will speak further under win, because I know her most api. If someone can do the same for MAC / * NIX - you are welcome here in the comments.
')
What comes out of the general discussion:
  1. change the layout of the selected text
  2. change the layout of the typed text
  3. the current layout icon should be displayed at the position of the mouse cursor
  4. the current layout icon should be displayed in the caret position
  5. The current layout icon should be displayed in a floating window with TOPMOST style so that it can be fixed somewhere
  6. When changing the layout, you can light certain lights / throw data into the port / or something else


I propose to do it in pure C / C ++ and WinAPI - because it will be quick and easy - well, in my opinion.

I propose to implement the variants with switching reaction to implement plug-ins - greater freedom for creativity and convenience for the end user. Under win in the form of dll with the stipulated functions.

Now thinking:
n1 how to do - more or less clear. problems - you will most likely have to be injected into the process - xs as under 7 and will behave.

n2 is a poor idea of ​​the algorithm because somehow you need to understand the beginning of the end + dialing, it is desirable to auto-switch to implement as in punto => you need to know the auto-switch algorithm yet.

P3 option is this - try to get the data of the current system mouse cursor for the text, put an icon on it and set it. It seems to be a ride.

P4, but with a carriage - I don’t know - can anyone have experience? for it is not difficult to change it, but firstly it is again an injection, secondly it is cleverly processed there when WM_PAINT - you need to manage to put out the carriage and then show it again ... Again, could anyone have experience?
There is another option - not to change the carriages in accordance with the language, but to determine its screen coordinates, and to draw the indicator side by side - it seems to me even more convenient.

P5-P6 how to make - quite clear. Alternatively, another plug-in can offer OSD, as in TVs.

Those. in general, as I understand it, it will be necessary to solve all this through hooks anyway. It is not clear just how to be with injections - and without them, in my opinion, is not enough.

What do you think, gentlemen IT-shiki? Who had experience of communication at a low level with GUI under Windows and other wasps?

PS In the comments suggested:

Source: https://habr.com/ru/post/107768/


All Articles