diff --git a/extras/Jucer (experimental)/Source/model/Component Types/jucer_TextButton.h b/extras/Jucer (experimental)/Source/model/Component Types/jucer_TextButton.h index 9fcfbaf3e2..20e54c99e6 100644 --- a/extras/Jucer (experimental)/Source/model/Component Types/jucer_TextButton.h +++ b/extras/Jucer (experimental)/Source/model/Component Types/jucer_TextButton.h @@ -23,7 +23,7 @@ ============================================================================== */ -#include "jucer_ComponentDocument.h" +#include "../jucer_ComponentDocument.h" //============================================================================== diff --git a/extras/Jucer (experimental)/Source/model/Component Types/jucer_ToggleButton.h b/extras/Jucer (experimental)/Source/model/Component Types/jucer_ToggleButton.h index 5e98886d47..c298471c6f 100644 --- a/extras/Jucer (experimental)/Source/model/Component Types/jucer_ToggleButton.h +++ b/extras/Jucer (experimental)/Source/model/Component Types/jucer_ToggleButton.h @@ -23,7 +23,7 @@ ============================================================================== */ -#include "jucer_ComponentDocument.h" +#include "../jucer_ComponentDocument.h" //============================================================================== diff --git a/extras/Jucer (experimental)/Source/model/jucer_ComponentDocument.cpp b/extras/Jucer (experimental)/Source/model/jucer_ComponentDocument.cpp index c4ffba72ca..6134e03ac3 100644 --- a/extras/Jucer (experimental)/Source/model/jucer_ComponentDocument.cpp +++ b/extras/Jucer (experimental)/Source/model/jucer_ComponentDocument.cpp @@ -451,10 +451,22 @@ public: { for (int i = 0; i < items.size(); ++i) { + Component* comp = items.getUnchecked(i); jassert (items.getUnchecked(i) != 0); - const ValueTree v (document.getComponentState (items.getUnchecked(i))); + const ValueTree v (document.getComponentState (comp)); draggedComponents.add (v); - originalPositions.add (stringToComponentBounds (v [compBoundsProperty])); + + const Rectangle pos (stringToComponentBounds (v [compBoundsProperty])); + originalPositions.add (pos); + + const Rectangle floatPos ((float) pos.getX(), (float) pos.getY(), + (float) pos.getWidth(), (float) pos.getHeight()); + verticalSnapPositions.add (floatPos.getX()); + verticalSnapPositions.add (floatPos.getCentreX()); + verticalSnapPositions.add (floatPos.getRight()); + horizontalSnapPositions.add (floatPos.getY()); + verticalSnapPositions.add (floatPos.getCentreY()); + horizontalSnapPositions.add (floatPos.getBottom()); } document.beginNewTransaction(); @@ -479,10 +491,29 @@ public: v.setProperty (compBoundsProperty, componentBoundsToString (newBounds), document.getUndoManager()); } + const Array getVerticalSnapPositions (const Point& distance) const + { + Array p (verticalSnapPositions); + for (int i = p.size(); --i >= 0;) + p.set (i, p.getUnchecked(i) + distance.getX()); + + return p; + } + + const Array getHorizontalSnapPositions (const Point& distance) const + { + Array p (horizontalSnapPositions); + for (int i = p.size(); --i >= 0;) + p.set (i, p.getUnchecked(i) + distance.getY()); + + return p; + } + private: ComponentDocument& document; Array draggedComponents; Array > originalPositions; + Array verticalSnapPositions, horizontalSnapPositions; const ResizableBorderComponent::Zone zone; }; diff --git a/extras/Jucer (experimental)/Source/ui/Component Editor/jucer_ComponentEditor.cpp b/extras/Jucer (experimental)/Source/ui/Component Editor/jucer_ComponentEditor.cpp index f80fec6674..ee3e40bdaa 100644 --- a/extras/Jucer (experimental)/Source/ui/Component Editor/jucer_ComponentEditor.cpp +++ b/extras/Jucer (experimental)/Source/ui/Component Editor/jucer_ComponentEditor.cpp @@ -444,12 +444,12 @@ ComponentEditor::ComponentEditor (OpenDocumentManager::Document* document, project (project_), componentDocument (componentDocument_) { - jassert (componentDocument != 0); - setOpaque (true); addAndMakeVisible (viewport = new Viewport()); - viewport->setViewedComponent (new ComponentCanvas (*this)); + + if (document != 0) + viewport->setViewedComponent (new ComponentCanvas (*this)); } ComponentEditor::~ComponentEditor() @@ -507,11 +507,11 @@ bool ComponentEditor::perform (const InvocationInfo& info) switch (info.commandID) { case CommandIDs::undo: - jassertfalse //xxx + getDocument().getUndoManager()->undo(); return true; case CommandIDs::redo: - jassertfalse //xxx + getDocument().getUndoManager()->redo(); return true; default: diff --git a/extras/Jucer (experimental)/Source/ui/jucer_MainWindow.cpp b/extras/Jucer (experimental)/Source/ui/jucer_MainWindow.cpp index d0cba35df6..d09ab6a077 100644 --- a/extras/Jucer (experimental)/Source/ui/jucer_MainWindow.cpp +++ b/extras/Jucer (experimental)/Source/ui/jucer_MainWindow.cpp @@ -66,6 +66,9 @@ MainWindow::MainWindow() DocumentEditorComponent dec (0); commandManager->registerAllCommandsForTarget (&dec); + + ComponentEditor compEd (0, 0, 0); + commandManager->registerAllCommandsForTarget (&compEd); } commandManager->getKeyMappings()->resetToDefaultMappings(); diff --git a/extras/Jucer (experimental)/Source/ui/jucer_MainWindow.h b/extras/Jucer (experimental)/Source/ui/jucer_MainWindow.h index bb26facf17..61ddc99bf5 100644 --- a/extras/Jucer (experimental)/Source/ui/jucer_MainWindow.h +++ b/extras/Jucer (experimental)/Source/ui/jucer_MainWindow.h @@ -27,7 +27,7 @@ #define __JUCER_MAINWINDOW_JUCEHEADER__ #include "jucer_ProjectContentComponent.h" - +#include "Component Editor/jucer_ComponentEditor.h" //============================================================================== /** diff --git a/extras/browser plugins/wrapper/juce_NPAPI_GlueCode.cpp b/extras/browser plugins/wrapper/juce_NPAPI_GlueCode.cpp index ca74a131f9..f2a6db533c 100644 --- a/extras/browser plugins/wrapper/juce_NPAPI_GlueCode.cpp +++ b/extras/browser plugins/wrapper/juce_NPAPI_GlueCode.cpp @@ -400,7 +400,7 @@ public: setVisible (true); oldWinProc = SubclassWindow (parentHWND, (WNDPROC) interceptingWinProc); - SetWindowLongPtr (parentHWND, GWL_USERDATA, (LONG_PTR) this); + SetWindowLongPtr (parentHWND, GWLP_USERDATA, (LONG_PTR) this); resizeToParentWindow (window->width, window->height); }