The image displayed as its complement is related to:
cdCanvasWriteMode(handles.cd_canvas, IUP_CD.CD_NOT_XOR)
Probably there is a case where it missed the reset to normal, which
actually I just did not find in your code.

This:
IupSetAttributes(IupFill(),"SIZE=5, EXPAND=NO"),
Can be reduced to:
IupSetAttributes(IupFill(),"SIZE=5"),
Because setting the size of a IupFill already has that effect. It is a
special control with a different behavior for size.

I wouldn't recommend setting the size of the canvas inside it own action
callback. This could cause an infinite loop. You could load the image, only
once, some where else, then set the size and only redraw the image on the
action callback. im_view actually does exactly that, except for the size.

Also changing the size of the dialog every time you load a new image can
have a very unpleasant effect on screen. Sometimes it is simpler to load
the image and redraw in the space you have available. But this is up to you.

Best,
Scuri




Best,
Scuri




On Mon, Mar 23, 2015 at 8:01 PM, Joaquim Luis <[email protected]> wrote:

>  I think I have no EXPAND set to YES. The code, that  crafted after
> seeing for example the im_view example starts in
>
> https://github.com/joa-quim/IUP.jl/blob/master/examples/mirone_toy_.jl#L40
>
> later down, in function
>
> https://github.com/joa-quim/IUP.jl/blob/master/examples/mirone_toy_.jl#L301
>
> if I uncomment the line with
>
> IupSetAttribute(handles.figure1, "RASTERSIZE", C_NULL)
>
> than, not even it doesn't do any better as I can't even rescale the window
> to a size larger than the loaded image.
> There are a lot of other strange things that happen (like a random
> conversion of the displayed image to its complement) that are difficult to
> explain in a mail.
>
>
>
>   For instance, if it has the EXPAND attribute set to Yes. Or if the
> dialog has a MINSIZE attribute set.
>
>   If you are not using EXPAND, or any other restriction on the dialog,
> then setting size/rastersize should work.
>
>   It also depends if you set the size before or after the dialog is shown.
>
>   So assuming that your dialog is resizeable, and EXPAND is not set, nor
> there is no restrictions. Doing:
>
> IupSetStrAttribute(iup_canvas, "RASTERSIZE", t);  // notice that I used
> "Str" since the t string is not static
> IupRefresh(iup_canvas);
>
>   Should resize the canvas, although it will not resize the dialog. So it
> can also resize the dialog, you should do:
>
> IupSetStrAttribute(iup_canvas, "RASTERSIZE", t);  // notice that I used
> "Str" since the t string is not static
> IupSetAttribute(iup_dialog, "RASTERSIZE", NULL) ;
> IupRefresh(iup_canvas);
>
> Best,
> Scuri
>
>
>
> On Mon, Mar 23, 2015 at 5:29 PM, Joaquim Luis <[email protected]> wrote:
>
>> OK, I added a IupRefresh call but made no difference.
>> But if setting a control size depends on the control configuration how
>> can I set the size that I want?
>> In this case it refers to setting the control with the size of an image
>> being displayed on it.
>>
>> Thanks
>>
>> Joaquim
>>
>>
>>   Hi,
>>
>>   Notice that set and get the RASTERSIZE of a control in IUP does
>> necessarily returns the same result. Depends a lot on the dialog and the
>> control configuration.
>>
>>   If the dialog is already visible, then after setting the size you
>> should call IupRefresh so the dialog layout can be updated with the new
>> size.
>>
>> Best,
>> Scuri
>>
>>
>> On Sat, Mar 21, 2015 at 8:49 PM, Joaquim Luis <[email protected]> wrote:
>>
>>> Hi,
>>>
>>> I want to resize the figure window to the size of an image being
>>> displayed
>>> (not bigger than the screen ofc) but having (bad) surprises because I get
>>> something else than required.
>>>
>>> For example, this piece of code clearly shows that the size requested is
>>> not being respected.
>>> This is Julia code but understandable, I think
>>>
>>> t = @sprintf("%dx%d", img.width, img.height)
>>> @show(t)
>>> IupSetAttribute(iup_canvas, "RASTERSIZE", t)
>>> @show(bytestring(IupGetAttribute(iup_canvas, "RASTERSIZE")))
>>>
>>> and the display is
>>>
>>> t = "430x300"
>>> bytestring(IupGetAttribute(iup_canvas,"RASTERSIZE")) = "414x168"
>>>
>>>
>>> Joaquim
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Dive into the World of Parallel Programming The Go Parallel Website,
>>> sponsored
>>> by Intel and developed in partnership with Slashdot Media, is your hub
>>> for all
>>> things parallel software development, from weekly thought leadership
>>> blogs to
>>> news, videos, case studies, tutorials and more. Take a look and join the
>>> conversation now. http://goparallel.sourceforge.net/
>>> _______________________________________________
>>> Iup-users mailing list
>>> [email protected]
>>> https://lists.sourceforge.net/lists/listinfo/iup-users
>>>
>>>
>>
>>
>>
>>
>
>
>
>
------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Iup-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/iup-users

Reply via email to