LookAndFeel abstract error


#1

I'm on Mac 10.7, and I just updated to Juce 2.1.7 via the Introjucer. I'm using a subclass of LookAndFeel called SynthLookAndFeel. I haven't touched this class in a while, but ever since I updated to 2.1.7 I'm getting a build error on the following line:

 

SynthLookAndFeel synthLookAndFeel;

 

Here's the error:

 


/Users/Joe/Developer/Primer/Source/Synth/SynthComponent.h:273:19: Field type 'SynthLookAndFeel' is an abstract class
/Users/Joe/Developer/Primer/Source/Synth/CustomControls.cpp:11:10: In file included from /Users/Joe/Developer/Primer/Builds/MacOSX/../../Source/Synth/CustomControls.cpp:11:
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/layout/juce_ScrollBar.h:303:22: Unimplemented pure virtual method 'areScrollbarButtonsVisible' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/layout/juce_ScrollBar.h:316:22: Unimplemented pure virtual method 'drawScrollbarButton' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/layout/juce_ScrollBar.h:350:36: Unimplemented pure virtual method 'getScrollbarEffect' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/layout/juce_ScrollBar.h:353:21: Unimplemented pure virtual method 'getMinimumScrollbarThumbSize' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/layout/juce_ScrollBar.h:356:21: Unimplemented pure virtual method 'getDefaultScrollbarWidth' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/buttons/juce_Button.h:366:22: Unimplemented pure virtual method 'drawButtonBackground' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/buttons/juce_Button.h:369:22: Unimplemented pure virtual method 'getTextButtonFont' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/buttons/juce_Button.h:372:22: Unimplemented pure virtual method 'drawButtonText' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/buttons/juce_Button.h:375:22: Unimplemented pure virtual method 'drawToggleButton' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/buttons/juce_Button.h:377:22: Unimplemented pure virtual method 'changeToggleButtonWidthToFitText' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/buttons/juce_Button.h:382:22: Unimplemented pure virtual method 'drawDrawableButton' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/buttons/juce_ImageButton.h:133:22: Unimplemented pure virtual method 'drawImageButton' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/widgets/juce_TextEditor.h:591:22: Unimplemented pure virtual method 'fillTextEditorBackground' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/widgets/juce_TextEditor.h:592:22: Unimplemented pure virtual method 'drawTextEditorOutline' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/widgets/juce_TextEditor.h:594:33: Unimplemented pure virtual method 'createCaretComponent' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.h:190:33: Unimplemented pure virtual method 'getDefaultFolderImage' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.h:191:33: Unimplemented pure virtual method 'getDefaultDocumentFileImage' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.h:193:34: Unimplemented pure virtual method 'createFileChooserHeaderText' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.h:196:22: Unimplemented pure virtual method 'drawFileBrowserRow' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.h:206:25: Unimplemented pure virtual method 'createFileBrowserGoUpButton' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.h:208:22: Unimplemented pure virtual method 'layoutFileBrowserComponent' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/widgets/juce_TreeView.h:815:22: Unimplemented pure virtual method 'drawTreeviewPlusMinusBox' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/widgets/juce_TreeView.h:818:22: Unimplemented pure virtual method 'areLinesDrawnForTreeView' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/widgets/juce_TreeView.h:819:21: Unimplemented pure virtual method 'getTreeViewIndentSize' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/misc/juce_BubbleComponent.h:147:22: Unimplemented pure virtual method 'drawBubble' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/windows/juce_AlertWindow.h:428:30: Unimplemented pure virtual method 'createAlertWindow' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/windows/juce_AlertWindow.h:436:22: Unimplemented pure virtual method 'drawAlertBox' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/windows/juce_AlertWindow.h:438:21: Unimplemented pure virtual method 'getAlertBoxWindowFlags' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/windows/juce_AlertWindow.h:440:21: Unimplemented pure virtual method 'getAlertWindowButtonHeight' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/windows/juce_AlertWindow.h:442:22: Unimplemented pure virtual method 'getAlertWindowMessageFont' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/windows/juce_AlertWindow.h:443:22: Unimplemented pure virtual method 'getAlertWindowFont' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/menus/juce_PopupMenu.h:493:22: Unimplemented pure virtual method 'drawPopupMenuBackground' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/menus/juce_PopupMenu.h:496:22: Unimplemented pure virtual method 'drawPopupMenuItem' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/menus/juce_PopupMenu.h:507:22: Unimplemented pure virtual method 'drawPopupMenuUpDownArrow' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/menus/juce_PopupMenu.h:518:21: Unimplemented pure virtual method 'getMenuWindowFlags' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/menus/juce_PopupMenu.h:524:21: Unimplemented pure virtual method 'getDefaultMenuBarHeight' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/menus/juce_PopupMenu.h:526:21: Unimplemented pure virtual method 'getMenuBarItemWidth' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/menus/juce_PopupMenu.h:528:22: Unimplemented pure virtual method 'getMenuBarFont' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/menus/juce_PopupMenu.h:530:22: Unimplemented pure virtual method 'drawMenuBarItem' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/widgets/juce_ComboBox.h:344:22: Unimplemented pure virtual method 'drawComboBox' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/widgets/juce_ComboBox.h:350:24: Unimplemented pure virtual method 'createComboBoxTextBox' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/widgets/juce_Label.h:260:22: Unimplemented pure virtual method 'drawLabel' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/widgets/juce_Label.h:261:22: Unimplemented pure virtual method 'getLabelFont' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/widgets/juce_Slider.h:774:22: Unimplemented pure virtual method 'drawLinearSlider' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/widgets/juce_Slider.h:798:21: Unimplemented pure virtual method 'getSliderThumbRadius' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/widgets/juce_Slider.h:807:25: Unimplemented pure virtual method 'createSliderButton' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/widgets/juce_Slider.h:808:24: Unimplemented pure virtual method 'createSliderTextBox' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/widgets/juce_Slider.h:810:36: Unimplemented pure virtual method 'getSliderEffect' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/widgets/juce_Slider.h:812:22: Unimplemented pure virtual method 'getSliderPopupFont' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/widgets/juce_Slider.h:813:21: Unimplemented pure virtual method 'getSliderPopupPlacement' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/windows/juce_ResizableWindow.h:318:22: Unimplemented pure virtual method 'drawCornerResizer' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/windows/juce_ResizableWindow.h:319:22: Unimplemented pure virtual method 'drawResizableFrame' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/windows/juce_ResizableWindow.h:321:22: Unimplemented pure virtual method 'fillResizableWindowBackground' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/windows/juce_ResizableWindow.h:322:22: Unimplemented pure virtual method 'drawResizableWindowBorder' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/windows/juce_DocumentWindow.h:234:22: Unimplemented pure virtual method 'drawDocumentWindowTitleBar' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/windows/juce_DocumentWindow.h:240:25: Unimplemented pure virtual method 'createDocumentWindowButton' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/windows/juce_DocumentWindow.h:242:22: Unimplemented pure virtual method 'positionDocumentWindowButtons' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/windows/juce_TooltipWindow.h:107:22: Unimplemented pure virtual method 'getTooltipSize' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/windows/juce_TooltipWindow.h:108:22: Unimplemented pure virtual method 'drawTooltip' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/layout/juce_TabbedButtonBar.h:304:21: Unimplemented pure virtual method 'getTabButtonSpaceAroundImage' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/layout/juce_TabbedButtonBar.h:305:21: Unimplemented pure virtual method 'getTabButtonOverlap' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/layout/juce_TabbedButtonBar.h:306:21: Unimplemented pure virtual method 'getTabButtonBestWidth' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/layout/juce_TabbedButtonBar.h:307:32: Unimplemented pure virtual method 'getTabButtonExtraComponentBounds' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/layout/juce_TabbedButtonBar.h:309:22: Unimplemented pure virtual method 'drawTabButton' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/layout/juce_TabbedButtonBar.h:310:22: Unimplemented pure virtual method 'drawTabButtonText' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/layout/juce_TabbedButtonBar.h:311:22: Unimplemented pure virtual method 'drawTabbedButtonBarBackground' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/layout/juce_TabbedButtonBar.h:312:22: Unimplemented pure virtual method 'drawTabAreaBehindFrontButton' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/layout/juce_TabbedButtonBar.h:314:22: Unimplemented pure virtual method 'createTabButtonShape' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/layout/juce_TabbedButtonBar.h:315:22: Unimplemented pure virtual method 'fillTabButtonShape' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/layout/juce_TabbedButtonBar.h:317:25: Unimplemented pure virtual method 'createTabBarExtrasButton' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/properties/juce_PropertyComponent.h:111:22: Unimplemented pure virtual method 'drawPropertyPanelSectionHeader' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/properties/juce_PropertyComponent.h:112:22: Unimplemented pure virtual method 'drawPropertyComponentBackground' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/properties/juce_PropertyComponent.h:113:22: Unimplemented pure virtual method 'drawPropertyComponentLabel' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/properties/juce_PropertyComponent.h:114:32: Unimplemented pure virtual method 'getPropertyComponentContentPosition' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/filebrowser/juce_FilenameComponent.h:189:25: Unimplemented pure virtual method 'createFilenameComponentBrowseButton' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/filebrowser/juce_FilenameComponent.h:190:22: Unimplemented pure virtual method 'layoutFilenameComponent' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/layout/juce_GroupComponent.h:91:22: Unimplemented pure virtual method 'drawGroupComponentOutline' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/widgets/juce_TableHeaderComponent.h:375:22: Unimplemented pure virtual method 'drawTableHeaderBackground' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/widgets/juce_TableHeaderComponent.h:377:22: Unimplemented pure virtual method 'drawTableHeaderColumn' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/windows/juce_CallOutBox.h:127:22: Unimplemented pure virtual method 'drawCallOutBoxBackground' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/widgets/juce_Toolbar.h:276:22: Unimplemented pure virtual method 'paintToolbarBackground' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/widgets/juce_Toolbar.h:278:25: Unimplemented pure virtual method 'createToolbarMissingItemsButton' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/widgets/juce_Toolbar.h:280:22: Unimplemented pure virtual method 'paintToolbarButtonBackground' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/widgets/juce_Toolbar.h:284:22: Unimplemented pure virtual method 'paintToolbarButtonLabel' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/layout/juce_ConcertinaPanel.h:102:22: Unimplemented pure virtual method 'drawConcertinaPanelHeader' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/layout/juce_StretchableLayoutResizerBar.h:81:22: Unimplemented pure virtual method 'drawStretchableLayoutResizerBar' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.h:50:22: Unimplemented pure virtual method 'drawKeymapChangeButton' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.h:59:22: Unimplemented pure virtual method 'drawLevelMeter' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.h:41:22: Unimplemented pure virtual method 'drawLasso' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.h:195:18: Unimplemented pure virtual method 'drawSpinningWaitAnimation' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.h:200:18: Unimplemented pure virtual method 'getTickShape' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.h:202:18: Unimplemented pure virtual method 'getCrossShape' in 'SynthLookAndFeel'
/Users/Joe/Developer/Primer/JuceLibraryCode/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.h:205:27: Unimplemented pure virtual method 'createDropShadowerForComponent' in 'SynthLookAndFeel'

I can post the SynthLookAndFeel class if you'd like, but again, this error was caused by the 2.1.7 update, with no code changes on my end. Is there something new going on with the LookAndFeel class in this most recent update that I need to compensate for?


#2

This is probably due to the recent LookAndFeel changes.


#3

My bad, should've looked there first. Thanks for pointing that out. I changed LookAndFeel to LookAndFeel_V2 and everything works fine.


#4

Can an abstract error really count as a real error :)