iTool ProgrammingIDL Version 7.0November 2007 EditionCopyright © ITT Visual Information SolutionsAll Rights Reserved1107IDL70ITD
10 Chapter 1: Overview of iToolsWhat are iTools? iTool Developer’s GuideWhat are iTools?IDL Intelligent Tools, or iTools, are applications written in
100 Chapter 5: Creating an iToolCreating a New iTool Class iTool Developer’s Guide2. Register a visualization type for the tool. We choose the standar
Chapter 5: Creating an iTool 101iTool Developer’s Guide Registering a New Tool ClassRegistering a New Tool ClassBefore an instance of a new iTool can
102 Chapter 5: Creating an iToolRegistering a New Tool Class iTool Developer’s GuideExampleSuppose you have an iTool class definition file named myToo
Chapter 5: Creating an iTool 103iTool Developer’s Guide Creating an iTool Launch RoutineCreating an iTool Launch RoutineAn iTool launch routine is an
104 Chapter 5: Creating an iToolCreating an iTool Launch Routine iTool Developer’s Guideuser to retrieve the newly-created iTool’s identifier in an ID
Chapter 5: Creating an iTool 105iTool Developer’s Guide Creating an iTool Launch Routineturn, hold the actual data used by the iTool. To create a data
106 Chapter 5: Creating an iToolCreating an iTool Launch Routine iTool Developer’s GuideCATCH, /CANCELIF OBJ_VALID(oDataObject) THEN OBJ_DESTROY, oDat
Chapter 5: Creating an iTool 107iTool Developer’s Guide Creating an iTool Launch RoutineWe also use IDL’s keyword inheritance mechanism (the _EXTRA ke
108 Chapter 5: Creating an iToolExample: Simple iTool iTool Developer’s GuideExample: Simple iToolThis example creates a very simple iTool named examp
Chapter 5: Creating an iTool 109iTool Developer’s Guide Example: Simple iTool;*** Visualizations; Here we register a custom visualization type describ
Chapter 1: Overview of iTools 11iTool Developer’s Guide What is the iTools Component Framework?What is the iTools Component Framework?The iTools compo
110 Chapter 5: Creating an iToolExample: Simple iTool iTool Developer’s Guidefunctionality automatically. Any “extra” keywords specified in the call t
Chapter 5: Creating an iTool 111iTool Developer’s Guide Example: Simple iToolIF (N_ELEMENTS(data) GT 0) THEN BEGINoData = OBJ_NEW('IDLitDataIDLIm
112 Chapter 5: Creating an iToolExample: Simple iTool iTool Developer’s GuideWe next create a default grayscale ramp in an IDLitDataIDLPalette object,
iTool Developer’s Guide 113Chapter 6Creating a VisualizationThis chapter describes the process of creating an iTool visualization type.Overview of iTo
114 Chapter 6: Creating a VisualizationOverview of iTool Visualization Types iTool Developer’s GuideOverview of iTool Visualization TypesA visualizati
Chapter 6: Creating a Visualization 115iTool Developer’s Guide Predefined iTool Visualization ClassesPredefined iTool Visualization ClassesThe iTool s
116 Chapter 6: Creating a VisualizationPredefined iTool Visualization Classes iTool Developer’s GuideData Types Accepted• Histogram data: IDLVECTOR, I
Chapter 6: Creating a Visualization 117iTool Developer’s Guide Predefined iTool Visualization Classes• Palette data: IDLPALETTE• Volume dimensions, lo
118 Chapter 6: Creating a VisualizationPredefined iTool Visualization Classes iTool Developer’s GuideData Types Accepted•None.IDLitVisPlotDisplays a t
Chapter 6: Creating a Visualization 119iTool Developer’s Guide Predefined iTool Visualization ClassesIDLitVisPolylineDisplays a single polyline.Visual
12 Chapter 1: Overview of iToolsAbout this Manual iTool Developer’s GuideAbout this ManualThe iTool Developer’s Guide describes the IDL iTools compone
120 Chapter 6: Creating a VisualizationPredefined iTool Visualization Classes iTool Developer’s GuideIDLitVisSurfaceDisplays a three-dimensional surfa
Chapter 6: Creating a Visualization 121iTool Developer’s Guide Creating a New Visualization TypeCreating a New Visualization TypeAn iTool visualizatio
122 Chapter 6: Creating a VisualizationCreating a New Visualization Type iTool Developer’s GuideIDLitVisualization class. See “IDLitVisualization” (ID
Chapter 6: Creating a Visualization 123iTool Developer’s Guide Creating a New Visualization Typewith significant extra functionality will likely defin
124 Chapter 6: Creating a VisualizationCreating a New Visualization Type iTool Developer’s Guidewhere MyVisualization is the name of your visualizatio
Chapter 6: Creating a Visualization 125iTool Developer’s Guide Creating a New Visualization TypeNoteAlways use keyword inheritance (the _EXTRA keyword
126 Chapter 6: Creating a VisualizationCreating a New Visualization Type iTool Developer’s GuideRegister a property by calling the RegisterProperty me
Chapter 6: Creating a Visualization 127iTool Developer’s Guide Creating a New Visualization TypeSetting Property AttributesIf a property has already b
128 Chapter 6: Creating a VisualizationCreating a New Visualization Type iTool Developer’s Guide/PRIVATE)self->Add, self._oPlot, /AGGREGATEHere, we
Chapter 6: Creating a Visualization 129iTool Developer’s Guide Creating a New Visualization Type/INPUT, TYPES='IDLVECTOR', /OPTARGET; Add a
Chapter 1: Overview of iTools 13iTool Developer’s Guide About the iTools Code BaseAbout the iTools Code BaseThe iTools component framework is written
130 Chapter 6: Creating a VisualizationCreating a New Visualization Type iTool Developer’s Guide3. Creates a plotting symbol created from the IDLitSym
Chapter 6: Creating a Visualization 131iTool Developer’s Guide Creating a New Visualization TypeCreating a GetProperty MethodThe visualization class G
132 Chapter 6: Creating a VisualizationCreating a New Visualization Type iTool Developer’s GuideFinally, the method calls the superclass’ GetProperty
Chapter 6: Creating a Visualization 133iTool Developer’s Guide Creating a New Visualization Typeobject. We set the value of the ExampleProperty direct
134 Chapter 6: Creating a VisualizationCreating a New Visualization Type iTool Developer’s GuideMIN_VALUE = minn, MAX_VALUE = maxxENDIFENDELSE: self-&
Chapter 6: Creating a Visualization 135iTool Developer’s Guide Creating a New Visualization Typevisualizations. The general idea is that when a data i
136 Chapter 6: Creating a VisualizationRegistering a Visualization Type iTool Developer’s GuideRegistering a Visualization TypeBefore a visualization
Chapter 6: Creating a Visualization 137iTool Developer’s Guide Registering a Visualization Typetree view. See “Icon Bitmaps” on page 44 for details on
138 Chapter 6: Creating a VisualizationUnregistering a Visualization Type iTool Developer’s GuideUnregistering a Visualization TypeIf you are creating
Chapter 6: Creating a Visualization 139iTool Developer’s Guide Unregistering a Visualization Typevislist = oTool->FindIdentifiers('*/visualiza
14 Chapter 1: Overview of iToolsAbout the iTools Code Base iTool Developer’s Guide• The core iTool component framework classes used to build individua
140 Chapter 6: Creating a VisualizationExample: Image-Contour Visualization iTool Developer’s GuideExample: Image-Contour VisualizationThis example cr
Chapter 6: Creating a Visualization 141iTool Developer’s Guide Example: Image-Contour VisualizationInit MethodThe Init method is called when the examp
142 Chapter 6: Creating a VisualizationExample: Image-Contour Visualization iTool Developer’s GuideWe register two parameters used by our visualizatio
Chapter 6: Creating a Visualization 143iTool Developer’s Guide Example: Image-Contour VisualizationEND; The method was called with an image array as t
144 Chapter 6: Creating a VisualizationExample: Image-Contour Visualization iTool Developer’s GuideFinally, we handle the PALETTE parameter by calling
iTool Developer’s Guide 145Chapter 7Creating an OperationThis chapter describes the process of creating an iTool operation.Overview of Creating an iTo
146 Chapter 7: Creating an OperationOverview of Creating an iTool Operation iTool Developer’s GuideOverview of Creating an iTool OperationAn operation
Chapter 7: Creating an Operation 147iTool Developer’s Guide Overview of Creating an iTool Operationthat you provide methods to store values before and
148 Chapter 7: Creating an OperationPredefined iTool Operations iTool Developer’s GuidePredefined iTool OperationsThe iTool system distributed with ID
Chapter 7: Creating an Operation 149iTool Developer’s Guide Predefined iTool OperationsNoteThere are many additional operations (named with the prefix
Chapter 1: Overview of iTools 15iTool Developer’s Guide Skills Required to Use the iTools Component FrameworkSkills Required to Use the iTools Compone
150 Chapter 7: Creating an OperationOperations and the Undo/Redo System iTool Developer’s GuideOperations and the Undo/Redo SystemThe iTools system pr
Chapter 7: Creating an Operation 151iTool Developer’s Guide Operations and the Undo/Redo SystemGeneralized OperationsTo provide undo/redo functionalit
152 Chapter 7: Creating an OperationCreating a New Data-Centric Operation iTool Developer’s GuideCreating a New Data-Centric OperationiTool operations
Chapter 7: Creating an Operation 153iTool Developer’s Guide Creating a New Data-Centric OperationCreating an IDLitDataOperationThe process of creating
154 Chapter 7: Creating an OperationCreating a New Data-Centric Operation iTool Developer’s Guidethe methods and properties available to classes that
Chapter 7: Creating an Operation 155iTool Developer’s Guide Creating a New Data-Centric Operation• call the Init methods of any superclasses, using th
156 Chapter 7: Creating an OperationCreating a New Data-Centric Operation iTool Developer’s GuideNoteYour operation class may have multiple superclass
Chapter 7: Creating an Operation 157iTool Developer’s Guide Creating a New Data-Centric OperationReturn ValueIf all of the routines and methods used i
158 Chapter 7: Creating an OperationCreating a New Data-Centric Operation iTool Developer’s GuideNAME='Example Data Operation', ICON='s
Chapter 7: Creating an Operation 159iTool Developer’s Guide Creating a New Data-Centric OperationNoteIf your operation class is based on the IDLitData
16 Chapter 1: Overview of iToolsSkills Required to Use the iTools Component Framework iTool Developer’s Guide
160 Chapter 7: Creating an OperationCreating a New Data-Centric Operation iTool Developer’s Guideour ExampleDataOp operation works on image data, this
Chapter 7: Creating an Operation 161iTool Developer’s Guide Creating a New Data-Centric Operation• For operations that return a two-dimensional array,
162 Chapter 7: Creating an OperationCreating a New Data-Centric Operation iTool Developer’s GuideNoteAny property registered with a call to the Regist
Chapter 7: Creating an Operation 163iTool Developer’s Guide Creating a New Data-Centric Operationproperty value, either by storing the value directly
164 Chapter 7: Creating an OperationCreating a New Data-Centric Operation iTool Developer’s GuideCreating an UndoExecute MethodThe operation class’ Un
Chapter 7: Creating an Operation 165iTool Developer’s Guide Creating a New Generalized OperationCreating a New Generalized OperationGeneralized operat
166 Chapter 7: Creating an OperationCreating a New Generalized Operation iTool Developer’s Guide• “Creating a SetProperty Method” on page 177• “Creati
Chapter 7: Creating an Operation 167iTool Developer’s Guide Creating a New Generalized Operationstruct = { ExampleOp, INHERITS IDLitOperation}ENDDiscu
168 Chapter 7: Creating an OperationCreating a New Generalized Operation iTool Developer’s GuideNoteBecause iTool operations are invoked by the user’s
Chapter 7: Creating an Operation 169iTool Developer’s Guide Creating a New Generalized OperationThis convention is used in all operation classes inclu
Part I: Understandingthe iTools ComponentFramework
170 Chapter 7: Creating an OperationCreating a New Generalized Operation iTool Developer’s Guideself->RegisterProperty, PropertyIdentifier [,TypeCo
Chapter 7: Creating an Operation 171iTool Developer’s Guide Creating a New Generalized Operationkeyword values to be handled explicitly in the Init me
172 Chapter 7: Creating an OperationCreating a New Generalized Operation iTool Developer’s GuideDiscussionSince our operation does not have any instan
Chapter 7: Creating an Operation 173iTool Developer’s Guide Creating a New Generalized Operation; Make sure we have a valid iTool object.IF ~ OBJ_VALI
174 Chapter 7: Creating an OperationCreating a New Generalized Operation iTool Developer’s GuideENDDiscussionThe ExampleOp operation DoAction method d
Chapter 7: Creating an Operation 175iTool Developer’s Guide Creating a New Generalized OperationoTargets[i]->GetProperty, STYLE = styleIndex; Add t
176 Chapter 7: Creating an OperationCreating a New Generalized Operation iTool Developer’s GuideRETURN, 1ENDDiscussionThe ExampleOp operation RecordFi
Chapter 7: Creating an Operation 177iTool Developer’s Guide Creating a New Generalized OperationIn this example, there are no properties specific to t
178 Chapter 7: Creating an OperationCreating a New Generalized Operation iTool Developer’s GuideCreating an UndoOperation MethodThe operation class Un
Chapter 7: Creating an Operation 179iTool Developer’s Guide Creating a New Generalized OperationNoteThe UndoOperation method could also have been impl
180 Chapter 7: Creating an OperationCreating a New Generalized Operation iTool Developer’s Guide3. For each command object, retrieve the identifier st
Chapter 7: Creating an Operation 181iTool Developer’s Guide Operations and MacrosOperations and MacrosThe concept of a macro was introduced to the iTo
182 Chapter 7: Creating an OperationRegistering an Operation iTool Developer’s GuideRegistering an OperationBefore an operation can be performed by an
Chapter 7: Creating an Operation 183iTool Developer’s Guide Registering an OperationICONA string value giving the name of an icon to be associated wit
184 Chapter 7: Creating an OperationUnregistering an Operation iTool Developer’s GuideUnregistering an OperationIf you are creating a new iTool from a
Chapter 7: Creating an Operation 185iTool Developer’s Guide Unregistering an OperationAlternatively, to generate a list of relative identifiers for al
186 Chapter 7: Creating an OperationExample: Data Resample Operation iTool Developer’s GuideExample: Data Resample OperationThis example creates a dat
Chapter 7: Creating an Operation 187iTool Developer’s Guide Example: Data Resample OperationInit MethodFUNCTION example1_opresample::Init, _REF_EXTRA
188 Chapter 7: Creating an OperationExample: Data Resample Operation iTool Developer’s GuideNext, we call the Init method of the superclass. In this c
Chapter 7: Creating an Operation 189iTool Developer’s Guide Example: Data Resample OperationINTERP = interp, CUBIC = cubic); CONGRID always uses linea
iTool Developer’s Guide 19Chapter 2iTool System ArchitectureThis chapter describes the iTool component framework architecture.Overview of the iTool Sy
190 Chapter 7: Creating an OperationExample: Data Resample Operation iTool Developer’s GuideIF ARG_PRESENT(y) THEN $y = self._yIF ARG_PRESENT(z) THEN
Chapter 7: Creating an Operation 191iTool Developer’s Guide Example: Data Resample Operationself->IDLitDataOperation::SetProperty, _EXTRA = _extraE
192 Chapter 7: Creating an OperationExample: Data Resample Operation iTool Developer’s Guide
iTool Developer’s Guide 193Chapter 8Creating a ManipulatorThis chapter describes creating a custom manipulator. See the following topics for details.
194 Chapter 8: Creating a ManipulatorOverview of iTool Manipulators iTool Developer’s GuideOverview of iTool ManipulatorsA manipulator is an iTool com
Chapter 8: Creating a Manipulator 195iTool Developer’s Guide Overview of iTool ManipulatorsNoteA manipulator need not always be interactively selected
196 Chapter 8: Creating a ManipulatorOverview of iTool Manipulators iTool Developer’s GuideWhen you initialize a manipulator, you can define the type
Chapter 8: Creating a Manipulator 197iTool Developer’s Guide The Manipulator Creation ProcessThe Manipulator Creation ProcessTo create a new iTool man
198 Chapter 8: Creating a ManipulatorPredefined iTool Manipulators iTool Developer’s GuidePredefined iTool ManipulatorsThe iTool system distributed wi
Chapter 8: Creating a Manipulator 199iTool Developer’s Guide Predefined iTool Manipulators• IDLitAnnotateOval — adds an oval to the iTool window• IDLi
Restricted Rights NoticeThe IDL®, IDL Analyst™, ENVI®, and ENVI Zoom™ software programs and the accompanying procedures, functions, and documentation
20 Chapter 2: iTool System ArchitectureOverview of the iTool System Architecture iTool Developer’s GuideOverview of the iTool System ArchitectureThe i
200 Chapter 8: Creating a ManipulatorPredefined iTool Manipulators iTool Developer’s GuideIDLitManipROIFree The freehand ROI manipulator draws a freeh
Chapter 8: Creating a Manipulator 201iTool Developer’s Guide Predefined iTool ManipulatorsNoteThis manipulator is not to be confused with the Operatio
202 Chapter 8: Creating a ManipulatorManipulators and the Undo/Redo System iTool Developer’s GuideManipulators and the Undo/Redo SystemA manipulator c
Chapter 8: Creating a Manipulator 203iTool Developer’s Guide Manipulators and the Undo/Redo SystemCapturing Information for the Undo/Redo SystemThe in
204 Chapter 8: Creating a ManipulatorUsing Manipulator Public Instance Data iTool Developer’s GuideUsing Manipulator Public Instance DataThe IDLitMani
Chapter 8: Creating a Manipulator 205iTool Developer’s Guide Using Manipulator Public Instance DataUsing the nSelectionList Field The nSelectionList f
206 Chapter 8: Creating a ManipulatorCreating a New Manipulator iTool Developer’s GuideCreating a New ManipulatorThe manipulator class definition file
Chapter 8: Creating a Manipulator 207iTool Developer’s Guide Creating a New ManipulatorCreating the Manipulator Class Structure Definition When any ID
208 Chapter 8: Creating a ManipulatorCreating a New Manipulator iTool Developer’s GuideINHERITS IDLitManipulator, $ SuperclassoImage: OBJ_NEW(), $ Tar
Chapter 8: Creating a Manipulator 209iTool Developer’s Guide Creating a New Manipulatorwhether keywords not explicitly handled by your method will be
Chapter 2: iTool System Architecture 21iTool Developer’s Guide iTools Object Model DiagramiTools Object Model DiagramThe following figure shows inheri
210 Chapter 8: Creating a ManipulatorCreating a New Manipulator iTool Developer’s GuideRETURN, 0This convention is used in all manipulator classes inc
Chapter 8: Creating a Manipulator 211iTool Developer’s Guide Creating a New ManipulatorFUNCTION ExampleManip::Init, _REF_EXTRA = _extra; Initialize th
212 Chapter 8: Creating a ManipulatorCreating a New Manipulator iTool Developer’s Guide• The TRANSIENT_DEFAULT keyword indicates that this manipulator
Chapter 8: Creating a Manipulator 213iTool Developer’s Guide Creating a New Manipulatorrequired. It is always safest, however, to create a Cleanup met
214 Chapter 8: Creating a ManipulatorCreating a New Manipulator iTool Developer’s Guideup initial values required for manipulator actions. If your man
Chapter 8: Creating a Manipulator 215iTool Developer’s Guide Creating a New Manipulatorto determine whether a button is pressed during mouse motion, o
216 Chapter 8: Creating a ManipulatorCreating a New Manipulator iTool Developer’s Guide“IDLitManipulator::OnMouseMotion” (IDL Reference Guide) for det
Chapter 8: Creating a Manipulator 217iTool Developer’s Guide Creating a New ManipulatorIf the manipulator supports undo/redo functionality, call Recor
218 Chapter 8: Creating a ManipulatorCreating a New Manipulator iTool Developer’s Guidescroll wheel event is processed — the magnitude of the Delta pa
Chapter 8: Creating a Manipulator 219iTool Developer’s Guide Creating a New Manipulator ; the retrieved IDLitVisImage object. self.oImage = (*self
22 Chapter 2: iTool System ArchitectureiTools Object Model Diagram iTool Developer’s GuideEvery iTool is constructed using the hierarchy of predefined
220 Chapter 8: Creating a ManipulatorCreating a New Manipulator iTool Developer’s Guideincludes the IDLitManpulator::RegisterCursor method. Call this
Chapter 8: Creating a Manipulator 221iTool Developer’s Guide Creating a New ManipulatorDiscussionThis DoRegisterCursor method defines a 16-element str
222 Chapter 8: Creating a ManipulatorCreating a New Manipulator iTool Developer’s GuidePRO ExampleManip::SetProperty, _REF_EXTRA = _extraIF (N_ELEMENT
Chapter 8: Creating a Manipulator 223iTool Developer’s Guide Registering a ManipulatorRegistering a ManipulatorBefore a manipulator can be activated b
224 Chapter 8: Creating a ManipulatorRegistering a Manipulator iTool Developer’s GuideICON A string value giving the name of an icon to be associated
Chapter 8: Creating a Manipulator 225iTool Developer’s Guide Unregistering a ManipulatorUnregistering a ManipulatorIf you are creating a new iTool fro
226 Chapter 8: Creating a ManipulatorExample: Color Table Manipulator iTool Developer’s GuideExample: Color Table ManipulatorThe following example cre
Chapter 8: Creating a Manipulator 227iTool Developer’s Guide Example: Color Table ManipulatorThis example creates three files: • Manipulator Class Def
228 Chapter 8: Creating a ManipulatorExample: Color Table Manipulator iTool Developer’s GuideExample CodeThe class definition code for this example to
iTool Developer’s Guide 229Chapter 9Creating a File ReaderThis chapter describes the process of creating an iTool file reader.Overview of iTool File R
Chapter 2: iTool System Architecture 23iTool Developer’s Guide iTools Object Model Diagramfor additional information about iTools code and the differe
230 Chapter 9: Creating a File ReaderOverview of iTool File Readers iTool Developer’s GuideOverview of iTool File ReadersA file reader is an iTool com
Chapter 9: Creating a File Reader 231iTool Developer’s Guide Predefined iTool File ReadersPredefined iTool File ReadersThe iTool system distributed wi
232 Chapter 9: Creating a File ReaderPredefined iTool File Readers iTool Developer’s GuideRegistered PropertiesNoneIDLitReadISVThe iTools Saved Variab
Chapter 9: Creating a File Reader 233iTool Developer’s Guide Predefined iTool File ReadersRegistered PropertiesNoneIDLitReadPNGThe iTools PNG file rea
234 Chapter 9: Creating a File ReaderCreating a New File Reader iTool Developer’s GuideCreating a New File ReaderAn iTool file reader class definition
Chapter 9: Creating a File Reader 235iTool Developer’s Guide Creating a New File ReaderSee “IDLitReader” (IDL Reference Guide) for details on the meth
236 Chapter 9: Creating a File ReaderCreating a New File Reader iTool Developer’s Guide• return the value 1 if the initialization steps are successful
Chapter 9: Creating a File Reader 237iTool Developer’s Guide Creating a New File Reader(indicating failure), the current Init method also immediately
238 Chapter 9: Creating a File ReaderCreating a New File Reader iTool Developer’s GuideReturn ValueIf all of the routines and methods used in the Init
Chapter 9: Creating a File Reader 239iTool Developer’s Guide Creating a New File ReaderPassing Through Caller-Supplied Property SettingsIf you have in
24 Chapter 2: iTool System ArchitectureiTools Object Model Diagram iTool Developer’s Guideon included functionality. See the iTool User’s Guide for in
240 Chapter 9: Creating a File ReaderCreating a New File Reader iTool Developer’s Guide2. Returns the integer 1, indicating successful initialization.
Chapter 9: Creating a File Reader 241iTool Developer’s Guide Creating a New File ReaderNoteAny property registered with a call to the RegisterProperty
242 Chapter 9: Creating a File ReaderCreating a New File Reader iTool Developer’s GuideNoteAny property registered with a call to the RegisterProperty
Chapter 9: Creating a File Reader 243iTool Developer’s Guide Creating a New File ReaderExample IsA MethodFUNCTION ExampleReader::IsA, strFilenameiDot
244 Chapter 9: Creating a File ReaderCreating a New File Reader iTool Developer’s Guide; Get the name of the file currently associated with the reader
Chapter 9: Creating a File Reader 245iTool Developer’s Guide Registering a File ReaderRegistering a File ReaderBefore a file reader can be used by an
246 Chapter 9: Creating a File ReaderUnregistering a File Reader iTool Developer’s GuideUnregistering a File ReaderIf you are creating a new iTool fro
Chapter 9: Creating a File Reader 247iTool Developer’s Guide Unregistering a File ReaderSTRMID(frlist[i], STRPOS(frlist[i], '/', /REVERSE_SE
248 Chapter 9: Creating a File ReaderExample: TIFF File Reader iTool Developer’s GuideExample: TIFF File ReaderThis example creates a file reader to r
Chapter 9: Creating a File Reader 249iTool Developer’s Guide Example: TIFF File ReaderInit MethodFUNCTION example1_readtiff::Init, _REF_EXTRA = _extra
Chapter 2: iTool System Architecture 25iTool Developer’s Guide iTools Object Model DiagramIDLitWriter ClassesThe IDLitWriter class contains predefined
250 Chapter 9: Creating a File ReaderExample: TIFF File Reader iTool Developer’s GuideFinally, we return the value 1 to indicate successful initializa
Chapter 9: Creating a File Reader 251iTool Developer’s Guide Example: TIFF File ReaderRETURN, resultENDDiscussionThe GetData method for our TIFF file
252 Chapter 9: Creating a File ReaderExample: TIFF File Reader iTool Developer’s GuideENDDiscussionThe GetProperty method for our TIFF file reader sup
iTool Developer’s Guide 253Chapter 10Creating a File WriterThis chapter describes the process of creating an iTool file writer.Overview of iTool File
254 Chapter 10: Creating a File WriterOverview of iTool File Writers iTool Developer’s GuideOverview of iTool File WritersA file writer is an iTool co
Chapter 10: Creating a File Writer 255iTool Developer’s Guide Predefined iTool File WritersPredefined iTool File WritersThe iTool system distributed w
256 Chapter 10: Creating a File WriterPredefined iTool File Writers iTool Developer’s GuideIDLitWriteEMFThe iTools EMF file writer uses the iTools sys
Chapter 10: Creating a File Writer 257iTool Developer’s Guide Predefined iTool File Writersgood quality. Lower values of QUALITY produce higher compre
258 Chapter 10: Creating a File WriterCreating a New File Writer iTool Developer’s GuideCreating a New File WriterThe process of creating an visualiza
Chapter 10: Creating a File Writer 259iTool Developer’s Guide Creating a New File WriterExample Class Structure DefinitionThe following is the class s
26 Chapter 2: iTool System ArchitectureiTools Object Model Diagram iTool Developer’s GuideIDLitManipulator ClassesThe IDLitManipulator class allows th
260 Chapter 10: Creating a File WriterCreating a New File Writer iTool Developer’s GuideDefinition of the Init FunctionBegin by defining the argument
Chapter 10: Creating a File Writer 261iTool Developer’s Guide Creating a New File WriterThis convention is used in all file writer classes included wi
262 Chapter 10: Creating a File WriterCreating a New File Writer iTool Developer’s GuideReturn ValueIf all of the routines and methods used in the Ini
Chapter 10: Creating a File Writer 263iTool Developer’s Guide Creating a New File WriterPassing Through Caller-Supplied Property SettingsIf you have i
264 Chapter 10: Creating a File WriterCreating a New File Writer iTool Developer’s Guideinheritance mechanism to pass through any keywords provided wh
Chapter 10: Creating a File Writer 265iTool Developer’s Guide Creating a New File WriterNoteAny property registered with a call to the RegisterPropert
266 Chapter 10: Creating a File WriterCreating a New File Writer iTool Developer’s GuideNoteAny property registered with a call to the RegisterPropert
Chapter 10: Creating a File Writer 267iTool Developer’s Guide Creating a New File WriterExample SetData MethodFUNCTION ExampleWriter::SetData, oImageD
268 Chapter 10: Creating a File WriterCreating a New File Writer iTool Developer’s GuideTITLE = 'Error', SEVERITY = 2RETURN, 0 ; failureENDI
Chapter 10: Creating a File Writer 269iTool Developer’s Guide Registering a File WriterRegistering a File WriterBefore a file writer can be used by an
Chapter 2: iTool System Architecture 27iTool Developer’s Guide iTools Object Model Diagram• IDLgrPlot • IDLgrText• IDLgrPolygon • IDLgrVolume
270 Chapter 10: Creating a File WriterUnregistering a File Writer iTool Developer’s GuideUnregistering a File WriterIf you are creating a new iTool fr
Chapter 10: Creating a File Writer 271iTool Developer’s Guide Unregistering a File WriterSTRMID(fwlist[i], STRPOS(fwlist[i], '/', /REVERSE_S
272 Chapter 10: Creating a File WriterExample: TIFF File Writer iTool Developer’s GuideExample: TIFF File WriterThis example creates a file writer to
Chapter 10: Creating a File Writer 273iTool Developer’s Guide Example: TIFF File WriterIF (self->IDLitWriter::Init('tiff', $TYPES=['
274 Chapter 10: Creating a File WriterExample: TIFF File Writer iTool Developer’s GuideRETURN, 0 ; failure; Make sure that the object passed to this m
Chapter 10: Creating a File Writer 275iTool Developer’s Guide Example: TIFF File WriterRETURN, 1 ; successENDDiscussionThe SetData method accepts an
276 Chapter 10: Creating a File WriterExample: TIFF File Writer iTool Developer’s Guide
Part III: Modifying theiTool User Interface
iTool Developer’s Guide 279Chapter 11iTool User Interface ArchitectureThis chapter provides an overview of the iTool user interface architecture.Overv
28 Chapter 2: iTool System ArchitectureiTool Object Identifiers iTool Developer’s GuideiTool Object IdentifiersiTool object identifiers are simple str
280 Chapter 11: iTool User Interface ArchitectureOverview of iTool Interface Architecture iTool Developer’s GuideOverview of iTool Interface Architect
Chapter 11: iTool User Interface Architecture 281iTool Developer’s Guide Overview of iTool Interface ArchitectureiImage tools provide examples of a pa
282 Chapter 11: iTool User Interface ArchitectureUser Interface Objects iTool Developer’s GuideUser Interface ObjectsThe iTool user interface object i
Chapter 11: iTool User Interface Architecture 283iTool Developer’s Guide User Interface ObjectsWidget Registration MethodsThe IDLitUI::RegisterWidget
284 Chapter 11: iTool User Interface ArchitectureUser Interface Objects iTool Developer’s Guide
iTool Developer’s Guide 285Chapter 12Using iTool User Interface ElementsThis chapter describes user interface elements that can be incorporated into a
286 Chapter 12: Using iTool User Interface ElementsThe iTools Feedback Mechanism iTool Developer’s GuideThe iTools Feedback MechanismThe IDLitIMessagi
Chapter 12: Using iTool User Interface Elements 287iTool Developer’s Guide Status MessagesStatus MessagesStatus messages are simple text messages disp
288 Chapter 12: Using iTool User Interface ElementsStatus Messages iTool Developer’s GuideIn the standard set of iTools provided with IDL, the probe s
Chapter 12: Using iTool User Interface Elements 289iTool Developer’s Guide PromptsPromptsPrompts solicit information from the user. Prompts are genera
Chapter 2: iTool System Architecture 29iTool Developer’s Guide iTool Object IdentifiersSimilarly, the identifier stringOPERATIONS/FILTERS/MY FILTERref
290 Chapter 12: Using iTool User Interface ElementsPrompts iTool Developer’s GuidePromptUserTextThe IDLitIMessaging::PromptUserText method displays a
Chapter 12: Using iTool User Interface Elements 291iTool Developer’s Guide Informational MessagesInformational MessagesInformational Messages inform t
292 Chapter 12: Using iTool User Interface ElementsInformational Messages iTool Developer’s Guide
iTool Developer’s Guide 293Chapter 13Creating a User Interface ServiceThis chapter describes the process of creating a user interface service.Overview
294 Chapter 13: Creating a User Interface ServiceOverview of the iTool UI Service iTool Developer’s GuideOverview of the iTool UI ServiceA UI service
Chapter 13: Creating a User Interface Service 295iTool Developer’s Guide Predefined iTool UI ServicesPredefined iTool UI ServicesThe iTool system dist
296 Chapter 13: Creating a User Interface ServicePredefined iTool UI Services iTool Developer’s GuideExampleRETURN, oTool->DoUIService('Proper
Chapter 13: Creating a User Interface Service 297iTool Developer’s Guide Creating a New UI ServiceCreating a New UI ServiceA user interface service is
298 Chapter 13: Creating a User Interface ServiceCreating a New UI Service iTool Developer’s GuideReturn ValueThe user interface service routine shoul
Chapter 13: Creating a User Interface Service 299iTool Developer’s Guide Creating a New UI ServiceDisplaying the User InterfaceIf the user interface b
iTool Developer’s Guide 3ContentsChapter 1Overview of iTools ... 9What
30 Chapter 2: iTool System ArchitectureiTool Object Identifiers iTool Developer’s GuideProxy IdentifiersBecause the location of an object in the iTool
300 Chapter 13: Creating a User Interface ServiceCreating a New UI Service iTool Developer’s GuideExampleThe following example routine is the full def
Chapter 13: Creating a User Interface Service 301iTool Developer’s Guide Creating a New UI ServicePlace data collected by the user interface in the fu
302 Chapter 13: Creating a User Interface ServiceRegistering a UI Service iTool Developer’s GuideRegistering a UI ServiceBefore a user interface servi
Chapter 13: Creating a User Interface Service 303iTool Developer’s Guide Registering a UI ServiceExampleSuppose you have a UI service definition file
304 Chapter 13: Creating a User Interface ServiceExecuting a User Interface Service iTool Developer’s GuideExecuting a User Interface ServiceOnce you
Chapter 13: Creating a User Interface Service 305iTool Developer’s Guide Example: Changing a Property ValueExample: Changing a Property ValueThis exam
306 Chapter 13: Creating a User Interface ServiceExample: Changing a Property Value iTool Developer’s Guide; a new name.newName = wdSrvExample(NAME =
Chapter 13: Creating a User Interface Service 307iTool Developer’s Guide Example: Changing a Property Value; Create the dialog.wBase = WIDGET_BASE(/CO
308 Chapter 13: Creating a User Interface ServiceExample: Changing a Property Value iTool Developer’s GuideDiscussionIt is beyond the scope of this ch
Chapter 13: Creating a User Interface Service 309iTool Developer’s Guide Example: Changing a Property ValueDiscussionWhen the user clicks the OK butto
Chapter 2: iTool System Architecture 31iTool Developer’s Guide iTool Object HierarchyiTool Object HierarchyThe iTool system is a collection of object
310 Chapter 13: Creating a User Interface ServiceExample: Changing a Property Value iTool Developer’s GuidePRO opName__definestruct = {opName, $inheri
iTool Developer’s Guide 311Chapter 14Creating a User Interface PanelThis chapter describes the process of creating a user interface panel.Overview of
312 Chapter 14: Creating a User Interface PanelOverview of the iTool UI Panel iTool Developer’s GuideOverview of the iTool UI PanelA UI Panel is a col
Chapter 14: Creating a User Interface Panel 313iTool Developer’s Guide Creating a UI Panel InterfaceCreating a UI Panel InterfaceIt is beyond the scop
314 Chapter 14: Creating a User Interface PanelCreating a UI Panel Interface iTool Developer’s GuideUse the widget ID of the panel widget to set the t
Chapter 14: Creating a User Interface Panel 315iTool Developer’s Guide Creating a UI Panel InterfaceAdding ObserversFor notification messages to be pa
316 Chapter 14: Creating a User Interface PanelCreating a UI Panel Interface iTool Developer’s Guide|- Base widget|- other widgetsSince the widget ID
Chapter 14: Creating a User Interface Panel 317iTool Developer’s Guide Creating a UI Panel InterfaceThe following statement retrieves an array of obje
318 Chapter 14: Creating a User Interface PanelCreating Callback Routines iTool Developer’s GuideCreating Callback RoutinesUser interface panel callba
Chapter 14: Creating a User Interface Panel 319iTool Developer’s Guide Creating Callback RoutinesFor example, if you have saved a state structure cont
32 Chapter 2: iTool System ArchitectureiTool Object Hierarchy iTool Developer’s Guide/TOOLSThis container holds references to all active iTools./CLIPB
320 Chapter 14: Creating a User Interface PanelRegistering a UI Panel iTool Developer’s GuideRegistering a UI PanelUser interface panels are registere
Chapter 14: Creating a User Interface Panel 321iTool Developer’s Guide Registering a UI PanelTo set the TYPE property of a visualization, use a statem
322 Chapter 14: Creating a User Interface PanelExample: A Simple UI Panel iTool Developer’s GuideExample: A Simple UI PanelThe following example creat
Chapter 14: Creating a User Interface Panel 323iTool Developer’s Guide Example: A Simple UI Paneldistribution. Run the example procedure by entering e
324 Chapter 14: Creating a User Interface PanelExample: A Simple UI Panel iTool Developer’s GuideoUI->AddOnNotifyObserver, strObserverIdentifier, i
Chapter 14: Creating a User Interface Panel 325iTool Developer’s Guide Example: A Simple UI Panel• The example uses the GetTool method of the IDLitUI
326 Chapter 14: Creating a User Interface PanelExample: A Simple UI Panel iTool Developer’s GuideoTargets = state.oTool->GetSelectedItems(count = n
Chapter 14: Creating a User Interface Panel 327iTool Developer’s Guide Example: A Simple UI Panel• Use the DoSetProperty method of the IDLitTool objec
328 Chapter 14: Creating a User Interface PanelExample: A Simple UI Panel iTool Developer’s GuideoSel = state.oTool->GetSelectedItems()oSel = oSel[
Chapter 14: Creating a User Interface Panel 329iTool Developer’s Guide Example: A Simple UI Panel1. The UI panel must be registered, using the ITREGIS
Chapter 2: iTool System Architecture 33iTool Developer’s Guide iTool Object HierarchyiTool ObjectsIndividual iTool tool objects contain all objects th
330 Chapter 14: Creating a User Interface PanelExample: A Simple UI Panel iTool Developer’s Guide
iTool Developer’s Guide 331Chapter 15Creating a Custom iTool Widget InterfaceThis chapter describes the process of creating an iTool user interface us
332 Chapter 15: Creating a Custom iTool Widget InterfaceAbout Custom iTool Widget Interfaces iTool Developer’s GuideAbout Custom iTool Widget Interfac
Chapter 15: Creating a Custom iTool Widget Interface 333iTool Developer’s Guide About Custom iTool Widget Interfacesthe traditional draw widget with a
334 Chapter 15: Creating a Custom iTool Widget InterfaceAbout Custom iTool Widget Interfaces iTool Developer’s Guide• Use of the iTool compound widget
Chapter 15: Creating a Custom iTool Widget Interface 335iTool Developer’s Guide Overview of Creating an iTool InterfaceOverview of Creating an iTool I
336 Chapter 15: Creating a Custom iTool Widget InterfaceOverview of Creating an iTool Interface iTool Developer’s GuideCreate Event HandlersWhile you
Chapter 15: Creating a Custom iTool Widget Interface 337iTool Developer’s Guide Overview of Creating an iTool Interface• Registers your custom user in
338 Chapter 15: Creating a Custom iTool Widget InterfaceiTool Widget Interface Concepts iTool Developer’s GuideiTool Widget Interface ConceptsIt is be
Chapter 15: Creating a Custom iTool Widget Interface 339iTool Developer’s Guide iTool Widget Interface Concepts• require an object reference to an iTo
34 Chapter 2: iTool System ArchitectureiTool Object Hierarchy iTool Developer’s GuideiTool. Default properties of file readers can be set interactivel
340 Chapter 15: Creating a Custom iTool Widget InterfaceCreating the Interface Routine iTool Developer’s GuideCreating the Interface RoutineThe IDL pr
Chapter 15: Creating a Custom iTool Widget Interface 341iTool Developer’s Guide Creating the Interface RoutineError CheckingSince the successful creat
342 Chapter 15: Creating a Custom iTool Widget InterfaceCreating the Interface Routine iTool Developer’s Guidecompound widgets, we include the followi
Chapter 15: Creating a Custom iTool Widget Interface 343iTool Developer’s Guide Creating the Interface RoutineWIDGET_CONTROL, wChild, KILL_NOTIFY = &q
344 Chapter 15: Creating a Custom iTool Widget InterfaceAdding Menus iTool Developer’s GuideAdding MenusiTool menus are created using the CW_ITMENU co
Chapter 15: Creating a Custom iTool Widget Interface 345iTool Developer’s Guide Adding Menus1. If you register a new operation in one of the standard
346 Chapter 15: Creating a Custom iTool Widget InterfaceAdding a Toolbar iTool Developer’s GuideAdding a ToolbariTool toolbars are created using the C
Chapter 15: Creating a Custom iTool Widget Interface 347iTool Developer’s Guide Adding a Toolbarin the Operations/File container: New, Open, Save, and
348 Chapter 15: Creating a Custom iTool Widget InterfaceAdding an iTool Window iTool Developer’s GuideAdding an iTool WindowAn iTool drawable area, or
Chapter 15: Creating a Custom iTool Widget Interface 349iTool Developer’s Guide Adding an iTool Window• by interactively importing new data and creati
Chapter 2: iTool System Architecture 35iTool Developer’s Guide iTool Object Hierarchycontainer, the second specifies that it appears in the Operations
350 Chapter 15: Creating a Custom iTool Widget InterfaceAdding a Status Bar iTool Developer’s GuideAdding a Status BariTool status bars are created us
Chapter 15: Creating a Custom iTool Widget Interface 351iTool Developer’s Guide Adding a User Interface PanelAdding a User Interface PaneliTool user i
352 Chapter 15: Creating a Custom iTool Widget InterfaceHandling Callbacks iTool Developer’s GuideHandling CallbacksUser interface callback routines a
Chapter 15: Creating a Custom iTool Widget Interface 353iTool Developer’s Guide Handling CallbacksPRO example2_wdtool_callback, wBase, strID, messageI
354 Chapter 15: Creating a Custom iTool Widget InterfaceHandling Resize Events iTool Developer’s GuideHandling Resize EventsIt is beyond the scope of
Chapter 15: Creating a Custom iTool Widget Interface 355iTool Developer’s Guide Handling Resize Eventshandled based on the layout and desired behavior
356 Chapter 15: Creating a Custom iTool Widget InterfaceHandling Shutdown Events iTool Developer’s GuideHandling Shutdown EventsBecause your custom in
Chapter 15: Creating a Custom iTool Widget Interface 357iTool Developer’s Guide Handling Shutdown EventsYour code should not assume that the top-level
358 Chapter 15: Creating a Custom iTool Widget InterfaceCreating an iTool Launch Routine iTool Developer’s GuideCreating an iTool Launch RoutineOnce y
Chapter 15: Creating a Custom iTool Widget Interface 359iTool Developer’s Guide Creating an iTool Launch RoutineITREGISTER, 'Example2_UI', &
36 Chapter 2: iTool System ArchitectureiTool Object Hierarchy iTool Developer’s GuideDATA SPACEA data space is an iTool component that manages the dat
360 Chapter 15: Creating a Custom iTool Widget InterfaceExample: a Custom iTool Interface iTool Developer’s GuideExample: a Custom iTool InterfaceThis
Chapter 15: Creating a Custom iTool Widget Interface 361iTool Developer’s Guide Example: a Custom iTool InterfaceNoteThe code for this example is prov
362 Chapter 15: Creating a Custom iTool Widget InterfaceExample: a Custom iTool Interface iTool Developer’s Guideyou are not familiar with this concep
Chapter 15: Creating a Custom iTool Widget Interface 363iTool Developer’s Guide Example: a Custom iTool InterfaceDiscussionThe FILENAME message and th
364 Chapter 15: Creating a Custom iTool Widget InterfaceExample: a Custom iTool Interface iTool Developer’s GuideTHEN BEGINCW_ITWINDOW_RESIZE, (*pStat
Chapter 15: Creating a Custom iTool Widget Interface 365iTool Developer’s Guide Example: a Custom iTool Interfaceexample2_wdtool_cleanupThe cleanup ro
366 Chapter 15: Creating a Custom iTool Widget InterfaceExample: a Custom iTool Interface iTool Developer’s Guide; Destroy the widget.'WIDGET_KIL
Chapter 15: Creating a Custom iTool Widget Interface 367iTool Developer’s Guide Example: a Custom iTool InterfaceThe WIDGET_KBRD_FOCUS event arrives w
368 Chapter 15: Creating a Custom iTool Widget InterfaceExample: a Custom iTool Interface iTool Developer’s Guide; Call IPLOT to create a plot of rand
Chapter 15: Creating a Custom iTool Widget Interface 369iTool Developer’s Guide Example: a Custom iTool Interface; Set the THICK property on the plot
Chapter 2: iTool System Architecture 37iTool Developer’s Guide iTool Object HierarchyNoteAnnotation numbering is zero-based — that is, the first annot
370 Chapter 15: Creating a Custom iTool Widget InterfaceExample: a Custom iTool Interface iTool Developer’s Guide; Set the COLOR property on the plot
Chapter 15: Creating a Custom iTool Widget Interface 371iTool Developer’s Guide Example: a Custom iTool InterfaceENDDiscussionThis routine uses the sa
372 Chapter 15: Creating a Custom iTool Widget InterfaceExample: a Custom iTool Interface iTool Developer’s Guide; iTool menubars are created using th
Chapter 15: Creating a Custom iTool Widget Interface 373iTool Developer’s Guide Example: a Custom iTool Interface; interface. We create the widget lay
374 Chapter 15: Creating a Custom iTool Widget InterfaceExample: a Custom iTool Interface iTool Developer’s Guidelocation = [(screen[0] - baseGeom.xsi
Chapter 15: Creating a Custom iTool Widget Interface 375iTool Developer’s Guide Example: a Custom iTool InterfaceoUI->AddOnNotifyObserver, myID, oT
376 Chapter 15: Creating a Custom iTool Widget InterfaceExample: a Custom iTool Interface iTool Developer’s Guideview the file in an IDL Editor window
Chapter 15: Creating a Custom iTool Widget Interface 377iTool Developer’s Guide Example: a Custom iTool InterfaceiTool Launch Routine DiscussionOur iT
378 Chapter 15: Creating a Custom iTool Widget InterfaceExample: a Custom iTool Interface iTool Developer’s Guide
iTool Developer’s Guide 379Appendix AControlling iTools from the IDL Command LineThis appendix describes mechanisms that allow you to control an exist
38 Chapter 2: iTool System ArchitectureRegistering Components iTool Developer’s GuideRegistering ComponentsRegistering an object class links the file
380 Appendix A: Controlling iTools from the IDL Command LineOverview of iTool Programmatic Control iTool Developer’s GuideOverview of iTool Programmat
Appendix A: Controlling iTools from the IDL Command Line 381iTool Developer’s Guide Retrieving an iTool Object ReferenceRetrieving an iTool Object Ref
382 Appendix A: Controlling iTools from the IDL Command LineRetrieving Component Identifiers iTool Developer’s GuideRetrieving Component IdentifiersIn
Appendix A: Controlling iTools from the IDL Command Line 383iTool Developer’s Guide Retrieving Component IdentifiersISURFACE, DIST(40)The full object
384 Appendix A: Controlling iTools from the IDL Command LineRetrieving Component Identifiers iTool Developer’s Guidewhich is the identifier for the pl
Appendix A: Controlling iTools from the IDL Command Line 385iTool Developer’s Guide Retrieving Property InformationRetrieving Property InformationWhil
386 Appendix A: Controlling iTools from the IDL Command LineRetrieving Property Information iTool Developer’s GuideProperty Attribute InformationKnowi
Appendix A: Controlling iTools from the IDL Command Line 387iTool Developer’s Guide Retrieving Property InformationIF success THEN PRINT, 'Width
388 Appendix A: Controlling iTools from the IDL Command LineRetrieving Property Information iTool Developer’s GuideSHOW_EXECUTION_UI Show dialo
Appendix A: Controlling iTools from the IDL Command Line 389iTool Developer’s Guide Changing Property ValuesChanging Property ValuesGiven the object i
Chapter 2: iTool System Architecture 39iTool Developer’s Guide Registering ComponentsiTool except for visualization types, which may have been registe
390 Appendix A: Controlling iTools from the IDL Command LineChanging Property Values iTool Developer’s GuideVisualization Browser property sheet. Meth
Appendix A: Controlling iTools from the IDL Command Line 391iTool Developer’s Guide Running OperationsRunning OperationsUse the DoAction method of the
392 Appendix A: Controlling iTools from the IDL Command LineRunning Operations iTool Developer’s GuideWhen executing operations using the mechanisms d
Appendix A: Controlling iTools from the IDL Command Line 393iTool Developer’s Guide Selecting Items in the iToolSelecting Items in the iToolWhen you e
394 Appendix A: Controlling iTools from the IDL Command LineReplacing Data in an iTool iTool Developer’s GuideReplacing Data in an iToolYou can replac
Appendix A: Controlling iTools from the IDL Command Line 395iTool Developer’s Guide Replacing Data in an iToolNoteIf the currently-active iTool contai
396 Appendix A: Controlling iTools from the IDL Command LineReplacing Data in an iTool iTool Developer’s Guideclass to insert new data into the parame
iTool Developer’s Guide 397Appendix BiTool Compound WidgetsThis appendix contains reference documentation for IDL compound widgets used by the iTools.
398 Appendix B: iTool Compound WidgetsOverview of iTools Compound Widgets iTool Developer’s GuideOverview of iTools Compound WidgetsThe compound widge
Appendix B: iTool Compound Widgets 399iTool Developer’s Guide CW_ITMENUCW_ITMENUThe CW_ITMENU function creates a top-level pulldown menu compound widg
4Contents iTool Developer’s GuideRegistering Components ...
40 Chapter 2: iTool System ArchitectureRegistering Components iTool Developer’s Guidehierarchy in the specified place, but actually calls the original
400 Appendix B: iTool Compound WidgetsCW_ITMENU iTool Developer’s Guideautomatically update itself. The CW_ITMENU widget listens for the following mes
Appendix B: iTool Compound Widgets 401iTool Developer’s Guide CW_ITMENUArgumentsParentThe widget ID of the parent for the new menu. The parent must be
402 Appendix B: iTool Compound WidgetsCW_ITMENU iTool Developer’s GuideUNAMESet this keyword to a string that can be used to identify the widget in yo
Appendix B: iTool Compound Widgets 403iTool Developer’s Guide CW_ITMENUSee AlsoChapter 15, “Creating a Custom iTool Widget Interface”, CW_ITPANEL, CW_
404 Appendix B: iTool Compound WidgetsCW_ITPANEL iTool Developer’s GuideCW_ITPANELThe CW_ITPANEL function creates an iTool base compound widget that w
Appendix B: iTool Compound Widgets 405iTool Developer’s Guide CW_ITPANELcall the CW_ITPANEL_RESIZE procedure to specify the new size. The CW_ITPANEL_R
406 Appendix B: iTool Compound WidgetsCW_ITPANEL iTool Developer’s GuideNoteThe ORIENTATION keyword does not affect where the panel widget is placed;
Appendix B: iTool Compound Widgets 407iTool Developer’s Guide CW_ITPANELWidget Events Returned by the CW_ITPANEL WidgetCW_IT* compound widgets do not
408 Appendix B: iTool Compound WidgetsCW_ITSTATUSBAR iTool Developer’s GuideCW_ITSTATUSBARThe CW_ITSTATUSBAR function creates an iTool status bar comp
Appendix B: iTool Compound Widgets 409iTool Developer’s Guide CW_ITSTATUSBARwhere Widget_ID is the CW_ITSTATUSBAR widget ID, and Xsize is the new widt
Chapter 2: iTool System Architecture 41iTool Developer’s Guide iTool Messaging SystemiTool Messaging SystemNotifications are messages sent from one iT
410 Appendix B: iTool Compound WidgetsCW_ITSTATUSBAR iTool Developer’s GuideThe user value for a widget can be accessed and modified at any time by us
Appendix B: iTool Compound Widgets 411iTool Developer’s Guide CW_ITTOOLBARCW_ITTOOLBARThe CW_ITTOOLBAR function creates a toolbar base compound widget
412 Appendix B: iTool Compound WidgetsCW_ITTOOLBAR iTool Developer’s Guideautomatically update itself. The CW_ITTOOLBAR widget listens for the followi
Appendix B: iTool Compound Widgets 413iTool Developer’s Guide CW_ITTOOLBARSyntaxResult = CW_ITTOOLBAR(Parent, UI, Target [, /EXCLUSIVE] [, ROW=integer
414 Appendix B: iTool Compound WidgetsCW_ITTOOLBAR iTool Developer’s GuideROWSet this keyword equal to an integer specifying the number of rows used f
Appendix B: iTool Compound Widgets 415iTool Developer’s Guide CW_ITTOOLBARWidgetCW_IT* compound widgets do not return widget events. All interaction w
416 Appendix B: iTool Compound WidgetsCW_ITWINDOW iTool Developer’s GuideCW_ITWINDOWThe CW_ITWINDOW function creates an iTool draw widget that contain
Appendix B: iTool Compound Widgets 417iTool Developer’s Guide CW_ITWINDOWReturn ValueThis function returns the widget ID of the newly-created iTool dr
418 Appendix B: iTool Compound WidgetsCW_ITWINDOW iTool Developer’s GuideVIRTUAL_DIMENSIONSSet this keyword to a two-element vector containing the wid
iTool Developer’s Guide 419IndexSymbols_EXTRA keyword, 104AAdd method, 81AddByIdentifier method, 53addingdata to data manager, 53AddOnNotifyObserver m
42 Chapter 2: iTool System ArchitectureiTool Messaging System iTool Developer’s GuideThe IdOriginator argument is generally the object identifier of a
420Index iTool Developer’s GuideButtonPress, 204Ccallback routinescreating, 318, 352for user interface panel, 312observers, 315registering, 318, 352Cl
421iTool Developer’s Guide IndexDESCRIPTION property, 223DESCRIPTION property attribute, 79DoAction methodgeneralized operation, 172running operations
422Index iTool Developer’s GuideIDLitReadTIFF, 233IDLitReadWAV, 233predefined, 231preferences, 85registering, 98, 245standard base class, 237unregiste
423iTool Developer’s Guide IndexIDLitDataIDLPolyvertex data object, 59IDLitDataIDLVector data object, 60IDLitDataOperationcreating object, 152subclass
424Index iTool Developer’s GuideIDLitWriteJPEG file writer, 256IDLitWriteJPEG2000 file writer, 257IDLitWritePICT file writer, 257IDLitWritePNG file wr
425iTool Developer’s Guide IndexLlegalities, 2LINESTYLE property data type, 72locatingiTool bitmap resources, 44MmacrosiToolsupport in custom operatio
426Index iTool Developer’s GuidePpanel widget, 313parametersdata types, 52, 61defined, 61names, 61registered, 61registering, 125preferencesfile reader
427iTool Developer’s Guide Indexreference documentation for iTool classes, 12REGISTER_PROPERTIES keyword, 75registered parameter, 61RegisterFileReader
428Index iTool Developer’s GuideTHICKNESS property data type, 73toolbarsiTool, 346trademarks, 2TYPEproperty, 320property attribute, 79TYPES property,
429iTool Developer’s Guide IndexIDLitVisPlot, 118IDLitVisPlot3D, 118IDLitVisPlotProfile, 118IDLitVisPolygon, 118IDLitVisPolyline, 119IDLitVisRoi, 119I
Chapter 2: iTool System Architecture 43iTool Developer’s Guide iTool Messaging SystemObserversTo watch for notifications from an iTool component, an i
430Index iTool Developer’s Guide
44 Chapter 2: iTool System ArchitectureSystem Resources iTool Developer’s GuideSystem ResourcesThis section contains information on resources used by
Chapter 2: iTool System Architecture 45iTool Developer’s Guide System ResourcesiconPath = path + iconNameThis code uses the ROUTINE_INFO function to r
46 Chapter 2: iTool System ArchitectureSystem Resources iTool Developer’s GuideNoteYou must also copy the file <IDL_DIR>/help/itools.xsd into yo
Chapter 2: iTool System Architecture 47iTool Developer’s Guide System ResourcesThe book attribute of the <Link> element defines the location of
48 Chapter 2: iTool System ArchitectureSystem Resources iTool Developer’s GuideThe value of the <Link> element specifies the specific content to
Chapter 2: iTool System Architecture 49iTool Developer’s Guide System ResourcesMyVisType.html to describe it. In order to display your HTML file when
5iTool Developer’s Guide ContentsChapter 6Creating a Visualization ... 113Overview
50 Chapter 2: iTool System ArchitectureSystem Resources iTool Developer’s Guide
iTool Developer’s Guide 51Chapter 3Data ManagementThis chapter describes the iTool data management system.Overview of iTool Data Management . . . . .
52 Chapter 3: Data ManagementOverview of iTool Data Management iTool Developer’s GuideOverview of iTool Data ManagementThe iTools system is designed t
Chapter 3: Data Management 53iTool Developer’s Guide iTool Data ManageriTool Data ManagerData imported into the iTool system is stored in a separate d
54 Chapter 3: Data ManagementiTool Data Types iTool Developer’s GuideiTool Data TypesEvery iTool data item (IDLitData object or IDLitDataContainer obj
Chapter 3: Data Management 55iTool Developer’s Guide iTool Data TypesTable 3-1 lists the iTool data types defined by the standard iTools included with
56 Chapter 3: Data ManagementiTool Data Objects iTool Developer’s GuideiTool Data ObjectsEach item of data used by an iTool must be encapsulated in an
Chapter 3: Data Management 57iTool Developer’s Guide iTool Data ObjectsIn this example we do not specify an iTool data type for the data container obj
58 Chapter 3: Data ManagementPredefined iTool Data Classes iTool Developer’s GuidePredefined iTool Data ClassesThe iTool system distributed with IDL i
Chapter 3: Data Management 59iTool Developer’s Guide Predefined iTool Data ClassesIDLitDataIDLImageCreates an IDLitData object of whose TYPE property
6Contents iTool Developer’s GuideCreating a New File Reader ...
60 Chapter 3: Data ManagementPredefined iTool Data Classes iTool Developer’s GuideRegistered Properties•NoneData Sub-containers• An IDLitData object n
Chapter 3: Data Management 61iTool Developer’s Guide ParametersParametersParameters represent data items used in a well-defined way by an algorithm th
62 Chapter 3: Data ManagementParameters iTool Developer’s Guidemethod of the IDLitParameter class (of which iTool visualization classes are a subclass
Chapter 3: Data Management 63iTool Developer’s Guide Data Type MatchingData Type MatchingTo understand how the iTool data type matching system works,
64 Chapter 3: Data ManagementData Type Matching iTool Developer’s GuideThe Figure 3-1 illustrates this process as a flow diagram.Figure 3-1: Data type
Chapter 3: Data Management 65iTool Developer’s Guide Data Update MechanismData Update MechanismWhen the data contained in a data item changes (usually
66 Chapter 3: Data ManagementData Update Mechanism iTool Developer’s Guide
iTool Developer’s Guide 67Chapter 4Property ManagementThis chapter describes the iTool property interface.About the Properties Interface . . . . . . .
68 Chapter 4: Property ManagementAbout the Properties Interface iTool Developer’s GuideAbout the Properties InterfaceObject properties are used to sto
Chapter 4: Property Management 69iTool Developer’s Guide About the Properties Interfaceof visual objects (default line style, colors, etc.), and defau
7iTool Developer’s Guide ContentsChapter 14Creating a User Interface Panel ... 311Overview of th
70 Chapter 4: Property ManagementAbout the Properties Interface iTool Developer’s GuideProperty RegistrationIn order for an object property to be disp
Chapter 4: Property Management 71iTool Developer’s Guide Property Data TypesProperty Data TypesRegistered properties must be of one of the data types
72 Chapter 4: Property ManagementProperty Data Types iTool Developer’s Guide6 LINESTYLE Linestyle properties contain an integer value between 0 and 6,
Chapter 4: Property Management 73iTool Developer’s Guide Property Data TypesUser Defined Property TypesThe User Defined property type lets you create
74 Chapter 4: Property ManagementRegistering Properties iTool Developer’s GuideRegistering PropertiesIn order for a property associated with an iTool
Chapter 4: Property Management 75iTool Developer’s Guide Registering Propertiesself->RegisterProperty, 'FONT_STYLE', $ENUMLIST = ['N
76 Chapter 4: Property ManagementRegistering Properties iTool Developer’s Guide2. Use the REGISTER_PROPERTIES keyword when instantiating the graphics
Chapter 4: Property Management 77iTool Developer’s Guide Property IdentifiersProperty IdentifiersProperty identifiers are scalar string values that id
78 Chapter 4: Property ManagementProperty Attributes iTool Developer’s GuideProperty AttributesProperty attributes are values associated with a proper
Chapter 4: Property Management 79iTool Developer’s Guide Property AttributesDESCRIPTION (Get, Set)A string value containing a text description of the
8Contents iTool Developer’s GuideAppendix BiTool Compound Widgets ... 397Overview of i
80 Chapter 4: Property ManagementProperty Attributes iTool Developer’s Guideof multiple objects are displayed in the property sheet (either because mu
Chapter 4: Property Management 81iTool Developer’s Guide Property AggregationProperty AggregationThe iTools property aggregation mechanism allows the
82 Chapter 4: Property ManagementProperty Aggregation iTool Developer’s Guidemust manually register only the unambiguous property names with each obje
Chapter 4: Property Management 83iTool Developer’s Guide Property Aggregationthe property will not be displayed). Selecting an individual aggregated o
84 Chapter 4: Property ManagementProperty Update Mechanism iTool Developer’s GuideProperty Update MechanismWhen a user changes the value of a property
Chapter 4: Property Management 85iTool Developer’s Guide Properties of the iTools SystemProperties of the iTools SystemiTools system preferences are d
86 Chapter 4: Property ManagementProperties of the iTools System iTool Developer’s Guide
Part II: Using theiTools ComponentFramework
iTool Developer’s Guide 89Chapter 5Creating an iToolThis chapter describes the process of creating an new iTool definition and command-line launch rou
iTool Developer’s Guide 9Chapter 1Overview of iToolsThis chapter provides an overview of the IDL iTool Component Framework.What are iTools? . . . . .
90 Chapter 5: Creating an iToolOverview of iTool Creation iTool Developer’s GuideOverview of iTool CreationCreating a new iTool using the iTools compo
Chapter 5: Creating an iTool 91iTool Developer’s Guide Creating a New iTool ClassCreating a New iTool ClassAn iTool object class definition file must
92 Chapter 5: Creating an iToolCreating a New iTool Class iTool Developer’s GuideNoteTo create an iTool that does not include the standard iTool funct
Chapter 5: Creating an iTool 93iTool Developer’s Guide Creating a New iTool Classname should be the same as the iTool’s class name — in this case, Fir
94 Chapter 5: Creating an iToolCreating a New iTool Class iTool Developer’s GuideNoteAlways use keyword inheritance (the _REF_EXTRA keyword) to pass k
Chapter 5: Creating an iTool 95iTool Developer’s Guide Creating a New iTool ClassNoteAlways use keyword inheritance (the _EXTRA keyword) to pass keywo
96 Chapter 5: Creating an iToolCreating a New iTool Class iTool Developer’s Guideself->RegisterVisualization, Visualization_Type, $VisType_Class_Na
Chapter 5: Creating an iTool 97iTool Developer’s Guide Creating a New iTool Classmenu selection Change My Data in the Filters folder of the iTool Oper
98 Chapter 5: Creating an iToolCreating a New iTool Class iTool Developer’s GuideRegistering File Readers and WritersRegistering a file reader or file
Chapter 5: Creating an iTool 99iTool Developer’s Guide Creating a New iTool Classspecifies the file writer.bmp located in the home/mydir directory as
Comments to this Manuals