[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Allow missing components (or detect them in project)
[Thread Prev] | [Thread Next]
- Subject: Re: Allow missing components (or detect them in project)
- From: Bruce Steers <bsteers4@xxxxxxxxx>
- Date: Wed, 21 Jan 2026 17:01:34 +0000
- To: Gambas Mailing List <user@xxxxxxxxxxxxxxxxxxxxxx>
On Wed, 21 Jan 2026 at 11:15, Bruce Steers <bsteers4@xxxxxxxxx> wrote:
> Omg omg omg , Fantastic 😁
>
> I'll start testing it as soon as I finish work 😎
>
> Thank you so very much Benoit.
>
> A superb addition to the gui suite 😎
>
> Much respect
> BruceS
>
> On Wed, 21 Jan 2026, 08:20 Benoît Minisini, <
> benoit.minisini@xxxxxxxxxxxxxxxx> wrote:
>
>> Le 17/01/2026 à 17:48, Benoît Minisini a écrit :
>> > Le 17/01/2026 à 16:59, Bruce Steers a écrit :
>> >>
>> >> Why don't you just use an event observer to catch the keyboard
>> >> events on
>> >> the editor?
>> >>
>> >> And in that cas which private variable would you need?
>> >>
>> >> -- Benoît Minisini.
>> >>
>> >>
>> >> It's not the getting of the event it's the giving.
>> >>
>> >
>> > Ah, now I remember, we already talk about that. If I remember
>> correctly,
>> > I said that I should add a way inside the GUI component to inject a
>> fake
>> > keyboard event, so that you don't have to do any trick to make macros.
>> >
>> > Is there an issue tracker for that request? I don't think it's very
>> > difficult to implement that. But of course the fake key event may be
>> > available only locally, and for controls written in Gambas. I will
>> see...
>> >
>> > Regards,
>> >
>>
>> Hi,
>>
>> I have added 'Key.Send()' in the last commits, that send a fake keyboard
>> event to the current active control (two actually, one 'KeyPress', and
>> one 'KeyRelease').
>>
>> It takes a string shortcut as argument, something like that:
>>
>> Key.Send("A")
>> Key.Send("é")
>> Key.Send("CTRL+C")
>> Key.Send("CTRL+ALT+DEL")
>>
>> You should pass it directly what you get from 'Key.Shortcut'.
>>
>> Normally, you should be able to get rid of a lot of hacks with that!
>>
>> Regards,
>>
>> --
>> Benoît Minisini.
>
>
My initial findings....
IT'S AWESOME :))) thank you soooo much :) 🙏🙏
I just made a working keystroke recorder / playback for text editor in
about 10 minutes :)
Then spent a little of time adding some tweaks :)
I have to handle menu shortcuts that we might want to use in the recorder
but are part of the program not the editor itself as these keystrokes are
hidden from the editor. Observers are attached to the menus to register
the shortcut when pressed and when played back the menu item is just
clicked.
No need for the MacroKey class or anything now i can just send a shortcut
string via Key.class, lovely :)
Attached is the simple test KeyRecorder enabled TextEditor i just made.
(using only inheritance :)
You can see here it works great:
https://gambasgb.uk/Clips/simplescreenrecorder-keyrecorder.mkv
I'll run it through some tests :)
Amazing :) you are a star :)
Much respect
BruceS
<salt FCKGM-0001-DB79-296B-6FE8> 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 EAgEAoFAIBAIBAKBMAD+AoJa6BEAeAAA </salt>
| Re: Allow missing components (or detect them in project) | Bruce Steers <bsteers4@xxxxxxxxx> |
| Allow missing components (or detect them in project) | Bruce Steers <bsteers4@xxxxxxxxx> |
| Re: Allow missing components (or detect them in project) | Benoît Minisini <benoit.minisini@xxxxxxxxxxxxxxxx> |
| Re: Allow missing components (or detect them in project) | Bruce Steers <bsteers4@xxxxxxxxx> |
| Re: Allow missing components (or detect them in project) | Benoît Minisini <benoit.minisini@xxxxxxxxxxxxxxxx> |
| Re: Allow missing components (or detect them in project) | Bruce Steers <bsteers4@xxxxxxxxx> |
| Re: Allow missing components (or detect them in project) | Benoît Minisini <benoit.minisini@xxxxxxxxxxxxxxxx> |
| Re: Allow missing components (or detect them in project) | Bruce Steers <bsteers4@xxxxxxxxx> |
| Re: Allow missing components (or detect them in project) | Benoît Minisini <benoit.minisini@xxxxxxxxxxxxxxxx> |
| Re: Allow missing components (or detect them in project) | Benoît Minisini <benoit.minisini@xxxxxxxxxxxxxxxx> |
| Re: Allow missing components (or detect them in project) | Bruce Steers <bsteers4@xxxxxxxxx> |