Annotation of Examples/DatabaseKit/Formatter/DateTFCell.m, revision 1.1.1.1

1.1       root        1: 
                      2: /* Generated by Interface Builder */
                      3: 
                      4: #import "DateTFCell.h"
                      5: #import <appkit/appkit.h>
                      6: 
                      7: @implementation DateTFCell
                      8: 
                      9: - select:(const NXRect *)aRect inView:controlView editor:textObj delegate:anObject start:(int)selStart length:(int)selLength
                     10: {
                     11:        /* do what the superclass would do */
                     12:        [super select:aRect inView:controlView editor:textObj delegate:anObject start:selStart length:selLength];
                     13:  
                     14:        /* get the current text filter function */
                     15:        oldTextFilter = [textObj textFilter];
                     16:        
                     17:        /* set the filter func to be the custom function for DateTextField */
                     18:        [textObj setTextFilter:(NXTextFilterFunc)dateFilter];
                     19:        return self;
                     20: }
                     21: 
                     22: - edit:(const NXRect *)aRect inView:controlView editor:textObj delegate:anObject event:(NXEvent *)theEvent
                     23: {
                     24:        /* do what the superclass would do */
                     25:        [super edit:aRect inView:controlView editor:textObj delegate:anObject event:theEvent];
                     26:  
                     27:        /* get the current text filter function */
                     28:        oldTextFilter = [textObj textFilter];
                     29:        
                     30:        /* set the filter func to be the custom function for DateTextField */
                     31:        [textObj setTextFilter:(NXTextFilterFunc)dateFilter];
                     32:        return self;
                     33: }
                     34: 
                     35: - endEditing:anObject
                     36: {
                     37:        /* restore the original text filter function */
                     38:        [anObject setTextFilter:(NXTextFilterFunc)oldTextFilter];
                     39:        
                     40:        /* do whatever the superclass would do */
                     41:        [super endEditing:anObject];
                     42:        return self;
                     43: }
                     44: 
                     45: char *dateFilter(id textObj, char *inputText, int *inputLength, int position)
                     46: {
                     47:        char temp[] = "";
                     48:        
                     49:        /* The form of the date is MM/DD/YYYY.  So find a '/' in position 2 and 
                     50:         * position 5.  All other characters must be numbers but only 10
                     51:         * characters allowed 
                     52:         */
                     53:        if ((position == 2) || (position == 5)) {
                     54:                if (*inputText != '/') {
                     55:                        *inputLength = 0;
                     56:                        return (temp);
                     57:                } else {
                     58:                        return (inputText);
                     59:                }
                     60:        } else if (position >= 10) {
                     61:                *inputLength = 0;
                     62:                return (temp);
                     63:        } else if ((*inputText >= '0') && (*inputText <= '9')) {
                     64:                return (inputText);
                     65:        } else {
                     66:                *inputLength = 0;
                     67:                return (temp);
                     68:        }
                     69: }
                     70: 
                     71: @end

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.