/usr/include/Nux-4.0/Nux/MenuBar.h is in libnux-4.0-dev 4.0.6+14.04.20140409-0ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | /*
* Copyright 2010 Inalogic® Inc.
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License, as
* published by the Free Software Foundation; either version 2.1 or 3.0
* of the License.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranties of
* MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the applicable version of the GNU Lesser General Public
* License for more details.
*
* You should have received a copy of both the GNU Lesser General Public
* License along with this program. If not, see <http://www.gnu.org/licenses/>
*
* Authored by: Jay Taoko <jaytaoko@inalogic.com>
*
*/
#ifndef MENUBAR_H
#define MENUBAR_H
#include "ScrollView.h"
#include "ToolButton.h"
#include "MenuPage.h"
#include "Painter.h"
namespace nux
{
class PopupBox;
class BaseWindow;
class MenuBar;
class HLayout;
class MenuBarItem: public Object
{
public:
NUX_DECLARE_OBJECT_TYPE(MenuBarItem, Object);
MenuBarItem(NUX_FILE_LINE_PROTO);
~MenuBarItem();
private:
BasicView *area;
MenuPage *menu;
BaseTexture *icon; // should be 24x24
friend class MenuBar;
};
class MenuBar: public View
{
NUX_DECLARE_OBJECT_TYPE(MenuBar, View);
public:
MenuBar(NUX_FILE_LINE_PROTO);
~MenuBar();
virtual void Draw(GraphicsEngine &graphics_engine, bool force_draw);
virtual void DrawContent(GraphicsEngine &graphics_engine, bool force_draw);
//void AddActionItem(ActionItem* actionItem);
void AddMenu(const char *MenuLabel, MenuPage *popup);
void AddMenu(const char *MenuLabel, MenuPage *menu, BaseTexture *icon);
/////////////////
// EMITERS //
/////////////////
private:
void EmitItemMouseEnter(int x, int y, unsigned long button_flags, unsigned long key_flags, MenuBarItem *menubar_item);
void EmitItemMouseLeave(int x, int y, unsigned long button_flags, unsigned long key_flags, MenuBarItem *menubar_item);
void EmitItemMouseDown(int x, int y, unsigned long button_flags, unsigned long key_flags, MenuBarItem *menubar_item);
void EmitItemMouseUp(int x, int y, unsigned long button_flags, unsigned long key_flags, MenuBarItem *menubar_item);
void RecvItemMouseDrag(int x, int y, int dx, int dy, unsigned long button_flags, unsigned long key_flags, MenuBarItem *menubar_item);
void RecvSigActionTriggered(MenuPage *, ActionItem *);
void RecvSigTerminateMenuCascade();
//! Process a mouse down event outside of the menu cascade.
/*
Process a mouse down event outside of the menu cascade. The menu bar checks if the mouse down happened on one of its menu bar item.
If yes, it let the menu bar item process the event. if no, it will initiate the closure of the menu cascade.
\param menu menu item
\param x coordinate of the mouse down event
\param y coordinate of the mouse down event
*/
void RecvSigMouseDownOutsideMenuCascade(MenuPage *menu, int x, int y);
protected:
private:
std::list< MenuBarItem * > m_MenuBarItemList;
HLayout *m_hlayout;
bool m_MenuIsActive;
MenuBarItem *m_CurrentMenu;
bool m_IsOpeningMenu;
BaseWindow *m_MenuBarWindow;
};
}
#endif // MENUBAR_H
|