[help] Sysstats Icon Are A Mess

Hi:

I don't know is this topic appear before, my internet connection went down...sorry...anyway here it is...

I can't seem to make the icons of sysstats work with AveDesk 1.1. Anytime i start AveDesk the sysstats icons are 128x128 size... if i change them with the AveDesk 1.1 default config dialog to (let's say) 30x30 size, the icon is mess up appearing only the 30x30 left-upper corner of the icon. If i change the size, this time with the SysStats size dialog, to 128x128 the icon is ok (actual size on screen is 30x30 as the AveDesk dialog). The problem is when i restart AveDesk 1.1, the sysstats icon are a mess again :rant: and i need to do all the fixing crap again...

I had this problem before with Avedesk 1.0 but it was ok if i didn't try to move the icons with the mouse...

Please help ...

:cry: :cry: :cry:

#200311

SysStats does its own sizing and ignores AveDesk sizing.

If you want a config to resize properly, you'll have to edit

and save your config. Editing a config won't be sufficient,

save it from within SysStats.

#200336

Hi:

Thanks for the hint, but it doesn't work... :cry:

I edit the icons' size from the SysStats icon dialog (left click on the sysStats icon) and save... nothing :cry: . I edit the size from the icon (same as before) and also from the AveDesk 1.1 default menu dialog... nothing :cry:

The problem is when i restart AveDesk 1.1 after fixing the mess before (and save and blablabla). I used to have the same problem with AveDesk 1.0 and SysStats, but after i fix it, i didn't have problem when i restarted AveDesk 1.0

Any help! I going crazy with this!!!!

:cry: :rant: :rant: :rant: :rant: :rant: :cry:

#200374

Originally posted by judge@Aug 9 2004, 12:48 PM

Actually, SysStats is the only desklet that doesn't ignore the AveDesk sizing. It explicitly traps the window's size messages and sets its own icon size to match. Other desklets always draw into a graphics context that they think is the same size as their icon (say 128x128). If the actual window size is smaller, AveDesk will scale the image to fit.

With SysStats, it is always drawing into a graphics context that is the same size as the AveDesk window - hence no scaling ever takes place.

<{POST_SNAPBACK}>

Actually I think AveDesk should always be in control of how large a desklet

is drawn; given ObjectDock compatibility no one redraws the entire docklet

if it is zoomed on mouseover, the scaling occurs inside ObjectDock and is

faster because of its cached bitmaps; same should apply to AveDesk and e.g.

a zoom effect. I must confess that I'm not happy with AveDesk stretching the

desklet if width and height differ, a preserve aspect ratio option seems desirable

to me.

Also I think that AveDesk should also always be in control of where a desklet

is drawn - the fact that SysStats enforces its own designed position doesn't go

conform with the users expectance, e.g. you can see a lot of people that don't

expect a SysStats designed config to appear outside of their desktop boundary, if

their screen resolution is lower than the designers. Secondly, users get irritated

if they load a config and the desklets warps away from under their very mouse

where they expect it to be. It would be pointless if we add dragging from a list

of available desklets to a desktop position if to some coincidence a default

theme would be warping it elsewhere.

Hope this finds you in good condition,

herd

#200423

Something like this when a new config is loaded might save a lot of people from frustratingly looking for their just added config when the config falls outside of the screens boundaries:

RECT r = {0};
HWND hwndDesktop ( GetDesktopWindow() );
GetWindowRect(hwndDesktop,&r);
if(  ! PtInRect(&r,SysStats.curPosition ) )
{
  if(MessageBox(hwnd,_T("Hello there, SysStats here.\nThe SysStats config you have loaded will not be visible on your screen, probably because the config's designer worked with a different screen resolution than yours.\nDo you want to reset this configs position so it will become visible on the screen again?"),_T("SysStats Little Helper"), MB_ICONQUESTION | MB_YESNO) == IDYES)
   {
          // something like this
          SysStats.curPosition.x = r.left + 10;
          SysStats.curPosition.y = r.top + 10;
          SysStats.Flash();
   }
}

Just an idea :unsure:...

#200434

Originally posted by judge@Aug 9 2004, 10:44 AM

SysStats uses the desklet's window size to clip the image rather than re-size it. It assumes that a SysStats desklet is drawn at the size it is supposed to be draw at. Thus when you change the window size the desklet isn't scaled, it is just cropped.

The easiest way to change the scale of a SysStats desklet is to make sure that all of the overlays are inside one composite overlay and then change the HScale and VScale of the composite. To do this: add a CompositeOverlayClass using the 'Configure Meters' dialog and then move all of the other overlays into it using the 'Move Up' and 'Move Down' buttons.

This is a little clunky and people clearly want to be able to do this so I will likely add a neater way of scaling entire image sometime in the future.

<{POST_SNAPBACK}>

Hi man:

You're the best, finally it works properly... Now I'm glad and i can use Avedesk 1.1 with SysStats... :woot: :woot: :woot:

Thank you.

Now i think there's another problem... the label... I've set up the label to appear in the bottom of the icon (horizontal aligment=center, vertical alignment=top, Position=bottom), but the label appears far from the icon, like the SysStats icon is still big (128x128)... is there any way that I can fix this?

:(

#200754

Originally posted by judge@Aug 10 2004, 10:19 AM

Change the window size too.

<{POST_SNAPBACK}>

I'm must be very bad for this... but how i change the window size?

:D

#201133