| @@ -43,6 +43,7 @@ public: | |||
| : CoordinatePropertyComponent (document_, name, | |||
| Value (new CoordExtractor (coordValue_, type_)), | |||
| type_ == left || type_ == right), | |||
| document (document_), | |||
| type (type_), | |||
| compState (compState_) | |||
| { | |||
| @@ -133,6 +134,7 @@ public: | |||
| } | |||
| private: | |||
| ComponentDocument& document; | |||
| Type type; | |||
| ValueTree compState; | |||
| @@ -164,9 +166,9 @@ ComponentTypeHandler::~ComponentTypeHandler() | |||
| { | |||
| } | |||
| Value ComponentTypeHandler::getValue (const var::identifier& name, ValueTree& state, ComponentDocument& document) const | |||
| Value ComponentTypeHandler::getValue (const var::identifier& name_, ValueTree& state, ComponentDocument& document) const | |||
| { | |||
| return state.getPropertyAsValue (name, document.getUndoManager()); | |||
| return state.getPropertyAsValue (name_, document.getUndoManager()); | |||
| } | |||
| void ComponentTypeHandler::updateComponent (ComponentDocument& document, Component* comp, const ValueTree& state) | |||
| @@ -186,7 +188,7 @@ void ComponentTypeHandler::updateComponent (ComponentDocument& document, Compone | |||
| void ComponentTypeHandler::initialiseNewItem (ComponentDocument& document, ValueTree& state) | |||
| { | |||
| state.setProperty (ComponentDocument::compNameProperty, String::empty, 0); | |||
| state.setProperty (ComponentDocument::memberNameProperty, document.getNonExistentMemberName (getMemberNameRoot()), 0); | |||
| state.setProperty (ComponentDocument::memberNameProperty, document.getNonexistentMemberName (getMemberNameRoot()), 0); | |||
| const Rectangle<int> bounds (getDefaultSize().withPosition (Point<int> (Random::getSystemRandom().nextInt (100) + 100, | |||
| Random::getSystemRandom().nextInt (100) + 100))); | |||
| @@ -202,10 +204,9 @@ class CompMemberNameValueSource : public Value::ValueSource, | |||
| public Value::Listener | |||
| { | |||
| public: | |||
| CompMemberNameValueSource (ComponentDocument& document_, const ValueTree& state_) | |||
| : sourceValue (state_.getPropertyAsValue (ComponentDocument::memberNameProperty, document_.getUndoManager())), | |||
| document (document_), | |||
| state (state_) | |||
| CompMemberNameValueSource (ComponentDocument& document_, const ValueTree& state) | |||
| : sourceValue (state.getPropertyAsValue (ComponentDocument::memberNameProperty, document_.getUndoManager())), | |||
| document (document_) | |||
| { | |||
| sourceValue.addListener (this); | |||
| } | |||
| @@ -217,21 +218,21 @@ public: | |||
| void setValue (const var& newValue) | |||
| { | |||
| String newVal (newValue.toString()); | |||
| //xxx check for uniqueness + rename any coords that use the name.. | |||
| if (newValue == sourceValue) | |||
| return; | |||
| newVal = makeValidCppIdentifier (newVal, false, true, false); | |||
| const String name (document.getNonexistentMemberName (newValue)); | |||
| if (sourceValue != newVal) | |||
| sourceValue = newVal; | |||
| if (sourceValue != name) | |||
| { | |||
| document.renameAnchor (sourceValue.toString(), name); | |||
| sourceValue = name; | |||
| } | |||
| } | |||
| private: | |||
| Value sourceValue; | |||
| ComponentDocument& document; | |||
| ValueTree state; | |||
| CompMemberNameValueSource (const CompMemberNameValueSource&); | |||
| const CompMemberNameValueSource& operator= (const CompMemberNameValueSource&); | |||
| @@ -45,13 +45,29 @@ public: | |||
| { | |||
| } | |||
| void setDetails (const String& memberName, const String& className) | |||
| { | |||
| const String name (memberName + " (" + className + ")"); | |||
| if (name != getName()) | |||
| { | |||
| setName (name); | |||
| repaint(); | |||
| } | |||
| } | |||
| void paint (Graphics& g) | |||
| { | |||
| g.fillAll (Colours::white.withAlpha (0.2f)); | |||
| g.setColour (Colours::grey); | |||
| g.drawRect (getLocalBounds()); | |||
| g.drawLine (0.5f, 0.5f, getWidth() - 0.5f, getHeight() - 0.5f); | |||
| g.drawLine (0.5f, getHeight() - 0.5f, getWidth() - 0.5f, 0.5f); | |||
| g.setColour (Colours::black); | |||
| g.setFont (11.0f); | |||
| g.drawFittedText (getName(), 2, 2, getWidth() - 4, getHeight() - 4, Justification::centredTop, 2); | |||
| } | |||
| }; | |||
| @@ -61,14 +77,21 @@ public: | |||
| void update (ComponentDocument& document, Component* comp, const ValueTree& state) | |||
| { | |||
| static_cast<PlaceholderComp*> (comp)->setDetails (state [ComponentDocument::memberNameProperty], | |||
| state ["class"]); | |||
| } | |||
| void initialiseNew (ComponentDocument& document, ValueTree& state) | |||
| { | |||
| state.setProperty ("class", "Component", 0); | |||
| } | |||
| void createProperties (ComponentDocument& document, ValueTree& state, Array <PropertyComponent*>& props) | |||
| { | |||
| addFocusOrderProperty (document, state, props); | |||
| props.add (new TextPropertyComponent (getValue ("class", state, document), "Class", 256, false)); | |||
| props.getLast()->setTooltip ("The class that this component is an instance of."); | |||
| } | |||
| }; | |||
| @@ -221,22 +221,6 @@ static const String getIncludeFileCode (StringArray files) | |||
| return s; | |||
| } | |||
| //============================================================================== | |||
| static bool getUserSection (const StringArray& lines, const String& tag, StringArray& resultLines) | |||
| { | |||
| const int start = indexOfLineStartingWith (lines, "//[" + tag + "]", 0); | |||
| if (start < 0) | |||
| return false; | |||
| const int end = indexOfLineStartingWith (lines, "//[/" + tag + "]", start + 1); | |||
| for (int i = start + 1; i < end; ++i) | |||
| resultLines.add (lines [i]); | |||
| return true; | |||
| } | |||
| //============================================================================== | |||
| static void replaceTemplate (String& text, const String& itemName, const String& value) | |||
| { | |||
| @@ -97,6 +97,9 @@ public: | |||
| private: | |||
| CodeDocument* const doc; | |||
| CodeDocumentRef (const CodeDocumentRef&); | |||
| CodeDocumentRef& operator= (const CodeDocumentRef&); | |||
| }; | |||
| //============================================================================== | |||
| @@ -124,6 +127,9 @@ public: | |||
| CustomCodeList& customCode; | |||
| StringArray lines; | |||
| int i; | |||
| Iterator (const Iterator&); | |||
| Iterator& operator= (const Iterator&); | |||
| }; | |||
| private: | |||
| @@ -412,6 +412,33 @@ bool ComponentDocument::setCoordsFor (ValueTree& state, const RectangleCoordinat | |||
| return true; | |||
| } | |||
| const String ComponentDocument::getNonexistentMemberName (String name) | |||
| { | |||
| String n (makeValidCppIdentifier (name, false, true, false)); | |||
| int suffix = 2; | |||
| while (markersX->getMarkerNamed (n).isValid() || markersY->getMarkerNamed (n).isValid() | |||
| || getComponentWithMemberName (n).isValid()) | |||
| n = n.trimCharactersAtEnd ("0123456789") + String (suffix++); | |||
| return n; | |||
| } | |||
| void ComponentDocument::renameAnchor (const String& oldName, const String& newName) | |||
| { | |||
| int i; | |||
| for (i = getNumComponents(); --i >= 0;) | |||
| { | |||
| ValueTree v (getComponent(i)); | |||
| RectangleCoordinates coords (getCoordsFor (v)); | |||
| coords.renameAnchorIfUsed (oldName, newName); | |||
| setCoordsFor (v, coords); | |||
| } | |||
| markersX->renameAnchorInMarkers (oldName, newName); | |||
| markersY->renameAnchorInMarkers (oldName, newName); | |||
| } | |||
| void ComponentDocument::addMarkerMenuItem (int i, const Coordinate& coord, const String& name, PopupMenu& menu, | |||
| bool isAnchor1, const String& fullCoordName) | |||
| { | |||
| @@ -555,24 +582,6 @@ void ComponentDocument::removeComponent (const ValueTree& state) | |||
| getComponentGroup().removeChild (state, getUndoManager()); | |||
| } | |||
| const String ComponentDocument::getNonExistentMemberName (String suggestedName) | |||
| { | |||
| suggestedName = makeValidCppIdentifier (suggestedName, false, true, false); | |||
| const String original (suggestedName); | |||
| int num = 1; | |||
| while (getComponentWithMemberName (suggestedName).isValid()) | |||
| { | |||
| suggestedName = original; | |||
| while (String ("0123456789").containsChar (suggestedName.getLastCharacter())) | |||
| suggestedName = suggestedName.dropLastCharacters (1); | |||
| suggestedName << num++; | |||
| } | |||
| return suggestedName; | |||
| } | |||
| //============================================================================== | |||
| ComponentDocument::MarkerList::MarkerList (ComponentDocument& document_, const bool isX_) | |||
| : MarkerListBase (document_.getRoot().getChildWithName (isX_ ? markersGroupXTag : markersGroupYTag), isX_), | |||
| @@ -589,19 +598,24 @@ UndoManager* ComponentDocument::MarkerList::getUndoManager() const | |||
| const String ComponentDocument::MarkerList::getNonexistentMarkerName (const String& name) | |||
| { | |||
| return document.getNonexistentMarkerName (name); | |||
| return document.getNonexistentMemberName (name); | |||
| } | |||
| void ComponentDocument::MarkerList::renameAnchor (const String& oldName, const String& newName) | |||
| { | |||
| document.renameAnchor (oldName, newName); | |||
| } | |||
| const Coordinate ComponentDocument::MarkerList::findMarker (const String& name, bool isHorizontal) const | |||
| const Coordinate ComponentDocument::MarkerList::findMarker (const String& name, bool isHorizontal_) const | |||
| { | |||
| if (isHorizontal == isX) | |||
| if (isHorizontal_ == isX) | |||
| { | |||
| if (name == Coordinate::parentRightMarkerName) return Coordinate ((double) document.getCanvasWidth().getValue(), isHorizontal); | |||
| if (name == Coordinate::parentBottomMarkerName) return Coordinate ((double) document.getCanvasHeight().getValue(), isHorizontal); | |||
| if (name == Coordinate::parentRightMarkerName) return Coordinate ((double) document.getCanvasWidth().getValue(), isX); | |||
| if (name == Coordinate::parentBottomMarkerName) return Coordinate ((double) document.getCanvasHeight().getValue(), isX); | |||
| const ValueTree marker (document.getMarkerList (isHorizontal).getMarkerNamed (name)); | |||
| const ValueTree marker (document.getMarkerList (isX).getMarkerNamed (name)); | |||
| if (marker.isValid()) | |||
| return document.getMarkerList (isHorizontal).getCoordinate (marker); | |||
| return document.getMarkerList (isX).getCoordinate (marker); | |||
| } | |||
| return Coordinate (isX); | |||
| @@ -643,69 +657,25 @@ const String ComponentDocument::MarkerList::getChosenMarkerMenuItem (const Coord | |||
| return String::empty; | |||
| } | |||
| //============================================================================== | |||
| class MarkerPositionComponent : public CoordinatePropertyComponent | |||
| { | |||
| public: | |||
| //============================================================================== | |||
| MarkerPositionComponent (ComponentDocument& document_, const String& name, const ValueTree& markerState_, | |||
| const Value& coordValue_, bool isHorizontal_) | |||
| : CoordinatePropertyComponent (document_, name, coordValue_, isHorizontal_), | |||
| markerState (markerState_) | |||
| { | |||
| } | |||
| ~MarkerPositionComponent() | |||
| { | |||
| } | |||
| const String pickMarker (TextButton* button, const String& currentMarker, bool isAnchor1) | |||
| { | |||
| Coordinate coord (getCoordinate()); | |||
| PopupMenu m; | |||
| document.getMarkerList (coord.isHorizontal()) | |||
| .addMarkerMenuItems (markerState, coord, m, isAnchor1); | |||
| const int r = m.showAt (button); | |||
| if (r > 0) | |||
| return document.getMarkerList (coord.isHorizontal()).getChosenMarkerMenuItem (coord, r); | |||
| return String::empty; | |||
| } | |||
| private: | |||
| ValueTree markerState; | |||
| }; | |||
| //============================================================================== | |||
| bool ComponentDocument::MarkerList::createProperties (Array <PropertyComponent*>& props, const String& itemId) | |||
| { | |||
| ValueTree marker (group.getChildWithProperty (idProperty, itemId)); | |||
| if (marker.isValid()) | |||
| { | |||
| props.add (new TextPropertyComponent (getNameAsValue (marker), "Marker Name", 256, false)); | |||
| props.add (new MarkerPositionComponent (document, "Position", marker, | |||
| marker.getPropertyAsValue (getMarkerPosProperty(), document.getUndoManager()), | |||
| contains (marker))); | |||
| props.add (new TextPropertyComponent (Value (new MarkerListBase::MarkerNameValueSource (this, getNameAsValue (marker))), | |||
| "Marker Name", 256, false)); | |||
| props.add (new MarkerListBase::PositionPropertyComponent (document, *this, "Position", marker, | |||
| marker.getPropertyAsValue (getMarkerPosProperty(), document.getUndoManager()))); | |||
| return true; | |||
| } | |||
| return false; | |||
| } | |||
| const String ComponentDocument::getNonexistentMarkerName (const String& name) | |||
| { | |||
| String n (makeValidCppIdentifier (name, false, true, false)); | |||
| int suffix = 2; | |||
| while (markersX->getMarkerNamed (n).isValid() || markersY->getMarkerNamed (n).isValid()) | |||
| n = n.trimCharactersAtEnd ("0123456789") + String (suffix++); | |||
| return n; | |||
| } | |||
| //============================================================================== | |||
| bool ComponentDocument::createItemProperties (Array <PropertyComponent*>& props, const String& itemId) | |||
| { | |||
| @@ -62,7 +62,7 @@ public: | |||
| void createClassProperties (Array <PropertyComponent*>& props); | |||
| const String getNonExistentMemberName (String suggestedName); | |||
| const String getNonexistentMemberName (String suggestedName); | |||
| //============================================================================== | |||
| int getNumComponents() const; | |||
| @@ -77,6 +77,7 @@ public: | |||
| void removeComponent (const ValueTree& state); | |||
| const RectangleCoordinates getCoordsFor (const ValueTree& componentState) const; | |||
| bool setCoordsFor (ValueTree& componentState, const RectangleCoordinates& newSize); | |||
| void renameAnchor (const String& oldName, const String& newName); | |||
| // for Coordinate::MarkerResolver: | |||
| const Coordinate findMarker (const String& name, bool isHorizontal) const; | |||
| @@ -99,8 +100,11 @@ public: | |||
| void addMarkerMenuItems (const ValueTree& markerState, const Coordinate& coord, PopupMenu& menu, bool isAnchor1); | |||
| const String getChosenMarkerMenuItem (const Coordinate& coord, int itemId) const; | |||
| UndoManager* getUndoManager() const; | |||
| void renameAnchor (const String& oldName, const String& newName); | |||
| const String getNonexistentMarkerName (const String& name); | |||
| ComponentDocument& getDocument() throw() { return document; } | |||
| private: | |||
| ComponentDocument& document; | |||
| @@ -112,8 +116,6 @@ public: | |||
| MarkerList& getMarkerListY() const { return *markersY; } | |||
| MarkerList& getMarkerList (bool isX) const { return isX ? *markersX : *markersY; } | |||
| const String getNonexistentMarkerName (const String& name); | |||
| //============================================================================== | |||
| void createItemProperties (Array <PropertyComponent*>& props, const StringArray& selectedItemIds); | |||
| @@ -307,16 +307,16 @@ DrawableDocument::MarkerList::MarkerList (DrawableDocument& document_, bool isX_ | |||
| { | |||
| } | |||
| const Coordinate DrawableDocument::MarkerList::findMarker (const String& name, bool isHorizontal) const | |||
| const Coordinate DrawableDocument::MarkerList::findMarker (const String& name, bool isHorizontal_) const | |||
| { | |||
| if (isHorizontal == isX) | |||
| if (isHorizontal_ == isX) | |||
| { | |||
| if (name == Coordinate::parentRightMarkerName) return Coordinate ((double) document.getCanvasWidth().getValue(), isHorizontal); | |||
| if (name == Coordinate::parentBottomMarkerName) return Coordinate ((double) document.getCanvasHeight().getValue(), isHorizontal); | |||
| if (name == Coordinate::parentRightMarkerName) return Coordinate ((double) document.getCanvasWidth().getValue(), isX); | |||
| if (name == Coordinate::parentBottomMarkerName) return Coordinate ((double) document.getCanvasHeight().getValue(), isX); | |||
| const ValueTree marker (document.getMarkerList (isHorizontal).getMarkerNamed (name)); | |||
| const ValueTree marker (document.getMarkerList (isX).getMarkerNamed (name)); | |||
| if (marker.isValid()) | |||
| return document.getMarkerList (isHorizontal).getCoordinate (marker); | |||
| return document.getMarkerList (isX).getCoordinate (marker); | |||
| } | |||
| return Coordinate (isX); | |||
| @@ -404,3 +404,12 @@ const String DrawableDocument::getNonexistentMarkerName (const String& name) | |||
| return n; | |||
| } | |||
| void DrawableDocument::MarkerList::renameAnchor (const String& oldName, const String& newName) | |||
| { | |||
| document.renameAnchor (oldName, newName); | |||
| } | |||
| void DrawableDocument::renameAnchor (const String& oldName, const String& newName) | |||
| { | |||
| } | |||
| @@ -75,6 +75,7 @@ public: | |||
| const String getChosenMarkerMenuItem (const Coordinate& coord, int itemId) const; | |||
| UndoManager* getUndoManager() const; | |||
| const String getNonexistentMarkerName (const String& name); | |||
| void renameAnchor (const String& oldName, const String& newName); | |||
| private: | |||
| DrawableDocument& document; | |||
| @@ -88,6 +89,7 @@ public: | |||
| MarkerList& getMarkerList (bool isX) const { return isX ? *markersX : *markersY; } | |||
| const String getNonexistentMarkerName (const String& name); | |||
| void renameAnchor (const String& oldName, const String& newName); | |||
| //============================================================================== | |||
| void valueTreePropertyChanged (ValueTree& tree, const var::identifier& name); | |||
| @@ -237,10 +237,10 @@ private: | |||
| } | |||
| } | |||
| XmlElement* createGroup (const String& name, XmlElement& parent) | |||
| XmlElement* createGroup (const String& groupName, XmlElement& parent) | |||
| { | |||
| XmlElement* filter = parent.createNewChildElement ("Filter"); | |||
| filter->setAttribute ("Name", name); | |||
| filter->setAttribute ("Name", groupName); | |||
| return filter; | |||
| } | |||
| @@ -409,10 +409,10 @@ private: | |||
| return searchPaths; | |||
| } | |||
| XmlElement* createToolElement (XmlElement& parent, const String& name) const | |||
| XmlElement* createToolElement (XmlElement& parent, const String& toolName) const | |||
| { | |||
| XmlElement* const e = parent.createNewChildElement ("Tool"); | |||
| e->setAttribute ("Name", name); | |||
| e->setAttribute ("Name", toolName); | |||
| return e; | |||
| } | |||
| @@ -368,57 +368,57 @@ private: | |||
| const StringArray getProjectSettings (const Project::BuildConfiguration& config) | |||
| { | |||
| StringArray settings; | |||
| settings.add ("ALWAYS_SEARCH_USER_PATHS = NO"); | |||
| settings.add ("GCC_C_LANGUAGE_STANDARD = c99"); | |||
| settings.add ("GCC_WARN_ABOUT_RETURN_TYPE = YES"); | |||
| settings.add ("GCC_WARN_CHECK_SWITCH_STATEMENTS = YES"); | |||
| settings.add ("GCC_WARN_UNUSED_VARIABLE = YES"); | |||
| settings.add ("GCC_WARN_MISSING_PARENTHESES = YES"); | |||
| settings.add ("GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES"); | |||
| settings.add ("GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES"); | |||
| settings.add ("GCC_MODEL_TUNING = G5"); | |||
| settings.add ("GCC_INLINES_ARE_PRIVATE_EXTERN = YES"); | |||
| settings.add ("ZERO_LINK = NO"); | |||
| settings.add ("DEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\""); | |||
| settings.add ("PRODUCT_NAME = \"" + config.getTargetBinaryName().toString() + "\""); | |||
| return settings; | |||
| StringArray s; | |||
| s.add ("ALWAYS_SEARCH_USER_PATHS = NO"); | |||
| s.add ("GCC_C_LANGUAGE_STANDARD = c99"); | |||
| s.add ("GCC_WARN_ABOUT_RETURN_TYPE = YES"); | |||
| s.add ("GCC_WARN_CHECK_SWITCH_STATEMENTS = YES"); | |||
| s.add ("GCC_WARN_UNUSED_VARIABLE = YES"); | |||
| s.add ("GCC_WARN_MISSING_PARENTHESES = YES"); | |||
| s.add ("GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES"); | |||
| s.add ("GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES"); | |||
| s.add ("GCC_MODEL_TUNING = G5"); | |||
| s.add ("GCC_INLINES_ARE_PRIVATE_EXTERN = YES"); | |||
| s.add ("ZERO_LINK = NO"); | |||
| s.add ("DEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\""); | |||
| s.add ("PRODUCT_NAME = \"" + config.getTargetBinaryName().toString() + "\""); | |||
| return s; | |||
| } | |||
| const StringArray getTargetSettings (const Project::BuildConfiguration& config) | |||
| { | |||
| StringArray settings; | |||
| settings.add ("ARCHS = \"$(ARCHS_STANDARD_32_BIT)\""); | |||
| settings.add ("PREBINDING = NO"); | |||
| settings.add ("HEADER_SEARCH_PATHS = \"" + getHeaderSearchPaths (config).joinIntoString (" ") + " $(inherited)\""); | |||
| settings.add ("GCC_OPTIMIZATION_LEVEL = " + config.getGCCOptimisationFlag()); | |||
| settings.add ("INFOPLIST_FILE = " + infoPlistFile.getFileName()); | |||
| StringArray s; | |||
| s.add ("ARCHS = \"$(ARCHS_STANDARD_32_BIT)\""); | |||
| s.add ("PREBINDING = NO"); | |||
| s.add ("HEADER_SEARCH_PATHS = \"" + getHeaderSearchPaths (config).joinIntoString (" ") + " $(inherited)\""); | |||
| s.add ("GCC_OPTIMIZATION_LEVEL = " + config.getGCCOptimisationFlag()); | |||
| s.add ("INFOPLIST_FILE = " + infoPlistFile.getFileName()); | |||
| if (getExtraCompilerFlags().toString().isNotEmpty()) | |||
| settings.add ("OTHER_CPLUSPLUSFLAGS = " + getExtraCompilerFlags().toString()); | |||
| s.add ("OTHER_CPLUSPLUSFLAGS = " + getExtraCompilerFlags().toString()); | |||
| switch ((int) project.getProjectType().getValue()) | |||
| { | |||
| case Project::application: | |||
| settings.add ("INSTALL_PATH = \"$(HOME)/Applications\""); | |||
| s.add ("INSTALL_PATH = \"$(HOME)/Applications\""); | |||
| break; | |||
| case Project::commandLineApp: | |||
| break; | |||
| case Project::audioPlugin: | |||
| settings.add ("LIBRARY_STYLE = Bundle"); | |||
| settings.add ("INSTALL_PATH = \"$(HOME)/Library/Audio/Plug-Ins/Components/\""); | |||
| settings.add ("WRAPPER_EXTENSION = " + getAudioPluginBundleExtension()); | |||
| settings.add ("GENERATE_PKGINFO_FILE = YES"); | |||
| settings.add ("OTHER_REZFLAGS = \"-d ppc_$ppc -d i386_$i386 -d ppc64_$ppc64 -d x86_64_$x86_64" | |||
| " -I /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers" | |||
| " -I \\\"$(DEVELOPER_DIR)/Extras/CoreAudio/AudioUnits/AUPublic/AUBase\\\"\""); | |||
| s.add ("LIBRARY_STYLE = Bundle"); | |||
| s.add ("INSTALL_PATH = \"$(HOME)/Library/Audio/Plug-Ins/Components/\""); | |||
| s.add ("WRAPPER_EXTENSION = " + getAudioPluginBundleExtension()); | |||
| s.add ("GENERATE_PKGINFO_FILE = YES"); | |||
| s.add ("OTHER_REZFLAGS = \"-d ppc_$ppc -d i386_$i386 -d ppc64_$ppc64 -d x86_64_$x86_64" | |||
| " -I /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers" | |||
| " -I \\\"$(DEVELOPER_DIR)/Extras/CoreAudio/AudioUnits/AUPublic/AUBase\\\"\""); | |||
| break; | |||
| case Project::browserPlugin: | |||
| settings.add ("LIBRARY_STYLE = Bundle"); | |||
| settings.add ("INSTALL_PATH = \"/Library/Internet Plug-Ins/\""); | |||
| s.add ("LIBRARY_STYLE = Bundle"); | |||
| s.add ("INSTALL_PATH = \"/Library/Internet Plug-Ins/\""); | |||
| break; | |||
| case Project::library: | |||
| @@ -427,12 +427,12 @@ private: | |||
| RelativePath binaryPath (config.getTargetBinaryRelativePath().toString(), RelativePath::projectFolder); | |||
| binaryPath = binaryPath.rebased (project.getFile().getParentDirectory(), getTargetFolder(), RelativePath::buildTargetFolder); | |||
| settings.add ("DSTROOT = " + sanitisePath (binaryPath.toUnixStyle())); | |||
| settings.add ("SYMROOT = " + sanitisePath (binaryPath.toUnixStyle())); | |||
| s.add ("DSTROOT = " + sanitisePath (binaryPath.toUnixStyle())); | |||
| s.add ("SYMROOT = " + sanitisePath (binaryPath.toUnixStyle())); | |||
| } | |||
| settings.add ("CONFIGURATION_BUILD_DIR = \"$(BUILD_DIR)\""); | |||
| settings.add ("DEPLOYMENT_LOCATION = YES"); | |||
| s.add ("CONFIGURATION_BUILD_DIR = \"$(BUILD_DIR)\""); | |||
| s.add ("DEPLOYMENT_LOCATION = YES"); | |||
| break; | |||
| default: | |||
| @@ -441,27 +441,27 @@ private: | |||
| if (iPhone) | |||
| { | |||
| settings.add ("SDKROOT = iphonesimulator3.0"); | |||
| s.add ("SDKROOT = iphonesimulator3.0"); | |||
| } | |||
| else | |||
| { | |||
| switch ((int) config.getMacSDKVersion().getValue()) | |||
| { | |||
| case 2: settings.add ("SDKROOT = macosx10.4"); settings.add ("GCC_VERSION = 4.0"); break; | |||
| case 3: settings.add ("SDKROOT = macosx10.5"); break; | |||
| case 4: settings.add ("SDKROOT = macosx10.6"); break; | |||
| case 2: s.add ("SDKROOT = macosx10.4"); s.add ("GCC_VERSION = 4.0"); break; | |||
| case 3: s.add ("SDKROOT = macosx10.5"); break; | |||
| case 4: s.add ("SDKROOT = macosx10.6"); break; | |||
| default: break; | |||
| } | |||
| switch ((int) config.getMacCompatibilityVersion().getValue()) | |||
| { | |||
| case 2: settings.add ("MACOSX_DEPLOYMENT_TARGET = 10.4"); break; | |||
| case 3: settings.add ("MACOSX_DEPLOYMENT_TARGET = 10.5"); break; | |||
| case 4: settings.add ("MACOSX_DEPLOYMENT_TARGET = 10.6"); break; | |||
| case 2: s.add ("MACOSX_DEPLOYMENT_TARGET = 10.4"); break; | |||
| case 3: s.add ("MACOSX_DEPLOYMENT_TARGET = 10.5"); break; | |||
| case 4: s.add ("MACOSX_DEPLOYMENT_TARGET = 10.6"); break; | |||
| default: break; | |||
| } | |||
| settings.add ("MACOSX_DEPLOYMENT_TARGET_ppc = 10.4"); | |||
| s.add ("MACOSX_DEPLOYMENT_TARGET_ppc = 10.4"); | |||
| } | |||
| { | |||
| @@ -469,7 +469,7 @@ private: | |||
| getLinkerFlags (config, linkerFlags, librarySearchPaths); | |||
| if (linkerFlags.size() > 0) | |||
| settings.add ("OTHER_LDFLAGS = \"" + linkerFlags.joinIntoString (" ") + "\""); | |||
| s.add ("OTHER_LDFLAGS = \"" + linkerFlags.joinIntoString (" ") + "\""); | |||
| if (librarySearchPaths.size() > 0) | |||
| { | |||
| @@ -478,7 +478,7 @@ private: | |||
| for (int i = 0; i < librarySearchPaths.size(); ++i) | |||
| libPaths += ", \"\\\"" + librarySearchPaths[i] + "\\\"\""; | |||
| settings.add (libPaths + ")"); | |||
| s.add (libPaths + ")"); | |||
| } | |||
| } | |||
| @@ -488,17 +488,17 @@ private: | |||
| { | |||
| defines.add ("_DEBUG=1"); | |||
| defines.add ("DEBUG=1 "); | |||
| settings.add ("ONLY_ACTIVE_ARCH = YES"); | |||
| settings.add ("COPY_PHASE_STRIP = NO"); | |||
| settings.add ("GCC_DYNAMIC_NO_PIC = NO"); | |||
| settings.add ("GCC_ENABLE_FIX_AND_CONTINUE = YES"); | |||
| s.add ("ONLY_ACTIVE_ARCH = YES"); | |||
| s.add ("COPY_PHASE_STRIP = NO"); | |||
| s.add ("GCC_DYNAMIC_NO_PIC = NO"); | |||
| s.add ("GCC_ENABLE_FIX_AND_CONTINUE = YES"); | |||
| } | |||
| else | |||
| { | |||
| defines.add ("_NDEBUG=1"); | |||
| defines.add ("NDEBUG=1 "); | |||
| settings.add ("GCC_GENERATE_DEBUGGING_SYMBOLS = NO"); | |||
| settings.add ("GCC_SYMBOLS_PRIVATE_EXTERN = YES"); | |||
| s.add ("GCC_GENERATE_DEBUGGING_SYMBOLS = NO"); | |||
| s.add ("GCC_SYMBOLS_PRIVATE_EXTERN = YES"); | |||
| } | |||
| { | |||
| @@ -513,10 +513,10 @@ private: | |||
| for (int i = defines.size(); --i >= 0;) | |||
| defines.set (i, defines[i].quoted()); | |||
| settings.add ("GCC_PREPROCESSOR_DEFINITIONS = (" + indentList (defines, ",") + ")"); | |||
| s.add ("GCC_PREPROCESSOR_DEFINITIONS = (" + indentList (defines, ",") + ")"); | |||
| } | |||
| return settings; | |||
| return s; | |||
| } | |||
| void addFrameworks() | |||
| @@ -565,15 +565,15 @@ private: | |||
| for (int j = 0; j < o.getNumProperties(); ++j) | |||
| { | |||
| const var::identifier name (o.getPropertyName(j)); | |||
| String val (o.getProperty (name).toString()); | |||
| const var::identifier propertyName (o.getPropertyName(j)); | |||
| String val (o.getProperty (propertyName).toString()); | |||
| if (val.isEmpty() || (val.containsAnyOf (" \t;<>()=,-\r\n") | |||
| && ! (val.trimStart().startsWithChar ('(') | |||
| || val.trimStart().startsWithChar ('{')))) | |||
| val = val.quoted(); | |||
| output << name.name << " = " << val << "; "; | |||
| output << propertyName.name << " = " << val << "; "; | |||
| } | |||
| output << "};\n"; | |||
| @@ -699,12 +699,12 @@ private: | |||
| frameworkFileIDs.add (fileRefID); | |||
| } | |||
| void addGroup (const String& groupID, const String& name, const StringArray& childIDs) | |||
| void addGroup (const String& groupID, const String& groupName, const StringArray& childIDs) | |||
| { | |||
| ValueTree* v = new ValueTree (groupID); | |||
| v->setProperty ("isa", "PBXGroup", 0); | |||
| v->setProperty ("children", "(" + indentList (childIDs, ",") + " )", 0); | |||
| v->setProperty ("name", name, 0); | |||
| v->setProperty ("name", groupName, 0); | |||
| v->setProperty ("sourceTree", "<group>", 0); | |||
| groups.add (v); | |||
| } | |||
| @@ -782,21 +782,21 @@ private: | |||
| pbxFileReferences.add (v); | |||
| } | |||
| void addTargetConfig (const String& name, const StringArray& settings) | |||
| void addTargetConfig (const String& configName, const StringArray& buildSettings) | |||
| { | |||
| ValueTree* v = new ValueTree (createID ("targetconfigid_" + name)); | |||
| ValueTree* v = new ValueTree (createID ("targetconfigid_" + configName)); | |||
| v->setProperty ("isa", "XCBuildConfiguration", 0); | |||
| v->setProperty ("buildSettings", "{" + indentList (settings, ";") + " }", 0); | |||
| v->setProperty ("name", name, 0); | |||
| v->setProperty ("buildSettings", "{" + indentList (buildSettings, ";") + " }", 0); | |||
| v->setProperty ("name", configName, 0); | |||
| targetConfigs.add (v); | |||
| } | |||
| void addProjectConfig (const String& name, const StringArray& settings) | |||
| void addProjectConfig (const String& configName, const StringArray& buildSettings) | |||
| { | |||
| ValueTree* v = new ValueTree (createID ("projectconfigid_" + name)); | |||
| ValueTree* v = new ValueTree (createID ("projectconfigid_" + configName)); | |||
| v->setProperty ("isa", "XCBuildConfiguration", 0); | |||
| v->setProperty ("buildSettings", "{" + indentList (settings, ";") + " }", 0); | |||
| v->setProperty ("name", name, 0); | |||
| v->setProperty ("buildSettings", "{" + indentList (buildSettings, ";") + " }", 0); | |||
| v->setProperty ("name", configName, 0); | |||
| projectConfigs.add (v); | |||
| } | |||
| @@ -910,11 +910,11 @@ private: | |||
| return createID (path.toUnixStyle()); | |||
| } | |||
| const String createID (const String& name) const | |||
| const String createID (const String& rootString) const | |||
| { | |||
| static const char digits[] = "0123456789ABCDEF"; | |||
| char n[24]; | |||
| Random ran (projectIDSalt + hashCode64 (name)); | |||
| Random ran (projectIDSalt + hashCode64 (rootString)); | |||
| for (int i = 0; i < numElementsInArray (n); ++i) | |||
| n[i] = digits [ran.nextInt (16)]; | |||
| @@ -62,7 +62,7 @@ public: | |||
| const File getTargetFolder() const; | |||
| const ValueTree& getSettings() const { return settings; } | |||
| Value getSetting (const var::identifier& name) const { return settings.getPropertyAsValue (name, project.getUndoManagerFor (settings)); } | |||
| Value getSetting (const var::identifier& name_) const { return settings.getPropertyAsValue (name_, project.getUndoManagerFor (settings)); } | |||
| Value getJuceFolder() const { return getSetting ("juceFolder"); } | |||
| Value getTargetLocation() const { return getSetting ("targetFolder"); } | |||
| @@ -95,7 +95,7 @@ protected: | |||
| const Array<RelativePath> getVSTFilesRequired() const; | |||
| const String getLibbedFilename (String name) const | |||
| static const String getLibbedFilename (String name) | |||
| { | |||
| if (! name.startsWith ("lib")) | |||
| name = "lib" + name; | |||
| @@ -494,12 +494,12 @@ private: | |||
| if (numJuceSourceFiles > 0) | |||
| { | |||
| for (int i = 0; i <= project.getNumSeparateAmalgamatedFiles(); ++i) | |||
| for (int j = 0; j <= project.getNumSeparateAmalgamatedFiles(); ++j) | |||
| { | |||
| const File sourceWrapperCpp (getSourceWrapperCpp (i)); | |||
| const File sourceWrapperCpp (getSourceWrapperCpp (j)); | |||
| const File sourceWrapperMM (sourceWrapperCpp.withFileExtension (".mm")); | |||
| if ((i == 0 && numJuceSourceFiles == 1) || (i != 0 && numJuceSourceFiles > 1)) | |||
| if ((j == 0 && numJuceSourceFiles == 1) || (j != 0 && numJuceSourceFiles > 1)) | |||
| { | |||
| if (exporter->usesMMFiles()) | |||
| exporter->juceWrapperFiles.add (RelativePath (sourceWrapperMM, targetFolder, RelativePath::buildTargetFolder)); | |||
| @@ -28,10 +28,10 @@ | |||
| //============================================================================== | |||
| SourceCodeEditor::SourceCodeEditor (OpenDocumentManager::Document* document, | |||
| SourceCodeEditor::SourceCodeEditor (OpenDocumentManager::Document* document_, | |||
| CodeDocument& codeDocument, | |||
| CodeTokeniser* const codeTokeniser) | |||
| : DocumentEditorComponent (document) | |||
| : DocumentEditorComponent (document_) | |||
| { | |||
| addAndMakeVisible (editor = new CodeEditorComponent (codeDocument, codeTokeniser)); | |||
| @@ -120,9 +120,9 @@ private: | |||
| //============================================================================== | |||
| ComponentEditor::ComponentEditor (OpenDocumentManager::Document* document, | |||
| ComponentEditor::ComponentEditor (OpenDocumentManager::Document* document_, | |||
| Project* project_, ComponentDocument* componentDocument_) | |||
| : DocumentEditorComponent (document), | |||
| : DocumentEditorComponent (document_), | |||
| project (project_), | |||
| componentDocument (componentDocument_), | |||
| classInfoHolder (0), | |||
| @@ -89,6 +89,9 @@ public: | |||
| private: | |||
| ComponentEditor& editor; | |||
| ComponentEditorToolbarFactory (const ComponentEditorToolbarFactory&); | |||
| ComponentEditorToolbarFactory& operator= (const ComponentEditorToolbarFactory&); | |||
| }; | |||
| @@ -164,7 +164,7 @@ namespace ComponentEditorTreeView | |||
| void refreshSubItems() | |||
| { | |||
| ScopedPointer <XmlElement> openness (getOpennessState()); | |||
| ScopedPointer <XmlElement> oldOpenness (getOpennessState()); | |||
| clearSubItems(); | |||
| ComponentDocument& doc = editor.getDocument(); | |||
| @@ -173,8 +173,8 @@ namespace ComponentEditorTreeView | |||
| for (int i = 0; i < num; ++i) | |||
| addSubItem (new ComponentItem (editor, doc.getComponent (i))); | |||
| if (openness != 0) | |||
| restoreOpennessState (*openness); | |||
| if (oldOpenness != 0) | |||
| restoreOpennessState (*oldOpenness); | |||
| } | |||
| const String getDisplayName() const { return getRenamingName(); } | |||
| @@ -193,7 +193,7 @@ namespace ComponentEditorTreeView | |||
| if (editor.getSelection().getNumSelected() > 0) | |||
| { | |||
| TreeView* tree = getOwnerView(); | |||
| const ScopedPointer <XmlElement> openness (tree->getOpennessState (false)); | |||
| const ScopedPointer <XmlElement> oldOpenness (tree->getOpennessState (false)); | |||
| Array <ValueTree> selectedComps; | |||
| // scan the source tree rather than look at the selection manager, because it might | |||
| @@ -201,8 +201,8 @@ namespace ComponentEditorTreeView | |||
| getAllSelectedNodesInTree (sourceComponent, selectedComps); | |||
| insertItems (selectedComps, insertIndex); | |||
| if (openness != 0) | |||
| tree->restoreOpennessState (*openness); | |||
| if (oldOpenness != 0) | |||
| tree->restoreOpennessState (*oldOpenness); | |||
| } | |||
| } | |||
| @@ -332,14 +332,14 @@ namespace ComponentEditorTreeView | |||
| const String getItemId() const { return isX ? "markersX" : "markersY"; } | |||
| bool mightContainSubItems() { return true; } | |||
| void valueTreeChildrenChanged (ValueTree& tree) | |||
| void valueTreeChildrenChanged (ValueTree&) | |||
| { | |||
| refreshSubItems(); | |||
| } | |||
| void refreshSubItems() | |||
| { | |||
| ScopedPointer <XmlElement> openness (getOpennessState()); | |||
| ScopedPointer <XmlElement> oldOpenness (getOpennessState()); | |||
| clearSubItems(); | |||
| ComponentDocument::MarkerList& markers = editor.getDocument().getMarkerList (isX); | |||
| @@ -348,8 +348,8 @@ namespace ComponentEditorTreeView | |||
| for (int i = 0; i < num; ++i) | |||
| addSubItem (new MarkerItem (editor, markers.getMarker (i))); | |||
| if (openness != 0) | |||
| restoreOpennessState (*openness); | |||
| if (oldOpenness != 0) | |||
| restoreOpennessState (*oldOpenness); | |||
| } | |||
| const String getDisplayName() const { return getRenamingName(); } | |||
| @@ -375,15 +375,15 @@ namespace ComponentEditorTreeView | |||
| void refreshSubItems() | |||
| { | |||
| ScopedPointer <XmlElement> openness (getOpennessState()); | |||
| ScopedPointer <XmlElement> oldOpenness (getOpennessState()); | |||
| clearSubItems(); | |||
| addSubItem (new ComponentList (editor)); | |||
| addSubItem (new MarkerList (editor, true)); | |||
| addSubItem (new MarkerList (editor, false)); | |||
| if (openness != 0) | |||
| restoreOpennessState (*openness); | |||
| if (oldOpenness != 0) | |||
| restoreOpennessState (*oldOpenness); | |||
| } | |||
| const String getDisplayName() const { return getRenamingName(); } | |||
| @@ -72,10 +72,10 @@ private: | |||
| }; | |||
| //============================================================================== | |||
| DrawableEditor::DrawableEditor (OpenDocumentManager::Document* document, | |||
| DrawableEditor::DrawableEditor (OpenDocumentManager::Document* document_, | |||
| Project* project_, | |||
| DrawableDocument* drawableDocument_) | |||
| : DocumentEditorComponent (document), | |||
| : DocumentEditorComponent (document_), | |||
| project (project_), | |||
| drawableDocument (drawableDocument_) | |||
| { | |||
| @@ -86,6 +86,9 @@ public: | |||
| private: | |||
| DrawableEditor& editor; | |||
| DrawableEditorToolbarFactory (const DrawableEditorToolbarFactory&); | |||
| DrawableEditorToolbarFactory& operator= (const DrawableEditorToolbarFactory&); | |||
| }; | |||
| @@ -114,7 +114,7 @@ public: | |||
| void refreshSubItems() | |||
| { | |||
| ScopedPointer <XmlElement> openness (getOpennessState()); | |||
| ScopedPointer <XmlElement> oldOpenness (getOpennessState()); | |||
| clearSubItems(); | |||
| @@ -127,8 +127,8 @@ public: | |||
| addSubItem (item); | |||
| } | |||
| if (openness != 0) | |||
| restoreOpennessState (*openness); | |||
| if (oldOpenness != 0) | |||
| restoreOpennessState (*oldOpenness); | |||
| editor.getSelection().changed(); | |||
| } | |||
| @@ -215,10 +215,10 @@ public: | |||
| } | |||
| // Text editor listener for renaming.. | |||
| void textEditorTextChanged (TextEditor& editor) {} | |||
| void textEditorReturnKeyPressed (TextEditor& editor) { editor.exitModalState (1); } | |||
| void textEditorEscapeKeyPressed (TextEditor& editor) { editor.exitModalState (0); } | |||
| void textEditorFocusLost (TextEditor& editor) { editor.exitModalState (0); } | |||
| void textEditorTextChanged (TextEditor& textEditor) {} | |||
| void textEditorReturnKeyPressed (TextEditor& textEditor) { textEditor.exitModalState (1); } | |||
| void textEditorEscapeKeyPressed (TextEditor& textEditor) { textEditor.exitModalState (0); } | |||
| void textEditorFocusLost (TextEditor& textEditor) { textEditor.exitModalState (0); } | |||
| //============================================================================== | |||
| DrawableEditor& editor; | |||
| @@ -242,9 +242,9 @@ void ProjectTreeViewBase::deleteAllSelectedItems() | |||
| for (i = itemsToRemove.size(); --i >= 0;) | |||
| { | |||
| ProjectTreeViewBase* item = treeRootItem->findTreeViewItem (*itemsToRemove.getUnchecked(i)); | |||
| if (item != 0) | |||
| item->deleteItem(); | |||
| ProjectTreeViewBase* itemToRemove = treeRootItem->findTreeViewItem (*itemsToRemove.getUnchecked(i)); | |||
| if (itemToRemove != 0) | |||
| itemToRemove->deleteItem(); | |||
| } | |||
| } | |||
| } | |||
| @@ -353,12 +353,12 @@ void ProjectTreeViewBase::itemDropped (const String& sourceDescription, Componen | |||
| if (selectedNodes.size() > 0) | |||
| { | |||
| TreeView* tree = getOwnerView(); | |||
| ScopedPointer <XmlElement> openness (tree->getOpennessState (false)); | |||
| ScopedPointer <XmlElement> oldOpenness (tree->getOpennessState (false)); | |||
| moveSelectedItemsTo (selectedNodes, insertIndex); | |||
| if (openness != 0) | |||
| tree->restoreOpennessState (*openness); | |||
| if (oldOpenness != 0) | |||
| tree->restoreOpennessState (*oldOpenness); | |||
| } | |||
| } | |||
| @@ -414,13 +414,13 @@ void ProjectTreeViewBase::addSubItems() | |||
| void ProjectTreeViewBase::refreshSubItems() | |||
| { | |||
| ScopedPointer <XmlElement> openness (getOpennessState()); | |||
| ScopedPointer <XmlElement> oldOpenness (getOpennessState()); | |||
| clearSubItems(); | |||
| addSubItems(); | |||
| if (openness != 0) | |||
| restoreOpennessState (*openness); | |||
| if (oldOpenness != 0) | |||
| restoreOpennessState (*oldOpenness); | |||
| } | |||
| void ProjectTreeViewBase::showMultiSelectionPopupMenu() | |||
| @@ -338,6 +338,15 @@ void Coordinate::changeAnchor2 (const String& newMarkerName, const MarkerResolve | |||
| moveToAbsolute (oldValue, markerResolver); | |||
| } | |||
| void Coordinate::renameAnchorIfUsed (const String& oldName, const String& newName) | |||
| { | |||
| if (anchor1.upToFirstOccurrenceOf (".", false, false) == oldName) | |||
| anchor1 = newName + anchor1.fromFirstOccurrenceOf (".", true, false); | |||
| if (anchor2.upToFirstOccurrenceOf (".", false, false) == oldName) | |||
| anchor2 = newName + anchor2.fromFirstOccurrenceOf (".", true, false); | |||
| } | |||
| //============================================================================== | |||
| RectangleCoordinates::RectangleCoordinates() | |||
| : left (true), right (true), top (false), bottom (false) | |||
| @@ -386,3 +395,11 @@ const String RectangleCoordinates::toString() const | |||
| { | |||
| return left.toString() + ", " + top.toString() + ", " + right.toString() + ", " + bottom.toString(); | |||
| } | |||
| void RectangleCoordinates::renameAnchorIfUsed (const String& oldName, const String& newName) | |||
| { | |||
| left.renameAnchorIfUsed (oldName, newName); | |||
| right.renameAnchorIfUsed (oldName, newName); | |||
| top.renameAnchorIfUsed (oldName, newName); | |||
| bottom.renameAnchorIfUsed (oldName, newName); | |||
| } | |||
| @@ -97,6 +97,9 @@ public: | |||
| const String getAnchor2() const { return checkName (anchor2); } | |||
| void changeAnchor2 (const String& newMarkerName, const MarkerResolver& markerResolver); | |||
| // Tells the coord that an anchor is changing its name. | |||
| void renameAnchorIfUsed (const String& oldName, const String& newName); | |||
| //============================================================================== | |||
| /* | |||
| Position string formats: | |||
| @@ -154,6 +157,9 @@ public: | |||
| void moveToAbsolute (const Rectangle<float>& newPos, const Coordinate::MarkerResolver& markerResolver); | |||
| const String toString() const; | |||
| // Tells the coord that an anchor is changing its name. | |||
| void renameAnchorIfUsed (const String& oldName, const String& newName); | |||
| Coordinate left, right, top, bottom; | |||
| }; | |||
| @@ -34,9 +34,9 @@ class CoordinatePropertyComponent : public PropertyComponent, | |||
| { | |||
| public: | |||
| //============================================================================== | |||
| CoordinatePropertyComponent (ComponentDocument& document_, const String& name, | |||
| CoordinatePropertyComponent (Coordinate::MarkerResolver& resolver_, const String& name, | |||
| const Value& coordValue_, bool isHorizontal_) | |||
| : PropertyComponent (name, 40), document (document_), | |||
| : PropertyComponent (name, 40), resolver (resolver_), | |||
| coordValue (coordValue_), | |||
| textValue (Value (new CoordEditableValueSource (coordValue_, isHorizontal_))), | |||
| isHorizontal (isHorizontal_) | |||
| @@ -98,7 +98,7 @@ public: | |||
| if (button == proportionButton) | |||
| { | |||
| coord.toggleProportionality (document); | |||
| coord.toggleProportionality (resolver); | |||
| coordValue = coord.toString(); | |||
| } | |||
| else if (button == anchorButton1) | |||
| @@ -107,7 +107,7 @@ public: | |||
| if (marker.isNotEmpty()) | |||
| { | |||
| coord.changeAnchor1 (marker, document); | |||
| coord.changeAnchor1 (marker, resolver); | |||
| coordValue = coord.toString(); | |||
| } | |||
| } | |||
| @@ -117,7 +117,7 @@ public: | |||
| if (marker.isNotEmpty()) | |||
| { | |||
| coord.changeAnchor2 (marker, document); | |||
| coord.changeAnchor2 (marker, resolver); | |||
| coordValue = coord.toString(); | |||
| } | |||
| } | |||
| @@ -142,7 +142,7 @@ public: | |||
| virtual const String pickMarker (TextButton* button, const String& currentMarker, bool isAnchor1) = 0; | |||
| protected: | |||
| ComponentDocument& document; | |||
| Coordinate::MarkerResolver& resolver; | |||
| Value coordValue, textValue; | |||
| Label* label; | |||
| TextButton* proportionButton; | |||
| @@ -26,6 +26,8 @@ | |||
| #ifndef __JUCER_MARKERLISTBASE_H_E0091A88__ | |||
| #define __JUCER_MARKERLISTBASE_H_E0091A88__ | |||
| #include "jucer_CoordinatePropertyComponent.h" | |||
| //============================================================================== | |||
| class MarkerListBase : public Coordinate::MarkerResolver | |||
| @@ -34,6 +36,7 @@ public: | |||
| MarkerListBase (const ValueTree& group_, bool isX_) : group (group_), isX (isX_) {} | |||
| virtual ~MarkerListBase() {} | |||
| bool isHorizontal() const { return isX; } | |||
| static const String getId (const ValueTree& markerState) { return markerState [getIdProperty()]; } | |||
| ValueTree& getGroup() { return group; } | |||
| int size() const { return group.getNumChildren(); } | |||
| @@ -47,6 +50,17 @@ public: | |||
| const Coordinate getCoordinate (const ValueTree& markerState) const { return Coordinate (markerState [getMarkerPosProperty()].toString(), isX); } | |||
| void setCoordinate (ValueTree& markerState, const Coordinate& newCoord) { markerState.setProperty (getMarkerPosProperty(), newCoord.toString(), getUndoManager()); } | |||
| void renameAnchorInMarkers (const String& oldName, const String& newName) | |||
| { | |||
| for (int i = size(); --i >= 0;) | |||
| { | |||
| ValueTree v (getMarker (i)); | |||
| Coordinate coord (getCoordinate (v)); | |||
| coord.renameAnchorIfUsed (oldName, newName); | |||
| setCoordinate (v, coord); | |||
| } | |||
| } | |||
| void createMarker (const String& name, int position) | |||
| { | |||
| ValueTree marker (getMarkerTag()); | |||
| @@ -58,7 +72,12 @@ public: | |||
| void deleteMarker (ValueTree& markerState) { group.removeChild (markerState, getUndoManager()); } | |||
| bool createProperties (Array <PropertyComponent*>& props, const String& itemId); | |||
| //============================================================================== | |||
| virtual UndoManager* getUndoManager() const = 0; | |||
| virtual const String getNonexistentMarkerName (const String& name) = 0; | |||
| virtual void renameAnchor (const String& oldName, const String& newName) = 0; | |||
| virtual void addMarkerMenuItems (const ValueTree& markerState, const Coordinate& coord, PopupMenu& menu, bool isAnchor1) = 0; | |||
| virtual const String getChosenMarkerMenuItem (const Coordinate& coord, int itemId) const = 0; | |||
| //============================================================================== | |||
| static const char* getMarkerTag() { return "MARKER"; } | |||
| @@ -66,12 +85,91 @@ public: | |||
| static const char* getMarkerNameProperty() { return "name"; } | |||
| static const char* getMarkerPosProperty() { return "position"; } | |||
| protected: | |||
| virtual UndoManager* getUndoManager() const = 0; | |||
| virtual const String getNonexistentMarkerName (const String& name) = 0; | |||
| //============================================================================== | |||
| class MarkerNameValueSource : public Value::ValueSource, | |||
| public Value::Listener | |||
| { | |||
| public: | |||
| MarkerNameValueSource (MarkerListBase* markerList_, const Value& value) | |||
| : sourceValue (value), | |||
| markerList (markerList_) | |||
| { | |||
| sourceValue.addListener (this); | |||
| } | |||
| ~MarkerNameValueSource() {} | |||
| void valueChanged (Value&) { sendChangeMessage (true); } | |||
| const var getValue() const { return sourceValue.toString(); } | |||
| void setValue (const var& newValue) | |||
| { | |||
| if (newValue == sourceValue) | |||
| return; | |||
| const String name (markerList->getNonexistentMarkerName (newValue)); | |||
| if (sourceValue != name) | |||
| { | |||
| markerList->renameAnchor (sourceValue.toString(), name); | |||
| sourceValue = name; | |||
| } | |||
| } | |||
| private: | |||
| Value sourceValue; | |||
| MarkerListBase* markerList; | |||
| MarkerNameValueSource (const MarkerNameValueSource&); | |||
| const MarkerNameValueSource& operator= (const MarkerNameValueSource&); | |||
| }; | |||
| //============================================================================== | |||
| class PositionPropertyComponent : public CoordinatePropertyComponent | |||
| { | |||
| public: | |||
| //============================================================================== | |||
| PositionPropertyComponent (MarkerResolver& resolver_, MarkerListBase& markerList_, | |||
| const String& name, const ValueTree& markerState_, | |||
| const Value& coordValue_) | |||
| : CoordinatePropertyComponent (resolver_, name, coordValue_, markerList_.isHorizontal()), | |||
| markerList (markerList_), | |||
| markerState (markerState_) | |||
| { | |||
| } | |||
| ~PositionPropertyComponent() | |||
| { | |||
| } | |||
| const String pickMarker (TextButton* button, const String& currentMarker, bool isAnchor1) | |||
| { | |||
| Coordinate coord (getCoordinate()); | |||
| PopupMenu m; | |||
| markerList.addMarkerMenuItems (markerState, coord, m, isAnchor1); | |||
| const int r = m.showAt (button); | |||
| if (r > 0) | |||
| return markerList.getChosenMarkerMenuItem (coord, r); | |||
| return String::empty; | |||
| } | |||
| private: | |||
| MarkerListBase& markerList; | |||
| ValueTree markerState; | |||
| }; | |||
| //============================================================================== | |||
| protected: | |||
| ValueTree group; | |||
| const bool isX; | |||
| private: | |||
| MarkerListBase (const MarkerListBase&); | |||
| MarkerListBase& operator= (const MarkerListBase&); | |||
| }; | |||
| @@ -307,6 +307,9 @@ const String makeValidCppIdentifier (String s, | |||
| const bool removeColons, | |||
| const bool allowTemplates) | |||
| { | |||
| if (s.isEmpty()) | |||
| return "unknown"; | |||
| if (removeColons) | |||
| s = s.replaceCharacters (".,;:/@", "______"); | |||
| else | |||
| @@ -208,7 +208,7 @@ private: | |||
| int findLevelIndexForValue (const double value) const | |||
| { | |||
| int i; | |||
| for (i = 0; i < sizeof (tickSizes) / sizeof (*tickSizes); ++i) | |||
| for (i = 0; i < (int) (sizeof (tickSizes) / sizeof (*tickSizes)); ++i) | |||
| if (tickSizes [i] >= value) | |||
| break; | |||
| @@ -40,10 +40,10 @@ public: | |||
| sourceValue.addListener (this); | |||
| } | |||
| ValueRemapperSource (const Value& sourceValue_, const char** mappings) | |||
| ValueRemapperSource (const Value& sourceValue_, const char** mappings_) | |||
| : sourceValue (sourceValue_) | |||
| { | |||
| addMappings (mappings); | |||
| addMappings (mappings_); | |||
| sourceValue.addListener (this); | |||
| } | |||
| @@ -58,9 +58,9 @@ public: | |||
| } | |||
| } | |||
| void addMapping (const var& sourceValue, const var& remappedValue) | |||
| void addMapping (const var& sourceValue_, const var& remappedValue) | |||
| { | |||
| mappings.add (sourceValue); | |||
| mappings.add (sourceValue_); | |||
| mappings.add (remappedValue); | |||
| } | |||
| @@ -5740,10 +5740,10 @@ public: | |||
| #define juce_InterlockedDecrement64(a) _InterlockedDecrement64(a) | |||
| #else | |||
| // None of these atomics are available in a 32-bit Windows build!! | |||
| static __int64 juce_InterlockedExchangeAdd64 (volatile __int64* a, __int64 b) throw() { jassertfalse; __int64 old = *a; *a += b; return old; } | |||
| static __int64 juce_InterlockedExchange64 (volatile __int64* a, __int64 b) throw() { jassertfalse; __int64 old = *a; *a = b; return old; } | |||
| static __int64 juce_InterlockedIncrement64 (volatile __int64* a) throw() { jassertfalse; return ++*a; } | |||
| static __int64 juce_InterlockedDecrement64 (volatile __int64* a) throw() { jassertfalse; return --*a; } | |||
| template <typename Type> static Type juce_InterlockedExchangeAdd64 (volatile Type* a, Type b) throw() { jassertfalse; Type old = *a; *a += b; return old; } | |||
| template <typename Type> static Type juce_InterlockedExchange64 (volatile Type* a, Type b) throw() { jassertfalse; Type old = *a; *a = b; return old; } | |||
| template <typename Type> static Type juce_InterlockedIncrement64 (volatile Type* a) throw() { jassertfalse; return ++*a; } | |||
| template <typename Type> static Type juce_InterlockedDecrement64 (volatile Type* a) throw() { jassertfalse; return --*a; } | |||
| #endif | |||
| #endif | |||
| @@ -20390,12 +20390,12 @@ public: | |||
| transform.transformPoint (x3, y3); | |||
| transform.transformPoint (x4, y4); | |||
| const float x = jmin (x1, x2, x3, x4); | |||
| const float y = jmin (y1, y2, y3, y4); | |||
| const float rx = jmin (x1, x2, x3, x4); | |||
| const float ry = jmin (y1, y2, y3, y4); | |||
| return Rectangle (x, y, | |||
| jmax (x1, x2, x3, x4) - x, | |||
| jmax (y1, y2, y3, y4) - y); | |||
| return Rectangle (rx, ry, | |||
| jmax (x1, x2, x3, x4) - rx, | |||
| jmax (y1, y2, y3, y4) - ry); | |||
| } | |||
| /** Returns the smallest integer-aligned rectangle that completely contains this one. | |||
| @@ -26352,13 +26352,8 @@ private: | |||
| // hierarchies. You might need to give your subclasses a private dummy constructor like | |||
| // this one to avoid compiler warnings. | |||
| Component (const Component&); | |||
| Component& operator= (const Component&); | |||
| // (dummy method to cause a deliberate compile error - if you hit this, you need to update your | |||
| // subclass to use the new parameters to keyStateChanged) | |||
| virtual void keyStateChanged() {}; | |||
| protected: | |||
| /** @internal */ | |||
| virtual void internalRepaint (int x, int y, int w, int h); | |||
| @@ -44798,14 +44793,6 @@ public: | |||
| */ | |||
| virtual void valueChanged(); | |||
| /** Callback to indicate that the user has just moved the slider. | |||
| Note - the valueChanged() method has changed its format and now no longer has | |||
| any parameters. Update your code to use the new version. | |||
| This version has been left here with an int as its return value to cause | |||
| a syntax error if you've got existing code that uses the old version. | |||
| */ | |||
| virtual int valueChanged (double) { jassertfalse; return 0; } | |||
| /** Subclasses can override this to convert a text string to a value. | |||
| When the user enters something into the text-entry box, this method is | |||
| @@ -53360,14 +53347,14 @@ public: | |||
| For example, if the item is an object, you might want to call it and tell | |||
| it that it's being selected. | |||
| */ | |||
| virtual void itemSelected (SelectableItemType item) {} | |||
| virtual void itemSelected (SelectableItemType item) { (void) item; } | |||
| /** Can be overridden to do special handling when an item is deselected. | |||
| For example, if the item is an object, you might want to call it and tell | |||
| it that it's being deselected. | |||
| */ | |||
| virtual void itemDeselected (SelectableItemType item) {} | |||
| virtual void itemDeselected (SelectableItemType item) { (void) item; } | |||
| /** Used internally, but can be called to force a change message to be sent to the ChangeListeners. | |||
| */ | |||
| @@ -53580,7 +53567,7 @@ public: | |||
| } | |||
| /** @internal */ | |||
| bool hitTest (int x, int y) { return false; } | |||
| bool hitTest (int, int) { return false; } | |||
| juce_UseDebuggingNewOperator | |||
| @@ -191,10 +191,10 @@ public: | |||
| #define juce_InterlockedDecrement64(a) _InterlockedDecrement64(a) | |||
| #else | |||
| // None of these atomics are available in a 32-bit Windows build!! | |||
| static __int64 juce_InterlockedExchangeAdd64 (volatile __int64* a, __int64 b) throw() { jassertfalse; __int64 old = *a; *a += b; return old; } | |||
| static __int64 juce_InterlockedExchange64 (volatile __int64* a, __int64 b) throw() { jassertfalse; __int64 old = *a; *a = b; return old; } | |||
| static __int64 juce_InterlockedIncrement64 (volatile __int64* a) throw() { jassertfalse; return ++*a; } | |||
| static __int64 juce_InterlockedDecrement64 (volatile __int64* a) throw() { jassertfalse; return --*a; } | |||
| template <typename Type> static Type juce_InterlockedExchangeAdd64 (volatile Type* a, Type b) throw() { jassertfalse; Type old = *a; *a += b; return old; } | |||
| template <typename Type> static Type juce_InterlockedExchange64 (volatile Type* a, Type b) throw() { jassertfalse; Type old = *a; *a = b; return old; } | |||
| template <typename Type> static Type juce_InterlockedIncrement64 (volatile Type* a) throw() { jassertfalse; return ++*a; } | |||
| template <typename Type> static Type juce_InterlockedDecrement64 (volatile Type* a) throw() { jassertfalse; return --*a; } | |||
| #endif | |||
| #endif | |||
| @@ -657,7 +657,6 @@ int ListBox::getRowNumberOfComponent (Component* const rowComponent) const throw | |||
| const Rectangle<int> ListBox::getRowPosition (const int rowNumber, | |||
| const bool relativeToComponentTopLeft) const throw() | |||
| { | |||
| const int rowHeight = getRowHeight(); | |||
| int y = viewport->getY() + rowHeight * rowNumber; | |||
| if (relativeToComponentTopLeft) | |||
| @@ -579,14 +579,6 @@ public: | |||
| */ | |||
| virtual void valueChanged(); | |||
| /** Callback to indicate that the user has just moved the slider. | |||
| Note - the valueChanged() method has changed its format and now no longer has | |||
| any parameters. Update your code to use the new version. | |||
| This version has been left here with an int as its return value to cause | |||
| a syntax error if you've got existing code that uses the old version. | |||
| */ | |||
| virtual int valueChanged (double) { jassertfalse; return 0; } | |||
| //============================================================================== | |||
| /** Subclasses can override this to convert a text string to a value. | |||
| @@ -1631,10 +1631,10 @@ void TextEditor::copy() | |||
| { | |||
| if (passwordCharacter == 0) | |||
| { | |||
| const String selection (getHighlightedText()); | |||
| const String selectedText (getHighlightedText()); | |||
| if (selection.isNotEmpty()) | |||
| SystemClipboard::copyTextToClipboard (selection); | |||
| if (selectedText.isNotEmpty()) | |||
| SystemClipboard::copyTextToClipboard (selectedText); | |||
| } | |||
| } | |||
| @@ -190,11 +190,11 @@ void ToolbarItemComponent::setStyle (const Toolbar::ToolbarItemStyle& newStyle) | |||
| } | |||
| } | |||
| void ToolbarItemComponent::paintButton (Graphics& g, bool isMouseOver, bool isMouseDown) | |||
| void ToolbarItemComponent::paintButton (Graphics& g, const bool over, const bool down) | |||
| { | |||
| if (isBeingUsedAsAButton) | |||
| getLookAndFeel().paintToolbarButtonBackground (g, getWidth(), getHeight(), | |||
| isMouseOver, isMouseDown, *this); | |||
| over, down, *this); | |||
| if (toolbarStyle != Toolbar::iconsOnly) | |||
| { | |||
| @@ -218,7 +218,7 @@ void ToolbarItemComponent::paintButton (Graphics& g, bool isMouseOver, bool isMo | |||
| g.setOrigin (contentArea.getX(), contentArea.getY()); | |||
| g.reduceClipRegion (0, 0, contentArea.getWidth(), contentArea.getHeight()); | |||
| paintButtonArea (g, contentArea.getWidth(), contentArea.getHeight(), isMouseOver, isMouseDown); | |||
| paintButtonArea (g, contentArea.getWidth(), contentArea.getHeight(), over, down); | |||
| g.restoreState(); | |||
| } | |||
| @@ -205,37 +205,40 @@ public: | |||
| const int visibleBottom = visibleTop + getParentHeight(); | |||
| BigInteger itemsToKeep; | |||
| TreeViewItem* item = owner.rootItem; | |||
| int y = (item != 0 && ! owner.rootItemVisible) ? -item->itemHeight : 0; | |||
| while (item != 0 && y < visibleBottom) | |||
| { | |||
| y += item->itemHeight; | |||
| TreeViewItem* item = owner.rootItem; | |||
| int y = (item != 0 && ! owner.rootItemVisible) ? -item->itemHeight : 0; | |||
| if (y >= visibleTop) | |||
| while (item != 0 && y < visibleBottom) | |||
| { | |||
| const int index = rowComponentIds.indexOf (item->uid); | |||
| y += item->itemHeight; | |||
| if (index < 0) | |||
| if (y >= visibleTop) | |||
| { | |||
| Component* const comp = item->createItemComponent(); | |||
| const int index = rowComponentIds.indexOf (item->uid); | |||
| if (comp != 0) | |||
| if (index < 0) | |||
| { | |||
| addAndMakeVisible (comp); | |||
| itemsToKeep.setBit (rowComponentItems.size()); | |||
| rowComponentItems.add (item); | |||
| rowComponentIds.add (item->uid); | |||
| rowComponents.add (comp); | |||
| Component* const comp = item->createItemComponent(); | |||
| if (comp != 0) | |||
| { | |||
| addAndMakeVisible (comp); | |||
| itemsToKeep.setBit (rowComponentItems.size()); | |||
| rowComponentItems.add (item); | |||
| rowComponentIds.add (item->uid); | |||
| rowComponents.add (comp); | |||
| } | |||
| } | |||
| else | |||
| { | |||
| itemsToKeep.setBit (index); | |||
| } | |||
| } | |||
| else | |||
| { | |||
| itemsToKeep.setBit (index); | |||
| } | |||
| } | |||
| item = item->getNextVisibleItem (true); | |||
| item = item->getNextVisibleItem (true); | |||
| } | |||
| } | |||
| for (int i = rowComponentItems.size(); --i >= 0;) | |||
| @@ -1716,14 +1719,14 @@ const String TreeViewItem::getItemIdentifierString() const | |||
| TreeViewItem* TreeViewItem::findItemFromIdentifierString (const String& identifierString) | |||
| { | |||
| const String uid (getUniqueName()); | |||
| const String thisId (getUniqueName()); | |||
| if (uid == identifierString) | |||
| if (thisId == identifierString) | |||
| return this; | |||
| if (identifierString.startsWith (uid + "/")) | |||
| if (identifierString.startsWith (thisId + "/")) | |||
| { | |||
| const String remainingPath (identifierString.substring (uid.length() + 1)); | |||
| const String remainingPath (identifierString.substring (thisId.length() + 1)); | |||
| bool wasOpen = isOpen(); | |||
| setOpen (true); | |||
| @@ -370,6 +370,8 @@ void FileBrowserComponent::fileDoubleClicked (const File& f) | |||
| bool FileBrowserComponent::keyPressed (const KeyPress& key) | |||
| { | |||
| (void) key; | |||
| #if JUCE_LINUX || JUCE_WINDOWS | |||
| if (key.getModifiers().isCommandDown() | |||
| && (key.getKeyCode() == 'H' || key.getKeyCode() == 'h')) | |||
| @@ -2186,13 +2186,13 @@ void Component::internalMouseEnter (MouseInputSource& source, const Point<int>& | |||
| { | |||
| if (p->numDeepMouseListeners > 0) | |||
| { | |||
| BailOutChecker checker (this, p); | |||
| BailOutChecker checker2 (this, p); | |||
| for (int i = p->numDeepMouseListeners; --i >= 0;) | |||
| { | |||
| p->mouseListeners_->getUnchecked(i)->mouseEnter (me); | |||
| if (checker.shouldBailOut()) | |||
| if (checker2.shouldBailOut()) | |||
| return; | |||
| i = jmin (i, p->numDeepMouseListeners); | |||
| @@ -2258,13 +2258,13 @@ void Component::internalMouseExit (MouseInputSource& source, const Point<int>& r | |||
| { | |||
| if (p->numDeepMouseListeners > 0) | |||
| { | |||
| BailOutChecker checker (this, p); | |||
| BailOutChecker checker2 (this, p); | |||
| for (int i = p->numDeepMouseListeners; --i >= 0;) | |||
| { | |||
| p->mouseListeners_->getUnchecked (i)->mouseExit (me); | |||
| if (checker.shouldBailOut()) | |||
| if (checker2.shouldBailOut()) | |||
| return; | |||
| i = jmin (i, p->numDeepMouseListeners); | |||
| @@ -2425,13 +2425,13 @@ void Component::internalMouseDown (MouseInputSource& source, const Point<int>& r | |||
| { | |||
| if (p->numDeepMouseListeners > 0) | |||
| { | |||
| BailOutChecker checker (this, p); | |||
| BailOutChecker checker2 (this, p); | |||
| for (int i = p->numDeepMouseListeners; --i >= 0;) | |||
| { | |||
| p->mouseListeners_->getUnchecked (i)->mouseDown (me); | |||
| if (checker.shouldBailOut()) | |||
| if (checker2.shouldBailOut()) | |||
| return; | |||
| i = jmin (i, p->numDeepMouseListeners); | |||
| @@ -2494,13 +2494,13 @@ void Component::internalMouseUp (MouseInputSource& source, const Point<int>& rel | |||
| { | |||
| if (p->numDeepMouseListeners > 0) | |||
| { | |||
| BailOutChecker checker (this, p); | |||
| BailOutChecker checker2 (this, p); | |||
| for (int i = p->numDeepMouseListeners; --i >= 0;) | |||
| { | |||
| p->mouseListeners_->getUnchecked (i)->mouseUp (me); | |||
| if (checker.shouldBailOut()) | |||
| if (checker2.shouldBailOut()) | |||
| return; | |||
| i = jmin (i, p->numDeepMouseListeners); | |||
| @@ -2545,13 +2545,13 @@ void Component::internalMouseUp (MouseInputSource& source, const Point<int>& rel | |||
| { | |||
| if (p->numDeepMouseListeners > 0) | |||
| { | |||
| BailOutChecker checker (this, p); | |||
| BailOutChecker checker2 (this, p); | |||
| for (int i = p->numDeepMouseListeners; --i >= 0;) | |||
| { | |||
| p->mouseListeners_->getUnchecked (i)->mouseDoubleClick (me); | |||
| if (checker.shouldBailOut()) | |||
| if (checker2.shouldBailOut()) | |||
| return; | |||
| i = jmin (i, p->numDeepMouseListeners); | |||
| @@ -2611,13 +2611,13 @@ void Component::internalMouseDrag (MouseInputSource& source, const Point<int>& r | |||
| { | |||
| if (p->numDeepMouseListeners > 0) | |||
| { | |||
| BailOutChecker checker (this, p); | |||
| BailOutChecker checker2 (this, p); | |||
| for (int i = p->numDeepMouseListeners; --i >= 0;) | |||
| { | |||
| p->mouseListeners_->getUnchecked (i)->mouseDrag (me); | |||
| if (checker.shouldBailOut()) | |||
| if (checker2.shouldBailOut()) | |||
| return; | |||
| i = jmin (i, p->numDeepMouseListeners); | |||
| @@ -2677,13 +2677,13 @@ void Component::internalMouseMove (MouseInputSource& source, const Point<int>& r | |||
| { | |||
| if (p->numDeepMouseListeners > 0) | |||
| { | |||
| BailOutChecker checker (this, p); | |||
| BailOutChecker checker2 (this, p); | |||
| for (int i = p->numDeepMouseListeners; --i >= 0;) | |||
| { | |||
| p->mouseListeners_->getUnchecked (i)->mouseMove (me); | |||
| if (checker.shouldBailOut()) | |||
| if (checker2.shouldBailOut()) | |||
| return; | |||
| i = jmin (i, p->numDeepMouseListeners); | |||
| @@ -2743,13 +2743,13 @@ void Component::internalMouseWheel (MouseInputSource& source, const Point<int>& | |||
| { | |||
| if (p->numDeepMouseListeners > 0) | |||
| { | |||
| BailOutChecker checker (this, p); | |||
| BailOutChecker checker2 (this, p); | |||
| for (int i = p->numDeepMouseListeners; --i >= 0;) | |||
| { | |||
| p->mouseListeners_->getUnchecked (i)->mouseWheelMove (me, wheelIncrementX, wheelIncrementY); | |||
| if (checker.shouldBailOut()) | |||
| if (checker2.shouldBailOut()) | |||
| return; | |||
| i = jmin (i, p->numDeepMouseListeners); | |||
| @@ -2084,13 +2084,8 @@ private: | |||
| // hierarchies. You might need to give your subclasses a private dummy constructor like | |||
| // this one to avoid compiler warnings. | |||
| Component (const Component&); | |||
| Component& operator= (const Component&); | |||
| // (dummy method to cause a deliberate compile error - if you hit this, you need to update your | |||
| // subclass to use the new parameters to keyStateChanged) | |||
| virtual void keyStateChanged() {}; | |||
| protected: | |||
| /** @internal */ | |||
| virtual void internalRepaint (int x, int y, int w, int h); | |||
| @@ -356,10 +356,9 @@ void KeyMappingEditorComponent::resized() | |||
| const int buttonHeight = 20; | |||
| h -= buttonHeight + 8; | |||
| int x = getWidth() - 8; | |||
| const int y = h + 6; | |||
| resetButton->changeWidthToFitText (buttonHeight); | |||
| resetButton->setTopRightPosition (x, y); | |||
| resetButton->setTopRightPosition (x, h + 6); | |||
| } | |||
| tree->setBounds (0, 0, getWidth(), h); | |||
| @@ -381,7 +380,7 @@ void KeyMappingEditorComponent::buttonClicked (Button* button) | |||
| void KeyMappingEditorComponent::changeListenerCallback (void*) | |||
| { | |||
| ScopedPointer <XmlElement> openness (tree->getOpennessState (true)); | |||
| ScopedPointer <XmlElement> oldOpenness (tree->getOpennessState (true)); | |||
| clearSubItems(); | |||
| @@ -400,8 +399,8 @@ void KeyMappingEditorComponent::changeListenerCallback (void*) | |||
| addSubItem (new KeyCategoryTreeViewItem (this, categories[i])); | |||
| } | |||
| if (openness != 0) | |||
| tree->restoreOpennessState (*openness); | |||
| if (oldOpenness != 0) | |||
| tree->restoreOpennessState (*oldOpenness); | |||
| } | |||
| //============================================================================== | |||
| @@ -50,14 +50,14 @@ public: | |||
| { | |||
| } | |||
| void paintButton (Graphics& g, bool isMouseOver, bool isMouseDown) | |||
| void paintButton (Graphics& g, bool over, bool down) | |||
| { | |||
| getLookAndFeel() | |||
| .drawScrollbarButton (g, owner, | |||
| getWidth(), getHeight(), | |||
| direction, | |||
| owner.isVertical(), | |||
| isMouseOver, isMouseDown); | |||
| over, down); | |||
| } | |||
| void clicked() | |||
| @@ -36,8 +36,8 @@ class TabCompButtonBar : public TabbedButtonBar | |||
| { | |||
| public: | |||
| TabCompButtonBar (TabbedComponent* const owner_, | |||
| const TabbedButtonBar::Orientation orientation) | |||
| : TabbedButtonBar (orientation), | |||
| const TabbedButtonBar::Orientation orientation_) | |||
| : TabbedButtonBar (orientation_), | |||
| owner (owner_) | |||
| { | |||
| } | |||
| @@ -228,7 +228,7 @@ public: | |||
| } | |||
| /** @internal */ | |||
| bool hitTest (int x, int y) { return false; } | |||
| bool hitTest (int, int) { return false; } | |||
| //============================================================================== | |||
| juce_UseDebuggingNewOperator | |||
| @@ -124,12 +124,12 @@ public: | |||
| for (int y = 0; y < height; ++y) | |||
| { | |||
| const float v = 1.0f - y / (float) height; | |||
| const float val = 1.0f - y / (float) height; | |||
| for (int x = 0; x < width; ++x) | |||
| { | |||
| const float s = x / (float) width; | |||
| const Colour col (h, s, v, 1.0f); | |||
| const float sat = x / (float) width; | |||
| const Colour col (h, sat, val, 1.0f); | |||
| PixelRGB* const pix = (PixelRGB*) pixels.getPixelPointer (x, y); | |||
| pix->set (col.getPixelARGB()); | |||
| @@ -149,10 +149,10 @@ public: | |||
| void mouseDrag (const MouseEvent& e) | |||
| { | |||
| const float s = (e.x - edge) / (float) (getWidth() - edge * 2); | |||
| const float v = 1.0f - (e.y - edge) / (float) (getHeight() - edge * 2); | |||
| const float sat = (e.x - edge) / (float) (getWidth() - edge * 2); | |||
| const float val = 1.0f - (e.y - edge) / (float) (getHeight() - edge * 2); | |||
| owner->setSV (s, v); | |||
| owner->setSV (sat, val); | |||
| } | |||
| void updateIfNeeded() | |||
| @@ -486,16 +486,16 @@ void ColourSelector::paint (Graphics& g) | |||
| if ((flags & showColourAtTop) != 0) | |||
| { | |||
| const Colour colour (getCurrentColour()); | |||
| const Colour currentColour (getCurrentColour()); | |||
| g.fillCheckerBoard (edgeGap, edgeGap, getWidth() - edgeGap - edgeGap, topSpace - edgeGap - edgeGap, | |||
| 10, 10, | |||
| Colour (0xffdddddd).overlaidWith (colour), | |||
| Colour (0xffffffff).overlaidWith (colour)); | |||
| Colour (0xffdddddd).overlaidWith (currentColour), | |||
| Colour (0xffffffff).overlaidWith (currentColour)); | |||
| g.setColour (Colours::white.overlaidWith (colour).contrasting()); | |||
| g.setColour (Colours::white.overlaidWith (currentColour).contrasting()); | |||
| g.setFont (14.0f, true); | |||
| g.drawText (colour.toDisplayString ((flags & showAlphaChannel) != 0), | |||
| g.drawText (currentColour.toDisplayString ((flags & showAlphaChannel) != 0), | |||
| 0, edgeGap, getWidth(), topSpace - edgeGap * 2, | |||
| Justification::centred, false); | |||
| } | |||
| @@ -204,7 +204,7 @@ void MidiKeyboardComponent::setVelocity (const float velocity_, const bool useMo | |||
| } | |||
| //============================================================================== | |||
| void MidiKeyboardComponent::getKeyPosition (int midiNoteNumber, const float keyWidth, int& x, int& w) const | |||
| void MidiKeyboardComponent::getKeyPosition (int midiNoteNumber, const float keyWidth_, int& x, int& w) const | |||
| { | |||
| jassert (midiNoteNumber >= 0 && midiNoteNumber < 128); | |||
| @@ -227,8 +227,8 @@ void MidiKeyboardComponent::getKeyPosition (int midiNoteNumber, const float keyW | |||
| const int octave = midiNoteNumber / 12; | |||
| const int note = midiNoteNumber % 12; | |||
| x = roundToInt (octave * 7.0f * keyWidth + notePos [note] * keyWidth); | |||
| w = roundToInt (widths [note] * keyWidth); | |||
| x = roundToInt (octave * 7.0f * keyWidth_ + notePos [note] * keyWidth_); | |||
| w = roundToInt (widths [note] * keyWidth_); | |||
| } | |||
| void MidiKeyboardComponent::getKeyPos (int midiNoteNumber, int& x, int& w) const | |||
| @@ -551,7 +551,7 @@ const String MidiKeyboardComponent::getWhiteNoteText (const int midiNoteNumber) | |||
| } | |||
| void MidiKeyboardComponent::drawUpDownButton (Graphics& g, int w, int h, | |||
| const bool isMouseOver, | |||
| const bool isMouseOver_, | |||
| const bool isButtonDown, | |||
| const bool movesOctavesUp) | |||
| { | |||
| @@ -574,7 +574,7 @@ void MidiKeyboardComponent::drawUpDownButton (Graphics& g, int w, int h, | |||
| path.applyTransform (AffineTransform::rotation (float_Pi * 2.0f * angle, 0.5f, 0.5f)); | |||
| g.setColour (findColour (upDownButtonArrowColourId) | |||
| .withAlpha (isButtonDown ? 1.0f : (isMouseOver ? 0.6f : 0.4f))); | |||
| .withAlpha (isButtonDown ? 1.0f : (isMouseOver_ ? 0.6f : 0.4f))); | |||
| g.fillPath (path, path.getTransformToScaleToFit (1.0f, 1.0f, | |||
| w - 2.0f, | |||
| @@ -297,9 +297,9 @@ private: | |||
| AlertTextComp& operator= (const AlertTextComp&); | |||
| }; | |||
| void AlertWindow::addTextBlock (const String& text) | |||
| void AlertWindow::addTextBlock (const String& textBlock) | |||
| { | |||
| AlertTextComp* const c = new AlertTextComp (text, font); | |||
| AlertTextComp* const c = new AlertTextComp (textBlock, font); | |||
| textBlocks.add (c); | |||
| allComps.add (c); | |||
| @@ -519,7 +519,7 @@ void AlertWindow::updateLayout (const bool onlyIncreaseSize) | |||
| for (i = 0; i < allComps.size(); ++i) | |||
| { | |||
| Component* const c = (Component*) allComps[i]; | |||
| int h = 22; | |||
| h = 22; | |||
| const int comboIndex = comboBoxes.indexOf (c); | |||
| if (comboIndex >= 0 && comboBoxNames [comboIndex].isNotEmpty()) | |||
| @@ -601,10 +601,10 @@ bool AlertWindow::keyPressed (const KeyPress& key) | |||
| void AlertWindow::lookAndFeelChanged() | |||
| { | |||
| const int flags = getLookAndFeel().getAlertBoxWindowFlags(); | |||
| const int newFlags = getLookAndFeel().getAlertBoxWindowFlags(); | |||
| setUsingNativeTitleBar ((flags & ComponentPeer::windowHasTitleBar) != 0); | |||
| setDropShadowEnabled (isOpaque() && (flags & ComponentPeer::windowHasDropShadow) != 0); | |||
| setUsingNativeTitleBar ((newFlags & ComponentPeer::windowHasTitleBar) != 0); | |||
| setDropShadowEnabled (isOpaque() && (newFlags & ComponentPeer::windowHasDropShadow) != 0); | |||
| } | |||
| int AlertWindow::getDesktopWindowStyleFlags() const | |||
| @@ -304,18 +304,18 @@ Button* DocumentWindow::getMaximiseButton() const throw() | |||
| int DocumentWindow::getDesktopWindowStyleFlags() const | |||
| { | |||
| int flags = ResizableWindow::getDesktopWindowStyleFlags(); | |||
| int styleFlags = ResizableWindow::getDesktopWindowStyleFlags(); | |||
| if ((requiredButtons & minimiseButton) != 0) | |||
| flags |= ComponentPeer::windowHasMinimiseButton; | |||
| styleFlags |= ComponentPeer::windowHasMinimiseButton; | |||
| if ((requiredButtons & maximiseButton) != 0) | |||
| flags |= ComponentPeer::windowHasMaximiseButton; | |||
| styleFlags |= ComponentPeer::windowHasMaximiseButton; | |||
| if ((requiredButtons & closeButton) != 0) | |||
| flags |= ComponentPeer::windowHasCloseButton; | |||
| styleFlags |= ComponentPeer::windowHasCloseButton; | |||
| return flags; | |||
| return styleFlags; | |||
| } | |||
| void DocumentWindow::lookAndFeelChanged() | |||
| @@ -88,12 +88,12 @@ ResizableWindow::~ResizableWindow() | |||
| int ResizableWindow::getDesktopWindowStyleFlags() const | |||
| { | |||
| int flags = TopLevelWindow::getDesktopWindowStyleFlags(); | |||
| int styleFlags = TopLevelWindow::getDesktopWindowStyleFlags(); | |||
| if (isResizable() && (flags & ComponentPeer::windowHasTitleBar) != 0) | |||
| flags |= ComponentPeer::windowIsResizable; | |||
| if (isResizable() && (styleFlags & ComponentPeer::windowHasTitleBar) != 0) | |||
| styleFlags |= ComponentPeer::windowIsResizable; | |||
| return flags; | |||
| return styleFlags; | |||
| } | |||
| //============================================================================== | |||
| @@ -202,15 +202,15 @@ void TopLevelWindow::visibilityChanged() | |||
| int TopLevelWindow::getDesktopWindowStyleFlags() const | |||
| { | |||
| int flags = ComponentPeer::windowAppearsOnTaskbar; | |||
| int styleFlags = ComponentPeer::windowAppearsOnTaskbar; | |||
| if (useDropShadow) | |||
| flags |= ComponentPeer::windowHasDropShadow; | |||
| styleFlags |= ComponentPeer::windowHasDropShadow; | |||
| if (useNativeTitleBar) | |||
| flags |= ComponentPeer::windowHasTitleBar; | |||
| styleFlags |= ComponentPeer::windowHasTitleBar; | |||
| return flags; | |||
| return styleFlags; | |||
| } | |||
| void TopLevelWindow::setDropShadowEnabled (const bool useShadow) | |||
| @@ -734,8 +734,8 @@ private: | |||
| gradient.isRadial = fillXml->hasTagName ("radialGradient"); | |||
| float width = viewBoxW; | |||
| float height = viewBoxH; | |||
| float gradientWidth = viewBoxW; | |||
| float gradientHeight = viewBoxH; | |||
| float dx = 0.0f; | |||
| float dy = 0.0f; | |||
| @@ -746,16 +746,16 @@ private: | |||
| const Rectangle<float> bounds (path.getBounds()); | |||
| dx = bounds.getX(); | |||
| dy = bounds.getY(); | |||
| width = bounds.getWidth(); | |||
| height = bounds.getHeight(); | |||
| gradientWidth = bounds.getWidth(); | |||
| gradientHeight = bounds.getHeight(); | |||
| } | |||
| if (gradient.isRadial) | |||
| { | |||
| gradient.x1 = dx + getCoordLength (fillXml->getStringAttribute ("cx", "50%"), width); | |||
| gradient.y1 = dy + getCoordLength (fillXml->getStringAttribute ("cy", "50%"), height); | |||
| gradient.x1 = dx + getCoordLength (fillXml->getStringAttribute ("cx", "50%"), gradientWidth); | |||
| gradient.y1 = dy + getCoordLength (fillXml->getStringAttribute ("cy", "50%"), gradientHeight); | |||
| const float radius = getCoordLength (fillXml->getStringAttribute ("r", "50%"), width); | |||
| const float radius = getCoordLength (fillXml->getStringAttribute ("r", "50%"), gradientWidth); | |||
| gradient.x2 = gradient.x1 + radius; | |||
| gradient.y2 = gradient.y1; | |||
| @@ -764,11 +764,11 @@ private: | |||
| } | |||
| else | |||
| { | |||
| gradient.x1 = dx + getCoordLength (fillXml->getStringAttribute ("x1", "0%"), width); | |||
| gradient.y1 = dy + getCoordLength (fillXml->getStringAttribute ("y1", "0%"), height); | |||
| gradient.x1 = dx + getCoordLength (fillXml->getStringAttribute ("x1", "0%"), gradientWidth); | |||
| gradient.y1 = dy + getCoordLength (fillXml->getStringAttribute ("y1", "0%"), gradientHeight); | |||
| gradient.x2 = dx + getCoordLength (fillXml->getStringAttribute ("x2", "100%"), width); | |||
| gradient.y2 = dy + getCoordLength (fillXml->getStringAttribute ("y2", "0%"), height); | |||
| gradient.x2 = dx + getCoordLength (fillXml->getStringAttribute ("x2", "100%"), gradientWidth); | |||
| gradient.y2 = dy + getCoordLength (fillXml->getStringAttribute ("y2", "0%"), gradientHeight); | |||
| if (gradient.x1 == gradient.x2 && gradient.y1 == gradient.y2) | |||
| return Colour (gradient.getColour (gradient.getNumColours() - 1)); | |||
| @@ -791,7 +791,7 @@ private: | |||
| const PathStrokeType getStrokeFor (const XmlElement* const xml) const | |||
| { | |||
| const String width (getStyleAttribute (xml, "stroke-width")); | |||
| const String strokeWidth (getStyleAttribute (xml, "stroke-width")); | |||
| const String cap (getStyleAttribute (xml, "stroke-linecap")); | |||
| const String join (getStyleAttribute (xml, "stroke-linejoin")); | |||
| @@ -814,10 +814,10 @@ private: | |||
| float ox = 0.0f, oy = 0.0f; | |||
| transform.transformPoint (ox, oy); | |||
| float x = getCoordLength (width, viewBoxW), y = 0.0f; | |||
| float x = getCoordLength (strokeWidth, viewBoxW), y = 0.0f; | |||
| transform.transformPoint (x, y); | |||
| return PathStrokeType (width.isNotEmpty() ? juce_hypotf (x - ox, y - oy) : 1.0f, | |||
| return PathStrokeType (strokeWidth.isNotEmpty() ? juce_hypotf (x - ox, y - oy) : 1.0f, | |||
| joinStyle, capStyle); | |||
| } | |||
| @@ -44,6 +44,8 @@ namespace FontValues | |||
| } | |||
| static const float defaultFontHeight = 14.0f; | |||
| static String fallbackFont; | |||
| } | |||
| //============================================================================== | |||
| @@ -166,16 +168,14 @@ void Font::setTypefaceName (const String& faceName) throw() | |||
| } | |||
| //============================================================================== | |||
| static String fallbackFont; | |||
| const String Font::getFallbackFontName() throw() | |||
| { | |||
| return fallbackFont; | |||
| return FontValues::fallbackFont; | |||
| } | |||
| void Font::setFallbackFontName (const String& name) throw() | |||
| { | |||
| fallbackFont = name; | |||
| FontValues::fallbackFont = name; | |||
| } | |||
| //============================================================================== | |||
| @@ -1329,9 +1329,9 @@ void Path::loadPathFromStream (InputStream& source) | |||
| } | |||
| } | |||
| void Path::loadPathFromData (const void* const data, const int numberOfBytes) | |||
| void Path::loadPathFromData (const void* const pathData, const int numberOfBytes) | |||
| { | |||
| MemoryInputStream in (data, numberOfBytes, false); | |||
| MemoryInputStream in (pathData, numberOfBytes, false); | |||
| loadPathFromStream (in); | |||
| } | |||
| @@ -482,12 +482,12 @@ public: | |||
| transform.transformPoint (x3, y3); | |||
| transform.transformPoint (x4, y4); | |||
| const float x = jmin (x1, x2, x3, x4); | |||
| const float y = jmin (y1, y2, y3, y4); | |||
| const float rx = jmin (x1, x2, x3, x4); | |||
| const float ry = jmin (y1, y2, y3, y4); | |||
| return Rectangle (x, y, | |||
| jmax (x1, x2, x3, x4) - x, | |||
| jmax (y1, y2, y3, y4) - y); | |||
| return Rectangle (rx, ry, | |||
| jmax (x1, x2, x3, x4) - rx, | |||
| jmax (y1, y2, y3, y4) - ry); | |||
| } | |||
| /** Returns the smallest integer-aligned rectangle that completely contains this one. | |||
| @@ -338,7 +338,7 @@ compress_first_pass (j_compress_ptr cinfo, JSAMPIMAGE input_buf) | |||
| */ | |||
| METHODDEF(boolean) | |||
| compress_output (j_compress_ptr cinfo, JSAMPIMAGE input_buf) | |||
| compress_output (j_compress_ptr cinfo, JSAMPIMAGE) | |||
| { | |||
| my_coef_ptr coef = (my_coef_ptr) cinfo->coef; | |||
| JDIMENSION MCU_col_num; /* index of current MCU within row */ | |||
| @@ -338,7 +338,7 @@ null_convert (j_compress_ptr cinfo, | |||
| */ | |||
| METHODDEF(void) | |||
| null_method (j_compress_ptr cinfo) | |||
| null_method (j_compress_ptr) | |||
| { | |||
| /* no work needed */ | |||
| } | |||
| @@ -152,7 +152,7 @@ emit_dht (j_compress_ptr cinfo, int index, boolean is_ac) | |||
| LOCAL(void) | |||
| emit_dac (j_compress_ptr cinfo) | |||
| emit_dac (j_compress_ptr) | |||
| /* Emit a DAC marker */ | |||
| /* Since the useful info is so small, we want to emit all the tables in */ | |||
| /* one DAC marker. Therefore this routine does its own scan of the table. */ | |||
| @@ -72,7 +72,7 @@ typedef my_downsampler * my_downsample_ptr; | |||
| */ | |||
| METHODDEF(void) | |||
| start_pass_downsample (j_compress_ptr cinfo) | |||
| start_pass_downsample (j_compress_ptr) | |||
| { | |||
| /* no work for now */ | |||
| } | |||
| @@ -275,7 +275,7 @@ start_pass_coef2 (j_compress_ptr cinfo, J_BUF_MODE pass_mode) | |||
| */ | |||
| METHODDEF(boolean) | |||
| compress_output2 (j_compress_ptr cinfo, JSAMPIMAGE input_buf) | |||
| compress_output2 (j_compress_ptr cinfo, JSAMPIMAGE) | |||
| { | |||
| my_coef_ptr2 coef = (my_coef_ptr2) cinfo->coef; | |||
| JDIMENSION MCU_col_num; /* index of current MCU within row */ | |||
| @@ -166,7 +166,7 @@ skip_input_data (j_decompress_ptr cinfo, long num_bytes) | |||
| */ | |||
| METHODDEF(void) | |||
| term_source (j_decompress_ptr cinfo) | |||
| term_source (j_decompress_ptr) | |||
| { | |||
| /* no work necessary here */ | |||
| } | |||
| @@ -225,7 +225,7 @@ decompress_onepass (j_decompress_ptr cinfo, JSAMPIMAGE output_buf) | |||
| */ | |||
| METHODDEF(int) | |||
| dummy_consume_data (j_decompress_ptr cinfo) | |||
| dummy_consume_data (j_decompress_ptr) | |||
| { | |||
| return JPEG_SUSPENDED; /* Always indicate nothing was done */ | |||
| } | |||
| @@ -290,7 +290,7 @@ ycck_cmyk_convert (j_decompress_ptr cinfo, | |||
| */ | |||
| METHODDEF(void) | |||
| start_pass_dcolor (j_decompress_ptr cinfo) | |||
| start_pass_dcolor (j_decompress_ptr) | |||
| { | |||
| /* no work needed */ | |||
| } | |||
| @@ -143,7 +143,7 @@ start_pass_merged_upsample (j_decompress_ptr cinfo) | |||
| METHODDEF(void) | |||
| merged_2v_upsample (j_decompress_ptr cinfo, | |||
| JSAMPIMAGE input_buf, JDIMENSION *in_row_group_ctr, | |||
| JDIMENSION in_row_groups_avail, | |||
| JDIMENSION, | |||
| JSAMPARRAY output_buf, JDIMENSION *out_row_ctr, | |||
| JDIMENSION out_rows_avail) | |||
| /* 2:1 vertical sampling case: may need a spare row. */ | |||
| @@ -192,9 +192,9 @@ merged_2v_upsample (j_decompress_ptr cinfo, | |||
| METHODDEF(void) | |||
| merged_1v_upsample (j_decompress_ptr cinfo, | |||
| JSAMPIMAGE input_buf, JDIMENSION *in_row_group_ctr, | |||
| JDIMENSION in_row_groups_avail, | |||
| JDIMENSION, | |||
| JSAMPARRAY output_buf, JDIMENSION *out_row_ctr, | |||
| JDIMENSION out_rows_avail) | |||
| JDIMENSION) | |||
| /* 1:1 vertical sampling case: much easier, never need a spare row. */ | |||
| { | |||
| my_upsample_ptr upsample = (my_upsample_ptr) cinfo->upsample; | |||
| @@ -158,8 +158,8 @@ METHODDEF(void) | |||
| post_process_prepass (j_decompress_ptr cinfo, | |||
| JSAMPIMAGE input_buf, JDIMENSION *in_row_group_ctr, | |||
| JDIMENSION in_row_groups_avail, | |||
| JSAMPARRAY output_buf, JDIMENSION *out_row_ctr, | |||
| JDIMENSION out_rows_avail) | |||
| JSAMPARRAY, JDIMENSION *out_row_ctr, | |||
| JDIMENSION) | |||
| { | |||
| my_post_ptr post = (my_post_ptr) cinfo->post; | |||
| JDIMENSION old_next_row, num_rows; | |||
| @@ -200,8 +200,8 @@ post_process_prepass (j_decompress_ptr cinfo, | |||
| METHODDEF(void) | |||
| post_process_2pass (j_decompress_ptr cinfo, | |||
| JSAMPIMAGE input_buf, JDIMENSION *in_row_group_ctr, | |||
| JDIMENSION in_row_groups_avail, | |||
| JSAMPIMAGE, JDIMENSION *, | |||
| JDIMENSION, | |||
| JSAMPARRAY output_buf, JDIMENSION *out_row_ctr, | |||
| JDIMENSION out_rows_avail) | |||
| { | |||
| @@ -88,7 +88,7 @@ start_pass_upsample (j_decompress_ptr cinfo) | |||
| METHODDEF(void) | |||
| sep_upsample (j_decompress_ptr cinfo, | |||
| JSAMPIMAGE input_buf, JDIMENSION *in_row_group_ctr, | |||
| JDIMENSION in_row_groups_avail, | |||
| JDIMENSION, | |||
| JSAMPARRAY output_buf, JDIMENSION *out_row_ctr, | |||
| JDIMENSION out_rows_avail) | |||
| { | |||
| @@ -154,7 +154,7 @@ sep_upsample (j_decompress_ptr cinfo, | |||
| */ | |||
| METHODDEF(void) | |||
| fullsize_upsample (j_decompress_ptr cinfo, jpeg_component_info * compptr, | |||
| fullsize_upsample (j_decompress_ptr, jpeg_component_info *, | |||
| JSAMPARRAY input_data, JSAMPARRAY * output_data_ptr) | |||
| { | |||
| *output_data_ptr = input_data; | |||
| @@ -167,8 +167,8 @@ fullsize_upsample (j_decompress_ptr cinfo, jpeg_component_info * compptr, | |||
| */ | |||
| METHODDEF(void) | |||
| noop_upsample (j_decompress_ptr cinfo, jpeg_component_info * compptr, | |||
| JSAMPARRAY input_data, JSAMPARRAY * output_data_ptr) | |||
| noop_upsample (j_decompress_ptr, jpeg_component_info *, | |||
| JSAMPARRAY, JSAMPARRAY * output_data_ptr) | |||
| { | |||
| *output_data_ptr = NULL; /* safety check */ | |||
| } | |||
| @@ -230,7 +230,7 @@ int_upsample (j_decompress_ptr cinfo, jpeg_component_info * compptr, | |||
| */ | |||
| METHODDEF(void) | |||
| h2v1_upsample (j_decompress_ptr cinfo, jpeg_component_info * compptr, | |||
| h2v1_upsample (j_decompress_ptr cinfo, jpeg_component_info *, | |||
| JSAMPARRAY input_data, JSAMPARRAY * output_data_ptr) | |||
| { | |||
| JSAMPARRAY output_data = *output_data_ptr; | |||
| @@ -258,7 +258,7 @@ h2v1_upsample (j_decompress_ptr cinfo, jpeg_component_info * compptr, | |||
| */ | |||
| METHODDEF(void) | |||
| h2v2_upsample (j_decompress_ptr cinfo, jpeg_component_info * compptr, | |||
| h2v2_upsample (j_decompress_ptr cinfo, jpeg_component_info *, | |||
| JSAMPARRAY input_data, JSAMPARRAY * output_data_ptr) | |||
| { | |||
| JSAMPARRAY output_data = *output_data_ptr; | |||
| @@ -32,13 +32,13 @@ extern void free JPP((void *ptr)); | |||
| */ | |||
| GLOBAL(void *) | |||
| jpeg_get_small (j_common_ptr cinfo, size_t sizeofobject) | |||
| jpeg_get_small (j_common_ptr , size_t sizeofobject) | |||
| { | |||
| return (void *) malloc(sizeofobject); | |||
| } | |||
| GLOBAL(void) | |||
| jpeg_free_small (j_common_ptr cinfo, void * object, size_t sizeofobject) | |||
| jpeg_free_small (j_common_ptr , void * object, size_t) | |||
| { | |||
| free(object); | |||
| } | |||
| @@ -52,13 +52,13 @@ jpeg_free_small (j_common_ptr cinfo, void * object, size_t sizeofobject) | |||
| */ | |||
| GLOBAL(void FAR *) | |||
| jpeg_get_large (j_common_ptr cinfo, size_t sizeofobject) | |||
| jpeg_get_large (j_common_ptr, size_t sizeofobject) | |||
| { | |||
| return (void FAR *) malloc(sizeofobject); | |||
| } | |||
| GLOBAL(void) | |||
| jpeg_free_large (j_common_ptr cinfo, void FAR * object, size_t sizeofobject) | |||
| jpeg_free_large (j_common_ptr, void FAR * object, size_t) | |||
| { | |||
| free(object); | |||
| } | |||
| @@ -70,8 +70,8 @@ jpeg_free_large (j_common_ptr cinfo, void FAR * object, size_t sizeofobject) | |||
| */ | |||
| GLOBAL(long) | |||
| jpeg_mem_available (j_common_ptr cinfo, long min_bytes_needed, | |||
| long max_bytes_needed, long already_allocated) | |||
| jpeg_mem_available (j_common_ptr, long, | |||
| long max_bytes_needed, long) | |||
| { | |||
| return max_bytes_needed; | |||
| } | |||
| @@ -84,8 +84,8 @@ jpeg_mem_available (j_common_ptr cinfo, long min_bytes_needed, | |||
| */ | |||
| GLOBAL(void) | |||
| jpeg_open_backing_store (j_common_ptr cinfo, struct backing_store_struct *info, | |||
| long total_bytes_needed) | |||
| jpeg_open_backing_store (j_common_ptr cinfo, struct backing_store_struct *, | |||
| long ) | |||
| { | |||
| ERREXIT(cinfo, JERR_NO_BACKING_STORE); | |||
| } | |||
| @@ -97,13 +97,13 @@ jpeg_open_backing_store (j_common_ptr cinfo, struct backing_store_struct *info, | |||
| */ | |||
| GLOBAL(long) | |||
| jpeg_mem_init (j_common_ptr cinfo) | |||
| jpeg_mem_init (j_common_ptr) | |||
| { | |||
| return 0; /* just set max_memory_to_use to 0 */ | |||
| } | |||
| GLOBAL(void) | |||
| jpeg_mem_term (j_common_ptr cinfo) | |||
| jpeg_mem_term (j_common_ptr) | |||
| { | |||
| /* no work */ | |||
| } | |||
| @@ -242,7 +242,7 @@ select_ncolors (j_decompress_ptr cinfo, int Ncolors[]) | |||
| LOCAL(int) | |||
| output_value (j_decompress_ptr cinfo, int ci, int j, int maxj) | |||
| output_value (j_decompress_ptr, int, int j, int maxj) | |||
| /* Return j'th output value, where j will range from 0 to maxj */ | |||
| /* The output values must fall in 0..MAXJSAMPLE in increasing order */ | |||
| { | |||
| @@ -256,7 +256,7 @@ output_value (j_decompress_ptr cinfo, int ci, int j, int maxj) | |||
| LOCAL(int) | |||
| largest_input_value (j_decompress_ptr cinfo, int ci, int j, int maxj) | |||
| largest_input_value (j_decompress_ptr, int, int j, int maxj) | |||
| /* Return largest input value that should map to j'th output value */ | |||
| /* Must have largest(j=0) >= 0, and largest(j=maxj) >= MAXJSAMPLE */ | |||
| { | |||
| @@ -738,7 +738,7 @@ alloc_fs_workspace (j_decompress_ptr cinfo) | |||
| */ | |||
| METHODDEF(void) | |||
| start_pass_1_quant (j_decompress_ptr cinfo, boolean is_pre_scan) | |||
| start_pass_1_quant (j_decompress_ptr cinfo, boolean) | |||
| { | |||
| my_cquantize_ptr cquantize = (my_cquantize_ptr) cinfo->cquantize; | |||
| size_t arraysize; | |||
| @@ -795,7 +795,7 @@ start_pass_1_quant (j_decompress_ptr cinfo, boolean is_pre_scan) | |||
| */ | |||
| METHODDEF(void) | |||
| finish_pass_1_quant (j_decompress_ptr cinfo) | |||
| finish_pass_1_quant (j_decompress_ptr) | |||
| { | |||
| /* no work in 1-pass case */ | |||
| } | |||
| @@ -222,7 +222,7 @@ typedef my_cquantizer2 * my_cquantize_ptr2; | |||
| METHODDEF(void) | |||
| prescan_quantize (j_decompress_ptr cinfo, JSAMPARRAY input_buf, | |||
| JSAMPARRAY output_buf, int num_rows) | |||
| JSAMPARRAY, int num_rows) | |||
| { | |||
| my_cquantize_ptr2 cquantize = (my_cquantize_ptr2) cinfo->cquantize; | |||
| register JSAMPROW ptr; | |||
| @@ -1153,7 +1153,7 @@ finish_pass1 (j_decompress_ptr cinfo) | |||
| METHODDEF(void) | |||
| finish_pass2 (j_decompress_ptr cinfo) | |||
| finish_pass2 (j_decompress_ptr) | |||
| { | |||
| /* no work */ | |||
| } | |||
| @@ -729,7 +729,7 @@ trim_bottom_edge (j_compress_ptr dstinfo) | |||
| */ | |||
| GLOBAL(jvirt_barray_ptr *) | |||
| jtransform_adjust_parameters (j_decompress_ptr srcinfo, | |||
| jtransform_adjust_parameters (j_decompress_ptr, | |||
| j_compress_ptr dstinfo, | |||
| jvirt_barray_ptr *src_coef_arrays, | |||
| jpeg_transform_info *info) | |||
| @@ -884,7 +884,7 @@ jcopy_markers_setup (j_decompress_ptr srcinfo, JCOPY_OPTION option) | |||
| GLOBAL(void) | |||
| jcopy_markers_execute (j_decompress_ptr srcinfo, j_compress_ptr dstinfo, | |||
| JCOPY_OPTION option) | |||
| JCOPY_OPTION) | |||
| { | |||
| jpeg_saved_marker_ptr marker; | |||
| @@ -208,7 +208,7 @@ png_chunk_warning(png_structp png_ptr, png_const_charp warning_message) | |||
| * error function pointer in png_set_error_fn(). | |||
| */ | |||
| static void /* PRIVATE */ | |||
| png_default_error(png_structp png_ptr, png_const_charp error_message) | |||
| png_default_error(png_structp, png_const_charp error_message) | |||
| { | |||
| #ifndef PNG_NO_CONSOLE_IO | |||
| #ifdef PNG_ERROR_NUMBERS_SUPPORTED | |||
| @@ -2723,7 +2723,7 @@ png_do_read_interlace(png_structp png_ptr) | |||
| #endif /* PNG_READ_INTERLACING_SUPPORTED */ | |||
| void /* PRIVATE */ | |||
| png_read_filter_row(png_structp png_ptr, png_row_infop row_info, png_bytep row, | |||
| png_read_filter_row(png_structp, png_row_infop row_info, png_bytep row, | |||
| png_bytep prev_row, int filter) | |||
| { | |||
| png_debug(1, "in png_read_filter_row\n"); | |||
| @@ -1204,7 +1204,7 @@ png_set_invalid(png_structp png_ptr, png_infop info_ptr, int mask) | |||
| #ifdef PNG_ASSEMBLER_CODE_SUPPORTED | |||
| /* function was added to libpng 1.2.0 and should always exist by default */ | |||
| void PNGAPI | |||
| png_set_asm_flags (png_structp png_ptr, png_uint_32 asm_flags) | |||
| png_set_asm_flags (png_structp png_ptr, png_uint_32) | |||
| { | |||
| /* Obsolete as of libpng-1.2.20 and will be removed from libpng-1.4.0 */ | |||
| if (png_ptr != NULL) | |||
| @@ -1214,8 +1214,8 @@ png_set_asm_flags (png_structp png_ptr, png_uint_32 asm_flags) | |||
| /* this function was added to libpng 1.2.0 */ | |||
| void PNGAPI | |||
| png_set_mmx_thresholds (png_structp png_ptr, | |||
| png_byte mmx_bitdepth_threshold, | |||
| png_uint_32 mmx_rowbytes_threshold) | |||
| png_byte, | |||
| png_uint_32) | |||
| { | |||
| /* Obsolete as of libpng-1.2.20 and will be removed from libpng-1.4.0 */ | |||
| if (png_ptr == NULL) | |||
| @@ -292,7 +292,7 @@ void File::getFileTimesInternal (int64& modificationTime, int64& accessTime, int | |||
| } | |||
| } | |||
| bool File::setFileTimesInternal (int64 modificationTime, int64 accessTime, int64 creationTime) const | |||
| bool File::setFileTimesInternal (int64 modificationTime, int64 accessTime, int64 /*creationTime*/) const | |||
| { | |||
| struct utimbuf times; | |||
| times.actime = (time_t) (accessTime / 1000); | |||
| @@ -54,7 +54,7 @@ public: | |||
| virtual HIViewRef attachView (WindowRef windowRef, HIViewRef rootView) = 0; | |||
| virtual void removeView (HIViewRef embeddedView) = 0; | |||
| virtual void mouseDown (int x, int y) {} | |||
| virtual void mouseDown (int, int) {} | |||
| virtual void paint() {} | |||
| virtual bool getEmbeddedViewSize (int& w, int& h) | |||
| @@ -224,7 +224,7 @@ public: | |||
| recursiveHIViewRepaint (HIViewGetRoot (wrapperWindow)); | |||
| } | |||
| OSStatus carbonEventHandler (EventHandlerCallRef nextHandlerRef, | |||
| OSStatus carbonEventHandler (EventHandlerCallRef /*nextHandlerRef*/, | |||
| EventRef event) | |||
| { | |||
| switch (GetEventKind (event)) | |||
| @@ -338,7 +338,7 @@ public: | |||
| { | |||
| StringArray s; | |||
| HeapBlock <OSType> types; | |||
| const int num = getAllDataSourcesForDevice (deviceID, input, types); | |||
| const int num = getAllDataSourcesForDevice (deviceID, types); | |||
| for (int i = 0; i < num; ++i) | |||
| { | |||
| @@ -383,7 +383,7 @@ public: | |||
| if (OK (AudioObjectGetPropertyData (deviceID, &pa, 0, 0, &size, ¤tSourceID))) | |||
| { | |||
| HeapBlock <OSType> types; | |||
| const int num = getAllDataSourcesForDevice (deviceID, input, types); | |||
| const int num = getAllDataSourcesForDevice (deviceID, types); | |||
| for (int i = 0; i < num; ++i) | |||
| { | |||
| @@ -404,7 +404,7 @@ public: | |||
| if (deviceID != 0) | |||
| { | |||
| HeapBlock <OSType> types; | |||
| const int num = getAllDataSourcesForDevice (deviceID, input, types); | |||
| const int num = getAllDataSourcesForDevice (deviceID, types); | |||
| if (((unsigned int) index) < (unsigned int) num) | |||
| { | |||
| @@ -798,12 +798,12 @@ private: | |||
| CoreAudioInternal& operator= (const CoreAudioInternal&); | |||
| //============================================================================== | |||
| static OSStatus audioIOProc (AudioDeviceID inDevice, | |||
| const AudioTimeStamp* inNow, | |||
| static OSStatus audioIOProc (AudioDeviceID /*inDevice*/, | |||
| const AudioTimeStamp* /*inNow*/, | |||
| const AudioBufferList* inInputData, | |||
| const AudioTimeStamp* inInputTime, | |||
| const AudioTimeStamp* /*inInputTime*/, | |||
| AudioBufferList* outOutputData, | |||
| const AudioTimeStamp* inOutputTime, | |||
| const AudioTimeStamp* /*inOutputTime*/, | |||
| void* device) | |||
| { | |||
| static_cast <CoreAudioInternal*> (device)->audioCallback (inInputData, outOutputData); | |||
| @@ -837,7 +837,7 @@ private: | |||
| } | |||
| //============================================================================== | |||
| static int getAllDataSourcesForDevice (AudioDeviceID deviceID, const bool input, HeapBlock <OSType>& types) | |||
| static int getAllDataSourcesForDevice (AudioDeviceID deviceID, HeapBlock <OSType>& types) | |||
| { | |||
| AudioObjectPropertyAddress pa; | |||
| pa.mSelector = kAudioDevicePropertyDataSources; | |||
| @@ -225,7 +225,7 @@ public: | |||
| AffineTransform t (AffineTransform::scale (1.0f, -1.0f).translated (0, sourceImage.getHeight()).followedBy (transform)); | |||
| applyTransform (t); | |||
| CGRect r = CGRectMake (0, 0, sourceImage.getWidth(), sourceImage.getHeight()); | |||
| CGRect r = CGRectMake (srcClip.getX(), srcClip.getY(), srcClip.getWidth(), srcClip.getHeight()); | |||
| CGContextClipToMask (context, r, image); | |||
| applyTransform (t.inverted()); | |||
| @@ -315,12 +315,12 @@ void MidiOutput::reset() | |||
| { | |||
| } | |||
| bool MidiOutput::getVolume (float& leftVol, float& rightVol) | |||
| bool MidiOutput::getVolume (float& /*leftVol*/, float& /*rightVol*/) | |||
| { | |||
| return false; | |||
| } | |||
| void MidiOutput::setVolume (float leftVol, float rightVol) | |||
| void MidiOutput::setVolume (float /*leftVol*/, float /*rightVol*/) | |||
| { | |||
| } | |||
| @@ -476,7 +476,7 @@ namespace CoreMidiCallbacks | |||
| static void midiInputProc (const MIDIPacketList* pktlist, | |||
| void* readProcRefCon, | |||
| void* srcConnRefCon) | |||
| void* /*srcConnRefCon*/) | |||
| { | |||
| double time = Time::getMillisecondCounterHiRes() * 0.001; | |||
| const double originalTime = time; | |||
| @@ -658,12 +658,12 @@ void MidiOutput::reset() | |||
| { | |||
| } | |||
| bool MidiOutput::getVolume (float& leftVol, float& rightVol) | |||
| bool MidiOutput::getVolume (float& /*leftVol*/, float& /*rightVol*/) | |||
| { | |||
| return false; | |||
| } | |||
| void MidiOutput::setVolume (float leftVol, float rightVol) | |||
| void MidiOutput::setVolume (float /*leftVol*/, float /*rightVol*/) | |||
| { | |||
| } | |||
| @@ -66,6 +66,7 @@ using namespace JUCE_NAMESPACE; | |||
| - (BOOL) panel: (id) sender shouldShowFilename: (NSString*) filename | |||
| { | |||
| (void) sender; | |||
| const File f (nsStringToJuce (filename)); | |||
| for (int i = filters->size(); --i >= 0;) | |||
| @@ -412,6 +412,8 @@ END_JUCE_NAMESPACE | |||
| - (void) menuNeedsUpdate: (NSMenu*) menu; | |||
| { | |||
| (void) menu; | |||
| if (JuceMainMenuHandler::instance != 0) | |||
| JuceMainMenuHandler::instance->updateMenus(); | |||
| } | |||
| @@ -236,31 +236,37 @@ using namespace JUCE_NAMESPACE; | |||
| - (NSApplicationTerminateReply) applicationShouldTerminate: (NSApplication*) app | |||
| { | |||
| (void) app; | |||
| return redirector->shouldTerminate(); | |||
| } | |||
| - (BOOL) application: (NSApplication*) app openFile: (NSString*) filename | |||
| { | |||
| (void) app; | |||
| return redirector->openFile (filename); | |||
| } | |||
| - (void) application: (NSApplication*) sender openFiles: (NSArray*) filenames | |||
| { | |||
| (void) sender; | |||
| return redirector->openFiles (filenames); | |||
| } | |||
| - (void) applicationDidBecomeActive: (NSNotification*) aNotification | |||
| - (void) applicationDidBecomeActive: (NSNotification*) notification | |||
| { | |||
| (void) notification; | |||
| redirector->focusChanged(); | |||
| } | |||
| - (void) applicationDidResignActive: (NSNotification*) aNotification | |||
| - (void) applicationDidResignActive: (NSNotification*) notification | |||
| { | |||
| (void) notification; | |||
| redirector->focusChanged(); | |||
| } | |||
| - (void) applicationWillUnhide: (NSNotification*) aNotification | |||
| - (void) applicationWillUnhide: (NSNotification*) notification | |||
| { | |||
| (void) notification; | |||
| redirector->focusChanged(); | |||
| } | |||
| @@ -85,7 +85,7 @@ bool AlertWindow::showNativeDialogBox (const String& title, | |||
| } | |||
| //============================================================================== | |||
| bool DragAndDropContainer::performExternalDragDropOfFiles (const StringArray& files, const bool canMoveFiles) | |||
| bool DragAndDropContainer::performExternalDragDropOfFiles (const StringArray& files, const bool /*canMoveFiles*/) | |||
| { | |||
| if (files.size() == 0) | |||
| return false; | |||
| @@ -140,7 +140,7 @@ bool DragAndDropContainer::performExternalDragDropOfFiles (const StringArray& fi | |||
| return true; | |||
| } | |||
| bool DragAndDropContainer::performExternalDragDropOfText (const String& text) | |||
| bool DragAndDropContainer::performExternalDragDropOfText (const String& /*text*/) | |||
| { | |||
| jassertfalse // not implemented! | |||
| return false; | |||
| @@ -106,7 +106,7 @@ void* MouseCursor::createStandardMouseCursor (MouseCursor::StandardCursorType ty | |||
| return c; | |||
| } | |||
| void MouseCursor::deleteMouseCursor (void* const cursorHandle, const bool isStandard) | |||
| void MouseCursor::deleteMouseCursor (void* const cursorHandle, const bool /*isStandard*/) | |||
| { | |||
| [((NSCursor*) cursorHandle) release]; | |||
| } | |||
| @@ -145,7 +145,7 @@ void* NSViewComponent::getView() const | |||
| return info == 0 ? 0 : info->view; | |||
| } | |||
| void NSViewComponent::paint (Graphics& g) | |||
| void NSViewComponent::paint (Graphics&) | |||
| { | |||
| } | |||
| @@ -421,11 +421,13 @@ END_JUCE_NAMESPACE | |||
| - (BOOL) acceptsFirstMouse: (NSEvent*) ev | |||
| { | |||
| (void) ev; | |||
| return YES; | |||
| } | |||
| - (void) frameChanged: (NSNotification*) n | |||
| { | |||
| (void) n; | |||
| if (owner != 0) | |||
| owner->redirectMovedOrResized(); | |||
| } | |||
| @@ -483,10 +485,13 @@ END_JUCE_NAMESPACE | |||
| - (void) doCommandBySelector: (SEL) aSelector | |||
| { | |||
| (void) aSelector; | |||
| } | |||
| - (void) setMarkedText: (id) aString selectedRange: (NSRange) selectionRange | |||
| { | |||
| (void) selectionRange; | |||
| if (stringBeingComposed == 0) | |||
| stringBeingComposed = new String(); | |||
| @@ -567,6 +572,7 @@ END_JUCE_NAMESPACE | |||
| - (NSRect) firstRectForCharacterRange: (NSRange) theRange | |||
| { | |||
| (void) theRange; | |||
| JUCE_NAMESPACE::Component* const comp = dynamic_cast <JUCE_NAMESPACE::Component*> (owner->findCurrentTextInputTarget()); | |||
| if (comp == 0) | |||
| @@ -582,6 +588,7 @@ END_JUCE_NAMESPACE | |||
| - (unsigned int) characterIndexForPoint: (NSPoint) thePoint | |||
| { | |||
| (void) thePoint; | |||
| return NSNotFound; | |||
| } | |||
| @@ -667,6 +674,7 @@ END_JUCE_NAMESPACE | |||
| - (BOOL) prepareForDragOperation: (id <NSDraggingInfo>) sender | |||
| { | |||
| (void) sender; | |||
| return YES; | |||
| } | |||
| @@ -677,6 +685,7 @@ END_JUCE_NAMESPACE | |||
| - (void) concludeDragOperation: (id <NSDraggingInfo>) sender | |||
| { | |||
| (void) sender; | |||
| } | |||
| @end | |||
| @@ -705,11 +714,13 @@ END_JUCE_NAMESPACE | |||
| - (BOOL) windowShouldClose: (id) window | |||
| { | |||
| (void) window; | |||
| return owner == 0 || owner->windowShouldClose(); | |||
| } | |||
| - (NSRect) constrainFrameRect: (NSRect) frameRect toScreen: (NSScreen*) screen | |||
| { | |||
| (void) screen; | |||
| if (owner != 0) | |||
| frameRect = owner->constrainRect (frameRect); | |||
| @@ -718,6 +729,7 @@ END_JUCE_NAMESPACE | |||
| - (NSSize) windowWillResize: (NSWindow*) window toSize: (NSSize) proposedFrameSize | |||
| { | |||
| (void) window; | |||
| if (isZooming) | |||
| return proposedFrameSize; | |||
| @@ -740,6 +752,8 @@ END_JUCE_NAMESPACE | |||
| - (void) windowWillMove: (NSNotification*) notification | |||
| { | |||
| (void) notification; | |||
| if (JUCE_NAMESPACE::Component::getCurrentlyModalComponent() != 0 | |||
| && owner->getComponent()->isCurrentlyBlockedByAnotherModalComponent() | |||
| && (owner->getStyleFlags() & JUCE_NAMESPACE::ComponentPeer::windowHasTitleBar) != 0) | |||
| @@ -236,8 +236,9 @@ public: | |||
| runLoopThread->signalThreadShouldExit(); | |||
| } | |||
| - (void) connection: (NSURLConnection*) connection didReceiveResponse: (NSURLResponse*) response | |||
| - (void) connection: (NSURLConnection*) conn didReceiveResponse: (NSURLResponse*) response | |||
| { | |||
| (void) conn; | |||
| [dataLock lock]; | |||
| [data setLength: 0]; | |||
| [dataLock unlock]; | |||
| @@ -245,8 +246,9 @@ public: | |||
| contentLength = [response expectedContentLength]; | |||
| } | |||
| - (void) connection: (NSURLConnection*) connection didFailWithError: (NSError*) error | |||
| - (void) connection: (NSURLConnection*) conn didFailWithError: (NSError*) error | |||
| { | |||
| (void) conn; | |||
| DBG (nsStringToJuce ([error description])); | |||
| hasFailed = true; | |||
| initialised = true; | |||
| @@ -255,16 +257,18 @@ public: | |||
| runLoopThread->signalThreadShouldExit(); | |||
| } | |||
| - (void) connection: (NSURLConnection*) connection didReceiveData: (NSData*) newData | |||
| - (void) connection: (NSURLConnection*) conn didReceiveData: (NSData*) newData | |||
| { | |||
| (void) conn; | |||
| [dataLock lock]; | |||
| [data appendData: newData]; | |||
| [dataLock unlock]; | |||
| initialised = true; | |||
| } | |||
| - (void) connectionDidFinishLoading: (NSURLConnection*) connection | |||
| - (void) connectionDidFinishLoading: (NSURLConnection*) conn | |||
| { | |||
| (void) conn; | |||
| hasFinished = true; | |||
| initialised = true; | |||
| @@ -412,7 +416,7 @@ int64 juce_getInternetFileContentLength (void* handle) | |||
| return -1; | |||
| } | |||
| int juce_seekInInternetFile (void* handle, int newPosition) | |||
| int juce_seekInInternetFile (void* handle, int /*newPosition*/) | |||
| { | |||
| JuceURLConnection* const s = (JuceURLConnection*) handle; | |||
| @@ -88,7 +88,7 @@ void Thread::yield() | |||
| sched_yield(); | |||
| } | |||
| void Thread::setCurrentThreadAffinityMask (const uint32 affinityMask) | |||
| void Thread::setCurrentThreadAffinityMask (const uint32 /*affinityMask*/) | |||
| { | |||
| // xxx | |||
| jassertfalse | |||
| @@ -119,7 +119,7 @@ void Process::terminate() | |||
| exit (0); | |||
| } | |||
| void Process::setPriority (ProcessPriority p) | |||
| void Process::setPriority (ProcessPriority) | |||
| { | |||
| // xxx | |||
| } | |||
| @@ -63,6 +63,10 @@ END_JUCE_NAMESPACE | |||
| frame: (WebFrame*) frame | |||
| decisionListener: (id <WebPolicyDecisionListener>) listener | |||
| { | |||
| (void) sender; | |||
| (void) request; | |||
| (void) frame; | |||
| NSURL* url = [actionInformation valueForKey: @"WebActionOriginalURLKey"]; | |||
| if (ownerComponent->pageAboutToLoad (nsStringToJuce ([url absoluteString]))) | |||
| @@ -214,7 +218,7 @@ void WebBrowserComponent::refresh() | |||
| } | |||
| //============================================================================== | |||
| void WebBrowserComponent::paint (Graphics& g) | |||
| void WebBrowserComponent::paint (Graphics&) | |||
| { | |||
| } | |||
| @@ -263,7 +267,7 @@ void WebBrowserComponent::visibilityChanged() | |||
| checkWindowAssociation(); | |||
| } | |||
| bool WebBrowserComponent::pageAboutToLoad (const String& url) | |||
| bool WebBrowserComponent::pageAboutToLoad (const String&) | |||
| { | |||
| return true; | |||
| } | |||
| @@ -824,9 +824,9 @@ void XmlElement::insertChildElement (XmlElement* const newNode, | |||
| } | |||
| } | |||
| XmlElement* XmlElement::createNewChildElement (const String& tagName) | |||
| XmlElement* XmlElement::createNewChildElement (const String& childTagName) | |||
| { | |||
| XmlElement* const newElement = new XmlElement (tagName); | |||
| XmlElement* const newElement = new XmlElement (childTagName); | |||
| addChildElement (newElement); | |||
| return newElement; | |||
| } | |||
| @@ -171,10 +171,10 @@ bool PropertiesFile::needsToBeSaved() const | |||
| return needsWriting; | |||
| } | |||
| void PropertiesFile::setNeedsToBeSaved (const bool needsToBeSaved) | |||
| void PropertiesFile::setNeedsToBeSaved (const bool needsToBeSaved_) | |||
| { | |||
| const ScopedLock sl (getLock()); | |||
| needsWriting = needsToBeSaved; | |||
| needsWriting = needsToBeSaved_; | |||
| } | |||
| bool PropertiesFile::save() | |||
| @@ -291,14 +291,14 @@ public: | |||
| For example, if the item is an object, you might want to call it and tell | |||
| it that it's being selected. | |||
| */ | |||
| virtual void itemSelected (SelectableItemType item) {} | |||
| virtual void itemSelected (SelectableItemType item) { (void) item; } | |||
| /** Can be overridden to do special handling when an item is deselected. | |||
| For example, if the item is an object, you might want to call it and tell | |||
| it that it's being deselected. | |||
| */ | |||
| virtual void itemDeselected (SelectableItemType item) {} | |||
| virtual void itemDeselected (SelectableItemType item) { (void) item; } | |||
| /** Used internally, but can be called to force a change message to be sent to the ChangeListeners. | |||
| */ | |||