/* DlgAreaDemo.Rex -- Demonstrate DlgArea & DlgAreaU Classes -- Feb 2006 */
MyDlg=.MyDialog~new
MyDlg~execute("ShowTop")
MyDlg~DeInstall
exit
::requires "OODWIN32.CLS"
/* ========================================================================= */
::class MyDialog Subclass UserDialog
/* ========================================================================= */
::method Init
/* ------------------------------------------------------------------------- */
self~Init:super
rc=self~CreateCenter(250,250,"MyDialog","ThickFrame", ,"MS Sans Serif",8)
self~InitCode=(rc=0)
self~connectResize("OnResize")
/* ------------------------------------------------------------------------- */
::method DefineDialog
/* ------------------------------------------------------------------------- */
expose u
u=.dlgAreaU~new(self) /* whole dlg */
if u~lastError \= .nil then call errormessage u~lastError
e=.dlgArea~new(u~x ,u~y ,u~w("70%"),u~h("90%")) /* edit area */
s=.dlgArea~new(u~x ,u~y("90%"),u~w("70%"),u~hr ) /* status area */
b=.dlgArea~new(u~x("70%"),u~y ,u~wr ,u~hr ) /* button area */
self~AddEntryLine(12,"text",e~x,e~y,e~w,e~h,"multiline")
self~AddText(s~x,s~y,s~w,s~h,"Status info appears here", ,11)
self~addButton(13,b~x,b~y("00%"),b~w,b~h("9%"),"Button" 0,"Button"||0)
self~addButton(14,b~x,b~y("10%"),b~w,b~h("9%"),"Button" 1,"Button"||1)
self~addButton(15,b~x,b~y("20%"),b~w,b~h("9%"),"Button" 2,"Button"||2)
self~addButton(16,b~x,b~y("30%"),b~w,b~h("9%"),"Button" 3,"Button"||3)
self~addButton(17,b~x,b~y("40%"),b~w,b~h("9%"),"Button" 4,"Button"||4)
self~addButton(18,b~x,b~y("50%"),b~w,b~h("9%"),"Button" 5,"Button"||5)
self~addButton(19,b~x,b~y("60%"),b~w,b~h("9%"),"Button" 6,"Button"||6)
self~AddButton( 1,b~x,b~y("90%"),b~w,b~h("9%"),"Ok","Ok","DEFAULT")
/* ------------------------------------------------------------------------- */
::method Unknown
/* ------------------------------------------------------------------------- */
use arg msgname, args
StatusLine = Self~GetStaticControl(11)
StatusLine~SetTitle("You Pressed" msgname)
/* ------------------------------------------------------------------------- */
::method OnResize
/* ------------------------------------------------------------------------- */
expose u
use arg dummy,sizeinfo
/* wait for last size event msg then resize */
if self~PeekDialogMessage~left(8) \= "OnResize" then u~resize(self,sizeinfo)
This achieves the same dialog as the previous DlgArea example, but now it is resizable by dragging the frame.