/* 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.