{"id":22625169,"url":"https://github.com/gnustep/apps-thematic","last_synced_at":"2025-04-11T17:53:17.867Z","repository":{"id":50308016,"uuid":"94143860","full_name":"gnustep/apps-thematic","owner":"gnustep","description":"Application for creating image-only themes for GNUstep.","archived":false,"fork":false,"pushed_at":"2021-03-22T23:41:04.000Z","size":301,"stargazers_count":8,"open_issues_count":1,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2023-03-12T04:27:26.005Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gnustep.png","metadata":{"files":{"readme":"README","changelog":"ChangeLog","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null}},"created_at":"2017-06-12T21:52:41.000Z","updated_at":"2022-12-30T17:42:07.000Z","dependencies_parsed_at":"2022-09-16T09:01:59.380Z","dependency_job_id":null,"html_url":"https://github.com/gnustep/apps-thematic","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnustep%2Fapps-thematic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnustep%2Fapps-thematic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnustep%2Fapps-thematic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnustep%2Fapps-thematic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gnustep","download_url":"https://codeload.github.com/gnustep/apps-thematic/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228811185,"owners_count":17975676,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-09T00:19:41.282Z","updated_at":"2024-12-09T00:19:41.838Z","avatar_url":"https://github.com/gnustep.png","language":"Objective-C","funding_links":[],"categories":[],"sub_categories":[],"readme":"Thematic.app is a theme editor for GNUstep.\n\nInstall and run Thematic.app, then read online help for details of\nwhat it can do.\nAlternatively, you can find the help file in Resources/ThematicHelp.rtf\n\nThe remainder of this file is intended for people wishing to help improve\nThematic.app itsself, rather than for people who merely with to use it to\ncreate themes.\n\nTheming has to be built into the GNUstep GUI in order for a theme editor\nto be useful ... this will be an incremental process, with capabilities\nbeing added to the editor as they are added to the gui library.\n\nTo work on Thematic, you also need Gorm.app and ProjectCenter.app,\nand a copy of an rtf editor such as Ink.app if you wish to improve the\nonline help (Resources/ThematicHelp.rtf).\n\nBuilding/using the current editor requires the *latest* version of\nthe GUI from SVN.  The major task in theming is now changing all the\ncontrol drawing code to be themable ... identifying a minimal set of\ndrawing methods for each control and defining the number of tile\nimages needed for each, and updating the code in the GUI library.\n\nTo help with developing Thematic itsself, we need to add code to deal\nwith assigning tiles for particular controls and overriding theme drawing\nmethods for particular controls.\n\nFor most controls, this means:\n1. Editing ThemeDocument.gorm to add the control to the main document window.\n2. Modify ControlElement.m or implement a subclass of ControlElement to\nhandle any special featurs needed for your control.\nIf you create a subclass, this will probably also involve creating\na new Gorm file for the inspector for the new control ...\nsee ControlElement.gorm for an example.\n3. Edit ThemeDocument.m to integrate the changes.\n4. Define any tile images to be used to draw the control by editing \nResources/CodeInfo.plist\n5. Define any special colors to be used to draw the control by editing \nResources/CodeInfo.plist\n5. Define any NSInterfaceStyle values or defaults settings which control\nbehavior fo the control by editing Resources/CodeInfo.plist\n6. Define methods that can be overridden to draw the control differently ...\n6a. Add the methods and a description of each to Resources/CodeInfo.plist\n6b. Add template implementations for each method as a file whose name is\nResources/xxx.txt where xxx is the method name with any colons replaced by\nunderscores.\n\n\nTO DO\n\nWe have more to do than just adding new controls to those we support.\n\nFor one thing, attempting to design an even better iuser interface is always\nworthwhile.\n\nThe current ability for Thematic.app to always reflect the current state of\nthe theme under development is great, but it's not safe when you write code\nwhich can crass, and in crashing can crash Thematic.app\nIt would be nice to come up with an alternative automatic mechanism for viewing the effects of changes which cannot crash Thematic itsself ... perhaps by\nrunning some other example application using NSTask?\n\nThe code editor is currently glitchy ... which is strage since it's just\na textview.  This really needs to be improved, whether it's a case for\nchanges in Thematic or fixes in the NSTextView class in the GUI library\nis not entirely clear.\n\nThe code editor currently rebuilds the theme after each change ... which can be slow on a slow system.  It would be better if, during an editing session,\nit kept the code in a subdirectory and only rebuilt the source for any\nmethods actually changed.  This should actually be quite easy to implement.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgnustep%2Fapps-thematic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgnustep%2Fapps-thematic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgnustep%2Fapps-thematic/lists"}