List Info

Thread: set_Value seems to be having a problem




set_Value seems to be having a problem
user name
2006-04-18 21:09:48
Emery,

that sample code returns 14 on my system, as it should.
Maybe you have an 
issue with your font/fontconfig installation?

Cheers,
 Peter

-----Original Message-----
From: "Emery Conrad" <econradvt.edu>
To: "winforms" <mono-winforms-listlists.ximian.com>
Date: 18 April, 2006 14:58
Subject: Re: [Mono-winforms-list] set_Value seems to be
having a problem


Okay,

It appears there is an issue with the default font in
Control.cs. In
libgdiplus, in file font.c, in the function
GdipGetFontHeightGivenDPI(...),
the calls to GdipGetEmHeight(...) and
GdipGetLineSpacing(...) both give 0 as
returns, from which the font height is set to 0/0... OOOPS.
This is the
source of the bad values in the ScrollBar code... The
following source will
give the erroneous value in a MessageBox.

Emery

------------------------------------------

using System;
using System.IO;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;

public class Test : Form
{
       private Test()
       {
               MessageBox.Show("Font.Height=" +
Font.Height);
       }

       public static void Main(String[] args)
       {
               Test form = new Test();
               Application.Run(form);
       }
}

On 4/18/06, Emery Conrad <econradvt.edu> wrote:
>
> All, it appears the issue comes through
ScrollBar.set_SmallChange =
> Font.Height, which eventually goes back through
Font.Height <--
> Graphics.systemDpiY <-- Graphics.FromImage(new
Bitmap(1,1)).DpiY <--
> GDIPlus.GetImageGraphicsContext.. . I'm trying to find
the bottom of the
> rabbit hole...
>
> Who knows this code best... I'll keep trying to
uncover it, but a pointer
> would be nice! (I'm having fun hacking though...)
>
> Emery
>
>
>
> On 4/18/06, Emery Conrad <econradvt.edu> wrote:
> >
> > I've run into the same issue repeatedly over the
last several iterations
> > of releases... in 1.1.9.2 , this bug wasn't
there. When I change the
> > code to give the values of max and min for the
scroll bar, they are both 
> > set
> > to -214783648. Somewhere, one of the calculations
(maybe thumb_area?) is
> > off.
> >
> > I've just starting my digging into the ScrollBar
code... probably
> > someone else will figure this out before me!!
> >
> > Emery
> >
> >
> >
> > On 4/18/06, PFJ <paulall-the-johnsons.co.uk>
wrote:
> > >
> > > Hi,
> > >
> > > I have a small image viewer which has been
working for quite a while
> > > now. However, I've just come to run it and
it throws up an error after
> > > loading a jpeg
> > >
> > > Unhandled Exception: System.ArgumentException
: '-214783648' not a
> > > valid
> > > value for 'Value'. 'Value' should be
between 'Minimum' and 'Maximum'
> > > <in 0x00163>
System.Windows.Forms.ScrollBar:set_Value(Int32 value)
> > >
> > > The jpeg is a valid jpeg (displays in eye of
gnome)
> > >
> > > Any ideas what is happening? Source code and
throwback is attached.
> > >
> > > As always, I'm happy to BZ this and admit
now that the problem could
> > > either be in my head, on my machine, or not
be anything at all because
> > >
> > > I'm a twit at times.
> > >
> > > mono compiled from source (svn) at about
10.30 British Summer Time
> > >
> > > TTFN
> > >
> > > Paul
> > >
> > > 8-->
> > > /*
> > > * ImageViewer.cs - Simple MDI-based image
viewer.
> > > *
> > > * Copyright (C) 2003  Southern Storm
Software, Pty Ltd.
> > > *
> > > * This program is free software, you can
redistribute it and/or modify
> > > * it under the terms of the GNU General
Public License as published by
> > > * the Free Software Foundation, either
version 2 of the License, or
> > > * (at your option) any later version.
> > > *
> > > * This program is distributed in the hope
that it will be useful,
> > > * but WITHOUT ANY WARRANTY, without even the
implied warranty of
> > > * MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.  See the
> > > * GNU General Public License for more
details.
> > > *
> > > * You should have received a copy of the GNU
General Public License
> > > * along with this program, if not, write to
the Free Software
> > > * Foundation, Inc., 59 Temple Place, Suite
330, Boston, MA  02111-1307
> > >
> > > USA
> > > */
> > >
> > > using System;
> > > using System.IO;
> > > using System.Drawing;
> > > using System.Drawing.Drawing2D;
> > > using System.Windows.Forms;
> > >
> > > public class ImageViewer : Form
> > > {
> > >         private ImageViewer()
> > >         {
> > >                 MenuItem openMenuItem = new
MenuItem("Open");
> > >                 MenuItem quitMenuItem = new
MenuItem("Quit");
> > >                 MenuItem fileMenuItem =
> > >                         new
MenuItem("File", new MenuItem[]
> > >                                
{openMenuItem, quitMenuItem});
> > >                 MainMenu mainMenu = new
MainMenu(new MenuItem[] {
> > > fileMenuItem });
> > >                 Menu = mainMenu;
> > >
> > >                 Size = new Size(600, 500);
> > >                 Text = "DotGNU Image
Viewer";
> > >                 IsMdiContainer = true;
> > >
> > >                 openMenuItem.Click += new
EventHandler(OpenClicked);
> > >                 quitMenuItem.Click += new
EventHandler(QuitClicked);
> > >         }
> > >
> > >         private void OpenClicked(Object
sender, EventArgs e)
> > >         {
> > >                 OpenFileDialog dialog = new
OpenFileDialog();
> > >                 dialog.Filter =
> > >                         "All image
files (*.bmp, *.jpg, *.png, *.gif,
> > > *.ico, *.cur)" +
> > >                        
"|*.bmp;*.jpg;*.png;*.gif;*.ico;*.cur" +
> > >                         "|BMP files
(*.bmp)|*.bmp" +
> > >                         "|JPEG files
(*.jpg)|*.jpg" +
> > >                         "|PNG files
(*.png)|*.png" +
> > >                         "|GIF files
(*.gif)|*.gif" +
> > >                         "|Icon files
(*.ico)|*.ico" +
> > >                         "|Cursor files
(*.cur)|*.cur" +
> > >                         "|All files
(*.*)|*.*";
> > >                 if(dialog.ShowDialog(this) ==
DialogResult.OK)
> > >                 {
> > >                         Bitmap image;
> > >                         try
> > >                         {
> > >                                 image = new
Bitmap( dialog.FileName);
> > >                         }
> > >                         catch(Exception)
> > >                         {
> > >                                
MessageBox.Show
> > >                                        
(String.Format ("Unknown image
> > > format for \"\"",
> > >
> > > dialog.FileName),
> > >                                         
"Error", 
> > > MessageBoxButtons.OK,
> > > MessageBoxIcon.Hand);
> > >                                 image = null;
> > >                         }
> > >                         if(image != null)
> > >                         {
> > >                                 ImageWindow
window = new ImageWindow
> > >                                        
(dialog.FileName, image);
> > >                                
window.MdiParent = this;
> > >                                
window.Visible = true;
> > >                         }
> > >                 }
> > >         }
> > >
> > >         private void QuitClicked(Object
sender, EventArgs e)
> > >         {
> > >                 Close();
> > >         }
> > >
> > >         protected override bool
ProcessDialogKey(Keys keyData)
> > >         {
> > >                 if(keyData == (Keys.Control |
Keys.O))
> > >                 {
> > >                         OpenClicked(this,
EventArgs.Empty);
> > >                         return true;
> > >                 }
> > >                 return
base.ProcessDialogKey(keyData);
> > >         }
> > >
> > >         public static void Main(String[]
args)
> > >         {
> > >                 ImageViewer form = new
ImageViewer();
> > >                 Application.Run(form);
> > >         }
> > >
> > > }
> > >
> > > internal class ImageWindow : Form
> > > {
> > >         private Image image;
> > >
> > >         public ImageWindow(String filename,
Image image)
> > >         {
> > >                 this.image = image;
> > >                 ClientSize = image.Size;
> > >                 Text =
Path.GetFileName(filename);
> > >         }
> > >
> > >         protected override void
OnPaint(PaintEventArgs args)
> > >         {
> > >                
args.Graphics.DrawImage(image, 0, 0);
> > >         }
> > >
> > > }
> > >
> > >
> > > Unhandled Exception:
System.ArgumentException: '-2147483648' is not a
> > > valid value for 'Value'. 'Value' should
be between 'Minimum' and
> > > 'Maximum'
> > > in <0x00163>
System.Windows.Forms.ScrollBar:set_Value (Int32 value)
> > > in (wrapper remoting-invoke-with-check)
> > > System.Windows.Forms.ScrollBar:set_Value
(int)
> > > in <0x00131>
System.Windows.Forms.MdiClient:CalcHBar (Int32 left,
> > > Int32
> > > right, Int32 right_edge, Boolean vert_vis)
> > > in <0x007d7>
System.Windows.Forms.MdiClient:SizeScrollBars ()
> > > in <0x0000a>
System.Windows.Forms.MdiClient:FormLocationChanged
> > > (System.Object sender, System.EventArgs e)
> > > in (wrapper delegate-invoke)
> > >
System.MulticastDelegate:invoke_void_object_EventArgs
> > > (object,System.EventArgs)
> > > in <0x0002e>
System.Windows.Forms.Control:OnLocationChanged
> > > (System.EventArgs e)
> > > in <0x0016a>
System.Windows.Forms.Control:UpdateBounds (Int32 x, Int32
> > > y, Int32 width, Int32 height, Int32
clientWidth, Int32 clientHeight)
> > > in <0x00149>
System.Windows.Forms.Control:UpdateBounds ()
> > > in <0x00375>
System.Windows.Forms.Control:WndProc
> > > (System.Windows.Forms.Message m)
> > > in <0x0000d>
System.Windows.Forms.ScrollableControl:WndProc
> > > (System.Windows.Forms.Message m)
> > > in <0x0000d>
System.Windows.Forms.ContainerControl:WndProc
> > > (System.Windows.Forms.Message m)
> > > in <0x00370>
System.Windows.Forms.Form:WndProc
> > > (System.Windows.Forms.Message m)
> > > in <0x00014>
System.Windows.Forms.Control+ControlNativeWindow:WndProc
> > > (System.Windows.Forms.Message m)
> > > in <0x0011e>
System.Windows.Forms.NativeWindow:WndProc (IntPtr hWnd,
> > > Msg
> > > msg, IntPtr wParam, IntPtr lParam)
> > > in <0x00013>
System.Windows.Forms.XplatUIX11:SendMessage (IntPtr hwnd,
> > > Msg message, IntPtr wParam, IntPtr lParam)
> > > in <0x0024e>
System.Windows.Forms.XplatUIX11:SetVisible (IntPtr
> > > handle,
> > > Boolean visible)
> > > in <0x0001a>
System.Windows.Forms.XplatUI:SetVisible (IntPtr handle,
> > > Boolean visible)
> > > in <0x0007d>
System.Windows.Forms.Control:SetVisibleCore (Boolean
> > > value)
> > > in <0x0000f>
System.Windows.Forms.Form:SetVisibleCore (Boolean value)
> > > in <0x00013>
System.Windows.Forms.Control:set_Visible (Boolean value)
> > > in (wrapper remoting-invoke-with-check)
> > > System.Windows.Forms.Control:set_Visible
(bool)
> > > in <0x00144> ImageViewer:OpenClicked
(System.Object sender,
> > > System.EventArgs e)
> > > in (wrapper delegate-invoke)
> > >
System.MulticastDelegate:invoke_void_object_EventArgs
> > > (object,System.EventArgs)
> > > in <0x0001d>
System.Windows.Forms.MenuItem:OnClick (System.EventArgse)
> > > in <0x00010>
System.Windows.Forms.MenuItem:PerformClick ()
> > > in (wrapper remoting-invoke-with-check)
> > > System.Windows.Forms.MenuItem:PerformClick ()
> > > in <0x00377>
System.Windows.Forms.MenuTracker:OnClick
> > > (System.Windows.Forms.MouseEventArgs args)
> > > in <0x00e61>
System.Windows.Forms.Form:WndProc
> > > (System.Windows.Forms.Message m)
> > > in <0x00014>
System.Windows.Forms.Control+ControlNativeWindow:WndProc
> > > (System.Windows.Forms.Message m)
> > > in <0x0011e>
System.Windows.Forms.NativeWindow:WndProc (IntPtr hWnd,
> > > Msg
> > > msg, IntPtr wParam, IntPtr lParam)
> > > in <0x00016>
System.Windows.Forms.XplatUIX11ispatchM
essage
> > > (System.Windows.Forms.MSG msg)
> > > in <0x00015>
System.Windows.Forms.XplatUIispatchM
essage
> > > (System.Windows.Forms.MSG msg)
> > > in <0x005fe>
System.Windows.Forms.Application:RunLoop (Boolean Modal,
> > > System.Windows.Forms.ApplicationContext
context)
> > > in <0x00024>
System.Windows.Forms.Application:Run
> > > (System.Windows.Forms.Form mainForm)
> > > in <0x00024> ImageViewer:Main
(System.String [] args)
> > > <--8
> > >
> > > --
> > > "Logic, my dear Zoe, is merely the
ability to be wrong with authority"
> > > -
> > > Dr Who
> > >
> > >
_______________________________________________
> > > Mono-winforms-list maillist  -  
Mono-winforms-listlists.ximian.com
> > > http://lists.ximian.com/mailman/listinfo/mono-winform
s-list
> > >
> >
> >
> >
> > --
> > Emery Conrad
> > Department of Mathematics
> > Virginia Tech
> > 5076 Derring Hall
> > Blacksburg, VA 24061-0406
> > (540) 231-3324
> >
>
>
>
> --
> Emery Conrad
> Department of Mathematics
> Virginia Tech
> 5076 Derring Hall
> Blacksburg, VA 24061-0406
> (540) 231-3324
>



--
Emery Conrad
Department of Mathematics
Virginia Tech
5076 Derring Hall
Blacksburg, VA 24061-0406
(540) 231-3324

_______________________________________________
Mono-winforms-list maillist  -  Mono-winforms-listlists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-winform
s-list
[1]

about | contact  Other archives ( Real Estate discussion Medical topics )