Project

General

Profile

static-frame-virt-width.p

Vladimir Tsichevski, 11/10/2021 03:47 PM

Download (1.7 KB)

 
1
// Test if FRAME:VIRTUAL-WIDTH-PIXELS is set on frame realize.
2

    
3
DEFINE FRAME testFrame 
4
   WITH
5
      SIZE-PIXELS 200 BY 800
6
      SCROLLABLE
7
      .
8

    
9
DEFINE VARIABLE wBefore AS INTEGER NO-UNDO.
10
DEFINE VARIABLE wvBefore AS INTEGER NO-UNDO.
11
ASSIGN
12
   wBefore = FRAME testFrame:WIDTH-PIXELS
13
   wvBefore = FRAME testFrame:VIRTUAL-WIDTH-PIXELS.
14

    
15
/** Set width in un-realized widget, the virtual-width must follow */
16
FRAME testFrame:WIDTH-PIXELS = 150.
17

    
18
DEFINE VARIABLE wAfter AS INTEGER NO-UNDO.
19
DEFINE VARIABLE wvAfter AS INTEGER NO-UNDO.
20
ASSIGN
21
   wAfter = FRAME testFrame:WIDTH-PIXELS
22
   wvAfter = FRAME testFrame:VIRTUAL-WIDTH-PIXELS.
23

    
24
/** Set virtual-width explicitly, the width must follow since
25
    it is less than desired virtual width */
26
FRAME testFrame:VIRTUAL-WIDTH-PIXELS = 145.
27

    
28
DEFINE VARIABLE wAfterVirtSet AS INTEGER NO-UNDO.
29
DEFINE VARIABLE wvAfterVirtSet AS INTEGER NO-UNDO.
30
ASSIGN
31
   wAfterVirtSet = FRAME testFrame:WIDTH-PIXELS
32
   wvAfterVirtSet = FRAME testFrame:VIRTUAL-WIDTH-PIXELS.
33

    
34
/** Set width again, this time the virtual-width must *not* follow, but in FWD it does */
35
FRAME testFrame:WIDTH-PIXELS = 140.
36

    
37
DEFINE VARIABLE wAfterVirtAndWidthSet AS INTEGER NO-UNDO.
38
DEFINE VARIABLE wvAfterVirtAndWidthSet AS INTEGER NO-UNDO.
39
ASSIGN
40
   wAfterVirtAndWidthSet = FRAME testFrame:WIDTH-PIXELS
41
   wvAfterVirtAndWidthSet = FRAME testFrame:VIRTUAL-WIDTH-PIXELS.
42

    
43
MESSAGE "before" wBefore wvBefore.               // should be 200 200
44
MESSAGE "after" wAfter wvAfter.                  // should be 150 200
45
MESSAGE "after Virt Width set"
46
   wAfterVirtSet wvAfterVirtSet.                 // should be 145 145
47
MESSAGE "after Virt and Width fixed"
48
   wAfterVirtAndWidthSet wvAfterVirtAndWidthSet. // should be 140 145, in FWD 140 140