Changeset 139

Show
Ignore:
Timestamp:
10/08/07 10:06:59 (6 years ago)
Author:
mgalloy
Message:

Listing procedures, functions, and variables in sav files. Still need to work on common blocks, pointer, objects, structure definitions, and system variables.

Location:
trunk/idldoc/src
Files:
6 modified

Legend:

Unmodified
Added
Removed
  • trunk/idldoc/src/doc_system__define.pro

    r123 r139  
    7575 
    7676 
    77 pro doc_system::getProperty, root=root 
     77pro doc_system::getProperty, root=root, output=output 
    7878  compile_opt strictarr 
    7979 
    8080  if (arg_present(root)) then root = self.root 
     81  if (arg_present(output)) then output = self.output 
    8182end 
    8283 
     
    8889  compile_opt strictarr 
    8990   
    90   print, 'ROOT = ' + self.root 
    91   print, 'OUTPUT = ' + self.output 
    9291end 
    9392 
  • trunk/idldoc/src/introspection/doc_thumbnail.pro

    r136 r139  
    197197  ; calculate dimensions that preserve aspect ratio, but are in the range 
    198198  ; minDimSize...maxDimSize 
    199   dims = [sz.dimensions[cind[0]], sz.dimensions[cind[1]]] 
    200   dims = long(dims / float(max(dims)) * maxDimSize) 
     199  origDims = [sz.dimensions[cind[0]], sz.dimensions[cind[1]]] 
     200  dims = long(origDims / float(max(origDims)) * maxDimSize) 
     201   
     202  ; only resize to smaller, never bigger 
     203  doResize = total(dims gt origDims) eq 0 
     204   
    201205  dims = dims > minDimSize < maxDimSize 
    202206   
    203   im = congrid(im, sz.dimensions[ind[0]], dims[0], dims[1]) 
     207  if (doResize) then begin 
     208    im = congrid(im, sz.dimensions[ind[0]], dims[0], dims[1]) 
     209  endif 
    204210   
    205211  return, im 
  • trunk/idldoc/src/resources/main.css

    r122 r139  
    4242dl.routine-summary dd { margin-bottom: 0.5em; margin-left: 2em; } 
    4343 
    44 /* table */ 
     44/* general styles */ 
     45ul li { list-style-type: none; } 
    4546table { empty-cells: show; } 
    4647 
  • trunk/idldoc/src/templates/savefile.tt

    r119 r139  
    6666      <table class="attribute smaller">       
    6767        <tr> 
    68           <td class="name">Procedures: </td> 
     68          <td class="name">[% IF n_procedure gt 0%]<a href="#procedures">[% END %]Procedures:[% IF n_procedure gt 0 %]</a>[% END %]</td> 
    6969          <td>[% n_procedure %]</td> 
    7070        </tr>   
    7171        <tr> 
    72           <td class="name">Functions: </td> 
     72          <td class="name">[% IF n_function gt 0 %]<a href="#functions">[% END %]Functions:[% IF n_function gt 0 %]</a>[% END %]</td> 
    7373          <td>[% n_function %]</td> 
    7474        </tr>  
    7575        <tr> 
    76           <td class="name">Variables: </td> 
     76          <td class="name">[% IF n_var gt 0 %]<a href="#vars">[% END %]Variables:[% IF n_var gt 0 %]</a>[% END %]</td> 
    7777          <td>[% n_var %]</td> 
    7878        </tr>   
     
    9898        </tr>   
    9999      </table> 
     100             
     101      [% IF n_procedure gt 0 %] 
     102      <div id="procedures"> 
     103        <h3>Procedures</h3> 
     104         
     105        <ul class="smaller"> 
     106          [% FOREACH p IN procedures %] 
     107          <li>[% p %]</li> 
     108          [% END %] 
     109        </ul> 
     110      </div> 
     111      [% END %] 
     112 
     113      [% IF n_function gt 0 %] 
     114      <div id="functions"> 
     115        <h3>Functions</h3> 
     116         
     117        <ul class="smaller"> 
     118          [% FOREACH f IN functions %] 
     119          <li>[% f %]</li> 
     120          [% END %] 
     121        </ul> 
     122      </div> 
     123      [% END %] 
     124             
     125      [% IF n_var gt 0 %] 
     126      <div id="vars"> 
     127        <h3>Variables</h3> 
     128         
     129        <table class="smaller"> 
     130        [% FOREACH v IN vars %][% SCOPE v %] 
     131          <tr> 
     132            <td>[% IF has_thumbnail %]<img src="[% thumbnail_url %]"/>[% END %]</td> 
     133            <td>[% name %]</td> 
     134            <td><code>[% declaration %]</code></td>              
     135          </tr> 
     136        [% END %][% END %] 
     137        </table> 
     138      </div> 
     139      [% END %] 
    100140       
    101141      <h2>File attributes</h2> 
     
    111151            <td>[% size %]</td> 
    112152          </tr>           
    113         </table       
     153        </table>    
    114154         
    115155    </div> 
  • trunk/idldoc/src/tree/doctreesavfile__define.pro

    r119 r139  
    5353        contents = self.savFile->contents() 
    5454        ind = where(strupcase(name) eq tag_names(contents)) 
    55         return, contents.(ind[0]) 
     55        val = contents.(ind[0]) 
     56        return, (size(val, /type) eq 3 or size(val, /type) eq 14) ? mg_int_format(val) : val 
    5657      end 
     58    'vars': return, self.vars->get(/all) 
     59    'procedures': return, self.procedures->get(/all) 
     60    'functions': return, self.functions->get(/all) 
    5761    else: begin 
    5862        ; search in the system object if the variable is not found here 
     
    7074; Get properties. 
    7175;- 
    72 pro doctreesavfile::getProperty, basename=basename 
    73   compile_opt strictarr 
    74    
    75   if (arg_present(basename)) then name = self.basename 
     76pro doctreesavfile::getProperty, basename=basename, directory=directory 
     77  compile_opt strictarr 
     78   
     79  if (arg_present(basename)) then basename = self.basename 
     80  if (arg_present(directory)) then directory = self.directory 
     81end 
     82 
     83 
     84function doctreesavfile::loadItem, itemName, _extra=e 
     85  compile_opt strictarr 
     86   
     87  self.savFile->restore, itemName, _strict_extra=e 
     88   
     89  return, scope_varfetch(itemName) 
     90end 
     91 
     92 
     93pro doctreesavfile::loadSavContents 
     94  compile_opt strictarr 
     95 
     96  procedureNames = self.savFile->names(count=nProcedures, /procedure) 
     97  if (nProcedures gt 0) then self.procedures->add, procedureNames 
     98   
     99  functionNames = self.savFile->names(count=nFunctions, /function) 
     100  if (nFunctions gt 0) then self.functions->add, functionNames 
     101   
     102  varNames = self.savFile->names(count=nVars) 
     103  for i = 0L, nVars - 1L do begin 
     104    data = self->loadItem(varNames[i]) 
     105     
     106    var = obj_new('DOCtreeSavVar', varNames[i], data, self, system=self.system) 
     107    self.vars->add, var 
     108  endfor 
    76109end 
    77110 
     
    90123  on_error, 2 
    91124   
    92   print, '  Generating output for .sav file ' + self.basename 
     125  self.system->print, '  Generating output for .sav file ' + self.basename 
     126   
     127  self->loadSavContents 
    93128   
    94129  savFileTemplate = self.system->getTemplate('savefile') 
     
    108143  compile_opt strictarr 
    109144   
    110   obj_destroy, self.savFile 
     145  obj_destroy, [self.procedures, self.functions, self.vars, self.savFile] 
    111146end 
    112147 
     
    140175  self.system->createIndexEntry, self.basename, self 
    141176  self.system->print, '  Parsing ' + self.basename + '...' 
     177   
     178  self.procedures = obj_new('MGcoArrayList', type=7) 
     179  self.functions = obj_new('MGcoArrayList', type=7) 
     180  self.vars = obj_new('MGcoArrayList', type=11) 
    142181   
    143182  return, 1 
     
    165204             savFile: obj_new(), $ 
    166205             modificationTime: '', $ 
    167              size: '' $ 
     206             size: '', $ 
     207              
     208             procedures: obj_new(), $ 
     209             functions: obj_new(), $ 
     210             vars: obj_new() $ 
    168211           } 
    169212end 
  • trunk/idldoc/src/tree/doctreesavvar__define.pro

    r138 r139  
    1313;       set to a named variable, returns if variable name was found 
    1414;- 
    15 function doctreesavfile::getVariable, name, found=found 
     15function doctreesavvar::getVariable, name, found=found 
    1616  compile_opt strictarr 
    1717   
     
    1919  switch strlowcase(name) of 
    2020    'name': return, self.name 
     21    'declaration': return, self.declaration 
     22    'has_thumbnail': return, self.hasThumbnail 
    2123    'thumbnail_url': begin 
    22         ; TODO: finish this 
    23         return, self.savFile->getVariable('url') 
     24        return, self.savFile->getVariable('url') + self.localThumbnailUrl 
    2425      end 
    2526    else: begin 
     
    4142  compile_opt strictarr 
    4243 
    43   ptr_free, self.thumbnail 
    4444end 
    4545 
     
    5353   
    5454  im = doc_thumbnail(data, valid=valid) 
    55   if (valid) then self.thumbnail = ptr_new(im) 
     55  self.hasThumbnail = valid 
     56  if (self.hasThumbnail) then begin  
     57    self.savFile->getProperty, directory=directory, basename=basename 
     58    directory->getProperty, location=location 
     59    self.system->getProperty, output=output 
     60    self.localThumbnailUrl = file_basename(basename, '.sav') + '-sav-' + self.name + '.png' 
     61    filename = output + location + self.localThumbnailUrl 
     62     
     63    write_png, filename, im 
     64  endif 
     65   
     66  self.declaration = doc_variable_declaration(data) 
    5667   
    5768  return, 1 
     
    6778              
    6879             name: '', $ 
    69              thumbnail: ptr_new() $ 
     80             declaration: '', $ 
     81             localThumbnailUrl: '', $ 
     82             hasThumbnail: 0B $ 
    7083           } 
    7184end