Graal Forums

Graal Forums (https://forums.graalonline.com/forums/index.php)
-   Feature request (https://forums.graalonline.com/forums/forumdisplay.php?f=194)
-   -   External Windows Features (https://forums.graalonline.com/forums/showthread.php?t=79407)

zokemon 04-13-2008 10:35 AM

External Windows Features
 
Here's a few features we should have added for the new client with external windows, if some aren't already added.

Displaying a Window on the Taskbar
It would be cool to have a showontaskbar variable for GuiWindowCtrl's that would display a taskbar button on Windows operating systems for GuiWindowCtrl's that have isexternal set. Double-clicking this button would call the function that is called when you click the minimize button as well as right clicking the button would show the usual right-click elements that you see when you right click on the taskbar button of another window for any given application. It would also show the equivalent for an open window on MacOS and Linux.

Displaying a Window in the System Tray
To go with the above item, a showontray variable that would the icon of the 16x16 TDrawingPanel object in an icon variable would also be nice. This icon could also be used for the taskbar buttons above.

Window Stack Priority
Having an alwaysontop variable would be very useful as well. This would display all external windows with that as true above any other Graal window regerdless of what has focus. Multiple windows with this as true would simply be given priority as normal in the window stack's position.

Making the Escape Window Scripted
The window that appears when you hit the escape key when the client is open should be changed to an external script GuiWindowCtrl.

Moving a Window
GuiWindowCtrl's should have an externalx and an externaly variable that would modify the position of the window's container when isexternal is true. They would would be initialized to (desktop's mousex - (gui width)/2) and (desktop's mousey - (gui height)/2) at the end of the new block when the gui is created if the two were not initialized already.

Desktop Variables
To go with the above one, it would help a lot then to be able to read the desktop's width and height, the desktop's mousex and mousey as well as the position and extent of the main Graal window relative to the desktop.

Allow Modifying of GUIContainer's Extent
A final thing to allow would be so that when one modifies GUIContainer.width and GUIContainer.height, it causes the main Graal window to reflect those changes and resize accordingly.

What This Would Allow
Having all of the above would allow a number of useful feature to be added such as:
  • The positioning and tiling of all of Graal's windows for scripted in-game editors, in-game windows such as IRC channels, radio station displays, etc.
  • The F2 window could be given alwaysontop priority so that it would not be placed under the client so that you could debug, read rpg messages, etc. This would also be useful for other similar scripted windows.
  • Docking of the Playerlist on the side of the graal window could be later scripted with fair ease if the Graal window's extent was modifiable and if you could read various desktop/graal container variables.
  • The escape key could be bound to do other things besides closing the client such as displaying an options screen for games on the Skills Games server.
  • The client rc would seem almost exactly like and operate almost exactly like the original external RC if you could display a button on the taskbar and an icon on the system tray
  • A bunch of other fun features that I could not think of. I'll probably post more reasons later.

Tell us all what you decide to add and when you have added it/them, Stefan! :p

Note: Funny thing is, I posted this on a Mac.

cbk1994 04-13-2008 03:44 PM

Quote:

Originally Posted by zokemon (Post 1385746)
Note: Funny thing is, I posted this on a Mac.

What? :confused:

The system tray, start menu, etc can't be done since it doesn't maintain compatibility with Mac and Linux, mainly Mac.

Also, fix canResize variable, atleast on Mac.

zokemon 04-13-2008 05:33 PM

Quote:

Originally Posted by cbkbud (Post 1385777)
What? :confused:

The system tray, start menu, etc can't be done since it doesn't maintain compatibility with Mac and Linux, mainly Mac.

Also, fix canResize variable, atleast on Mac.

Sure it could. It would probably just display it in the icon list below when the window is minimized or so. Even if it doesn't replicate the functionality of windows, we still should have those features implemented so for the windows users, it isn't such a hard change to go to from the client-rc from the external one.

I said it was a funny thing because I use Windows but just happened to be posting this while on a Mac. I don't know, it just seemed ironic at the time.

cbk1994 04-13-2008 06:02 PM

Quote:

Originally Posted by zokemon (Post 1385798)
Sure it could. It would probably just display it in the icon list below when the window is minimized or so. Even if it doesn't replicate the functionality of windows, we still should have those features implemented so for the windows users, it isn't such a hard change to go to from the client-rc from the external one.

I said it was a funny thing because I use Windows but just happened to be posting this while on a Mac. I don't know, it just seemed ironic at the time.

Compatibility should be number one priority, there are a lot of Mac users who would play Graal if it was more compatible. I think Universal graal will help a lot, but still it needs to maintain compatibility.

Skyld 04-13-2008 06:04 PM

Some of this functionality sounds like it could be paving the road to abuse, i.e. always on top, changing the Graal window container size. I am certain that I don't want other people to control these things.

Admins 04-13-2008 06:27 PM

On Mac the separate windows are minimized to an own window in the Dock anyway :)
It's already possible to resize (I think) and go fullscreen, but only for authorized scripts.

zokemon 04-13-2008 06:58 PM

Quote:

Originally Posted by cbkbud (Post 1385809)
Compatibility should be number one priority, there are a lot of Mac users who would play Graal if it was more compatible. I think Universal graal will help a lot, but still it needs to maintain compatibility.

Yes but Mac users don't have to change to the client-rc because there was no external rc for them beforehand. I don't see why it's so important to port an existing windows function over to an operating system that is not designed for such.

Quote:

Originally Posted by Skyld (Post 1385810)
Some of this functionality sounds like it could be paving the road to abuse, i.e. always on top, changing the Graal window container size. I am certain that I don't want other people to control these things.

How could alwaysontop be abused? Only way I could think was if canclose was set to false but maybe require it set to true if alwaysontop is true? Also, other non-Graal windows still could be displayed over alwaysontop windows.

As for the container size, I suppose such a feature should be limited but I do think certain trusted servers could get this right.

cbk1994 04-13-2008 08:20 PM

Quote:

Originally Posted by zokemon (Post 1385821)
How could alwaysontop be abused? Only way I could think was if canclose was set to false but maybe require it set to true if alwaysontop is true? Also, other non-Graal windows still could be displayed over alwaysontop windows.

I guess if other windows could be on top, but you could have a loop constantly opening external windows with alwaysontop with some kind of offensive image etc.

zokemon 04-13-2008 09:25 PM

That's what alt+f4 is for. Or right clicking on the main Graal window taskbar button and clicking close.

EDIT:
The hell, I got bad rep for saying "funny thing is I'm posting this on a Mac"? I was just pointing out the irony in my ignorance, and people are upset by that? Wow.

cbk1994 04-13-2008 10:59 PM

Quote:

Originally Posted by zokemon (Post 1385860)
The hell, I got bad rep for saying "funny thing is I'm posting this on a Mac"? I was just pointing out the irony in my ignorance, and people are upset by that? Wow.

You just had to say that?

Anytime Mac is mentioned and people get bad reputation, I get bad reputation from like 5 people saying "DONT REP THESE PEOPLE LOL".
:cry:

EDIT:

Stefan: Yes, resizing works, but canResize is not letting you disable it.

zokemon 04-13-2008 11:13 PM

Quote:

Originally Posted by cbkbud (Post 1385877)
You just had to say that?

Anytime Mac is mentioned and people get bad reputation, I get bad reputation from like 5 people saying "DONT REP THESE PEOPLE LOL".
:cry:

EDIT:

Stefan: Yes, resizing works, but canResize is not letting you disable it.

I never said it was you but I would apprciate it if who ever did it to properly assess the situation before throwing negative rep out. It seems as though these forums are used more for negative rep then positive rep even though I rarely give out negative rep...

And also,
I was talking about resizing the main Graal window.

cbk1994 04-14-2008 12:06 AM

Quote:

Originally Posted by zokemon (Post 1385880)
I never said it was you but I would apprciate it if who ever did it to properly assess the situation before throwing negative rep out. It seems as though these forums are used more for negative rep then positive rep even though I rarely give out negative rep...

And also,
I was talking about resizing the main Graal window.

I know, I was just saying that I will get tons of negative rep for that, even though I did nothing. ;)

I know you were saying resizing Graal window -- I mentioned that canResize does not affect a window's behavior on Mac.

DustyPorViva 04-14-2008 12:16 AM

Ya, I got neg rep calling me a jackass for getting into a debate about mac.

Anyways, alwaysontop would have to be looked into a lot to make sure it isn't abused. Someone could make a huge ass window and make it alwaysontop and cover up the whole screen. A big plus, like said, would be that they would have to have a close button on them, and the bar(close buttons and crap) can't be outside the screen.

cbk1994 04-14-2008 12:34 AM

Quote:

Originally Posted by DustyPorViva (Post 1385891)
Ya, I got neg rep calling me a jackass for getting into a debate about mac.

Anyways, alwaysontop would have to be looked into a lot to make sure it isn't abused. Someone could make a huge ass window and make it alwaysontop and cover up the whole screen. A big plus, like said, would be that they would have to have a close button on them, and the bar(close buttons and crap) can't be outside the screen.

But you could have a timeout opening it if it is detected to be closed.

DustyPorViva 04-14-2008 12:42 AM

In that case external windows themselves are a bad idea :P


All times are GMT +2. The time now is 06:29 AM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.
Copyright (C) 1998-2019 Toonslab All Rights Reserved.