From: SourceForge.net <no...@so...> - 2009-08-21 19:06:47
|
Bugs item #2842161, was opened at 2009-08-21 21:06 Message generated for change (Tracker Item Submitted) made by martinberg You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=684730&aid=2842161&group_id=119701 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Martin Berg (martinberg) Assigned to: Nobody/Anonymous (nobody) Summary: OOdialog pixel calculation wrong Initial Comment: The calculation of the required pixels for oodialog elements seems to be wrong. The following program creates a text, if ooRexx V4 is installed, the pixel of the text field are 188/16 (width(higth) and . If V320-1 is installed 256/20 pixel are created. This problem can also be seen if the oograph.rex sampe is executed. /*-----------example -------------------------*/ Dlg = .TestDialog~New() Dlg~Execute('ShowTop') Dlg~DeInstall Exit ::requires 'oodwin32.cls' ::requires 'ooDialog.cls' ::CLASS TestDialog Subclass UserDialog public INHERIT AdvancedControls MessageExtensions; ::method Init; self~Init:Super(self); rc = self~Create(, 10,, 10,, 200,, 50,, 'TEST DIALOG' ,, 'MAXIMIZEBOX MINIMIZEBOX THICKFRAME',, ,, ,, ,, '1000' ) Return 0 ::method DefineDialog; forward class(super) continue self~AddText(10 ,, 10 ,, 126,, 10 ,, '12345678901234567890',, 'CENTER',, 100) Return 0; ::method InitDialog; self~InitDialog:super Return 0 ::method Run; self~BackgroundColor(3) self~update(); self~run:super Return 0 ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=684730&aid=2842161&group_id=119701 |
From: SourceForge.net <no...@so...> - 2009-08-21 20:12:10
|
Bugs item #2842196, was opened at 2009-08-21 22:12 Message generated for change (Tracker Item Submitted) made by martinberg You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=684730&aid=2842196&group_id=119701 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Martin Berg (martinberg) Assigned to: Nobody/Anonymous (nobody) Summary: OOdialog pixel calculation wrong Initial Comment: The calculation of the required pixels for oodialog elements seems to be wrong. The following program creates a text, if ooRexx V4 is installed, the pixel of the text field are 188/16 (width(higth) and . If V320-1 is installed 256/20 pixel are created. This problem can also be seen if the oograph.rex sampe is executed. /*-----------example -------------------------*/ Dlg = .TestDialog~New() Dlg~Execute('ShowTop') Dlg~DeInstall Exit ::requires 'oodwin32.cls' ::requires 'ooDialog.cls' ::CLASS TestDialog Subclass UserDialog public INHERIT AdvancedControls MessageExtensions; ::method Init; self~Init:Super(self); rc = self~Create(, 10,, 10,, 200,, 50,, 'TEST DIALOG' ,, 'MAXIMIZEBOX MINIMIZEBOX THICKFRAME',, ,, ,, ,, '1000' ) Return 0 ::method DefineDialog; forward class(super) continue self~AddText(10 ,, 10 ,, 126,, 10 ,, '12345678901234567890',, 'CENTER',, 100) Return 0; ::method InitDialog; self~InitDialog:super Return 0 ::method Run; self~BackgroundColor(3) self~update(); self~run:super Return 0 ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=684730&aid=2842196&group_id=119701 |
From: SourceForge.net <no...@so...> - 2009-08-21 20:15:01
|
Bugs item #2842196, was opened at 2009-08-21 13:12 Message generated for change (Settings changed) made by miesfeld You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=684730&aid=2842196&group_id=119701 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None >Status: Closed >Resolution: Duplicate Priority: 5 Private: No Submitted By: Martin Berg (martinberg) Assigned to: Nobody/Anonymous (nobody) Summary: OOdialog pixel calculation wrong Initial Comment: The calculation of the required pixels for oodialog elements seems to be wrong. The following program creates a text, if ooRexx V4 is installed, the pixel of the text field are 188/16 (width(higth) and . If V320-1 is installed 256/20 pixel are created. This problem can also be seen if the oograph.rex sampe is executed. /*-----------example -------------------------*/ Dlg = .TestDialog~New() Dlg~Execute('ShowTop') Dlg~DeInstall Exit ::requires 'oodwin32.cls' ::requires 'ooDialog.cls' ::CLASS TestDialog Subclass UserDialog public INHERIT AdvancedControls MessageExtensions; ::method Init; self~Init:Super(self); rc = self~Create(, 10,, 10,, 200,, 50,, 'TEST DIALOG' ,, 'MAXIMIZEBOX MINIMIZEBOX THICKFRAME',, ,, ,, ,, '1000' ) Return 0 ::method DefineDialog; forward class(super) continue self~AddText(10 ,, 10 ,, 126,, 10 ,, '12345678901234567890',, 'CENTER',, 100) Return 0; ::method InitDialog; self~InitDialog:super Return 0 ::method Run; self~BackgroundColor(3) self~update(); self~run:super Return 0 ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=684730&aid=2842196&group_id=119701 |
From: SourceForge.net <no...@so...> - 2009-08-21 20:24:00
|
Bugs item #2842200, was opened at 2009-08-21 22:23 Message generated for change (Tracker Item Submitted) made by martinberg You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=684730&aid=2842200&group_id=119701 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Martin Berg (martinberg) Assigned to: Nobody/Anonymous (nobody) Summary: OOdialog pixel calculation wrong Initial Comment: The calculation of the required pixels for oodialog elements seems to be wrong. The following program creates a text, if ooRexx V4 is installed, the pixel of the text field are 188/16 (width(higth) and . If V320-1 is installed 256/20 pixel are created. This problem can also be seen if the oograph.rex sampe is executed. /*-----------example -------------------------*/ Dlg = .TestDialog~New() Dlg~Execute('ShowTop') Dlg~DeInstall Exit ::requires 'oodwin32.cls' ::requires 'ooDialog.cls' ::CLASS TestDialog Subclass UserDialog public INHERIT AdvancedControls MessageExtensions; ::method Init; self~Init:Super(self); rc = self~Create(, 10,, 10,, 200,, 50,, 'TEST DIALOG' ,, 'MAXIMIZEBOX MINIMIZEBOX THICKFRAME',, ,, ,, ,, '1000' ) Return 0 ::method DefineDialog; forward class(super) continue self~AddText(10 ,, 10 ,, 126,, 10 ,, '12345678901234567890',, 'CENTER',, 100) Return 0; ::method InitDialog; self~InitDialog:super Return 0 ::method Run; self~BackgroundColor(3) self~update(); self~run:super Return 0 ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=684730&aid=2842200&group_id=119701 |
From: SourceForge.net <no...@so...> - 2009-08-21 20:28:03
|
Bugs item #2842200, was opened at 2009-08-21 16:23 Message generated for change (Comment added) made by bigrixx You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=684730&aid=2842200&group_id=119701 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None >Status: Deleted Resolution: None Priority: 5 Private: No Submitted By: Martin Berg (martinberg) Assigned to: Nobody/Anonymous (nobody) Summary: OOdialog pixel calculation wrong Initial Comment: The calculation of the required pixels for oodialog elements seems to be wrong. The following program creates a text, if ooRexx V4 is installed, the pixel of the text field are 188/16 (width(higth) and . If V320-1 is installed 256/20 pixel are created. This problem can also be seen if the oograph.rex sampe is executed. /*-----------example -------------------------*/ Dlg = .TestDialog~New() Dlg~Execute('ShowTop') Dlg~DeInstall Exit ::requires 'oodwin32.cls' ::requires 'ooDialog.cls' ::CLASS TestDialog Subclass UserDialog public INHERIT AdvancedControls MessageExtensions; ::method Init; self~Init:Super(self); rc = self~Create(, 10,, 10,, 200,, 50,, 'TEST DIALOG' ,, 'MAXIMIZEBOX MINIMIZEBOX THICKFRAME',, ,, ,, ,, '1000' ) Return 0 ::method DefineDialog; forward class(super) continue self~AddText(10 ,, 10 ,, 126,, 10 ,, '12345678901234567890',, 'CENTER',, 100) Return 0; ::method InitDialog; self~InitDialog:super Return 0 ::method Run; self~BackgroundColor(3) self~update(); self~run:super Return 0 ---------------------------------------------------------------------- >Comment By: Rick McGuire (bigrixx) Date: 2009-08-21 16:28 Message: one bug reort should be sufficient ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=684730&aid=2842200&group_id=119701 |
From: SourceForge.net <no...@so...> - 2009-08-22 05:08:34
|
Bugs item #2842161, was opened at 2009-08-21 12:06 Message generated for change (Comment added) made by miesfeld You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=684730&aid=2842161&group_id=119701 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Martin Berg (martinberg) >Assigned to: Mark Miesfeld (miesfeld) Summary: OOdialog pixel calculation wrong Initial Comment: The calculation of the required pixels for oodialog elements seems to be wrong. The following program creates a text, if ooRexx V4 is installed, the pixel of the text field are 188/16 (width(higth) and . If V320-1 is installed 256/20 pixel are created. This problem can also be seen if the oograph.rex sampe is executed. /*-----------example -------------------------*/ Dlg = .TestDialog~New() Dlg~Execute('ShowTop') Dlg~DeInstall Exit ::requires 'oodwin32.cls' ::requires 'ooDialog.cls' ::CLASS TestDialog Subclass UserDialog public INHERIT AdvancedControls MessageExtensions; ::method Init; self~Init:Super(self); rc = self~Create(, 10,, 10,, 200,, 50,, 'TEST DIALOG' ,, 'MAXIMIZEBOX MINIMIZEBOX THICKFRAME',, ,, ,, ,, '1000' ) Return 0 ::method DefineDialog; forward class(super) continue self~AddText(10 ,, 10 ,, 126,, 10 ,, '12345678901234567890',, 'CENTER',, 100) Return 0; ::method InitDialog; self~InitDialog:super Return 0 ::method Run; self~BackgroundColor(3) self~update(); self~run:super Return 0 ---------------------------------------------------------------------- >Comment By: Mark Miesfeld (miesfeld) Date: 2009-08-21 22:08 Message: Hi Martin, good to hear from you. "The calculation of the required pixels for oodialog elements seems to be wrong." ooDialog does not calculate the pixels, the operating system does. In your example program you create a static text control: self~AddText(10, 10, 126, 10, '123 ... That specifies that the control is 126 Dialog Units wide and 10 Dialog Units high. The operating system calculates the pixel dimensions from those dialog units. Dialog units vary depending on the type of screen, resolution of screen, user settings, and the font of the dialog. This is the operating system's way of ensuring that a dialog that looks good on your monitor, has the same porportions on any other person's system running Windows. In 3.2.0, if you did not specify a font for your dialog, the developers had hard coded in a font of System 8 point. That is an old, out of date, font that was used by default for Windows 3.1. This has been fixed in ooDialog so that the default font is MS Shell Dlg. MS Shell Dlg is a psuedo font name that allows the operating system to pick the correct font based on the version of Windows that is executing. This is a big part of what gives all dialogs on XP, or on Vista, or on W2K, etc., the same look and feel. Refer to bug: 2516354 Standard dialogs in ooDialog use archaic Windows font for more details. I took your program and added this: self~addButton(105, 146, 30, 50, 15, 'Get Size', onGetSize) and this: ::method onGetSize hwnd = self~getItem(100) s = self~getWindowRect(hwnd) parse var s left top right bottom width = right - left height = bottom - top say say 'Static text control. width:' width 'pixels height:' height 'pixels' Here is the output on Windows XP using 3.2.0, where the outdated 8 pt System font is used by ooDialog: D:\Interpreters\Rexx>rexx -v Open Object Rexx Interpreter Version 3.2.0 Build date: Oct 30 2007 ... D:\Interpreters\Rexx> D:\Interpreters\Rexx>testDlg.rex Static text control. width: 252 pixels height: 20 pixels D:\Interpreters\Rexx> Here is the output on XP with 4.0.0 where ooDialog uses the correct 8 pt MS Dlg font: D:\Interpreters\Rexx>rexx -v Open Object Rexx Version 4.0.0 Build date: Aug 15 2009 Addressing Mode: 32 Copyright (c) IBM Corporation 1995, 2004. ... D:\Interpreters\Rexx> D:\Interpreters\Rexx>testDlg.rex Static text control. width: 189 pixels height: 16 pixels D:\Interpreters\Rexx> As you see, it matches what you reported. This is because of the font. But, you would also get differing pixel sizes if you ran you program, using 3.2.0, on a system with very high resolution and a system with very low resolution. You would get differing pixel sizes if you ran your program, using 3.2.0, on a system with no user changes and on a system where the user had changed the DPI setting. If, for some reason, the ooDialog user still wants to use the old Windows 3.1 font in their dialogs, in 4.0.0, he can change the default font for his program by adding this at the start of the program: .PlainBaseDialog~setDefaultFont("System", 8) I'll attach your program with my changes so you can try it. Under 4.0.0, setting the default font back to 8 pt System produces this output, which as you can see is exactly the same as the output in 3.2.0: /* Set default font to archaic System 8 point */ D:\Interpreters\Rexx>rexx -v Open Object Rexx Version 4.0.0 Build date: Aug 15 2009 Addressing Mode: 32 Copyright (c) IBM Corporation 1995, 2004. ... D:\Interpreters\Rexx> D:\Interpreters\Rexx>testDlg.rex Set default font to "System" 8 point Static text control. width: 252 pixels height: 20 pixels D:\Interpreters\Rexx> ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=684730&aid=2842161&group_id=119701 |
From: SourceForge.net <no...@so...> - 2009-08-22 05:12:44
|
Bugs item #2842161, was opened at 2009-08-21 12:06 Message generated for change (Settings changed) made by miesfeld You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=684730&aid=2842161&group_id=119701 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. >Category: Samples >Group: Next Release Status: Open Resolution: None Priority: 5 Private: No Submitted By: Martin Berg (martinberg) Assigned to: Mark Miesfeld (miesfeld) Summary: OOdialog pixel calculation wrong Initial Comment: The calculation of the required pixels for oodialog elements seems to be wrong. The following program creates a text, if ooRexx V4 is installed, the pixel of the text field are 188/16 (width(higth) and . If V320-1 is installed 256/20 pixel are created. This problem can also be seen if the oograph.rex sampe is executed. /*-----------example -------------------------*/ Dlg = .TestDialog~New() Dlg~Execute('ShowTop') Dlg~DeInstall Exit ::requires 'oodwin32.cls' ::requires 'ooDialog.cls' ::CLASS TestDialog Subclass UserDialog public INHERIT AdvancedControls MessageExtensions; ::method Init; self~Init:Super(self); rc = self~Create(, 10,, 10,, 200,, 50,, 'TEST DIALOG' ,, 'MAXIMIZEBOX MINIMIZEBOX THICKFRAME',, ,, ,, ,, '1000' ) Return 0 ::method DefineDialog; forward class(super) continue self~AddText(10 ,, 10 ,, 126,, 10 ,, '12345678901234567890',, 'CENTER',, 100) Return 0; ::method InitDialog; self~InitDialog:super Return 0 ::method Run; self~BackgroundColor(3) self~update(); self~run:super Return 0 ---------------------------------------------------------------------- >Comment By: Mark Miesfeld (miesfeld) Date: 2009-08-21 22:12 Message: "This problem can also be seen if the oograph.rex sampe is executed." Drat. That sample had a nubmer of bugs in it, and I had it completely fixed. For some reason I did not commit my fixes. But I still have them on my system. I'm going to leave this open to remind myself to fix it. ---------------------------------------------------------------------- Comment By: Mark Miesfeld (miesfeld) Date: 2009-08-21 22:08 Message: Hi Martin, good to hear from you. "The calculation of the required pixels for oodialog elements seems to be wrong." ooDialog does not calculate the pixels, the operating system does. In your example program you create a static text control: self~AddText(10, 10, 126, 10, '123 ... That specifies that the control is 126 Dialog Units wide and 10 Dialog Units high. The operating system calculates the pixel dimensions from those dialog units. Dialog units vary depending on the type of screen, resolution of screen, user settings, and the font of the dialog. This is the operating system's way of ensuring that a dialog that looks good on your monitor, has the same porportions on any other person's system running Windows. In 3.2.0, if you did not specify a font for your dialog, the developers had hard coded in a font of System 8 point. That is an old, out of date, font that was used by default for Windows 3.1. This has been fixed in ooDialog so that the default font is MS Shell Dlg. MS Shell Dlg is a psuedo font name that allows the operating system to pick the correct font based on the version of Windows that is executing. This is a big part of what gives all dialogs on XP, or on Vista, or on W2K, etc., the same look and feel. Refer to bug: 2516354 Standard dialogs in ooDialog use archaic Windows font for more details. I took your program and added this: self~addButton(105, 146, 30, 50, 15, 'Get Size', onGetSize) and this: ::method onGetSize hwnd = self~getItem(100) s = self~getWindowRect(hwnd) parse var s left top right bottom width = right - left height = bottom - top say say 'Static text control. width:' width 'pixels height:' height 'pixels' Here is the output on Windows XP using 3.2.0, where the outdated 8 pt System font is used by ooDialog: D:\Interpreters\Rexx>rexx -v Open Object Rexx Interpreter Version 3.2.0 Build date: Oct 30 2007 ... D:\Interpreters\Rexx> D:\Interpreters\Rexx>testDlg.rex Static text control. width: 252 pixels height: 20 pixels D:\Interpreters\Rexx> Here is the output on XP with 4.0.0 where ooDialog uses the correct 8 pt MS Dlg font: D:\Interpreters\Rexx>rexx -v Open Object Rexx Version 4.0.0 Build date: Aug 15 2009 Addressing Mode: 32 Copyright (c) IBM Corporation 1995, 2004. ... D:\Interpreters\Rexx> D:\Interpreters\Rexx>testDlg.rex Static text control. width: 189 pixels height: 16 pixels D:\Interpreters\Rexx> As you see, it matches what you reported. This is because of the font. But, you would also get differing pixel sizes if you ran you program, using 3.2.0, on a system with very high resolution and a system with very low resolution. You would get differing pixel sizes if you ran your program, using 3.2.0, on a system with no user changes and on a system where the user had changed the DPI setting. If, for some reason, the ooDialog user still wants to use the old Windows 3.1 font in their dialogs, in 4.0.0, he can change the default font for his program by adding this at the start of the program: .PlainBaseDialog~setDefaultFont("System", 8) I'll attach your program with my changes so you can try it. Under 4.0.0, setting the default font back to 8 pt System produces this output, which as you can see is exactly the same as the output in 3.2.0: /* Set default font to archaic System 8 point */ D:\Interpreters\Rexx>rexx -v Open Object Rexx Version 4.0.0 Build date: Aug 15 2009 Addressing Mode: 32 Copyright (c) IBM Corporation 1995, 2004. ... D:\Interpreters\Rexx> D:\Interpreters\Rexx>testDlg.rex Set default font to "System" 8 point Static text control. width: 252 pixels height: 20 pixels D:\Interpreters\Rexx> ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=684730&aid=2842161&group_id=119701 |
From: SourceForge.net <no...@so...> - 2009-08-22 20:06:46
|
Bugs item #2842161, was opened at 2009-08-21 12:06 Message generated for change (Comment added) made by miesfeld You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=684730&aid=2842161&group_id=119701 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Samples Group: Next Release >Status: Pending >Resolution: Fixed Priority: 5 Private: No Submitted By: Martin Berg (martinberg) Assigned to: Mark Miesfeld (miesfeld) Summary: OOdialog pixel calculation wrong Initial Comment: The calculation of the required pixels for oodialog elements seems to be wrong. The following program creates a text, if ooRexx V4 is installed, the pixel of the text field are 188/16 (width(higth) and . If V320-1 is installed 256/20 pixel are created. This problem can also be seen if the oograph.rex sampe is executed. /*-----------example -------------------------*/ Dlg = .TestDialog~New() Dlg~Execute('ShowTop') Dlg~DeInstall Exit ::requires 'oodwin32.cls' ::requires 'ooDialog.cls' ::CLASS TestDialog Subclass UserDialog public INHERIT AdvancedControls MessageExtensions; ::method Init; self~Init:Super(self); rc = self~Create(, 10,, 10,, 200,, 50,, 'TEST DIALOG' ,, 'MAXIMIZEBOX MINIMIZEBOX THICKFRAME',, ,, ,, ,, '1000' ) Return 0 ::method DefineDialog; forward class(super) continue self~AddText(10 ,, 10 ,, 126,, 10 ,, '12345678901234567890',, 'CENTER',, 100) Return 0; ::method InitDialog; self~InitDialog:super Return 0 ::method Run; self~BackgroundColor(3) self~update(); self~run:super Return 0 ---------------------------------------------------------------------- >Comment By: Mark Miesfeld (miesfeld) Date: 2009-08-22 13:06 Message: Committed revision 5098. That fixes the oograph.rex sample program The "OOdialog pixel calculation wrong" portion of this bug is invalid. ---------------------------------------------------------------------- Comment By: Mark Miesfeld (miesfeld) Date: 2009-08-21 22:12 Message: "This problem can also be seen if the oograph.rex sampe is executed." Drat. That sample had a nubmer of bugs in it, and I had it completely fixed. For some reason I did not commit my fixes. But I still have them on my system. I'm going to leave this open to remind myself to fix it. ---------------------------------------------------------------------- Comment By: Mark Miesfeld (miesfeld) Date: 2009-08-21 22:08 Message: Hi Martin, good to hear from you. "The calculation of the required pixels for oodialog elements seems to be wrong." ooDialog does not calculate the pixels, the operating system does. In your example program you create a static text control: self~AddText(10, 10, 126, 10, '123 ... That specifies that the control is 126 Dialog Units wide and 10 Dialog Units high. The operating system calculates the pixel dimensions from those dialog units. Dialog units vary depending on the type of screen, resolution of screen, user settings, and the font of the dialog. This is the operating system's way of ensuring that a dialog that looks good on your monitor, has the same porportions on any other person's system running Windows. In 3.2.0, if you did not specify a font for your dialog, the developers had hard coded in a font of System 8 point. That is an old, out of date, font that was used by default for Windows 3.1. This has been fixed in ooDialog so that the default font is MS Shell Dlg. MS Shell Dlg is a psuedo font name that allows the operating system to pick the correct font based on the version of Windows that is executing. This is a big part of what gives all dialogs on XP, or on Vista, or on W2K, etc., the same look and feel. Refer to bug: 2516354 Standard dialogs in ooDialog use archaic Windows font for more details. I took your program and added this: self~addButton(105, 146, 30, 50, 15, 'Get Size', onGetSize) and this: ::method onGetSize hwnd = self~getItem(100) s = self~getWindowRect(hwnd) parse var s left top right bottom width = right - left height = bottom - top say say 'Static text control. width:' width 'pixels height:' height 'pixels' Here is the output on Windows XP using 3.2.0, where the outdated 8 pt System font is used by ooDialog: D:\Interpreters\Rexx>rexx -v Open Object Rexx Interpreter Version 3.2.0 Build date: Oct 30 2007 ... D:\Interpreters\Rexx> D:\Interpreters\Rexx>testDlg.rex Static text control. width: 252 pixels height: 20 pixels D:\Interpreters\Rexx> Here is the output on XP with 4.0.0 where ooDialog uses the correct 8 pt MS Dlg font: D:\Interpreters\Rexx>rexx -v Open Object Rexx Version 4.0.0 Build date: Aug 15 2009 Addressing Mode: 32 Copyright (c) IBM Corporation 1995, 2004. ... D:\Interpreters\Rexx> D:\Interpreters\Rexx>testDlg.rex Static text control. width: 189 pixels height: 16 pixels D:\Interpreters\Rexx> As you see, it matches what you reported. This is because of the font. But, you would also get differing pixel sizes if you ran you program, using 3.2.0, on a system with very high resolution and a system with very low resolution. You would get differing pixel sizes if you ran your program, using 3.2.0, on a system with no user changes and on a system where the user had changed the DPI setting. If, for some reason, the ooDialog user still wants to use the old Windows 3.1 font in their dialogs, in 4.0.0, he can change the default font for his program by adding this at the start of the program: .PlainBaseDialog~setDefaultFont("System", 8) I'll attach your program with my changes so you can try it. Under 4.0.0, setting the default font back to 8 pt System produces this output, which as you can see is exactly the same as the output in 3.2.0: /* Set default font to archaic System 8 point */ D:\Interpreters\Rexx>rexx -v Open Object Rexx Version 4.0.0 Build date: Aug 15 2009 Addressing Mode: 32 Copyright (c) IBM Corporation 1995, 2004. ... D:\Interpreters\Rexx> D:\Interpreters\Rexx>testDlg.rex Set default font to "System" 8 point Static text control. width: 252 pixels height: 20 pixels D:\Interpreters\Rexx> ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=684730&aid=2842161&group_id=119701 |
From: SourceForge.net <no...@so...> - 2010-02-24 00:45:48
|
Bugs item #2842161, was opened at 2009-08-21 12:06 Message generated for change (Comment added) made by miesfeld You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=684730&aid=2842161&group_id=119701 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Samples >Group: v4.0.1 Status: Pending Resolution: Fixed Priority: 5 Private: No Submitted By: Martin Berg (martinberg) Assigned to: Mark Miesfeld (miesfeld) Summary: OOdialog pixel calculation wrong Initial Comment: The calculation of the required pixels for oodialog elements seems to be wrong. The following program creates a text, if ooRexx V4 is installed, the pixel of the text field are 188/16 (width(higth) and . If V320-1 is installed 256/20 pixel are created. This problem can also be seen if the oograph.rex sampe is executed. /*-----------example -------------------------*/ Dlg = .TestDialog~New() Dlg~Execute('ShowTop') Dlg~DeInstall Exit ::requires 'oodwin32.cls' ::requires 'ooDialog.cls' ::CLASS TestDialog Subclass UserDialog public INHERIT AdvancedControls MessageExtensions; ::method Init; self~Init:Super(self); rc = self~Create(, 10,, 10,, 200,, 50,, 'TEST DIALOG' ,, 'MAXIMIZEBOX MINIMIZEBOX THICKFRAME',, ,, ,, ,, '1000' ) Return 0 ::method DefineDialog; forward class(super) continue self~AddText(10 ,, 10 ,, 126,, 10 ,, '12345678901234567890',, 'CENTER',, 100) Return 0; ::method InitDialog; self~InitDialog:super Return 0 ::method Run; self~BackgroundColor(3) self~update(); self~run:super Return 0 ---------------------------------------------------------------------- >Comment By: Mark Miesfeld (miesfeld) Date: 2010-02-23 16:45 Message: Committed revision 5618. 4.0.1 merge ---------------------------------------------------------------------- Comment By: Mark Miesfeld (miesfeld) Date: 2009-08-22 13:06 Message: Committed revision 5098. That fixes the oograph.rex sample program The "OOdialog pixel calculation wrong" portion of this bug is invalid. ---------------------------------------------------------------------- Comment By: Mark Miesfeld (miesfeld) Date: 2009-08-21 22:12 Message: "This problem can also be seen if the oograph.rex sampe is executed." Drat. That sample had a nubmer of bugs in it, and I had it completely fixed. For some reason I did not commit my fixes. But I still have them on my system. I'm going to leave this open to remind myself to fix it. ---------------------------------------------------------------------- Comment By: Mark Miesfeld (miesfeld) Date: 2009-08-21 22:08 Message: Hi Martin, good to hear from you. "The calculation of the required pixels for oodialog elements seems to be wrong." ooDialog does not calculate the pixels, the operating system does. In your example program you create a static text control: self~AddText(10, 10, 126, 10, '123 ... That specifies that the control is 126 Dialog Units wide and 10 Dialog Units high. The operating system calculates the pixel dimensions from those dialog units. Dialog units vary depending on the type of screen, resolution of screen, user settings, and the font of the dialog. This is the operating system's way of ensuring that a dialog that looks good on your monitor, has the same porportions on any other person's system running Windows. In 3.2.0, if you did not specify a font for your dialog, the developers had hard coded in a font of System 8 point. That is an old, out of date, font that was used by default for Windows 3.1. This has been fixed in ooDialog so that the default font is MS Shell Dlg. MS Shell Dlg is a psuedo font name that allows the operating system to pick the correct font based on the version of Windows that is executing. This is a big part of what gives all dialogs on XP, or on Vista, or on W2K, etc., the same look and feel. Refer to bug: 2516354 Standard dialogs in ooDialog use archaic Windows font for more details. I took your program and added this: self~addButton(105, 146, 30, 50, 15, 'Get Size', onGetSize) and this: ::method onGetSize hwnd = self~getItem(100) s = self~getWindowRect(hwnd) parse var s left top right bottom width = right - left height = bottom - top say say 'Static text control. width:' width 'pixels height:' height 'pixels' Here is the output on Windows XP using 3.2.0, where the outdated 8 pt System font is used by ooDialog: D:\Interpreters\Rexx>rexx -v Open Object Rexx Interpreter Version 3.2.0 Build date: Oct 30 2007 ... D:\Interpreters\Rexx> D:\Interpreters\Rexx>testDlg.rex Static text control. width: 252 pixels height: 20 pixels D:\Interpreters\Rexx> Here is the output on XP with 4.0.0 where ooDialog uses the correct 8 pt MS Dlg font: D:\Interpreters\Rexx>rexx -v Open Object Rexx Version 4.0.0 Build date: Aug 15 2009 Addressing Mode: 32 Copyright (c) IBM Corporation 1995, 2004. ... D:\Interpreters\Rexx> D:\Interpreters\Rexx>testDlg.rex Static text control. width: 189 pixels height: 16 pixels D:\Interpreters\Rexx> As you see, it matches what you reported. This is because of the font. But, you would also get differing pixel sizes if you ran you program, using 3.2.0, on a system with very high resolution and a system with very low resolution. You would get differing pixel sizes if you ran your program, using 3.2.0, on a system with no user changes and on a system where the user had changed the DPI setting. If, for some reason, the ooDialog user still wants to use the old Windows 3.1 font in their dialogs, in 4.0.0, he can change the default font for his program by adding this at the start of the program: .PlainBaseDialog~setDefaultFont("System", 8) I'll attach your program with my changes so you can try it. Under 4.0.0, setting the default font back to 8 pt System produces this output, which as you can see is exactly the same as the output in 3.2.0: /* Set default font to archaic System 8 point */ D:\Interpreters\Rexx>rexx -v Open Object Rexx Version 4.0.0 Build date: Aug 15 2009 Addressing Mode: 32 Copyright (c) IBM Corporation 1995, 2004. ... D:\Interpreters\Rexx> D:\Interpreters\Rexx>testDlg.rex Set default font to "System" 8 point Static text control. width: 252 pixels height: 20 pixels D:\Interpreters\Rexx> ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=684730&aid=2842161&group_id=119701 |
From: SourceForge.net <no...@so...> - 2010-09-08 04:33:05
|
Bugs item #2842161, was opened at 2009-08-21 12:06 Message generated for change (Comment added) made by miesfeld You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=684730&aid=2842161&group_id=119701 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Samples Group: v4.0.1 >Status: Closed Resolution: Fixed Priority: 5 Private: No Submitted By: Martin Berg (martinberg) Assigned to: Mark Miesfeld (miesfeld) Summary: OOdialog pixel calculation wrong Initial Comment: The calculation of the required pixels for oodialog elements seems to be wrong. The following program creates a text, if ooRexx V4 is installed, the pixel of the text field are 188/16 (width(higth) and . If V320-1 is installed 256/20 pixel are created. This problem can also be seen if the oograph.rex sampe is executed. /*-----------example -------------------------*/ Dlg = .TestDialog~New() Dlg~Execute('ShowTop') Dlg~DeInstall Exit ::requires 'oodwin32.cls' ::requires 'ooDialog.cls' ::CLASS TestDialog Subclass UserDialog public INHERIT AdvancedControls MessageExtensions; ::method Init; self~Init:Super(self); rc = self~Create(, 10,, 10,, 200,, 50,, 'TEST DIALOG' ,, 'MAXIMIZEBOX MINIMIZEBOX THICKFRAME',, ,, ,, ,, '1000' ) Return 0 ::method DefineDialog; forward class(super) continue self~AddText(10 ,, 10 ,, 126,, 10 ,, '12345678901234567890',, 'CENTER',, 100) Return 0; ::method InitDialog; self~InitDialog:super Return 0 ::method Run; self~BackgroundColor(3) self~update(); self~run:super Return 0 ---------------------------------------------------------------------- Comment By: Mark Miesfeld (miesfeld) Date: 2010-09-07 21:33 Message: The fix for this item was in the 4.0.1 release. ---------------------------------------------------------------------- Comment By: Mark Miesfeld (miesfeld) Date: 2010-02-23 16:45 Message: Committed revision 5618. 4.0.1 merge ---------------------------------------------------------------------- Comment By: Mark Miesfeld (miesfeld) Date: 2009-08-22 13:06 Message: Committed revision 5098. That fixes the oograph.rex sample program The "OOdialog pixel calculation wrong" portion of this bug is invalid. ---------------------------------------------------------------------- Comment By: Mark Miesfeld (miesfeld) Date: 2009-08-21 22:12 Message: "This problem can also be seen if the oograph.rex sampe is executed." Drat. That sample had a nubmer of bugs in it, and I had it completely fixed. For some reason I did not commit my fixes. But I still have them on my system. I'm going to leave this open to remind myself to fix it. ---------------------------------------------------------------------- Comment By: Mark Miesfeld (miesfeld) Date: 2009-08-21 22:08 Message: Hi Martin, good to hear from you. "The calculation of the required pixels for oodialog elements seems to be wrong." ooDialog does not calculate the pixels, the operating system does. In your example program you create a static text control: self~AddText(10, 10, 126, 10, '123 ... That specifies that the control is 126 Dialog Units wide and 10 Dialog Units high. The operating system calculates the pixel dimensions from those dialog units. Dialog units vary depending on the type of screen, resolution of screen, user settings, and the font of the dialog. This is the operating system's way of ensuring that a dialog that looks good on your monitor, has the same porportions on any other person's system running Windows. In 3.2.0, if you did not specify a font for your dialog, the developers had hard coded in a font of System 8 point. That is an old, out of date, font that was used by default for Windows 3.1. This has been fixed in ooDialog so that the default font is MS Shell Dlg. MS Shell Dlg is a psuedo font name that allows the operating system to pick the correct font based on the version of Windows that is executing. This is a big part of what gives all dialogs on XP, or on Vista, or on W2K, etc., the same look and feel. Refer to bug: 2516354 Standard dialogs in ooDialog use archaic Windows font for more details. I took your program and added this: self~addButton(105, 146, 30, 50, 15, 'Get Size', onGetSize) and this: ::method onGetSize hwnd = self~getItem(100) s = self~getWindowRect(hwnd) parse var s left top right bottom width = right - left height = bottom - top say say 'Static text control. width:' width 'pixels height:' height 'pixels' Here is the output on Windows XP using 3.2.0, where the outdated 8 pt System font is used by ooDialog: D:\Interpreters\Rexx>rexx -v Open Object Rexx Interpreter Version 3.2.0 Build date: Oct 30 2007 ... D:\Interpreters\Rexx> D:\Interpreters\Rexx>testDlg.rex Static text control. width: 252 pixels height: 20 pixels D:\Interpreters\Rexx> Here is the output on XP with 4.0.0 where ooDialog uses the correct 8 pt MS Dlg font: D:\Interpreters\Rexx>rexx -v Open Object Rexx Version 4.0.0 Build date: Aug 15 2009 Addressing Mode: 32 Copyright (c) IBM Corporation 1995, 2004. ... D:\Interpreters\Rexx> D:\Interpreters\Rexx>testDlg.rex Static text control. width: 189 pixels height: 16 pixels D:\Interpreters\Rexx> As you see, it matches what you reported. This is because of the font. But, you would also get differing pixel sizes if you ran you program, using 3.2.0, on a system with very high resolution and a system with very low resolution. You would get differing pixel sizes if you ran your program, using 3.2.0, on a system with no user changes and on a system where the user had changed the DPI setting. If, for some reason, the ooDialog user still wants to use the old Windows 3.1 font in their dialogs, in 4.0.0, he can change the default font for his program by adding this at the start of the program: .PlainBaseDialog~setDefaultFont("System", 8) I'll attach your program with my changes so you can try it. Under 4.0.0, setting the default font back to 8 pt System produces this output, which as you can see is exactly the same as the output in 3.2.0: /* Set default font to archaic System 8 point */ D:\Interpreters\Rexx>rexx -v Open Object Rexx Version 4.0.0 Build date: Aug 15 2009 Addressing Mode: 32 Copyright (c) IBM Corporation 1995, 2004. ... D:\Interpreters\Rexx> D:\Interpreters\Rexx>testDlg.rex Set default font to "System" 8 point Static text control. width: 252 pixels height: 20 pixels D:\Interpreters\Rexx> ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=684730&aid=2842161&group_id=119701 |