cursor icons

Development of artwork, requests, suggestions, samples, or if you have artwork to offer. Primarily for the artists.
Post Reply
Message
Author
User avatar
eleazar
Design & Graphics Lead Emeritus
Posts: 3858
Joined: Sat Sep 23, 2006 7:09 pm
Location: USA — midwest

cursor icons

#1 Post by eleazar »

Unless i'm really missing something FO doesn't have a changing cursor icons to help you know what you are doing, or what you could be doing.

I made a few quick that came to mind.
cursors.jpg
cursors.jpg (18.88 KiB) Viewed 5130 times
Left to right:

1) horizontal resize cursor. Appears when you can drag to resize a window horizontally (duh). Not something used yet, but we should.
2) Open hand. Appears when you can hold down a mouse button to drag something around.
3) Grabbing hand. Appears while you are holding down the mouse button dragging something. Makes a little animation.

Uploaded to /art/cursors/, and item added to SF FRs

There are probably other cursors we need, but they don't occur to me at the moment.

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 13587
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: cursor icons

#2 Post by Geoff the Medio »

The horizontal resize cursor can be rotated 90 degrees for vertical resize, but a simultaneously horizontal + vertical resize cursor would need to be made separately.

All the cursors seem quite small compared to the current cursor.

I'm not sure about using a hand for everything that can be dragged... Many things can be, and we'd end up with a hand most of the time. The map screen, the tech tree view, ship parts, scrollbars, the title bars and (probably) edges and empty spaces of any window that can be dragged, queue items... Or is there a distinction between something that can be drag-dropped (parts or queue items) and something than can be real-time drag-repositioned (windows, map background, tech tree view) ?

Edit: I assume that in general, when something can be clicked to do something, rather than having a cursor to indicate this, we'd have the thing highlight itself somehow. For example, buttons highlight, system icons get a mouseover indicator, text links underline.

User avatar
eleazar
Design & Graphics Lead Emeritus
Posts: 3858
Joined: Sat Sep 23, 2006 7:09 pm
Location: USA — midwest

Re: cursor icons

#3 Post by eleazar »

Geoff the Medio wrote:All the cursors seem quite small compared to the current cursor.
I don't think there is a "current cursor". At least there's no graphic included that i can find. What you are seeing is, i expect your system's cursor.
But 16x16 is standard cursor size, and that's what my new cursors are (give or take a pixel). The black outline may not show up well in this example.
Geoff the Medio wrote:I'm not sure about using a hand for everything that can be dragged ... [including] (probably) edges and empty spaces of any window that can be dragged...
I'm ambivalent about being able to drag a window by its borders, but dragging a window by empty space within it is bad. By "window" here i mean a box that has stuff inside the player can manipulate. The color picker is currently like that and there's no clear delineation between the clickable items inside and the general background which can move the whole window. It's not too hard for a slight miss-click to result in moving the whole window, which is annoying and unnecessary. Only things which have no manipulatable elements inside should be grab-able anywhere.
Geoff the Medio wrote:I'm not sure about using a hand for everything that can be dragged... Many things can be, and we'd end up with a hand most of the time. The map screen, the tech tree view, ship parts, scrollbars, the title bars ... queue items... Or is there a distinction between something that can be drag-dropped (parts or queue items) and something than can be real-time drag-repositioned (windows, map background, tech tree view) ?
Hmmm, i'll have to think about some of these scenarios, but the main thing is that you wouldn't show the hand cursor for something that can only be "dragged" with the right mouse button. The cursor indicates what you can do with the main, left button.
Geoff the Medio wrote:Edit: I assume that in general, when something can be clicked to do something, rather than having a cursor to indicate this, we'd have the thing highlight itself somehow. For example, buttons highlight, system icons get a mouseover indicator, text links underline.
Yeah, in general. A button mouseover effect is more eye-catching than a change of cursor. Changing the cursor is to show the user that he can do something in that particular location which he may not otherwise notice.

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 13587
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: cursor icons

#4 Post by Geoff the Medio »

eleazar wrote:I don't think there is a "current cursor". At least there's no graphic included that i can find. What you are seeing is, i expect your system's cursor.
But 16x16 is standard cursor size, and that's what my new cursors are (give or take a pixel). The black outline may not show up well in this example.
It's definitely not the Windows standard cursor...
Zoom 2X cursors of Windows, FreeOrion, 16x16 square (not a cursor), eleazar's new cursors, and Windows again for extra-comparison ease, Starcraft's generic cursor.
Zoom 2X cursors of Windows, FreeOrion, 16x16 square (not a cursor), eleazar's new cursors, and Windows again for extra-comparison ease, Starcraft's generic cursor.
Cursors_Zoom_2x.png (4.29 KiB) Viewed 5094 times
I don't know where the FO cursor is defined. It doesn't seem to be a texture, and I vaguely recall seeing some code that defined a cursor by layout out a grid of pixel values, but I can't find anything similar in the FreeOrion or GiGi code, and it might have been some other project's code I'm remembering.

The new cursors will probably be fine, but they are a bit smaller than standard, at least on windows.
wouldn't show the hand cursor for something that can only be "dragged" with the right mouse button. The cursor indicates what you can do with the main, left button.
I don't think anything can be dragged with the right mouse button.

User avatar
eleazar
Design & Graphics Lead Emeritus
Posts: 3858
Joined: Sat Sep 23, 2006 7:09 pm
Location: USA — midwest

Re: cursor icons

#5 Post by eleazar »

Geoff the Medio wrote:
eleazar wrote:I don't think there is a "current cursor". At least there's no graphic included that i can find. What you are seeing is, i expect your system's cursor.
But 16x16 is standard cursor size, and that's what my new cursors are (give or take a pixel). The black outline may not show up well in this example.
It's definitely not the Windows standard cursor...

I don't know where the FO cursor is defined. It doesn't seem to be a texture, and I vaguely recall seeing some code that defined a cursor by layout out a grid of pixel values, but I can't find anything similar in the FreeOrion or GiGi code, and it might have been some other project's code I'm remembering.

The new cursors will probably be fine, but they are a bit smaller than standard, at least on windows.
Huh. Oddly enough, the FO cursor looks exactly like the Mac Os X cursor, but now that i zoom in the Mac cursor has some grey tones and a drop shadow.

I'm not going to get too interested in discussing exactly what the cursors should look like, or how big they should be when nothing is implemented. We can easily change how they look later.
wouldn't show the hand cursor for something that can only be "dragged" with the right mouse button. The cursor indicates what you can do with the main, left button.
Geoff the Medio wrote:I don't think anything can be dragged with the right mouse button.
Oops, all this talk about right and left mouse buttons in other threads got me turned around. I was thinking of the panning the galaxy map screen, or tech tree.

User avatar
utilitarism
Space Krill
Posts: 2
Joined: Thu Oct 20, 2011 5:06 pm
Location: Germany

Re: cursor icons

#6 Post by utilitarism »

Today I made some simple cursors for the game, work of some hours. They're not perfect jet, but I guess i'ts a starting point. If time enough, I'll better them up.
The cursors are some black hands, some animated and some static. There's a grabbing and a holding hand, a pointing finger and some other stuff. Take a look, you'll see.
Testing it in the game for some simple color tries it looked - average. If I won't perfectionize I post it out to you guys so you can experiment and do better.

So far, have fun.
CURSORS.rar
(15.37 KiB) Downloaded 201 times

User avatar
eleazar
Design & Graphics Lead Emeritus
Posts: 3858
Joined: Sat Sep 23, 2006 7:09 pm
Location: USA — midwest

Re: cursor icons

#7 Post by eleazar »

What format are these?

My computer thinks the .ANI files are "animated Neochrome documents", but when i open them the colors look inverted and weird.

A coder will have to confirm, but i expect a series of .PNG files would be more useful.

User avatar
utilitarism
Space Krill
Posts: 2
Joined: Thu Oct 20, 2011 5:06 pm
Location: Germany

Re: cursor icons

#8 Post by utilitarism »

It's ".ani".
I made them with a little programm called "iconforge", which is for free available in the net. My windows vista system could use them as cursors. Yours not?

Yes, I inverted them because the original colors I used didn't harmonize with the game design at all. I suppose the colors you see are the same ones I used. So you see, it's just some sketch. Iconforge is so simple, much more didn't work up to now. Disappointed? Perhaps at least "HAND_POINTING" is of interest. I just wanted to show my first tries.

tzlaine
Programming Lead Emeritus
Posts: 1092
Joined: Thu Jun 26, 2003 1:33 pm

Re: cursor icons

#9 Post by tzlaine »

Geoff the Medio wrote:
eleazar wrote:I don't think there is a "current cursor". At least there's no graphic included that i can find. What you are seeing is, i expect your system's cursor.
But 16x16 is standard cursor size, and that's what my new cursors are (give or take a pixel). The black outline may not show up well in this example.
It's definitely not the Windows standard cursor...
Cursors_Zoom_2x.png
I don't know where the FO cursor is defined.
HumanClientApp.cpp:222
It doesn't seem to be a texture
It is a texture.
and I vaguely recall seeing some code that defined a cursor by layout out a grid of pixel values, but I can't find anything similar in the FreeOrion or GiGi code, and it might have been some other project's code I'm remembering.
It was our code, but it's long gone. You sepcifically asked for software-rendered (non-system) cursors that can be set by our UI based on context. We have that now. See GG::GUI::GetCursor() and GG::GUI::SetCursor().

fixIt
Space Floater
Posts: 27
Joined: Thu Oct 20, 2011 10:14 pm

Re: cursor icons

#10 Post by fixIt »

tzlaine wrote:
Geoff the Medio wrote:
eleazar wrote:I don't think there is a "current cursor". At least there's no graphic included that i can find. What you are seeing is, i expect your system's cursor.
But 16x16 is standard cursor size, and that's what my new cursors are (give or take a pixel). The black outline may not show up well in this example.
It's definitely not the Windows standard cursor...
Cursors_Zoom_2x.png
I don't know where the FO cursor is defined.
HumanClientApp.cpp:222
It doesn't seem to be a texture
It is a texture.
and I vaguely recall seeing some code that defined a cursor by layout out a grid of pixel values, but I can't find anything similar in the FreeOrion or GiGi code, and it might have been some other project's code I'm remembering.
It was our code, but it's long gone. You sepcifically asked for software-rendered (non-system) cursors that can be set by our UI based on context. We have that now. See GG::GUI::GetCursor() and GG::GUI::SetCursor().

So i started working on this problem today but have a question/ran into a problem. So i don't know if its just my set up or something but it seems like when I use the SetCursor() function its not actually changing the cursor but makes a cursor that just follows my systems cursor?

Should SetCursor() be actually changing the default windows cursor when your in game? Or should I also be making a call to a different cursor function? To me it looks like it makes a cursor that just mirrors where the default one goes.

With the cursor set to the default cursor its only noticeable that there are 2 cursors if you specifically look for it. However when in HumanAppsClient I change the SetCursor() to the "grabable" cursor then you can really see the grabable cursor trailing behind the default cursor by a few inches when you move the mouse around. So there are literally 2 cursors on the screen.

Is it just my setup thats weird then? Or should I be making more than a call to SetCursor() and RenderCursor()?

Thanks

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 13587
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: cursor icons

#11 Post by Geoff the Medio »

Things are set up now to render an in game cursor and the system cursor. This is done because of a few related issues. There were a number of cases where if just one cursor was rendered... I can't remember which... then that cursor would sometimes not render; if you look through the old sourceforge bug reports, there are probably a few about having no mouse cursor in some windows. Also, if the game window grabs the mouse cursor in order to render just it and not the system cursor, the mouse can't be moved outside the window without alt-tabbing, so if something weird goes wrong, the system can be effectively hung, particularly while at fullscreen. More importantly, to me, when the using the mode that captures the mouse cursor, the mouse speed and acceleration were all wrong; the mouse doesn't move and respond to movements like it does when the OS handles the mouse input, and I found it very annoying to use the mouse when it was moving too slow and without the right acceleration.

Basically, the OIS input plugin mouse handling isn't working very well, so we have the OS handle the mouse input to control cursor position, but also draw the in-game cursor for cases where the OS cursor wants to disappear. Way back in the day SDL was used as the window setup library, and it worked a lot better. After the change to Ogre, we've had the current situation.

If you want to change things to have only one cursor rendered with exclusive mouse input, there are some commented out lines in OISInput.cfg that can be uncommented, and the corresponding other lines commented.

Post Reply