home *** CD-ROM | disk | FTP | other *** search
/ Nebula 1994 June / NEBULA_SE.ISO / SourceCode / Palettes / ConnectDemo / DemoView.m < prev    next >
Encoding:
Text File  |  1993-04-19  |  2.2 KB  |  99 lines

  1.  
  2. #import "DemoView.h"
  3. #import "EDBOutlet.h"
  4. #import "EDBConnector.h"
  5.  
  6. @implementation DemoView
  7.  
  8. - initFrame:(const NXRect *)frameRect
  9. {
  10.     EDBOutlet    *outlet;
  11.  
  12.     [super initFrame:frameRect];
  13.  
  14.     outlets = [[List alloc] initCount:4];
  15.     outlet = [[EDBOutlet alloc] init];
  16.     [outlet setOutletName:NXUniqueString("normalOutlet")];
  17.     [outlet setIsTarget:NO];
  18.     [outlet setMultiUse:NO];
  19.     [outlets addObject:outlet];
  20.     outlet = [[EDBOutlet alloc] init];
  21.     [outlet setOutletName:NXUniqueString("multiUseOutlet")];
  22.     [outlet setIsTarget:NO];
  23.     [outlet setMultiUse:YES];
  24.     [outlets addObject:outlet];
  25.     outlet = [[EDBOutlet alloc] init];
  26.     [outlet setOutletName:NXUniqueString("targetOutlet")];
  27.     [outlet setIsTarget:YES];
  28.     [outlet setMultiUse:NO];
  29.     [outlets addObject:outlet];
  30.     outlet = [[EDBOutlet alloc] init];
  31.     [outlet setOutletName:NXUniqueString("mUseAndTarget")];
  32.     [outlet setIsTarget:YES];
  33.     [outlet setMultiUse:YES];
  34.     [outlets addObject:outlet];
  35.  
  36.     return self;
  37. }
  38.  
  39. - drawSelf:(const NXRect *)rect:(int)count
  40. {
  41.     NXRect    boundRect;
  42.  
  43.     [super drawSelf:rect:count];
  44.     [self getBounds:&boundRect];
  45.     PSsetgray(NX_WHITE);
  46.     NXRectFill(&boundRect);
  47.     PSsetgray(NX_BLACK);
  48.     PSrectstroke(NX_X(&boundRect),NX_Y(&boundRect)+1,
  49.                  NX_WIDTH(&boundRect)-1,NX_HEIGHT(&boundRect)-1);
  50.  
  51.     return self;
  52. }
  53.  
  54. - read:(NXTypedStream *)stream
  55. {
  56.     [super read:stream];
  57.     outlets = NXReadObject(stream);
  58.     return self;
  59. }
  60.  
  61. - write:(NXTypedStream *)stream
  62. {
  63.     [super write:stream];
  64.     NXWriteObject(stream,outlets);
  65.     return self;
  66. }
  67.  
  68. - (const char *)getConnectInspectorClassName
  69. {
  70.     return "EDBConnectInspector";
  71. }
  72.  
  73. - (List *)getOutlets
  74. {
  75.     return outlets;
  76. }
  77.  
  78. - establishEDBConnection:connection        // called for outlets multiUseOutlet,
  79.                                         // targetOutlet and
  80.                                         // multiUseAndTargetOutlet, because
  81.                                         // there is no corresponding method
  82.                                         // setXxx:.
  83. {
  84.     printf("establishingConnection: outletName=%s, selName=%s, sequence=%hd\n",
  85.         [connection outletName],[connection selName],[connection sequence]);
  86.     // Here you could put [connection destination] into a list of destinations.
  87.     // [connection sequence] allows you to perserve ordering.
  88.  
  89.     return self;
  90. }
  91.  
  92. - setNormalOutlet:sender
  93. {
  94.     printf("Setting normal Outlet\n");
  95.     return self;
  96. }
  97.  
  98. @end
  99.