30 April 2023, 18:53 | #1 |
Registered User
Join Date: Mar 2012
Location: UK
Posts: 1,895
|
Change Mouse pointer on the fly within Workbench?
As the title says - does anyone know how to change the mouse pointer image at will whilst in workbench. I have managed it through a window but as soon as you click outside the window it reverts to the Workbench default.
Cheers for any help/suggestions. |
01 May 2023, 04:01 | #2 |
Total Chaos forever!
Join Date: Aug 2007
Location: Waterville, MN, USA
Age: 49
Posts: 2,187
|
Have you tried using a borderless, backdrop window? The pointer shape is in the window structure, as you noticed.
|
01 May 2023, 07:27 | #3 |
son of 68k
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,323
|
Why wanting to change mouse pointer of other apps ? This looks... impolite, to me.
|
02 May 2023, 08:28 | #4 |
Registered User
Join Date: Mar 2012
Location: UK
Posts: 1,895
|
Not at all! Don't want to change the pointer to something else but just make an app to make pointet easier to locate on a hires screen. We are gettibg older, eyes are getting worse and screen resolutions are going up!
|
02 May 2023, 08:31 | #5 |
son of 68k
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,323
|
|
02 May 2023, 09:34 | #6 | |
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,233
|
Quote:
The pointer within your own program window is all yours, and you can change it as you like - but probably should not, unless there is quite a good reason. So what is the reason? A possible reason is to set the "wait" cursor to indicate that the program is busy, but even that is up to the user to draw, and you can request this pointer from intuition. Then, there is the default pointer used .... by default. The default pointer is all the user's choice to make. Why do you think that you as a program author are better at making a choice for the user how the default pointer should look like than the user himself? |
|
02 May 2023, 09:59 | #7 |
Registered User
Join Date: Jun 2015
Location: Germany
Posts: 1,918
|
If I understand correctly the idea is to have something like a commodity that will make the pointer larger, e.g. when a certain key is pressed. Like the ctrl key in Windows can be set to create a circle around the mouse pointer to make spotting the mouse pointer easier. Such things can indeed be useful imho.
|
02 May 2023, 17:40 | #8 |
Registered User
Join Date: Sep 2022
Location: Switzerland
Posts: 115
|
|
02 May 2023, 18:59 | #9 | |
Registered User
Join Date: Mar 2012
Location: UK
Posts: 1,895
|
Quote:
other than making it double size for a second when they mouse ia shaken to make it easy to locate. Last edited by Havie; 02 May 2023 at 19:08. |
|
02 May 2023, 19:02 | #10 | |
Registered User
Join Date: Mar 2012
Location: UK
Posts: 1,895
|
Quote:
My question still stands - can it be done and if so how? |
|
02 May 2023, 20:37 | #11 |
Registered User
Join Date: Jun 2009
Location: Dublin, then Glasgow
Posts: 6,348
|
Every feature is useless until it becomes useful. There's a reason both Windows and macOS include variations on this idea, and it's something I've used myself on rare occasions.
|
02 May 2023, 21:56 | #12 |
Registered User
Join Date: Mar 2012
Location: Norfolk, UK
Posts: 1,153
|
Nice idea! There's no clean way to do this, but there's probably a dirty way!
I think I'd probably try finding the currently active window, and calling SetPointer() on it - but be aware that since you don't own that window, it'll be an evil hack. While multitasking is enabled a window can vanish at any moment, so you'll need to take that into account. (Forbid()/Permit() around the manipulation is the obvious method - I'd be surprised if that interacted badly with SetPointer() but there are no guarantees. RTG systems in particular might be a problem. LockIBase()/UnlockIBase() might also work, but the documentation explicitly says you're not allowed to call Intuition or system functions with a lock held, so even if that works, it's in evil hack territory.) Assuming you re-enable multitasking briefly before disabling it again and removing your custom cursor, you'll need to make very sure that (a) the window still exists (even if it does, it may or may not still be the active window), (b) the application that owns the window hasn't changed the cursor to something else in the meantime, and (c) you restore whatever the cursor was before you messed with it. (Caching the relevant fields from the Window structure will probably work on ECS/AGA systems - though again, no guarantees - on RTG systems I've no idea what will happen.) Have fun! |
03 May 2023, 10:25 | #13 |
ex. demoscener "Bigmama"
Join Date: Jun 2012
Location: Fyn / Denmark
Posts: 1,624
|
Since the pointer image usually is the full size of the sprite, and you cannot double sprite size (like on C64), this may require temporarily using 2 side by side double-height sprites. Maybe you could use e.g. sprite 1 and 2 with suitable imagery, meanwhile hiding or moving the original mouse pointer off screen or something to that effect. Last edited by hooverphonique; 03 May 2023 at 15:08. |
03 May 2023, 21:38 | #14 | |
Registered User
Join Date: Mar 2012
Location: UK
Posts: 1,895
|
Quote:
How would I enable/disable multitasking as this is probably the most important thing I need to understand? |
|
03 May 2023, 21:41 | #15 | |
Registered User
Join Date: Mar 2012
Location: UK
Posts: 1,895
|
Quote:
Mind you, I am aiming at the useless category and if I get too involved, it won't be any more! You are right, I could potential copy the current pointer and double the width of the pixels or even double width and height (but would need 4 sprites at this point). Never written anything other than games and nothing Workbench friendly before so this is all a new adventure. Thanks for your helpful suggestion. |
|
03 May 2023, 22:53 | #16 |
Registered User
Join Date: Mar 2012
Location: UK
Posts: 1,895
|
So I can constantly switch between open window and my mouse pointer code window which gives a lovely flickering effect! Anyone know how to multitask between windows without selecting each window in turn i.e. multitask between windows behind the scenes so to speak? I had assumed that Amiga OS would automatically multitask between open windows but alas no.
|
04 May 2023, 00:09 | #17 | |
ex. demoscener "Bigmama"
Join Date: Jun 2012
Location: Fyn / Denmark
Posts: 1,624
|
Quote:
That's why we're here, ain't it!? |
|
04 May 2023, 08:00 | #18 |
Registered User
Join Date: Mar 2012
Location: UK
Posts: 1,895
|
|
04 May 2023, 08:03 | #19 |
Registered User
Join Date: Mar 2012
Location: UK
Posts: 1,895
|
I am usimg Blitz Basic which I don't think mutlittasks out of the box so assume I would need to use EXEC calls? But haven't a clue.
Something that seems simple now seems rather difficult... |
04 May 2023, 13:52 | #20 |
Registered User
Join Date: Nov 2010
Location: South Wales
Age: 47
Posts: 937
|
A little off topic, but back in the day the "useless" stuff was some of my fav.
Like the hack that gave you the MTV logo in corner of screen. Or lemmings in your task bar. Go for it |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Filter mask on the fly change weird behavior | mcbpete | support.WinUAE | 2 | 04 September 2018 20:47 |
Mid-line bitplane pointer change? | NorthWay | Coders. Asm / Hardware | 10 | 26 September 2015 13:45 |
Mouse Pointer | Washac | support.WinUAE | 2 | 19 February 2012 20:57 |
How to change Mouse Pointer in AmigaSYS4 | fitzsteve | support.Apps | 8 | 26 August 2010 16:21 |
Mouse pointer | Washac | support.Other | 4 | 12 February 2010 01:38 |
|
|