{"action":"created","issue":{"url":"https://api.github.com/repos/dxx-rebirth/dxx-rebirth/issues/227","repository_url":"https://api.github.com/repos/dxx-rebirth/dxx-rebirth","labels_url":"https://api.github.com/repos/dxx-rebirth/dxx-rebirth/issues/227/labels{/name}","comments_url":"https://api.github.com/repos/dxx-rebirth/dxx-rebirth/issues/227/comments","events_url":"https://api.github.com/repos/dxx-rebirth/dxx-rebirth/issues/227/events","html_url":"https://github.com/dxx-rebirth/dxx-rebirth/issues/227","id":179421742,"number":227,"title":"Make dcx::window into a class and use C++ features","user":{"login":"kreatordxx","id":3982823,"avatar_url":"https://avatars.githubusercontent.com/u/3982823?v=3","gravatar_id":"","url":"https://api.github.com/users/kreatordxx","html_url":"https://github.com/kreatordxx","followers_url":"https://api.github.com/users/kreatordxx/followers","following_url":"https://api.github.com/users/kreatordxx/following{/other_user}","gists_url":"https://api.github.com/users/kreatordxx/gists{/gist_id}","starred_url":"https://api.github.com/users/kreatordxx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kreatordxx/subscriptions","organizations_url":"https://api.github.com/users/kreatordxx/orgs","repos_url":"https://api.github.com/users/kreatordxx/repos","events_url":"https://api.github.com/users/kreatordxx/events{/privacy}","received_events_url":"https://api.github.com/users/kreatordxx/received_events","type":"User","site_admin":false},"labels":[{"id":23570066,"url":"https://api.github.com/repos/dxx-rebirth/dxx-rebirth/labels/enhancement","name":"enhancement","color":"84b6eb","default":true}],"state":"open","locked":false,"assignee":{"login":"kreatordxx","id":3982823,"avatar_url":"https://avatars.githubusercontent.com/u/3982823?v=3","gravatar_id":"","url":"https://api.github.com/users/kreatordxx","html_url":"https://github.com/kreatordxx","followers_url":"https://api.github.com/users/kreatordxx/followers","following_url":"https://api.github.com/users/kreatordxx/following{/other_user}","gists_url":"https://api.github.com/users/kreatordxx/gists{/gist_id}","starred_url":"https://api.github.com/users/kreatordxx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kreatordxx/subscriptions","organizations_url":"https://api.github.com/users/kreatordxx/orgs","repos_url":"https://api.github.com/users/kreatordxx/repos","events_url":"https://api.github.com/users/kreatordxx/events{/privacy}","received_events_url":"https://api.github.com/users/kreatordxx/received_events","type":"User","site_admin":false},"assignees":[{"login":"kreatordxx","id":3982823,"avatar_url":"https://avatars.githubusercontent.com/u/3982823?v=3","gravatar_id":"","url":"https://api.github.com/users/kreatordxx","html_url":"https://github.com/kreatordxx","followers_url":"https://api.github.com/users/kreatordxx/followers","following_url":"https://api.github.com/users/kreatordxx/following{/other_user}","gists_url":"https://api.github.com/users/kreatordxx/gists{/gist_id}","starred_url":"https://api.github.com/users/kreatordxx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kreatordxx/subscriptions","organizations_url":"https://api.github.com/users/kreatordxx/orgs","repos_url":"https://api.github.com/users/kreatordxx/repos","events_url":"https://api.github.com/users/kreatordxx/events{/privacy}","received_events_url":"https://api.github.com/users/kreatordxx/received_events","type":"User","site_admin":false}],"milestone":null,"comments":9,"created_at":"2016-09-27T07:57:17Z","updated_at":"2016-12-08T03:04:59Z","closed_at":null,"body":"When I originally wrote the d_window struct and corresponding system it was in C, with the intention of making the different views/panes in DXX-Rebirth more object oriented (and IMO cleaner code). Due to the limitations of C this meant maintaining up to 3 pointers (d_window, UI_DIALOG and robot_dialog for example). The use of unique_ptr's makes this potentially even more complicated.  C++ adds features such as subclassing and polymorphism and I would be keen to make use of these features for dcx::window, in particular so that dcx::window is a subclass of grs_canvas; UI_DIALOG, newmenu and others are subclasses of dcx::window and the specific uses are further subclasses. The trigger for this is continuing issues with the editor, which I would like to work on further. That said I also like this sort of 'tidy up'.\n\nI would do this in a separate branch, but I am posting this idea first before I start, to get some feedback.\n"},"comment":{"url":"https://api.github.com/repos/dxx-rebirth/dxx-rebirth/issues/comments/265640921","html_url":"https://github.com/dxx-rebirth/dxx-rebirth/issues/227#issuecomment-265640921","issue_url":"https://api.github.com/repos/dxx-rebirth/dxx-rebirth/issues/227","id":265640921,"user":{"login":"vLKp","id":3164941,"avatar_url":"https://avatars.githubusercontent.com/u/3164941?v=3","gravatar_id":"","url":"https://api.github.com/users/vLKp","html_url":"https://github.com/vLKp","followers_url":"https://api.github.com/users/vLKp/followers","following_url":"https://api.github.com/users/vLKp/following{/other_user}","gists_url":"https://api.github.com/users/vLKp/gists{/gist_id}","starred_url":"https://api.github.com/users/vLKp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vLKp/subscriptions","organizations_url":"https://api.github.com/users/vLKp/orgs","repos_url":"https://api.github.com/users/vLKp/repos","events_url":"https://api.github.com/users/vLKp/events{/privacy}","received_events_url":"https://api.github.com/users/vLKp/received_events","type":"User","site_admin":false},"created_at":"2016-12-08T03:04:59Z","updated_at":"2016-12-08T03:04:59Z","body":"I do not understand the concern in the linked stackoverflow post.  Incrementing iterators is cheap.  The latter issue, regarding derived types, is a valid concern.  `std::list` stores the managed type in the nodes, so it is not suitable when some of the stored objects may be derived from `T`.  An intrusive list solves that problem, but is not part of the standard library.  So far, we have not yet made Boost a hard dependency, so the Boost intrusive list cannot be assumed to be available."}}
{"actor":{"display_login":"vLKp"}}