Welcome to the Harris Geospatial product documentation center. Here you will find reference guides, help documents, and product libraries.


Harris Geospatial / Docs Center / Using IDL / Multiple Properties Example

IDL

Multiple Properties Example

Multiple Properties Example

The following example shows how to create a property sheet for multiple components.

Enter the following text in the IDL Editor:

; ExMultiSheet.pro
;
; Provides an example of a property sheet that is
; associated with more than one object. In this case,
; multiple IDLitVisAxis objects are used, with random
; colors and hidden cells, just for fun.
 
PRO PropertyEvent, event
 
IF (event.type EQ 0) THEN BEGIN   ; Value changed.
 
   PRINT, 'Changed: ', event.component
   PRINT, '   ', event.identifier, ': ', $
   WIDGET_INFO(event.id, COMPONENT = event.component, $
      PROPERTY_VALUE = event.identifier)
 
ENDIF ELSE BEGIN                ; Selection changed.
 
   PRINT, 'Selected: ' + event.identifier
 
ENDELSE
 
END
 
PRO CleanupEvent, baseID
 
WIDGET_CONTROL, baseID, GET_UVALUE = objects
 
FOR i = 0, (N_ELEMENTS(objects) - 1) DO $
   OBJ_DESTROY, objects[i]
 
END
 
PRO ExMultiSheet_event, event
 
ps = WIDGET_INFO(event.id, $
   FIND_BY_UNAME = 'PropSheet')
 
geo_tlb = WIDGET_INFO(event.id, /GEOMETRY)
 
WIDGET_CONTROL, ps, $
   SCR_XSIZE = geo_tlb.xsize - (2*geo_tlb.xpad), $
   SCR_YSIZE = geo_tlb.ysize - (2*geo_tlb.ypad)
 
END
 
PRO ExMultiSheet
 
tlb = WIDGET_BASE(/COLUMN, /TLB_SIZE_EVENTS, $
   KILL_NOTIFY = 'CleanupEvent')
 
; Create some columns.
 
oComp1 = OBJ_NEW('IDLitVisAxis', $
   COLOR = RANDOMU(s1, 3)*256, $
   TEXT_COLOR = RANDOMU(s7, 3)*256)
oComp2 = OBJ_NEW('IDLitVisAxis', $
   COLOR = RANDOMU(s2, 3)*256, $
   TEXT_COLOR = RANDOMU(s8, 3)*256)
oComp3 = OBJ_NEW('IDLitVisAxis', $
   COLOR = RANDOMU(s3, 3)*256, $
   TEXT_COLOR = RANDOMU(s9, 3)*256)
oComp4 = OBJ_NEW('IDLitVisAxis', $
   COLOR = RANDOMU(s4, 3)*256, $
   TEXT_COLOR = RANDOMU(s10, 3)*256)
oComp5 = OBJ_NEW('IDLitVisAxis', $
   COLOR = RANDOMU(s5, 3)*256, $
   TEXT_COLOR = RANDOMU(s11, 3)*256)
oComp6 = OBJ_NEW('IDLitVisAxis', $
   COLOR = RANDOMU(s6, 3)*256, $
   TEXT_COLOR = RANDOMU(s12, 3)*256)
 
oComps = [oComp1, oComp2, oComp3, $
   oComp4, oComp5, oComp6]
 
WIDGET_CONTROL, tlb, SET_UVALUE = oComps
 
; Hide some properties.
 
oComp2->SetPropertyAttribute, 'color', /HIDE
oComp2->SetPropertyAttribute, 'ticklen', /HIDE
oComp5->SetPropertyAttribute, 'ticklen', /HIDE
 
; Create the property sheet.
prop = WIDGET_PROPERTYSHEET(tlb, $
   UNAME = 'PropSheet', $
   VALUE = oComps, $
   FONT = 'Courier New*16', $
   XSIZE = 100, YSIZE = 24, $
   /FRAME, EVENT_PRO = 'PropertyEvent')
 
; Activate the widgets.
 
WIDGET_CONTROL, tlb, /REALIZE
 
XMANAGER, 'ExMultiSheet', tlb, /NO_BLOCK
 
END

Save the program as ExMultiSheet.pro, then compile and run it. A property sheet displaying the properties of six axes is displayed:

The gray boxes indicate properties that have been hidden. To remove the gray boxes, comment out the code after the following comment:

; Hide some properties.

The text is displayed at 16 points in the Courier New font. To view the property sheet with the text displayed in the default size and font, comment out the following segment of the property sheet creation code:

FONT = "Courier New*16", $

To see the text displayed in a font and size of your choosing, edit the same segment to include a different font name and size.



© 2017 Exelis Visual Information Solutions, Inc. |  Legal
My Account    |    Buy    |    Contact Us