123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865 |
- deferred class CD_FILLED_AREAS
- -- It is an area filled with the foreground color, but it depends on the
- -- current interior style. The "solid" style depends only on the foreground
- -- color. The "hatch" and "stipple" style depend on the foreground color,
- -- background color and on the back opacity attribute. The hatch lines drawn
- -- with this style do not depend on the other line attributes. The "pattern"
- -- style depends only on global canvas attributes.
- --
- -- The filled area includes the line at the edge of the area. So if you draw a
- -- filled rectangle, sector or polygon on top of a non filled one using the
- -- same coordinates, no style and 1 pixel width, the non filled primitive
- -- should be obscured by the filled primitive. But depending on the driver
- -- implementation some pixels at the edges may be not included. IMPORTANT: In
- -- the Postscript and PDF drivers the line at the edge is not included at all.
- -- If either the background or the foreground color are modified, the hatched
- -- and monochromatic fillings must be modified again in order to be updated.
- --
- -- Note that when a Filling Attribute is modified, the active filling style is
- -- now that of the modified attribute (hatch, stipple or pattern). Notice that
- -- this is not true for the clipping area. When the clipping area is modified,
- -- the clipping is only affected if it is active.
- inherit
- CANVAS_DRAW
- feature {ANY}
- draws_box (xmin, xmax, ymin, ymax: INTEGER)
- -- Fills a rectangle according to the current interior style. All points
- -- in the interval x_min <= x <= x_max, y_min <= y <= y_max will be
- -- painted. When the interior style "hollow" is defined, the function
- -- behaves like its equivalent "draws_rect".
- do
- int_canvas_box (cnvs, xmin, xmax, ymin, ymax)
- end
- draws_box_real (xmin, xmax, ymin, ymax: REAL_64)
- -- As "draws_box" but with REAL_64 coordinates.
- do
- int_canvas_c_double_box (cnvs, xmin, xmax, ymin, ymax)
- end
- wd_draws_box (xmin, xmax, ymin, ymax: REAL_64)
- -- As "draws_box" but with World coordinates.
- do
- int_wd_canvas_box (cnvs, xmin, xmax, ymin, ymax)
- end
- draws_sector (xc, yc, w, h: INTEGER; angle1, angle2: REAL_64)
- -- Fills the arc of an ellipse aligned with the axis, according to the
- -- current interior style, in the shape of a pie.
- --
- -- The coordinate (xc,yc) defines the center of the ellipse. Dimensions w
- -- and h define the elliptic axes X and Y, respectively.
- --
- -- Angles angle1 and angle2 are in degrees and oriented
- -- counter-clockwise. They define the arc start and end, but they are not
- -- the angle relative to the center, except when w==h and the ellipse is
- -- reduced to a circle. The arc starts at the point
- -- (xc+(w/2)*cos(angle1), yc+(h/2)*sin(angle1)) and ends at
- -- (xc+(w/2)*cos(angle2), yc+(h/2)*sin(angle2)). A complete ellipse can
- -- be drawn using 0 and 360 as the angles. If angle2 is less than angle1
- -- it will be increased by 360 until it is greater than angle1.
- --
- -- The angles are specified so if the size of the ellipse (w x h) is
- -- changed, its shape is preserved. So the angles relative to the center
- -- are dependent from the ellipse size. The actual angle can be obtained
- -- using rangle = atan2((h/2)*sin(angle), (w/2)*cos(angle)).
- --
- -- When the interior style "hollow" is defined, the function behaves
- -- like its equivalent "draws_arc", plus two lines connecting to the
- -- center.
- do
- int_canvas_sector (cnvs, xc, yc, w, h, angle1, angle2)
- end
- draws_sector_real (xc, yc, w, h, angle1, angle2: REAL_64)
- -- As "draws_sector" but with REAL_64 coordinates.
- do
- int_canvas_c_double_sector (cnvs, xc, yc, w, h, angle1, angle2)
- end
- wd_draws_sector (xc, yc, w, h, angle1, angle2: REAL_64)
- -- As "draws_sector" but with World coordinates.
- do
- int_wd_canvas_sector (cnvs, xc, yc, w, h, angle1, angle2)
- end
- draws_chord (xc, yc, w, h: INTEGER; angle1, angle2: REAL_64)
- -- Fills the arc of an ellipse aligned with the axis, according to the
- -- current interior style, the start and end points of the arc are
- -- connected. The parameters are the same as the "draws_sector".
- --
- -- When the interior style "hollow" is defined, the function behaves
- -- like its equivalent "draws_arc", plus a line connecting the arc start
- -- and end points.
- do
- int_canvas_chord (cnvs, xc, yc, w, h, angle1, angle2)
- end
- draws_chord_real (xc, yc, w, h, angle1, angle2: REAL_64)
- -- As "draws_chord" but with REAL_64 coordinates.
- do
- int_canvas_c_double_chord (cnvs, xc, yc, w, h, angle1, angle2)
- end
- wd_draws_chord (xc, yc, w, h, angle1, angle2: REAL_64)
- -- As "draws_chord" but with World coordinates.
- do
- int_wd_canvas_chord (cnvs, xc, yc, w, h, angle1, angle2)
- end
- -- Attributes
- set_back_opacity (opacity: STRING)
- -- Configures the background opacity to filling primitives based on the
- -- foreground and background colors. Note that only when interior style
- -- is "hatch" or "stipple" that back opacity is used. Values:
- -- CD_TRANSPARENT or CD_OPAQUE. If it is opaque the primitive will erase
- -- whatever is in the background with the background color. If it is
- -- transparent, only the foreground color is painted.
- -- Default value: CD_TRANSPARENT.
- -- In some drivers is always opaque.
- require
- is_valid_back_opacity (opacity)
- local
- i: INTEGER
- do
- if opacity.is_equal("CD_OPAQUE") then
- i := int_canvas_back_opacity (cnvs, 0)
- elseif opacity.is_equal("CD_TRANSPARENT") then
- i := int_canvas_back_opacity (cnvs, 1)
- end
- end
- get_back_opacity: STRING
- local
- i: INTEGER
- do
- i := int_canvas_back_opacity (cnvs, -1)
- if i.is_equal(0) then
- Result := "CD_OPAQUE"
- elseif i.is_equal(1) then
- Result := "CD_TRANSPARENT"
- end
- end
- set_back_opacity_opaque
- local
- i: INTEGER
- do
- i := int_canvas_back_opacity (cnvs, 0)
- end
- set_back_opacity_transparent
- local
- i: INTEGER
- do
- i := int_canvas_back_opacity (cnvs, 1)
- end
- set_fill_mode (mode: STRING)
- -- Selects a predefined polygon fill rule (CD_EVENODD or CD_WINDING).
- -- Default value: CD_EVENODD.
- require
- is_valid_fill_mode (mode)
- local
- i: INTEGER
- do
- if mode.is_equal("CD_EVENODD") then
- i := int_canvas_back_opacity (cnvs, 0)
- elseif mode.is_equal("CD_WINDING") then
- i := int_canvas_back_opacity (cnvs, 1)
- end
- end
- get_fill_mode: STRING
- local
- i: INTEGER
- do
- i := int_canvas_fill_mode (cnvs, -1)
- if i.is_equal(0) then
- Result := "CD_EVENODD"
- elseif i.is_equal(1) then
- Result := "CD_WINDING"
- end
- end
- set_fill_mode_even_odd
- local
- i: INTEGER
- do
- i := int_canvas_back_opacity (cnvs, 0)
- end
- set_fill_mode_winding
- local
- i: INTEGER
- do
- i := int_canvas_back_opacity (cnvs, 1)
- end
- set_interior_style (style: STRING)
- -- Configures the current style for the area filling primitives:
- -- CD_SOLID, CD_HOLLOW, CD_HATCH, CD_STIPPLE or CD_PATTERN. Note that
- -- only CD_HATCH and CD_STIPPLE are affected by the backopacity.
- -- Default value: CD_SOLID.
- --
- -- If a stipple or a pattern were not defined, when they are selected the
- -- state of the attribute is not changed.
- --
- -- When the style CD_HOLLOW is defined, functions "draws_box" and
- -- "draws_sector" behave as their equivalent "draws_rect" and
- -- "draws_arc", and the polygons with style "fill" behave like
- -- "closed_lines".
- require
- is_valid_interior_style(style)
- local
- i: INTEGER
- do
- if style.is_equal("CD_SOLID") then
- i := int_canvas_interior_style (cnvs, 0)
- elseif style.is_equal("CD_HATCH") then
- i := int_canvas_interior_style (cnvs, 1)
- elseif style.is_equal("CD_STIPPLE") then
- i := int_canvas_interior_style (cnvs, 2)
- elseif style.is_equal("CD_PATTERN") then
- i := int_canvas_interior_style (cnvs, 3)
- elseif style.is_equal("CD_HOLLOW") then
- i := int_canvas_interior_style (cnvs, 4)
- end
- end
- get_interior_style: STRING
- local
- i: INTEGER
- do
- i := int_canvas_interior_style (cnvs, -1)
- if i.is_equal(0) then
- Result := "CD_SOLID"
- elseif i.is_equal(1) then
- Result := "CD_HATCH"
- elseif i.is_equal(2) then
- Result := "CD_STIPPLE"
- elseif i.is_equal(3) then
- Result := "CD_PATTERN"
- elseif i.is_equal(4) then
- Result := "CD_HOLLOW"
- end
- end
- set_interior_style_solid
- local
- i: INTEGER
- do
- i := int_canvas_interior_style (cnvs, 0)
- end
- set_interior_style_hatch
- local
- i: INTEGER
- do
- i := int_canvas_interior_style (cnvs, 1)
- end
- set_interior_style_stipple
- local
- i: INTEGER
- do
- i := int_canvas_interior_style (cnvs, 2)
- end
- set_interior_style_pattern
- local
- i: INTEGER
- do
- i := int_canvas_interior_style (cnvs, 3)
- end
- set_interior_style_hollow
- local
- i: INTEGER
- do
- i := int_canvas_interior_style (cnvs, 4)
- end
- set_hatch (style: STRING)
- -- Selects a predefined hatch style (CD_HORIZONTAL, CD_VERTICAL,
- -- CD_FDIAGONAL, CD_BDIAGONAL, CD_CROSS or CD_DIAGCROSS) and sets the
- -- interior style to CD_HATCH. The lines are drawn with the foreground
- -- color, and the background is drawn with the background color if back
- -- opacity is opaque.
- -- Default value: CD_HORIZONTAL.
- -- The foreground and background colors must be set before setting the
- -- style. In some drivers is always opaque.
- require
- is_valid_hatch(style)
- local
- i: INTEGER
- do
- if style.is_equal("CD_HORIZONTAL") then
- i := int_canvas_hatch (cnvs, 0)
- elseif style.is_equal("CD_VERTICAL") then
- i := int_canvas_hatch (cnvs, 1)
- elseif style.is_equal("CD_FDIAGONAL") then
- i := int_canvas_hatch (cnvs, 2)
- elseif style.is_equal("CD_BDIAGONAL") then
- i := int_canvas_hatch (cnvs, 3)
- elseif style.is_equal("CD_CROSS") then
- i := int_canvas_hatch (cnvs, 4)
- elseif style.is_equal("CD_DIAGCROSS") then
- i := int_canvas_hatch (cnvs, 5)
- end
- end
- get_hatch: STRING
- local
- i: INTEGER
- do
- i := int_canvas_hatch (cnvs, -1)
- if i.is_equal(0) then
- Result := "CD_HORIZONTAL"
- elseif i.is_equal(1) then
- Result := "CD_VERTICAL"
- elseif i.is_equal(2) then
- Result := "CD_FDIAGONAL"
- elseif i.is_equal(3) then
- Result := "CD_BDIAGONAL"
- elseif i.is_equal(4) then
- Result := "CD_CROSS"
- elseif i.is_equal(5) then
- Result := "CD_DIAGCROSS"
- end
- end
- set_hatch_horizontal
- local
- i: INTEGER
- do
- i := int_canvas_hatch (cnvs, 0)
- end
- set_hatch_vertical
- local
- i: INTEGER
- do
- i := int_canvas_hatch (cnvs, 1)
- end
- set_hatch_forward_diagonal
- local
- i: INTEGER
- do
- i := int_canvas_hatch (cnvs, 2)
- end
- set_hatch_backward_diagonal
- local
- i: INTEGER
- do
- i := int_canvas_hatch (cnvs, 3)
- end
- set_hatch_cross
- local
- i: INTEGER
- do
- i := int_canvas_hatch (cnvs, 4)
- end
- set_hatch_diagonal_cross
- local
- i: INTEGER
- do
- i := int_canvas_hatch (cnvs, 5)
- end
- set_stipple (marks: FAST_ARRAY2[INTEGER])
- -- Defines a wxh matrix of zeros (0) and ones (1). The zeros are mapped
- -- to the background color or are transparent, according to the
- -- background opacity attribute. The ones are mapped to the foreground
- -- color. The function sets the interior style to "sttiple". It does not
- -- need to be stored by the application, as it is internally replicated
- -- by the library. In some drivers is always opaque. The foreground and
- -- background colors must be set before setting the style.
- do
- int_canvas_stipple (cnvs, marks.count2, marks.count1,
- convert_array2(marks))
- end
- set_wd_stipple (marks: FAST_ARRAY2[INTEGER]; width_mm, height_mm: REAL_64)
- -- Allows specifying the stipple in world coordinates. Another stipple
- -- will be created with the size in pixels corresponding to the specified
- -- size in millimeters. The new size in pixels will be an integer factor
- -- of the original size that is closets to the size in millimeters. The
- -- use of this function may produce very large or very small stipples.
- do
- int_wd_canvas_stipple (cnvs, marks.count2, marks.count1,
- convert_array2(marks),
- width_mm, height_mm)
- end
- get_stipple: FAST_ARRAY2[INTEGER]
- -- Returns the current stipple. Returns Void if no
- -- stipple was defined.
- local
- w, h: INTEGER
- p: POINTER
- do
- p := int_canvas_get_stipple (cnvs, $w, $h)
- if p.is_not_null then
- Result := get_array2(p, w, h)
- end
- end
- set_pattern (colors: FAST_ARRAY2[INTEGER])
- -- Defines a new wxh color matrix and sets the interior style to
- -- "pattern". It does not need to be stored by the application, as it is
- -- internally replicated by the library.
- do
- int_canvas_pattern (cnvs, colors.count2, colors.count1,
- convert_colors_array2(colors))
- end
- set_wd_pattern (colors: FAST_ARRAY2[INTEGER]; width_mm, height_mm: REAL_64)
- -- Allows specifying the pattern in world coordinates. Another pattern
- -- will be created with the size in pixels corresponding to the specified
- -- size in millimeters. The new size in pixels will be an integer factor
- -- of the original size that is closets to the size in millimeters. The
- -- use of this function may produce very large or very small patterns.
- do
- int_wd_canvas_pattern (cnvs, colors.count2, colors.count1,
- convert_colors_array2(colors),
- width_mm, height_mm)
- end
- get_pattern: FAST_ARRAY2[INTEGER]
- -- Returns the current pattern and its dimensions. Returns Void if no
- -- pattern was defined.
- local
- w, h: INTEGER
- p: POINTER
- do
- p := int_canvas_get_pattern (cnvs, $w, $h)
- if p.is_not_null then
- Result := get_colors_array2(p, w, h)
- end
- end
- feature {}
- -- Validations
- is_valid_back_opacity (opacity: STRING): BOOLEAN
- do
- if opacity.is_equal("CD_OPAQUE") or
- opacity.is_equal("CD_TRANSPARENT") then
- Result := True
- else
- Result := False
- end
- end
- is_valid_fill_mode (mode: STRING): BOOLEAN
- do
- if mode.is_equal("CD_EVENODD") or
- mode.is_equal("CD_WINDING") then
- Result := True
- else
- Result := False
- end
- end
- is_valid_interior_style (style: STRING): BOOLEAN
- do
- if style.is_equal("CD_SOLID") or
- style.is_equal("CD_HOLLOW") or
- style.is_equal("CD_HATCH") or
- style.is_equal("CD_STIPPLE") or
- style.is_equal("CD_PATTERN") then
- Result := True
- else
- Result := False
- end
- end
- is_valid_hatch (style: STRING): BOOLEAN
- do
- if style.is_equal("CD_HORIZONTAL") or
- style.is_equal("CD_VERTICAL") or
- style.is_equal("CD_FDIAGONAL") or
- style.is_equal("CD_BDIAGONAL") or
- style.is_equal("CD_CROSS") or
- style.is_equal("CD_DIAGCROSS") then
- Result := True
- else
- Result := False
- end
- end
- -- Convertions
- convert_array2 (matrix: FAST_ARRAY2[INTEGER]): NATIVE_ARRAY[CHARACTER]
- local
- w, h, v: INTEGER;
- arg: NATIVE_ARRAY[CHARACTER]
- i, x, y: INTEGER
- do
- h := matrix.count1
- w := matrix.count2
- arg := arg.calloc(w*h)
- i := 0
-
- from
- x := 0
- until
- x = w
- loop
- from
- y := 0
- until
- y = w
- loop
- v := matrix.item(x, y)
- arg.put(v.to_character, i)
- i := i + 1
- y := y + 1
- end
- x := x + 1
- end
- Result := arg
- end
- get_array2 (array: POINTER; w, h: INTEGER): FAST_ARRAY2[INTEGER]
- local
- i, x, y: INTEGER
- v: CHARACTER
- arg: NATIVE_ARRAY[CHARACTER]
- marks: FAST_ARRAY2[INTEGER]
- do
- create marks.make (h, w)
- arg := arg.calloc(w*h)
- arg := arg.from_pointer(array)
- i := 0
- from
- x := 0
- until
- x = w
- loop
- from
- y := 0
- until
- y = h
- loop
- v := arg.item(i)
- marks.put(v.to_integer_8.to_integer_32, y, x)
-
- i := i + 1
- y := y + 1
- end
- x := x + 1
- end
- Result := marks
- end
- convert_colors_array2 (matrix: FAST_ARRAY2[INTEGER]): NATIVE_ARRAY[INTEGER]
- local
- w, h, v: INTEGER;
- arg: NATIVE_ARRAY[INTEGER]
- i, x, y: INTEGER
- do
- h := matrix.count1
- w := matrix.count2
- arg := arg.calloc(w*h)
- i := 0
-
- from
- x := 0
- until
- x = w
- loop
- from
- y := 0
- until
- y = w
- loop
- v := matrix.item(x, y)
- arg.put(v, i)
- i := i + 1
- y := y + 1
- end
- x := x + 1
- end
- Result := arg
- end
- get_colors_array2 (array: POINTER; w, h: INTEGER): FAST_ARRAY2[INTEGER]
- local
- x, y: INTEGER
- i, v: INTEGER
- arg: NATIVE_ARRAY[INTEGER]
- marks: FAST_ARRAY2[INTEGER]
- do
- create marks.make (h, w)
- arg := arg.calloc(w*h)
- arg := arg.from_pointer(array)
- i := 0
- from
- x := 0
- until
- x = w
- loop
- from
- y := 0
- until
- y = h
- loop
- v := arg.item(i)
- marks.put(v, y, x)
-
- i := i + 1
- y := y + 1
- end
- x := x + 1
- end
- Result := marks
- end
- -- Internals
- int_canvas_box (wgt: POINTER; xmin, xmax, ymin, ymax: INTEGER)
- external "plug_in"
- alias "{
- location: "${sys}/plugins"
- module_name: "iup"
- feature_name: "cdCanvasBox"
- }"
- end
- int_canvas_c_double_box (wgt: POINTER; xmin, xmax, ymin, ymax: REAL_64)
- external "plug_in"
- alias "{
- location: "${sys}/plugins"
- module_name: "iup"
- feature_name: "cdfCanvasBox"
- }"
- end
- int_wd_canvas_box (wgt: POINTER; xmin, xmax, ymin, ymax: REAL_64)
- external "plug_in"
- alias "{
- location: "${sys}/plugins"
- module_name: "iup"
- feature_name: "wdCanvasBox"
- }"
- end
- int_canvas_sector (wgt: POINTER; xc, yc, w, h: INTEGER; a1, a2: REAL_64)
- external "plug_in"
- alias "{
- location: "${sys}/plugins"
- module_name: "iup"
- feature_name: "cdCanvasSector"
- }"
- end
- int_canvas_c_double_sector (wgt: POINTER; xc, yc, w, h, a1, a2: REAL_64)
- external "plug_in"
- alias "{
- location: "${sys}/plugins"
- module_name: "iup"
- feature_name: "cdfCanvasSector"
- }"
- end
- int_wd_canvas_sector (wgt: POINTER; xc, yc, w, h, a1, a2: REAL_64)
- external "plug_in"
- alias "{
- location: "${sys}/plugins"
- module_name: "iup"
- feature_name: "wdCanvasSector"
- }"
- end
- int_canvas_chord (wgt: POINTER; xc, yc, w, h: INTEGER; a1, a2: REAL_64)
- external "plug_in"
- alias "{
- location: "${sys}/plugins"
- module_name: "iup"
- feature_name: "cdCanvasChord"
- }"
- end
- int_canvas_c_double_chord (wgt: POINTER; xc, yc, w, h, a1, a2: REAL_64)
- external "plug_in"
- alias "{
- location: "${sys}/plugins"
- module_name: "iup"
- feature_name: "cdfCanvasChord"
- }"
- end
- int_wd_canvas_chord (wgt: POINTER; xc, yc, w, h, a1, a2: REAL_64)
- external "plug_in"
- alias "{
- location: "${sys}/plugins"
- module_name: "iup"
- feature_name: "wdCanvasChord"
- }"
- end
- int_canvas_back_opacity (wgt: POINTER; o: INTEGER): INTEGER
- external "plug_in"
- alias "{
- location: "${sys}/plugins"
- module_name: "iup"
- feature_name: "cdCanvasBackOpacity"
- }"
- end
- int_canvas_fill_mode (wgt: POINTER; m: INTEGER): INTEGER
- external "plug_in"
- alias "{
- location: "${sys}/plugins"
- module_name: "iup"
- feature_name: "cdCanvasFillMode"
- }"
- end
- int_canvas_interior_style (wgt: POINTER; s: INTEGER): INTEGER
- external "plug_in"
- alias "{
- location: "${sys}/plugins"
- module_name: "iup"
- feature_name: "cdCanvasInteriorStyle"
- }"
- end
- int_canvas_hatch (wgt: POINTER; s: INTEGER): INTEGER
- external "plug_in"
- alias "{
- location: "${sys}/plugins"
- module_name: "iup"
- feature_name: "cdCanvasHatch"
- }"
- end
- int_canvas_stipple (wgt: POINTER; w, h: INTEGER; fgfb: NATIVE_ARRAY[CHARACTER])
- external "plug_in"
- alias "{
- location: "${sys}/plugins"
- module_name: "iup"
- feature_name: "cdCanvasStipple"
- }"
- end
- int_canvas_stipple_imimage (wgt, im: POINTER)
- external "plug_in"
- alias "{
- location: "${sys}/plugins"
- module_name: "iup"
- feature_name: "cdCanvasStippleImImage"
- }"
- end
- int_wd_canvas_stipple (wgt: POINTER; w, h: INTEGER; fgfb: NATIVE_ARRAY[CHARACTER]; w_mm, h_mm: REAL_64)
- external "plug_in"
- alias "{
- location: "${sys}/plugins"
- module_name: "iup"
- feature_name: "wdCanvasStipple"
- }"
- end
- int_canvas_get_stipple (wgt, w, h: POINTER): POINTER
- external "plug_in"
- alias "{
- location: "${sys}/plugins"
- module_name: "iup"
- feature_name: "cdCanvasGetStipple"
- }"
- end
- int_canvas_pattern (wgt: POINTER; w, h: INTEGER; color: NATIVE_ARRAY[INTEGER])
- external "plug_in"
- alias "{
- location: "${sys}/plugins"
- module_name: "iup"
- feature_name: "cdCanvasPattern"
- }"
- end
- int_canvas_pattern_imimage (wgt, im: POINTER)
- external "plug_in"
- alias "{
- location: "${sys}/plugins"
- module_name: "iup"
- feature_name: "cdCanvasPatternImImage"
- }"
- end
- int_wd_canvas_pattern (wgt: POINTER; w, h: INTEGER; color: NATIVE_ARRAY[INTEGER]; w_mm, h_mm: REAL_64)
- external "plug_in"
- alias "{
- location: "${sys}/plugins"
- module_name: "iup"
- feature_name: "wdCanvasPattern"
- }"
- end
- int_canvas_get_pattern (wgt, w, h: POINTER): POINTER
- external "plug_in"
- alias "{
- location: "${sys}/plugins"
- module_name: "iup"
- feature_name: "cdCanvasGetPattern"
- }"
- end
- end
- -- The MIT License (MIT)
- -- Copyright (c) 2016 by German A. Arias
- -- Permission is hereby granted, free of charge, to any person obtaining a copy
- -- of this software and associated documentation files (the "Software"), to deal
- -- in the Software without restriction, including without limitation the rights
- -- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- -- copies of the Software, and to permit persons to whom the Software is
- -- furnished to do so, subject to the following conditions:
- --
- -- The above copyright notice and this permission notice shall be included in
- -- all copies or substantial portions of the Software.
- --
- -- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- -- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- -- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- -- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- -- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- -- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- -- SOFTWARE.
|