Esempio n. 1
0
def Rectangle_wide_test():
    rect = Rectangle()
    rect.setSize(1500, 844)
    ok_(rect.isWide())

    rect2 = Rectangle()
    rect2.setSize(1920, 1080)
    ok_(rect2.isWide())
Esempio n. 2
0
def Rectangle_square_test():
    rect = Rectangle()
    rect.setSize(1024, 768)
    ok_(rect.isSquare())

    rect2 = Rectangle()
    rect2.setSize(1280, 1024)
    ok_(rect2.isSquare())
Esempio n. 3
0
def Rectangle_containsPlusMergin_test():
    rect1 = Rectangle()
    rect2 = Rectangle()

    rect1.setSize(1910, 1070)
    rect2.setSize(1920, 1080)

    ok_(rect2.containsPlusMergin(rect1, (5, 5, 5, 5)))
    ok_(not rect1.containsPlusMergin(rect2, (10, 10, 0, 0)))
Esempio n. 4
0
def Rectangle_contains_test():
    rect1 = Rectangle()
    rect2 = Rectangle()

    rect1.setSize(1024, 768)
    rect2.setSize(1920, 1080)

    ok_(rect2.contains(rect1))
    ok_(not rect1.contains(rect2))
Esempio n. 5
0
def Rectangle_init_test():
    rect1 = Rectangle()
    rect2 = Rectangle()
    rect1.setSize(1024, 768)
    rect2.setSize(1920, 1080)
    eq_(rect1.getSize().w, 1024)
    eq_(rect1.getSize().h, 768)
    eq_(rect2.getSize().w, 1920)
    eq_(rect2.getSize().h, 1080)
Esempio n. 6
0
 def __init__(self, path='', color='black', w=5, h=5):
     Rectangle.__init__(self)
     if path == '':
         mode = 'RGB'
         size = (w, h)
         self._img = Image.new(mode, size, color)
     else:
         try:
             self._img = Image.open(path)
         except:
             raise ImgFile.ImgFileIOError('Cannot load Imgfile [%s]' % path)
     #Rectangle Method
     self.setSize(self._img.size[0], self._img.size[1])
Esempio n. 7
0
    def __init__(self):
        Rectangle.__init__(self)
        self.lScreen = Rectangle()
        self.rScreen = Rectangle()
        self.lScreen.setSize(0, 0)  # Rectangle Method
        self.rScreen.setSize(0, 0)  # Rectangle Method
        setattr(self.lScreen, 'depth', 24)
        setattr(self.rScreen, 'depth', 24)

        xdpyinfo = '/usr/bin/xdpyinfo'
        if not os.path.exists(xdpyinfo):
            raise WorkSpace.WorkSpaceRuntimeError(
                'xdpyinfo not installed [%s]' % xdpyinfo)
        dimensions = (subprocess.Popen(
            ["grep", "dimensions"],
            stdin=subprocess.Popen([xdpyinfo], stdout=subprocess.PIPE).stdout,
            stdout=subprocess.PIPE).communicate()[0].rstrip()).splitlines()
        depths = (subprocess.Popen(
            ["grep", "depth of root window"],
            stdin=subprocess.Popen([xdpyinfo], stdout=subprocess.PIPE).stdout,
            stdout=subprocess.PIPE).communicate()[0].rstrip()).splitlines()

        #"  dimensions:    3200x1080 pixels (856x292 millimeters)"
        for i, dimension in enumerate(dimensions):
            ptn = re.compile('[\s]+|x')
            subStr = ptn.split(dimension)
            if i == 0:
                self.lScreen.setSize(int(subStr[2]), int(subStr[3]))
            else:
                self.rScreen.setSize(int(subStr[2]), int(subStr[3]))

        for i, depth in enumerate(depths):
            ptn = re.compile('[\s]')
            subStr = ptn.split(depth)
            if i == 0:
                self.lScreen.depth = int(subStr[9])
            else:
                self.rScreen.depth = int(subStr[9])

        if len(dimensions) > 1:
            setattr(self, 'separate', True)
            # とりあえず左画面サイズをWorkSpaceのサイズに
            self.setSize(
                self.lScreen.Size.w,
                self.lScreen.Size.h)  # Rectangle Method
        else:
            setattr(self, 'separate', False)
            if self.lScreen.Size.h > self.rScreen.Size.h:
                h = self.lScreen.Size.h
            else:
                h = self.rScreen.Size.h
            self.setSize(
                self.lScreen.Size.w + self.rScreen.Size.w,
                h)  # Rectangle Method
Esempio n. 8
0
class WorkSpace(Rectangle):
    class WorkSpaceRuntimeError(Exception):
        def __init__(self, msg):
            self.value = msg

        def __str__(self):
            return repr(self.value)

    def getScreenSize(self):
        return (
            (self.lScreen.Size.w, self.lScreen.Size.h),
            (self.rScreen.Size.w, self.rScreen.Size.h)
        )

    def getDepth(self):
        return self.lScreen.depth

    def isSeparate(self):
        return self.separate

    #!	Twinview時に、各スクリーンサイズがxdyinfoでは取れないのでやはり必要
    def setScreenSize(self, lDisplay, rDisplay):
        self.lScreen.setSize(lDisplay[0], lDisplay[1])
        self.rScreen.setSize(rDisplay[0], rDisplay[1])

    def compareToScreen(self):
        if self.Size.w < (self.lScreen.Size.w + self.rScreen.Size.w):
            return False
        if self.Size.h > self.lScreen.Size.h:
            setattr(self.lScreen.Size, 'islessThanWorkSpaceHeight', True)
        elif self.Size.h > self.rScreen.Size.h:
            setattr(self.rScreen.Size, 'islessThanWorkSpaceHeight', True)
        else:
            pass
        return True

    def setAttrScreenBool(self, lBool, rBool):
        setattr(self.lScreen, 'bSetting', lBool)
        setattr(self.rScreen, 'bSetting', rBool)

    def setAttrScreenType(self):
        if self.lScreen.isSquare():
            setattr(self.lScreen, 'displayType', 'square')
        if self.lScreen.isWide():
            setattr(self.lScreen, 'displayType', 'wide')
        if self.rScreen.isSquare():
            setattr(self.rScreen, 'displayType', 'square')
        if self.rScreen.isWide():
            setattr(self.rScreen, 'displayType', 'wide')
        if (
                (
                    not self.separate and
                    not self.lScreen.bSetting and
                    not self.rScreen.bSetting
                ) or (self.separate and not self.lScreen.bSetting)
        ):
            raise WorkSpace.WorkSpaceRuntimeError(
                'Screen definition is not valid.')

    def __init__(self):
        Rectangle.__init__(self)
        self.lScreen = Rectangle()
        self.rScreen = Rectangle()
        self.lScreen.setSize(0, 0)  # Rectangle Method
        self.rScreen.setSize(0, 0)  # Rectangle Method
        setattr(self.lScreen, 'depth', 24)
        setattr(self.rScreen, 'depth', 24)

        xdpyinfo = '/usr/bin/xdpyinfo'
        if not os.path.exists(xdpyinfo):
            raise WorkSpace.WorkSpaceRuntimeError(
                'xdpyinfo not installed [%s]' % xdpyinfo)
        dimensions = (subprocess.Popen(
            ["grep", "dimensions"],
            stdin=subprocess.Popen([xdpyinfo], stdout=subprocess.PIPE).stdout,
            stdout=subprocess.PIPE).communicate()[0].rstrip()).splitlines()
        depths = (subprocess.Popen(
            ["grep", "depth of root window"],
            stdin=subprocess.Popen([xdpyinfo], stdout=subprocess.PIPE).stdout,
            stdout=subprocess.PIPE).communicate()[0].rstrip()).splitlines()

        #"  dimensions:    3200x1080 pixels (856x292 millimeters)"
        for i, dimension in enumerate(dimensions):
            ptn = re.compile('[\s]+|x')
            subStr = ptn.split(dimension)
            if i == 0:
                self.lScreen.setSize(int(subStr[2]), int(subStr[3]))
            else:
                self.rScreen.setSize(int(subStr[2]), int(subStr[3]))

        for i, depth in enumerate(depths):
            ptn = re.compile('[\s]')
            subStr = ptn.split(depth)
            if i == 0:
                self.lScreen.depth = int(subStr[9])
            else:
                self.rScreen.depth = int(subStr[9])

        if len(dimensions) > 1:
            setattr(self, 'separate', True)
            # とりあえず左画面サイズをWorkSpaceのサイズに
            self.setSize(
                self.lScreen.Size.w,
                self.lScreen.Size.h)  # Rectangle Method
        else:
            setattr(self, 'separate', False)
            if self.lScreen.Size.h > self.rScreen.Size.h:
                h = self.lScreen.Size.h
            else:
                h = self.rScreen.Size.h
            self.setSize(
                self.lScreen.Size.w + self.rScreen.Size.w,
                h)  # Rectangle Method
Esempio n. 9
0
def Rectangle_isXXX_as_sizeZero_test():
    rect = Rectangle()
    rect.setSize(0, 0)
    eq_(rect.isSquare(), False)
    eq_(rect.isWide(), False)
    eq_(rect.isDual(), False)
Esempio n. 10
0
def extends_Bounds_test():
    rect1 = Rectangle()
    rect2 = Rectangle()

    rect1.setSize(1024, 768)
    rect2.setSize(1920, 1080)

    eq_(rect1.getWidth(), 1024)
    eq_(rect1.getHeight(), 768)
    eq_(rect2.getWidth(), 1920)
    eq_(rect2.getHeight(), 1080)

    eq_(rect1.Size.w, 1024)
    eq_(rect1.Size.h, 768)
    eq_(rect2.Size.w, 1920)
    eq_(rect2.Size.h, 1080)

    rect1.calcCenter()
    eq_(rect1.center.x, 512)
    eq_(rect1.center.y, 384)
    rect2.calcCenter()
    eq_(rect2.center.x, 960)
    eq_(rect2.center.y, 540)
Esempio n. 11
0
def Rectangle_AspectNoMatch_test():
    rect = Rectangle()
    rect.setSize(1152, 768)
    eq_(rect.isSquare(), False)
Esempio n. 12
0
def Rectangle_dual_test():
    rect = Rectangle()
    rect.setSize(3200, 1080)
    ok_(rect.isDual())