|
of_register
|
|
Full name
|
pfc_n_cst_resize.of_register
|
Access
|
protected
|
Extend of
|
integer
|
Return value
|
integer
|
Prototype
|
protected function integer of_register(windowobject,boolean,integer,integer,integer,integer)
|
Name
|
Datatype
|
lb_movex
|
boolean
|
lb_movey
|
boolean
|
lb_scaleheight
|
boolean
|
lb_scalewidth
|
boolean
|
ldrg_cntrl
|
dragobject
|
li_cnt
|
integer
|
li_height
|
integer
|
li_slot_available
|
integer
|
li_upperbound
|
integer
|
li_width
|
integer
|
li_x
|
integer
|
li_y
|
integer
|
ln_cntrl
|
line
|
loval_cntrl
|
oval
|
lrec_cntrl
|
rectangle
|
lrrec_cntrl
|
roundrectangle
|
protected function integer of_register (windowobject awo_control, boolean ab_scale, integer ai_movex, integer ai_movey, integer ai_scalewidth, integer ai_scaleheight);//////////////////////////////////////////////////////////////////////////////
//
// Function: of_Register
//
// Access: public
//
// Arguments:
// awo_control The window object being registered.
// ab_scale If the object should be registered as a Scale type.
// ai_movex The percentage to move the object along the x axis.
// ai_movey The percentage to move the object along the y axis.
// ai_scalewidth The percentage to scale the object along the x axis.
// ai_scaleheight The percentage to scale the object along the y axis.
//
// Returns: integer
// 1 if it succeeds and -1 if an error occurs.
//
// Description: Register a control which needs to either be moved or resized
// when the parent object is resized. The action taken on this
// control depends on the four attributes: ai_movex, ai ai_movey,
// ai_scalewidth, ai_scaleheight.
// Note: the service object needs to be initialized (of_SetOrigSize())
// prior to any registering (this function) of objects.
//
//////////////////////////////////////////////////////////////////////////////
//
// Revision History
//
// Version
// 6.0 Initial version
//
//////////////////////////////////////////////////////////////////////////////
//
// Copyright © 1996-1999 Sybase, Inc. and its subsidiaries. All rights reserved.
// Any distribution of the PowerBuilder Foundation Classes (PFC)
// source code by other than Sybase, Inc. and its subsidiaries is prohibited.
//
//////////////////////////////////////////////////////////////////////////////
dragobject ldrg_cntrl
oval loval_cntrl
line ln_cntrl
rectangle lrec_cntrl
roundrectangle lrrec_cntrl
integer li_x, li_y, li_width, li_height
integer li_upperbound
integer li_cnt
integer li_slot_available
boolean lb_movex=False, lb_movey=False
boolean lb_scalewidth=False, lb_scaleheight=False
//Check parameters
If IsNull(awo_control) or Not IsValid(awo_control) or &
IsNull(ab_scale) or &
IsNull(ai_movex) or ai_movex<0 or ai_movex>100 or &
IsNull(ai_movey) or ai_movey<0 or ai_movey>100 or &
IsNull(ai_scalewidth) or ai_scalewidth<0 or ai_scalewidth>100 or &
IsNull(ai_scaleheight) or ai_scaleheight<0 or ai_scaleheight>100 Then
Return -1
End If
//Translate parameteters.
If ab_scale Then
ai_movex = 0
ai_movey = 0
ai_scalewidth = 0
ai_scaleheight = 0
End If
lb_movex = (ai_movex > 0)
lb_movey = (ai_movey > 0)
lb_scalewidth = (ai_scalewidth > 0)
lb_scaleheight = (ai_scaleheight > 0)
//Confirm that the user object has already been initialized
If il_parentprevheight=-1 And il_parentprevwidth=-1 Then
Return -1
End If
//Get the previous Bound
li_upperbound = UpperBound (inv_registered[])
//Determine if there is an open slot available other than a
//new entry on the array
li_slot_available = 0
For li_cnt = 1 to li_upperbound
If IsNull(inv_registered[li_cnt].wo_control) Or &
Not IsValid(inv_registered[li_cnt].wo_control) Then
If li_slot_available = 0 Then
//Get the first slot found
li_slot_available = li_cnt
End If
Else
//Check if control has already been registered
If inv_registered[li_cnt].wo_control = awo_control Then
Return -1
End If
End If
Next
//If an available slot was not found then create a new entry
If li_slot_available = 0 Then
li_slot_available = li_upperbound + 1
End If
///////////////////////////////////////////////////////////////////////////////////////
//Register the new object
///////////////////////////////////////////////////////////////////////////////////////
//Validate and set typeof value
Choose Case of_TypeOf(awo_control)
Case DRAGOBJECT
//Store a reference to the control
ldrg_cntrl = awo_control
//Store the type of the control to speed access to its attributes
inv_registered[li_slot_available].s_typeof = DRAGOBJECT
//Store the position and size of control
li_x = ldrg_cntrl.X
li_y = ldrg_cntrl.Y
li_width = ldrg_cntrl.Width
li_height = ldrg_cntrl.Height
Case LINE
ln_cntrl = awo_control
inv_registered[li_slot_available].s_typeof = LINE
li_x = ln_cntrl.BeginX
li_y = ln_cntrl.BeginY
li_width = ln_cntrl.EndX
li_height = ln_cntrl.EndY
Case OVAL
loval_cntrl = awo_control
inv_registered[li_slot_available].s_typeof = OVAL
li_x = loval_cntrl.X
li_y = loval_cntrl.Y
li_width = loval_cntrl.Width
li_height = loval_cntrl.Height
Case RECTANGLE
lrec_cntrl = awo_control
inv_registered[li_slot_available].s_typeof = RECTANGLE
li_x = lrec_cntrl.X
li_y = lrec_cntrl.Y
li_width = lrec_cntrl.Width
li_height = lrec_cntrl.Height
Case ROUNDRECTANGLE
lrrec_cntrl = awo_control
inv_registered[li_slot_available].s_typeof = ROUNDRECTANGLE
li_x = lrrec_cntrl.X
li_y = lrrec_cntrl.Y
li_width = lrrec_cntrl.Width
li_height = lrrec_cntrl.Height
Case Else
//An unknown control type has been encountered
Return -1
End Choose
//Register the actual object
inv_registered[li_slot_available].wo_control = awo_control
inv_registered[li_slot_available].s_classname = awo_control.ClassName()
//Set the behavior attributes
inv_registered[li_slot_available].b_movex = lb_movex
inv_registered[li_slot_available].i_movex = ai_movex
inv_registered[li_slot_available].b_movey = lb_movey
inv_registered[li_slot_available].i_movey = ai_movey
inv_registered[li_slot_available].b_scalewidth = lb_scalewidth
inv_registered[li_slot_available].i_scalewidth = ai_scalewidth
inv_registered[li_slot_available].b_scaleheight = lb_scaleheight
inv_registered[li_slot_available].i_scaleheight = ai_scaleheight
inv_registered[li_slot_available].b_scale = ab_scale
//Set the initial position/size attributes
inv_registered[li_slot_available].r_x = li_x
inv_registered[li_slot_available].r_y = li_y
inv_registered[li_slot_available].r_width = li_width
inv_registered[li_slot_available].r_height = li_height
Return 1
end function
Name
|
Owner
|
powerobject.classname |
powerobject
|
systemfunctions.isnull |
systemfunctions
|
systemfunctions.isvalid |
systemfunctions
|
systemfunctions.upperbound |
systemfunctions
|
pfc_n_cst_resize.of_typeof |
pfc_n_cst_resize
|