home *** CD-ROM | disk | FTP | other *** search
/ Nebula 1 / Nebula One.iso / Graphics / Viewers / aa_m68k_Intel_Only / ToyViewer1.2 / Source / HelpPanelControl.m < prev    next >
Encoding:
Text File  |  1995-11-12  |  1.0 KB  |  63 lines

  1. /*
  2.  *    HelpPanelControl.m
  3.  *
  4.  *        by  Takeshi Ogihara (ogihara@seg.kobe-u.ac.jp)
  5.  */
  6.  
  7. #import "HelpPanelControl.h"
  8. #import "strfunc.h"
  9.  
  10. @implementation HelpPanelControl
  11.  
  12. static char *helpindex[] = {
  13.     "HelpDoc.rtf", "HelpInfo.rtf", "Copyright.rtf"
  14. };
  15.  
  16. - makeKeyAndOrderFront:sender
  17. {
  18.     if (helpPanel == nil) {
  19.         [NXApp loadNibSection:"HelpPanel.nib" owner:self];
  20.         curtag = -1;
  21.         [self readHelp: 0];
  22.     }
  23.     [helpPanel makeKeyAndOrderFront:sender];
  24.     return self;
  25. }
  26.  
  27. - selectHelp:sender
  28. {
  29.     int tag = [sender selectedTag];
  30.     if (tag != curtag)    
  31.         [self readHelp: tag];
  32.     return self;
  33. }
  34.  
  35. - readHelp: (int) helpid
  36. {
  37.     int n;
  38.     char buf[256];
  39.     char *const *lang;
  40.     NXStream *s;
  41.  
  42.  
  43.     n = dircopy(buf, NXArgv[0], YES);
  44.     if (n < 0 || (lang = [NXApp systemLanguages]) == NULL) {
  45.         curtag = 0;
  46.         return self;
  47.     }
  48.     for ( ; *lang; lang++) {
  49.         sprintf(&buf[n], "%s.lproj/%s", *lang, helpindex[helpid]);
  50.         s = NXMapFile(buf, NX_READONLY);
  51.         if (s) {
  52.             [helpText readRichText:s];
  53.             NXCloseMemory(s, NX_FREEBUFFER);
  54.             curtag = helpid;
  55.             return self;
  56.         }
  57.     }
  58.     curtag = 0;
  59.     return self;
  60. }
  61.  
  62. @end
  63.