deferred class interface IMAGE
-- This class allow to draw an image in memory (process memory)
-- and send it to the display. Each draw require lots of network
-- if the display is remote. A draw require hard work to convert
-- the image into display format (be the display local or remote).
-- See PIXMAP for image stored in the "display" memory.
feature(s) from STATE
state: INTEGER
-- use values from STATE_CONSTANTS
is_state_normal: BOOLEAN
is_state_active: BOOLEAN
is_state_prelight: BOOLEAN
is_state_selected: BOOLEAN
is_state_insensitive: BOOLEAN
feature(s) from WIDGET
parent: CONTAINER
pos_x: INTEGER
pos_y: INTEGER
x_shrink_allowed: BOOLEAN
x_expand_allowed: BOOLEAN
y_shrink_allowed: BOOLEAN
y_expand_allowed: BOOLEAN
min_width: INTEGER
min_height: INTEGER
std_width: INTEGER
std_height: INTEGER
width: INTEGER
height: INTEGER
valid_width (w: INTEGER): BOOLEAN
valid_height (h: INTEGER): BOOLEAN
area: RECT
root_area: RECT
computing_size: BOOLEAN
set_x_shrink (b: BOOLEAN)
set_x_expand (b: BOOLEAN)
set_y_shrink (b: BOOLEAN)
set_y_expand (b: BOOLEAN)
set_shrink (b: BOOLEAN)
-- change both x and y shrink state
set_expand (b: BOOLEAN)
-- change both x and y expand state
feature(s) from WIDGET
expose_paint
-- expose_paint paint with depth limited to the first window
-- Containers have to propagate, with special
-- attention to windows where expose_paint do nothing.
set_geometry (x, y, w, h: INTEGER)
require
x >= 0;
y >= 0;
w >= min_width;
h >= min_height
ensure
width = w;
height = h
feature(s) from HASHABLE
hash_code: INTEGER
-- The hash-code value of Current.
ensure
good_hash_value: Result >= 0
feature(s) from DRAWABLE
clear_without_expose
-- clear the all the drawable area.
-- WARNING: don't redraw the content (no expose event)
feature(s) from IMAGE
depth: INTEGER
widget: POINTER
storage: NATIVE_ARRAY[CHARACTER]
count: INTEGER
put (c: CHARACTER; i: INTEGER)
-- Put c at position index.
require
valid_index: i.in_range(0,count - 1)
invariant
width >= min_width or computing_size;
height >= min_height or computing_size;
std_width > 0;
std_height > 0;
(not x_shrink_allowed implies width >= std_width) or computing_size;
(not x_expand_allowed implies width <= std_width) or computing_size;
(not y_shrink_allowed implies height >= std_height) or computing_size;
(not y_expand_allowed implies height <= std_height) or computing_size;
end of deferred IMAGE