comparison mac/dw.m @ 706:79b38b1f3346

Scrollbar event fixes... scale was wrong... not sure it is correct but it is better. Don't send resize events when size is negative which happens with hidden notebook pages.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Fri, 11 Mar 2011 21:53:01 +0000
parents 7087f3a294e5
children 86d76fc09237
comparison
equal deleted inserted replaced
705:7087f3a294e5 706:79b38b1f3346
132 }; 132 };
133 133
134 int _event_handler(id object, NSEvent *event, int message) 134 int _event_handler(id object, NSEvent *event, int message)
135 { 135 {
136 SignalHandler *handler = _get_handler(object, message); 136 SignalHandler *handler = _get_handler(object, message);
137 NSLog(@"Event handler - type %d\n", message); 137 /* NSLog(@"Event handler - type %d\n", message); */
138 138
139 if(handler) 139 if(handler)
140 { 140 {
141 switch(message) 141 switch(message)
142 { 142 {
164 { 164 {
165 NSView *view = object; 165 NSView *view = object;
166 size = [view frame].size; 166 size = [view frame].size;
167 } 167 }
168 168
169 return sizefunc(object, size.width, size.height, handler->data); 169 if(size.width > 0 && size.height > 0)
170 {
171 return sizefunc(object, size.width, size.height, handler->data);
172 }
173 return 0;
170 } 174 }
171 /* Button press and release event */ 175 /* Button press and release event */
172 case 3: 176 case 3:
173 case 4: 177 case 4:
174 { 178 {
693 -(void *)userdata { return userdata; } 697 -(void *)userdata { return userdata; }
694 -(void)setUserdata:(void *)input { userdata = input; } 698 -(void)setUserdata:(void *)input { userdata = input; }
695 -(float)range { return range; } 699 -(float)range { return range; }
696 -(float)visible { return visible; } 700 -(float)visible { return visible; }
697 -(void)setRange:(float)input1 andVisible:(float)input2 { range = input1; visible = input2; } 701 -(void)setRange:(float)input1 andVisible:(float)input2 { range = input1; visible = input2; }
698 -(void)scrollerChanged:(id)sender { NSNumber *num = [NSNumber numberWithDouble:[self floatValue]]; _event_handler(self, (void *)[num integerValue], 14); } 702 -(void)scrollerChanged:(id)sender { int result = (int)([self doubleValue] * [self range]); _event_handler(self, (void *)result, 14); }
699 -(void)dealloc { UserData *root = userdata; _remove_userdata(&root, NULL, TRUE); [super dealloc]; } 703 -(void)dealloc { UserData *root = userdata; _remove_userdata(&root, NULL, TRUE); [super dealloc]; }
700 @end 704 @end
701 705
702 /* Subclass for a render area type */ 706 /* Subclass for a render area type */
703 @interface DWRender : NSView 707 @interface DWRender : NSView