File: u_others_dropdown.sru
Size: 5824
Date: Mon, 07 Apr 2008 21:33:14 +0200
$PBExportHeader$u_others_dropdown.sru
forward
global type u_others_dropdown from u_explorer
end type
type uo_toolbar from u_dwtoolbar within u_others_dropdown
end type
type st_1 from u_st within u_others_dropdown
end type
type sle_2 from u_sle within u_others_dropdown
end type
type sle_1 from u_sle within u_others_dropdown
end type
type cbx_1 from u_cbx within u_others_dropdown
end type
type dw_1 from u_dw_form within u_others_dropdown
end type
type uo_1 from u_borderpanel within u_others_dropdown
end type
end forward

global type u_others_dropdown from u_explorer
integer width = 2213
integer height = 1280
uo_toolbar uo_toolbar
st_1 st_1
sle_2 sle_2
sle_1 sle_1
cbx_1 cbx_1
dw_1 dw_1
uo_1 uo_1
end type
global u_others_dropdown u_others_dropdown

type variables
protected:

n_base_dropdown inv_dd
end variables

on u_others_dropdown.create
int iCurrent
call super::create
this.uo_toolbar=create uo_toolbar
this.st_1=create st_1
this.sle_2=create sle_2
this.sle_1=create sle_1
this.cbx_1=create cbx_1
this.dw_1=create dw_1
this.uo_1=create uo_1
iCurrent=UpperBound(this.Control)
this.Control[iCurrent+1]=this.uo_toolbar
this.Control[iCurrent+2]=this.st_1
this.Control[iCurrent+3]=this.sle_2
this.Control[iCurrent+4]=this.sle_1
this.Control[iCurrent+5]=this.cbx_1
this.Control[iCurrent+6]=this.dw_1
this.Control[iCurrent+7]=this.uo_1
end on

on u_others_dropdown.destroy
call super::destroy
destroy(this.uo_toolbar)
destroy(this.st_1)
destroy(this.sle_2)
destroy(this.sle_1)
destroy(this.cbx_1)
destroy(this.dw_1)
destroy(this.uo_1)
end on

event destructor;call super::destructor;IF ISVALID(inv_dd) THEN DESTROY inv_dd
end event

event ke_postopen;call super::ke_postopen;dw_1.InsertRow(0)
dw_1.of_Autosizecolumns(TRUE, TRUE, TRUE)
//uo_rebar.of_insertband(uo_tb2.Handle, "Click on toolbar arrows")
end event

type uo_toolbar from u_dwtoolbar within u_others_dropdown
integer x = 55
integer y = 1088
integer width = 1755
integer height = 160
integer taborder = 60
string #toolbardataobject = "toolbar_dropdown"
boolean #gripper = false
end type

on uo_toolbar.destroy
call u_dwtoolbar::destroy
end on

event ke_dropdown;call super::ke_dropdown;n_svc_dropdown lnv_dd
n_svc_mgr lnv_svc
string ls_classname
singlelineedit lsle

lnv_svc.of_LoadSvc(lnv_dd, CSvc.DROPDOWN)

IF buttonid = "1" THEN
   ls_classname = "n_dropdown_custom"
   lsle = sle_1
ELSE
   ls_classname = CDropdown.CALENDAR
   lsle = sle_2
END IF

IF ISVALID(inv_dd) THEN inv_dd.of_cancel()

lnv_dd.of_showdropdowntoolbar(this, &
   inv_dd, &
   ls_classname, &
   lsle, &
   "ue_dropdown", &
   lsle.text, &
   popx, &
   popy)

end event

type st_1 from u_st within u_others_dropdown
integer x = 55
integer y = 864
integer width = 1285
string text = "Right click on the SLE~'s or press Arrow down while focused"
end type

type sle_2 from u_sle within u_others_dropdown
event ue_dropdown ( )
event key pbm_keydown
integer x = 878
integer y = 944
integer width = 782
integer taborder = 50
string text = ""
end type

event ue_dropdown();IF ISVALID(inv_dd) THEN
   this.Text = STRING(inv_dd.of_getreturnvalue())
END IF
end event

event key;IF key = KeyDownArrow! THEN
   n_svc_dropdown lnv_dd
   n_svc_mgr lnv_svc
   
   lnv_svc.of_LoadSvc(lnv_dd, CSvc.DROPDOWN)
   lnv_dd.of_showdropdownBelow(inv_dd, &
         CDropdown.CALENDAR, &
         this, &
         "ue_dropdown", &
         this.text)
END IF
end event

event rbuttondown;call super::rbuttondown;n_svc_dropdown lnv_dd
n_svc_mgr lnv_svc

lnv_svc.of_LoadSvc(lnv_dd, CSvc.DROPDOWN)
lnv_dd.of_showdropdown(inv_dd, &
      CDropdown.CALENDAR, &
      this, &
      "ue_dropdown", &
      this.text, &
      parent.of_GetParentWindow(TRUE).PointerX() + 32, &
      parent.of_GetParentWindow(TRUE).PointerY() + this.height)
end event

type sle_1 from u_sle within u_others_dropdown
event key pbm_keydown
event ue_dropdown ( )
integer x = 55
integer y = 944
integer width = 782
integer taborder = 40
string text = ""
end type

event key;IF key = KeyDownArrow! THEN
   n_svc_dropdown lnv_dd
   n_svc_mgr lnv_svc
   
   lnv_svc.of_LoadSvc(lnv_dd, CSvc.DROPDOWN)
   lnv_dd.of_showdropdownBelow(inv_dd, &
         "n_dropdown_custom", &
         this, &
         "ue_dropdown", &
         this.text)
END IF
end event

event ue_dropdown();IF ISVALID(inv_dd) THEN
   this.Text = STRING(inv_dd.of_getreturnvalue())
END IF
end event

event rbuttondown;call super::rbuttondown;n_svc_dropdown lnv_dd
n_svc_mgr lnv_svc

lnv_svc.of_LoadSvc(lnv_dd, CSvc.DROPDOWN)
lnv_dd.of_showdropdown(inv_dd, &
      "n_dropdown_custom", &
      this, &
      "ue_dropdown", &
      this.text, &
      parent.of_GetParentWindow(TRUE).PointerX() + 32, &
      parent.of_GetParentWindow(TRUE).PointerY() + this.height)
end event

type cbx_1 from u_cbx within u_others_dropdown
integer x = 1445
integer y = 752
string text = "Edit Mode"
boolean checked = true
end type

event clicked;call super::clicked;dw_1.of_EditMode(Checked)
end event

type dw_1 from u_dw_form within u_others_dropdown
integer x = 146
integer y = 208
integer width = 1298
integer taborder = 30
string dataobject = "d_dropdown"
boolean border = false
boolean #editmode = true
end type

event ke_preinitservice;call super::ke_preinitservice;n_svc_dropdown lnv_dw
n_svc_mgr lnv_svc

lnv_svc.of_Loadsvc(lnv_dw, CSvc.DROPDOWN)

lnv_dw.of_setdropdownservice(lnv_svc, this, "col3", "n_dropdown_custom")
end event

type uo_1 from u_borderpanel within u_others_dropdown
integer x = 55
integer y = 64
integer width = 1737
integer height = 672
integer taborder = 20
string #childobject = "dw_1"
boolean #showheader = true
boolean #usetheme = true
string #headertext = "Datawindow Dropdown Service"
end type

on uo_1.destroy
call u_borderpanel::destroy
end on