+
+/*****************************************************************************
+ * embeddedbackground
+ *****************************************************************************/
+
+
+@implementation embeddedbackground
+
+- (void)dealloc
+{
+ [self unregisterDraggedTypes];
+ [super dealloc];
+}
+
+- (void)awakeFromNib
+{
+ [self registerForDraggedTypes:[NSArray arrayWithObjects:NSTIFFPboardType,
+ NSFilenamesPboardType, nil]];
+ [self addSubview: o_timeslider];
+ [self addSubview: o_scrollfield];
+ [self addSubview: o_time];
+ [self addSubview: o_main_pgbar];
+ [self addSubview: o_btn_backward];
+ [self addSubview: o_btn_forward];
+ [self addSubview: o_btn_fullscreen];
+ [self addSubview: o_btn_equalizer];
+ [self addSubview: o_btn_playlist];
+ [self addSubview: o_btn_play];
+ [self addSubview: o_btn_prev];
+ [self addSubview: o_btn_stop];
+ [self addSubview: o_btn_next];
+ [self addSubview: o_btn_volume_down];
+ [self addSubview: o_volumeslider];
+ [self addSubview: o_btn_volume_up];
+ [self addSubview: o_searchfield];
+}
+
+- (NSDragOperation)draggingEntered:(id <NSDraggingInfo>)sender
+{
+ if ((NSDragOperationGeneric & [sender draggingSourceOperationMask])
+ == NSDragOperationGeneric)
+ {
+ return NSDragOperationGeneric;
+ }
+ else
+ {
+ return NSDragOperationNone;
+ }
+}
+
+- (BOOL)prepareForDragOperation:(id <NSDraggingInfo>)sender
+{
+ return YES;
+}
+
+- (BOOL)performDragOperation:(id <NSDraggingInfo>)sender
+{
+ NSPasteboard *o_paste = [sender draggingPasteboard];
+ NSArray *o_types = [NSArray arrayWithObjects: NSFilenamesPboardType, nil];
+ NSString *o_desired_type = [o_paste availableTypeFromArray:o_types];
+ NSData *o_carried_data = [o_paste dataForType:o_desired_type];
+ BOOL b_autoplay = config_GetInt( VLCIntf, "macosx-autoplay" );
+
+ if( o_carried_data )
+ {
+ if ([o_desired_type isEqualToString:NSFilenamesPboardType])
+ {
+ int i;
+ NSArray *o_array = [NSArray array];
+ NSArray *o_values = [[o_paste propertyListForType: NSFilenamesPboardType]
+ sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
+
+ for( i = 0; i < (int)[o_values count]; i++)
+ {
+ NSDictionary *o_dic;
+ o_dic = [NSDictionary dictionaryWithObject:[o_values objectAtIndex:i] forKey:@"ITEM_URL"];
+ o_array = [o_array arrayByAddingObject: o_dic];
+ }
+ if( b_autoplay )
+ [[[VLCMain sharedInstance] playlist] appendArray: o_array atPos: -1 enqueue:NO];
+ else
+ [[[VLCMain sharedInstance] playlist] appendArray: o_array atPos: -1 enqueue:YES];
+ return YES;
+ }
+ }
+ [self setNeedsDisplay:YES];
+ return YES;
+}
+
+- (void)concludeDragOperation:(id <NSDraggingInfo>)sender
+{
+ [self setNeedsDisplay:YES];
+}
+
+- (void)drawRect:(NSRect)rect
+{
+ NSImage *leftImage = [NSImage imageNamed:@"display_left"];
+ NSImage *middleImage = [NSImage imageNamed:@"display_middle"];
+ NSImage *rightImage = [NSImage imageNamed:@"display_right"];
+ [middleImage setSize:NSMakeSize(NSWidth( [self bounds] ) - 134 - [leftImage size].width - [rightImage size].width, [middleImage size].height)];
+ [middleImage setScalesWhenResized:YES];
+ [leftImage compositeToPoint:NSMakePoint( 122., 40. ) operation:NSCompositeSourceOver];
+ [middleImage compositeToPoint:NSMakePoint( 122. + [leftImage size].width, 40. ) operation:NSCompositeSourceOver];
+ [rightImage compositeToPoint:NSMakePoint( NSWidth( [self bounds] ) - 12 - [rightImage size].width, 40. ) operation:NSCompositeSourceOver];
+}
+
+- (void)mouseDown:(NSEvent *)event
+{
+ dragStart = [self convertPoint:[event locationInWindow] fromView:nil];
+}
+
+- (void)mouseDragged:(NSEvent *)event
+{
+ NSPoint dragLocation = [self convertPoint:[event locationInWindow] fromView:nil];
+ NSPoint winOrigin = [o_window frame].origin;
+
+ NSPoint newOrigin = NSMakePoint(winOrigin.x + (dragLocation.x - dragStart.x),
+ winOrigin.y + (dragLocation.y - dragStart.y));
+ [o_window setFrameOrigin: newOrigin];
+}
+
+@end
+
+/*****************************************************************************
+ * statusbar
+ *****************************************************************************/
+
+
+@implementation statusbar
+- (void)awakeFromNib
+{
+ [self addSubview: o_text];
+ mainwindow = YES;
+}
+
+- (void)resignMainWindow
+{
+ mainwindow = NO;
+ [self needsDisplay];
+}
+
+- (void)becomeMainWindow
+{
+ mainwindow = YES;
+ [self needsDisplay];
+}
+
+- (void)drawRect:(NSRect)rect
+{
+ if(mainwindow)
+ [[NSColor colorWithCalibratedRed:0.820
+ green:0.843
+ blue:0.886
+ alpha:1.0] set];
+ else
+ [[NSColor colorWithCalibratedWhite:0.91 alpha:1.0] set];
+ NSRectFill(rect);
+ /*NSRect divider = rect;
+ divider.origin.y += divider.size.height - 1;
+ divider.size.height = 1;
+ [[NSColor colorWithCalibratedWhite:0.65 alpha:1.] set];
+ NSRectFill(divider);*/
+}
+@end