{"action":"created","issue":{"url":"https://api.github.com/repos/linuxmint/Cinnamon/issues/2837","labels_url":"https://api.github.com/repos/linuxmint/Cinnamon/issues/2837/labels{/name}","comments_url":"https://api.github.com/repos/linuxmint/Cinnamon/issues/2837/comments","events_url":"https://api.github.com/repos/linuxmint/Cinnamon/issues/2837/events","html_url":"https://github.com/linuxmint/Cinnamon/issues/2837","id":26065278,"number":2837,"title":"Applet and Desklet settings visual improvement...","user":{"login":"lestcape","id":1389572,"avatar_url":"https://avatars.githubusercontent.com/u/1389572?v=3","gravatar_id":"","url":"https://api.github.com/users/lestcape","html_url":"https://github.com/lestcape","followers_url":"https://api.github.com/users/lestcape/followers","following_url":"https://api.github.com/users/lestcape/following{/other_user}","gists_url":"https://api.github.com/users/lestcape/gists{/gist_id}","starred_url":"https://api.github.com/users/lestcape/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lestcape/subscriptions","organizations_url":"https://api.github.com/users/lestcape/orgs","repos_url":"https://api.github.com/users/lestcape/repos","events_url":"https://api.github.com/users/lestcape/events{/privacy}","received_events_url":"https://api.github.com/users/lestcape/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":11,"created_at":"2014-01-22T04:00:58Z","updated_at":"2015-01-10T18:04:48Z","closed_at":null,"body":"Cinnamon Settings for applets and desklets, are constructed using the settings-shema.json... The real true it's the currently thing that we can do with the applets and desklets settings not are to much, so...\r\n\r\nI thinking in a way to add panels and allow layouts in the applets and desklets setting.\r\n\r\nThe best idea that i have it's add a new attribute parent in all settings object(can not be present). A parent always need to be a panel or not appear(in this case the default parent are the settings main frame), and also panels can to have a parent attribute  or not appear to.\r\n\r\nAn example of settings-shema.json can be this:\r\n\r\n\"horizontal-panel\" : {\r\n\"type\" : \"horizontalpanel\"\r\n},\r\n\"first-panel\" : {\r\n\"type\" : \"verticalpanel\",\r\n\"parent\" : \"horizontal-panel\"\r\n},\r\n\"second-panel\" : {\r\n\"type\" : \"verticalpanel\",\r\n\"parent\" : \"horizontal-panel\"\r\n},\r\n\"menu-icon\" : {\r\n\"type\" : \"iconfilechooser\",\r\n\"parent\" : \"first-panel\",\r\n\"default\" : \"/usr/share/cinnamon/theme/menu.png\",\r\n\"description\": \"Icon\",\r\n\"tooltip\": \"Select an icon to show in the panel.\"\r\n},\r\n\"menu-label\" : {\r\n\"type\" : \"entry\",\r\n\"parent\" : \"second-panel\",\r\n\"default\" : \"Menu\",\r\n\"description\" : \"Text\",\r\n\"tooltip\" : \"Enter custom text to show in the panel.\"\r\n},\r\n\r\n\"show-recent\" : {\r\n\"type\" : \"checkbox\",\r\n\"default\" : true,\r\n\"description\": \"Show recent files\",\r\n\"tooltip\": \"Choose whether or not to show a recent file list in the menu.\"\r\n}\r\n\r\nThis is the result of this example:\r\n![setting](https://f.cloud.github.com/assets/1389572/1970941/89a3fbfa-8319-11e3-9034-6bdaf7414c1b.png)\r\n\r\nThe component \"show-recent\" don't have parent. For this reason this component was added in the current way, below the last component added above in the main frame. The same occurs with horizontal-panel.\r\n\r\nThe rest of components have a parent so he was added inside of the parent panel.\r\n\r\nThose mechanims are compatible with the current especification of the setting, then we can be done without losing any other thing, or need to change all applet or desklet settings to be compatible with this new feature.\r\n\r\nFinally can be added a new vertical and/or horizontal attribute inside panel, to allow also align the components...\r\n\r\nThe structure of the new way generate an inverted tree(the information are about the parent and not about the child). This type of tree are know how games tree.\r\n\r\nLuckily the tree can be simulate with a dynamic array of components for the algorithm to generate a setting, added initially the components that not have parent and then when the current component are added, we can removed this component from the dynamic array and then add all components that have the current component as a parent.\r\n\r\nWill be good have more opinions, because this allow me to not do things that can be done better or causing several problems....\r\n\r\nThanks..."},"comment":{"url":"https://api.github.com/repos/linuxmint/Cinnamon/issues/comments/69465303","html_url":"https://github.com/linuxmint/Cinnamon/issues/2837#issuecomment-69465303","issue_url":"https://api.github.com/repos/linuxmint/Cinnamon/issues/2837","id":69465303,"user":{"login":"lestcape","id":1389572,"avatar_url":"https://avatars.githubusercontent.com/u/1389572?v=3","gravatar_id":"","url":"https://api.github.com/users/lestcape","html_url":"https://github.com/lestcape","followers_url":"https://api.github.com/users/lestcape/followers","following_url":"https://api.github.com/users/lestcape/following{/other_user}","gists_url":"https://api.github.com/users/lestcape/gists{/gist_id}","starred_url":"https://api.github.com/users/lestcape/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lestcape/subscriptions","organizations_url":"https://api.github.com/users/lestcape/orgs","repos_url":"https://api.github.com/users/lestcape/repos","events_url":"https://api.github.com/users/lestcape/events{/privacy}","received_events_url":"https://api.github.com/users/lestcape/received_events","type":"User","site_admin":false},"created_at":"2015-01-10T18:04:48Z","updated_at":"2015-01-10T18:04:48Z","body":"I'm working on my own settings, that now is merged with cinnamon installer https://github.com/lestcape/Cinnamon-Installer, I have several bugs and incomplete things yet, but now appear to be functional, some day could be usable. When i finished the application core, i will implement all my ideas. Could be use by the cinnamon devs to test new features. We can not see some times the utility of some things before this thing is working."}}