2015-06-18 10:48:53 +00:00
|
|
|
#define DeclareShared(Name) \
|
|
|
|
using type = Name; \
|
|
|
|
Name() : s##Name(new m##Name, [](auto p) { \
|
|
|
|
p->unbind(); \
|
|
|
|
delete p; \
|
|
|
|
}) { \
|
|
|
|
(*this)->bind(*this); \
|
|
|
|
} \
|
2015-06-20 05:44:05 +00:00
|
|
|
Name(const s##Name& source) : s##Name(source) { assert(source); } \
|
|
|
|
explicit operator bool() const { return self().operator bool(); } \
|
2015-06-18 10:48:53 +00:00
|
|
|
auto self() const -> m##Name& { return (m##Name&)operator*(); } \
|
|
|
|
|
|
|
|
#define DeclareSharedObject(Name) \
|
|
|
|
DeclareShared(Name) \
|
|
|
|
template<typename T, typename... P> Name(T* parent, P&&... p) : Name() { \
|
2015-06-20 05:44:05 +00:00
|
|
|
if(parent) (*parent)->append(*this, std::forward<P>(p)...); \
|
2015-06-18 10:48:53 +00:00
|
|
|
} \
|
|
|
|
auto enabled(bool recursive = false) const { return self().enabled(recursive); } \
|
|
|
|
auto focused() const { return self().focused(); } \
|
|
|
|
auto font(bool recursive = false) const { return self().font(recursive); } \
|
Update to v094r40 release.
byuu says:
Changelog:
- updated to newest hiro API
- SFC performance profile builds once again
- hiro: Qt port completed
Errata 1: the hiro/Qt target won't run tomoko just yet. Starts by
crashing inside InputSettings because hiro/Qt isn't forcefully selecting
the first item added to a ComboButton just yet. Even with a monkey patch
to get around that, the UI is incredibly unstable. Lots of geometry
calculation bugs, and a crash when you try and access certain folders in
the browser dialog. Lots of work left to be done there, sadly.
Errata 2: the hiro/Windows port has black backgrounds on all ListView
items. It's because I need to test for unassigned colors and grab the
default Windows brush colors in those cases.
Note: alternating row colors on multi-column ListView widgets is gone
now. Not a bug. May add it back later, but I'm not sure. It doesn't
interact nicely with per-cell background colors.
Things left to do:
First, I have to fix the Windows and Qt target bugs.
Next, I need to go through and revise the hiro API even more (nothing
too major.)
Next, I need to update icarus to use the new hiro API, and add support
for the SFC games database.
Next, I have to rewrite my TSV->BML cheat code tool.
Next, I need to post a final WIP of higan+icarus publicly and wait a few
days.
Next, I need to fix any bugs reported from the final WIP that I can.
Finally, I should be able to release v095.
2015-08-18 10:18:00 +00:00
|
|
|
auto offset() const { return self().offset(); } \
|
|
|
|
auto parent() const { \
|
|
|
|
if(auto object = self().parent()) { \
|
|
|
|
if(auto instance = object->instance.acquire()) return Object(instance); \
|
|
|
|
} \
|
|
|
|
return Object(); \
|
|
|
|
} \
|
2015-11-14 00:52:51 +00:00
|
|
|
auto property(const string& name) const { return self().property(name); } \
|
2015-06-18 10:48:53 +00:00
|
|
|
auto remove() { return self().remove(), *this; } \
|
|
|
|
auto setEnabled(bool enabled = true) { return self().setEnabled(enabled), *this; } \
|
|
|
|
auto setFocused() { return self().setFocused(), *this; } \
|
Update to v094r43 release.
byuu says:
Updated to compile with all of the new hiro changes. My next step is to
write up hiro API documentation, and move the API from alpha (constantly
changing) to beta (rarely changing), in preparation for the first stable
release (backward-compatible changes only.)
Added "--fullscreen" command-line option. I like this over
a configuration file option. Lets you use the emulator in both modes
without having to modify the config file each time.
Also enhanced the command-line game loading. You can now use any of
these methods:
higan /path/to/game-folder.sfc
higan /path/to/game-folder.sfc/
higan /path/to/game-folder.sfc/program.rom
The idea is to support launchers that insist on loading files only.
Technically, the file can be any name (manifest.bml also works); the
only criteria is that the file actually exists and is a file, and not
a directory. This is a requirement to support the first version (a
directory lacking the trailing / identifier), because I don't want my
nall::string class to query the file system to determine if the string
is an actual existing file or directory for its pathname() / dirname()
functions.
Anyway, every game folder I've made so far has program.rom, and that's
very unlikely to change, so this should be fine.
Now, of course, if you drop a regular "game.sfc" file on the emulator,
it won't even try to load it, unless it's in a folder that ends in .fc,
.sfc, etc. In which case, it'll bail out immediately by being unable to
produce a manifest for what is obviously not really a game folder.
2015-08-30 02:08:26 +00:00
|
|
|
auto setFont(const Font& font = {}) { return self().setFont(font), *this; } \
|
2015-11-14 00:52:51 +00:00
|
|
|
auto setProperty(const string& name, const string& value = "") { return self().setProperty(name, value), *this; } \
|
2015-06-18 10:48:53 +00:00
|
|
|
auto setVisible(bool visible = true) { return self().setVisible(visible), *this; } \
|
|
|
|
auto visible(bool recursive = false) const { return self().visible(recursive); } \
|
|
|
|
|
|
|
|
#define DeclareSharedAction(Name) \
|
|
|
|
DeclareSharedObject(Name) \
|
|
|
|
|
|
|
|
#define DeclareSharedSizable(Name) \
|
|
|
|
DeclareSharedObject(Name) \
|
|
|
|
auto geometry() const { return self().geometry(); } \
|
|
|
|
auto minimumSize() const { return self().minimumSize(); } \
|
|
|
|
auto setGeometry(Geometry geometry) { return self().setGeometry(geometry), *this; } \
|
|
|
|
|
|
|
|
#define DeclareSharedLayout(Name) \
|
|
|
|
DeclareSharedSizable(Name) \
|
|
|
|
auto append(sSizable sizable) { return self().append(sizable), *this; } \
|
|
|
|
auto remove(sSizable sizable) { return self().remove(sizable), *this; } \
|
|
|
|
auto reset() { return self().reset(), *this; } \
|
|
|
|
auto sizable(unsigned position) { return self().sizable(position); } \
|
Update to v094r40 release.
byuu says:
Changelog:
- updated to newest hiro API
- SFC performance profile builds once again
- hiro: Qt port completed
Errata 1: the hiro/Qt target won't run tomoko just yet. Starts by
crashing inside InputSettings because hiro/Qt isn't forcefully selecting
the first item added to a ComboButton just yet. Even with a monkey patch
to get around that, the UI is incredibly unstable. Lots of geometry
calculation bugs, and a crash when you try and access certain folders in
the browser dialog. Lots of work left to be done there, sadly.
Errata 2: the hiro/Windows port has black backgrounds on all ListView
items. It's because I need to test for unassigned colors and grab the
default Windows brush colors in those cases.
Note: alternating row colors on multi-column ListView widgets is gone
now. Not a bug. May add it back later, but I'm not sure. It doesn't
interact nicely with per-cell background colors.
Things left to do:
First, I have to fix the Windows and Qt target bugs.
Next, I need to go through and revise the hiro API even more (nothing
too major.)
Next, I need to update icarus to use the new hiro API, and add support
for the SFC games database.
Next, I have to rewrite my TSV->BML cheat code tool.
Next, I need to post a final WIP of higan+icarus publicly and wait a few
days.
Next, I need to fix any bugs reported from the final WIP that I can.
Finally, I should be able to release v095.
2015-08-18 10:18:00 +00:00
|
|
|
auto sizableCount() const { return self().sizableCount(); } \
|
2015-06-18 10:48:53 +00:00
|
|
|
auto sizables() const { return self().sizables(); } \
|
|
|
|
|
|
|
|
#define DeclareSharedWidget(Name) \
|
|
|
|
DeclareSharedSizable(Name) \
|
|
|
|
auto doSize() const { return self().doSize(); } \
|
|
|
|
auto onSize(const function<void ()>& callback = {}) { return self().onSize(callback), *this; } \
|
|
|
|
|
|
|
|
#if defined(Hiro_Object)
|
|
|
|
struct Object : sObject {
|
|
|
|
DeclareSharedObject(Object)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mObject;
|
2015-11-16 08:38:05 +00:00
|
|
|
|
|
|
|
template<typename T> auto cast() -> T {
|
|
|
|
if(auto pointer = dynamic_cast<typename T::internalType*>(data())) {
|
|
|
|
if(auto shared = pointer->instance.acquire()) return T(shared);
|
|
|
|
}
|
|
|
|
return T();
|
|
|
|
}
|
2015-06-18 10:48:53 +00:00
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_Group)
|
|
|
|
struct Group : sGroup {
|
|
|
|
DeclareShared(Group)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mGroup;
|
2015-06-18 10:48:53 +00:00
|
|
|
template<typename... P> Group(P&&... p) : Group() { _append(std::forward<P>(p)...); }
|
|
|
|
|
|
|
|
auto append(sObject object) -> type& { return self().append(object), *this; }
|
|
|
|
auto object(unsigned position) const { return self().object(position); }
|
Update to v094r40 release.
byuu says:
Changelog:
- updated to newest hiro API
- SFC performance profile builds once again
- hiro: Qt port completed
Errata 1: the hiro/Qt target won't run tomoko just yet. Starts by
crashing inside InputSettings because hiro/Qt isn't forcefully selecting
the first item added to a ComboButton just yet. Even with a monkey patch
to get around that, the UI is incredibly unstable. Lots of geometry
calculation bugs, and a crash when you try and access certain folders in
the browser dialog. Lots of work left to be done there, sadly.
Errata 2: the hiro/Windows port has black backgrounds on all ListView
items. It's because I need to test for unassigned colors and grab the
default Windows brush colors in those cases.
Note: alternating row colors on multi-column ListView widgets is gone
now. Not a bug. May add it back later, but I'm not sure. It doesn't
interact nicely with per-cell background colors.
Things left to do:
First, I have to fix the Windows and Qt target bugs.
Next, I need to go through and revise the hiro API even more (nothing
too major.)
Next, I need to update icarus to use the new hiro API, and add support
for the SFC games database.
Next, I have to rewrite my TSV->BML cheat code tool.
Next, I need to post a final WIP of higan+icarus publicly and wait a few
days.
Next, I need to fix any bugs reported from the final WIP that I can.
Finally, I should be able to release v095.
2015-08-18 10:18:00 +00:00
|
|
|
auto objectCount() const { return self().objectCount(); }
|
2015-12-14 09:41:06 +00:00
|
|
|
//auto objects() const { return self().objects(); }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto remove(sObject object) -> type& { return self().remove(object), *this; }
|
|
|
|
|
2015-12-14 09:41:06 +00:00
|
|
|
template<typename T = Object> auto objects() const -> vector<T> {
|
|
|
|
vector<T> objects;
|
|
|
|
for(auto object : self().objects()) {
|
|
|
|
if(auto cast = object.cast<T>()) objects.append(cast);
|
|
|
|
}
|
|
|
|
return objects;
|
|
|
|
}
|
|
|
|
|
2015-06-18 10:48:53 +00:00
|
|
|
private:
|
|
|
|
auto _append() {}
|
|
|
|
template<typename T, typename... P> auto _append(T* object, P&&... p) {
|
|
|
|
append(*object);
|
|
|
|
_append(std::forward<P>(p)...);
|
|
|
|
}
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_Timer)
|
|
|
|
struct Timer : sTimer {
|
|
|
|
DeclareSharedObject(Timer)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mTimer;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
|
|
|
auto doActivate() const { return self().doActivate(); }
|
|
|
|
auto interval() const { return self().interval(); }
|
|
|
|
auto onActivate(const function<void ()>& callback = {}) { return self().onActivate(callback), *this; }
|
|
|
|
auto setInterval(unsigned interval = 0) { return self().setInterval(interval), *this; }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_Action)
|
|
|
|
struct Action : sAction {
|
|
|
|
DeclareSharedAction(Action)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mAction;
|
2015-06-18 10:48:53 +00:00
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_Menu)
|
|
|
|
struct Menu : sMenu {
|
|
|
|
DeclareSharedAction(Menu)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mMenu;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
|
|
|
auto action(unsigned position) const { return self().action(position); }
|
Update to v094r40 release.
byuu says:
Changelog:
- updated to newest hiro API
- SFC performance profile builds once again
- hiro: Qt port completed
Errata 1: the hiro/Qt target won't run tomoko just yet. Starts by
crashing inside InputSettings because hiro/Qt isn't forcefully selecting
the first item added to a ComboButton just yet. Even with a monkey patch
to get around that, the UI is incredibly unstable. Lots of geometry
calculation bugs, and a crash when you try and access certain folders in
the browser dialog. Lots of work left to be done there, sadly.
Errata 2: the hiro/Windows port has black backgrounds on all ListView
items. It's because I need to test for unassigned colors and grab the
default Windows brush colors in those cases.
Note: alternating row colors on multi-column ListView widgets is gone
now. Not a bug. May add it back later, but I'm not sure. It doesn't
interact nicely with per-cell background colors.
Things left to do:
First, I have to fix the Windows and Qt target bugs.
Next, I need to go through and revise the hiro API even more (nothing
too major.)
Next, I need to update icarus to use the new hiro API, and add support
for the SFC games database.
Next, I have to rewrite my TSV->BML cheat code tool.
Next, I need to post a final WIP of higan+icarus publicly and wait a few
days.
Next, I need to fix any bugs reported from the final WIP that I can.
Finally, I should be able to release v095.
2015-08-18 10:18:00 +00:00
|
|
|
auto actionCount() const { return self().actionCount(); }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto actions() const { return self().actions(); }
|
|
|
|
auto append(sAction action) { return self().append(action), *this; }
|
2016-01-07 08:14:33 +00:00
|
|
|
auto icon() const { return self().icon(); }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto remove(sAction action) { return self().remove(action), *this; }
|
|
|
|
auto reset() { return self().reset(), *this; }
|
2016-01-07 08:14:33 +00:00
|
|
|
auto setIcon(const image& icon = {}) { return self().setIcon(icon), *this; }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto setText(const string& text = "") { return self().setText(text), *this; }
|
|
|
|
auto text() const { return self().text(); }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_MenuSeparator)
|
|
|
|
struct MenuSeparator : sMenuSeparator {
|
|
|
|
DeclareSharedAction(MenuSeparator)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mMenuSeparator;
|
2015-06-18 10:48:53 +00:00
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_MenuItem)
|
|
|
|
struct MenuItem : sMenuItem {
|
|
|
|
DeclareSharedAction(MenuItem)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mMenuItem;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
|
|
|
auto doActivate() const { return self().doActivate(); }
|
2016-01-07 08:14:33 +00:00
|
|
|
auto icon() const { return self().icon(); }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto onActivate(const function<void ()>& callback = {}) { return self().onActivate(callback), *this; }
|
2016-01-07 08:14:33 +00:00
|
|
|
auto setIcon(const image& icon = {}) { return self().setIcon(icon), *this; }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto setText(const string& text = "") { return self().setText(text), *this; }
|
|
|
|
auto text() const { return self().text(); }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_MenuCheckItem)
|
|
|
|
struct MenuCheckItem : sMenuCheckItem {
|
|
|
|
DeclareSharedAction(MenuCheckItem)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mMenuCheckItem;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
|
|
|
auto checked() const { return self().checked(); }
|
|
|
|
auto doToggle() const { return self().doToggle(); }
|
|
|
|
auto onToggle(const function<void ()>& callback = {}) { return self().onToggle(callback), *this; }
|
|
|
|
auto setChecked(bool checked = true) { return self().setChecked(checked), *this; }
|
|
|
|
auto setText(const string& text = "") { return self().setText(text), *this; }
|
|
|
|
auto text() const { return self().text(); }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_MenuRadioItem)
|
|
|
|
struct MenuRadioItem : sMenuRadioItem {
|
|
|
|
DeclareSharedAction(MenuRadioItem)
|
2015-11-16 08:38:05 +00:00
|
|
|
using internalType = mMenuRadioItem;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
|
|
|
auto checked() const { return self().checked(); }
|
|
|
|
auto doActivate() const { return self().doActivate(); }
|
|
|
|
auto group() const { return self().group(); }
|
|
|
|
auto onActivate(const function<void ()>& callback = {}) { return self().onActivate(callback), *this; }
|
|
|
|
auto setChecked() { return self().setChecked(), *this; }
|
|
|
|
auto setText(const string& text = "") { return self().setText(text), *this; }
|
|
|
|
auto text() const { return self().text(); }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_Sizable)
|
|
|
|
struct Sizable : sSizable {
|
|
|
|
DeclareSharedSizable(Sizable)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mSizable;
|
2015-06-18 10:48:53 +00:00
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_Layout)
|
|
|
|
struct Layout : sLayout {
|
|
|
|
DeclareSharedLayout(Layout)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mLayout;
|
2015-06-18 10:48:53 +00:00
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_Widget)
|
|
|
|
struct Widget : sWidget {
|
|
|
|
DeclareSharedWidget(Widget)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mWidget;
|
2015-06-18 10:48:53 +00:00
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_Button)
|
|
|
|
struct Button : sButton {
|
|
|
|
DeclareSharedWidget(Button)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mButton;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
|
|
|
auto bordered() const { return self().bordered(); }
|
|
|
|
auto doActivate() const { return self().doActivate(); }
|
2016-01-07 08:14:33 +00:00
|
|
|
auto icon() const { return self().icon(); }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto onActivate(const function<void ()>& callback = {}) { return self().onActivate(callback), *this; }
|
|
|
|
auto orientation() const { return self().orientation(); }
|
|
|
|
auto setBordered(bool bordered = true) { return self().setBordered(bordered), *this; }
|
2016-01-07 08:14:33 +00:00
|
|
|
auto setIcon(const image& icon = {}) { return self().setIcon(icon), *this; }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto setOrientation(Orientation orientation = Orientation::Horizontal) { return self().setOrientation(orientation), *this; }
|
|
|
|
auto setText(const string& text = "") { return self().setText(text), *this; }
|
|
|
|
auto text() const { return self().text(); }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_Canvas)
|
|
|
|
struct Canvas : sCanvas {
|
|
|
|
DeclareSharedWidget(Canvas)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mCanvas;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
|
|
|
auto color() const { return self().color(); }
|
|
|
|
auto data() { return self().data(); }
|
|
|
|
auto droppable() const { return self().droppable(); }
|
|
|
|
auto doDrop(lstring names) { return self().doDrop(names); }
|
|
|
|
auto doMouseLeave() const { return self().doMouseLeave(); }
|
|
|
|
auto doMouseMove(Position position) const { return self().doMouseMove(position); }
|
|
|
|
auto doMousePress(Mouse::Button button) const { return self().doMousePress(button); }
|
|
|
|
auto doMouseRelease(Mouse::Button button) const { return self().doMouseRelease(button); }
|
|
|
|
auto gradient() const { return self().gradient(); }
|
2016-01-07 08:14:33 +00:00
|
|
|
auto icon() const { return self().icon(); }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto onDrop(const function<void (lstring)>& callback = {}) { return self().onDrop(callback), *this; }
|
|
|
|
auto onMouseLeave(const function<void ()>& callback = {}) { return self().onMouseLeave(callback), *this; }
|
|
|
|
auto onMouseMove(const function<void (Position)>& callback = {}) { return self().onMouseMove(callback), *this; }
|
|
|
|
auto onMousePress(const function<void (Mouse::Button)>& callback = {}) { return self().onMousePress(callback), *this; }
|
|
|
|
auto onMouseRelease(const function<void (Mouse::Button)>& callback = {}) { return self().onMouseRelease(callback), *this; }
|
|
|
|
auto setColor(Color color) { return self().setColor(color), *this; }
|
|
|
|
auto setDroppable(bool droppable = true) { return self().setDroppable(droppable), *this; }
|
Update to v094r43 release.
byuu says:
Updated to compile with all of the new hiro changes. My next step is to
write up hiro API documentation, and move the API from alpha (constantly
changing) to beta (rarely changing), in preparation for the first stable
release (backward-compatible changes only.)
Added "--fullscreen" command-line option. I like this over
a configuration file option. Lets you use the emulator in both modes
without having to modify the config file each time.
Also enhanced the command-line game loading. You can now use any of
these methods:
higan /path/to/game-folder.sfc
higan /path/to/game-folder.sfc/
higan /path/to/game-folder.sfc/program.rom
The idea is to support launchers that insist on loading files only.
Technically, the file can be any name (manifest.bml also works); the
only criteria is that the file actually exists and is a file, and not
a directory. This is a requirement to support the first version (a
directory lacking the trailing / identifier), because I don't want my
nall::string class to query the file system to determine if the string
is an actual existing file or directory for its pathname() / dirname()
functions.
Anyway, every game folder I've made so far has program.rom, and that's
very unlikely to change, so this should be fine.
Now, of course, if you drop a regular "game.sfc" file on the emulator,
it won't even try to load it, unless it's in a folder that ends in .fc,
.sfc, etc. In which case, it'll bail out immediately by being unable to
produce a manifest for what is obviously not really a game folder.
2015-08-30 02:08:26 +00:00
|
|
|
auto setGradient(Gradient gradient = {}) { return self().setGradient(gradient), *this; }
|
2016-01-07 08:14:33 +00:00
|
|
|
auto setIcon(const image& icon = {}) { return self().setIcon(icon), *this; }
|
Update to v094r43 release.
byuu says:
Updated to compile with all of the new hiro changes. My next step is to
write up hiro API documentation, and move the API from alpha (constantly
changing) to beta (rarely changing), in preparation for the first stable
release (backward-compatible changes only.)
Added "--fullscreen" command-line option. I like this over
a configuration file option. Lets you use the emulator in both modes
without having to modify the config file each time.
Also enhanced the command-line game loading. You can now use any of
these methods:
higan /path/to/game-folder.sfc
higan /path/to/game-folder.sfc/
higan /path/to/game-folder.sfc/program.rom
The idea is to support launchers that insist on loading files only.
Technically, the file can be any name (manifest.bml also works); the
only criteria is that the file actually exists and is a file, and not
a directory. This is a requirement to support the first version (a
directory lacking the trailing / identifier), because I don't want my
nall::string class to query the file system to determine if the string
is an actual existing file or directory for its pathname() / dirname()
functions.
Anyway, every game folder I've made so far has program.rom, and that's
very unlikely to change, so this should be fine.
Now, of course, if you drop a regular "game.sfc" file on the emulator,
it won't even try to load it, unless it's in a folder that ends in .fc,
.sfc, etc. In which case, it'll bail out immediately by being unable to
produce a manifest for what is obviously not really a game folder.
2015-08-30 02:08:26 +00:00
|
|
|
auto setSize(Size size = {}) { return self().setSize(size), *this; }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto update() { return self().update(), *this; }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_CheckButton)
|
|
|
|
struct CheckButton : sCheckButton {
|
|
|
|
DeclareSharedWidget(CheckButton)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mCheckButton;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
|
|
|
auto bordered() const { return self().bordered(); }
|
|
|
|
auto checked() const { return self().checked(); }
|
|
|
|
auto doToggle() const { return self().doToggle(); }
|
2016-01-07 08:14:33 +00:00
|
|
|
auto icon() const { return self().icon(); }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto onToggle(const function<void ()>& callback = {}) { return self().onToggle(callback), *this; }
|
|
|
|
auto orientation() const { return self().orientation(); }
|
|
|
|
auto setBordered(bool bordered = true) { return self().setBordered(bordered), *this; }
|
|
|
|
auto setChecked(bool checked = true) { return self().setChecked(checked), *this; }
|
2016-01-07 08:14:33 +00:00
|
|
|
auto setIcon(const image& icon = {}) { return self().setIcon(icon), *this; }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto setOrientation(Orientation orientation = Orientation::Horizontal) { return self().setOrientation(orientation), *this; }
|
|
|
|
auto setText(const string& text = "") { return self().setText(text), *this; }
|
|
|
|
auto text() const { return self().text(); }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_CheckLabel)
|
|
|
|
struct CheckLabel : sCheckLabel {
|
|
|
|
DeclareSharedWidget(CheckLabel)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mCheckLabel;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
|
|
|
auto checked() const { return self().checked(); }
|
|
|
|
auto doToggle() const { return self().doToggle(); }
|
|
|
|
auto onToggle(const function<void ()>& callback = {}) { return self().onToggle(callback), *this; }
|
|
|
|
auto setChecked(bool checked = true) { return self().setChecked(checked), *this; }
|
|
|
|
auto setText(const string& text = "") { return self().setText(text), *this; }
|
|
|
|
auto text() const { return self().text(); }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_ComboButton)
|
|
|
|
struct ComboButtonItem : sComboButtonItem {
|
|
|
|
DeclareSharedObject(ComboButtonItem)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mComboButtonItem;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
2016-01-07 08:14:33 +00:00
|
|
|
auto icon() const { return self().icon(); }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto selected() const { return self().selected(); }
|
2016-01-07 08:14:33 +00:00
|
|
|
auto setIcon(const image& icon = {}) { return self().setIcon(icon), *this; }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto setSelected() { return self().setSelected(), *this; }
|
|
|
|
auto setText(const string& text = "") { return self().setText(text), *this; }
|
|
|
|
auto text() const { return self().text(); }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_ComboButton)
|
|
|
|
struct ComboButton : sComboButton {
|
|
|
|
DeclareSharedWidget(ComboButton)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mComboButton;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
|
|
|
auto append(sComboButtonItem item) { return self().append(item), *this; }
|
|
|
|
auto doChange() const { return self().doChange(); }
|
|
|
|
auto item(unsigned position) const { return self().item(position); }
|
Update to v094r40 release.
byuu says:
Changelog:
- updated to newest hiro API
- SFC performance profile builds once again
- hiro: Qt port completed
Errata 1: the hiro/Qt target won't run tomoko just yet. Starts by
crashing inside InputSettings because hiro/Qt isn't forcefully selecting
the first item added to a ComboButton just yet. Even with a monkey patch
to get around that, the UI is incredibly unstable. Lots of geometry
calculation bugs, and a crash when you try and access certain folders in
the browser dialog. Lots of work left to be done there, sadly.
Errata 2: the hiro/Windows port has black backgrounds on all ListView
items. It's because I need to test for unassigned colors and grab the
default Windows brush colors in those cases.
Note: alternating row colors on multi-column ListView widgets is gone
now. Not a bug. May add it back later, but I'm not sure. It doesn't
interact nicely with per-cell background colors.
Things left to do:
First, I have to fix the Windows and Qt target bugs.
Next, I need to go through and revise the hiro API even more (nothing
too major.)
Next, I need to update icarus to use the new hiro API, and add support
for the SFC games database.
Next, I have to rewrite my TSV->BML cheat code tool.
Next, I need to post a final WIP of higan+icarus publicly and wait a few
days.
Next, I need to fix any bugs reported from the final WIP that I can.
Finally, I should be able to release v095.
2015-08-18 10:18:00 +00:00
|
|
|
auto itemCount() const { return self().itemCount(); }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto items() const { return self().items(); }
|
|
|
|
auto onChange(const function<void ()>& callback = {}) { return self().onChange(callback), *this; }
|
|
|
|
auto remove(sComboButtonItem item) { return self().remove(item), *this; }
|
|
|
|
auto reset() { return self().reset(), *this; }
|
|
|
|
auto selected() const { return self().selected(); }
|
|
|
|
auto setParent(mObject* parent = nullptr, signed offset = -1) { return self().setParent(parent, offset), *this; }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_Console)
|
|
|
|
struct Console : sConsole {
|
|
|
|
DeclareSharedWidget(Console)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mConsole;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
|
|
|
auto backgroundColor() const { return self().backgroundColor(); }
|
|
|
|
auto doActivate(string command) const { return self().doActivate(command); }
|
|
|
|
auto foregroundColor() const { return self().foregroundColor(); }
|
|
|
|
auto onActivate(const function<void (string)>& callback = {}) { return self().onActivate(callback), *this; }
|
|
|
|
auto print(const string& text) { return self().print(text), *this; }
|
|
|
|
auto prompt() const { return self().prompt(); }
|
|
|
|
auto reset() { return self().reset(), *this; }
|
|
|
|
auto setBackgroundColor(Color color = {}) { return self().setBackgroundColor(color), *this; }
|
|
|
|
auto setForegroundColor(Color color = {}) { return self().setForegroundColor(color), *this; }
|
|
|
|
auto setPrompt(const string& prompt = "") { return self().setPrompt(prompt), *this; }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_Frame)
|
|
|
|
struct Frame : sFrame {
|
|
|
|
DeclareSharedWidget(Frame)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mFrame;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
|
|
|
auto append(sLayout layout) { return self().append(layout), *this; }
|
|
|
|
auto layout() const { return self().layout(); }
|
|
|
|
auto remove(sLayout layout) { return self().remove(layout), *this; }
|
|
|
|
auto reset() { return self().reset(), *this; }
|
|
|
|
auto setText(const string& text = "") { return self().setText(text), *this; }
|
|
|
|
auto text() const { return self().text(); }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_HexEdit)
|
|
|
|
struct HexEdit : sHexEdit {
|
|
|
|
DeclareSharedWidget(HexEdit)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mHexEdit;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
Update to v094r40 release.
byuu says:
Changelog:
- updated to newest hiro API
- SFC performance profile builds once again
- hiro: Qt port completed
Errata 1: the hiro/Qt target won't run tomoko just yet. Starts by
crashing inside InputSettings because hiro/Qt isn't forcefully selecting
the first item added to a ComboButton just yet. Even with a monkey patch
to get around that, the UI is incredibly unstable. Lots of geometry
calculation bugs, and a crash when you try and access certain folders in
the browser dialog. Lots of work left to be done there, sadly.
Errata 2: the hiro/Windows port has black backgrounds on all ListView
items. It's because I need to test for unassigned colors and grab the
default Windows brush colors in those cases.
Note: alternating row colors on multi-column ListView widgets is gone
now. Not a bug. May add it back later, but I'm not sure. It doesn't
interact nicely with per-cell background colors.
Things left to do:
First, I have to fix the Windows and Qt target bugs.
Next, I need to go through and revise the hiro API even more (nothing
too major.)
Next, I need to update icarus to use the new hiro API, and add support
for the SFC games database.
Next, I have to rewrite my TSV->BML cheat code tool.
Next, I need to post a final WIP of higan+icarus publicly and wait a few
days.
Next, I need to fix any bugs reported from the final WIP that I can.
Finally, I should be able to release v095.
2015-08-18 10:18:00 +00:00
|
|
|
auto address() const { return self().address(); }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto backgroundColor() const { return self().backgroundColor(); }
|
|
|
|
auto columns() const { return self().columns(); }
|
|
|
|
auto doRead(unsigned offset) const { return self().doRead(offset); }
|
|
|
|
auto doWrite(unsigned offset, uint8_t data) const { return self().doWrite(offset, data); }
|
|
|
|
auto foregroundColor() const { return self().foregroundColor(); }
|
|
|
|
auto length() const { return self().length(); }
|
|
|
|
auto onRead(const function<uint8_t (unsigned)>& callback = {}) { return self().onRead(callback), *this; }
|
|
|
|
auto onWrite(const function<void (unsigned, uint8_t)>& callback = {}) { return self().onWrite(callback), *this; }
|
|
|
|
auto rows() const { return self().rows(); }
|
Update to v094r40 release.
byuu says:
Changelog:
- updated to newest hiro API
- SFC performance profile builds once again
- hiro: Qt port completed
Errata 1: the hiro/Qt target won't run tomoko just yet. Starts by
crashing inside InputSettings because hiro/Qt isn't forcefully selecting
the first item added to a ComboButton just yet. Even with a monkey patch
to get around that, the UI is incredibly unstable. Lots of geometry
calculation bugs, and a crash when you try and access certain folders in
the browser dialog. Lots of work left to be done there, sadly.
Errata 2: the hiro/Windows port has black backgrounds on all ListView
items. It's because I need to test for unassigned colors and grab the
default Windows brush colors in those cases.
Note: alternating row colors on multi-column ListView widgets is gone
now. Not a bug. May add it back later, but I'm not sure. It doesn't
interact nicely with per-cell background colors.
Things left to do:
First, I have to fix the Windows and Qt target bugs.
Next, I need to go through and revise the hiro API even more (nothing
too major.)
Next, I need to update icarus to use the new hiro API, and add support
for the SFC games database.
Next, I have to rewrite my TSV->BML cheat code tool.
Next, I need to post a final WIP of higan+icarus publicly and wait a few
days.
Next, I need to fix any bugs reported from the final WIP that I can.
Finally, I should be able to release v095.
2015-08-18 10:18:00 +00:00
|
|
|
auto setAddress(unsigned address) { return self().setAddress(address), *this; }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto setBackgroundColor(Color color = {}) { return self().setBackgroundColor(color), *this; }
|
|
|
|
auto setColumns(unsigned columns = 16) { return self().setColumns(columns), *this; }
|
|
|
|
auto setForegroundColor(Color color = {}) { return self().setForegroundColor(color), *this; }
|
|
|
|
auto setLength(unsigned length) { return self().setLength(length), *this; }
|
|
|
|
auto setRows(unsigned rows = 16) { return self().setRows(rows), *this; }
|
|
|
|
auto update() { return self().update(), *this; }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
2015-08-21 10:56:39 +00:00
|
|
|
#if defined(Hiro_HorizontalScrollBar)
|
|
|
|
struct HorizontalScrollBar : sHorizontalScrollBar {
|
|
|
|
DeclareSharedWidget(HorizontalScrollBar)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mHorizontalScrollBar;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
|
|
|
auto doChange() const { return self().doChange(); }
|
|
|
|
auto length() const { return self().length(); }
|
|
|
|
auto onChange(const function<void ()>& callback = {}) { return self().onChange(callback), *this; }
|
|
|
|
auto position() const { return self().position(); }
|
|
|
|
auto setLength(unsigned length = 101) { return self().setLength(length), *this; }
|
|
|
|
auto setPosition(unsigned position = 0) { return self().setPosition(position), *this; }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_HorizontalSlider)
|
|
|
|
struct HorizontalSlider : sHorizontalSlider {
|
|
|
|
DeclareSharedWidget(HorizontalSlider)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mHorizontalSlider;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
|
|
|
auto doChange() const { return self().doChange(); }
|
|
|
|
auto length() const { return self().length(); }
|
|
|
|
auto onChange(const function<void ()>& callback = {}) { return self().onChange(callback), *this; }
|
|
|
|
auto position() const { return self().position(); }
|
|
|
|
auto setLength(unsigned length = 101) { return self().setLength(length), *this; }
|
|
|
|
auto setPosition(unsigned position = 0) { return self().setPosition(position), *this; }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_IconView)
|
|
|
|
struct IconViewItem : sIconViewItem {
|
|
|
|
DeclareSharedObject(IconViewItem)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mIconViewItem;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
2016-01-07 08:14:33 +00:00
|
|
|
auto icon() const { return self().icon(); }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto selected() const { return self().selected(); }
|
2016-01-07 08:14:33 +00:00
|
|
|
auto setIcon(const image& icon = {}) { return self().setIcon(icon), *this; }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto setSelected(bool selected = true) { return self().setSelected(selected), *this; }
|
|
|
|
auto setText(const string& text = "") { return self().setText(text), *this; }
|
|
|
|
auto text() const { return self().text(); }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_IconView)
|
|
|
|
struct IconView : sIconView {
|
|
|
|
DeclareSharedWidget(IconView)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mIconView;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
|
|
|
auto append(sIconViewItem item) { return self().append(item), *this; }
|
|
|
|
auto backgroundColor() const { return self().backgroundColor(); }
|
Update to v094r43 release.
byuu says:
Updated to compile with all of the new hiro changes. My next step is to
write up hiro API documentation, and move the API from alpha (constantly
changing) to beta (rarely changing), in preparation for the first stable
release (backward-compatible changes only.)
Added "--fullscreen" command-line option. I like this over
a configuration file option. Lets you use the emulator in both modes
without having to modify the config file each time.
Also enhanced the command-line game loading. You can now use any of
these methods:
higan /path/to/game-folder.sfc
higan /path/to/game-folder.sfc/
higan /path/to/game-folder.sfc/program.rom
The idea is to support launchers that insist on loading files only.
Technically, the file can be any name (manifest.bml also works); the
only criteria is that the file actually exists and is a file, and not
a directory. This is a requirement to support the first version (a
directory lacking the trailing / identifier), because I don't want my
nall::string class to query the file system to determine if the string
is an actual existing file or directory for its pathname() / dirname()
functions.
Anyway, every game folder I've made so far has program.rom, and that's
very unlikely to change, so this should be fine.
Now, of course, if you drop a regular "game.sfc" file on the emulator,
it won't even try to load it, unless it's in a folder that ends in .fc,
.sfc, etc. In which case, it'll bail out immediately by being unable to
produce a manifest for what is obviously not really a game folder.
2015-08-30 02:08:26 +00:00
|
|
|
auto batchable() const { return self().batchable(); }
|
|
|
|
auto batched() const { return self().batched(); }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto doActivate() const { return self().doActivate(); }
|
|
|
|
auto doChange() const { return self().doChange(); }
|
|
|
|
auto doContext() const { return self().doContext(); }
|
|
|
|
auto flow() const { return self().flow(); }
|
|
|
|
auto foregroundColor() const { return self().foregroundColor(); }
|
|
|
|
auto item(unsigned position) const { return self().item(position); }
|
Update to v094r40 release.
byuu says:
Changelog:
- updated to newest hiro API
- SFC performance profile builds once again
- hiro: Qt port completed
Errata 1: the hiro/Qt target won't run tomoko just yet. Starts by
crashing inside InputSettings because hiro/Qt isn't forcefully selecting
the first item added to a ComboButton just yet. Even with a monkey patch
to get around that, the UI is incredibly unstable. Lots of geometry
calculation bugs, and a crash when you try and access certain folders in
the browser dialog. Lots of work left to be done there, sadly.
Errata 2: the hiro/Windows port has black backgrounds on all ListView
items. It's because I need to test for unassigned colors and grab the
default Windows brush colors in those cases.
Note: alternating row colors on multi-column ListView widgets is gone
now. Not a bug. May add it back later, but I'm not sure. It doesn't
interact nicely with per-cell background colors.
Things left to do:
First, I have to fix the Windows and Qt target bugs.
Next, I need to go through and revise the hiro API even more (nothing
too major.)
Next, I need to update icarus to use the new hiro API, and add support
for the SFC games database.
Next, I have to rewrite my TSV->BML cheat code tool.
Next, I need to post a final WIP of higan+icarus publicly and wait a few
days.
Next, I need to fix any bugs reported from the final WIP that I can.
Finally, I should be able to release v095.
2015-08-18 10:18:00 +00:00
|
|
|
auto itemCount() const { return self().itemCount(); }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto items() const { return self().items(); }
|
|
|
|
auto onActivate(const function<void ()>& callback = {}) { return self().onActivate(callback), *this; }
|
|
|
|
auto onChange(const function<void ()>& callback = {}) { return self().onChange(callback), *this; }
|
|
|
|
auto onContext(const function<void ()>& callback = {}) { return self().onContext(callback), *this; }
|
|
|
|
auto orientation() const { return self().orientation(); }
|
|
|
|
auto remove(sIconViewItem item) { return self().remove(item), *this; }
|
|
|
|
auto reset() { return self().reset(), *this; }
|
|
|
|
auto selected() const { return self().selected(); }
|
|
|
|
auto setBackgroundColor(Color color = {}) { return self().setBackgroundColor(color), *this; }
|
Update to v094r43 release.
byuu says:
Updated to compile with all of the new hiro changes. My next step is to
write up hiro API documentation, and move the API from alpha (constantly
changing) to beta (rarely changing), in preparation for the first stable
release (backward-compatible changes only.)
Added "--fullscreen" command-line option. I like this over
a configuration file option. Lets you use the emulator in both modes
without having to modify the config file each time.
Also enhanced the command-line game loading. You can now use any of
these methods:
higan /path/to/game-folder.sfc
higan /path/to/game-folder.sfc/
higan /path/to/game-folder.sfc/program.rom
The idea is to support launchers that insist on loading files only.
Technically, the file can be any name (manifest.bml also works); the
only criteria is that the file actually exists and is a file, and not
a directory. This is a requirement to support the first version (a
directory lacking the trailing / identifier), because I don't want my
nall::string class to query the file system to determine if the string
is an actual existing file or directory for its pathname() / dirname()
functions.
Anyway, every game folder I've made so far has program.rom, and that's
very unlikely to change, so this should be fine.
Now, of course, if you drop a regular "game.sfc" file on the emulator,
it won't even try to load it, unless it's in a folder that ends in .fc,
.sfc, etc. In which case, it'll bail out immediately by being unable to
produce a manifest for what is obviously not really a game folder.
2015-08-30 02:08:26 +00:00
|
|
|
auto setBatchable(bool batchable = true) { return self().setBatchable(batchable), *this; }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto setFlow(Orientation orientation = Orientation::Vertical) { return self().setFlow(orientation), *this; }
|
|
|
|
auto setForegroundColor(Color color = {}) { return self().setForegroundColor(color), *this; }
|
|
|
|
auto setOrientation(Orientation orientation = Orientation::Horizontal) { return self().setOrientation(orientation), *this; }
|
|
|
|
auto setSelected(const vector<signed>& selections) { return self().setSelected(selections), *this; }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_Label)
|
|
|
|
struct Label : sLabel {
|
|
|
|
DeclareSharedWidget(Label)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mLabel;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
Update to v094r40 release.
byuu says:
Changelog:
- updated to newest hiro API
- SFC performance profile builds once again
- hiro: Qt port completed
Errata 1: the hiro/Qt target won't run tomoko just yet. Starts by
crashing inside InputSettings because hiro/Qt isn't forcefully selecting
the first item added to a ComboButton just yet. Even with a monkey patch
to get around that, the UI is incredibly unstable. Lots of geometry
calculation bugs, and a crash when you try and access certain folders in
the browser dialog. Lots of work left to be done there, sadly.
Errata 2: the hiro/Windows port has black backgrounds on all ListView
items. It's because I need to test for unassigned colors and grab the
default Windows brush colors in those cases.
Note: alternating row colors on multi-column ListView widgets is gone
now. Not a bug. May add it back later, but I'm not sure. It doesn't
interact nicely with per-cell background colors.
Things left to do:
First, I have to fix the Windows and Qt target bugs.
Next, I need to go through and revise the hiro API even more (nothing
too major.)
Next, I need to update icarus to use the new hiro API, and add support
for the SFC games database.
Next, I have to rewrite my TSV->BML cheat code tool.
Next, I need to post a final WIP of higan+icarus publicly and wait a few
days.
Next, I need to fix any bugs reported from the final WIP that I can.
Finally, I should be able to release v095.
2015-08-18 10:18:00 +00:00
|
|
|
auto alignment() const { return self().alignment(); }
|
|
|
|
auto setAlignment(Alignment alignment = {}) { return self().setAlignment(alignment), *this; }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto setText(const string& text = "") { return self().setText(text), *this; }
|
|
|
|
auto text() const { return self().text(); }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_LineEdit)
|
|
|
|
struct LineEdit : sLineEdit {
|
|
|
|
DeclareSharedWidget(LineEdit)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mLineEdit;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
|
|
|
auto backgroundColor() const { return self().backgroundColor(); }
|
|
|
|
auto doActivate() const { return self().doActivate(); }
|
|
|
|
auto doChange() const { return self().doChange(); }
|
|
|
|
auto editable() const { return self().editable(); }
|
|
|
|
auto foregroundColor() const { return self().foregroundColor(); }
|
|
|
|
auto onActivate(const function<void ()>& callback = {}) { return self().onActivate(callback), *this; }
|
|
|
|
auto onChange(const function<void ()>& callback = {}) { return self().onChange(callback), *this; }
|
|
|
|
auto setBackgroundColor(Color color = {}) { return self().setBackgroundColor(color), *this; }
|
|
|
|
auto setEditable(bool editable = true) { return self().setEditable(editable), *this; }
|
|
|
|
auto setForegroundColor(Color color = {}) { return self().setForegroundColor(color), *this; }
|
|
|
|
auto setText(const string& text = "") { return self().setText(text), *this; }
|
|
|
|
auto text() const { return self().text(); }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_ListView)
|
|
|
|
struct ListViewColumn : sListViewColumn {
|
|
|
|
DeclareSharedObject(ListViewColumn)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mListViewColumn;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
|
|
|
auto active() const { return self().active(); }
|
Update to v094r40 release.
byuu says:
Changelog:
- updated to newest hiro API
- SFC performance profile builds once again
- hiro: Qt port completed
Errata 1: the hiro/Qt target won't run tomoko just yet. Starts by
crashing inside InputSettings because hiro/Qt isn't forcefully selecting
the first item added to a ComboButton just yet. Even with a monkey patch
to get around that, the UI is incredibly unstable. Lots of geometry
calculation bugs, and a crash when you try and access certain folders in
the browser dialog. Lots of work left to be done there, sadly.
Errata 2: the hiro/Windows port has black backgrounds on all ListView
items. It's because I need to test for unassigned colors and grab the
default Windows brush colors in those cases.
Note: alternating row colors on multi-column ListView widgets is gone
now. Not a bug. May add it back later, but I'm not sure. It doesn't
interact nicely with per-cell background colors.
Things left to do:
First, I have to fix the Windows and Qt target bugs.
Next, I need to go through and revise the hiro API even more (nothing
too major.)
Next, I need to update icarus to use the new hiro API, and add support
for the SFC games database.
Next, I have to rewrite my TSV->BML cheat code tool.
Next, I need to post a final WIP of higan+icarus publicly and wait a few
days.
Next, I need to fix any bugs reported from the final WIP that I can.
Finally, I should be able to release v095.
2015-08-18 10:18:00 +00:00
|
|
|
auto alignment() const { return self().alignment(); }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto backgroundColor() const { return self().backgroundColor(); }
|
|
|
|
auto editable() const { return self().editable(); }
|
|
|
|
auto expandable() const { return self().expandable(); }
|
|
|
|
auto foregroundColor() const { return self().foregroundColor(); }
|
|
|
|
auto horizontalAlignment() const { return self().horizontalAlignment(); }
|
2016-01-07 08:14:33 +00:00
|
|
|
auto icon() const { return self().icon(); }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto resizable() const { return self().resizable(); }
|
|
|
|
auto setActive() { return self().setActive(), *this; }
|
Update to v094r40 release.
byuu says:
Changelog:
- updated to newest hiro API
- SFC performance profile builds once again
- hiro: Qt port completed
Errata 1: the hiro/Qt target won't run tomoko just yet. Starts by
crashing inside InputSettings because hiro/Qt isn't forcefully selecting
the first item added to a ComboButton just yet. Even with a monkey patch
to get around that, the UI is incredibly unstable. Lots of geometry
calculation bugs, and a crash when you try and access certain folders in
the browser dialog. Lots of work left to be done there, sadly.
Errata 2: the hiro/Windows port has black backgrounds on all ListView
items. It's because I need to test for unassigned colors and grab the
default Windows brush colors in those cases.
Note: alternating row colors on multi-column ListView widgets is gone
now. Not a bug. May add it back later, but I'm not sure. It doesn't
interact nicely with per-cell background colors.
Things left to do:
First, I have to fix the Windows and Qt target bugs.
Next, I need to go through and revise the hiro API even more (nothing
too major.)
Next, I need to update icarus to use the new hiro API, and add support
for the SFC games database.
Next, I have to rewrite my TSV->BML cheat code tool.
Next, I need to post a final WIP of higan+icarus publicly and wait a few
days.
Next, I need to fix any bugs reported from the final WIP that I can.
Finally, I should be able to release v095.
2015-08-18 10:18:00 +00:00
|
|
|
auto setAlignment(Alignment alignment = {}) { return self().setAlignment(alignment), *this; }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto setBackgroundColor(Color color = {}) { return self().setBackgroundColor(color), *this; }
|
|
|
|
auto setEditable(bool editable = true) { return self().setEditable(editable), *this; }
|
|
|
|
auto setExpandable(bool expandable = true) { return self().setExpandable(expandable), *this; }
|
|
|
|
auto setForegroundColor(Color color = {}) { return self().setForegroundColor(color), *this; }
|
2016-01-07 08:14:33 +00:00
|
|
|
auto setIcon(const image& icon = {}) { return self().setIcon(icon), *this; }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto setResizable(bool resizable = true) { return self().setResizable(resizable), *this; }
|
Update to v094r40 release.
byuu says:
Changelog:
- updated to newest hiro API
- SFC performance profile builds once again
- hiro: Qt port completed
Errata 1: the hiro/Qt target won't run tomoko just yet. Starts by
crashing inside InputSettings because hiro/Qt isn't forcefully selecting
the first item added to a ComboButton just yet. Even with a monkey patch
to get around that, the UI is incredibly unstable. Lots of geometry
calculation bugs, and a crash when you try and access certain folders in
the browser dialog. Lots of work left to be done there, sadly.
Errata 2: the hiro/Windows port has black backgrounds on all ListView
items. It's because I need to test for unassigned colors and grab the
default Windows brush colors in those cases.
Note: alternating row colors on multi-column ListView widgets is gone
now. Not a bug. May add it back later, but I'm not sure. It doesn't
interact nicely with per-cell background colors.
Things left to do:
First, I have to fix the Windows and Qt target bugs.
Next, I need to go through and revise the hiro API even more (nothing
too major.)
Next, I need to update icarus to use the new hiro API, and add support
for the SFC games database.
Next, I have to rewrite my TSV->BML cheat code tool.
Next, I need to post a final WIP of higan+icarus publicly and wait a few
days.
Next, I need to fix any bugs reported from the final WIP that I can.
Finally, I should be able to release v095.
2015-08-18 10:18:00 +00:00
|
|
|
auto setSortable(bool sortable = true) { return self().setSortable(sortable), *this; }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto setText(const string& text = "") { return self().setText(text), *this; }
|
|
|
|
auto setWidth(signed width = 0) { return self().setWidth(width), *this; }
|
Update to v094r40 release.
byuu says:
Changelog:
- updated to newest hiro API
- SFC performance profile builds once again
- hiro: Qt port completed
Errata 1: the hiro/Qt target won't run tomoko just yet. Starts by
crashing inside InputSettings because hiro/Qt isn't forcefully selecting
the first item added to a ComboButton just yet. Even with a monkey patch
to get around that, the UI is incredibly unstable. Lots of geometry
calculation bugs, and a crash when you try and access certain folders in
the browser dialog. Lots of work left to be done there, sadly.
Errata 2: the hiro/Windows port has black backgrounds on all ListView
items. It's because I need to test for unassigned colors and grab the
default Windows brush colors in those cases.
Note: alternating row colors on multi-column ListView widgets is gone
now. Not a bug. May add it back later, but I'm not sure. It doesn't
interact nicely with per-cell background colors.
Things left to do:
First, I have to fix the Windows and Qt target bugs.
Next, I need to go through and revise the hiro API even more (nothing
too major.)
Next, I need to update icarus to use the new hiro API, and add support
for the SFC games database.
Next, I have to rewrite my TSV->BML cheat code tool.
Next, I need to post a final WIP of higan+icarus publicly and wait a few
days.
Next, I need to fix any bugs reported from the final WIP that I can.
Finally, I should be able to release v095.
2015-08-18 10:18:00 +00:00
|
|
|
auto sortable() const { return self().sortable(); }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto text() const { return self().text(); }
|
|
|
|
auto verticalAlignment() const { return self().verticalAlignment(); }
|
|
|
|
auto width() const { return self().width(); }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
Update to v094r40 release.
byuu says:
Changelog:
- updated to newest hiro API
- SFC performance profile builds once again
- hiro: Qt port completed
Errata 1: the hiro/Qt target won't run tomoko just yet. Starts by
crashing inside InputSettings because hiro/Qt isn't forcefully selecting
the first item added to a ComboButton just yet. Even with a monkey patch
to get around that, the UI is incredibly unstable. Lots of geometry
calculation bugs, and a crash when you try and access certain folders in
the browser dialog. Lots of work left to be done there, sadly.
Errata 2: the hiro/Windows port has black backgrounds on all ListView
items. It's because I need to test for unassigned colors and grab the
default Windows brush colors in those cases.
Note: alternating row colors on multi-column ListView widgets is gone
now. Not a bug. May add it back later, but I'm not sure. It doesn't
interact nicely with per-cell background colors.
Things left to do:
First, I have to fix the Windows and Qt target bugs.
Next, I need to go through and revise the hiro API even more (nothing
too major.)
Next, I need to update icarus to use the new hiro API, and add support
for the SFC games database.
Next, I have to rewrite my TSV->BML cheat code tool.
Next, I need to post a final WIP of higan+icarus publicly and wait a few
days.
Next, I need to fix any bugs reported from the final WIP that I can.
Finally, I should be able to release v095.
2015-08-18 10:18:00 +00:00
|
|
|
#if defined(Hiro_ListView)
|
|
|
|
struct ListViewHeader : sListViewHeader {
|
|
|
|
DeclareSharedObject(ListViewHeader)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mListViewHeader;
|
Update to v094r40 release.
byuu says:
Changelog:
- updated to newest hiro API
- SFC performance profile builds once again
- hiro: Qt port completed
Errata 1: the hiro/Qt target won't run tomoko just yet. Starts by
crashing inside InputSettings because hiro/Qt isn't forcefully selecting
the first item added to a ComboButton just yet. Even with a monkey patch
to get around that, the UI is incredibly unstable. Lots of geometry
calculation bugs, and a crash when you try and access certain folders in
the browser dialog. Lots of work left to be done there, sadly.
Errata 2: the hiro/Windows port has black backgrounds on all ListView
items. It's because I need to test for unassigned colors and grab the
default Windows brush colors in those cases.
Note: alternating row colors on multi-column ListView widgets is gone
now. Not a bug. May add it back later, but I'm not sure. It doesn't
interact nicely with per-cell background colors.
Things left to do:
First, I have to fix the Windows and Qt target bugs.
Next, I need to go through and revise the hiro API even more (nothing
too major.)
Next, I need to update icarus to use the new hiro API, and add support
for the SFC games database.
Next, I have to rewrite my TSV->BML cheat code tool.
Next, I need to post a final WIP of higan+icarus publicly and wait a few
days.
Next, I need to fix any bugs reported from the final WIP that I can.
Finally, I should be able to release v095.
2015-08-18 10:18:00 +00:00
|
|
|
|
|
|
|
auto append(sListViewColumn column) { return self().append(column), *this; }
|
|
|
|
auto column(unsigned position) const { return self().column(position); }
|
|
|
|
auto columnCount() const { return self().columnCount(); }
|
|
|
|
auto columns() const { return self().columns(); }
|
|
|
|
auto remove(sListViewColumn column) { return self().remove(column), *this; }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
2015-06-18 10:48:53 +00:00
|
|
|
#if defined(Hiro_ListView)
|
|
|
|
struct ListViewCell : sListViewCell {
|
|
|
|
DeclareSharedObject(ListViewCell)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mListViewCell;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
Update to v094r40 release.
byuu says:
Changelog:
- updated to newest hiro API
- SFC performance profile builds once again
- hiro: Qt port completed
Errata 1: the hiro/Qt target won't run tomoko just yet. Starts by
crashing inside InputSettings because hiro/Qt isn't forcefully selecting
the first item added to a ComboButton just yet. Even with a monkey patch
to get around that, the UI is incredibly unstable. Lots of geometry
calculation bugs, and a crash when you try and access certain folders in
the browser dialog. Lots of work left to be done there, sadly.
Errata 2: the hiro/Windows port has black backgrounds on all ListView
items. It's because I need to test for unassigned colors and grab the
default Windows brush colors in those cases.
Note: alternating row colors on multi-column ListView widgets is gone
now. Not a bug. May add it back later, but I'm not sure. It doesn't
interact nicely with per-cell background colors.
Things left to do:
First, I have to fix the Windows and Qt target bugs.
Next, I need to go through and revise the hiro API even more (nothing
too major.)
Next, I need to update icarus to use the new hiro API, and add support
for the SFC games database.
Next, I have to rewrite my TSV->BML cheat code tool.
Next, I need to post a final WIP of higan+icarus publicly and wait a few
days.
Next, I need to fix any bugs reported from the final WIP that I can.
Finally, I should be able to release v095.
2015-08-18 10:18:00 +00:00
|
|
|
auto alignment() const { return self().alignment(); }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto backgroundColor() const { return self().backgroundColor(); }
|
Update to v094r40 release.
byuu says:
Changelog:
- updated to newest hiro API
- SFC performance profile builds once again
- hiro: Qt port completed
Errata 1: the hiro/Qt target won't run tomoko just yet. Starts by
crashing inside InputSettings because hiro/Qt isn't forcefully selecting
the first item added to a ComboButton just yet. Even with a monkey patch
to get around that, the UI is incredibly unstable. Lots of geometry
calculation bugs, and a crash when you try and access certain folders in
the browser dialog. Lots of work left to be done there, sadly.
Errata 2: the hiro/Windows port has black backgrounds on all ListView
items. It's because I need to test for unassigned colors and grab the
default Windows brush colors in those cases.
Note: alternating row colors on multi-column ListView widgets is gone
now. Not a bug. May add it back later, but I'm not sure. It doesn't
interact nicely with per-cell background colors.
Things left to do:
First, I have to fix the Windows and Qt target bugs.
Next, I need to go through and revise the hiro API even more (nothing
too major.)
Next, I need to update icarus to use the new hiro API, and add support
for the SFC games database.
Next, I have to rewrite my TSV->BML cheat code tool.
Next, I need to post a final WIP of higan+icarus publicly and wait a few
days.
Next, I need to fix any bugs reported from the final WIP that I can.
Finally, I should be able to release v095.
2015-08-18 10:18:00 +00:00
|
|
|
auto checkable() const { return self().checkable(); }
|
|
|
|
auto checked() const { return self().checked(); }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto foregroundColor() const { return self().foregroundColor(); }
|
2016-01-07 08:14:33 +00:00
|
|
|
auto icon() const { return self().icon(); }
|
Update to v094r40 release.
byuu says:
Changelog:
- updated to newest hiro API
- SFC performance profile builds once again
- hiro: Qt port completed
Errata 1: the hiro/Qt target won't run tomoko just yet. Starts by
crashing inside InputSettings because hiro/Qt isn't forcefully selecting
the first item added to a ComboButton just yet. Even with a monkey patch
to get around that, the UI is incredibly unstable. Lots of geometry
calculation bugs, and a crash when you try and access certain folders in
the browser dialog. Lots of work left to be done there, sadly.
Errata 2: the hiro/Windows port has black backgrounds on all ListView
items. It's because I need to test for unassigned colors and grab the
default Windows brush colors in those cases.
Note: alternating row colors on multi-column ListView widgets is gone
now. Not a bug. May add it back later, but I'm not sure. It doesn't
interact nicely with per-cell background colors.
Things left to do:
First, I have to fix the Windows and Qt target bugs.
Next, I need to go through and revise the hiro API even more (nothing
too major.)
Next, I need to update icarus to use the new hiro API, and add support
for the SFC games database.
Next, I have to rewrite my TSV->BML cheat code tool.
Next, I need to post a final WIP of higan+icarus publicly and wait a few
days.
Next, I need to fix any bugs reported from the final WIP that I can.
Finally, I should be able to release v095.
2015-08-18 10:18:00 +00:00
|
|
|
auto setAlignment(Alignment alignment = {}) { return self().setAlignment(alignment), *this; }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto setBackgroundColor(Color color = {}) { return self().setBackgroundColor(color), *this; }
|
Update to v094r40 release.
byuu says:
Changelog:
- updated to newest hiro API
- SFC performance profile builds once again
- hiro: Qt port completed
Errata 1: the hiro/Qt target won't run tomoko just yet. Starts by
crashing inside InputSettings because hiro/Qt isn't forcefully selecting
the first item added to a ComboButton just yet. Even with a monkey patch
to get around that, the UI is incredibly unstable. Lots of geometry
calculation bugs, and a crash when you try and access certain folders in
the browser dialog. Lots of work left to be done there, sadly.
Errata 2: the hiro/Windows port has black backgrounds on all ListView
items. It's because I need to test for unassigned colors and grab the
default Windows brush colors in those cases.
Note: alternating row colors on multi-column ListView widgets is gone
now. Not a bug. May add it back later, but I'm not sure. It doesn't
interact nicely with per-cell background colors.
Things left to do:
First, I have to fix the Windows and Qt target bugs.
Next, I need to go through and revise the hiro API even more (nothing
too major.)
Next, I need to update icarus to use the new hiro API, and add support
for the SFC games database.
Next, I have to rewrite my TSV->BML cheat code tool.
Next, I need to post a final WIP of higan+icarus publicly and wait a few
days.
Next, I need to fix any bugs reported from the final WIP that I can.
Finally, I should be able to release v095.
2015-08-18 10:18:00 +00:00
|
|
|
auto setCheckable(bool checkable = true) const { return self().setCheckable(checkable), *this; }
|
|
|
|
auto setChecked(bool checked = true) const { return self().setChecked(checked), *this; }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto setForegroundColor(Color color = {}) { return self().setForegroundColor(color), *this; }
|
2016-01-07 08:14:33 +00:00
|
|
|
auto setIcon(const image& icon = {}) { return self().setIcon(icon), *this; }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto setText(const string& text = "") { return self().setText(text), *this; }
|
|
|
|
auto text() const { return self().text(); }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_ListView)
|
|
|
|
struct ListViewItem : sListViewItem {
|
|
|
|
DeclareSharedObject(ListViewItem)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mListViewItem;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
Update to v094r40 release.
byuu says:
Changelog:
- updated to newest hiro API
- SFC performance profile builds once again
- hiro: Qt port completed
Errata 1: the hiro/Qt target won't run tomoko just yet. Starts by
crashing inside InputSettings because hiro/Qt isn't forcefully selecting
the first item added to a ComboButton just yet. Even with a monkey patch
to get around that, the UI is incredibly unstable. Lots of geometry
calculation bugs, and a crash when you try and access certain folders in
the browser dialog. Lots of work left to be done there, sadly.
Errata 2: the hiro/Windows port has black backgrounds on all ListView
items. It's because I need to test for unassigned colors and grab the
default Windows brush colors in those cases.
Note: alternating row colors on multi-column ListView widgets is gone
now. Not a bug. May add it back later, but I'm not sure. It doesn't
interact nicely with per-cell background colors.
Things left to do:
First, I have to fix the Windows and Qt target bugs.
Next, I need to go through and revise the hiro API even more (nothing
too major.)
Next, I need to update icarus to use the new hiro API, and add support
for the SFC games database.
Next, I have to rewrite my TSV->BML cheat code tool.
Next, I need to post a final WIP of higan+icarus publicly and wait a few
days.
Next, I need to fix any bugs reported from the final WIP that I can.
Finally, I should be able to release v095.
2015-08-18 10:18:00 +00:00
|
|
|
auto alignment() const { return self().alignment(); }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto append(sListViewCell cell) { return self().append(cell), *this; }
|
|
|
|
auto backgroundColor() const { return self().backgroundColor(); }
|
|
|
|
auto cell(unsigned position) const { return self().cell(position); }
|
Update to v094r40 release.
byuu says:
Changelog:
- updated to newest hiro API
- SFC performance profile builds once again
- hiro: Qt port completed
Errata 1: the hiro/Qt target won't run tomoko just yet. Starts by
crashing inside InputSettings because hiro/Qt isn't forcefully selecting
the first item added to a ComboButton just yet. Even with a monkey patch
to get around that, the UI is incredibly unstable. Lots of geometry
calculation bugs, and a crash when you try and access certain folders in
the browser dialog. Lots of work left to be done there, sadly.
Errata 2: the hiro/Windows port has black backgrounds on all ListView
items. It's because I need to test for unassigned colors and grab the
default Windows brush colors in those cases.
Note: alternating row colors on multi-column ListView widgets is gone
now. Not a bug. May add it back later, but I'm not sure. It doesn't
interact nicely with per-cell background colors.
Things left to do:
First, I have to fix the Windows and Qt target bugs.
Next, I need to go through and revise the hiro API even more (nothing
too major.)
Next, I need to update icarus to use the new hiro API, and add support
for the SFC games database.
Next, I have to rewrite my TSV->BML cheat code tool.
Next, I need to post a final WIP of higan+icarus publicly and wait a few
days.
Next, I need to fix any bugs reported from the final WIP that I can.
Finally, I should be able to release v095.
2015-08-18 10:18:00 +00:00
|
|
|
auto cellCount() const { return self().cellCount(); }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto cells() const { return self().cells(); }
|
|
|
|
auto foregroundColor() const { return self().foregroundColor(); }
|
|
|
|
auto remove(sListViewCell cell) { return self().remove(cell), *this; }
|
|
|
|
auto selected() const { return self().selected(); }
|
Update to v094r40 release.
byuu says:
Changelog:
- updated to newest hiro API
- SFC performance profile builds once again
- hiro: Qt port completed
Errata 1: the hiro/Qt target won't run tomoko just yet. Starts by
crashing inside InputSettings because hiro/Qt isn't forcefully selecting
the first item added to a ComboButton just yet. Even with a monkey patch
to get around that, the UI is incredibly unstable. Lots of geometry
calculation bugs, and a crash when you try and access certain folders in
the browser dialog. Lots of work left to be done there, sadly.
Errata 2: the hiro/Windows port has black backgrounds on all ListView
items. It's because I need to test for unassigned colors and grab the
default Windows brush colors in those cases.
Note: alternating row colors on multi-column ListView widgets is gone
now. Not a bug. May add it back later, but I'm not sure. It doesn't
interact nicely with per-cell background colors.
Things left to do:
First, I have to fix the Windows and Qt target bugs.
Next, I need to go through and revise the hiro API even more (nothing
too major.)
Next, I need to update icarus to use the new hiro API, and add support
for the SFC games database.
Next, I have to rewrite my TSV->BML cheat code tool.
Next, I need to post a final WIP of higan+icarus publicly and wait a few
days.
Next, I need to fix any bugs reported from the final WIP that I can.
Finally, I should be able to release v095.
2015-08-18 10:18:00 +00:00
|
|
|
auto setAlignment(Alignment alignment = {}) { return self().setAlignment(alignment), *this; }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto setBackgroundColor(Color color = {}) { return self().setBackgroundColor(color), *this; }
|
|
|
|
auto setForegroundColor(Color color = {}) { return self().setForegroundColor(color), *this; }
|
|
|
|
auto setSelected(bool selected = true) { return self().setSelected(selected), *this; }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_ListView)
|
|
|
|
struct ListView : sListView {
|
|
|
|
DeclareSharedWidget(ListView)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mListView;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
Update to v094r40 release.
byuu says:
Changelog:
- updated to newest hiro API
- SFC performance profile builds once again
- hiro: Qt port completed
Errata 1: the hiro/Qt target won't run tomoko just yet. Starts by
crashing inside InputSettings because hiro/Qt isn't forcefully selecting
the first item added to a ComboButton just yet. Even with a monkey patch
to get around that, the UI is incredibly unstable. Lots of geometry
calculation bugs, and a crash when you try and access certain folders in
the browser dialog. Lots of work left to be done there, sadly.
Errata 2: the hiro/Windows port has black backgrounds on all ListView
items. It's because I need to test for unassigned colors and grab the
default Windows brush colors in those cases.
Note: alternating row colors on multi-column ListView widgets is gone
now. Not a bug. May add it back later, but I'm not sure. It doesn't
interact nicely with per-cell background colors.
Things left to do:
First, I have to fix the Windows and Qt target bugs.
Next, I need to go through and revise the hiro API even more (nothing
too major.)
Next, I need to update icarus to use the new hiro API, and add support
for the SFC games database.
Next, I have to rewrite my TSV->BML cheat code tool.
Next, I need to post a final WIP of higan+icarus publicly and wait a few
days.
Next, I need to fix any bugs reported from the final WIP that I can.
Finally, I should be able to release v095.
2015-08-18 10:18:00 +00:00
|
|
|
auto alignment() const { return self().alignment(); }
|
|
|
|
auto append(sListViewHeader header) { return self().append(header), *this; }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto append(sListViewItem item) { return self().append(item), *this; }
|
|
|
|
auto backgroundColor() const { return self().backgroundColor(); }
|
|
|
|
auto batchable() const { return self().batchable(); }
|
Update to v094r40 release.
byuu says:
Changelog:
- updated to newest hiro API
- SFC performance profile builds once again
- hiro: Qt port completed
Errata 1: the hiro/Qt target won't run tomoko just yet. Starts by
crashing inside InputSettings because hiro/Qt isn't forcefully selecting
the first item added to a ComboButton just yet. Even with a monkey patch
to get around that, the UI is incredibly unstable. Lots of geometry
calculation bugs, and a crash when you try and access certain folders in
the browser dialog. Lots of work left to be done there, sadly.
Errata 2: the hiro/Windows port has black backgrounds on all ListView
items. It's because I need to test for unassigned colors and grab the
default Windows brush colors in those cases.
Note: alternating row colors on multi-column ListView widgets is gone
now. Not a bug. May add it back later, but I'm not sure. It doesn't
interact nicely with per-cell background colors.
Things left to do:
First, I have to fix the Windows and Qt target bugs.
Next, I need to go through and revise the hiro API even more (nothing
too major.)
Next, I need to update icarus to use the new hiro API, and add support
for the SFC games database.
Next, I have to rewrite my TSV->BML cheat code tool.
Next, I need to post a final WIP of higan+icarus publicly and wait a few
days.
Next, I need to fix any bugs reported from the final WIP that I can.
Finally, I should be able to release v095.
2015-08-18 10:18:00 +00:00
|
|
|
auto batched() const { return self().batched(); }
|
|
|
|
auto bordered() const { return self().bordered(); }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto doActivate() const { return self().doActivate(); }
|
|
|
|
auto doChange() const { return self().doChange(); }
|
|
|
|
auto doContext() const { return self().doContext(); }
|
|
|
|
auto doEdit(sListViewCell cell) const { return self().doEdit(cell); }
|
|
|
|
auto doSort(sListViewColumn column) const { return self().doSort(column); }
|
Update to v094r40 release.
byuu says:
Changelog:
- updated to newest hiro API
- SFC performance profile builds once again
- hiro: Qt port completed
Errata 1: the hiro/Qt target won't run tomoko just yet. Starts by
crashing inside InputSettings because hiro/Qt isn't forcefully selecting
the first item added to a ComboButton just yet. Even with a monkey patch
to get around that, the UI is incredibly unstable. Lots of geometry
calculation bugs, and a crash when you try and access certain folders in
the browser dialog. Lots of work left to be done there, sadly.
Errata 2: the hiro/Windows port has black backgrounds on all ListView
items. It's because I need to test for unassigned colors and grab the
default Windows brush colors in those cases.
Note: alternating row colors on multi-column ListView widgets is gone
now. Not a bug. May add it back later, but I'm not sure. It doesn't
interact nicely with per-cell background colors.
Things left to do:
First, I have to fix the Windows and Qt target bugs.
Next, I need to go through and revise the hiro API even more (nothing
too major.)
Next, I need to update icarus to use the new hiro API, and add support
for the SFC games database.
Next, I have to rewrite my TSV->BML cheat code tool.
Next, I need to post a final WIP of higan+icarus publicly and wait a few
days.
Next, I need to fix any bugs reported from the final WIP that I can.
Finally, I should be able to release v095.
2015-08-18 10:18:00 +00:00
|
|
|
auto doToggle(sListViewCell cell) const { return self().doToggle(cell); }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto foregroundColor() const { return self().foregroundColor(); }
|
Update to v094r40 release.
byuu says:
Changelog:
- updated to newest hiro API
- SFC performance profile builds once again
- hiro: Qt port completed
Errata 1: the hiro/Qt target won't run tomoko just yet. Starts by
crashing inside InputSettings because hiro/Qt isn't forcefully selecting
the first item added to a ComboButton just yet. Even with a monkey patch
to get around that, the UI is incredibly unstable. Lots of geometry
calculation bugs, and a crash when you try and access certain folders in
the browser dialog. Lots of work left to be done there, sadly.
Errata 2: the hiro/Windows port has black backgrounds on all ListView
items. It's because I need to test for unassigned colors and grab the
default Windows brush colors in those cases.
Note: alternating row colors on multi-column ListView widgets is gone
now. Not a bug. May add it back later, but I'm not sure. It doesn't
interact nicely with per-cell background colors.
Things left to do:
First, I have to fix the Windows and Qt target bugs.
Next, I need to go through and revise the hiro API even more (nothing
too major.)
Next, I need to update icarus to use the new hiro API, and add support
for the SFC games database.
Next, I have to rewrite my TSV->BML cheat code tool.
Next, I need to post a final WIP of higan+icarus publicly and wait a few
days.
Next, I need to fix any bugs reported from the final WIP that I can.
Finally, I should be able to release v095.
2015-08-18 10:18:00 +00:00
|
|
|
auto header() const { return self().header(); }
|
|
|
|
auto item(unsigned position) const { return self().item(position); }
|
|
|
|
auto itemCount() const { return self().itemCount(); }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto items() const { return self().items(); }
|
|
|
|
auto onActivate(const function<void ()>& callback = {}) { return self().onActivate(callback), *this; }
|
|
|
|
auto onChange(const function<void ()>& callback = {}) { return self().onChange(callback), *this; }
|
|
|
|
auto onContext(const function<void ()>& callback = {}) { return self().onContext(callback), *this; }
|
|
|
|
auto onEdit(const function<void (ListViewCell)>& callback = {}) { return self().onEdit(callback), *this; }
|
|
|
|
auto onSort(const function<void (ListViewColumn)>& callback = {}) { return self().onSort(callback), *this; }
|
Update to v094r40 release.
byuu says:
Changelog:
- updated to newest hiro API
- SFC performance profile builds once again
- hiro: Qt port completed
Errata 1: the hiro/Qt target won't run tomoko just yet. Starts by
crashing inside InputSettings because hiro/Qt isn't forcefully selecting
the first item added to a ComboButton just yet. Even with a monkey patch
to get around that, the UI is incredibly unstable. Lots of geometry
calculation bugs, and a crash when you try and access certain folders in
the browser dialog. Lots of work left to be done there, sadly.
Errata 2: the hiro/Windows port has black backgrounds on all ListView
items. It's because I need to test for unassigned colors and grab the
default Windows brush colors in those cases.
Note: alternating row colors on multi-column ListView widgets is gone
now. Not a bug. May add it back later, but I'm not sure. It doesn't
interact nicely with per-cell background colors.
Things left to do:
First, I have to fix the Windows and Qt target bugs.
Next, I need to go through and revise the hiro API even more (nothing
too major.)
Next, I need to update icarus to use the new hiro API, and add support
for the SFC games database.
Next, I have to rewrite my TSV->BML cheat code tool.
Next, I need to post a final WIP of higan+icarus publicly and wait a few
days.
Next, I need to fix any bugs reported from the final WIP that I can.
Finally, I should be able to release v095.
2015-08-18 10:18:00 +00:00
|
|
|
auto onToggle(const function<void (ListViewCell)>& callback = {}) { return self().onToggle(callback), *this; }
|
|
|
|
auto remove(sListViewHeader header) { return self().remove(header), *this; }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto remove(sListViewItem item) { return self().remove(item), *this; }
|
|
|
|
auto reset() { return self().reset(), *this; }
|
|
|
|
auto resizeColumns() { return self().resizeColumns(), *this; }
|
|
|
|
auto selected() const { return self().selected(); }
|
Update to v094r40 release.
byuu says:
Changelog:
- updated to newest hiro API
- SFC performance profile builds once again
- hiro: Qt port completed
Errata 1: the hiro/Qt target won't run tomoko just yet. Starts by
crashing inside InputSettings because hiro/Qt isn't forcefully selecting
the first item added to a ComboButton just yet. Even with a monkey patch
to get around that, the UI is incredibly unstable. Lots of geometry
calculation bugs, and a crash when you try and access certain folders in
the browser dialog. Lots of work left to be done there, sadly.
Errata 2: the hiro/Windows port has black backgrounds on all ListView
items. It's because I need to test for unassigned colors and grab the
default Windows brush colors in those cases.
Note: alternating row colors on multi-column ListView widgets is gone
now. Not a bug. May add it back later, but I'm not sure. It doesn't
interact nicely with per-cell background colors.
Things left to do:
First, I have to fix the Windows and Qt target bugs.
Next, I need to go through and revise the hiro API even more (nothing
too major.)
Next, I need to update icarus to use the new hiro API, and add support
for the SFC games database.
Next, I have to rewrite my TSV->BML cheat code tool.
Next, I need to post a final WIP of higan+icarus publicly and wait a few
days.
Next, I need to fix any bugs reported from the final WIP that I can.
Finally, I should be able to release v095.
2015-08-18 10:18:00 +00:00
|
|
|
auto setAlignment(Alignment alignment = {}) { return self().setAlignment(alignment), *this; }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto setBackgroundColor(Color color = {}) { return self().setBackgroundColor(color), *this; }
|
|
|
|
auto setBatchable(bool batchable = true) { return self().setBatchable(batchable), *this; }
|
Update to v094r40 release.
byuu says:
Changelog:
- updated to newest hiro API
- SFC performance profile builds once again
- hiro: Qt port completed
Errata 1: the hiro/Qt target won't run tomoko just yet. Starts by
crashing inside InputSettings because hiro/Qt isn't forcefully selecting
the first item added to a ComboButton just yet. Even with a monkey patch
to get around that, the UI is incredibly unstable. Lots of geometry
calculation bugs, and a crash when you try and access certain folders in
the browser dialog. Lots of work left to be done there, sadly.
Errata 2: the hiro/Windows port has black backgrounds on all ListView
items. It's because I need to test for unassigned colors and grab the
default Windows brush colors in those cases.
Note: alternating row colors on multi-column ListView widgets is gone
now. Not a bug. May add it back later, but I'm not sure. It doesn't
interact nicely with per-cell background colors.
Things left to do:
First, I have to fix the Windows and Qt target bugs.
Next, I need to go through and revise the hiro API even more (nothing
too major.)
Next, I need to update icarus to use the new hiro API, and add support
for the SFC games database.
Next, I have to rewrite my TSV->BML cheat code tool.
Next, I need to post a final WIP of higan+icarus publicly and wait a few
days.
Next, I need to fix any bugs reported from the final WIP that I can.
Finally, I should be able to release v095.
2015-08-18 10:18:00 +00:00
|
|
|
auto setBordered(bool bordered = true) { return self().setBordered(bordered), *this; }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto setForegroundColor(Color color = {}) { return self().setForegroundColor(color), *this; }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_ProgressBar)
|
|
|
|
struct ProgressBar : sProgressBar {
|
|
|
|
DeclareSharedWidget(ProgressBar)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mProgressBar;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
|
|
|
auto position() const { return self().position(); }
|
|
|
|
auto setPosition(unsigned position = 0) { return self().setPosition(position), *this; }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_RadioButton)
|
|
|
|
struct RadioButton : sRadioButton {
|
|
|
|
DeclareSharedWidget(RadioButton)
|
2015-11-16 08:38:05 +00:00
|
|
|
using internalType = mRadioButton;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
|
|
|
auto bordered() const { return self().bordered(); }
|
|
|
|
auto checked() const { return self().checked(); }
|
|
|
|
auto doActivate() const { return self().doActivate(); }
|
|
|
|
auto group() const { return self().group(); }
|
2016-01-07 08:14:33 +00:00
|
|
|
auto icon() const { return self().icon(); }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto onActivate(const function<void ()>& callback = {}) { return self().onActivate(callback), *this; }
|
|
|
|
auto orientation() const { return self().orientation(); }
|
|
|
|
auto setBordered(bool bordered = true) { return self().setBordered(bordered), *this; }
|
|
|
|
auto setChecked() { return self().setChecked(), *this; }
|
2016-01-07 08:14:33 +00:00
|
|
|
auto setIcon(const image& icon = {}) { return self().setIcon(icon), *this; }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto setOrientation(Orientation orientation = Orientation::Horizontal) { return self().setOrientation(orientation), *this; }
|
|
|
|
auto setText(const string& text = "") { return self().setText(text), *this; }
|
|
|
|
auto text() const { return self().text(); }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_RadioLabel)
|
|
|
|
struct RadioLabel : sRadioLabel {
|
|
|
|
DeclareSharedWidget(RadioLabel)
|
2015-11-16 08:38:05 +00:00
|
|
|
using internalType = mRadioLabel;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
|
|
|
auto checked() const { return self().checked(); }
|
|
|
|
auto doActivate() const { return self().doActivate(); }
|
|
|
|
auto group() const { return self().group(); }
|
|
|
|
auto onActivate(const function<void ()>& callback = {}) { return self().onActivate(callback), *this; }
|
|
|
|
auto setChecked() { return self().setChecked(), *this; }
|
|
|
|
auto setText(const string& text = "") { return self().setText(text), *this; }
|
|
|
|
auto text() const { return self().text(); }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_SourceEdit)
|
|
|
|
struct SourceEdit : sSourceEdit {
|
|
|
|
DeclareSharedWidget(SourceEdit)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mSourceEdit;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
Update to v094r43 release.
byuu says:
Updated to compile with all of the new hiro changes. My next step is to
write up hiro API documentation, and move the API from alpha (constantly
changing) to beta (rarely changing), in preparation for the first stable
release (backward-compatible changes only.)
Added "--fullscreen" command-line option. I like this over
a configuration file option. Lets you use the emulator in both modes
without having to modify the config file each time.
Also enhanced the command-line game loading. You can now use any of
these methods:
higan /path/to/game-folder.sfc
higan /path/to/game-folder.sfc/
higan /path/to/game-folder.sfc/program.rom
The idea is to support launchers that insist on loading files only.
Technically, the file can be any name (manifest.bml also works); the
only criteria is that the file actually exists and is a file, and not
a directory. This is a requirement to support the first version (a
directory lacking the trailing / identifier), because I don't want my
nall::string class to query the file system to determine if the string
is an actual existing file or directory for its pathname() / dirname()
functions.
Anyway, every game folder I've made so far has program.rom, and that's
very unlikely to change, so this should be fine.
Now, of course, if you drop a regular "game.sfc" file on the emulator,
it won't even try to load it, unless it's in a folder that ends in .fc,
.sfc, etc. In which case, it'll bail out immediately by being unable to
produce a manifest for what is obviously not really a game folder.
2015-08-30 02:08:26 +00:00
|
|
|
auto cursor() const { return self().cursor(); }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto doChange() const { return self().doChange(); }
|
|
|
|
auto doMove() const { return self().doMove(); }
|
|
|
|
auto onChange(const function<void ()>& callback = {}) { return self().onChange(callback), *this; }
|
|
|
|
auto onMove(const function<void ()>& callback = {}) { return self().onMove(callback), *this; }
|
Update to v094r43 release.
byuu says:
Updated to compile with all of the new hiro changes. My next step is to
write up hiro API documentation, and move the API from alpha (constantly
changing) to beta (rarely changing), in preparation for the first stable
release (backward-compatible changes only.)
Added "--fullscreen" command-line option. I like this over
a configuration file option. Lets you use the emulator in both modes
without having to modify the config file each time.
Also enhanced the command-line game loading. You can now use any of
these methods:
higan /path/to/game-folder.sfc
higan /path/to/game-folder.sfc/
higan /path/to/game-folder.sfc/program.rom
The idea is to support launchers that insist on loading files only.
Technically, the file can be any name (manifest.bml also works); the
only criteria is that the file actually exists and is a file, and not
a directory. This is a requirement to support the first version (a
directory lacking the trailing / identifier), because I don't want my
nall::string class to query the file system to determine if the string
is an actual existing file or directory for its pathname() / dirname()
functions.
Anyway, every game folder I've made so far has program.rom, and that's
very unlikely to change, so this should be fine.
Now, of course, if you drop a regular "game.sfc" file on the emulator,
it won't even try to load it, unless it's in a folder that ends in .fc,
.sfc, etc. In which case, it'll bail out immediately by being unable to
produce a manifest for what is obviously not really a game folder.
2015-08-30 02:08:26 +00:00
|
|
|
auto setCursor(Cursor cursor = {}) { return self().setCursor(cursor), *this; }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto setText(const string& text = "") { return self().setText(text), *this; }
|
|
|
|
auto text() const { return self().text(); }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_TabFrame)
|
|
|
|
struct TabFrameItem : sTabFrameItem {
|
|
|
|
DeclareSharedObject(TabFrameItem)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mTabFrameItem;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
|
|
|
auto append(sLayout layout) { return self().append(layout), *this; }
|
|
|
|
auto closable() const { return self().closable(); }
|
2016-01-07 08:14:33 +00:00
|
|
|
auto icon() const { return self().icon(); }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto layout() const { return self().layout(); }
|
|
|
|
auto movable() const { return self().movable(); }
|
|
|
|
auto remove(sLayout layout) { return self().remove(layout), *this; }
|
|
|
|
auto reset() { return self().reset(), *this; }
|
|
|
|
auto selected() const { return self().selected(); }
|
|
|
|
auto setClosable(bool closable = true) { return self().setClosable(closable), *this; }
|
2016-01-07 08:14:33 +00:00
|
|
|
auto setIcon(const image& icon = {}) { return self().setIcon(icon), *this; }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto setMovable(bool movable = true) { return self().setMovable(movable), *this; }
|
|
|
|
auto setSelected() { return self().setSelected(), *this; }
|
|
|
|
auto setText(const string& text = "") { return self().setText(text), *this; }
|
|
|
|
auto text() const { return self().text(); }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_TabFrame)
|
|
|
|
struct TabFrame : sTabFrame {
|
|
|
|
DeclareSharedWidget(TabFrame)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mTabFrame;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
|
|
|
auto append(sTabFrameItem item) { return self().append(item), *this; }
|
|
|
|
auto doChange() const { return self().doChange(); }
|
|
|
|
auto doClose(sTabFrameItem item) const { return self().doClose(item); }
|
|
|
|
auto doMove(sTabFrameItem from, sTabFrameItem to) const { return self().doMove(from, to); }
|
|
|
|
auto item(unsigned position) const { return self().item(position); }
|
Update to v094r40 release.
byuu says:
Changelog:
- updated to newest hiro API
- SFC performance profile builds once again
- hiro: Qt port completed
Errata 1: the hiro/Qt target won't run tomoko just yet. Starts by
crashing inside InputSettings because hiro/Qt isn't forcefully selecting
the first item added to a ComboButton just yet. Even with a monkey patch
to get around that, the UI is incredibly unstable. Lots of geometry
calculation bugs, and a crash when you try and access certain folders in
the browser dialog. Lots of work left to be done there, sadly.
Errata 2: the hiro/Windows port has black backgrounds on all ListView
items. It's because I need to test for unassigned colors and grab the
default Windows brush colors in those cases.
Note: alternating row colors on multi-column ListView widgets is gone
now. Not a bug. May add it back later, but I'm not sure. It doesn't
interact nicely with per-cell background colors.
Things left to do:
First, I have to fix the Windows and Qt target bugs.
Next, I need to go through and revise the hiro API even more (nothing
too major.)
Next, I need to update icarus to use the new hiro API, and add support
for the SFC games database.
Next, I have to rewrite my TSV->BML cheat code tool.
Next, I need to post a final WIP of higan+icarus publicly and wait a few
days.
Next, I need to fix any bugs reported from the final WIP that I can.
Finally, I should be able to release v095.
2015-08-18 10:18:00 +00:00
|
|
|
auto itemCount() const { return self().itemCount(); }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto items() const { return self().items(); }
|
Update to v094r43 release.
byuu says:
Updated to compile with all of the new hiro changes. My next step is to
write up hiro API documentation, and move the API from alpha (constantly
changing) to beta (rarely changing), in preparation for the first stable
release (backward-compatible changes only.)
Added "--fullscreen" command-line option. I like this over
a configuration file option. Lets you use the emulator in both modes
without having to modify the config file each time.
Also enhanced the command-line game loading. You can now use any of
these methods:
higan /path/to/game-folder.sfc
higan /path/to/game-folder.sfc/
higan /path/to/game-folder.sfc/program.rom
The idea is to support launchers that insist on loading files only.
Technically, the file can be any name (manifest.bml also works); the
only criteria is that the file actually exists and is a file, and not
a directory. This is a requirement to support the first version (a
directory lacking the trailing / identifier), because I don't want my
nall::string class to query the file system to determine if the string
is an actual existing file or directory for its pathname() / dirname()
functions.
Anyway, every game folder I've made so far has program.rom, and that's
very unlikely to change, so this should be fine.
Now, of course, if you drop a regular "game.sfc" file on the emulator,
it won't even try to load it, unless it's in a folder that ends in .fc,
.sfc, etc. In which case, it'll bail out immediately by being unable to
produce a manifest for what is obviously not really a game folder.
2015-08-30 02:08:26 +00:00
|
|
|
auto navigation() const { return self().navigation(); }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto onChange(const function<void ()>& callback = {}) { return self().onChange(callback), *this; }
|
|
|
|
auto onClose(const function<void (sTabFrameItem)>& callback = {}) { return self().onClose(callback), *this; }
|
|
|
|
auto onMove(const function<void (sTabFrameItem, sTabFrameItem)>& callback = {}) { return self().onMove(callback), *this; }
|
|
|
|
auto remove(sTabFrameItem item) { return self().remove(item), *this; }
|
|
|
|
auto reset() { return self().reset(), *this; }
|
|
|
|
auto selected() const { return self().selected(); }
|
Update to v094r43 release.
byuu says:
Updated to compile with all of the new hiro changes. My next step is to
write up hiro API documentation, and move the API from alpha (constantly
changing) to beta (rarely changing), in preparation for the first stable
release (backward-compatible changes only.)
Added "--fullscreen" command-line option. I like this over
a configuration file option. Lets you use the emulator in both modes
without having to modify the config file each time.
Also enhanced the command-line game loading. You can now use any of
these methods:
higan /path/to/game-folder.sfc
higan /path/to/game-folder.sfc/
higan /path/to/game-folder.sfc/program.rom
The idea is to support launchers that insist on loading files only.
Technically, the file can be any name (manifest.bml also works); the
only criteria is that the file actually exists and is a file, and not
a directory. This is a requirement to support the first version (a
directory lacking the trailing / identifier), because I don't want my
nall::string class to query the file system to determine if the string
is an actual existing file or directory for its pathname() / dirname()
functions.
Anyway, every game folder I've made so far has program.rom, and that's
very unlikely to change, so this should be fine.
Now, of course, if you drop a regular "game.sfc" file on the emulator,
it won't even try to load it, unless it's in a folder that ends in .fc,
.sfc, etc. In which case, it'll bail out immediately by being unable to
produce a manifest for what is obviously not really a game folder.
2015-08-30 02:08:26 +00:00
|
|
|
auto setNavigation(Navigation navigation = Navigation::Top) { return self().setNavigation(navigation), *this; }
|
2015-06-18 10:48:53 +00:00
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_TextEdit)
|
|
|
|
struct TextEdit : sTextEdit {
|
|
|
|
DeclareSharedWidget(TextEdit)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mTextEdit;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
|
|
|
auto backgroundColor() const { return self().backgroundColor(); }
|
Update to v094r43 release.
byuu says:
Updated to compile with all of the new hiro changes. My next step is to
write up hiro API documentation, and move the API from alpha (constantly
changing) to beta (rarely changing), in preparation for the first stable
release (backward-compatible changes only.)
Added "--fullscreen" command-line option. I like this over
a configuration file option. Lets you use the emulator in both modes
without having to modify the config file each time.
Also enhanced the command-line game loading. You can now use any of
these methods:
higan /path/to/game-folder.sfc
higan /path/to/game-folder.sfc/
higan /path/to/game-folder.sfc/program.rom
The idea is to support launchers that insist on loading files only.
Technically, the file can be any name (manifest.bml also works); the
only criteria is that the file actually exists and is a file, and not
a directory. This is a requirement to support the first version (a
directory lacking the trailing / identifier), because I don't want my
nall::string class to query the file system to determine if the string
is an actual existing file or directory for its pathname() / dirname()
functions.
Anyway, every game folder I've made so far has program.rom, and that's
very unlikely to change, so this should be fine.
Now, of course, if you drop a regular "game.sfc" file on the emulator,
it won't even try to load it, unless it's in a folder that ends in .fc,
.sfc, etc. In which case, it'll bail out immediately by being unable to
produce a manifest for what is obviously not really a game folder.
2015-08-30 02:08:26 +00:00
|
|
|
auto cursor() const { return self().cursor(); }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto doChange() const { return self().doChange(); }
|
|
|
|
auto doMove() const { return self().doMove(); }
|
|
|
|
auto editable() const { return self().editable(); }
|
|
|
|
auto foregroundColor() const { return self().foregroundColor(); }
|
|
|
|
auto onChange(const function<void ()>& callback = {}) { return self().onChange(callback), *this; }
|
|
|
|
auto onMove(const function<void ()>& callback = {}) { return self().onMove(callback), *this; }
|
|
|
|
auto setBackgroundColor(Color color = {}) { return self().setBackgroundColor(color), *this; }
|
Update to v094r43 release.
byuu says:
Updated to compile with all of the new hiro changes. My next step is to
write up hiro API documentation, and move the API from alpha (constantly
changing) to beta (rarely changing), in preparation for the first stable
release (backward-compatible changes only.)
Added "--fullscreen" command-line option. I like this over
a configuration file option. Lets you use the emulator in both modes
without having to modify the config file each time.
Also enhanced the command-line game loading. You can now use any of
these methods:
higan /path/to/game-folder.sfc
higan /path/to/game-folder.sfc/
higan /path/to/game-folder.sfc/program.rom
The idea is to support launchers that insist on loading files only.
Technically, the file can be any name (manifest.bml also works); the
only criteria is that the file actually exists and is a file, and not
a directory. This is a requirement to support the first version (a
directory lacking the trailing / identifier), because I don't want my
nall::string class to query the file system to determine if the string
is an actual existing file or directory for its pathname() / dirname()
functions.
Anyway, every game folder I've made so far has program.rom, and that's
very unlikely to change, so this should be fine.
Now, of course, if you drop a regular "game.sfc" file on the emulator,
it won't even try to load it, unless it's in a folder that ends in .fc,
.sfc, etc. In which case, it'll bail out immediately by being unable to
produce a manifest for what is obviously not really a game folder.
2015-08-30 02:08:26 +00:00
|
|
|
auto setCursor(Cursor cursor = {}) { return self().setCursor(cursor), *this; }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto setEditable(bool editable = true) { return self().setEditable(editable), *this; }
|
|
|
|
auto setForegroundColor(Color color = {}) { return self().setForegroundColor(color), *this; }
|
|
|
|
auto setText(const string& text = "") { return self().setText(text), *this; }
|
|
|
|
auto setWordWrap(bool wordWrap = true) { return self().setWordWrap(wordWrap), *this; }
|
|
|
|
auto text() const { return self().text(); }
|
|
|
|
auto wordWrap() const { return self().wordWrap(); }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_TreeView)
|
|
|
|
struct TreeViewItem : sTreeViewItem {
|
|
|
|
DeclareSharedObject(TreeViewItem)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mTreeViewItem;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
|
|
|
auto append(sTreeViewItem item) { return self().append(item), *this; }
|
Update to v094r43 release.
byuu says:
Updated to compile with all of the new hiro changes. My next step is to
write up hiro API documentation, and move the API from alpha (constantly
changing) to beta (rarely changing), in preparation for the first stable
release (backward-compatible changes only.)
Added "--fullscreen" command-line option. I like this over
a configuration file option. Lets you use the emulator in both modes
without having to modify the config file each time.
Also enhanced the command-line game loading. You can now use any of
these methods:
higan /path/to/game-folder.sfc
higan /path/to/game-folder.sfc/
higan /path/to/game-folder.sfc/program.rom
The idea is to support launchers that insist on loading files only.
Technically, the file can be any name (manifest.bml also works); the
only criteria is that the file actually exists and is a file, and not
a directory. This is a requirement to support the first version (a
directory lacking the trailing / identifier), because I don't want my
nall::string class to query the file system to determine if the string
is an actual existing file or directory for its pathname() / dirname()
functions.
Anyway, every game folder I've made so far has program.rom, and that's
very unlikely to change, so this should be fine.
Now, of course, if you drop a regular "game.sfc" file on the emulator,
it won't even try to load it, unless it's in a folder that ends in .fc,
.sfc, etc. In which case, it'll bail out immediately by being unable to
produce a manifest for what is obviously not really a game folder.
2015-08-30 02:08:26 +00:00
|
|
|
auto backgroundColor() const { return self().backgroundColor(); }
|
|
|
|
auto checkable() const { return self().checkable(); }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto checked() const { return self().checked(); }
|
Update to v094r43 release.
byuu says:
Updated to compile with all of the new hiro changes. My next step is to
write up hiro API documentation, and move the API from alpha (constantly
changing) to beta (rarely changing), in preparation for the first stable
release (backward-compatible changes only.)
Added "--fullscreen" command-line option. I like this over
a configuration file option. Lets you use the emulator in both modes
without having to modify the config file each time.
Also enhanced the command-line game loading. You can now use any of
these methods:
higan /path/to/game-folder.sfc
higan /path/to/game-folder.sfc/
higan /path/to/game-folder.sfc/program.rom
The idea is to support launchers that insist on loading files only.
Technically, the file can be any name (manifest.bml also works); the
only criteria is that the file actually exists and is a file, and not
a directory. This is a requirement to support the first version (a
directory lacking the trailing / identifier), because I don't want my
nall::string class to query the file system to determine if the string
is an actual existing file or directory for its pathname() / dirname()
functions.
Anyway, every game folder I've made so far has program.rom, and that's
very unlikely to change, so this should be fine.
Now, of course, if you drop a regular "game.sfc" file on the emulator,
it won't even try to load it, unless it's in a folder that ends in .fc,
.sfc, etc. In which case, it'll bail out immediately by being unable to
produce a manifest for what is obviously not really a game folder.
2015-08-30 02:08:26 +00:00
|
|
|
auto foregroundColor() const { return self().foregroundColor(); }
|
2016-01-07 08:14:33 +00:00
|
|
|
auto icon() const { return self().icon(); }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto item(const string& path) const { return self().item(path); }
|
Update to v094r40 release.
byuu says:
Changelog:
- updated to newest hiro API
- SFC performance profile builds once again
- hiro: Qt port completed
Errata 1: the hiro/Qt target won't run tomoko just yet. Starts by
crashing inside InputSettings because hiro/Qt isn't forcefully selecting
the first item added to a ComboButton just yet. Even with a monkey patch
to get around that, the UI is incredibly unstable. Lots of geometry
calculation bugs, and a crash when you try and access certain folders in
the browser dialog. Lots of work left to be done there, sadly.
Errata 2: the hiro/Windows port has black backgrounds on all ListView
items. It's because I need to test for unassigned colors and grab the
default Windows brush colors in those cases.
Note: alternating row colors on multi-column ListView widgets is gone
now. Not a bug. May add it back later, but I'm not sure. It doesn't
interact nicely with per-cell background colors.
Things left to do:
First, I have to fix the Windows and Qt target bugs.
Next, I need to go through and revise the hiro API even more (nothing
too major.)
Next, I need to update icarus to use the new hiro API, and add support
for the SFC games database.
Next, I have to rewrite my TSV->BML cheat code tool.
Next, I need to post a final WIP of higan+icarus publicly and wait a few
days.
Next, I need to fix any bugs reported from the final WIP that I can.
Finally, I should be able to release v095.
2015-08-18 10:18:00 +00:00
|
|
|
auto itemCount() const { return self().itemCount(); }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto items() const { return self().items(); }
|
|
|
|
auto path() const { return self().path(); }
|
|
|
|
auto remove(sTreeViewItem item) { return self().remove(item), *this; }
|
|
|
|
auto selected() const { return self().selected(); }
|
Update to v094r43 release.
byuu says:
Updated to compile with all of the new hiro changes. My next step is to
write up hiro API documentation, and move the API from alpha (constantly
changing) to beta (rarely changing), in preparation for the first stable
release (backward-compatible changes only.)
Added "--fullscreen" command-line option. I like this over
a configuration file option. Lets you use the emulator in both modes
without having to modify the config file each time.
Also enhanced the command-line game loading. You can now use any of
these methods:
higan /path/to/game-folder.sfc
higan /path/to/game-folder.sfc/
higan /path/to/game-folder.sfc/program.rom
The idea is to support launchers that insist on loading files only.
Technically, the file can be any name (manifest.bml also works); the
only criteria is that the file actually exists and is a file, and not
a directory. This is a requirement to support the first version (a
directory lacking the trailing / identifier), because I don't want my
nall::string class to query the file system to determine if the string
is an actual existing file or directory for its pathname() / dirname()
functions.
Anyway, every game folder I've made so far has program.rom, and that's
very unlikely to change, so this should be fine.
Now, of course, if you drop a regular "game.sfc" file on the emulator,
it won't even try to load it, unless it's in a folder that ends in .fc,
.sfc, etc. In which case, it'll bail out immediately by being unable to
produce a manifest for what is obviously not really a game folder.
2015-08-30 02:08:26 +00:00
|
|
|
auto setBackgroundColor(Color color = {}) { return self().setBackgroundColor(color), *this; }
|
|
|
|
auto setCheckable(bool checkable = true) { return self().setCheckable(checkable), *this; }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto setChecked(bool checked = true) { return self().setChecked(checked), *this; }
|
Update to v094r43 release.
byuu says:
Updated to compile with all of the new hiro changes. My next step is to
write up hiro API documentation, and move the API from alpha (constantly
changing) to beta (rarely changing), in preparation for the first stable
release (backward-compatible changes only.)
Added "--fullscreen" command-line option. I like this over
a configuration file option. Lets you use the emulator in both modes
without having to modify the config file each time.
Also enhanced the command-line game loading. You can now use any of
these methods:
higan /path/to/game-folder.sfc
higan /path/to/game-folder.sfc/
higan /path/to/game-folder.sfc/program.rom
The idea is to support launchers that insist on loading files only.
Technically, the file can be any name (manifest.bml also works); the
only criteria is that the file actually exists and is a file, and not
a directory. This is a requirement to support the first version (a
directory lacking the trailing / identifier), because I don't want my
nall::string class to query the file system to determine if the string
is an actual existing file or directory for its pathname() / dirname()
functions.
Anyway, every game folder I've made so far has program.rom, and that's
very unlikely to change, so this should be fine.
Now, of course, if you drop a regular "game.sfc" file on the emulator,
it won't even try to load it, unless it's in a folder that ends in .fc,
.sfc, etc. In which case, it'll bail out immediately by being unable to
produce a manifest for what is obviously not really a game folder.
2015-08-30 02:08:26 +00:00
|
|
|
auto setExpanded(bool expanded = true) { return self().setExpanded(expanded), *this; }
|
|
|
|
auto setForegroundColor(Color color = {}) { return self().setForegroundColor(color), *this; }
|
2016-01-07 08:14:33 +00:00
|
|
|
auto setIcon(const image& icon = {}) { return self().setIcon(icon), *this; }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto setSelected() { return self().setSelected(), *this; }
|
|
|
|
auto setText(const string& text = "") { return self().setText(text), *this; }
|
|
|
|
auto text() const { return self().text(); }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_TreeView)
|
|
|
|
struct TreeView : sTreeView {
|
|
|
|
DeclareSharedWidget(TreeView)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mTreeView;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
|
|
|
auto append(sTreeViewItem item) { return self().append(item), *this; }
|
|
|
|
auto backgroundColor() const { return self().backgroundColor(); }
|
|
|
|
auto doActivate() const { return self().doActivate(); }
|
|
|
|
auto doChange() const { return self().doChange(); }
|
|
|
|
auto doContext() const { return self().doContext(); }
|
|
|
|
auto doToggle(sTreeViewItem item) const { return self().doToggle(item); }
|
|
|
|
auto foregroundColor() const { return self().foregroundColor(); }
|
|
|
|
auto item(const string& path) const { return self().item(path); }
|
Update to v094r40 release.
byuu says:
Changelog:
- updated to newest hiro API
- SFC performance profile builds once again
- hiro: Qt port completed
Errata 1: the hiro/Qt target won't run tomoko just yet. Starts by
crashing inside InputSettings because hiro/Qt isn't forcefully selecting
the first item added to a ComboButton just yet. Even with a monkey patch
to get around that, the UI is incredibly unstable. Lots of geometry
calculation bugs, and a crash when you try and access certain folders in
the browser dialog. Lots of work left to be done there, sadly.
Errata 2: the hiro/Windows port has black backgrounds on all ListView
items. It's because I need to test for unassigned colors and grab the
default Windows brush colors in those cases.
Note: alternating row colors on multi-column ListView widgets is gone
now. Not a bug. May add it back later, but I'm not sure. It doesn't
interact nicely with per-cell background colors.
Things left to do:
First, I have to fix the Windows and Qt target bugs.
Next, I need to go through and revise the hiro API even more (nothing
too major.)
Next, I need to update icarus to use the new hiro API, and add support
for the SFC games database.
Next, I have to rewrite my TSV->BML cheat code tool.
Next, I need to post a final WIP of higan+icarus publicly and wait a few
days.
Next, I need to fix any bugs reported from the final WIP that I can.
Finally, I should be able to release v095.
2015-08-18 10:18:00 +00:00
|
|
|
auto itemCount() const { return self().itemCount(); }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto items() const { return self().items(); }
|
|
|
|
auto onActivate(const function<void ()>& callback = {}) { return self().onActivate(callback), *this; }
|
|
|
|
auto onChange(const function<void ()>& callback = {}) { return self().onChange(callback), *this; }
|
|
|
|
auto onContext(const function<void ()>& callback = {}) { return self().onContext(callback), *this; }
|
|
|
|
auto onToggle(const function<void (sTreeViewItem)>& callback = {}) { return self().onToggle(callback), *this; }
|
|
|
|
auto remove(sTreeViewItem item) { return self().remove(item), *this; }
|
|
|
|
auto reset() { return self().reset(), *this; }
|
|
|
|
auto selected() const { return self().selected(); }
|
|
|
|
auto setBackgroundColor(Color color = {}) { return self().setBackgroundColor(color), *this; }
|
|
|
|
auto setForegroundColor(Color color = {}) { return self().setForegroundColor(color), *this; }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
2015-08-21 10:56:39 +00:00
|
|
|
#if defined(Hiro_VerticalScrollBar)
|
|
|
|
struct VerticalScrollBar : sVerticalScrollBar {
|
|
|
|
DeclareSharedWidget(VerticalScrollBar)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mVerticalScrollBar;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
|
|
|
auto doChange() const { return self().doChange(); }
|
|
|
|
auto length() const { return self().length(); }
|
|
|
|
auto onChange(const function<void ()>& callback = {}) { return self().onChange(callback), *this; }
|
|
|
|
auto position() const { return self().position(); }
|
|
|
|
auto setLength(unsigned length = 101) { return self().setLength(length), *this; }
|
|
|
|
auto setPosition(unsigned position = 0) { return self().setPosition(position), *this; }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_VerticalSlider)
|
|
|
|
struct VerticalSlider : sVerticalSlider {
|
|
|
|
DeclareSharedWidget(VerticalSlider)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mVerticalSlider;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
|
|
|
auto doChange() const { return self().doChange(); }
|
|
|
|
auto length() const { return self().length(); }
|
|
|
|
auto onChange(const function<void ()>& callback = {}) { return self().onChange(callback), *this; }
|
|
|
|
auto position() const { return self().position(); }
|
|
|
|
auto setLength(unsigned length = 101) { return self().setLength(length), *this; }
|
|
|
|
auto setPosition(unsigned position = 0) { return self().setPosition(position), *this; }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_Viewport)
|
|
|
|
struct Viewport : sViewport {
|
|
|
|
DeclareSharedWidget(Viewport)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mViewport;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
|
|
|
auto doDrop(lstring names) const { return self().doDrop(names); }
|
|
|
|
auto doMouseLeave() const { return self().doMouseLeave(); }
|
|
|
|
auto doMouseMove(Position position) const { return self().doMouseMove(position); }
|
|
|
|
auto doMousePress(Mouse::Button button) const { return self().doMousePress(button); }
|
|
|
|
auto doMouseRelease(Mouse::Button button) const { return self().doMouseRelease(button); }
|
|
|
|
auto droppable() const { return self().droppable(); }
|
|
|
|
auto handle() const { return self().handle(); }
|
|
|
|
auto onDrop(const function<void (lstring)>& callback = {}) { return self().onDrop(callback), *this; }
|
|
|
|
auto onMouseLeave(const function<void ()>& callback = {}) { return self().onMouseLeave(callback), *this; }
|
|
|
|
auto onMouseMove(const function<void (Position)>& callback = {}) { return self().onMouseMove(callback), *this; }
|
|
|
|
auto onMousePress(const function<void (Mouse::Button)>& callback = {}) { return self().onMousePress(callback), *this; }
|
|
|
|
auto onMouseRelease(const function<void (Mouse::Button)>& callback = {}) { return self().onMouseRelease(callback), *this; }
|
|
|
|
auto setDroppable(bool droppable = true) { return self().setDroppable(droppable), *this; }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_StatusBar)
|
|
|
|
struct StatusBar : sStatusBar {
|
|
|
|
DeclareSharedObject(StatusBar)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mStatusBar;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
|
|
|
auto setText(const string& text = "") { return self().setText(text), *this; }
|
|
|
|
auto text() const { return self().text(); }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_PopupMenu)
|
|
|
|
struct PopupMenu : sPopupMenu {
|
|
|
|
DeclareSharedObject(PopupMenu)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mPopupMenu;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
|
|
|
auto action(unsigned position) const { return self().action(position); }
|
Update to v094r40 release.
byuu says:
Changelog:
- updated to newest hiro API
- SFC performance profile builds once again
- hiro: Qt port completed
Errata 1: the hiro/Qt target won't run tomoko just yet. Starts by
crashing inside InputSettings because hiro/Qt isn't forcefully selecting
the first item added to a ComboButton just yet. Even with a monkey patch
to get around that, the UI is incredibly unstable. Lots of geometry
calculation bugs, and a crash when you try and access certain folders in
the browser dialog. Lots of work left to be done there, sadly.
Errata 2: the hiro/Windows port has black backgrounds on all ListView
items. It's because I need to test for unassigned colors and grab the
default Windows brush colors in those cases.
Note: alternating row colors on multi-column ListView widgets is gone
now. Not a bug. May add it back later, but I'm not sure. It doesn't
interact nicely with per-cell background colors.
Things left to do:
First, I have to fix the Windows and Qt target bugs.
Next, I need to go through and revise the hiro API even more (nothing
too major.)
Next, I need to update icarus to use the new hiro API, and add support
for the SFC games database.
Next, I have to rewrite my TSV->BML cheat code tool.
Next, I need to post a final WIP of higan+icarus publicly and wait a few
days.
Next, I need to fix any bugs reported from the final WIP that I can.
Finally, I should be able to release v095.
2015-08-18 10:18:00 +00:00
|
|
|
auto actionCount() const { return self().actionCount(); }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto actions() const { return self().actions(); }
|
|
|
|
auto append(sAction action) { return self().append(action), *this; }
|
|
|
|
auto remove(sAction action) { return self().remove(action), *this; }
|
|
|
|
auto reset() { return self().reset(), *this; }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_MenuBar)
|
|
|
|
struct MenuBar : sMenuBar {
|
|
|
|
DeclareSharedObject(MenuBar)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mMenuBar;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
|
|
|
auto append(sMenu menu) { return self().append(menu), *this; }
|
|
|
|
auto menu(unsigned position) const { return self().menu(position); }
|
Update to v094r40 release.
byuu says:
Changelog:
- updated to newest hiro API
- SFC performance profile builds once again
- hiro: Qt port completed
Errata 1: the hiro/Qt target won't run tomoko just yet. Starts by
crashing inside InputSettings because hiro/Qt isn't forcefully selecting
the first item added to a ComboButton just yet. Even with a monkey patch
to get around that, the UI is incredibly unstable. Lots of geometry
calculation bugs, and a crash when you try and access certain folders in
the browser dialog. Lots of work left to be done there, sadly.
Errata 2: the hiro/Windows port has black backgrounds on all ListView
items. It's because I need to test for unassigned colors and grab the
default Windows brush colors in those cases.
Note: alternating row colors on multi-column ListView widgets is gone
now. Not a bug. May add it back later, but I'm not sure. It doesn't
interact nicely with per-cell background colors.
Things left to do:
First, I have to fix the Windows and Qt target bugs.
Next, I need to go through and revise the hiro API even more (nothing
too major.)
Next, I need to update icarus to use the new hiro API, and add support
for the SFC games database.
Next, I have to rewrite my TSV->BML cheat code tool.
Next, I need to post a final WIP of higan+icarus publicly and wait a few
days.
Next, I need to fix any bugs reported from the final WIP that I can.
Finally, I should be able to release v095.
2015-08-18 10:18:00 +00:00
|
|
|
auto menuCount() const { return self().menuCount(); }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto menus() const { return self().menus(); }
|
|
|
|
auto remove(sMenu menu) { return self().remove(menu), *this; }
|
|
|
|
auto reset() { return self().reset(), *this; }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(Hiro_Window)
|
|
|
|
struct Window : sWindow {
|
|
|
|
DeclareSharedObject(Window)
|
2015-12-14 09:41:06 +00:00
|
|
|
using internalType = mWindow;
|
2015-06-18 10:48:53 +00:00
|
|
|
|
|
|
|
auto append(sLayout layout) { return self().append(layout), *this; }
|
|
|
|
auto append(sMenuBar menuBar) { return self().append(menuBar), *this; }
|
|
|
|
auto append(sStatusBar statusBar) { return self().append(statusBar), *this; }
|
|
|
|
auto backgroundColor() const { return self().backgroundColor(); }
|
|
|
|
auto doClose() const { return self().doClose(); }
|
|
|
|
auto doDrop(lstring names) const { return self().doDrop(names); }
|
|
|
|
auto doKeyPress(signed key) const { return self().doKeyPress(key); }
|
|
|
|
auto doKeyRelease(signed key) const { return self().doKeyRelease(key); }
|
|
|
|
auto doMove() const { return self().doMove(); }
|
|
|
|
auto doSize() const { return self().doSize(); }
|
|
|
|
auto droppable() const { return self().droppable(); }
|
|
|
|
auto frameGeometry() const { return self().frameGeometry(); }
|
|
|
|
auto fullScreen() const { return self().fullScreen(); }
|
|
|
|
auto geometry() const { return self().geometry(); }
|
|
|
|
auto layout() const { return self().layout(); }
|
|
|
|
auto menuBar() const { return self().menuBar(); }
|
|
|
|
auto modal() const { return self().modal(); }
|
|
|
|
auto onClose(const function<void ()>& callback = {}) { return self().onClose(callback), *this; }
|
|
|
|
auto onDrop(const function<void (lstring)>& callback = {}) { return self().onDrop(callback), *this; }
|
|
|
|
auto onKeyPress(const function<void (signed)>& callback = {}) { return self().onKeyPress(callback), *this; }
|
|
|
|
auto onKeyRelease(const function<void (signed)>& callback = {}) { return self().onKeyRelease(callback), *this; }
|
|
|
|
auto onMove(const function<void ()>& callback = {}) { return self().onMove(callback), *this; }
|
|
|
|
auto onSize(const function<void ()>& callback = {}) { return self().onSize(callback), *this; }
|
|
|
|
auto remove(sLayout layout) { return self().remove(layout), *this; }
|
|
|
|
auto remove(sMenuBar menuBar) { return self().remove(menuBar), *this; }
|
|
|
|
auto remove(sStatusBar statusBar) { return self().remove(statusBar), *this; }
|
|
|
|
auto reset() { return self().reset(), *this; }
|
|
|
|
auto resizable() const { return self().resizable(); }
|
Update to v094r40 release.
byuu says:
Changelog:
- updated to newest hiro API
- SFC performance profile builds once again
- hiro: Qt port completed
Errata 1: the hiro/Qt target won't run tomoko just yet. Starts by
crashing inside InputSettings because hiro/Qt isn't forcefully selecting
the first item added to a ComboButton just yet. Even with a monkey patch
to get around that, the UI is incredibly unstable. Lots of geometry
calculation bugs, and a crash when you try and access certain folders in
the browser dialog. Lots of work left to be done there, sadly.
Errata 2: the hiro/Windows port has black backgrounds on all ListView
items. It's because I need to test for unassigned colors and grab the
default Windows brush colors in those cases.
Note: alternating row colors on multi-column ListView widgets is gone
now. Not a bug. May add it back later, but I'm not sure. It doesn't
interact nicely with per-cell background colors.
Things left to do:
First, I have to fix the Windows and Qt target bugs.
Next, I need to go through and revise the hiro API even more (nothing
too major.)
Next, I need to update icarus to use the new hiro API, and add support
for the SFC games database.
Next, I have to rewrite my TSV->BML cheat code tool.
Next, I need to post a final WIP of higan+icarus publicly and wait a few
days.
Next, I need to fix any bugs reported from the final WIP that I can.
Finally, I should be able to release v095.
2015-08-18 10:18:00 +00:00
|
|
|
auto setAlignment(Alignment alignment) { return self().setAlignment(alignment), *this; }
|
2015-06-18 10:48:53 +00:00
|
|
|
auto setBackgroundColor(Color color = {}) { return self().setBackgroundColor(color), *this; }
|
|
|
|
auto setCentered(sWindow parent = {}) { return self().setCentered(parent), *this; }
|
|
|
|
auto setDroppable(bool droppable = true) { return self().setDroppable(droppable), *this; }
|
|
|
|
auto setFrameGeometry(Geometry geometry) { return self().setFrameGeometry(geometry), *this; }
|
|
|
|
auto setFramePosition(Position position) { return self().setFramePosition(position), *this; }
|
|
|
|
auto setFrameSize(Size size) { return self().setFrameSize(size), *this; }
|
|
|
|
auto setFullScreen(bool fullScreen = true) { return self().setFullScreen(fullScreen), *this; }
|
|
|
|
auto setGeometry(Geometry geometry) { return self().setGeometry(geometry), *this; }
|
|
|
|
auto setModal(bool modal = true) { return self().setModal(modal), *this; }
|
|
|
|
auto setPosition(Position position) { return self().setPosition(position), *this; }
|
|
|
|
auto setResizable(bool resizable = true) { return self().setResizable(resizable), *this; }
|
|
|
|
auto setSize(Size size) { return self().setSize(size), *this; }
|
|
|
|
auto setTitle(const string& title = "") { return self().setTitle(title), *this; }
|
|
|
|
auto statusBar() const { return self().statusBar(); }
|
|
|
|
auto title() const { return self().title(); }
|
|
|
|
};
|
|
|
|
#endif
|