LMMS
Loading...
Searching...
No Matches
juce_MenuBarComponent.h
Go to the documentation of this file.
1/*
2 ==============================================================================
3
4 This file is part of the JUCE library.
5 Copyright (c) 2022 - Raw Material Software Limited
6
7 JUCE is an open source library subject to commercial or open-source
8 licensing.
9
10 By using JUCE, you agree to the terms of both the JUCE 7 End-User License
11 Agreement and JUCE Privacy Policy.
12
13 End User License Agreement: www.juce.com/juce-7-licence
14 Privacy Policy: www.juce.com/juce-privacy-policy
15
16 Or: You may also use this code under the terms of the GPL v3 (see
17 www.gnu.org/licenses).
18
19 JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
20 EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
21 DISCLAIMED.
22
23 ==============================================================================
24*/
25
26namespace juce
27{
28
29//==============================================================================
39 private Timer
40{
41public:
42 //==============================================================================
50
52 ~MenuBarComponent() override;
53
54 //==============================================================================
60 void setModel (MenuBarModel* newModel);
61
63 MenuBarModel* getModel() const noexcept;
64
65 //==============================================================================
71 void showMenu (int menuIndex);
72
73 //==============================================================================
75 void paint (Graphics&) override;
77 void resized() override;
79 void mouseEnter (const MouseEvent&) override;
81 void mouseExit (const MouseEvent&) override;
83 void mouseDown (const MouseEvent&) override;
85 void mouseDrag (const MouseEvent&) override;
87 void mouseUp (const MouseEvent&) override;
89 void mouseMove (const MouseEvent&) override;
91 void handleCommandMessage (int commandId) override;
93 bool keyPressed (const KeyPress&) override;
95 void menuBarItemsChanged (MenuBarModel*) override;
98
99private:
100 //==============================================================================
102
103 //==============================================================================
104 std::unique_ptr<AccessibilityHandler> createAccessibilityHandler() override;
105 void timerCallback() override;
106
107 int getItemAt (Point<int>);
108 void setItemUnderMouse (int);
109 void setOpenItem (int);
111 void repaintMenuItem (int);
112 void menuDismissed (int, int);
113
114 void updateItemComponents (const StringArray&);
116
117 //==============================================================================
118 MenuBarModel* model = nullptr;
119 std::vector<std::unique_ptr<AccessibleItemComponent>> itemComponents;
120
123
125};
126
127} // namespace juce
Component() noexcept
Definition juce_Component.cpp:517
Definition juce_GraphicsContext.h:45
Definition juce_KeyPress.h:40
Definition juce_MenuBarComponent.cpp:30
void updateItemUnderMouse(Point< int >)
Definition juce_MenuBarComponent.cpp:219
void setOpenItem(int)
Definition juce_MenuBarComponent.cpp:197
Point< int > lastMousePos
Definition juce_MenuBarComponent.h:121
void setModel(MenuBarModel *newModel)
Definition juce_MenuBarComponent.cpp:98
void menuBarItemsChanged(MenuBarModel *) override
Definition juce_MenuBarComponent.cpp:366
void repaintMenuItem(int)
Definition juce_MenuBarComponent.cpp:170
void mouseExit(const MouseEvent &) override
Definition juce_MenuBarComponent.cpp:282
void setItemUnderMouse(int)
Definition juce_MenuBarComponent.cpp:183
bool keyPressed(const KeyPress &) override
Definition juce_MenuBarComponent.cpp:342
std::unique_ptr< AccessibilityHandler > createAccessibilityHandler() override
Definition juce_MenuBarComponent.cpp:442
void paint(Graphics &) override
Definition juce_MenuBarComponent.cpp:116
void timerCallback() override
Definition juce_MenuBarComponent.cpp:435
void menuDismissed(int, int)
Definition juce_MenuBarComponent.cpp:258
void handleCommandMessage(int commandId) override
Definition juce_MenuBarComponent.cpp:264
std::vector< std::unique_ptr< AccessibleItemComponent > > itemComponents
Definition juce_MenuBarComponent.h:119
void updateItemComponents(const StringArray &)
Definition juce_MenuBarComponent.cpp:394
void mouseMove(const MouseEvent &) override
Definition juce_MenuBarComponent.cpp:320
int indexOfItemComponent(AccessibleItemComponent *) const
Definition juce_MenuBarComponent.cpp:405
void mouseDrag(const MouseEvent &) override
Definition juce_MenuBarComponent.cpp:299
void resized() override
Definition juce_MenuBarComponent.cpp:147
void mouseUp(const MouseEvent &) override
Definition juce_MenuBarComponent.cpp:307
MenuBarModel * getModel() const noexcept
Definition juce_MenuBarComponent.cpp:93
int itemUnderMouse
Definition juce_MenuBarComponent.h:122
int topLevelIndexClicked
Definition juce_MenuBarComponent.h:122
void mouseEnter(const MouseEvent &) override
Definition juce_MenuBarComponent.cpp:276
int currentPopupIndex
Definition juce_MenuBarComponent.h:122
void menuCommandInvoked(MenuBarModel *, const ApplicationCommandTarget::InvocationInfo &) override
Definition juce_MenuBarComponent.cpp:417
void showMenu(int menuIndex)
Definition juce_MenuBarComponent.cpp:224
MenuBarModel * model
Definition juce_MenuBarComponent.h:118
MenuBarComponent(MenuBarModel *model=nullptr)
Definition juce_MenuBarComponent.cpp:78
int getItemAt(Point< int >)
Definition juce_MenuBarComponent.cpp:161
void mouseDown(const MouseEvent &) override
Definition juce_MenuBarComponent.cpp:288
Definition juce_MenuBarModel.h:79
Definition juce_MenuBarModel.h:42
Definition juce_MouseEvent.h:39
Definition juce_Point.h:42
Definition juce_StringArray.h:35
Timer() noexcept
Definition juce_Timer.cpp:316
#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)
#define JUCE_API
Definition juce_StandardHeader.h:152
Definition carla_juce.cpp:31
Definition juce_ApplicationCommandTarget.h:61