From 1405cf748a267b5e7ad21b606172a27d688eda56 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Felix=20Paul=20K=C3=BChne?= Date: Sun, 15 Jun 2008 19:27:03 +0200 Subject: [PATCH] Redesigned the window to make it look more Mac-like and much smaller by adding a popupbutton at the top to choose the filters and by removing all the expanding stuff This way adding more uis to different filters is much easier and faster to do. --- .../English.lproj/Extended.nib/classes.nib | 398 +++++++++--------- .../English.lproj/Extended.nib/info.nib | 16 +- .../Extended.nib/keyedobjects.nib | Bin 22423 -> 20063 bytes modules/gui/macosx/extended.h | 23 +- modules/gui/macosx/extended.m | 215 +++------- modules/gui/macosx/intf.m | 12 +- 6 files changed, 274 insertions(+), 390 deletions(-) diff --git a/extras/package/macosx/Resources/English.lproj/Extended.nib/classes.nib b/extras/package/macosx/Resources/English.lproj/Extended.nib/classes.nib index a9b111fe88..667bbb5d58 100644 --- a/extras/package/macosx/Resources/English.lproj/Extended.nib/classes.nib +++ b/extras/package/macosx/Resources/English.lproj/Extended.nib/classes.nib @@ -1,198 +1,206 @@ { - IBClasses = ( - { - ACTIONS = { - alignCenter = id; - alignJustified = id; - alignLeft = id; - alignRight = id; - arrangeInFront = id; - centerSelectionInVisibleArea = id; - changeFont = id; - checkSpelling = id; - clear = id; - clearRecentDocuments = id; - complete = id; - copy = id; - copyFont = id; - copyRuler = id; - cut = id; - delete = id; - deminiaturize = id; - fax = id; - hide = id; - hideOtherApplications = id; - loosenKerning = id; - lowerBaseline = id; - makeKeyAndOrderFront = id; - miniaturize = id; - newDocument = id; - openDocument = id; - orderBack = id; - orderFront = id; - orderFrontColorPanel = id; - orderFrontHelpPanel = id; - orderOut = id; - outline = id; - paste = id; - pasteAsPlainText = id; - pasteAsRichText = id; - pasteFont = id; - pasteRuler = id; - pause = id; - performClose = id; - performFindPanelAction = id; - performMiniaturize = id; - performZoom = id; - play = id; - print = id; - printDocument = id; - raiseBaseline = id; - record = id; - redo = id; - resume = id; - revertDocumentToSaved = id; - run = id; - runPageLayout = id; - runToolbarCustomizationPalette = id; - saveAllDocuments = id; - saveDocument = id; - saveDocumentAs = id; - saveDocumentTo = id; - selectAll = id; - selectText = id; - showGuessPanel = id; - showHelp = id; - start = id; - startSpeaking = id; - stop = id; - stopSpeaking = id; - subscript = id; - superscript = id; - terminate = id; - tightenKerning = id; - toggleContinuousSpellChecking = id; - toggleRuler = id; - toggleToolbarShown = id; - turnOffKerning = id; - turnOffLigatures = id; - underline = id; - undo = id; - unhideAllApplications = id; - unscript = id; - useAllLigatures = id; - useStandardKerning = id; - useStandardLigatures = id; - }; - CLASS = FirstResponder; - LANGUAGE = ObjC; - SUPERCLASS = NSObject; - }, - { - CLASS = IBInspector; - LANGUAGE = ObjC; - OUTLETS = {inspectorView = NSView; }; - SUPERCLASS = NSObject; - }, - { - CLASS = IBLibraryObjectTemplate; - LANGUAGE = ObjC; - OUTLETS = {draggedView = NSView; representedObject = NSObject; }; - SUPERCLASS = NSView; - }, - {CLASS = NSDateFormatter; LANGUAGE = ObjC; SUPERCLASS = NSFormatter; }, - {CLASS = NSFormatter; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, - {CLASS = NSNumberFormatter; LANGUAGE = ObjC; SUPERCLASS = NSFormatter; }, - { - CLASS = PDFThumbnailView; - LANGUAGE = ObjC; - OUTLETS = {pdfView = PDFView; }; - SUPERCLASS = NSView; - }, - { - ACTIONS = { - goBack = id; - goForward = id; - goToFirstPage = id; - goToLastPage = id; - goToNextPage = id; - goToPreviousPage = id; - selectAll = id; - takeBackgroundColorFrom = id; - zoomIn = id; - zoomOut = id; - }; - CLASS = PDFView; - LANGUAGE = ObjC; - SUPERCLASS = NSView; - }, - { - ACTIONS = { - enableAdjustImage = id; - enableHeadphoneVirtualizer = id; - enableVolumeNormalization = id; - expandAdjustImage = id; - expandAudioFilters = id; - expandVideoFilters = id; - moreInfoVideoFilters = id; - opaqueSliderAction = id; - restoreDefaultsForAdjustImage = id; - sliderActionAdjustImage = id; - sliderActionMaximumAudioLevel = id; - videoFilterAction = id; - }; - CLASS = VLCExtended; - LANGUAGE = ObjC; - OUTLETS = { - "o_adjustImg_view" = id; - "o_audioFlts_view" = id; - "o_box_adjImg" = id; - "o_box_audFlts" = id; - "o_box_vidFlts" = id; - "o_btn_rstrDefaults" = id; - "o_btn_vidFlts_mrInfo" = id; - "o_ckb_blur" = id; - "o_ckb_enblAdjustImg" = id; - "o_ckb_gradient" = id; - "o_ckb_hdphnVirt" = id; - "o_ckb_imgClone" = id; - "o_ckb_imgCrop" = id; - "o_ckb_imgInvers" = id; - "o_ckb_intZoom" = id; - "o_ckb_psycho" = id; - "o_ckb_ripple" = id; - "o_ckb_trnsform" = id; - "o_ckb_vlme_norm" = id; - "o_ckb_wave" = id; - "o_expBtn_adjustImage" = id; - "o_expBtn_audioFlts" = id; - "o_expBtn_videoFlts" = id; - "o_extended_window" = id; - "o_lbl_adjustImage" = id; - "o_lbl_audio" = id; - "o_lbl_audioFlts" = id; - "o_lbl_brightness" = id; - "o_lbl_contrast" = id; - "o_lbl_distort" = id; - "o_lbl_gamma" = id; - "o_lbl_general" = id; - "o_lbl_hue" = id; - "o_lbl_maxLevel" = id; - "o_lbl_opaque" = id; - "o_lbl_saturation" = id; - "o_lbl_video" = id; - "o_lbl_videoFlts" = id; - "o_sld_brightness" = id; - "o_sld_contrast" = id; - "o_sld_gamma" = id; - "o_sld_hue" = id; - "o_sld_maxLevel" = id; - "o_sld_opaque" = id; - "o_sld_saturation" = id; - "o_videoFilters_view" = id; - }; - SUPERCLASS = NSObject; + IBClasses = ( + { + ACTIONS = { + alignCenter = id; + alignJustified = id; + alignLeft = id; + alignRight = id; + arrangeInFront = id; + centerSelectionInVisibleArea = id; + changeFont = id; + checkSpelling = id; + clear = id; + clearRecentDocuments = id; + complete = id; + copy = id; + copyFont = id; + copyRuler = id; + cut = id; + delete = id; + deminiaturize = id; + fax = id; + hide = id; + hideOtherApplications = id; + loosenKerning = id; + lowerBaseline = id; + makeKeyAndOrderFront = id; + miniaturize = id; + newDocument = id; + openDocument = id; + orderBack = id; + orderFront = id; + orderFrontColorPanel = id; + orderFrontHelpPanel = id; + orderOut = id; + outline = id; + paste = id; + pasteAsPlainText = id; + pasteAsRichText = id; + pasteFont = id; + pasteRuler = id; + pause = id; + performClose = id; + performFindPanelAction = id; + performMiniaturize = id; + performZoom = id; + play = id; + print = id; + printDocument = id; + raiseBaseline = id; + record = id; + redo = id; + resume = id; + revertDocumentToSaved = id; + run = id; + runPageLayout = id; + runToolbarCustomizationPalette = id; + saveAllDocuments = id; + saveDocument = id; + saveDocumentAs = id; + saveDocumentTo = id; + selectAll = id; + selectText = id; + showGuessPanel = id; + showHelp = id; + start = id; + startSpeaking = id; + stop = id; + stopSpeaking = id; + subscript = id; + superscript = id; + terminate = id; + tightenKerning = id; + toggleContinuousSpellChecking = id; + toggleRuler = id; + toggleToolbarShown = id; + turnOffKerning = id; + turnOffLigatures = id; + underline = id; + undo = id; + unhideAllApplications = id; + unscript = id; + useAllLigatures = id; + useStandardKerning = id; + useStandardLigatures = id; + }; + CLASS = FirstResponder; + LANGUAGE = ObjC; + SUPERCLASS = NSObject; + }, + { + CLASS = IBInspector; + LANGUAGE = ObjC; + OUTLETS = { + inspectorView = NSView; + }; + SUPERCLASS = NSObject; + }, + { + CLASS = IBLibraryObjectTemplate; + LANGUAGE = ObjC; + OUTLETS = { + draggedView = NSView; + representedObject = NSObject; + }; + SUPERCLASS = NSView; + }, + { + CLASS = NSDateFormatter; + LANGUAGE = ObjC; + SUPERCLASS = NSFormatter; + }, + { + CLASS = NSFormatter; + LANGUAGE = ObjC; + SUPERCLASS = NSObject; + }, + { + CLASS = NSNumberFormatter; + LANGUAGE = ObjC; + SUPERCLASS = NSFormatter; + }, + { + CLASS = PDFThumbnailView; + LANGUAGE = ObjC; + OUTLETS = { + pdfView = PDFView; + }; + SUPERCLASS = NSView; + }, + { + ACTIONS = { + goBack = id; + goForward = id; + goToFirstPage = id; + goToLastPage = id; + goToNextPage = id; + goToPreviousPage = id; + selectAll = id; + takeBackgroundColorFrom = id; + zoomIn = id; + zoomOut = id; + }; + CLASS = PDFView; + LANGUAGE = ObjC; + SUPERCLASS = NSView; + }, + { + ACTIONS = { + enableAdjustImage = id; + enableHeadphoneVirtualizer = id; + enableVolumeNormalization = id; + moreInfoVideoFilters = id; + opaqueSliderAction = id; + restoreDefaultsForAdjustImage = id; + sliderActionAdjustImage = id; + sliderActionMaximumAudioLevel = id; + videoFilterAction = id; + viewSelectorAction = id; + }; + CLASS = VLCExtended; + LANGUAGE = ObjC; + OUTLETS = { + "o_adjustImg_view" = id; + "o_audioFlts_view" = id; + "o_btn_rstrDefaults" = id; + "o_btn_vidFlts_mrInfo" = id; + "o_ckb_blur" = id; + "o_ckb_enblAdjustImg" = id; + "o_ckb_gradient" = id; + "o_ckb_hdphnVirt" = id; + "o_ckb_imgClone" = id; + "o_ckb_imgCrop" = id; + "o_ckb_imgInvers" = id; + "o_ckb_intZoom" = id; + "o_ckb_psycho" = id; + "o_ckb_ripple" = id; + "o_ckb_trnsform" = id; + "o_ckb_vlme_norm" = id; + "o_ckb_wave" = id; + "o_extended_window" = id; + "o_lbl_brightness" = id; + "o_lbl_contrast" = id; + "o_lbl_distort" = id; + "o_lbl_gamma" = id; + "o_lbl_general" = id; + "o_lbl_hue" = id; + "o_lbl_maxLevel" = id; + "o_lbl_opaque" = id; + "o_lbl_saturation" = id; + "o_selector_pop" = id; + "o_sld_brightness" = id; + "o_sld_contrast" = id; + "o_sld_gamma" = id; + "o_sld_hue" = id; + "o_sld_maxLevel" = id; + "o_sld_opaque" = id; + "o_sld_saturation" = id; + "o_top_controls_box" = id; + "o_videoFilters_view" = id; + }; + SUPERCLASS = NSObject; } - ); - IBVersion = 1; + ); + IBVersion = 1; } \ No newline at end of file diff --git a/extras/package/macosx/Resources/English.lproj/Extended.nib/info.nib b/extras/package/macosx/Resources/English.lproj/Extended.nib/info.nib index 668034bb8f..3bd9cbf114 100644 --- a/extras/package/macosx/Resources/English.lproj/Extended.nib/info.nib +++ b/extras/package/macosx/Resources/English.lproj/Extended.nib/info.nib @@ -1,29 +1,29 @@ - + IBDocumentLocation - 69 85 356 240 0 0 1440 878 + 59 108 356 240 0 0 1280 778 IBEditorPositions 13 - 153 575 390 138 0 0 1440 878 + 444 613 390 120 0 0 1280 778 32 - 525 476 390 255 0 0 1440 878 + 445 426 390 237 0 0 1280 778 5 - 518 235 390 230 0 0 1440 878 + 57 437 390 214 0 0 1280 778 IBFramework Version - 446.1 + 489.0 IBOpenObjects - 13 5 18 32 + 13 IBSystem Version - 8P135 + 9D34 targetFramework IBCocoaFramework diff --git a/extras/package/macosx/Resources/English.lproj/Extended.nib/keyedobjects.nib b/extras/package/macosx/Resources/English.lproj/Extended.nib/keyedobjects.nib index 8abd2e278449b6eb401d0fb9fdb497bf301e2acd..8008c945bf9733eb3cc22f74e762629595b0e6e0 100644 GIT binary patch literal 20063 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 Rd;x{@qs~zNxBcyy{(pmnF!=xg diff --git a/modules/gui/macosx/extended.h b/modules/gui/macosx/extended.h index 2af34bd032..4524d3ba87 100644 --- a/modules/gui/macosx/extended.h +++ b/modules/gui/macosx/extended.h @@ -38,17 +38,8 @@ IBOutlet id o_extended_window; /* window content */ - IBOutlet id o_expBtn_adjustImage; - IBOutlet id o_expBtn_audioFlts; - IBOutlet id o_expBtn_videoFlts; - IBOutlet id o_lbl_audioFlts; - IBOutlet id o_lbl_videoFlts; - IBOutlet id o_lbl_adjustImage; - IBOutlet id o_lbl_video; - IBOutlet id o_lbl_audio; - IBOutlet id o_box_vidFlts; - IBOutlet id o_box_audFlts; - IBOutlet id o_box_adjImg; + IBOutlet id o_selector_pop; + IBOutlet id o_top_controls_box; /* video filters */ IBOutlet id o_btn_vidFlts_mrInfo; @@ -88,13 +79,11 @@ IBOutlet id o_sld_opaque; /* global variables */ - BOOL o_adjImg_expanded; - BOOL o_audFlts_expanded; - BOOL o_vidFlts_expanded; - + NSView * o_currentlyshown_view; BOOL o_config_changed; } +- (IBAction)viewSelectorAction:(id)sender; - (IBAction)enableAdjustImage:(id)sender; - (IBAction)restoreDefaultsForAdjustImage:(id)sender; - (IBAction)sliderActionAdjustImage:(id)sender; @@ -102,15 +91,11 @@ - (IBAction)enableHeadphoneVirtualizer:(id)sender; - (IBAction)sliderActionMaximumAudioLevel:(id)sender; - (IBAction)enableVolumeNormalization:(id)sender; -- (IBAction)expandAdjustImage:(id)sender; -- (IBAction)expandAudioFilters:(id)sender; -- (IBAction)expandVideoFilters:(id)sender; - (IBAction)videoFilterAction:(id)sender; - (IBAction)moreInfoVideoFilters:(id)sender; + (VLCExtended *)sharedInstance; - (BOOL)getConfigChanged; -- (void)collapsAll; - (void)showPanel; - (void)initStrings; diff --git a/modules/gui/macosx/extended.m b/modules/gui/macosx/extended.m index c16044a9cb..a6cfe513d8 100644 --- a/modules/gui/macosx/extended.m +++ b/modules/gui/macosx/extended.m @@ -65,11 +65,6 @@ static VLCExtended *_o_sharedInstance = nil; /* localise GUI-strings */ /* method is called from intf.m (in method showExtended) */ [o_extended_window setTitle: _NS("Extended controls")]; - [o_lbl_video setStringValue: _NS("Video")]; - [o_lbl_audio setStringValue: _NS("Audio")]; - [o_lbl_audioFlts setStringValue: _NS("Audio filters")]; - [o_lbl_videoFlts setStringValue: _NS("Video filters")]; - [o_lbl_adjustImage setStringValue: _NS("Image adjustment")]; [o_btn_vidFlts_mrInfo setToolTip: _NS("Shows more information about the available video filters.")]; [o_ckb_wave setTitle: _NS("Wave")]; [o_ckb_ripple setTitle: _NS("Ripple")]; @@ -170,19 +165,18 @@ static VLCExtended *_o_sharedInstance = nil; free( psz_afilters ); } -} -- (void)collapsAll -{ - /* collaps all views so Cocoa saves the window position correctly */ - if( o_adjImg_expanded ) - [self expandAdjustImage: nil]; + /* fill the popup button according to our available views */ + [o_selector_pop removeAllItems]; + [o_selector_pop addItemWithTitle: _NS("Adjust Image")]; + [o_selector_pop addItemWithTitle: _NS("Video Filter")]; + [o_selector_pop addItemWithTitle: _NS("Audio Filter")]; + [o_selector_pop selectItemAtIndex: 0]; - if( o_audFlts_expanded ) - [self expandAudioFilters: nil]; + /* make sure we draw a view on launch */ + [self viewSelectorAction: self]; - if( o_vidFlts_expanded ) - [self expandVideoFilters: nil]; + [self initStrings]; } - (BOOL)getConfigChanged @@ -232,6 +226,53 @@ static VLCExtended *_o_sharedInstance = nil; [o_extended_window makeKeyAndOrderFront:nil]; } +- (IBAction)viewSelectorAction:(id)sender +{ + NSView *o_toBeShown_view; + /* check which view to show */ + if( [[[o_selector_pop selectedItem] title] isEqualToString: _NS("Adjust Image")] ) + o_toBeShown_view = o_adjustImg_view; + else if( [[[o_selector_pop selectedItem] title] isEqualToString: _NS("Audio Filter")] ) + o_toBeShown_view = o_audioFlts_view; + else if( [[[o_selector_pop selectedItem] title] isEqualToString: _NS("Video Filter")] ) + o_toBeShown_view = o_videoFilters_view; + else + msg_Err( VLCIntf, "invalid ui view requested" ); + + NSRect o_win_rect, o_view_rect, o_old_view_rect; + o_win_rect = [o_extended_window frame]; + o_view_rect = [o_toBeShown_view frame]; + + if( o_currentlyshown_view != nil ) + { + /* restore our window's height, if we've shown another category previously */ + o_old_view_rect = [o_currentlyshown_view frame]; + o_win_rect.size.height = o_win_rect.size.height - o_old_view_rect.size.height; + o_win_rect.origin.y = ( o_win_rect.origin.y + o_old_view_rect.size.height ) - o_view_rect.size.height; + + /* remove our previous category view */ + [o_currentlyshown_view removeFromSuperviewWithoutNeedingDisplay]; + } + + o_win_rect.size.height = o_win_rect.size.height + o_view_rect.size.height; + + //[o_extended_window displayIfNeeded]; + [o_extended_window setFrame: o_win_rect display:YES animate: YES]; + + [o_toBeShown_view setFrame: NSMakeRect( 0, + 0, //[o_top_controls_box frame].size.height, + o_view_rect.size.width, + o_view_rect.size.height )]; + [o_toBeShown_view setNeedsDisplay: YES]; + [o_toBeShown_view setAutoresizesSubviews: YES]; + [[o_extended_window contentView] addSubview: o_toBeShown_view]; + + /* keep our current category for further reference */ + [o_currentlyshown_view release]; + o_currentlyshown_view = o_toBeShown_view; + [o_currentlyshown_view retain]; +} + - (IBAction)enableAdjustImage:(id)sender { /* en-/disable the sliders */ @@ -433,150 +474,6 @@ static VLCExtended *_o_sharedInstance = nil; [self changeAFiltersString: "normvol" onOrOff: NO ]; } -- (IBAction)expandAdjustImage:(id)sender -{ - /* expand or collapse adjImg */ - NSRect o_win_rect = [o_extended_window frame]; - NSRect o_box_audFlts_rect = [o_box_audFlts frame]; - NSRect o_box_vidFlts_rect = [o_box_vidFlts frame]; - NSRect o_box_adjImg_rect = [o_box_adjImg frame]; - - if( o_adjImg_expanded ) - { - /* move the window contents upwards (partially done through settings - * inside the nib) and resize the window */ - o_win_rect.size.height = o_win_rect.size.height - 193; - o_win_rect.origin.y = [o_extended_window frame].origin.y + 193; - o_box_audFlts_rect.origin.y = o_box_audFlts_rect.origin.y + 193; - o_box_vidFlts_rect.origin.y = o_box_vidFlts_rect.origin.y + 193; - - /* remove the inserted view */ - [o_adjustImg_view removeFromSuperviewWithoutNeedingDisplay]; - } - else - { - /* move the window contents downwards and resize the window */ - o_win_rect.size.height = o_win_rect.size.height + 193; - o_win_rect.origin.y = [o_extended_window frame].origin.y - 193; - o_box_audFlts_rect.origin.y = o_box_audFlts_rect.origin.y - 193; - o_box_vidFlts_rect.origin.y = o_box_vidFlts_rect.origin.y - 193; - } - - [o_box_audFlts setFrameFromContentFrame: o_box_audFlts_rect]; - [o_box_vidFlts setFrameFromContentFrame: o_box_vidFlts_rect]; - [o_extended_window displayIfNeeded]; - [o_extended_window setFrame: o_win_rect display:YES animate: YES]; - - if( o_adjImg_expanded ) - { - o_box_adjImg_rect.size.height = [o_box_adjImg frame].size.height - 193; - o_adjImg_expanded = NO; - } - else - { - /* insert view */ - o_box_adjImg_rect.size.height = [o_box_adjImg frame].size.height + 193; - [o_adjustImg_view setFrame: NSMakeRect( 20, -10, 370, 203)]; - [o_adjustImg_view setNeedsDisplay:YES]; - [o_adjustImg_view setAutoresizesSubviews: YES]; - [[o_box_adjImg contentView] addSubview: o_adjustImg_view]; - o_adjImg_expanded = YES; - } - [o_box_adjImg setFrameFromContentFrame: o_box_adjImg_rect]; -} - -- (IBAction)expandAudioFilters:(id)sender -{ - /* expand or collapse audFlts */ - NSRect o_win_rect = [o_extended_window frame]; - NSRect o_box_audFlts_rect = [o_box_audFlts frame]; - - if( o_audFlts_expanded ) - { - /* move the window contents upwards (partially done through settings - * inside the nib) and resize the window */ - o_win_rect.size.height = o_win_rect.size.height - 66; - o_win_rect.origin.y = [o_extended_window frame].origin.y + 66; - - /* remove the inserted view */ - [o_audioFlts_view removeFromSuperviewWithoutNeedingDisplay]; - } - else - { - /* move the window contents downwards and resize the window */ - o_win_rect.size.height = o_win_rect.size.height + 66; - o_win_rect.origin.y = [o_extended_window frame].origin.y - 66; - } - [o_extended_window displayIfNeeded]; - [o_extended_window setFrame: o_win_rect display:YES animate: YES]; - - - if( o_audFlts_expanded ) - { - o_box_audFlts_rect.size.height = [o_box_audFlts frame].size.height - 66; - o_audFlts_expanded = NO; - } - else - { - /* insert view */ - o_box_audFlts_rect.size.height = [o_box_audFlts frame].size.height + 66; - [o_audioFlts_view setFrame: NSMakeRect( 20, -20, 370, 76)]; - [o_audioFlts_view setNeedsDisplay:YES]; - [o_audioFlts_view setAutoresizesSubviews: YES]; - [[o_box_audFlts contentView] addSubview: o_audioFlts_view]; - o_audFlts_expanded = YES; - } - [o_box_audFlts setFrameFromContentFrame: o_box_audFlts_rect]; -} - -- (IBAction)expandVideoFilters:(id)sender -{ - /* expand or collapse vidFlts */ - NSRect o_win_rect = [o_extended_window frame]; - NSRect o_box_audFlts_rect = [o_box_audFlts frame]; - NSRect o_box_vidFlts_rect = [o_box_vidFlts frame]; - - if( o_vidFlts_expanded ) - { - /* move the window contents upwards (partially done through settings - * inside the nib) and resize the window */ - o_win_rect.size.height = o_win_rect.size.height - 172; - o_win_rect.origin.y = [o_extended_window frame].origin.y + 172; - o_box_audFlts_rect.origin.y = o_box_audFlts_rect.origin.y + 172; - - /* remove the inserted view */ - [o_videoFilters_view removeFromSuperviewWithoutNeedingDisplay]; - } - else - { - /* move the window contents downwards and resize the window */ - o_win_rect.size.height = o_win_rect.size.height + 172; - o_win_rect.origin.y = [o_extended_window frame].origin.y - 172; - o_box_audFlts_rect.origin.y = o_box_audFlts_rect.origin.y - 172; - } - - [o_box_audFlts setFrameFromContentFrame: o_box_audFlts_rect]; - [o_extended_window displayIfNeeded]; - [o_extended_window setFrame: o_win_rect display:YES animate: YES]; - - if( o_vidFlts_expanded ) - { - o_box_vidFlts_rect.size.height = [o_box_vidFlts frame].size.height - 172; - o_vidFlts_expanded = NO; - } - else - { - /* insert view */ - o_box_vidFlts_rect.size.height = [o_box_vidFlts frame].size.height + 172; - [o_videoFilters_view setFrame: NSMakeRect( 20, -10, 370, 172)]; - [o_videoFilters_view setNeedsDisplay:YES]; - [o_videoFilters_view setAutoresizesSubviews: YES]; - [[o_box_vidFlts contentView] addSubview: o_videoFilters_view]; - o_vidFlts_expanded = YES; - } - [o_box_vidFlts setFrameFromContentFrame: o_box_vidFlts_rect]; -} - - (IBAction)videoFilterAction:(id)sender { /* en-/disable video filters */ diff --git a/modules/gui/macosx/intf.m b/modules/gui/macosx/intf.m index e22aa06c75..a629db0394 100644 --- a/modules/gui/macosx/intf.m +++ b/modules/gui/macosx/intf.m @@ -1817,7 +1817,6 @@ static VLCMain *_o_sharedMainInstance = nil; if( nib_extended_loaded ) { - [o_extended collapsAll]; [o_extended release]; } @@ -1944,17 +1943,12 @@ static VLCMain *_o_sharedMainInstance = nil; - (IBAction)showExtended:(id)sender { if( o_extended == nil ) - { o_extended = [[VLCExtended alloc] init]; - } + if( !nib_extended_loaded ) - { nib_extended_loaded = [NSBundle loadNibNamed:@"Extended" owner:self]; - [o_extended initStrings]; - [o_extended showPanel]; - } else { - [o_extended showPanel]; - } + + [o_extended showPanel]; } - (IBAction)showSFilters:(id)sender -- 2.39.2