71 lines
No EOL
1.5 KiB
C++
71 lines
No EOL
1.5 KiB
C++
#pragma once
|
|
|
|
#include "window.h"
|
|
#include "canvas.h"
|
|
#include "animations.h"
|
|
|
|
namespace tp {
|
|
namespace glw {
|
|
|
|
class WindowSimpleInputs {
|
|
enum class Mouse : uint1 { NONE, PRESSED, HOLD, RELEASED } mMouse;
|
|
enum class Move : uint1 { NONE, LEFT, RIGHT, UP, DOWN } mMove;
|
|
public:
|
|
|
|
halnf mScaleVal = 0;
|
|
vec2f mWindowSizeMM;
|
|
vec2f mCrs;
|
|
vec2f mCrsPrev;
|
|
vec2f mCrsmDelta;
|
|
halnf mPressure = 0.f;
|
|
|
|
void update(const glw::Window& window, halnf uiscale);
|
|
bool Activated();
|
|
bool Anticipating();
|
|
bool Selected();
|
|
bool MoveLeft();
|
|
bool MoveRight();
|
|
bool MoveUp();
|
|
bool MoveDown();
|
|
bool Drag();
|
|
};
|
|
|
|
struct ButtonWidget {
|
|
rectf mRect = { 0.f, 10.f };
|
|
rgba mCol = { 0.3f, 0.3f, 0.3f, 1.f };
|
|
bool mPressed = false;
|
|
AnimRect mAnimRec;
|
|
void draw(glw::Canvas& canvas);
|
|
void proc(glw::WindowSimpleInputs& inputs);
|
|
};
|
|
|
|
struct CheckBoxWidget {
|
|
rectf mRect = { 0.f, 10.f };
|
|
rgba mCol = { 0.3f, 0.3f, 0.3f, 1.f };
|
|
rgba mColActive = { 0.5f, 0.5f, 0.5f, 1.f };
|
|
|
|
bool mValue = false;
|
|
AnimRect mAnimRec;
|
|
AnimColor mAnimCol;
|
|
|
|
void draw(glw::Canvas& canvas);
|
|
void proc(glw::WindowSimpleInputs& inputs);
|
|
};
|
|
|
|
struct WindowsHeaderWidget {
|
|
rectf header_rec = { 10, 10, 50, 10 };
|
|
rgba col = { 0.13f, 0.13f, 0.13f, 0.9f };
|
|
rectf grab_rec = 0.f;
|
|
|
|
ButtonWidget mExitButton;
|
|
ButtonWidget mMaxButton;
|
|
ButtonWidget mMinButton;
|
|
CheckBoxWidget mPinButton;
|
|
|
|
void updRecs();
|
|
void draw(glw::Canvas& canvas);
|
|
void proc(glw::Window& window, glw::WindowSimpleInputs& inputs);
|
|
};
|
|
|
|
};
|
|
}; |