4 canvas

Highly specialized existing graphic applications (e.g. process visualization) which have to have direct access to the underlying window system can use the dialog object canvas as their individual drawing area.

The DM provides this object for the application. The DM does not consider the contents of this object; the application itself is responsible for the contents. For this reason, a canvas must not contain any child objects.

Definition

{ export | reexport } { model } canvas  { <Identifier> }
{
  <standard attributes>
  <plain attributes>
  <hierarchy attributes>
  <layout attributes>
  <object-specific attributes>
}

The DM uses the attributes listed in chapter “Attributes” in the usual manner. This object is typically used when the application has to display dynamic charts or diagrams.

Events

cut

extevent

focus

help

paste

Children

document

record

transformer

Parent

groupbox

layoutbox

module

notepage

splitbox

toolbar

window

Menu

Pop-up menu

4.1 Attributes

Attribute

RLD

PID

Properties

Short Description

.acc_label

string

object

string

text

S.G/D/C

overwrites the Automation Identifier for Microsoft UI Automation

.acc_text

object

string

text

string

S.G/D/C

overwrites the Automation Name for Microsoft UI Automation

.accelerator

identifier

accel

S,G/D/C

accelerator of object

.bgc

identifier

color

S,G/D/C

background color

.bordercolor

identifier

color

S,G/D/C

border color

.borderraster

boolean

boolean

S,G/D/-

controls computation of geometry with active grid

.borderstyle

enum

enum

S,G/D/C

defines the style, i.e. representation and characteristics of the borders (since IDM version A.06.01.a)

.borderwidth

integer

integer

S,G/D/C

borderwidth

.canvasfunc

identifier

func

S,G/D/C

canvas function

.class

class

class

-,G/-/-

class/id of object

.control

identifier

instance

-,G/-/-

control currently belonging to object

.cursor

identifier

cursor

S,G/D/C

cursor belonging to object

.cut_pending

boolean

boolean

S,G/-/-

cut operation not yet carried out

.cut_pending_changed

boolean

boolean

-,G/-/-

changing state during cut operation

.dialog

identifier

instance

-,G/-/-

dialog to which the object belongs

.document[integer]

object

document

S,G/-/-

accesses the I-th XML Document

.external

boolean

boolean

-,G/-/-

returns if the object class is an USW class

.external[integer]

class

class

-,G/-/-

returns the I-th registered USW class

.fgc

identifier

color

S,G/D/C

foreground color

.firstrecord

object

record

S,G/-/C

accesses the first record of an object

.focus

boolean

boolean

S,G/-/C

input focus on object

.font

identifier

font

S,G/D/C

object font

.function

identifier

func

S,G/D/C

function belonging to object

.groupbox

identifier

instance

-,G/-/-

object groupbox

.height

integer

integer

S,G/D/C

object height

.help

string

identifier

string

text

S,G/D/C

help text of object

.index

integer

index

integer

index

-,G/-/-

current index of object in the child list of its parent

.label

string

string

S,G/D/C

name/identifier of object

.lastrecord

object

record

S,G/-/C

accesses the last record of an object

.layoutbox

object

object

-,G/-/-

layoutbox of object

.mapped

boolean

boolean

S,G/D/-

defers the display of a visibly created object

.member[integer]

attribute

attribute

-,G/-,-

user-defined attribute [I] of object

.membercount

integer

integer

-,G/-,-

number of user-defined attributes

.menu

identifier

instance

S,G/D/C

object menu

.model

identifier

instance

S,G/D/C

model belonging to object

.notepage

object

object

-,G/-/-

notepage of object

.options[enum]

boolean

boolean

S,G/D/-

special options of object

.parent

identifier

instance

S,G/-/-

parent of object

.posraster

boolean

boolean

S,G/D/C

positions refer to grid

.real_height

integer

integer

-,G/-/-

real height of object

.real_sensitive

boolean

boolean

-,G/-/-

real selectivity of object

.real_visible

boolean

boolean

-,G/-/-

real visibility of object

.real_width

integer

integer

-,G/-/-

real width of object

.real_x

integer

integer

-,G/-/-

real distance from left (in pixel)

.real_y

integer

integer

-,G/-/-

real distance from top (in pixel)

.record[integer]

object

record

S,G/-/C

accesses the I-th record of an object

.recordcount

integer

integer

-,G/-/-

queries the number of child records

.scope

integer
(1, 2, 3)

scope

-,G/-/-

queries the object type (Default, Model or instance)

.sensitive

boolean

boolean

S,G/D/C

selectivity of object

.sizeraster

boolean

boolean

S,G/D/C

size refers to grid of parent object

.statushelp

string

object

string

text

S,G/-/C

text to be displayed in statusbar

.toolbar

object

object

-,G/-/-

toolbar of object

.toolhelp

string

object

string

text

S,G/D/C

gives a short explanation of object at the cursor

.userdata

anyvalue

anyvalue

S,G/D/C

object userdata (any DM datatype)

.visible

boolean

boolean

S,G/D/C

visibility of object

.width

integer

may be 0

integer

S,G/D/C

actual width of object

.window

identifier

instance

-,G/-/-

window to which object belongs

.xauto

integer

(-1, 0, 1)

integer

S,G/D/C

definition type of x-coordinates

.xleft

integer

integer

S,G/D/C

x-coordinate, distance from the left

.xright

integer

integer

S,G/D/C

x-coordinate, distance from the right

.yauto

integer

(-1, 0, 1)

integer

S,G/D/C

definition type of y-coordinates

.ybottom

integer

integer

S,G/D/C

y-coordinate, distance from bottom

.ytop

integer

integer

S,G/D/C

y-coordinate, distance from top

4.2 Specific Attributes

With Motif 1.1, you cannot navigate over an object with keyboard navigation, if this object is a composite widget and if this widget has no children. A program abort is also likely.

Therefore, the attribute .options[enum] which decides whether a DrawingArea-Widget (composite, i.e. it accepts children) or a DrawnButton-Widget (primitive, i.e. it does not accept children) is to be used has been made available for the object canvas.

The DrawnButton-Widget is used as default.

Applications which include their own widgets or special widgets in the canvas, have to set the option opt_accept_child.

If opt_accept_child is set to true, a DrawingArea-widget (composite) will be used for the canvas. Default is a DrawnButton-widget.

The following enum options are only evaluated if opt_accept_child is not set.

If opt_focus_frame is set to false, the location-cursor-border (keyboard focus) will not be drawn if the canvas does not have the focus. The default is true.

option_index

Meaning

opt_accept_child

canvas accepts child widgets (i.e. no focus)

opt_focus_frame

no focus frame will be drawn

opt_motif_shadow

canvas draws motif shadow frame

4.3 Example

model canvas MCanvas

{

  .canvasfunc CanvasEvent;

  .xauto 0;

  .xleft 0;

  .xright 0;

  .yauto 0;

  .ytop 0;

  .ybottom 5;

  .fgc DiaColor20;

  .bgc Background;

  .posraster true;

  .sizeraster true;

  .font DiaFont;

}

Figure 13-1: Canvas