Browse Source

Divide widgets.hpp to widgets.hpp and ui.hpp

tags/v0.6.0
Andrew Belt 7 years ago
parent
commit
7755c67084
23 changed files with 229 additions and 208 deletions
  1. +1
    -0
      include/app.hpp
  2. +2
    -0
      include/rack.hpp
  3. +200
    -0
      include/ui.hpp
  4. +0
    -190
      include/widgets.hpp
  5. +9
    -0
      src/ui.cpp
  6. +1
    -1
      src/ui/Button.cpp
  7. +1
    -1
      src/ui/ChoiceButton.cpp
  8. +1
    -1
      src/ui/Label.cpp
  9. +1
    -1
      src/ui/Menu.cpp
  10. +1
    -1
      src/ui/MenuItem.cpp
  11. +1
    -1
      src/ui/MenuLabel.cpp
  12. +1
    -1
      src/ui/MenuOverlay.cpp
  13. +1
    -1
      src/ui/PasswordField.cpp
  14. +1
    -1
      src/ui/ProgressBar.cpp
  15. +1
    -1
      src/ui/RadioButton.cpp
  16. +0
    -0
      src/ui/Scene.cpp
  17. +1
    -1
      src/ui/ScrollBar.cpp
  18. +1
    -1
      src/ui/ScrollWidget.cpp
  19. +1
    -1
      src/ui/Slider.cpp
  20. +1
    -1
      src/ui/TextField.cpp
  21. +1
    -1
      src/ui/Tooltip.cpp
  22. +1
    -1
      src/ui/Window.cpp
  23. +1
    -2
      src/widgets.cpp

+ 1
- 0
include/app.hpp View File

@@ -2,6 +2,7 @@
#include <vector> #include <vector>
#include <jansson.h> #include <jansson.h>
#include "widgets.hpp" #include "widgets.hpp"
#include "ui.hpp"




static const float SVG_DPI = 75.0; static const float SVG_DPI = 75.0;


+ 2
- 0
include/rack.hpp View File

@@ -5,7 +5,9 @@
#include "asset.hpp" #include "asset.hpp"
#include "plugin.hpp" #include "plugin.hpp"
#include "engine.hpp" #include "engine.hpp"
#include "widgets.hpp"
#include "app.hpp" #include "app.hpp"
#include "ui.hpp"
#include "componentlibrary.hpp" #include "componentlibrary.hpp"






+ 200
- 0
include/ui.hpp View File

@@ -0,0 +1,200 @@
#pragma once
#include "widgets.hpp"
#include "../ext/oui-blendish/blendish.h"


namespace rack {


struct Label : Widget {
std::string text;
Label() {
box.size.y = BND_WIDGET_HEIGHT;
}
void draw(NVGcontext *vg) override;
};

/** Deletes itself from parent when clicked */
struct MenuOverlay : OpaqueWidget {
void step() override;
void onMouseDown(EventMouseDown &e) override;
void onHoverKey(EventHoverKey &e) override;
};

struct MenuEntry;

struct Menu : OpaqueWidget {
Menu *parentMenu = NULL;
Menu *childMenu = NULL;
/** The entry which created the child menu */
MenuEntry *activeEntry = NULL;

Menu() {
box.size = Vec(0, 0);
}
~Menu();
// Resizes menu and calls addChild()
void pushChild(Widget *child) DEPRECATED {
addChild(child);
}
void setChildMenu(Menu *menu);
void step() override;
void draw(NVGcontext *vg) override;
void onScroll(EventScroll &e) override;
};

struct MenuEntry : OpaqueWidget {
std::string text;
MenuEntry() {
box.size = Vec(0, BND_WIDGET_HEIGHT);
}
};

struct MenuLabel : MenuEntry {
void draw(NVGcontext *vg) override;
void step() override;
};

struct MenuItem : MenuEntry {
std::string rightText;
void draw(NVGcontext *vg) override;
void step() override;
virtual Menu *createChildMenu() {return NULL;}
void onMouseEnter(EventMouseEnter &e) override;
void onDragDrop(EventDragDrop &e) override;
};

struct WindowOverlay : OpaqueWidget {
};

struct Window : OpaqueWidget {
std::string title;
void draw(NVGcontext *vg) override;
void onDragMove(EventDragMove &e) override;
};

struct Button : OpaqueWidget {
std::string text;
BNDwidgetState state = BND_DEFAULT;

Button() {
box.size.y = BND_WIDGET_HEIGHT;
}
void draw(NVGcontext *vg) override;
void onMouseEnter(EventMouseEnter &e) override;
void onMouseLeave(EventMouseLeave &e) override;
void onDragStart(EventDragStart &e) override;
void onDragEnd(EventDragEnd &e) override;
void onDragDrop(EventDragDrop &e) override;
};

struct ChoiceButton : Button {
void draw(NVGcontext *vg) override;
};

struct RadioButton : OpaqueWidget, QuantityWidget {
BNDwidgetState state = BND_DEFAULT;

RadioButton() {
box.size.y = BND_WIDGET_HEIGHT;
}
void draw(NVGcontext *vg) override;
void onMouseEnter(EventMouseEnter &e) override;
void onMouseLeave(EventMouseLeave &e) override;
void onDragDrop(EventDragDrop &e) override;
};

struct Slider : OpaqueWidget, QuantityWidget {
BNDwidgetState state = BND_DEFAULT;

Slider() {
box.size.y = BND_WIDGET_HEIGHT;
}
void draw(NVGcontext *vg) override;
void onDragStart(EventDragStart &e) override;
void onDragMove(EventDragMove &e) override;
void onDragEnd(EventDragEnd &e) override;
void onMouseDown(EventMouseDown &e) override;
};

/** Parent must be a ScrollWidget */
struct ScrollBar : OpaqueWidget {
enum { VERTICAL, HORIZONTAL } orientation;
BNDwidgetState state = BND_DEFAULT;
float offset = 0.0;
float size = 0.0;

ScrollBar() {
box.size = Vec(BND_SCROLLBAR_WIDTH, BND_SCROLLBAR_HEIGHT);
}
void draw(NVGcontext *vg) override;
void onDragStart(EventDragStart &e) override;
void onDragMove(EventDragMove &e) override;
void onDragEnd(EventDragEnd &e) override;
};

/** Handles a container with ScrollBar */
struct ScrollWidget : OpaqueWidget {
Widget *container;
ScrollBar *horizontalScrollBar;
ScrollBar *verticalScrollBar;
Vec offset;

ScrollWidget();
void draw(NVGcontext *vg) override;
void step() override;
void onMouseMove(EventMouseMove &e) override;
void onScroll(EventScroll &e) override;
};

struct TextField : OpaqueWidget {
std::string text;
std::string placeholder;
bool multiline = false;
int begin = 0;
int end = 0;

TextField() {
box.size.y = BND_WIDGET_HEIGHT;
}
void draw(NVGcontext *vg) override;
void onMouseDown(EventMouseDown &e) override;
void onFocus(EventFocus &e) override;
void onText(EventText &e) override;
void onKey(EventKey &e) override;
void insertText(std::string newText);
virtual void onTextChange() {}
};

struct PasswordField : TextField {
void draw(NVGcontext *vg) override;
};

struct ProgressBar : TransparentWidget, QuantityWidget {
ProgressBar() {
box.size.y = BND_WIDGET_HEIGHT;
}
void draw(NVGcontext *vg) override;
};

struct Tooltip : Widget {
void step() override;
void draw(NVGcontext *vg) override;
};

struct Scene : OpaqueWidget {
Widget *overlay = NULL;
void setOverlay(Widget *w);
Menu *createMenu();
void step() override;
};


////////////////////
// globals
////////////////////

extern Scene *gScene;


} // namespace rack

+ 0
- 190
include/widgets.hpp View File

@@ -3,7 +3,6 @@
#include <memory> #include <memory>


#include "../ext/nanovg/src/nanovg.h" #include "../ext/nanovg/src/nanovg.h"
#include "../ext/oui-blendish/blendish.h"
#include "../ext/nanosvg/src/nanosvg.h" #include "../ext/nanosvg/src/nanosvg.h"


#include "util/common.hpp" #include "util/common.hpp"
@@ -279,193 +278,6 @@ struct QuantityWidget : virtual Widget {
std::string getText(); std::string getText();
}; };


////////////////////
// GUI widgets
////////////////////

struct Label : Widget {
std::string text;
Label() {
box.size.y = BND_WIDGET_HEIGHT;
}
void draw(NVGcontext *vg) override;
};

/** Deletes itself from parent when clicked */
struct MenuOverlay : OpaqueWidget {
void step() override;
void onMouseDown(EventMouseDown &e) override;
void onHoverKey(EventHoverKey &e) override;
};

struct MenuEntry;

struct Menu : OpaqueWidget {
Menu *parentMenu = NULL;
Menu *childMenu = NULL;
/** The entry which created the child menu */
MenuEntry *activeEntry = NULL;

Menu() {
box.size = Vec(0, 0);
}
~Menu();
// Resizes menu and calls addChild()
void pushChild(Widget *child) DEPRECATED {
addChild(child);
}
void setChildMenu(Menu *menu);
void step() override;
void draw(NVGcontext *vg) override;
void onScroll(EventScroll &e) override;
};

struct MenuEntry : OpaqueWidget {
std::string text;
MenuEntry() {
box.size = Vec(0, BND_WIDGET_HEIGHT);
}
};

struct MenuLabel : MenuEntry {
void draw(NVGcontext *vg) override;
void step() override;
};

struct MenuItem : MenuEntry {
std::string rightText;
void draw(NVGcontext *vg) override;
void step() override;
virtual Menu *createChildMenu() {return NULL;}
void onMouseEnter(EventMouseEnter &e) override;
void onDragDrop(EventDragDrop &e) override;
};

struct WindowOverlay : OpaqueWidget {
};

struct Window : OpaqueWidget {
std::string title;
void draw(NVGcontext *vg) override;
void onDragMove(EventDragMove &e) override;
};

struct Button : OpaqueWidget {
std::string text;
BNDwidgetState state = BND_DEFAULT;

Button() {
box.size.y = BND_WIDGET_HEIGHT;
}
void draw(NVGcontext *vg) override;
void onMouseEnter(EventMouseEnter &e) override;
void onMouseLeave(EventMouseLeave &e) override;
void onDragStart(EventDragStart &e) override;
void onDragEnd(EventDragEnd &e) override;
void onDragDrop(EventDragDrop &e) override;
};

struct ChoiceButton : Button {
void draw(NVGcontext *vg) override;
};

struct RadioButton : OpaqueWidget, QuantityWidget {
BNDwidgetState state = BND_DEFAULT;

RadioButton() {
box.size.y = BND_WIDGET_HEIGHT;
}
void draw(NVGcontext *vg) override;
void onMouseEnter(EventMouseEnter &e) override;
void onMouseLeave(EventMouseLeave &e) override;
void onDragDrop(EventDragDrop &e) override;
};

struct Slider : OpaqueWidget, QuantityWidget {
BNDwidgetState state = BND_DEFAULT;

Slider() {
box.size.y = BND_WIDGET_HEIGHT;
}
void draw(NVGcontext *vg) override;
void onDragStart(EventDragStart &e) override;
void onDragMove(EventDragMove &e) override;
void onDragEnd(EventDragEnd &e) override;
void onMouseDown(EventMouseDown &e) override;
};

/** Parent must be a ScrollWidget */
struct ScrollBar : OpaqueWidget {
enum { VERTICAL, HORIZONTAL } orientation;
BNDwidgetState state = BND_DEFAULT;
float offset = 0.0;
float size = 0.0;

ScrollBar() {
box.size = Vec(BND_SCROLLBAR_WIDTH, BND_SCROLLBAR_HEIGHT);
}
void draw(NVGcontext *vg) override;
void onDragStart(EventDragStart &e) override;
void onDragMove(EventDragMove &e) override;
void onDragEnd(EventDragEnd &e) override;
};

/** Handles a container with ScrollBar */
struct ScrollWidget : OpaqueWidget {
Widget *container;
ScrollBar *horizontalScrollBar;
ScrollBar *verticalScrollBar;
Vec offset;

ScrollWidget();
void draw(NVGcontext *vg) override;
void step() override;
void onMouseMove(EventMouseMove &e) override;
void onScroll(EventScroll &e) override;
};

struct TextField : OpaqueWidget {
std::string text;
std::string placeholder;
bool multiline = false;
int begin = 0;
int end = 0;

TextField() {
box.size.y = BND_WIDGET_HEIGHT;
}
void draw(NVGcontext *vg) override;
void onMouseDown(EventMouseDown &e) override;
void onFocus(EventFocus &e) override;
void onText(EventText &e) override;
void onKey(EventKey &e) override;
void insertText(std::string newText);
virtual void onTextChange() {}
};

struct PasswordField : TextField {
void draw(NVGcontext *vg) override;
};

struct ProgressBar : TransparentWidget, QuantityWidget {
ProgressBar() {
box.size.y = BND_WIDGET_HEIGHT;
}
void draw(NVGcontext *vg) override;
};

struct Tooltip : Widget {
void step() override;
void draw(NVGcontext *vg) override;
};

struct Scene : OpaqueWidget {
Widget *overlay = NULL;
void setOverlay(Widget *w);
Menu *createMenu();
void step() override;
};



//////////////////// ////////////////////
// globals // globals
@@ -476,7 +288,5 @@ extern Widget *gDraggedWidget;
extern Widget *gDragHoveredWidget; extern Widget *gDragHoveredWidget;
extern Widget *gFocusedWidget; extern Widget *gFocusedWidget;


extern Scene *gScene;



} // namespace rack } // namespace rack

+ 9
- 0
src/ui.cpp View File

@@ -0,0 +1,9 @@
#include "ui.hpp"

namespace rack {


Scene *gScene = NULL;


} // namespace rack

src/widgets/Button.cpp → src/ui/Button.cpp View File

@@ -1,4 +1,4 @@
#include "widgets.hpp"
#include "ui.hpp"




namespace rack { namespace rack {

src/widgets/ChoiceButton.cpp → src/ui/ChoiceButton.cpp View File

@@ -1,4 +1,4 @@
#include "widgets.hpp"
#include "ui.hpp"




namespace rack { namespace rack {

src/widgets/Label.cpp → src/ui/Label.cpp View File

@@ -1,4 +1,4 @@
#include "widgets.hpp"
#include "ui.hpp"




namespace rack { namespace rack {

src/widgets/Menu.cpp → src/ui/Menu.cpp View File

@@ -1,4 +1,4 @@
#include "widgets.hpp"
#include "ui.hpp"




namespace rack { namespace rack {

src/widgets/MenuItem.cpp → src/ui/MenuItem.cpp View File

@@ -1,4 +1,4 @@
#include "widgets.hpp"
#include "ui.hpp"
#include "gui.hpp" #include "gui.hpp"





src/widgets/MenuLabel.cpp → src/ui/MenuLabel.cpp View File

@@ -1,4 +1,4 @@
#include "widgets.hpp"
#include "ui.hpp"
#include "gui.hpp" #include "gui.hpp"





src/widgets/MenuOverlay.cpp → src/ui/MenuOverlay.cpp View File

@@ -1,4 +1,4 @@
#include "widgets.hpp"
#include "ui.hpp"




namespace rack { namespace rack {

src/widgets/PasswordField.cpp → src/ui/PasswordField.cpp View File

@@ -1,4 +1,4 @@
#include "widgets.hpp"
#include "ui.hpp"




namespace rack { namespace rack {

src/widgets/ProgressBar.cpp → src/ui/ProgressBar.cpp View File

@@ -1,4 +1,4 @@
#include "widgets.hpp"
#include "ui.hpp"




namespace rack { namespace rack {

src/widgets/RadioButton.cpp → src/ui/RadioButton.cpp View File

@@ -1,4 +1,4 @@
#include "widgets.hpp"
#include "ui.hpp"




namespace rack { namespace rack {

src/widgets/Scene.cpp → src/ui/Scene.cpp View File


src/widgets/ScrollBar.cpp → src/ui/ScrollBar.cpp View File

@@ -1,4 +1,4 @@
#include "widgets.hpp"
#include "ui.hpp"
#include "gui.hpp" #include "gui.hpp"





src/widgets/ScrollWidget.cpp → src/ui/ScrollWidget.cpp View File

@@ -1,4 +1,4 @@
#include "widgets.hpp"
#include "ui.hpp"
#include "gui.hpp" #include "gui.hpp"





src/widgets/Slider.cpp → src/ui/Slider.cpp View File

@@ -1,4 +1,4 @@
#include "widgets.hpp"
#include "ui.hpp"
#include "gui.hpp" #include "gui.hpp"





src/widgets/TextField.cpp → src/ui/TextField.cpp View File

@@ -1,4 +1,4 @@
#include "widgets.hpp"
#include "ui.hpp"
// for gVg // for gVg
#include "gui.hpp" #include "gui.hpp"
// for key codes // for key codes

src/widgets/Tooltip.cpp → src/ui/Tooltip.cpp View File

@@ -1,4 +1,4 @@
#include "widgets.hpp"
#include "ui.hpp"
#include "gui.hpp" #include "gui.hpp"





src/widgets/Window.cpp → src/ui/Window.cpp View File

@@ -1,4 +1,4 @@
#include "widgets.hpp"
#include "ui.hpp"




namespace rack { namespace rack {

+ 1
- 2
src/widgets.cpp View File

@@ -2,12 +2,11 @@


namespace rack { namespace rack {



Widget *gHoveredWidget = NULL; Widget *gHoveredWidget = NULL;
Widget *gDraggedWidget = NULL; Widget *gDraggedWidget = NULL;
Widget *gDragHoveredWidget = NULL; Widget *gDragHoveredWidget = NULL;
Widget *gFocusedWidget = NULL; Widget *gFocusedWidget = NULL;


Scene *gScene = NULL;



} // namespace rack } // namespace rack

Loading…
Cancel
Save