tilemap-editor 3.2.9__tar.gz → 3.2.10__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. {tilemap_editor-3.2.9/src/tilemap_editor.egg-info → tilemap_editor-3.2.10}/PKG-INFO +1 -1
  2. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/pyproject.toml +1 -1
  3. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10/src/tilemap_editor.egg-info}/PKG-INFO +1 -1
  4. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/widgets/tile_selector.py +54 -8
  5. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/LICENSE +0 -0
  6. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/MANIFEST.in +0 -0
  7. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/README.md +0 -0
  8. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/assets/fonts/jetbrain-fonts/JetBrainsMono-Bold.ttf +0 -0
  9. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/assets/fonts/jetbrain-fonts/JetBrainsMono-BoldItalic.ttf +0 -0
  10. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/assets/fonts/jetbrain-fonts/JetBrainsMono-Italic.ttf +0 -0
  11. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/assets/fonts/jetbrain-fonts/JetBrainsMono-Regular.ttf +0 -0
  12. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/assets/fonts/noto/NotoSans-Bold.ttf +0 -0
  13. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/assets/fonts/noto/NotoSans-BoldItalic.ttf +0 -0
  14. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/assets/fonts/noto/NotoSans-Italic.ttf +0 -0
  15. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/assets/fonts/noto/NotoSans-Regular.ttf +0 -0
  16. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/assets/icons/arrow-down.svg +0 -0
  17. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/assets/icons/check.svg +0 -0
  18. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/assets/icons/checked.svg +0 -0
  19. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/assets/icons/close.svg +0 -0
  20. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/assets/icons/duplicate.svg +0 -0
  21. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/assets/icons/error.svg +0 -0
  22. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/assets/icons/file.svg +0 -0
  23. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/assets/icons/filedead.svg +0 -0
  24. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/assets/icons/fit.svg +0 -0
  25. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/assets/icons/folder.svg +0 -0
  26. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/assets/icons/grid.svg +0 -0
  27. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/assets/icons/image.svg +0 -0
  28. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/assets/icons/info.svg +0 -0
  29. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/assets/icons/load.svg +0 -0
  30. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/assets/icons/loop.svg +0 -0
  31. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/assets/icons/pan.svg +0 -0
  32. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/assets/icons/pause.svg +0 -0
  33. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/assets/icons/pencil.svg +0 -0
  34. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/assets/icons/play.svg +0 -0
  35. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/assets/icons/plus.svg +0 -0
  36. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/assets/icons/radio.svg +0 -0
  37. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/assets/icons/reset.svg +0 -0
  38. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/assets/icons/save.svg +0 -0
  39. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/assets/icons/stop.svg +0 -0
  40. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/assets/icons/tilemap.svg +0 -0
  41. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/assets/icons/tileset.svg +0 -0
  42. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/assets/icons/unchecked.svg +0 -0
  43. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/assets/icons/warning.svg +0 -0
  44. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/assets/icons/zoomin.svg +0 -0
  45. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/assets/icons/zoomout.svg +0 -0
  46. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/setup.cfg +0 -0
  47. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/configs/themes.py +0 -0
  48. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/constants.py +0 -0
  49. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/editor.py +0 -0
  50. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/event_map.py +0 -0
  51. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/layers.py +0 -0
  52. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/main.py +0 -0
  53. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/node_manager.py +0 -0
  54. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/nodes.py +0 -0
  55. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/plugins/__init__.py +0 -0
  56. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/plugins/character_collision/__init__.py +0 -0
  57. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/plugins/character_collision/editor.py +0 -0
  58. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/plugins/character_collision/models.py +0 -0
  59. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/plugins/character_collision/protocols.py +0 -0
  60. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/plugins/character_collision/shape_editor.py +0 -0
  61. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/plugins/character_collision/standalone.py +0 -0
  62. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/plugins/object_tileset_collision/__init__.py +0 -0
  63. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/plugins/object_tileset_collision/editor.py +0 -0
  64. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/plugins/object_tileset_collision/models.py +0 -0
  65. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/plugins/object_tileset_collision/protocols.py +0 -0
  66. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/plugins/object_tileset_collision/standalone.py +0 -0
  67. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/plugins/sprite_animation/__init__.py +0 -0
  68. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/plugins/sprite_animation/__main__.py +0 -0
  69. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/plugins/sprite_animation/clipboard_util.py +0 -0
  70. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/plugins/sprite_animation/editor.py +0 -0
  71. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/plugins/sprite_animation/frame_picker.py +0 -0
  72. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/plugins/sprite_animation/models.py +0 -0
  73. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/plugins/sprite_animation/preview.py +0 -0
  74. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/plugins/sprite_animation/protocols.py +0 -0
  75. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/plugins/sprite_animation/runtime_load.py +0 -0
  76. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/plugins/sprite_animation/standalone.py +0 -0
  77. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/plugins/sprite_animation/timeline.py +0 -0
  78. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/plugins/sprite_animation/validation.py +0 -0
  79. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/plugins/sprite_editor/__init__.py +0 -0
  80. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/plugins/sprite_editor/editor.py +0 -0
  81. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/plugins/sprite_editor/standalone.py +0 -0
  82. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/plugins/tileset_collision/__init__.py +0 -0
  83. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/plugins/tileset_collision/collision_painter.py +0 -0
  84. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/plugins/tileset_collision/editor.py +0 -0
  85. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/plugins/tileset_collision/models.py +0 -0
  86. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/plugins/tileset_collision/protocols.py +0 -0
  87. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/plugins/tileset_collision/standalone.py +0 -0
  88. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/standalone_automap.py +0 -0
  89. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/standalone_error_console.py +0 -0
  90. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/standalone_filemanager.py +0 -0
  91. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/standalone_image_viewer.py +0 -0
  92. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap.py +0 -0
  93. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/__init__.py +0 -0
  94. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/__main__.py +0 -0
  95. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/__init__.py +0 -0
  96. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/fonts/jetbrain-fonts/JetBrainsMono-Bold.ttf +0 -0
  97. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/fonts/jetbrain-fonts/JetBrainsMono-BoldItalic.ttf +0 -0
  98. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/fonts/jetbrain-fonts/JetBrainsMono-Italic.ttf +0 -0
  99. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/fonts/jetbrain-fonts/JetBrainsMono-Regular.ttf +0 -0
  100. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/fonts/noto/NotoSans-Bold.ttf +0 -0
  101. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/fonts/noto/NotoSans-BoldItalic.ttf +0 -0
  102. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/fonts/noto/NotoSans-Italic.ttf +0 -0
  103. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/fonts/noto/NotoSans-Regular.ttf +0 -0
  104. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/icons/ToolMove.svg +0 -0
  105. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/icons/arrow-down.svg +0 -0
  106. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/icons/check.svg +0 -0
  107. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/icons/checked.svg +0 -0
  108. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/icons/close.svg +0 -0
  109. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/icons/duplicate.svg +0 -0
  110. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/icons/error.svg +0 -0
  111. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/icons/file.svg +0 -0
  112. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/icons/filedead.svg +0 -0
  113. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/icons/fit.svg +0 -0
  114. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/icons/folder.svg +0 -0
  115. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/icons/grid.svg +0 -0
  116. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/icons/image.svg +0 -0
  117. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/icons/info.svg +0 -0
  118. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/icons/load.svg +0 -0
  119. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/icons/loop.svg +0 -0
  120. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/icons/pan.svg +0 -0
  121. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/icons/pause.svg +0 -0
  122. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/icons/pencil.svg +0 -0
  123. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/icons/play.svg +0 -0
  124. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/icons/plus.svg +0 -0
  125. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/icons/radio.svg +0 -0
  126. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/icons/reset.svg +0 -0
  127. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/icons/save.svg +0 -0
  128. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/icons/stop.svg +0 -0
  129. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/icons/tilemap.svg +0 -0
  130. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/icons/tileset.svg +0 -0
  131. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/icons/unchecked.svg +0 -0
  132. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/icons/warning.svg +0 -0
  133. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/icons/zoomin.svg +0 -0
  134. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/assets/icons/zoomout.svg +0 -0
  135. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/cli.py +0 -0
  136. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/main.py +0 -0
  137. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor/settings.py +0 -0
  138. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor.egg-info/SOURCES.txt +0 -0
  139. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor.egg-info/dependency_links.txt +0 -0
  140. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor.egg-info/entry_points.txt +0 -0
  141. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor.egg-info/requires.txt +0 -0
  142. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/tilemap_editor.egg-info/top_level.txt +0 -0
  143. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/ttypes/__init__.py +0 -0
  144. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/ttypes/tilemap.py +0 -0
  145. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/utils/__init__.py +0 -0
  146. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/utils/editor_preference.py +0 -0
  147. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/utils/error_handler.py +0 -0
  148. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/utils/font_manager.py +0 -0
  149. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/utils/history.py +0 -0
  150. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/utils/icon_manager.py +0 -0
  151. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/utils/icons_cache.py +0 -0
  152. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/utils/log_capture.py +0 -0
  153. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/utils/project_paths.py +0 -0
  154. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/utils/serialization.py +0 -0
  155. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/utils/standalone.py +0 -0
  156. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/utils/validation.py +0 -0
  157. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/widgets/__init__.py +0 -0
  158. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/widgets/automap_models.py +0 -0
  159. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/widgets/autotile_template.py +0 -0
  160. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/widgets/autotiler.py +0 -0
  161. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/widgets/filemanager.py +0 -0
  162. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/widgets/input.py +0 -0
  163. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/widgets/layer_selector.py +0 -0
  164. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/widgets/map_properties.py +0 -0
  165. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/widgets/mapsetup.py +0 -0
  166. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/widgets/regex_automap_designer.py +0 -0
  167. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/widgets/spritesheet_grid.py +0 -0
  168. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/widgets/tile_grid.py +0 -0
  169. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/widgets/ui/collision_layer_mask.py +0 -0
  170. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/widgets/ui/collision_layer_sidebar.py +0 -0
  171. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/widgets/ui/confirm_dialog.py +0 -0
  172. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/widgets/ui/draw_utils.py +0 -0
  173. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/widgets/ui/fileinput.py +0 -0
  174. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/widgets/ui/layer_type_dialog.py +0 -0
  175. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/widgets/ui/menubar.py +0 -0
  176. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/widgets/ui/mode_indicator.py +0 -0
  177. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/widgets/ui/node_editor.py +0 -0
  178. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/widgets/ui/node_selector.py +0 -0
  179. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/widgets/ui/notification.py +0 -0
  180. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/widgets/ui/property_editor.py +0 -0
  181. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/widgets/ui/region_selector.py +0 -0
  182. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/widgets/ui/status_bar.py +0 -0
  183. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/widgets/ui/theme.py +0 -0
  184. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/widgets/ui/tileset_type_dialog.py +0 -0
  185. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/widgets/ui/toolbar.py +0 -0
  186. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/src/widgets/ui/tooltip.py +0 -0
  187. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/tests/test_animation_library_grid_offset.py +0 -0
  188. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/tests/test_collision_layer_mask.py +0 -0
  189. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/tests/test_collision_layer_sidebar.py +0 -0
  190. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/tests/test_editor_pan_mode.py +0 -0
  191. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/tests/test_project_paths.py +0 -0
  192. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/tests/test_render_scale.py +0 -0
  193. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/tests/test_sprite_animation_editor_grid.py +0 -0
  194. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/tests/test_tile_grid_selection.py +0 -0
  195. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/tests/test_tile_selector_pick.py +0 -0
  196. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/tests/test_tilemap_save.py +0 -0
  197. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/tests/test_timeline_invalidate_cache.py +0 -0
  198. {tilemap_editor-3.2.9 → tilemap_editor-3.2.10}/tests/test_toolbar_tools.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tilemap-editor
3
- Version: 3.2.9
3
+ Version: 3.2.10
4
4
  Summary: Pygame tilemap editor with SVG icons, professional UI, and sprite animation tools
5
5
  Author: tilemap editor contributors
6
6
  License: Proprietary
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "tilemap-editor"
7
- version = "3.2.9"
7
+ version = "3.2.10"
8
8
  description = "Pygame tilemap editor with SVG icons, professional UI, and sprite animation tools"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tilemap-editor
3
- Version: 3.2.9
3
+ Version: 3.2.10
4
4
  Summary: Pygame tilemap editor with SVG icons, professional UI, and sprite animation tools
5
5
  Author: tilemap editor contributors
6
6
  License: Proprietary
@@ -46,6 +46,10 @@ class TileSelector:
46
46
  x, y + self.top_bar_h, w, h - self.top_bar_h - self.btm_bar_h
47
47
  )
48
48
  self.tab_scroll_x = 0
49
+ arrow_h = self.top_bar_h - 4
50
+ arrow_y = y + (self.top_bar_h - arrow_h) // 2
51
+ self._tab_arrow_left = Rect(x + 2, arrow_y, 18, arrow_h)
52
+ self._tab_arrow_right = Rect(x + w - 20, arrow_y, 18, arrow_h)
49
53
  self.is_panning = False
50
54
  self.pan_start = (0, 0)
51
55
  self.pan_start_offset = (0, 0)
@@ -86,6 +90,10 @@ class TileSelector:
86
90
  self.btn_collision = Rect(x + w - 105, btn_y, 30, 30)
87
91
  self.btn_add = Rect(x + w - 70, btn_y, 30, 30)
88
92
  self.btn_rem = Rect(x + w - 35, btn_y, 30, 30)
93
+ arrow_h = self.top_bar_h - 4
94
+ arrow_y = y + (self.top_bar_h - arrow_h) // 2
95
+ self._tab_arrow_left = Rect(x + 2, arrow_y, 18, arrow_h)
96
+ self._tab_arrow_right = Rect(x + w - 20, arrow_y, 18, arrow_h)
89
97
 
90
98
  def set_rule_hints(self, hints: Set[int]):
91
99
  self.rule_hints = hints
@@ -179,6 +187,13 @@ class TileSelector:
179
187
  return True
180
188
 
181
189
  if self.rect.collidepoint(mouse_pos) and mouse_pos[1] < self.view_rect.top:
190
+ # Check arrow buttons first
191
+ if self._tab_arrow_left.collidepoint(mouse_pos):
192
+ self._scroll_tabs(100)
193
+ return True
194
+ if self._tab_arrow_right.collidepoint(mouse_pos):
195
+ self._scroll_tabs(-100)
196
+ return True
182
197
  self.check_tab_click(mouse_pos)
183
198
  return True
184
199
 
@@ -561,8 +576,8 @@ class TileSelector:
561
576
  def _get_tab_at_pos(self, pos) -> Optional[int]:
562
577
  if not self.tilesets:
563
578
  return None
564
- tab_w = min(100, self.rect.width // len(self.tilesets))
565
- idx = (pos[0] - self.rect.x) // tab_w
579
+ tab_w = 100
580
+ idx = (pos[0] - self.rect.x + self.tab_scroll_x) // tab_w
566
581
  if 0 <= idx < len(self.tilesets):
567
582
  return int(idx)
568
583
  return None
@@ -875,14 +890,19 @@ class TileSelector:
875
890
  clip = screen.get_clip()
876
891
  tab_area = Rect(self.rect.x, self.rect.y, self.rect.width, self.top_bar_h)
877
892
  screen.set_clip(tab_area)
893
+
894
+ pygame.draw.rect(screen, COLORS.header, tab_area)
895
+
878
896
  tab_w = 100
879
897
  total_w = tab_w * len(self.tilesets)
880
- if total_w > self.rect.width:
898
+ has_overflow = total_w > self.rect.width
899
+ if has_overflow:
881
900
  self.tab_scroll_x = max(
882
901
  0, min(self.tab_scroll_x, total_w - self.rect.width)
883
902
  )
884
903
  else:
885
904
  self.tab_scroll_x = 0
905
+
886
906
  for i, ts in enumerate(self.tilesets):
887
907
  r = Rect(
888
908
  self.rect.x + i * tab_w - self.tab_scroll_x,
@@ -895,13 +915,25 @@ class TileSelector:
895
915
  is_active = i == self.active_idx
896
916
  col = COLORS.selected if is_active else COLORS.header
897
917
  pygame.draw.rect(screen, col, r)
898
- pygame.draw.rect(screen, COLORS.border, r, 1)
918
+ if not is_active:
919
+ pygame.draw.line(screen, COLORS.border, r.bottomleft, r.bottomright, 1)
899
920
  t = ts.name[:8] + ".." if len(ts.name) > 10 else ts.name
900
921
  screen.blit(self.font.render(t, True, COLORS.text), (r.x + 5, r.y + 5))
901
- mx, my = pygame.mouse.get_pos()
902
- if r.collidepoint(mx, my):
903
- self.editor.tooltip.show(ts.name, (mx + 10, my + 10))
904
- if total_w > self.rect.width:
922
+
923
+ mx, my = pygame.mouse.get_pos()
924
+ show_arrows = has_overflow and tab_area.collidepoint(mx, my)
925
+
926
+ if show_arrows:
927
+ for arrow_rect, label in [
928
+ (self._tab_arrow_left, "<"),
929
+ (self._tab_arrow_right, ">"),
930
+ ]:
931
+ pygame.draw.rect(screen, COLORS.selected, arrow_rect)
932
+ pygame.draw.rect(screen, COLORS.border, arrow_rect, 1)
933
+ arrow_surf = self.font.render(label, True, COLORS.text)
934
+ arrow_rect_text = arrow_surf.get_rect(center=arrow_rect.center)
935
+ screen.blit(arrow_surf, arrow_rect_text)
936
+
905
937
  bar_w = max(30, int(self.rect.width * (self.rect.width / total_w)))
906
938
  bar_x = self.rect.x + int(
907
939
  (self.tab_scroll_x / (total_w - self.rect.width))
@@ -909,6 +941,20 @@ class TileSelector:
909
941
  )
910
942
  bar_rect = Rect(bar_x, self.rect.y + self.top_bar_h - 4, bar_w, 3)
911
943
  pygame.draw.rect(screen, COLORS.border_soft, bar_rect, border_radius=2)
944
+
945
+ # Tooltip for tab name
946
+ if tab_area.collidepoint(mx, my) and not (
947
+ show_arrows and (
948
+ self._tab_arrow_left.collidepoint(mx, my) or
949
+ self._tab_arrow_right.collidepoint(mx, my)
950
+ )
951
+ ):
952
+ idx = self._get_tab_at_pos((mx, my))
953
+ if idx is not None and 0 <= idx < len(self.tilesets):
954
+ self.editor.tooltip.show(
955
+ self.tilesets[idx].name, (mx + 10, my + 10)
956
+ )
957
+
912
958
  screen.set_clip(clip)
913
959
 
914
960
  def _scroll_tabs(self, delta: float):
File without changes