|
rightclicked
|
|
Full name
|
pfc_u_tvs.rightclicked
|
Access
|
public
|
Extend of
|
|
Return value
|
|
Prototype
|
event rightclicked()
|
Name
|
Datatype
|
lb_frame
|
boolean
|
ll_selected
|
long
|
lm_view
|
m_tvs
|
lw_childparent
|
window
|
lw_frame
|
window
|
lw_parent
|
window
|
lw_sheet
|
window
|
event rightclicked;//////////////////////////////////////////////////////////////////////////////
//
// Event: RightClicked
//
// Description: Keep track of the item that was clicked.
// and trigger the popup menu
//
//////////////////////////////////////////////////////////////////////////////
//
// Revision History
//
// Version
// 6.0 Initial version
//
//////////////////////////////////////////////////////////////////////////////
//
// Copyright © 1996-1997 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.
//
//////////////////////////////////////////////////////////////////////////////
boolean lb_frame
long ll_selected
window lw_parent
window lw_frame
window lw_sheet
window lw_childparent
m_tvs lm_view
il_RightClicked = handle
// Determine if RMB popup menu should occur
if not ib_rmbmenu then
return 1
end if
// Determine parent window for PointerX, PointerY offset
this.of_GetParentWindow (lw_parent)
if IsValid (lw_parent) then
// Get the MDI frame window if available
lw_frame = lw_parent
do while IsValid (lw_frame)
if lw_frame.windowtype = mdi! or lw_frame.windowtype = mdihelp! then
lb_frame = true
exit
else
lw_frame = lw_frame.ParentWindow()
end if
loop
if lb_frame then
// If MDI frame window is available, use it as the reference point for the
// popup menu for sheets (windows opened with OpenSheet function) or child windows
if lw_parent.windowtype = child! then
lw_parent = lw_frame
else
lw_sheet = lw_frame.GetFirstSheet()
if IsValid (lw_sheet) then
do
// Use frame reference for popup menu if the parentwindow is a sheet
if lw_sheet = lw_parent then
lw_parent = lw_frame
exit
end if
lw_sheet = lw_frame.GetNextSheet (lw_sheet)
loop until IsNull(lw_sheet) Or not IsValid (lw_sheet)
end if
end if
else
// SDI application. All windows except for child windows will use the parent
// window of the control as the reference point for the popmenu
if lw_parent.windowtype = child! then
lw_childparent = lw_parent.ParentWindow()
if IsValid (lw_childparent) then
lw_parent = lw_childparent
end if
end if
end if
else
return 1
end if
// Create popup menu
if IsNull(lm_view) Or not IsValid (lm_view) then
lm_view = create m_tvs
lm_view.of_SetParent (this)
end if
// Set the values of the Arrange Items submenu
ll_selected = this.finditem(currenttreeitem!, 0)
// we have clicked on an item
If il_rightclicked > 0 Then
lm_view.m_viewitem.m_delete.visible = True
If this.editlabels Then
lm_view.m_viewitem.m_rename.visible = True
Else
lm_view.m_viewitem.m_rename.visible = False
End IF
Else
// We are not on an item
lm_view.m_viewitem.m_delete.visible = False
lm_view.m_viewitem.m_rename.visible = False
End IF
this.event pfc_prermbmenu (lm_view)
lm_view.m_viewitem.PopMenu (lw_parent.PointerX() + 5, lw_parent.PointerY() + 10)
If IsValid(lm_view) Then Destroy lm_view
return 1
end event