Prima
view release on metacpan or search on metacpan
class/Widget.c view on Meta::CPAN
list_create( &var-> widgets, 0, 8);
var-> tabOrder = -1;
var-> geomInfo. side = 3; /* default pack side is 'top', anchor ='center' */
var-> geomInfo. anchorx = var-> geomInfo. anchory = 1;
my-> update_sys_handle( self, profile);
/* props init */
/* font and colors */
SvHV_Font( pget_sv( font), &Font_buffer, "Widget::init");
my-> set_widgetClass ( self, pget_i( widgetClass ));
my-> set_color ( self, pget_i( color ));
my-> set_backColor ( self, pget_i( backColor ));
my-> set_font ( self, Font_buffer);
opt_assign( optOwnerBackColor, pget_B( ownerBackColor));
opt_assign( optOwnerColor , pget_B( ownerColor));
opt_assign( optOwnerFont , pget_B( ownerFont));
opt_assign( optOwnerHint , pget_B( ownerHint));
opt_assign( optOwnerShowHint , pget_B( ownerShowHint));
opt_assign( optOwnerPalette , pget_B( ownerPalette));
my-> colorIndex( self, true, ciHiliteText, pget_i( hiliteColor) );
my-> colorIndex( self, true, ciHilite, pget_i( hiliteBackColor) );
my-> colorIndex( self, true, ciDisabledText, pget_i( disabledColor) );
my-> colorIndex( self, true, ciDisabled, pget_i( disabledBackColor));
my-> colorIndex( self, true, ciLight3DColor, pget_i( light3DColor) );
my-> colorIndex( self, true, ciDark3DColor, pget_i( dark3DColor) );
my-> set_palette( self, pget_sv( palette));
/* light props */
my-> set_autoEnableChildren ( self, pget_B( autoEnableChildren));
my-> set_briefKeys ( self, pget_B( briefKeys));
my-> set_buffered ( self, pget_B( buffered));
my-> set_clipChildren ( self, pget_B( clipChildren));
my-> set_cursorVisible ( self, pget_B( cursorVisible));
my-> set_dndAware ( self, pget_sv( dndAware));
my-> set_growMode ( self, pget_i( growMode));
my-> set_helpContext ( self, pget_sv( helpContext));
my-> set_hint ( self, pget_sv( hint));
my-> set_firstClick ( self, pget_B( firstClick));
{
Point hotSpot;
Handle icon = pget_H( pointerIcon);
prima_read_point( pget_sv( pointerHotSpot), (int*)&hotSpot, 2, "Array panic on 'pointerHotSpot'");
if ( icon != NULL_HANDLE && !kind_of( icon, CIcon)) {
warn("Illegal object reference passed to Widget::pointerIcon");
icon = NULL_HANDLE;
}
apc_pointer_set_user( self, icon, hotSpot);
}
my-> set_pointerType ( self, pget_i( pointerType));
my-> set_selectingButtons ( self, pget_i( selectingButtons));
my-> set_selectable ( self, pget_B( selectable));
my-> set_showHint ( self, pget_B( showHint));
my-> set_tabOrder ( self, pget_i( tabOrder));
my-> set_tabStop ( self, pget_B( tabStop));
my-> set_text ( self, pget_sv( text));
opt_assign( optScaleChildren, pget_B( scaleChildren));
/* subcomponents props */
my-> popupColorIndex( self, true, ciFore, pget_i( popupColor) );
my-> popupColorIndex( self, true, ciBack, pget_i( popupBackColor) );
my-> popupColorIndex( self, true, ciHiliteText, pget_i( popupHiliteColor) );
my-> popupColorIndex( self, true, ciHilite, pget_i( popupHiliteBackColor) );
my-> popupColorIndex( self, true, ciDisabledText, pget_i( popupDisabledColor) );
my-> popupColorIndex( self, true, ciDisabled, pget_i( popupDisabledBackColor) );
my-> popupColorIndex( self, true, ciLight3DColor, pget_i( popupLight3DColor) );
my-> popupColorIndex( self, true, ciDark3DColor, pget_i( popupDark3DColor) );
SvHV_Font( pget_sv( popupFont), &Font_buffer, "Widget::init");
my-> set_popup_font ( self, Font_buffer);
if ( SvOK( sv = pget_sv( popupItems)))
my-> set_popupItems( self, sv);
if ( SvOK( sv = pget_sv( accelItems)))
my-> set_accelItems( self, sv);
/* size, position, enabling, visibility etc. runtime */
{
Point set, set2;
AV * av;
SV ** holder;
NPoint ds = {1,1};
prima_read_point( pget_sv( sizeMin), (int*)&set, 2, "Array panic on 'sizeMin'");
prima_read_point( pget_sv( sizeMax), (int*)&set2, 2, "Array panic on 'sizeMax'");
var-> sizeMax = set2;
my-> set_sizeMin( self, set);
my-> set_sizeMax( self, set2);
prima_read_point( pget_sv( cursorSize), (int*)&set, 2, "Array panic on 'cursorSize'");
my-> set_cursorSize( self, set);
prima_read_point( pget_sv( cursorPos), (int*)&set, 2, "Array panic on 'cursorPos'");
my-> set_cursorPos( self, set);
av = ( AV *) SvRV( pget_sv( designScale));
holder = av_fetch( av, 0, 0);
ds. x = holder ? SvNV( *holder) : 1;
if ( !holder) warn("Array panic on 'designScale'");
holder = av_fetch( av, 1, 0);
ds. y = holder ? SvNV( *holder) : 1;
if ( !holder) warn("Array panic on 'designScale'");
my-> set_designScale( self, ds);
}
my-> set_enabled ( self, pget_B( enabled));
if ( !pexist( originDontCare) || !pget_B( originDontCare)) {
Point pos;
pos. x = pget_i( left);
pos. y = pget_i( bottom);
my-> set_origin( self, pos);
} else
var-> pos = my-> get_origin( self);
if ( !pexist( sizeDontCare ) || !pget_B( sizeDontCare )) {
Point size;
size. x = pget_i( width);
size. y = pget_i( height);
my-> set_size( self, size);
} else
var-> virtualSize = my-> get_size( self);
var-> geomSize = var-> virtualSize;
geometry = pget_i(geometry);
if ( geometry == gtGrowMode ) {
Bool x = 0, y = 0;
if ( pget_B( centered)) { x = 1; y = 1; };
if ( pget_B( x_centered) || ( var-> growMode & gmXCenter)) x = 1;
if ( pget_B( y_centered) || ( var-> growMode & gmYCenter)) y = 1;
if ( x || y) my-> set_centered( self, x, y);
var-> geomInfo. x = x;
var-> geomInfo. y = y;
}
opt_assign( optPackPropagate, pget_B( packPropagate));
my-> set_packInfo( self, pget_sv( packInfo));
class/Widget.c view on Meta::CPAN
void
Widget_bring_to_front( Handle self)
{
if ( opt_InPaint) return;
apc_widget_set_z_order( self, NULL_HANDLE, true);
}
/*::c */
Bool
Widget_can_close( Handle self)
{
enter_method;
Event ev = { cmClose};
return ( var-> stage <= csNormal) ? my-> message( self, &ev) : true;
}
Bool
Widget_can_propagate_key( Handle self)
{
return true;
}
void
Widget_cleanup( Handle self)
{
Handle ptr;
enter_method;
/* disconnect all geometry slaves */
ptr = var-> packSlaves;
while ( ptr) {
PWidget( ptr)-> geometry = gtDefault;
ptr = PWidget( ptr)-> geomInfo. next;
}
var-> packSlaves = NULL_HANDLE;
ptr = var-> placeSlaves;
while ( ptr) {
PWidget( ptr)-> geometry = gtDefault;
ptr = PWidget( ptr)-> geomInfo. next;
}
var-> placeSlaves = NULL_HANDLE;
my-> set_geometry( self, gtDefault);
if ( prima_guts.application && P_APPLICATION-> hintUnder == self)
my-> set_hintVisible( self, 0);
{
int i;
for ( i = 0; i < var-> widgets. count; i++)
Object_destroy( var-> widgets. items[i]);
}
if ( var-> accelTable) {
unprotect_object(var-> accelTable);
//my-> detach( self, var-> accelTable, true);
var-> accelTable = NULL_HANDLE;
}
if ( var-> popupMenu ) {
unprotect_object(var-> popupMenu);
//my-> detach( self, var-> popupMenu, true);
var-> popupMenu = NULL_HANDLE;
}
inherited-> cleanup( self);
}
Bool
Widget_close( Handle self)
{
Bool canClose;
enter_method;
if ( var-> stage > csNormal) return true;
if (( canClose = my-> can_close( self))) {
Object_destroy( self);
}
return canClose;
}
/*::d */
void
Widget_detach( Handle self, Handle objectHandle, Bool kill)
{
enter_method;
if ( kind_of( objectHandle, CWidget)) {
list_delete( &var-> widgets, objectHandle);
if ( var-> currentWidget == objectHandle && objectHandle != NULL_HANDLE)
my-> set_currentWidget( self, NULL_HANDLE);
}
inherited-> detach( self, objectHandle, kill);
}
DNDResp
Widget_dnd_start(Handle self, int dnd_actions, Bool default_pointers)
{
DNDResp ret;
ret.action = apc_dnd_start( self, dnd_actions, default_pointers, &ret.counterpart);
return ret;
}
/*::e */
void
Widget_end_paint( Handle self)
{
if ( !is_opt( optInDraw)) return;
apc_widget_end_paint( self);
inherited-> end_paint( self);
}
void
Widget_end_paint_info( Handle self)
{
if ( !is_opt( optInDrawInfo)) return;
apc_widget_end_paint_info( self);
inherited-> end_paint_info( self);
}
/*::f */
SV*
class/Widget.c view on Meta::CPAN
values[ iHEIGHT] = values[ iTOP] - values[ iBOTTOM];
exists[ iTOP] = 0;
}
if (
( count == 2) &&
(
( exists[ iLEFT] && exists[ iBOTTOM]) ||
( exists[ iWIDTH] && exists[ iHEIGHT])
)
) {
Point p;
if ( exists[ iLEFT]) {
p. x = values[ iLEFT];
p. y = values[ iBOTTOM];
my-> set_origin( self, p);
} else {
p. x = values[ iWIDTH];
p. y = values[ iHEIGHT];
my-> set_size( self, p);
}
} else {
Rect r;
if ( !exists[ iWIDTH] || !exists[ iHEIGHT]) {
Point sz;
sz = my-> get_size( self);
if ( !exists[ iWIDTH]) values[ iWIDTH] = sz. x;
if ( !exists[ iHEIGHT]) values[ iHEIGHT] = sz. y;
exists[ iWIDTH] = exists[ iHEIGHT] = 1;
}
if ( ( !exists[ iLEFT] && !exists[ iRIGHT]) ||
( !exists[ iBOTTOM] && !exists[ iTOP])) {
Point pos;
pos = my-> get_origin( self);
if ( !exists[ iLEFT]) values[ iLEFT] = pos. x;
if ( !exists[ iBOTTOM]) values[ iBOTTOM] = pos. y;
exists[ iLEFT] = exists[ iBOTTOM] = 1;
}
if ( !exists[ iLEFT]) {
exists[ iLEFT] = 1;
values[ iLEFT] = values[ iRIGHT] - values[ iWIDTH];
}
if ( !exists[ iBOTTOM]) {
exists[ iBOTTOM] = 1;
values[ iBOTTOM] = values[ iTOP] - values[ iHEIGHT];
}
r. left = values[ iLEFT];
r. bottom = values[ iBOTTOM];
r. right = values[ iLEFT] + values[ iWIDTH];
r. top = values[ iBOTTOM] + values[ iHEIGHT];
my-> set_rect( self, r);
}
pdelete( left);
pdelete( right);
pdelete( top);
pdelete( bottom);
pdelete( width);
pdelete( height);
} /* count > 1 */
}
if ( pexist( popupFont))
{
SvHV_Font( pget_sv( popupFont), &Font_buffer, "Widget::set");
my-> set_popup_font( self, Font_buffer);
pdelete( popupFont);
}
if ( pexist( pointerIcon) && pexist( pointerHotSpot))
{
Point hotSpot;
Handle icon = pget_H( pointerIcon);
prima_read_point( pget_sv( pointerHotSpot), (int*)&hotSpot, 2, "Array panic on 'pointerHotSpot'");
if ( icon != NULL_HANDLE && !kind_of( icon, CIcon)) {
warn("Illegal object reference passed to Widget.set_pointer_icon");
icon = NULL_HANDLE;
}
apc_pointer_set_user( self, icon, hotSpot);
if ( var-> pointerType == crUser) my-> first_that( self, (void*)sptr, NULL);
pdelete( pointerIcon);
pdelete( pointerHotSpot);
}
if ( pexist( designScale))
{
AV * av = ( AV *) SvRV( pget_sv( designScale));
SV ** holder = av_fetch( av, 0, 0);
NPoint ds = {1,1};
ds. x = holder ? SvNV( *holder) : 1;
if ( !holder) warn("Array panic on 'designScale'");
holder = av_fetch( av, 1, 0);
ds. y = holder ? SvNV( *holder) : 1;
if ( !holder) warn("Array panic on 'designScale'");
my-> set_designScale( self, ds);
pdelete( designScale);
}
if ( pexist( sizeMin)) {
Point set;
prima_read_point( pget_sv( sizeMin), (int*)&set, 2, "Array panic on 'sizeMin'");
my-> set_sizeMin( self, set);
pdelete( sizeMin);
}
if ( pexist( sizeMax)) {
Point set;
prima_read_point( pget_sv( sizeMax), (int*)&set, 2, "Array panic on 'sizeMax'");
my-> set_sizeMax( self, set);
pdelete( sizeMax);
}
if ( pexist( cursorSize)) {
Point set;
prima_read_point( pget_sv( cursorSize), (int*)&set, 2, "Array panic on 'cursorSize'");
my-> set_cursorSize( self, set);
pdelete( cursorSize);
}
if ( pexist( cursorPos)) {
Point set;
prima_read_point( pget_sv( cursorPos), (int*)&set, 2, "Array panic on 'cursorPos'");
my-> set_cursorPos( self, set);
pdelete( cursorPos);
}
if ( pexist( geomSize))
{
Point set;
prima_read_point( pget_sv( geomSize), (int*)&set, 2, "Array panic on 'geomSize'");
my-> set_geomSize( self, set);
pdelete( geomSize);
}
class/Widget.c view on Meta::CPAN
my-> set_cursorVisible( self, true);
var-> cursorLock = 0;
}
}
/*::t */
/*::u */
static Bool
repaint_all( Handle owner, Handle self, void * dummy)
{
enter_method;
my-> repaint( self);
my-> first_that( self, (void*)repaint_all, NULL);
return false;
}
Bool
Widget_unlock( Handle self)
{
if ( --var-> lockCount <= 0) {
var-> lockCount = 0;
repaint_all( var-> owner, self, NULL);
}
return true;
}
void
Widget_update_view( Handle self)
{
if ( !opt_InPaint) apc_widget_update( self);
}
/*::v */
Bool
Widget_validate_owner( Handle self, Handle * owner, HV * profile)
{
dPROFILE;
*owner = pget_H( owner);
if ( !kind_of( *owner, CWidget)) return false;
return inherited-> validate_owner( self, owner, profile);
}
/*::w */
/*::x */
/*::y */
/*::z */
/* get_props() */
Font
Widget_get_default_font( char * dummy)
{
Font font;
apc_widget_default_font( &font);
return font;
}
Font
Widget_get_default_popup_font( char * dummy)
{
Font f;
apc_popup_default_font( &f);
return f;
}
NPoint
Widget_designScale( Handle self, Bool set, NPoint designScale)
{
if ( !set)
return var-> designScale;
if ( designScale. x < 0) designScale. x = 0;
if ( designScale. y < 0) designScale. y = 0;
var-> designScale = designScale;
return designScale;
}
int
Widget_growMode( Handle self, Bool set, int growMode)
{
enter_method;
Bool x = false, y = false;
if ( !set)
return var-> growMode;
var-> growMode = growMode;
if ( var-> growMode & gmXCenter) x = true;
if ( var-> growMode & gmYCenter) y = true;
if ( var-> geometry == gtGrowMode && (x || y)) my-> set_centered( self, x, y);
return var-> growMode;
}
SV *
Widget_get_handle( Handle self)
{
char buf[ 256];
snprintf( buf, 256, PR_HANDLE_FMT, apc_widget_get_handle( self));
return newSVpv( buf, 0);
}
SV *
Widget_get_parent_handle( Handle self)
{
char buf[ 256];
snprintf( buf, 256, PR_HANDLE_FMT, apc_widget_get_parent_handle( self));
return newSVpv( buf, 0);
}
int
Widget_hintVisible( Handle self, Bool set, int hintVisible)
{
Bool wantVisible;
if ( !set)
return P_APPLICATION-> hintVisible;
if ( var-> stage >= csDead) return false;
wantVisible = ( hintVisible != 0);
if ( wantVisible == P_APPLICATION-> hintVisible) return false;
if ( wantVisible) {
if ( !SvOK(var->hint) || (SvCUR( var-> hint) == 0)) return false;
if ( hintVisible > 0) P_APPLICATION-> hintActive = -1; /* immediate */
}
C_APPLICATION-> set_hint_action( prima_guts.application, self, wantVisible, false);
return false;
}
Bool
Widget_get_locked( Handle self)
{
while ( self) {
if ( var-> lockCount != 0) return true;
self = var-> owner;
}
return false;
}
Handle
Widget_get_parent( Handle self)
{
enter_method;
return my-> get_clipOwner( self) ? var-> owner : prima_guts.application;
}
Point
Widget_get_pointer_size( char*dummy)
{
return apc_pointer_get_size( NULL_HANDLE);
}
Font
Widget_get_popup_font( Handle self)
{
return var-> popupFont;
}
Handle
Widget_get_selectee( Handle self)
{
if ( var-> stage > csFrozen) return NULL_HANDLE;
if ( is_opt( optSelectable))
return self;
else if ( var-> currentWidget) {
PWidget w = ( PWidget) var-> currentWidget;
if ( w-> options. optSystemSelectable && !w-> self-> get_clipOwner(( Handle) w))
return ( Handle) w;
else
return w-> self-> get_selectee(( Handle) w);
} else if ( is_opt( optSystemSelectable))
return self;
else
return find_tabfoc( self);
}
Point
Widget_get_virtual_size( Handle self)
{
return var-> virtualSize;
}
/* set_props() */
Bool
Widget_set_capture( Handle self, Bool capture, Handle confineTo)
{
if ( opt_InPaint) return false;
return apc_widget_set_capture( self, capture, confineTo);
}
void
Widget_set_centered( Handle self, Bool x, Bool y)
{
enter_method;
Handle parent = my-> get_parent( self);
Point size = CWidget( parent)-> get_size( parent);
Point mysize = my-> get_size ( self);
Point mypos = my-> get_origin( self);
Point delta = {0,0};
if ( !x && !y ) return;
if ( parent == prima_guts.application ) {
int i, nrects = 0;
Point mouse = apc_pointer_get_pos(prima_guts.application);
Box *best = NULL, *rects = apc_application_get_monitor_rects( prima_guts.application, &nrects);
for ( i = 0; i < nrects; i++) {
Box * curr = rects + i;
if (
curr->x <= mouse.x &&
curr->y <= mouse.y &&
curr->x + curr->width > mouse.x &&
curr->y + curr->height > mouse.y
) {
best = curr;
break;
}
}
if ( best ) {
delta.x = best->x;
delta.y = best->y;
size.x = best->width;
size.y = best->height;
}
}
if ( x) mypos. x = ( size. x - mysize. x) / 2 + delta.x;
if ( y) mypos. y = ( size. y - mysize. y) / 2 + delta.y;
my-> set_origin( self, mypos);
}
void
Widget_set_font( Handle self, Font font)
{
enter_method;
if ( var-> stage > csFrozen) return;
if ( !opt_InPaint) my-> first_that( self, (void*)prima_font_notify, &font);
if ( var-> handle == NULL_HANDLE) return; /* aware of call from Drawable::init */
if ( opt_InPaint) {
inherited->set_font(self, font);
}
else {
apc_font_pick( self, &font, & var-> font);
opt_clear( optOwnerFont);
apc_widget_set_font( self, & var-> font);
my-> repaint( self);
}
}
void
Widget_set_popup_font( Handle self, Font font)
{
apc_font_pick( self, &font, &var-> popupFont);
}
/* static iterators */
static Handle
find_tabfoc( Handle self)
{
int i;
Handle toRet;
for ( i = 0; i < var-> widgets. count; i++) {
PWidget w = ( PWidget)( var-> widgets. items[ i]);
if (
w-> self-> get_selectable(( Handle) w) &&
w-> self-> get_enabled(( Handle) w)
)
return ( Handle) w;
}
for ( i = 0; i < var-> widgets. count; i++)
if (( toRet = find_tabfoc( var-> widgets. items[ i])))
return toRet;
return NULL_HANDLE;
}
static Bool
get_top_current( Handle self)
{
PWidget o = ( PWidget) var-> owner;
Handle me = self;
while ( o) {
if ( o-> currentWidget != me)
return false;
me = ( Handle) o;
o = ( PWidget) o-> owner;
}
return true;
}
static Bool
sptr( Handle window, Handle self, void * v)
{
enter_method;
/* does nothing but refreshes system pointer */
if ( var-> pointerType == crDefault)
my-> set_pointerType( self, crDefault);
return false;
}
/* static iterators for ownership notifications */
Bool
prima_font_notify ( Handle self, Handle child, void * font)
{
if ( his-> options. optOwnerFont) {
his-> self-> set_font ( child, *(( PFont) font));
his-> options. optOwnerFont = 1;
}
return false;
}
class/Widget.c view on Meta::CPAN
if ( !set) {
HV * profile = newHV();
Handle icon = Object_create( "Prima::Icon", profile);
sv_free(( SV *) profile);
apc_pointer_get_bitmap( self, icon);
--SvREFCNT( SvRV((( PAnyObject) icon)-> mate));
return icon;
}
if ( icon != NULL_HANDLE && !kind_of( icon, CIcon)) {
warn("Illegal object reference passed to Widget::pointerIcon");
return NULL_HANDLE;
}
hotSpot = my-> get_pointerHotSpot( self);
apc_pointer_set_user( self, icon, hotSpot);
if ( var-> pointerType == crUser) my-> first_that( self, (void*)sptr, NULL);
return NULL_HANDLE;
}
Point
Widget_pointerHotSpot( Handle self, Bool set, Point hotSpot)
{
enter_method;
Handle icon;
if ( !set)
return apc_pointer_get_hot_spot( self);
if ( var-> stage > csFrozen) return hotSpot;
icon = my-> get_pointerIcon( self);
apc_pointer_set_user( self, icon, hotSpot);
if ( var-> pointerType == crUser) my-> first_that( self, (void*)sptr, NULL);
return hotSpot;
}
int
Widget_pointerType( Handle self, Bool set, int type)
{
enter_method;
if ( var-> stage > csFrozen) return 0;
if ( !set)
return var-> pointerType;
var-> pointerType = type;
apc_pointer_set_shape( self, type);
my-> first_that( self, (void*)sptr, NULL);
return type;
}
Point
Widget_pointerPos( Handle self, Bool set, Point p)
{
if ( !set) {
p = apc_pointer_get_pos( self);
apc_widget_map_points( self, false, 1, &p);
return p;
}
apc_widget_map_points( self, true, 1, &p);
apc_pointer_set_pos( self, p. x, p. y);
return p;
}
Handle
Widget_popup( Handle self, Bool set, Handle popup)
{
if ( var-> stage > csFrozen) return NULL_HANDLE;
if ( !set)
return var-> popupMenu;
if ( popup && !kind_of( popup, CPopup)) return NULL_HANDLE;
if ( var->popupMenu ) unprotect_object(var-> popupMenu);
var-> popupMenu = popup;
if ( var->popupMenu ) protect_object(var-> popupMenu);
return NULL_HANDLE;
}
Color
Widget_popupColorIndex( Handle self, Bool set, int index, Color color)
{
if (( index < 0) || ( index > ciMaxId)) return clInvalid;
if ( !set)
return var-> popupColor[ index];
if ((( color & clSysFlag) != 0) && (( color & wcMask) == 0)) color |= wcPopup;
var-> popupColor[ index] = color;
return color;
}
SV *
Widget_popupItems( Handle self, Bool set, SV * popupItems)
{
dPROFILE;
enter_method;
if ( var-> stage > csFrozen) return NULL_SV;
if ( !set)
return var-> popupMenu ?
CAbstractMenu( var-> popupMenu)-> get_items( var-> popupMenu, "", true) : NULL_SV;
if ( var-> popupMenu == NULL_HANDLE) {
if ( SvTYPE( popupItems)) {
HV * profile = newHV();
pset_sv( items, popupItems);
pset_H ( owner, self);
my-> set_popup( self, create_instance( "Prima::Popup"));
sv_free(( SV *) profile);
}
}
else
CAbstractMenu(var-> popupMenu)-> set_items(var-> popupMenu, popupItems);
return popupItems;
}
Rect
Widget_rect( Handle self, Bool set, Rect r)
{
enter_method;
if ( !set) {
Point p = my-> get_origin( self);
Point s = my-> get_size( self);
r. left = p. x;
r. bottom = p. y;
r. right = p. x + s. x;
r. top = p. y + s. y;
} else
apc_widget_set_rect( self, r. left, r. bottom, r. right - r. left, r. top - r. bottom);
return r;
}
int
Widget_right( Handle self, Bool set, int right)
{
enter_method;
Point p;
Rect r = my-> get_rect( self);
if ( !set)
return r. right;
p. x = r. left - r. right + right;
p. y = r. bottom;
my-> set_origin( self, p);
return 0;
}
Bool
Widget_scaleChildren( Handle self, Bool set, Bool scaleChildren)
{
if ( !set)
return is_opt( optScaleChildren);
opt_assign( optScaleChildren, scaleChildren);
return false;
}
Bool
Widget_selectable( Handle self, Bool set, Bool selectable)
{
if ( !set)
return is_opt( optSelectable);
opt_assign( optSelectable, selectable);
return false;
}
Bool
Widget_selected( Handle self, Bool set, Bool selected)
{
enter_method;
if ( !set)
return my-> get_selectedWidget( self) != NULL_HANDLE;
if ( var-> stage > csFrozen) return selected;
if ( selected) {
( run in 1.067 second using v1.01-cache-2.11-cpan-364913b4093 )