{"action":"created","issue":{"url":"https://api.github.com/repos/wjakob/nanogui/issues/229","repository_url":"https://api.github.com/repos/wjakob/nanogui","labels_url":"https://api.github.com/repos/wjakob/nanogui/issues/229/labels{/name}","comments_url":"https://api.github.com/repos/wjakob/nanogui/issues/229/comments","events_url":"https://api.github.com/repos/wjakob/nanogui/issues/229/events","html_url":"https://github.com/wjakob/nanogui/issues/229","id":237689228,"number":229,"title":"Customize Theme of nanoGUI ","user":{"login":"wow2006","id":2217193,"avatar_url":"https://avatars1.githubusercontent.com/u/2217193?v=4","gravatar_id":"","url":"https://api.github.com/users/wow2006","html_url":"https://github.com/wow2006","followers_url":"https://api.github.com/users/wow2006/followers","following_url":"https://api.github.com/users/wow2006/following{/other_user}","gists_url":"https://api.github.com/users/wow2006/gists{/gist_id}","starred_url":"https://api.github.com/users/wow2006/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wow2006/subscriptions","organizations_url":"https://api.github.com/users/wow2006/orgs","repos_url":"https://api.github.com/users/wow2006/repos","events_url":"https://api.github.com/users/wow2006/events{/privacy}","received_events_url":"https://api.github.com/users/wow2006/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":5,"created_at":"2017-06-21T23:07:45Z","updated_at":"2017-07-29T02:04:24Z","closed_at":null,"body":"Hello,\r\n\r\nI really want to customise GUI. If this way to global customise or specific widget theme?\r\n\r\nBest regards,\r\nAhmed Abdel Aal"},"comment":{"url":"https://api.github.com/repos/wjakob/nanogui/issues/comments/318796206","html_url":"https://github.com/wjakob/nanogui/issues/229#issuecomment-318796206","issue_url":"https://api.github.com/repos/wjakob/nanogui/issues/229","id":318796206,"user":{"login":"austensatterlee","id":3756179,"avatar_url":"https://avatars2.githubusercontent.com/u/3756179?v=4","gravatar_id":"","url":"https://api.github.com/users/austensatterlee","html_url":"https://github.com/austensatterlee","followers_url":"https://api.github.com/users/austensatterlee/followers","following_url":"https://api.github.com/users/austensatterlee/following{/other_user}","gists_url":"https://api.github.com/users/austensatterlee/gists{/gist_id}","starred_url":"https://api.github.com/users/austensatterlee/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/austensatterlee/subscriptions","organizations_url":"https://api.github.com/users/austensatterlee/orgs","repos_url":"https://api.github.com/users/austensatterlee/repos","events_url":"https://api.github.com/users/austensatterlee/events{/privacy}","received_events_url":"https://api.github.com/users/austensatterlee/received_events","type":"User","site_admin":false},"created_at":"2017-07-29T02:04:24Z","updated_at":"2017-07-29T02:04:24Z","body":"If anyone is interested, I took a stab at making the theme a little more extensible. [Here's a link to the commit](https://github.com/austensatterlee/nanogui/commit/82451b4233e1576dfc20b73b320564afa3defbe2).\r\nI used the [JSON for Modern C++](https://github.com/nlohmann/json) library to store all the theme attributes. This allowed me to serialize the theme easily.  Also, you can set default values when you reference an attribute in case it is undefined.\r\n\r\nI'm still not completely satisfied with this approach. I'm not thrilled with introducing a new dependency. There is still no type safety, and attributes are reference with strings during run-time. Also, I think ideally referencing an undefined attribute would trigger a compile-time error.\r\n\r\nThis all might be getting a little off topic for the scope of nanogui, but I'd love to hear from anyone with suggestions or references to past work that have dealt with this problem."}}
{"actor":{"display_login":"austensatterlee"}}