{"id":21158692,"url":"https://github.com/wqweto/ninepatch","last_synced_at":"2026-01-02T05:32:10.670Z","repository":{"id":145870312,"uuid":"130675441","full_name":"wqweto/NinePatch","owner":"wqweto","description":"Nine Patch PNGs for VB6","archived":false,"fork":false,"pushed_at":"2024-10-25T13:10:18.000Z","size":568,"stargazers_count":21,"open_issues_count":1,"forks_count":10,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-03-08T20:43:40.524Z","etag":null,"topics":["9patch","button","keyboard","nine-patch","on-screen","transparent","vb6"],"latest_commit_sha":null,"homepage":null,"language":"Visual Basic 6.0","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wqweto.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-04-23T09:49:01.000Z","updated_at":"2025-02-18T03:47:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"ad5c9ab5-75b4-461d-b270-9291d0ba849c","html_url":"https://github.com/wqweto/NinePatch","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wqweto%2FNinePatch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wqweto%2FNinePatch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wqweto%2FNinePatch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wqweto%2FNinePatch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wqweto","download_url":"https://codeload.github.com/wqweto/NinePatch/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243602077,"owners_count":20317564,"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":["9patch","button","keyboard","nine-patch","on-screen","transparent","vb6"],"created_at":"2024-11-20T12:32:03.474Z","updated_at":"2026-01-02T05:32:10.615Z","avatar_url":"https://github.com/wqweto.png","language":"Visual Basic 6.0","funding_links":[],"categories":[],"sub_categories":[],"readme":"## NPPNG\nNine Patch PNGs for VB6\n\n### Description\n\nNPPNG project includes `cNinePatch.cls` for 9-patch parsing/handling and `ctxNineButton.ctl` custom user-control for transparent animated buttons with states based on 9-patches.\n\n### Source usage\n\nJust include `src/cNinePatch.cls` in your projects to be able to load and draw 9-patches in user-defined sizes.\n\nAdd `src/ctxNineButton.ctl` and `src/mdNineButton.bas` for the transparent windowless button control, with states based on nine-patches.\n\nIn `ctxNineButton` you can set conditional compilation constant `ImplHasTimers` to `False` to disable control state-transition animations. In this case `src/mdNineButton.bas` will not be depended on anymore and the control becomes self-contained in `src/ctxNineButton.ctl`.\n\n### Preset `ctxNineButton` styles\n\n| Type            | Style                      | Preview                                   |\n| --------------- | -------------------------- | ----------------------------------------- |\n| Buttons         | Simple buttons                                                        ||\n|                 | `ucsBtyButtonDefault`      | ![ButtonDefault](https://raw.githubusercontent.com/wqweto/NinePatch/master/doc/ButtonDefault.png)   |\n|                 | `ucsBtyButtonGreen`        | ![ButtonGreen](https://raw.githubusercontent.com/wqweto/NinePatch/master/doc/ButtonGreen.png)       |\n|                 | `ucsBtyButtonTurnRed`      | ![ButtonTurnRed](https://raw.githubusercontent.com/wqweto/NinePatch/master/doc/ButtonTurnRed.png)   |\n| Flat Buttons    | Flat buttons based on bootstrap                                       ||\n|                 | `ucsBtyFlatPrimary`        | ![FlatPrimary](https://raw.githubusercontent.com/wqweto/NinePatch/master/doc/FlatPrimary.png)       |\n|                 | `ucsBtyFlatSecondary`      | ![FlatSecondary](https://raw.githubusercontent.com/wqweto/NinePatch/master/doc/FlatSecondary.png)   |\n|                 | `ucsBtyFlatSuccess`        | ![FlatSuccess](https://raw.githubusercontent.com/wqweto/NinePatch/master/doc/FlatSuccess.png)       |\n|                 | `ucsBtyFlatDanger`         | ![FlatDanger](https://raw.githubusercontent.com/wqweto/NinePatch/master/doc/FlatDanger.png)         |\n|                 | `ucsBtyFlatWarning`        | ![FlatWarning](https://raw.githubusercontent.com/wqweto/NinePatch/master/doc/FlatWarning.png)       |\n|                 | `ucsBtyFlatInfo`           | ![FlatInfo](https://raw.githubusercontent.com/wqweto/NinePatch/master/doc/FlatInfo.png)             |\n|                 | `ucsBtyFlatLight`          | ![FlatLight](https://raw.githubusercontent.com/wqweto/NinePatch/master/doc/FlatLight.png)           |\n|                 | `ucsBtyFlatDark`           | ![FlatDark](https://raw.githubusercontent.com/wqweto/NinePatch/master/doc/FlatDark.png)             |\n| Outline Buttons | Outline buttons based on boostrap                                     ||\n|                 | `ucsBtyOutlinePrimary`     | ![OutlinePrimary](https://raw.githubusercontent.com/wqweto/NinePatch/master/doc/OutlinePrimary.png) |\n|                 | `ucsBtyOutlineSecondary`   | ![OutlineSecondary](https://raw.githubusercontent.com/wqweto/NinePatch/master/doc/OutlineSecondary.png) |\n|                 | `ucsBtyOutlineSuccess`     | ![OutlineSuccess](https://raw.githubusercontent.com/wqweto/NinePatch/master/doc/OutlineSuccess.png) |\n|                 | `ucsBtyOutlineDanger`      | ![OutlineDanger](https://raw.githubusercontent.com/wqweto/NinePatch/master/doc/OutlineDanger.png)   |\n|                 | `ucsBtyOutlineWarning`     | ![OutlineWarning](https://raw.githubusercontent.com/wqweto/NinePatch/master/doc/OutlineWarning.png) |\n|                 | `ucsBtyOutlineInfo`        | ![OutlineInfo](https://raw.githubusercontent.com/wqweto/NinePatch/master/doc/OutlineInfo.png)       |\n|                 | `ucsBtyOutlineLight`       | ![OutlineLight](https://raw.githubusercontent.com/wqweto/NinePatch/master/doc/OutlineLight.png)     |\n|                 | `ucsBtyOutlineDark`        | ![OutlineDark](https://raw.githubusercontent.com/wqweto/NinePatch/master/doc/OutlineDark.png)       |\n| Cards           | Static cards that can be owner-drawn with information                 ||\n|                 | `ucsBtyCardDefault`        | ![CardDefault](https://raw.githubusercontent.com/wqweto/NinePatch/master/doc/CardDefault.png)       |\n|                 | `ucsBtyCardPrimary`        | ![CardPrimary](https://raw.githubusercontent.com/wqweto/NinePatch/master/doc/CardPrimary.png)       |\n|                 | `ucsBtyCardSuccess`        | ![CardSuccess](https://raw.githubusercontent.com/wqweto/NinePatch/master/doc/CardSuccess.png)       |\n|                 | `ucsBtyCardPurple`         | ![CardPurple](https://raw.githubusercontent.com/wqweto/NinePatch/master/doc/CardPurple.png)         |\n\n### Supported button states\n\n| State                | Description |\n| -------------------- | ----------- |\n| `ucsBstNormal`       | Normal state |\n| `ucsBstHover`        | Optional mouse hover. Otherwise `ucsBstNormal` is used |\n| `ucsBstPressed`      | Optional mouse pressed. Otherwise `ucsBstHover` is used |\n| `ucsBstHoverPressed` | Optional mouse pressed over the control. Otherwise `ucsBstPressed` is used |\n| `ucsBstDisabled`     | Optional disabled state |\n| `ucsBstFocused`      | Optional focus rectangle which is composited before current state |\n\nEach state can have a different 9-patch image, text and shadow properties.\n\n### Supported state customizations\n\n| Property              | Description |\n| --------------------- | ----------- |\n| `ButtonImageArray`    | Nine-patch image as byte array |\n| `ButtonImageOpacity`  | Image transparency incl. composited text and shadow |\n| `ButtonTextFont`      | Text font |\n| `ButtonTextFlags`     | Text alignment and wrapping |\n| `ButtonTextColor`     | Text color |\n| `ButtonTextOpacity`   | Text transparency on image before applying image transparency |\n| `ButtonTextOffsetX`   | Additional text horizontal offset after alignment |\n| `ButtonTextOffsetY`   | Additional text vertical offset after alignment |\n| `ButtonShadowColor`   | Text shadow color |\n| `ButtonShadowOpacity` | Text shadow transparency on image |\n| `ButtonShadowOffsetX` | Shadow horizontal offset from text |\n| `ButtonShadowOffsetY` | Shadow vertical offset from text |\n\n### Global customizations\n\n| Property            | Description |\n| ------------------- | ----------- |\n| `AnimationDuration` | Duration of state transition (in seconds) |\n| `Opacity`           | Global control transparency |\n| `Enabled`           | Uses disabled state settings to paint control |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwqweto%2Fninepatch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwqweto%2Fninepatch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwqweto%2Fninepatch/lists"}