deferred class DRAWABLE

Features exported to LAYOUT

DRAWABLE is common classe for surfaces with painting capabilities (like WINDOWs and PIXMAPs).

TODO: add clear_area ?

Direct parents

conformant parents

WIDGET

non-conformant parents

HASHABLE

Known children

conformant children

CONTAINER, IMAGE, PIXMAP

Summary

exported features

Details

deferred clear_without_expose

clear the all the drawable area. WARNING: don't redraw the content (no expose event)

parent: CONTAINER
pos_x: INTEGER
pos_y: INTEGER
x_shrink_allowed: BOOLEAN
x_expand_allowed: BOOLEAN
y_shrink_allowed: BOOLEAN
y_expand_allowed: BOOLEAN
deferred min_width: INTEGER
deferred min_height: INTEGER
deferred std_width: INTEGER
deferred std_height: INTEGER
deferred width: INTEGER
deferred height: INTEGER
valid_width (w: INTEGER): BOOLEAN
valid_height (h: INTEGER): BOOLEAN
area: RECT
root_area: RECT
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

deferred 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.

deferred set_geometry (x: INTEGER, y: INTEGER, w: INTEGER, h: INTEGER)

require

  • x >= 0
  • y >= 0
  • w >= min_width
  • h >= min_height

ensure

  • width = w
  • height = h

state: INTEGER

use values from STATE_CONSTANTS

frozen is_state_normal: BOOLEAN
frozen is_state_active: BOOLEAN
frozen is_state_prelight: BOOLEAN
frozen is_state_selected: BOOLEAN
frozen is_state_insensitive: BOOLEAN
deferred hash_code: INTEGER

The hash-code value of Current.

ensure

  • good_hash_value: Result >= 0

deferred is_equal (other: DRAWABLE): BOOLEAN

Is other attached to an object considered equal to current object ?

require

  • other /= Void

ensure

  • Result implies hash_code = other.hash_code
  • commutative: generating_type = other.generating_type implies Result = other.is_equal(Current)

Class invariant