mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-02-02 03:20:06 +00:00
Introjucer: fixed jucer snapping grid. Added extra group sort option.
This commit is contained in:
parent
0908261245
commit
b6e24c4b39
3 changed files with 65 additions and 38 deletions
|
|
@ -33,6 +33,7 @@
|
|||
#include "../Code Editor/jucer_SourceCodeEditor.h"
|
||||
|
||||
void createGUIEditorMenu (PopupMenu&);
|
||||
void handleGUIEditorMenuCommand (int);
|
||||
void registerGUIEditorCommands();
|
||||
|
||||
//==============================================================================
|
||||
|
|
@ -326,6 +327,10 @@ public:
|
|||
{
|
||||
settings->appearance.selectPresetScheme (menuItemID - colourSchemeBaseID);
|
||||
}
|
||||
else
|
||||
{
|
||||
handleGUIEditorMenuCommand (menuItemID);
|
||||
}
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
|
|
|
|||
|
|
@ -1099,6 +1099,9 @@ Image JucerDocumentEditor::createComponentLayerSnapshot() const
|
|||
return Image();
|
||||
}
|
||||
|
||||
const int gridSnapMenuItemBase = 0x8723620;
|
||||
const int snapSizes[] = { 2, 3, 4, 5, 6, 8, 10, 12, 16, 20, 24, 32 };
|
||||
|
||||
void createGUIEditorMenu (PopupMenu& menu)
|
||||
{
|
||||
menu.addCommandItem (commandManager, JucerCommandIDs::editCompLayout);
|
||||
|
|
@ -1140,12 +1143,12 @@ void createGUIEditorMenu (PopupMenu& menu)
|
|||
JucerDocumentEditor* holder = JucerDocumentEditor::getActiveDocumentHolder();
|
||||
|
||||
{
|
||||
const int snapSizes[] = { 2, 3, 4, 5, 6, 8, 10, 12, 16, 20, 24, 32 };
|
||||
const int currentSnapSize = holder != nullptr ? holder->getDocument()->getSnappingGridSize() : -1;
|
||||
|
||||
PopupMenu m;
|
||||
for (int i = 0; i < numElementsInArray (snapSizes); ++i)
|
||||
m.addItem (300 + i, String (snapSizes[i]) + " pixels", true, snapSizes[i] == currentSnapSize);
|
||||
m.addItem (gridSnapMenuItemBase + i, String (snapSizes[i]) + " pixels",
|
||||
true, snapSizes[i] == currentSnapSize);
|
||||
|
||||
menu.addSubMenu ("Grid size", m, currentSnapSize >= 0);
|
||||
}
|
||||
|
|
@ -1168,6 +1171,23 @@ void createGUIEditorMenu (PopupMenu& menu)
|
|||
}
|
||||
}
|
||||
|
||||
void handleGUIEditorMenuCommand (int menuItemID)
|
||||
{
|
||||
if (JucerDocumentEditor* ed = JucerDocumentEditor::getActiveDocumentHolder())
|
||||
{
|
||||
int gridIndex = menuItemID - gridSnapMenuItemBase;
|
||||
|
||||
if (isPositiveAndBelow (gridIndex, numElementsInArray (snapSizes)))
|
||||
{
|
||||
JucerDocument& doc = *ed->getDocument();
|
||||
|
||||
doc.setSnappingGrid (snapSizes [gridIndex],
|
||||
doc.isSnapActive (false),
|
||||
doc.isSnapShown());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void registerGUIEditorCommands()
|
||||
{
|
||||
JucerDocumentEditor dh (nullptr);
|
||||
|
|
|
|||
|
|
@ -32,8 +32,8 @@
|
|||
#include "jucer_ProjectContentComponent.h"
|
||||
|
||||
//==============================================================================
|
||||
GroupTreeViewItem::GroupTreeViewItem (const Project::Item& item_)
|
||||
: ProjectTreeViewBase (item_)
|
||||
GroupTreeViewItem::GroupTreeViewItem (const Project::Item& i)
|
||||
: ProjectTreeViewBase (i)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
@ -94,33 +94,6 @@ void GroupTreeViewItem::showDocument()
|
|||
pcc->setEditorComponent (new GroupInformationComponent (item), nullptr);
|
||||
}
|
||||
|
||||
void GroupTreeViewItem::showPopupMenu()
|
||||
{
|
||||
PopupMenu m;
|
||||
addCreateFileMenuItems (m);
|
||||
|
||||
m.addSeparator();
|
||||
|
||||
if (isOpen())
|
||||
m.addItem (4, "Collapse all Sub-groups");
|
||||
else
|
||||
m.addItem (5, "Expand all Sub-groups");
|
||||
|
||||
m.addSeparator();
|
||||
m.addItem (6, "Enable compiling of all enclosed files");
|
||||
m.addItem (7, "Disable compiling of all enclosed files");
|
||||
|
||||
m.addSeparator();
|
||||
m.addItem (3, "Sort Contents Alphabetically");
|
||||
m.addSeparator();
|
||||
m.addItem (1, "Rename...");
|
||||
|
||||
if (! isRoot())
|
||||
m.addItem (2, "Delete");
|
||||
|
||||
launchPopupMenu (m);
|
||||
}
|
||||
|
||||
static void openOrCloseAllSubGroups (TreeViewItem& item, bool shouldOpen)
|
||||
{
|
||||
item.setOpen (shouldOpen);
|
||||
|
|
@ -139,17 +112,46 @@ static void setFilesToCompile (Project::Item item, const bool shouldCompile)
|
|||
setFilesToCompile (item.getChild (i), shouldCompile);
|
||||
}
|
||||
|
||||
void GroupTreeViewItem::showPopupMenu()
|
||||
{
|
||||
PopupMenu m;
|
||||
addCreateFileMenuItems (m);
|
||||
|
||||
m.addSeparator();
|
||||
|
||||
if (isOpen())
|
||||
m.addItem (1, "Collapse all Sub-groups");
|
||||
else
|
||||
m.addItem (2, "Expand all Sub-groups");
|
||||
|
||||
m.addSeparator();
|
||||
m.addItem (3, "Enable compiling of all enclosed files");
|
||||
m.addItem (4, "Disable compiling of all enclosed files");
|
||||
|
||||
m.addSeparator();
|
||||
m.addItem (5, "Sort Items Alphabetically");
|
||||
m.addItem (6, "Sort Items Alphabetically (Groups first)");
|
||||
m.addSeparator();
|
||||
m.addItem (7, "Rename...");
|
||||
|
||||
if (! isRoot())
|
||||
m.addItem (8, "Delete");
|
||||
|
||||
launchPopupMenu (m);
|
||||
}
|
||||
|
||||
void GroupTreeViewItem::handlePopupMenuResult (int resultCode)
|
||||
{
|
||||
switch (resultCode)
|
||||
{
|
||||
case 1: triggerAsyncRename (item); break;
|
||||
case 2: deleteAllSelectedItems(); break;
|
||||
case 3: item.sortAlphabetically (false); break;
|
||||
case 4: openOrCloseAllSubGroups (*this, false); break;
|
||||
case 5: openOrCloseAllSubGroups (*this, true); break;
|
||||
case 6: setFilesToCompile (item, true); break;
|
||||
case 7: setFilesToCompile (item, false); break;
|
||||
case 1: openOrCloseAllSubGroups (*this, false); break;
|
||||
case 2: openOrCloseAllSubGroups (*this, true); break;
|
||||
case 3: setFilesToCompile (item, true); break;
|
||||
case 4: setFilesToCompile (item, false); break;
|
||||
case 5: item.sortAlphabetically (false); break;
|
||||
case 6: item.sortAlphabetically (true); break;
|
||||
case 7: triggerAsyncRename (item); break;
|
||||
case 8: deleteAllSelectedItems(); break;
|
||||
default: processCreateFileMenuItem (resultCode); break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue