; docformat = 'rst' ;+ ; This is a base class to inherit from to create an object widget. ;- ;+ ; Set properties of the object widget. ; ; :Keywords: ; title : in, optional, type=string ; title of the base ; offset : in, optional, type=lonarr(2) ; offset in pixels of the upper-left corner of the base from the ; upper-left corner of the widget ;- pro mgwidobjectwidget::setProperty, title=title, offset=offset compile_opt strictarr if (n_elements(title) gt 0) then begin widget_control, self.tlb, tlb_set_title=title endif if (n_elements(offset) gt 0) then begin widget_control, self.tlb, $ tlb_set_xoffset=offset[0], $ tlb_set_yoffset=offset[1] endif end ;+ ; Get properties of the object widget. ; ; :Keywords: ; offset : out, optional, type=lonarr(2) ; offset in pixels of the upper-left corner of the base from the ; upper-left corner of the widget ; size : out, optional, type=lonarr(2) ; size in pixels of the tlb ;- pro mgwidobjectwidget::getProperty, offset=offset, size=size compile_opt strictarr widget_control, self.tlb, tlb_get_offset=offset, size=size end ;+ ; Event handler for all widgets in the program. ; ; :Abstract: ; ; :Params: ; event : in, required, type=structure ; event structure for any generated by the widget program ;- pro mgwidobjectwidget::handleEvents, event compile_opt strictarr end ;+ ; Called when the widget program is being destroyed. ; ; :Abstract: ; ; :Params: ; tlb : in, required, type=long ; widget ID for the top-level base ;- pro mgwidobjectwidget::cleanupWidgets, tlb compile_opt strictarr end ;+ ; Start XMANAGER. ;- pro mgwidobjectwidget::startXManager compile_opt strictarr ; start up events xmanager, self.name, self.tlb, /no_block, $ event_handler='mg_object_event_handler', $ cleanup='mg_object_cleanup' end ;+ ; Cleanup resources. ;- pro mgwidobjectwidget::cleanup compile_opt strictarr end ;+ ; Create on object widget. ; ; :Returns: ; 1B for success, 0B otherwise ;- function mgwidobjectwidget::init, name=name compile_opt strictarr self.name = n_elements(name) eq 0 ? obj_class(self) : name return, 1B end ;+ ; Define member variables. ; ; :Fields: ; tlb ; top-level base widget ID ; name ; name of the widget program ;- pro mgwidobjectwidget__define compile_opt strictarr define = { MGwidObjectWidget, $ tlb : 0L, $ name : '' $ } end