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
|
#if defined(Hiro_MenuItem)
// LIJI: TODO: is there a more reasonable place to have this include?
#include "../../resource/icon.hpp"
auto mMenuItem::allocate() -> pObject* {
return new pMenuItem(*this);
}
//
auto mMenuItem::doActivate() const -> void {
if(state.onActivate) return state.onActivate();
}
auto mMenuItem::icon() const -> multiFactorImage {
return state.icon;
}
auto mMenuItem::onActivate(const function<void ()>& callback) -> type& {
state.onActivate = callback;
return *this;
}
auto mMenuItem::setIcon(const multiFactorImage& icon, bool force) -> type& {
state.icon = icon;
signal(setIcon, icon, force);
return *this;
}
auto mMenuItem::setIconForFile(const string& filename) -> type& {
#if defined(PLATFORM_MACOS)
state.icon = {};
signal(setIconForFile, filename);
#else
if(directory::exists(filename)) setIcon(Icon::Emblem::Folder, true);
else setIcon(Icon::Emblem::File, true);
#endif
return *this;
}
auto mMenuItem::setText(const string& text) -> type& {
state.text = text;
signal(setText, text);
return *this;
}
auto mMenuItem::text() const -> string {
return state.text;
}
#endif
|