Mr Flibble
unread,Nov 19, 2019, 6:03:39 PM11/19/19You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to
Hi!
Here is a taste (actual output which compiles) of what neoGFX auto code
gen looks like (the UI is described using a variant of "Relaxed JSON"):-
// This is an automatically generated file, do not edit!
#include <neogfx/neogfx.hpp>
#include <neogfx/app/action.hpp>
#include <neogfx/app/app.hpp>
#include <neogfx/gui/widget/menu.hpp>
#include <neogfx/gui/widget/menu_bar.hpp>
#include <neogfx/gui/widget/status_bar.hpp>
#include <neogfx/gui/widget/tab_page.hpp>
#include <neogfx/gui/widget/tab_page_container.hpp>
#include <neogfx/gui/widget/toolbar.hpp>
#include <neogfx/gui/window/window.hpp>
namespace test
{
using namespace neogfx;
using namespace neogfx::unit_literals;
struct ui
{
app appTest;
action actionGoldenrodStyle;
action actionContacts;
action actionAddFavourite;
action actionOrganizeFavourites;
action actionMute;
action actionPasteAndGo;
window mainWindow;
status_bar statusBar;
menu_bar menuBar;
menu menuBar_1;
nrc::action_ref menuBar_1_1;
nrc::action_ref menuBar_1_2;
nrc::action_ref menuBar_1_3;
nrc::action_ref menuBar_1_4;
nrc::action_ref menuBar_1_5;
nrc::action_ref menuBar_1_6;
nrc::action_ref menuBar_1_7;
nrc::action_ref menuBar_1_8;
menu menuBar_2;
nrc::action_ref menuBar_2_1;
nrc::action_ref menuBar_2_2;
nrc::action_ref menuBar_2_3;
nrc::action_ref menuBar_2_4;
nrc::action_ref menuBar_2_5;
nrc::action_ref menuBar_2_6;
nrc::action_ref menuBar_2_7;
nrc::action_ref menuBar_2_8;
nrc::action_ref menuBar_2_9;
nrc::action_ref menuBar_2_10;
menu menuBar_3;
menu menuFavourites;
nrc::action_ref menuFavourites_1;
nrc::action_ref menuFavourites_2;
nrc::action_ref menuFavourites_3;
action menuFavourites_4;
action menuFavourites_5;
action menuFavourites_6;
action menuFavourites_7;
menu menuFavourites_8;
action menuFavourites_8_1;
action menuFavourites_8_2;
action menuFavourites_8_3;
menu menuFavourites_9;
menu menuFavourites_10;
nrc::action_ref menuFavourites_11;
nrc::action_ref menuBar_4;
nrc::action_ref menuBar_5;
action menuBar_6;
menu menuTest;
action actionEmacsStyleSequence1;
action actionEmacsStyleSequence2;
nrc::action_ref menuTest_1;
nrc::action_ref menuTest_2;
nrc::action_ref menuTest_3;
nrc::action_ref menuTest_4;
nrc::action_ref menuTest_5;
action actionColourDialog;
menu menuWindow;
action actionNextTab;
action actionPreviousTab;
menu menuHelp;
toolbar toolbarTest;
nrc::action_ref toolbarTest_1;
nrc::action_ref toolbarTest_2;
nrc::action_ref toolbarTest_3;
nrc::action_ref toolbarTest_4;
nrc::action_ref toolbarTest_5;
nrc::action_ref toolbarTest_6;
nrc::action_ref toolbarTest_7;
action toolbarTest_8;
action toolbarTest_9;
action actionManagePlugins;
nrc::action_ref toolbarTest_10;
nrc::action_ref toolbarTest_11;
nrc::action_ref toolbarTest_12;
nrc::action_ref toolbarTest_13;
nrc::action_ref toolbarTest_14;
nrc::action_ref toolbarTest_15;
nrc::action_ref toolbarTest_16;
action actionCheckForUpdates;
tab_page_container tabPages;
tab_page pageButtons;
tab_page pageMdi;
tab_page pageMessageBox;
tab_page pageItemViews;
tab_page pageLots;
tab_page pageImages;
tab_page pageGame;
tab_page pageDrawing;
tab_page pageEditor;
tab_page pageCircles;
tab_page pageFoo;
tab_page pageBar;
ui(int argc, char* argv[]) :
appTest{ argc, argv, "neoGFX Test App (Pre-Release)", image{
":/test/resources/icon.png" } },
actionGoldenrodStyle{ "Goldenrod Style"_t },
actionContacts{ "&Contacts..."_t },
actionAddFavourite{ "Add Favourite..."_t },
actionOrganizeFavourites{ "Organize Favourites..."_t },
actionMute{ "Mute/&Unmute Sound"_t },
actionPasteAndGo{ "Paste and Go"_t },
mainWindow{ size{ 800_spx, 800_spx } },
statusBar{ mainWindow.status_bar_layout() },
menuBar{ mainWindow.menu_layout() },
menuBar_1{ menuBar, menu_type::Popup, "&File"_t },
menuBar_1_1{ menuBar_1, appTest.actionFileNew },
menuBar_1_2{ menuBar_1, appTest.actionFileOpen },
menuBar_1_3{ menuBar_1 },
menuBar_1_4{ menuBar_1, appTest.actionFileClose },
menuBar_1_5{ menuBar_1 },
menuBar_1_6{ menuBar_1, appTest.actionFileSave },
menuBar_1_7{ menuBar_1 },
menuBar_1_8{ menuBar_1, appTest.actionFileExit },
menuBar_2{ menuBar, menu_type::Popup, "&Edit"_t },
menuBar_2_1{ menuBar_2, appTest.actionUndo },
menuBar_2_2{ menuBar_2, appTest.actionRedo },
menuBar_2_3{ menuBar_2 },
menuBar_2_4{ menuBar_2, appTest.actionCut },
menuBar_2_5{ menuBar_2, appTest.actionCopy },
menuBar_2_6{ menuBar_2, appTest.actionPaste },
menuBar_2_7{ menuBar_2, actionPasteAndGo },
menuBar_2_8{ menuBar_2, appTest.actionDelete },
menuBar_2_9{ menuBar_2 },
menuBar_2_10{ menuBar_2, appTest.actionSelectAll },
menuBar_3{ menuBar, menu_type::Popup, "&View"_t },
menuFavourites{ menuBar, menu_type::Popup, "F&avourites"_t },
menuFavourites_1{ menuFavourites, actionAddFavourite },
menuFavourites_2{ menuFavourites, actionOrganizeFavourites },
menuFavourites_3{ menuFavourites },
menuFavourites_4{ menuFavourites, "Alice"_t },
menuFavourites_5{ menuFavourites, "Bob"_t },
menuFavourites_6{ menuFavourites, "Carlos"_t },
menuFavourites_7{ menuFavourites, "Dave"_t },
menuFavourites_8{ menuFavourites, menu_type::Popup, "Silent
Running Drones"_t },
menuFavourites_8_1{ menuFavourites_8, "Dewey"_t },
menuFavourites_8_2{ menuFavourites_8, "Huey"_t },
menuFavourites_8_3{ menuFavourites_8, "Louie"_t },
menuFavourites_9{ menuFavourites, menu_type::Popup, "DC (TM)
Characters"_t },
menuFavourites_10{ menuFavourites, menu_type::Popup, "Marvel
(TM) Characters"_t },
menuFavourites_11{ menuFavourites },
menuBar_4{ menuBar, actionContacts },
menuBar_5{ menuBar, actionMute },
menuBar_6{ "&Xyzzy..."_t },
menuTest{ menuBar, menu_type::Popup, "&Test"_t },
actionEmacsStyleSequence1{ menuTest, "Emacs style sequence
#1"_t },
actionEmacsStyleSequence2{ menuTest, "Emacs style sequence
#2"_t },
menuTest_1{ menuTest, actionContacts },
menuTest_2{ menuTest, actionMute },
menuTest_3{ menuTest, actionMute },
menuTest_4{ menuTest, actionMute },
menuTest_5{ menuTest, actionMute },
actionColourDialog{ menuTest, "Colour Dialog..."_t },
menuWindow{ menuBar, menu_type::Popup, "&Window"_t },
actionNextTab{ menuWindow, "Next Tab"_t },
actionPreviousTab{ menuWindow, "Previous Tab"_t },
menuHelp{ menuBar, menu_type::Popup, "&Help"_t },
toolbarTest{ mainWindow.toolbar_layout() },
toolbarTest_1{ toolbarTest, appTest.actionFileNew },
toolbarTest_2{ toolbarTest, appTest.actionFileOpen },
toolbarTest_3{ toolbarTest, appTest.actionFileSave },
toolbarTest_4{ toolbarTest },
toolbarTest_5{ toolbarTest, actionContacts },
toolbarTest_6{ toolbarTest, actionAddFavourite },
toolbarTest_7{ toolbarTest, actionOrganizeFavourites },
toolbarTest_8{ "Keywords..."_t },
toolbarTest_9{ "Settings..."_t },
actionManagePlugins{ "Manage Plugins..."_t },
toolbarTest_10{ toolbarTest, actionMute },
toolbarTest_11{ toolbarTest },
toolbarTest_12{ toolbarTest, appTest.actionCut },
toolbarTest_13{ toolbarTest, appTest.actionCopy },
toolbarTest_14{ toolbarTest, appTest.actionPaste },
toolbarTest_15{ toolbarTest, actionPasteAndGo },
toolbarTest_16{ toolbarTest },
actionCheckForUpdates{ "Check for Updates..."_t },
tabPages{ mainWindow.client_layout(), true },
pageButtons{ tabPages, "Buttons"_t },
pageMdi{ tabPages, "MDI"_t },
pageMessageBox{ tabPages, "Message Boxes"_t },
pageItemViews{ tabPages, "Item Views"_t },
pageLots{ tabPages, "Lots"_t },
pageImages{ tabPages, "Images"_t },
pageGame{ tabPages, "Game"_t },
pageDrawing{ tabPages, "Drawing"_t },
pageEditor{ tabPages, "Editor"_t },
pageCircles{ tabPages, "Circles"_t },
pageFoo{ tabPages, "Foo"_t },
pageBar{ tabPages, "Bar"_t }
{
actionGoldenrodStyle.set_checkable(false);
actionGoldenrodStyle.set_shortcut("Ctrl+Alt+Shift+G");
actionContacts.set_checkable(false);
actionContacts.set_image(":/closed/resources/caw_toolbar.naa#contacts.png");
actionContacts.set_shortcut("Alt+C");
actionAddFavourite.set_checkable(false);
actionAddFavourite.set_image(":/closed/resources/caw_toolbar.naa#add_favourite.png");
actionOrganizeFavourites.set_checkable(false);
actionOrganizeFavourites.set_image(":/closed/resources/caw_toolbar.naa#organize_favourites.png");
actionOrganizeFavourites.set_shortcut("Alt+C");
actionMute.set_checkable(true);
actionMute.set_image(":/closed/resources/caw_toolbar.naa#mute.png");
actionMute.set_checked_image(":/closed/resources/caw_toolbar.naa#unmute.png");
actionPasteAndGo.set_checkable(false);
actionPasteAndGo.set_image(":/closed/resources/caw_toolbar.naa#paste_and_go.png");
actionPasteAndGo.set_shortcut("Ctrl+Shift+V");
menuFavourites_4.set_checkable(false);
menuFavourites_4.set_image(":/closed/resources/caw_toolbar.naa#favourite.png");
menuFavourites_5.set_checkable(false);
menuFavourites_5.set_image(":/closed/resources/caw_toolbar.naa#favourite.png");
menuFavourites_6.set_checkable(false);
menuFavourites_6.set_image(":/closed/resources/caw_toolbar.naa#favourite.png");
menuFavourites_7.set_checkable(false);
menuFavourites_7.set_image(":/closed/resources/caw_toolbar.naa#favourite.png");
menuFavourites_8_1.set_checkable(false);
menuFavourites_8_1.set_image(":/closed/resources/caw_toolbar.naa#favourite.png");
menuFavourites_8_2.set_checkable(false);
menuFavourites_8_2.set_image(":/closed/resources/caw_toolbar.naa#favourite.png");
menuFavourites_8_3.set_checkable(false);
menuFavourites_8_3.set_image(":/closed/resources/caw_toolbar.naa#favourite.png");
menuBar_6.set_checkable(false);
menuBar_6.set_image(":/neogfx/resources/icons.naa#eyedropper.png");
actionEmacsStyleSequence1.set_checkable(false);
actionEmacsStyleSequence1.set_shortcut("Ctrl+K, Ctrl+B");
actionEmacsStyleSequence2.set_checkable(false);
actionEmacsStyleSequence2.set_shortcut("Ctrl+K, Ctrl+K");
actionColourDialog.set_checkable(false);
actionNextTab.set_checkable(false);
actionNextTab.set_shortcut("Ctrl+Tab");
actionPreviousTab.set_checkable(false);
actionPreviousTab.set_shortcut("Shift+Ctrl+Tab");
toolbarTest_8.set_checkable(false);
toolbarTest_8.set_image(":/closed/resources/caw_toolbar.naa#keyword.png");
toolbarTest_9.set_checkable(false);
toolbarTest_9.set_image(":/closed/resources/caw_toolbar.naa#settings.png");
actionManagePlugins.set_checkable(false);
actionManagePlugins.set_image(":/closed/resources/caw_toolbar.naa#manage_plugins.png");
actionCheckForUpdates.set_checkable(false);
actionCheckForUpdates.set_image(":/closed/resources/caw_toolbar.naa#setup.png");
pageFoo.tab().set_image(image{ ":/test/resources/channel.png" });
pageBar.tab().set_image(image{ ":/test/resources/channel.png" });
}
};
}
/Flibble
--
"Snakes didn't evolve, instead talking snakes with legs changed into
snakes." - Rick C. Hodgin
“You won’t burn in hell. But be nice anyway.” – Ricky Gervais
“I see Atheists are fighting and killing each other again, over who
doesn’t believe in any God the most. Oh, no..wait.. that never happens.” –
Ricky Gervais
"Suppose it's all true, and you walk up to the pearly gates, and are
confronted by God," Byrne asked on his show The Meaning of Life. "What
will Stephen Fry say to him, her, or it?"
"I'd say, bone cancer in children? What's that about?" Fry replied.
"How dare you? How dare you create a world to which there is such misery
that is not our fault. It's not right, it's utterly, utterly evil."
"Why should I respect a capricious, mean-minded, stupid God who creates a
world that is so full of injustice and pain. That's what I would say."