def is_swt_tableitem_visible(swt_table_obj, row, column, check_fully_visible):
row_obj = waitForObjectItem(swt_table_obj, "%s/%s" % (row, column)).item
cell_bounds = row_obj.getBounds(column)
table_bounds = swt_table_obj.bounds
x_ok = table_bounds.width >= cell_bounds.x
y_ok = table_bounds.height >= cell_bounds.y
top_left_visible = x_ok and y_ok
width_ok = table_bounds.width >= cell_bounds.x + cell_bounds.width
height_ok = table_bounds.height >= cell_bounds.y + cell_bounds.height
bottom_right_visible = width_ok and height_ok
if check_fully_visible:
return top_left_visible and bottom_right_visible
return top_left_visible or bottom_right_visible
def is_swt_tableitem_fully_visible(swt_table_obj, row, column):
return is_swt_tableitem_visible(swt_table_obj, row, column, True)
def is_swt_tableitem_partially_visible(swt_table_obj, row, column):
return is_swt_tableitem_visible(swt_table_obj, row, column, False)
import names
def main():
# ...
t = waitForObject(names.Table_Table)
test.log("Partially visible? 0/0: %s" % is_swt_tableitem_partially_visible(t, 0, 0))
test.log("Fully visible? 0/0: %s" % is_swt_tableitem_fully_visible(t, 0, 0))