ID:132294
![]() Jul 14 2011, 4:49 pm
|
|
Just a question. I'd like to think they're client side, but I'm unsure.
|
DarkCampainger wrote:
winget() sends a request to the client for specific data, and then waits for the response. Is this true? I had always assumed the server kept track of the client's skin attributes and pulled up that information locally. |
SuperAntx wrote:
DarkCampainger wrote: No, it is done server-side at the moment; caching client-info would mean that we'd have to transmit changes when windows are moved, sized, etc. The only pure client-side interface operations are those done via the ".winset" calls. |
Tom wrote:
SuperAntx wrote: My interface library does do this caching. Some properties (ex: position, size) are flagged as being dynamic and will always result in winget calls to the client. Non-dynamic values are cached and only need a winget call if they don't have a cached value. This would miss any updates that are purely client-side, but it makes it easier and less costly to handle it all server-side. |
You'll have to be more specific. All DM code is run on the server, so if you're using winget/set in DM, that logic is server-side. For winset(), the server transmits the parameter string to the client(s) for execution. winget() sends a request to the client for specific data, and then waits for the response. Obviously, drawing/moving/resizing the interface (and I guess switching tabs) is done client-side.
There is a special client-side .winset command that can be used as button, menu, and other interface commands, as well as an embedded conditional that can somewhat be used like winget(). Read the "Special .winset commands" section.