69 lines
1.6 KiB
C++
69 lines
1.6 KiB
C++
#pragma once
|
|
|
|
#include "nana/gui/widgets/widget.hpp"
|
|
#include "nana/gui/animation.hpp"
|
|
#include <array>
|
|
|
|
class MemoryCard;
|
|
|
|
namespace implem {
|
|
//void draw_icons (
|
|
// int icon_size,
|
|
// const MemoryCard& mc,
|
|
// std::array<nana::animation, 15>& icons,
|
|
// nana::widget& wid
|
|
//);
|
|
} //namespace implem
|
|
|
|
class grid_drawer_trigger : public nana::drawer_trigger {
|
|
public:
|
|
grid_drawer_trigger();
|
|
void set_memorycard (const MemoryCard* mc);
|
|
|
|
private:
|
|
virtual void attached(nana::widget&, nana::paint::graphics&) override;
|
|
|
|
//void _m_draw_title (nana::paint::graphics&, bool is_mouse_down, bool is_focus);
|
|
void _m_draw_background (nana::paint::graphics&, bool is_mouse_down);
|
|
//void _m_draw_border (nana::paint::graphics&, bool is_mouse_down);
|
|
|
|
std::array<nana::animation, 15> m_icons;
|
|
nana::widget* m_widget{nullptr};
|
|
nana::paint::graphics* m_graph{nullptr};
|
|
const MemoryCard* m_memorycard{nullptr};
|
|
bool m_is_ms_down{false};
|
|
};
|
|
|
|
template <typename DrawerTrigger>
|
|
class basic_grid : public nana::widget_object<nana::category::widget_tag, DrawerTrigger> {
|
|
public:
|
|
basic_grid() = default;
|
|
basic_grid (nana::widget& widget, unsigned int icon_size, const MemoryCard* mc);
|
|
|
|
private:
|
|
int m_icon_size{0};
|
|
const MemoryCard* m_memorycard{nullptr};
|
|
};
|
|
|
|
using grid = basic_grid<grid_drawer_trigger>;
|
|
|
|
template <typename DrawerTrigger>
|
|
basic_grid<DrawerTrigger>::basic_grid (
|
|
nana::widget& widget,
|
|
unsigned int icon_size,
|
|
const MemoryCard* mc
|
|
) :
|
|
m_icon_size(icon_size),
|
|
m_memorycard(mc)
|
|
{
|
|
this->create(
|
|
widget.handle(),
|
|
nana::rectangle{
|
|
0,
|
|
0,
|
|
(icon_size + 2) * 3 - 2,
|
|
(icon_size + 2) * 5 - 2
|
|
}
|
|
);
|
|
this->get_drawer_trigger().set_memorycard(m_memorycard);
|
|
}
|