Welcome Guest.   Make a donation to an author on the site August 31, 2014, 03:23:32 AM  *

Please login or register.
Or did you miss your validation email?


Login with username and password (forgot your password?)
Why not become a lifetime supporting member of the site with a one-time donation of any amount? Your donation entitles you to a ton of additional benefits, including access to exclusive discounts and downloads, the ability to enter monthly free software drawings, and a single non-expiring license key for all of our programs.


You must sign up here before you can post and access some areas of the site. Registration is totally free and confidential.
 
Read the full one-year retrospective report on DonationCoder.com.
   
   Forum Home   Thread Marks Chat! Downloads Search Login Register  
Pages: Prev 1 2 3 4 5 [6] 7 8 9 10 11 ... 24 Next   Go Down
  Reply  |  New Topic  |  Print  
Author Topic: T-Clock 2010 (download)  (Read 235063 times)
Miaz
Participant
*
Posts: 5

View Profile Give some DonationCredits to this forum member
« Reply #125 on: June 07, 2010, 05:14:43 AM »

Okay, Added Display (ISO) Week Numbers on Calendar Option, Close Calendar on Lose Focus Option, Calendar Dialog now dynamically resizes at runtime if/as needed (toggle Week Numbers to see), and Added Miscellaneous Tab to Properties Dialog to Adjust Above.

So, Let me know what Ya think.

Perfect!!!
Thank you - this is absolutely what I need.
Week number is correct - Wm for Germany will be chosen automatically.
Great job!
Logged
Stoic Joker
Honorary Member
**
Posts: 5,217



View Profile WWW Give some DonationCredits to this forum member
« Reply #126 on: June 07, 2010, 06:54:27 AM »

The 7.5 download includes a copy of 7.3.
huh - crap - fixed.

Quote
Also in the first post it says known issues none - but should it not mention my problem with the properties dialog appearing off screen when DPI is set to more than 100% and the taskbar is on the right?
Keyword: rush job. (fixed)

Quote
Some more information about it.
My screen is set to 2560x1600 (widescreen)
Where the dialog appears depends on the width of the taskbar - if it is minimum width then the dialog isn't visable, if it is very very wide then some of the dialog appears to the right of the taksbar, if it is set so that 10 notification icons fill one line then the left border and a very small part of the dialog appear under the taksbar.

I'm still kind of circling that one, because I'm not real sure how to attack it (don't give up on me just yet).
Logged
Miaz
Participant
*
Posts: 5

View Profile Give some DonationCredits to this forum member
« Reply #127 on: June 07, 2010, 09:22:55 AM »

Hi,
In case you are looking for some nice and helpful options to include, here are some proposals:
- modify date stamps of files and folders (created / last modified / last access)
- copy names and/or path of files/folders to clipboard
Is this possible, anyhow?
I'm looking forward for every new modification  Thmbsup
Logged
Stoic Joker
Honorary Member
**
Posts: 5,217



View Profile WWW Give some DonationCredits to this forum member
« Reply #128 on: June 07, 2010, 10:09:54 AM »

Hi,
In case you are looking for some nice and helpful options to include, here are some proposals:
- modify date stamps of files and folders (created / last modified / last access)
Unfortunately that is outside the scope of the project - It's a clock.

I do however have another program that does (exactly) that, which I may consider releasing at a later date.

Quote
- copy names and/or path of files/folders to clipboard
Is this possible, anyhow?
I'm looking forward for every new modification  Thmbsup
This unfortunately would also be outside the (clock) scope of the project. However if you're using Windows 7, hold the Shift key while right clicking and Copy as Path will do what you're looking for.
Logged
Miaz
Participant
*
Posts: 5

View Profile Give some DonationCredits to this forum member
« Reply #129 on: June 08, 2010, 12:50:07 AM »

Hi,
In case you are looking for some nice and helpful options to include, here are some proposals:
- modify date stamps of files and folders (created / last modified / last access)
Unfortunately that is outside the scope of the project - It's a clock.

I do however have another program that does (exactly) that, which I may consider releasing at a later date.

Quote
- copy names and/or path of files/folders to clipboard
Is this possible, anyhow?
I'm looking forward for every new modification  Thmbsup
This unfortunately would also be outside the (clock) scope of the project. However if you're using Windows 7, hold the Shift key while right clicking and Copy as Path will do what you're looking for.

No problem - it was only a thought.
I really appreciate the current options of your program - and thanks again for the addition of the weeks.
BTY: The program I used for the mentioned points was DMEXMenu ShellExtension 3.19.
        But I don't know, whether it's running in Windows 7 or not.
EDIT: I've just seen a thread in DonationCoder regarding DMEX. I will test later.
EDIT2: It's something different. It's a bar - I only had a simple shell extension.
Edit 3: I've tested and I'm surprised: the very old shell extension also works in Windows 7  smiley
          So, forget my postings.

Edit 4: Nevertheless I still have another proposal for calendar: Is it possible to include separate switches for Month and Year? By switching Month by Month it takes very long e.g. to go forward/reverse several Years.
example:   " < >  June 2010  < >"    
I don't know if it's possible to automatically switch year at "Month-Switch" January<>December.
« Last Edit: June 08, 2010, 08:23:44 AM by Miaz » Logged
Stoic Joker
Honorary Member
**
Posts: 5,217



View Profile WWW Give some DonationCredits to this forum member
« Reply #130 on: June 08, 2010, 10:27:32 AM »

t 4: Nevertheless I still have another proposal for calendar: Is it possible to include separate switches for Month and Year? By switching Month by Month it takes very long e.g. to go forward/reverse several Years.
example:   " < >  June 2010  < >"   
I don't know if it's possible to automatically switch year at "Month-Switch" January<>December. [/color]

Um... (I could be missing something here, but...)

Using the Windows Calendar Control arrows are only for last/next month navigations. if you want June 1975 on Win7:
Click year 3 times (the control "zooms" out to decade view)
Click the decade you want (it zooms in to year selection)
Click the year you want (it zooms in to month selection)
Click the month you want (it shows the usual month view)
done.

On XP:
Click year and scroll to year wanted (1975)
Click month and select month wanted.
done.

I'm not sure what I can add to that. (Unless I'm missing part of the question - which has happened before...)
Logged
Miaz
Participant
*
Posts: 5

View Profile Give some DonationCredits to this forum member
« Reply #131 on: June 08, 2010, 12:27:31 PM »

Well ...  now I am at home and have tested all the things on my private PC with Windows 7.
Thank you for the lesson - everything is working as you have explained.
I've been using Windows 7 since middle of May - and I see:  still a lot to learn!

So, I think I'll be quiet in the future and will let the specialists work  embarassed

Regards
Miaz
Logged
Stoic Joker
Honorary Member
**
Posts: 5,217



View Profile WWW Give some DonationCredits to this forum member
« Reply #132 on: June 08, 2010, 06:49:01 PM »

So, I think I'll be quiet in the future and will let the specialists work

According to a popular version of history...the last guy on earth that claimed to be perfect got crucified for his efforts... smiley

Ideas are always welcome.
Logged
Stoic Joker
Honorary Member
**
Posts: 5,217



View Profile WWW Give some DonationCredits to this forum member
« Reply #133 on: June 08, 2010, 07:05:17 PM »

@sagji - Okay, I'm trying to workout an attack strategy on this DPI issue. I think I may have come up with an angle on it but I have one question. When you are at 2560x1600 with 144DPI does the size 8 font appear to be scaling properly??

I ask because of an old font scaling bugg that caused any size smaller than 9 to be disproportionately tiny. I'm thinking that a similar (calculations mod)  fix may work for your (off) screen position issue. But my hypothesis is dependent on the size 8 font being correctly proportioned when used in your configuration.

Also (side note) is the positioning better or worse when you push the DPI to (i believe the max) 192?
Logged
sagji
Participant
*
Posts: 25

View Profile Give some DonationCredits to this forum member
« Reply #134 on: June 10, 2010, 05:23:39 AM »

I think the 8 point font looks OK.

With my curent setting normally the dialog appears with just the left most part visible. At 200% it doesn't appear at all. 300% is the same. At 125% it appears entirely to the left of the task bar. When I go back to 150% it also appears to the left of the task bar. If I reboot then it goes back to appearing mostly off screen.

<ADDED>
When it is partly off screen it is only off the right side - the bottom edge is in the correct place.

It might be an idea to log every step in calculating its position - as that might let us see where it is going wrong.
Or if you provide a debug version I could step through it and see if I can see anything.
« Last Edit: June 10, 2010, 05:29:15 AM by sagji » Logged
haydut
Participant
*
Posts: 4

View Profile Give some DonationCredits to this forum member
« Reply #135 on: June 12, 2010, 03:17:51 AM »

Are there any plans for some sort of popup dialogue for alarms? I have no sound on my computers, so the alarm as it stands is no use to me. It'd be nice not to have to use another program.

I notice, on my computer at least, that the time and date seems to only use the top half of the taskbar, and if I increase font size, the bottom of the time and date disappears. I seem to remember I had this problem with TclockEX in Vista. I am using Win 7 Ultimate x64 now.
Logged
Stoic Joker
Honorary Member
**
Posts: 5,217



View Profile WWW Give some DonationCredits to this forum member
« Reply #136 on: June 12, 2010, 09:01:27 AM »

Are there any plans for some sort of popup dialogue for alarms? I have no sound on my computers, so the alarm as it stands is no use to me. It'd be nice not to have to use another program.
That's what the blink option is for, it flashes the clock face when time is up. However if that's not enough of an attention getter, I could consider a system modal message box popup that bounces a bit. (Okay the bouncing may be a bit much, but I was just thinking that Jack Russel Terriers are impossible to ignore...smiley). Would that work for you?

Quote
I notice, on my computer at least, that the time and date seems to only use the top half of the taskbar, and if I increase font size, the bottom of the time and date disappears. I seem to remember I had this problem with TclockEX in Vista. I am using Win 7 Ultimate x64 now.
Clock Size & Text Position on the Clock Text Tab are for resizing/moving the clock's position in the taskbar. Al-tho admittedly it's a bit flaky at times. Try toggling the font size up or down (hit apply) and then back where you wanted it (hit apply) if the positioning adjustments don't seem to be "taking" properly. This is an old bugg that's on my To-Kill list that I just haven't gotten to yet.



I think the 8 point font looks OK.

Perfect, something that actually works... smiley

Quote
With my current setting normally the dialog appears with just the left most part visible. At 200% it doesn't appear at all. 300% is the same. At 125% it appears entirely to the left of the task bar. When I go back to 150% it also appears to the left of the task bar. If I reboot then it goes back to appearing mostly off screen.

I haven't gone quite that high, but I have been able to duplicate some of the behavior. I created a Vista Virtual PC for testing and both it and the XP VPC work fine with the original code, however ... The research I've done points at there being some behavioral changes made it Win 7 so if I don't get any other reports from people running high DPI on Win 2k/XP/Vista (Hint...!) I'll have to add a version check to any fix we can concoct.

My first batch of tests with factoring the DPI into the positioning code did manage to make the issue worse (e.g. reproducible on XP & Vista) ... So that's a good sign that I'm on the right track. I just need to figure out which screen measurement to factor in to pin the thing in the right place. So far I'm pretty sure this one is wrong:
Formatted for C++ with the GeSHI Syntax Highlighter [copy or print]
  1. iW = GetSystemMetrics(SM_CXSCREEN);  // Desktop Width
  2.  iH = GetSystemMetrics(SM_CYSCREEN); // Desktop Height
  3.  
  4. /////////////////////////////////////////////////////////////////////////////////////////////////////
  5.  hdc = GetDC(NULL);
  6.  
  7.  wscreen = MulDiv(iW, GetDeviceCaps(hdc, LOGPIXELSY), 96);
  8.  hscreen = MulDiv(iH, GetDeviceCaps(hdc, LOGPIXELSY), 96);
  9.  
  10.  ReleaseDC(NULL, hdc);

Quote
<ADDED>
When it is partly off screen it is only off the right side - the bottom edge is in the correct place.

I've noticed that behavior, and regardless of taskbar size/position too. Damn Strange it Are!

Quote
It might be an idea to log every step in calculating its position - as that might let us see where it is going wrong.
Or if you provide a debug version I could step through it and see if I can see anything.
I'm reasonably certain that the answer lies in feeding the right info into the MulDiv(...) function. as that's the only step where the DPI is handled. The rest is just subtracting the dialog & gap sizes from the X & Y before tossing it to that point via MoveWindow(...)
« Last Edit: June 12, 2010, 10:35:57 AM by Stoic Joker » Logged
haydut
Participant
*
Posts: 4

View Profile Give some DonationCredits to this forum member
« Reply #137 on: June 12, 2010, 10:12:41 AM »

Are there any plans for some sort of popup dialogue for alarms? I have no sound on my computers, so the alarm as it stands is no use to me. It'd be nice not to have to use another program.
That's what the blink option is for, it flashes the clock face when time is up. However if that's not enough of an attention getter, I could consider a system modal message box popup that bounces a bit. (Okay the bouncing may be a bit much, but I was just thinking that Jack Russel Terriers are impossible to ignore...smiley). Would that work for you?

I was thinking more along the lines of being able to add a line or three of text that would pop up with each alarm, but I realise that may be beyond the scope of the T-Clock. As it happens, I just discovered "Stickies", another very useful little freeware program, which allows me to do what I need. Coincidentally, there's a setting in that program for the alarm to bounce.  smiley

Quote
Quote
I notice, on my computer at least, that the time and date seems to only use the top half of the taskbar, and if I increase font size, the bottom of the time and date disappears. I seem to remember I had this problem with TclockEX in Vista. I am using Win 7 Ultimate x64 now.
Clock Size & Text Position on the Clock Text Tab are for resizing/moving the clock's position in the taskbar.

Thanks! That's what I was missing. I guess I was more, ahem, tired than I thought last night. beerchug
Logged
Stoic Joker
Honorary Member
**
Posts: 5,217



View Profile WWW Give some DonationCredits to this forum member
« Reply #138 on: June 12, 2010, 10:34:40 AM »

Are there any plans for some sort of popup dialogue for alarms? I have no sound on my computers, so the alarm as it stands is no use to me. It'd be nice not to have to use another program.
That's what the blink option is for, it flashes the clock face when time is up. However if that's not enough of an attention getter, I could consider a system modal message box popup that bounces a bit. (Okay the bouncing may be a bit much, but I was just thinking that Jack Russel Terriers are impossible to ignore...smiley). Would that work for you?

I was thinking more along the lines of being able to add a line or three of text that would pop up with each alarm, but I realise that may be beyond the scope of the T-Clock. As it happens, I just discovered "Stickies", another very useful little freeware program, which allows me to do what I need. Coincidentally, there's a setting in that program for the alarm to bounce.  smiley

I must say the prospect is interesting ... Can you expand on that feature description a bit? And/or toss me a link to this Stickies program?
« Last Edit: June 12, 2010, 10:37:10 AM by Stoic Joker » Logged
Jibz
Developer
***
Posts: 918



Cold Warrior

View Profile WWW Give some DonationCredits to this forum member
« Reply #139 on: June 12, 2010, 01:38:32 PM »

Something a little like ReminderFox or DS Clock would be awesome. A pop-up that shows upcoming events.



Logged

"A problem, properly stated, is a problem on it's way to being solved" -Buckminster Fuller
"Multithreading is just one damn thing after, before, or simultaneous with another" -Andrei Alexandrescu
haydut
Participant
*
Posts: 4

View Profile Give some DonationCredits to this forum member
« Reply #140 on: June 12, 2010, 04:25:08 PM »

Jibz obviously knows what I mean, although I wasn't thinking of a birthday type of reminder, though it would be able to be used for such a thing. I suppose it ought to be called a reminder rather than an alarm, though it would work as both. When the alarm is activated, a dialogue pops up with some text that is input when the alarm/reminder is created. For example, I have to take a number of tablets each day, so each reminder could tell me which tablet I need to take. I used to use Atomic Alarm Clock, which is ideal, but doesn't work in Win x64.

Stickies is at http://www.zhornsoftware.co.uk/  I really feel I should put a good word in for the author as I am now using two of his freeware programs, the other being Zbar which allows a taskbar on a 2nd monitor.
Logged
Stoic Joker
Honorary Member
**
Posts: 5,217



View Profile WWW Give some DonationCredits to this forum member
« Reply #141 on: June 12, 2010, 05:51:23 PM »

Jibz obviously knows what I mean, although I wasn't thinking of a birthday type of reminder, though it would be able to be used for such a thing. I suppose it ought to be called a reminder rather than an alarm, though it would work as both.
Understood, however if I'm to add that type functionality as a target without modifying the project's (It's a clock) scope...we'll have to persist in calling it an alarm... Wink

Quote
When the alarm is activated, a dialogue pops up with some text that is input when the alarm/reminder is created. For example, I have to take a number of tablets each day, so each reminder could tell me which tablet I need to take. I used to use Atomic Alarm Clock, which is ideal, but doesn't work in Win x64.
Hm... Okay, small window, string of text, and a Jack Russel bounce function (honestly my only interest in this is the silly bouncing window) ...That sounds do-able.

First I gotta get the high DPI Dialog Position bugg figured out. but I'll toss this on the To-Do pile.


...Started with Bouncing Window, and my Mind Went Here:
Logged
mouser
First Author
Administrator
*****
Posts: 33,289



see users location on a map View Profile WWW Read user's biography. Give some DonationCredits to this forum member
« Reply #142 on: June 12, 2010, 05:54:08 PM »

hahahahahaha
Logged
ewemoa
Honorary Member
**
Posts: 2,413



View Profile Give some DonationCredits to this forum member
« Reply #143 on: June 12, 2010, 08:25:12 PM »

LOL...and why am I trying to figure out which Far Side it is that I can almost see beneath...
Logged
haydut
Participant
*
Posts: 4

View Profile Give some DonationCredits to this forum member
« Reply #144 on: June 13, 2010, 07:20:53 AM »

Heh, now I am going to have to turn the house upside down to find all my forgotten Larson books.  Grin
Logged
sagji
Participant
*
Posts: 25

View Profile Give some DonationCredits to this forum member
« Reply #145 on: June 13, 2010, 07:45:05 AM »

With my current setting normally the dialog appears with just the left most part visible. At 200% it doesn't appear at all. 300% is the same. At 125% it appears entirely to the left of the task bar. When I go back to 150% it also appears to the left of the task bar. If I reboot then it goes back to appearing mostly off screen.

I haven't gone quite that high, but I have been able to duplicate some of the behavior. I created a Vista Virtual PC for testing and both it and the XP VPC work fine with the original code, however ... The research I've done points at there being some behavioral changes made it Win 7 so if I don't get any other reports from people running high DPI on Win 2k/XP/Vista (Hint...!) I'll have to add a version check to any fix we can concoct.

My first batch of tests with factoring the DPI into the positioning code did manage to make the issue worse (e.g. reproducible on XP & Vista) ... So that's a good sign that I'm on the right track. I just need to figure out which screen measurement to factor in to pin the thing in the right place. So far I'm pretty sure this one is wrong:
Formatted for C++ with the GeSHI Syntax Highlighter [copy or print]
  1. iW = GetSystemMetrics(SM_CXSCREEN); // Desktop Width
  2.  iH = GetSystemMetrics(SM_CYSCREEN); // Desktop Height
  3.  
  4. /////////////////////////////////////////////////////////////////////////////////////////////////////
  5.  hdc = GetDC(NULL);
  6.  
  7.  wscreen = MulDiv(iW, GetDeviceCaps(hdc, LOGPIXELSY), 96);
  8.  hscreen = MulDiv(iH, GetDeviceCaps(hdc, LOGPIXELSY), 96);
  9.  
  10.  ReleaseDC(NULL, hdc);
Should wscreen not use LOGPIXELSX?
Quote
Quote
<ADDED>
When it is partly off screen it is only off the right side - the bottom edge is in the correct place.

I've noticed that behavior, and regardless of taskbar size/position too. Damn Strange it Are!

Quote
It might be an idea to log every step in calculating its position - as that might let us see where it is going wrong.
Or if you provide a debug version I could step through it and see if I can see anything.
I'm reasonably certain that the answer lies in feeding the right info into the MulDiv(...) function. as that's the only step where the DPI is handled.
But is it the only place where the DPI should be handled? What if some of the other values are already scaled?
Quote
The rest is just subtracting the dialog & gap sizes from the X & Y before tossing it to that point via MoveWindow(...)

I did some investigation using the windowspy tool that is part of AutoHotKey and looked at the values for both the taskbar and T-Clock's property window.

With the taskbar set so wide the left edge of the property window's border appears at the left edge. I see the following values.
T-Clock { left: 1035; top: 606; width: 491; height: 440; }
Taskbar { left: 1547; top: 0; width: 1013; height: 1600; }

The two lefts should be the same, and top+height should be close - but they are out by a factor of ~1.5, so it looks like T-Clock has font scaling applied to its coordinate space while the taskbar has the native coordinate space.

Setting the taskbar width so that the border only just appears on-screen I get:
T-Clock { left: 1709; top: 606; width: 491; height: 440; }
Taskbar { left: 2221; top: 0; width: 339; height: 1600; }

Doing some crunching of the number I find
T-Clock.left === 2560 - Taskbar.width - T-Clock.width - 21

Which is correct - but is in native coordinates not font scaled.

So it looks like you are calculating top in font scaled coords, and left in native, and then applying them in a font scaled context.
« Last Edit: June 13, 2010, 07:47:12 AM by sagji » Logged
sagji
Participant
*
Posts: 25

View Profile Give some DonationCredits to this forum member
« Reply #146 on: June 13, 2010, 07:51:18 AM »

Heh, now I am going to have to turn the house upside down to find all my forgotten Larson books.  Grin

Which puts into my mind a Larsoneqsue picture of a house resting on its roof, and the caption
"He turned the house upside down looking of it."
Logged
daddydave
Supporting Member
**
Posts: 818



see users location on a map View Profile Give some DonationCredits to this forum member
« Reply #147 on: June 13, 2010, 07:58:44 AM »

The first thing I think of when I think of Gary Larson is the cartoon where a guy and a kangaroo are at a bar, and the guy is saying something like, "Well, you may be a kangaroo, but I know a few things about marsupials myself!" So true-to-life!
Logged
Stoic Joker
Honorary Member
**
Posts: 5,217



View Profile WWW Give some DonationCredits to this forum member
« Reply #148 on: June 13, 2010, 09:36:41 AM »

I did some investigation using the windowspy tool that is part of AutoHotKey and looked at the values for both the taskbar and T-Clock's property window.

With the taskbar set so wide the left edge of the property window's border appears at the left edge. I see the following values.
T-Clock { left: 1035; top: 606; width: 491; height: 440; }
Taskbar { left: 1547; top: 0; width: 1013; height: 1600; }

The two lefts should be the same, and top+height should be close - but they are out by a factor of ~1.5, so it looks like T-Clock has font scaling applied to its coordinate space while the taskbar has the native coordinate space.

Setting the taskbar width so that the border only just appears on-screen I get:
T-Clock { left: 1709; top: 606; width: 491; height: 440; }
Taskbar { left: 2221; top: 0; width: 339; height: 1600; }

Doing some crunching of the number I find
T-Clock.left === 2560 - Taskbar.width - T-Clock.width - 21

Which is correct - but is in native coordinates not font scaled.

So it looks like you are calculating top in font scaled coords, and left in native, and then applying them in a font scaled context.

Thanks for the analysis, but... I'm afraid I was a bit unclear earlier. The code snippet I posted before is not in the build you are using/have. It was only posted as an example of the solution I am working on (Which makes you analysis flawed - which is my fault). The complete function code for the build you have is:
Formatted for C++ with the GeSHI Syntax Highlighter [copy or print]
  1. //================================================================================================
  2. //------------------------------+++--> Adjust the Window Position Based on Taskbar Size & Location:
  3. void SetMyDialgPos(HWND hwnd) { //----------------------------------------------------------+++-->
  4. int wscreen, hscreen, wProp, hProp;
  5. int wTray, hTray, x, y;
  6. RECT rc, rcTray;
  7. HWND hwndTray;
  8.  
  9.  GetWindowRect(hwnd, &rc); // Properties Dialog Dimensions
  10.  wProp = rc.right - rc.left;  //----------+++--> Width
  11.  hProp = rc.bottom - rc.top; //----------+++--> Height
  12.  
  13.  wscreen = GetSystemMetrics(SM_CXSCREEN);  // Desktop Width
  14.  hscreen = GetSystemMetrics(SM_CYSCREEN); // Desktop Height
  15.  
  16.  hwndTray = FindWindow("Shell_TrayWnd", NULL);
  17.  if(hwndTray == NULL) return;
  18.  
  19.  GetWindowRect(hwndTray, &rcTray);
  20.  wTray = rcTray.right - rcTray.left;
  21.  hTray = rcTray.bottom - rcTray.top;
  22.  
  23.  if(wTray > hTray) { // IF Width is Greater Than Height, Taskbar is
  24.  x = wscreen - wProp - 21; // at Either Top or Bottom of Screen
  25.  if(rcTray.top < hscreen / 2)
  26.  y = rcTray.bottom + 21; // Taskbar is on Top of Screen
  27.  else // ELSE Taskbar is Where it Belongs! (^^^Mac Fag?^^^)
  28.  y = rcTray.top - hProp - 21;
  29.  if(y < 0) y = 0;
  30.  }else{ //---+++--> ELSE Taskbar is on Left or Right Side of Screen
  31.  y = hscreen - hProp - 21; // Down is a Fixed Position
  32.  if(rcTray.left < wscreen / 2)
  33.  x = rcTray.right + 21; //--+++--> Taskbar is on Left Side of Screen
  34.  else
  35.  x = rcTray.left - wProp - 21; // Taskbar is on Right Side of Screen
  36.  if(x < 0) x = 0;
  37.  }
  38.  
  39.  MoveWindow(hwnd, x, y, wProp, hProp, FALSE);
  40. }

I have no idea where the experimental code will put the dialog at high DPI so I don't want to make it too accessible (e.g. make it the primary first post download). But if you are willing to give it a try Here is the compiled test version you thought you were testing earlier.
[Download removed to save space and avoid confusion - SJ]

Sorry about the confusion.
« Last Edit: June 15, 2010, 07:21:26 PM by Stoic Joker » Logged
sagji
Participant
*
Posts: 25

View Profile Give some DonationCredits to this forum member
« Reply #149 on: June 13, 2010, 07:07:21 PM »

I did some investigation using the windowspy tool that is part of AutoHotKey and looked at the values for both the taskbar and T-Clock's property window.

With the taskbar set so wide the left edge of the property window's border appears at the left edge. I see the following values.
T-Clock { left: 1035; top: 606; width: 491; height: 440; }
Taskbar { left: 1547; top: 0; width: 1013; height: 1600; }

The two lefts should be the same, and top+height should be close - but they are out by a factor of ~1.5, so it looks like T-Clock has font scaling applied to its coordinate space while the taskbar has the native coordinate space.

Setting the taskbar width so that the border only just appears on-screen I get:
T-Clock { left: 1709; top: 606; width: 491; height: 440; }
Taskbar { left: 2221; top: 0; width: 339; height: 1600; }

Doing some crunching of the number I find
T-Clock.left === 2560 - Taskbar.width - T-Clock.width - 21

Which is correct - but is in native coordinates not font scaled.

So it looks like you are calculating top in font scaled coords, and left in native, and then applying them in a font scaled context.

Thanks for the analysis, but... I'm afraid I was a bit unclear earlier. The code snippet I posted before is not in the build you are using/have. It was only posted as an example of the solution I am working on (Which makes you analysis flawed - which is my fault).
I didn't use the code sample at any point in my analysis, and the code sample below matches what I deduced including the magic number of 21.
Quote
The complete function code for the build you have is:
Formatted for C++ with the GeSHI Syntax Highlighter [copy or print]
  1. //================================================================================================
  2. //------------------------------+++--> Adjust the Window Position Based on Taskbar Size & Location:
  3. void SetMyDialgPos(HWND hwnd) { //----------------------------------------------------------+++-->
  4. int wscreen, hscreen, wProp, hProp;
  5. int wTray, hTray, x, y;
  6. RECT rc, rcTray;
  7. HWND hwndTray;
  8.  
  9.  GetWindowRect(hwnd, &rc); // Properties Dialog Dimensions
  10.  wProp = rc.right - rc.left;  //----------+++--> Width
  11.  hProp = rc.bottom - rc.top; //----------+++--> Height
  12.  
  13.  wscreen = GetSystemMetrics(SM_CXSCREEN);  // Desktop Width
  14.  hscreen = GetSystemMetrics(SM_CYSCREEN); // Desktop Height
  15.  
  16.  hwndTray = FindWindow("Shell_TrayWnd", NULL);
  17.  if(hwndTray == NULL) return;
  18.  
  19.  GetWindowRect(hwndTray, &rcTray);
  20.  wTray = rcTray.right - rcTray.left;
  21.  hTray = rcTray.bottom - rcTray.top;
  22.  
  23.  if(wTray > hTray) { // IF Width is Greater Than Height, Taskbar is
  24.  x = wscreen - wProp - 21; // at Either Top or Bottom of Screen
  25.  if(rcTray.top < hscreen / 2)
  26.  y = rcTray.bottom + 21; // Taskbar is on Top of Screen
  27.  else // ELSE Taskbar is Where it Belongs! (^^^Mac Fag?^^^)
  28.  y = rcTray.top - hProp - 21;
  29.  if(y < 0) y = 0;
  30.  }else{ //---+++--> ELSE Taskbar is on Left or Right Side of Screen
  31.  y = hscreen - hProp - 21; // Down is a Fixed Position
  32.  if(rcTray.left < wscreen / 2)
  33.  x = rcTray.right + 21; //--+++--> Taskbar is on Left Side of Screen
  34.  else
  35.  x = rcTray.left - wProp - 21; // Taskbar is on Right Side of Screen
  36.  if(x < 0) x = 0;
  37.  }
  38.  
  39.  MoveWindow(hwnd, x, y, wProp, hProp, FALSE);
  40. }

This was very helpfull - I was able to identify why the window doesn't go off the bottom of the screen, and confirm my theory with a little experiment.

This function only changes the position on one axis - the other remains unchanged.
This function contains no DPI scaling, and the values you are working from and all native, however when you set the window's position that appears to be font scaled by the system.

As an experiment I set the taskbat to bottom and made it tall, and opened the properties - it then appeared near the right edge but positioned so the top was near the top of the taskbar.
Quote

I have no idea where the experimental code will put the dialog at high DPI so I don't want to make it too accessible (e.g. make it the primary first post download). But if you are willing to give it a try Here is the compiled test version you thought you were testing earlier. (see attachment in previous post)
Sorry about the confusion.
The special version places it in the same position as the normal one.

Code Review Comment
The way you check for Horiz/Verti taskbar isn't robust - it works but eventually on some system it will go wrong, and then you will have a very hard to find bug.

Given you split it into 4 positions any way the could should be
Formatted for C++ with the GeSHI Syntax Highlighter [copy or print]
  1. if (rcTray.top > 0) {
  2.    // tray at bottom
  3.    ...
  4. } else if (rcTray.left > 0) {
  5.    // tray at right
  6.    ...
  7. } else if (rcTray.bottom < hscreen) {
  8.    // tray at top
  9.    ...
  10. } else if (rcTray.right < wscreen) {
  11.    // tray at left
  12.    ...
  13. } else {
  14.    // error - tray is fullscreen
  15.    return;
  16. }
Logged
Pages: Prev 1 2 3 4 5 [6] 7 8 9 10 11 ... 24 Next   Go Up
  Reply  |  New Topic  |  Print  
 
Jump to:  
   Forum Home   Thread Marks Chat! Downloads Search Login Register  

DonationCoder.com | About Us
DonationCoder.com Forum | Powered by SMF
[ Page time: 0.13s | Server load: 0.01 ]