Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell/view/frame/MenuStrategy.py
blob: 314cb0471263b129c7ed16a2318dd03828c92a2e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class MenuStrategy:
	def get_menu_position(self, menu, grid_x1, grid_y1, grid_x2, grid_y2):
		grid = menu.get_grid()

		[x1, y1] = grid.micro_to_macro(grid_x1, grid_y1)
		[x2, y2] = grid.micro_to_macro(grid_x2, grid_y2)

		if x1 == 0:
			x = x2
			y = y1
		elif x2 == grid.get_macro_cols():
			x = x1
			y = y1
		elif y2 == grid.get_macro_rows():
			x = x1
			y = y1
		else:
			x = x1
			y = y2

		[grid_x, grid_y] = grid.macro_to_micro(x, y)

		if x2 == grid.get_macro_cols():
			grid_x -= menu.get_width()
		elif y2 == grid.get_macro_rows():
			grid_y -= menu.get_height()

		return [grid_x, grid_y]