File: n_svc_borderpanel.sru
Size: 2065
Date: Mon, 07 Apr 2008 21:31:46 +0200
$PBExportHeader$n_svc_borderpanel.sru
forward
global type n_svc_borderpanel from n_svc_base
end type
end forward

global type n_svc_borderpanel from n_svc_base
end type
global n_svc_borderpanel n_svc_borderpanel

type prototypes
FUNCTION ulong SetParent(ulong hWndChild,ulong hWndNewParent) LIBRARY "user32.dll"
end prototypes

type variables
Protected:
CONSTANT string THEME_SERVICE = "n_svc_theme"
end variables

forward prototypes
public function dragobject of_setchildobject (ref n_svc_mgr anv_svc, readonly u_borderpanel auo_panel, readonly string as_objname)
protected subroutine of_showborder (ref n_svc_mgr anv_svc, readonly u_borderpanel auo)
end prototypes

public function dragobject of_setchildobject (ref n_svc_mgr anv_svc, readonly u_borderpanel auo_panel, readonly string as_objname);DragObject ldo
Window lw
UserObject luo
PowerObject lpo
WindowObject lwo[]
n_svc_powerbuilder lnv_pb
long ll_origparent

lpo = auo_panel.GetParent()

IF lpo.typeof() = Window! THEN
   lw = lpo
   lwo = lw.Control
ELSEIF lpo.typeof() = UserObject! THEN
   luo = lpo
   lwo = luo.Control
END IF

long i, ll_upper
dragobject ldo_lefttop, ldo_rightbottom

ll_upper = UPPERBOUND(lwo)

FOR i = 1 TO ll_upper
   IF lower(ClassName(lwo[i])) = lower(as_objname) THEN
      ldo = lwo[i]
      EXIT
   END IF
NEXT

IF ISVALID(ldo) THEN
   anv_svc.of_loadsvc(lnv_pb, CSvc.POWERBUILDER)
   IF lnv_pb.of_isfcobject(ldo) THEN
      //move control to container
      ll_origparent = SetParent(Handle(ldo), Handle(auo_panel))
      auo_panel.of_setoriginalparent(ll_origparent)
   END IF
   of_ShowBorder(anv_svc, auo_panel)
ELSE
   SetNull(ldo)
END IF

lpo.TriggerEvent("resize")

RETURN ldo
end function

protected subroutine of_showborder (ref n_svc_mgr anv_svc, readonly u_borderpanel auo);n_svc_theme lnv_theme

anv_svc.of_LoadSvc(lnv_theme, CSvc.THEME)
auo.BackColor = lnv_theme.of_GetBorderColor(anv_svc)
end subroutine

on n_svc_borderpanel.create
call super::create
end on

on n_svc_borderpanel.destroy
call super::destroy
end on