batframework 1.0.8a1__py3-none-any.whl → 1.0.8a2__py3-none-any.whl

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 (63) hide show
  1. batFramework/__init__.py +50 -53
  2. batFramework/action.py +105 -116
  3. batFramework/actionContainer.py +11 -53
  4. batFramework/animatedSprite.py +65 -115
  5. batFramework/audioManager.py +26 -70
  6. batFramework/camera.py +68 -253
  7. batFramework/constants.py +54 -16
  8. batFramework/cutscene.py +25 -34
  9. batFramework/cutsceneBlocks.py +42 -37
  10. batFramework/debugger.py +48 -0
  11. batFramework/dynamicEntity.py +7 -9
  12. batFramework/easing.py +71 -0
  13. batFramework/entity.py +98 -42
  14. batFramework/gui/__init__.py +2 -8
  15. batFramework/gui/button.py +79 -7
  16. batFramework/gui/constraints.py +204 -0
  17. batFramework/gui/container.py +31 -155
  18. batFramework/gui/debugger.py +43 -124
  19. batFramework/gui/frame.py +19 -0
  20. batFramework/gui/image.py +17 -41
  21. batFramework/gui/indicator.py +21 -41
  22. batFramework/gui/interactiveWidget.py +13 -116
  23. batFramework/gui/label.py +73 -278
  24. batFramework/gui/layout.py +61 -148
  25. batFramework/gui/root.py +37 -102
  26. batFramework/gui/shape.py +57 -258
  27. batFramework/gui/toggle.py +46 -97
  28. batFramework/gui/widget.py +254 -268
  29. batFramework/manager.py +19 -40
  30. batFramework/particles.py +77 -0
  31. batFramework/scene.py +107 -214
  32. batFramework/sceneManager.py +107 -150
  33. batFramework/stateMachine.py +0 -1
  34. batFramework/time.py +57 -117
  35. batFramework/transition.py +126 -184
  36. batFramework/transitionManager.py +0 -0
  37. batFramework/utils.py +161 -34
  38. batframework-1.0.8a2.dist-info/METADATA +58 -0
  39. batframework-1.0.8a2.dist-info/RECORD +42 -0
  40. {batframework-1.0.8a1.dist-info → batframework-1.0.8a2.dist-info}/WHEEL +1 -1
  41. batFramework/easingController.py +0 -58
  42. batFramework/enums.py +0 -104
  43. batFramework/fontManager.py +0 -65
  44. batFramework/gui/clickableWidget.py +0 -206
  45. batFramework/gui/constraints/__init__.py +0 -1
  46. batFramework/gui/constraints/constraints.py +0 -378
  47. batFramework/gui/dialogueBox.py +0 -96
  48. batFramework/gui/draggableWidget.py +0 -38
  49. batFramework/gui/meter.py +0 -76
  50. batFramework/gui/radioButton.py +0 -62
  51. batFramework/gui/slider.py +0 -220
  52. batFramework/gui/textInput.py +0 -134
  53. batFramework/object.py +0 -115
  54. batFramework/particle.py +0 -101
  55. batFramework/renderGroup.py +0 -62
  56. batFramework/resourceManager.py +0 -84
  57. batFramework/scrollingSprite.py +0 -113
  58. batFramework/sprite.py +0 -45
  59. batFramework/tileset.py +0 -46
  60. batframework-1.0.8a1.dist-info/LICENCE +0 -21
  61. batframework-1.0.8a1.dist-info/METADATA +0 -55
  62. batframework-1.0.8a1.dist-info/RECORD +0 -56
  63. {batframework-1.0.8a1.dist-info → batframework-1.0.8a2.dist-info}/top_level.txt +0 -0
@@ -1,84 +0,0 @@
1
- import batFramework as bf
2
- import os
3
- import pygame
4
- import sys
5
- import json
6
- from .utils import Singleton
7
-
8
- if getattr(sys, "frozen", False):
9
- # If the application is run as a bundle, the PyInstaller bootloader
10
- # extends the sys module by a flag frozen=True and sets the app
11
- # path into variable _MEIPASS'.
12
- application_path = sys._MEIPASS
13
- else:
14
- application_path = os.getcwd()
15
-
16
-
17
- class ResourceManager(metaclass=Singleton):
18
- def __init__(self):
19
- self.convert_image_cache = {}
20
- self.convert_alpha_image_cache = {}
21
- self.sound_cache = {}
22
- self.RESOURCE_PATH = "."
23
-
24
- def load_dir(self, path) -> None:
25
- for root, dirs, files in os.walk(path):
26
- files = [f for f in files if not f[0] == "."]
27
- dirs[:] = [d for d in dirs if not d[0] == "."]
28
-
29
- for file in files:
30
- file_path = os.path.join(root, file)
31
- if file.lower().endswith((".png", ".jpg", ".jpeg", ".gif")):
32
- self.load_image(file_path)
33
- # print(f"Loaded image : '{file_path}'")
34
-
35
- elif file.lower().endswith((".mp3", ".wav")):
36
- bf.AudioManager().load_sound(file.lower().split(".")[0], file_path)
37
- # print(f"Loaded sound : '{file_path}'")
38
-
39
- elif file.lower().endswith((".ttf", ".otf")):
40
- bf.FontManager().load_font(file_path, file.lower().split(".")[0])
41
- # print(f"Loaded font : '{file_path}'")
42
-
43
- print(f"Loaded resources in directory : '{path}'")
44
-
45
- def set_resource_path(self, path: str):
46
- self.RESOURCE_PATH = os.path.join(application_path, path)
47
- print(f"Resource path : '{self.RESOURCE_PATH}'")
48
-
49
- def get_path(self, path: str) -> str:
50
- # Normalize path separators
51
- normalized_path = path.replace("/", os.sep).replace("\\", os.sep)
52
- return os.path.join(self.RESOURCE_PATH, normalized_path)
53
-
54
- def load_image(self, path) -> None:
55
- key = self.get_path(path)
56
- if key in self.convert_image_cache:
57
- return
58
- self.convert_image_cache[key] = pygame.image.load(path).convert()
59
- self.convert_alpha_image_cache[key] = pygame.image.load(path).convert_alpha()
60
-
61
- def get_image(self, path, convert_alpha: bool = False) -> pygame.Surface | None:
62
- key = self.get_path(path)
63
- return (
64
- self.convert_alpha_image_cache.get(key, None)
65
- if convert_alpha
66
- else self.convert_image_cache.get(key, None)
67
- )
68
-
69
- def load_json_from_file(self, path: str) -> dict | None:
70
- try:
71
- with open(self.get_path(path), "r") as file:
72
- data = json.load(file)
73
- return data
74
- except FileNotFoundError:
75
- print(f"File '{path}' not found")
76
- return None
77
-
78
- def save_json_to_file(self, path: str, data) -> bool:
79
- try:
80
- with open(self.get_path(path), "w") as file:
81
- json.dump(data, file, indent=2)
82
- return True
83
- except FileNotFoundError:
84
- return False
@@ -1,113 +0,0 @@
1
- from typing import Self, Iterator
2
- from pygame.math import Vector2
3
- import batFramework as bf
4
- import pygame
5
-
6
-
7
- class ScrollingSprite(bf.Sprite):
8
- def __init__(
9
- self,
10
- data: pygame.Surface | str,
11
- size: None | tuple[int, int] = None,
12
- convert_alpha: bool = True,
13
- ):
14
- self.scroll_value = Vector2(0, 0)
15
- self.auto_scroll = Vector2(0, 0)
16
-
17
- # Use integer values for the starting points, converted from floating point scroll values
18
-
19
- super().__init__(data, size, convert_alpha)
20
- self.original_width, self.original_height = self.original_surface.get_size()
21
-
22
- def get_debug_outlines(self):
23
- yield from super().get_debug_outlines()
24
- for r in self._get_mosaic_rect_list():
25
- yield r.move(*self.rect.topleft)
26
-
27
- def set_image(
28
- self, data: pygame.Surface | str, size: None | tuple[int, int] = None
29
- ) -> Self:
30
- super().set_image(data, size)
31
- self.original_width, self.original_height = self.original_surface.get_size()
32
- return self
33
-
34
- def set_autoscroll(self, x: float, y: float) -> Self:
35
- self.auto_scroll.update(x, y)
36
- return self
37
-
38
- def set_scroll(self, x: float = None, y: float = None) -> Self:
39
- self.scroll_value.update(
40
- x if x else self.scroll_value.x, y if y else self.scroll_value.y
41
- )
42
- return self
43
-
44
- def scroll(self, x: float, y: float) -> Self:
45
- self.scroll_value += x, y
46
- return self
47
-
48
- def update(self, dt: float) -> None:
49
- if self.auto_scroll:
50
- self.scroll(*self.auto_scroll * dt)
51
- original_width, original_height = self.original_surface.get_size()
52
-
53
- # Use integer values for the starting points, converted from floating point scroll values
54
-
55
- if self.scroll_value.x > self.original_width:
56
- self.scroll_value.x -= self.original_width
57
- if self.scroll_value.y > self.original_height:
58
- self.scroll_value.y -= self.original_height
59
-
60
- super().update(dt)
61
-
62
- def set_size(self, size: tuple[int | None, int | None]) -> Self:
63
- size = list(size)
64
- if size[0] is None: size[0] = self.rect.w
65
- if size[1] is None: size[1] = self.rect.h
66
-
67
- self.surface = pygame.Surface(size).convert_alpha()
68
- self.rect = self.surface.get_frect(center=self.rect.center)
69
- return self
70
-
71
- def _get_mosaic_rect_list(self) -> Iterator[pygame.Rect]:
72
- # Use integer values for the starting points, converted from floating point scroll values
73
- start_x = int(self.scroll_value.x % self.original_width)
74
- start_y = int(self.scroll_value.y % self.original_height)
75
-
76
- # Adjust start_x and start_y to begin tiling off-screen to the top-left, covering all visible area
77
- if start_x != 0:
78
- start_x -= self.original_width
79
- if start_y != 0:
80
- start_y -= self.original_height
81
-
82
- # Set the region in which to tile
83
- end_x = self.rect.w
84
- end_y = self.rect.h
85
-
86
- # Starting y_position for the inner loop
87
- y_position = start_y
88
-
89
- # if self.rect.w-1 < self.scroll_value.x < self.rect.w+1 : print(self.scroll_value.x,int(self.scroll_value.x % self.rect.w),start_x,self.rect.w,original_width)
90
- # Generate all necessary rectangles
91
- x = start_x
92
- while x < end_x:
93
- y = y_position
94
- while y < end_y:
95
- yield pygame.Rect(x, y, self.original_width, self.original_height)
96
- y += self.original_height
97
- x += self.original_width
98
- return self
99
-
100
- def draw(self, camera: bf.Camera) -> int:
101
- if not (
102
- self.visible
103
- and (self.surface is not None)
104
- and camera.rect.colliderect(self.rect)
105
- ):
106
- return 0
107
- self.surface.fill((0, 0, 0, 0))
108
- self.surface.fblits(
109
- [(self.original_surface, r) for r in self._get_mosaic_rect_list()]
110
- )
111
- # pygame.draw.rect(camera.surface,"green",next(self._get_mosaic_rect_list()).move(*self.rect.topleft),1)
112
- camera.surface.blit(self.surface, camera.world_to_screen(self.rect))
113
- return 1
batFramework/sprite.py DELETED
@@ -1,45 +0,0 @@
1
- import batFramework as bf
2
- import pygame
3
- from typing import Self
4
-
5
-
6
- class Sprite(bf.Entity):
7
- def __init__(
8
- self,
9
- path=None,
10
- size: None | tuple[int, int] = None,
11
- convert_alpha: bool = True,
12
- ):
13
- self.original_surface: pygame.Surface = None
14
-
15
- super().__init__(convert_alpha = convert_alpha)
16
- if path is not None:
17
- self.from_path(path)
18
- if size is not None and self.original_surface:
19
- self.set_size(self.original_surface.get_size())
20
-
21
-
22
- def set_size(self,size:tuple[float,float]) -> Self:
23
- if size == self.rect.size : return self
24
- self.rect.size = size
25
- self.surface = pygame.Surface((int(self.rect.w),int(self.rect.h)),self.surface_flags)
26
- if self.convert_alpha : self.surface = self.surface.convert_alpha()
27
- self.surface.fill((0,0,0,0 if self.convert_alpha else 255))
28
- self.surface.blit(pygame.transform.scale(self.original_surface,self.rect.size),(0,0))
29
- return self
30
-
31
- def from_path(self,path:str)->Self:
32
- tmp = bf.ResourceManager().get_image(path,self.convert_alpha)
33
- if tmp is None:
34
- return self
35
- self.original_surface = tmp
36
- size = self.original_surface.get_size()
37
- self.set_size(size)
38
- return self
39
-
40
- def from_surface(self,surface: pygame.Surface)->Self:
41
- if surface is None : return self
42
- self.original_surface = surface
43
- size = self.original_surface.get_size()
44
- self.set_size(size)
45
- return self
batFramework/tileset.py DELETED
@@ -1,46 +0,0 @@
1
- import pygame
2
- from .resourceManager import ResourceManager
3
- import batFramework as bf
4
-
5
-
6
-
7
- class Tileset:
8
- def __init__(self, source: pygame.Surface, tilesize: tuple[int, int]) -> None:
9
- self.surface = source
10
- self.tile_size = tilesize
11
- self.tile_width = source.get_width() // tilesize[0]
12
- self.tile_height = source.get_height() // tilesize[1]
13
- # Create flipped versions of the tileset surface
14
- self.flipped_surfaces = {
15
- (False, False): self.surface,
16
- (False, True): pygame.transform.flip(self.surface, False, True),
17
- (True, False): pygame.transform.flip(self.surface, True, False),
18
- (True, True): pygame.transform.flip(self.surface, True, True),
19
- }
20
-
21
- # Split each of the surfaces into tiles
22
- self.tile_dict = {}
23
- for flip_state, surf in self.flipped_surfaces.items():
24
- tiles = bf.utils.split_surface(surf, self.tile_size)
25
- for coord, tile in tiles.items():
26
- if coord not in self.tile_dict:
27
- self.tile_dict[coord] = {}
28
- self.tile_dict[coord][flip_state] = tile
29
-
30
-
31
- def __str__(self)->str:
32
- num_tiles = 0
33
- if self.tile_dict:
34
- num_tiles = len(self.tile_dict.values())
35
- return f"{num_tiles} tiles | Tile size : {self.tile_size}"
36
-
37
- def get_tile(self, x, y, flipX=False, flipY=False) -> pygame.Surface | None:
38
-
39
- if flipX:
40
- x = self.tile_width - 1 - x
41
- if flipY:
42
- y = self.tile_height - 1 - y
43
- tile_data = self.tile_dict.get((x, y), None)
44
- if tile_data is None:
45
- return None
46
- return tile_data.get((flipX, flipY), None)
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) [2023] [TURAN BATURAY]
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
@@ -1,55 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: batframework
3
- Version: 1.0.8a1
4
- Summary: Pygame framework for making games easier.
5
- Author-email: Turan Baturay <baturayturan@gmail.com>
6
- Project-URL: Homepage, https://github.com/TuranBaturay/batFramework
7
- Classifier: Programming Language :: Python :: 3
8
- Classifier: License :: OSI Approved :: MIT License
9
- Classifier: Operating System :: OS Independent
10
- Requires-Python: >=3.11
11
- Description-Content-Type: text/markdown
12
- License-File: LICENCE
13
- Requires-Dist: pygame-ce
14
-
15
- # batFramework & gamejam Project
16
-
17
- Welcome to the `batFramework` and the accompanying `gamejam` project. This README provides an overview of both the game framework and the specific game project developed using the framework.
18
-
19
- ## batFramework
20
-
21
- The `batFramework` is a Python game development framework based on pygame, designed to streamline the process of creating 2D games. It provides a set of tools and components to handle scenes, transitions, cutscenes, audio, sprites, and more. The framework is built with flexibility in mind, allowing you to focus on game design while abstracting away low-level details.
22
-
23
- ### Features
24
-
25
- - Scene management
26
- - Cutscene support
27
- - Audio management (music and sound effects with volume control)
28
- - Entity, sprite, and animated sprite handling
29
- - Transition effects
30
- - Utility modules (time management, constants, etc.)
31
- - No external dependency except for pygame
32
-
33
- ### Explore batFramework
34
-
35
- 1. Install Python (version 3.11 or higher) and the latest stable version of pygame-ce.
36
- 2. Clone or download this repository.
37
- 4. Explore the framework's modules in the `batFramework` directory and integrate them into your own game project.
38
-
39
- For more detailed information on how to use the framework, refer to the documentation (if available) or explore the source code in the `batFramework` directory.
40
-
41
- ## gamejam Project
42
-
43
- The `gamejam` project is a specific game developed using the `batFramework`. It serves as an example of how the framework can be used to create a game from scratch.
44
-
45
- ### Play the gamejam Project
46
-
47
- 1. Install Python (version 3.10 or higher) and the latest stable version of pygame-ce.
48
- 2. Clone or download this repository.
49
- 3. Navigate to the `gamejam` directory.
50
- 4. Run the game by executing the main script (e.g., `python main.py`).
51
- 5. Play the game and have fun!
52
-
53
- Feel free to explore the code in the `gamejam` directory to see how the `batFramework` is utilized to create the game. You can modify, extend, or use the project as a starting point for your own games.
54
-
55
-
@@ -1,56 +0,0 @@
1
- batFramework/__init__.py,sha256=5KS96Y0uDx8sue3NyDl2HTFh-CqEZc9otmnUXRCHXws,2189
2
- batFramework/action.py,sha256=vVr4LjlIHnA6I1_OM6IXM8DGCeruDcdHLIU9pfrQy3Q,7950
3
- batFramework/actionContainer.py,sha256=TVmfyBYILCkAKUnNsCIIaCXezffNZ_VK5H207ab1r3I,2587
4
- batFramework/animatedSprite.py,sha256=1KmhUCX8q2JTyOr0ClLovJ21i6c2SkllTtqygmDSZvo,5168
5
- batFramework/audioManager.py,sha256=BxSWDYqYy3IgNA9sBaJFspdjcUJWudBSV0OpCNR92Is,3886
6
- batFramework/camera.py,sha256=ZgASlCwXGDU8-hljAz5WlVU3v4XPQ5mU0--kaOsRun0,9331
7
- batFramework/constants.py,sha256=5PyZQZ4fCcLA8k_Upby9KGVF-3pnV2ZZ6t26CxiocPM,1102
8
- batFramework/cutscene.py,sha256=WX2yXawR3NjL8db09SsRXtJtdJU_xlcHYtntRcJhtKs,3896
9
- batFramework/cutsceneBlocks.py,sha256=Uezggx1XgmLvXW1GnuVkGj3tOM8AOxXYx1F9nFGvL-w,4788
10
- batFramework/dynamicEntity.py,sha256=zp5ShM6fQ-a_hXTHA6UthbInfJl2XazsN6C2hll9nK8,665
11
- batFramework/easingController.py,sha256=4N8GIp1fsaWBUlDxXx3SMwOq1Mrhn10MZZIO51_CRnk,1677
12
- batFramework/entity.py,sha256=L3koW9q35Dpwsz9h9YWMuGal4PkowqsWklKZpZj7hM8,2003
13
- batFramework/enums.py,sha256=lywBwvxsUTOXUhHCoau5P9LC9UNIx_E6hjvx3Zba-iw,2069
14
- batFramework/fontManager.py,sha256=_pVcTmf1c42HPHfWZwvkEsAY46MljsTYFvl6h4f7Q8E,2240
15
- batFramework/manager.py,sha256=YRKKv5qWVUs7D8ZqP8ZkfUeTCc3lHxfCfJSYdO5Ep8A,2375
16
- batFramework/object.py,sha256=ErR1XxqIlI5jv_kZnDrt3jkyRZSba3aVGuMBNwExIq0,3045
17
- batFramework/particle.py,sha256=yGGKjGtwzL-m48akGNsReLM82IPV1DzrsDy5SN_kMAw,2672
18
- batFramework/renderGroup.py,sha256=DZCtO6cRO4qkIcVACexvitIcAaPdW6PZFhQX7XYUIeo,1979
19
- batFramework/resourceManager.py,sha256=8ysiVDMVRKOGo_kNRH2BiqiUj07kddgi04iNcTt9T-Q,3094
20
- batFramework/scene.py,sha256=66Xoy-7mq6WuFzAiJXicspbo0xH_ZbL_idYZuyV8wL4,10543
21
- batFramework/sceneManager.py,sha256=hTqn_RCken49oDg21ZVybk0wwgmw693CgSiAB_4Oj9E,7053
22
- batFramework/scrollingSprite.py,sha256=vNPWJV6QOf-wbuAgv-eLv1kiaOZiXt_2pqt6EEfg2Vk,4159
23
- batFramework/sprite.py,sha256=nSfdhn6oH6Zm2y9XyzBR1vPlHrPiyLIqBds9sxy0jVA,1543
24
- batFramework/stateMachine.py,sha256=er7WB7I4V81jgUrd-9ftfyYczKpPsEbgdWRXzYl6e9k,1339
25
- batFramework/tileset.py,sha256=Iu32btkBs0_kkQjN5FKX76WmRnEIQGDY4OfoaOtGelc,1704
26
- batFramework/time.py,sha256=IGRIY_g9kpdJxR5wt1lOnLsY9gMReuBJZqnpWRyR-CQ,3963
27
- batFramework/transition.py,sha256=ioxT5KQQmgSY5yPXDV1CEAj6J_62D6YVU5NUk_Fude0,6442
28
- batFramework/triggerZone.py,sha256=ikOOlJT1KIND0MO2xiilCHuKlb1eQhkCMEhZTi1btsI,586
29
- batFramework/utils.py,sha256=GZMWNhkOcCuvmfTHVAbrXttU9LrwEdCp-kKM-2t2L08,1718
30
- batFramework/gui/__init__.py,sha256=__IMtrybY8qFKvvv9lEEra2wLzfbDrDPyJucnc8q4zo,622
31
- batFramework/gui/button.py,sha256=W5mKG-41F3J6hjrqhoTIRXyWPMk7hxFWK_g_XgjFfdU,354
32
- batFramework/gui/clickableWidget.py,sha256=pG2UAGYATDH6ugEexiCL_XYstCaCVcNm4nwGwLk0QpU,6810
33
- batFramework/gui/container.py,sha256=k3ExxMiJzhzdCVzhdvupJhB7LiALt5HbCUjlSFdeNVM,5315
34
- batFramework/gui/debugger.py,sha256=1_QlUF1YRQqNSyM3UtLkYzjOL5iXkwg4PD3tVYF4--Q,3921
35
- batFramework/gui/dialogueBox.py,sha256=8nHGlhznO2WL8pQilH0lzlAIMpnKGRSCaYPJrsoj1xk,3172
36
- batFramework/gui/draggableWidget.py,sha256=iAZ1gGELOG5dmuA01SW8qw-hE4VdYQGQfDpuPqrood0,1358
37
- batFramework/gui/image.py,sha256=fSyRaJH1D_yCohk-b7ZWl_eZ1o8uULjDQG1gCk3fofc,1513
38
- batFramework/gui/indicator.py,sha256=Q_vbkHbTODwrk0WUytygnuHdXdqlORKBEfh_4DjRT4o,1561
39
- batFramework/gui/interactiveWidget.py,sha256=-X9aCFOtwG7EdOdooH6QzcxiZGavyCIhavZoijLxJBU,3317
40
- batFramework/gui/label.py,sha256=0NqzBQ_lBWnBgMuiFa4jnGEpWt6v8WllKC5N5EC34EA,10525
41
- batFramework/gui/layout.py,sha256=mcYbXbQQmOqjGVWSb6PXAaPBBkYcod5B4fCl4aYIhoc,6201
42
- batFramework/gui/meter.py,sha256=F8xVvFopIoqCQn0Qyj1LgSCAEupXdWOzZtcsIZ74UuY,2321
43
- batFramework/gui/radioButton.py,sha256=ORfV242Iadn86y2uKzSFOhOWZIpnT2_Idn6ACGF8vcA,1976
44
- batFramework/gui/root.py,sha256=_WtCwY3J51MdUDEVZc-grGJflDH959uApxVxiiSU8MM,4122
45
- batFramework/gui/shape.py,sha256=54rFVur9xXc0v_0r3JNc9XAJJ92U0N0Ei3YBYFeCFkU,9702
46
- batFramework/gui/slider.py,sha256=g0hfzxunLV5W-R39DT08__72pq1hzZSdKwaRDx1-Rmg,8199
47
- batFramework/gui/textInput.py,sha256=SWJMvhtqKhGEDL2xlvfNehaz4DhHnJGUQ7FBp7jheTI,4569
48
- batFramework/gui/toggle.py,sha256=UVBdRixgJwo4FsgWCitrIDrtc9ECa4u_ulPAqjHSGeo,4251
49
- batFramework/gui/widget.py,sha256=9LYsSHy8FhzKyikDZG84cQdW9LMctaBIRDMXinZ9eWQ,11154
50
- batFramework/gui/constraints/__init__.py,sha256=qqXE8nnSrEvCSeHdqY8UYPZLetqdubFPI7IdZuh35QE,26
51
- batFramework/gui/constraints/constraints.py,sha256=TShcFnelbmNKWAJnpxAbLyKC6qMllo54fWjQPUbbvIs,13756
52
- batframework-1.0.8a1.dist-info/LICENCE,sha256=A65iXbMDbOxQLDNOODJLqA7o5RxszYlEqIgNSzBQRf4,1073
53
- batframework-1.0.8a1.dist-info/METADATA,sha256=yavYY6taCina5Brp4PEQVHp8k4tRu_WrDw5Cb-n1oAo,2501
54
- batframework-1.0.8a1.dist-info/WHEEL,sha256=cpQTJ5IWu9CdaPViMhC9YzF8gZuS5-vlfoFihTBC86A,91
55
- batframework-1.0.8a1.dist-info/top_level.txt,sha256=vxAKBIk1oparFTxeXGBrgfIO7iq_YR5Fv1JvPVAIwmA,13
56
- batframework-1.0.8a1.dist-info/RECORD,,