summaryrefslogtreecommitdiff
path: root/src/interface/ContextMenu.cpp
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2013-03-22 14:14:17 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2013-03-22 14:14:17 (GMT)
commit9abe51526cac2634af0541c3de69834dd30e9f78 (patch)
tree6ae4deadfe00a83094b9d288d8c11d8ce823577a /src/interface/ContextMenu.cpp
parent2c311b9a36a88fadd96f3d39acb1ab2590835d81 (diff)
downloadpowder-9abe51526cac2634af0541c3de69834dd30e9f78.zip
powder-9abe51526cac2634af0541c3de69834dd30e9f78.tar.gz
Move all GUI source files into gui/
Diffstat (limited to 'src/interface/ContextMenu.cpp')
-rw-r--r--src/interface/ContextMenu.cpp99
1 files changed, 0 insertions, 99 deletions
diff --git a/src/interface/ContextMenu.cpp b/src/interface/ContextMenu.cpp
deleted file mode 100644
index 0d34e19..0000000
--- a/src/interface/ContextMenu.cpp
+++ /dev/null
@@ -1,99 +0,0 @@
-#include "ContextMenu.h"
-
-using namespace ui;
-
-class ContextMenu::ItemSelectedAction: public ButtonAction
-{
- ContextMenu * window;
- int item;
-public:
- ItemSelectedAction(ContextMenu * window, int itemID): window(window), item(itemID) { }
- virtual void ActionCallback(ui::Button *sender)
- {
- window->ActionCallback(sender, item);
- }
-};
-
-ContextMenu::ContextMenu(Component * source):
- Window(ui::Point(0, 0), ui::Point(0, 0)),
- Appearance(source->Appearance),
- source(source)
-{
-}
-
-void ContextMenu::Show(ui::Point position)
-{
- for(int i = 0; i < buttons.size(); i++)
- {
- RemoveComponent(buttons[i]);
- delete buttons[i];
- }
- buttons.clear();
-
- Position = position;
- Size.Y = items.size()*16;
- Size.X = 100;
-
- int currentY = 1;
- for(int i = 0; i < items.size(); i++)
- {
- Button * tempButton = new Button(Point(1, currentY), Point(Size.X-2, 16), items[i].Text);
- tempButton->Appearance = Appearance;
- tempButton->Enabled = items[i].Enabled;
- tempButton->SetActionCallback(new ItemSelectedAction(this, items[i].ID));
- buttons.push_back(tempButton);
- AddComponent(tempButton);
- currentY += 15;
- }
-
- ui::Engine::Ref().ShowWindow(this);
-}
-
-void ContextMenu::ActionCallback(ui::Button *sender, int item)
-{
- ui::Engine::Ref().CloseWindow();
- Halt();
- source->OnContextMenuAction(item);
-}
-
-void ContextMenu::OnMouseDown(int x, int y, unsigned button)
-{
- if(!(x > Position.X && y > Position.Y && y < Position.Y+Size.Y && x < Position.X+Size.X)) //Clicked outside window
- ui::Engine::Ref().CloseWindow();
-}
-
-void ContextMenu::SetItem(int id, std::string text)
-{
- for(int i = 0; i < items.size(); i++)
- {
- if(items[i].ID == id)
- {
- items[i].Text = text;
- break;
- }
- }
-}
-
-void ContextMenu::RemoveItem(int id)
-{
- for(int i = 0; i < items.size(); i++)
- {
- if(items[i].ID == id)
- {
- items.erase(items.begin()+i);
- break;
- }
- }
-}
-
-void ContextMenu::AddItem(ContextMenuItem item)
-{
- items.push_back(item);
-}
-
-void ContextMenu::OnDraw()
-{
- Graphics * g = ui::Engine::Ref().g;
- g->fillrect(Position.X, Position.Y, Size.X, Size.Y, 100, 100, 100, 255);
- g->drawrect(Position.X, Position.Y, Size.X, Size.Y, Appearance.BackgroundInactive.Red, Appearance.BackgroundInactive.Green, Appearance.BackgroundInactive.Blue, Appearance.BackgroundInactive.Alpha);
-} \ No newline at end of file