예제 #1
0
        Pipeline(
            ConsoleReader(),
            InterpreterTransformer(),
            ConsoleEchoer(),
        ).run()


#FILE: Server Embeddable
    if 0:
        from Kamaelia.Chassis.ConnectedServer import ServerCore
        from Kamaelia.Util.PureTransformer import PureTransformer

        def NetInterpreter(*args, **argv):
            return Pipeline(
                        PureTransformer(lambda x: str(x).rstrip()),
                        InterpreterTransformer(),
                        PureTransformer(lambda x: str(x)+"\r\n>>> "),
                   )

        ServerCore(protocol=NetInterpreter, port=1236).run()


#FILE: Pygame Embeddable
    if 1:
        from Kamaelia.UI.Pygame.Text import Textbox, TextDisplayer
        Pipeline(
            Textbox(size = (800, 300), position = (100,380)),
            InterpreterTransformer(),
            TextDisplayer(size = (800, 300), position = (100,40)),
        ).run()
class TimedLineSender(Axon.ThreadedComponent.threadedcomponent):
    text = """\
            To be, or not to be: that is the question:
            Whether 'tis nobler in the mind to suffer
            The slings and arrows of outrageous fortune,
            Or to take arms against a sea of troubles,
            And by opposing end them? To die: to sleep;
            No more; and by a sleep to say we end
            The heart-ache and the thousand natural shocks That flesh is heir to, 'tis a consummation Devoutly to be wish'd. To die, to sleep;
            To sleep: perchance to dream: ay, there's the rub;
            For in that sleep of death what dreams may come
            When we have shuffled off this mortal coil,
            Must give us pause: there's the respect
            That makes calamity of so long life;
            """
    strip_leading = True
    debug = True
    delay = 0.5

    def main(self):
        lines = self.text.split('\n')
        for line in lines:
            if self.strip_leading:
                line = line.lstrip()
            time.sleep(self.delay)
            self.send(line)  # remove preding spaces
        self.send(producerFinished(), 'signal')


Pipeline(TimedLineSender(), TextDisplayer()).run()
예제 #3
0
파일: Core.py 프로젝트: thangduong/kamaelia
    def main(self):
        """Main event loop, also handles input from other components"""
        displayservice = PygameDisplay.getDisplayService()
        self.link((self, "display_signal"), displayservice)

        self.send(self.disprequest, "display_signal")

        for _ in self.waitBox("callback"):
            yield 1
        self.display = self.recv("callback")
        self.layers.append(self.display)

        #    f = os.path.join('', "pennyarcade.gif")
        #    x = pygame.image.load(f)
        #    colorkey = x.get_at((0, 0))
        #    if colorkey is True:
        #        x.set_colorkey(colorkey, pygame.RLEACCEL)
        #    self.layers.append(x)
        #    self.display = x
        #    self.activeLayIn = len(self.layers)-1
        #    self.activeLayer = self.layers[self.activeLayIn]
        #    self.display.blit( x, (0,0) )

        layerDisp = TextDisplayer(size=(20, 20), position=(520, 10)).activate()
        self.link((self, "laynum"), (layerDisp, "inbox"))
        self.send(
            {
                "ADDLISTENEVENT": pygame.MOUSEBUTTONDOWN,
                "surface": self.display
            }, "display_signal")

        self.send(
            {
                "ADDLISTENEVENT": pygame.MOUSEBUTTONUP,
                "surface": self.display
            }, "display_signal")

        self.send(
            {
                "ADDLISTENEVENT": pygame.MOUSEMOTION,
                "surface": self.display
            }, "display_signal")

        self.send({
            "ADDLISTENEVENT": pygame.KEYDOWN,
            "surface": self.display
        }, "display_signal")
        self.activeLayer = self.layers[self.activeLayIn]
        self.send(self.activeLayIn, "laynum")
        image = pygame.Surface((20, 20))
        pygame.draw.circle(image, (1, 1, 1), (10, 10), self.toolSize, 0)
        # pygame.draw.circle(image, self.selectedColour, (10, 10), 8, 2)
        image.set_at((9, 9), (255, 255, 255))
        image.set_colorkey(0, pygame.RLEACCEL)
        cursor = GfxCursor(self.display, image, (10, 10))

        self.drawBG(True)
        self.blitToSurface()
        FPS = 1
        clock = Clock(float(1) / FPS).activate()
        clock.link((clock, "outbox"), (self, "newframe"))

        done = False
        while not done:
            dirtyrects = []
            dirtyrects.extend([cursor.hide()])
            if not self.anyReady():
                self.pause()
            yield 1
            while self.dataReady("control"):
                cmsg = self.recv("control")
                if isinstance(cmsg, producerFinished) or isinstance(
                        cmsg, shutdownMicroprocess):
                    self.send(cmsg, "signal")
                    done = True
            while self.dataReady("newframe") and self.playing:
                self.recv("newframe")
                if self.currentFrame != 0:
                    self.layers[self.currentFrame].set_alpha(0)
                self.currentFrame = self.currentFrame + 1
                if self.currentFrame == len(self.layers) - 1:
                    self.playing = False
                self.layers[self.currentFrame].set_alpha(255)
                self.blitToSurface()

            while self.dataReady("inbox"):
                for event in self.recv("inbox"):
                    if isinstance(event, tuple):
                        self.send((event, ), "outbox")
                        if event[0] == "Layer":
                            if event[1] == "Add":
                                yield WaitComplete(self.addLayer())
                                self.activeLayIn = len(self.layers) - 1
                                self.activeLayer = self.layers[
                                    self.activeLayIn]
                                self.drawBG()
                                if self.animator and len(self.layers) - 2 >= 1:
                                    for x in self.layers:
                                        s.set_alpha = 0
                                    self.activeLayer.blit(
                                        self.layers[len(self.layers) - 2],
                                        (0, 0))
                                self.blitToSurface()
                            elif event[1] == "Delete":
                                self.send(
                                    producerFinished(message=self.activeLayer),
                                    "display_signal")
                                self.layers.remove(self.activeLayer)
                                self.activeLayIn = 0
                                self.activeLayer = self.layers[
                                    self.activeLayIn]
                            #  print (self.layers)
                            if event[1] == "Next":
                                if self.animator and self.activeLayIn != 0:
                                    self.activeLayer.set_alpha(0)
                                if self.activeLayIn == len(self.layers) - 1:
                                    self.activeLayIn = 0
                                    self.activeLayer = self.layers[
                                        self.activeLayIn]
                                else:
                                    self.activeLayIn += 1
                                    self.activeLayer = self.layers[
                                        self.activeLayIn]
                                if self.animator:
                                    self.activeLayer.set_alpha(255)
                            elif event[1] == "Prev":
                                if self.animator and self.activeLayIn != 0:
                                    self.activeLayer.set_alpha(0)
                                if self.activeLayIn == 0:
                                    self.activeLayIn = len(self.layers) - 1
                                    self.activeLayer = self.layers[
                                        self.activeLayIn]
                                else:
                                    self.activeLayIn -= 1
                                    self.activeLayer = self.layers[
                                        self.activeLayIn]
                                if self.animator:
                                    self.activeLayer.set_alpha(255)
                            self.send(self.activeLayIn, "laynum")
                        elif event[0] == "Tool":
                            self.tool = event[1]
                        elif event[0] == "Size":
                            self.toolSize = event[1] / 3
                            pygame.draw.circle(image, self.selectedColour,
                                               (10, 10), self.toolSize / 3, 0)
                            image.set_at((9, 9), (255, 255, 255))
                            image.set_colorkey(0, pygame.RLEACCEL)
                            cursor = GfxCursor(self.display, image, (10, 10))
                        elif event[0] == "Alpha":
                            self.layers[self.activeLayIn].set_alpha(event[1])
                            self.blitToSurface()
                        #  print (self.activeLayer.get_alpha())
                        elif event[0] == 'Colour':
                            self.selectedColour = event[1]
                            pygame.draw.circle(image, self.selectedColour,
                                               (10, 10), self.toolSize / 3, 0)
                            image.set_at((9, 9), (255, 255, 255))
                            image.set_colorkey(0, pygame.RLEACCEL)
                            cursor = GfxCursor(self.display, image, (10, 10))
                        elif event[0] == 'Save':
                            self.save(event[1])
                        break
                    if event.type == pygame.MOUSEBUTTONDOWN:
                        cursor.disable()
                        if self.tool == "Circle":
                            if event.button == 1:
                                self.oldpos = event.pos
                                self.drawing = True
                        if self.tool == "Eraser":
                            self.selectedColour = self.backgroundColour
                            self.tool = "Line"
                        if self.tool == "Line":
                            if event.button == 1:
                                self.drawing = True
                        if self.tool == "Bucket":
                            self.floodFill(event.pos[0], event.pos[1],
                                           self.selectedColour,
                                           self.activeLayer.get_at(event.pos))
                        if self.tool == "Eyedropper":
                            self.selectedColour = self.activeLayer.get_at(
                                event.pos)
                        if event.button == 3:
                            self.addLayer()
                            #self.oldpos = None
                            #self.drawBG()
                            #self.blitToSurface()
                            #self.send(("clear",), "outbox")
                    elif event.type == (pygame.KEYDOWN):
                        if event.key == pygame.K_c:
                            image = pygame.image.load(
                                os.path.join('', 'pennyarcade.gif'))
                            yield WaitComplete(self.addLayer())
                            self.activeLayIn = len(self.layers) - 1
                            self.activeLayer = self.layers[self.activeLayIn]
                            self.drawBG()
                            self.activeLayer.blit(image, (10, 10))
                            self.blitToSurface()
                            self.send(self.activeLayIn, "laynum")
                        elif event.key == pygame.K_s:
                            """Testing a different brushing technique, bliting a brush"""
                            print(self.size, self.toolSize)
                            yield WaitComplete(self.addBrush())
                            self.activeBrush = self.brushes[len(self.brushes) -
                                                            1]
                            self.activeBrush.fill(self.backgroundColour)
                            pygame.draw.circle(
                                self.activeBrush, self.selectedColour,
                                (self.toolSize / 2, self.toolSize / 2),
                                self.toolSize, 0)
                        elif event.key == pygame.K_a:
                            self.animator = True
                        elif event.key == pygame.K_l:
                            self.layers[1].blit(self.layers[1], (100, 100))
                #         temp = self.layers[1]
                #         self.layers[1].fill(self.backgroundColour)
                #         self.layers[1].blit( temp, (100,100) )
                        elif event.key == pygame.K_o:
                            for x in self.layers:
                                x.set_alpha(0)
                            self.layers[0].set_alpha(255)
                            self.currentFrame = 0
                            while self.dataReady(
                                    "newframe"
                            ):  # empty if there's anything there
                                self.recv("newframe")
                            self.playing = True
                            self.blitToSurface()

                    elif event.type == pygame.MOUSEBUTTONUP and event.button == 1:
                        cursor.enable()
                        if self.tool == "Circle":
                            rad = int(
                                math.sqrt((
                                    (event.pos[0] - self.oldpos[0])**2) + (
                                        (event.pos[1] - self.oldpos[1])**2)))
                            pygame.draw.circle(self.activeLayer,
                                               self.selectedColour,
                                               self.oldpos, rad, 0)
                            circle = ("circle", self.oldpos, rad)
                            #   self.send((circle,), "outbox")
                            self.blitToSurface()
                        self.drawing = False
                        self.oldpos = None
                    elif event.type == pygame.MOUSEMOTION:
                        cursor.update(event)
                        if self.tool == "Line":
                            if self.drawing and self.innerRect.collidepoint(
                                    *event.pos):
                                if self.oldpos == None:
                                    self.oldpos = event.pos
                                else:
                                    # pygame.draw.circle(self.activeLayer, self.selectedColour, self.oldpos, self.toolSize, 0)
                                    r = pygame.draw.line(
                                        self.activeLayer, self.selectedColour,
                                        self.oldpos, event.pos, self.toolSize)
                                    dirtyrects.append(r)
                                    #  self.activeLayer.blit(self.activeBrush, event.pos) FAILED TECHNIQUE
                                    line = ("line", self.oldpos, event.pos)
                                    self.send((line, ), "outbox")
                                    self.oldpos = event.pos
                        self.blitToSurface()
            self.pause()
            pygame.time.delay(5)
            dirtyrects.extend([cursor.show()])
            pygame.display.update(dirtyrects)
            yield 1
예제 #4
0
    testing = False

if testing:
    Pipeline(
        SubscribeTo("DEBUGIN"),
        PublishTo("USERRESPONSE"),
    ).activate()
    Pipeline(
        Textbox(position=(250,48), size=(500,150)),
        PublishTo("DEBUGIN"),
    ).activate()

    Pipeline(
        SubscribeTo("OUIJAOUT"),
        PureTransformer(lambda x: str(x)+"\n"),
        TextDisplayer(position=(250,220), size=(500,150)),
    ).activate()

Pipeline(
    ConsoleReader(">> "),
    PureTransformer(lambda x: x[:-1]),
    PublishTo("PROGRAMME"),
).activate()

else:
    Pipeline(
        SubscribeTo("OUIJAOUT"),
        TextDisplayer(position=(250,48),
                      size=(500,322),
                      text_height=25),
    ).activate()
예제 #5
0
if __name__ == "__main__":
    from Kamaelia.UI.Pygame.Text import TextDisplayer, Textbox

    if 0:
        from Kamaelia.Chassis.Pipeline import Pipeline
        ProcessGraphline(
            component_one=Textbox(position=(20, 340),
                                  text_height=36,
                                  screen_width=900,
                                  screen_height=200,
                                  background_color=(130, 0, 70),
                                  text_color=(255, 255, 255)),
            component_two=Pipeline(
                TextDisplayer(position=(20, 90),
                              text_height=36,
                              screen_width=900,
                              screen_height=200,
                              background_color=(130, 0, 70),
                              text_color=(255, 255, 255)),
                Textbox(position=(20, 340),
                        text_height=36,
                        screen_width=900,
                        screen_height=200,
                        background_color=(130, 0, 70),
                        text_color=(255, 255, 255)),
            ),
            linkages={
                ("component_one", "outbox"): ("component_two", "inbox"),
                ("component_one", "signal"): ("component_two", "control"),
            },
            __debug=True,
        )
예제 #6
0
        DrawingCanvas(
            background=0xD0D0D0,  # Grey!
            surfacesize=(570, 650),
            surfaceposition=(430, 90)),
    ).activate()

    Pipeline(
        SubscribeTo("PARSEDINPUT"),
        Turtle(),
        PublishTo("PARSEDINPUT"),
    ).activate()

    Pipeline(
        Textbox(position=(20, 640),
                text_height=36,
                screen_width=400,
                screen_height=100,
                background_color=(130, 0, 70),
                text_color=(255, 255, 255)),
        PublishTo("RAWINPUT"),
    ).activate()

    Pipeline(
        SubscribeTo("DISPLAYCONSOLE"),
        TextDisplayer(position=(20, 90),
                      text_height=36,
                      screen_width=400,
                      screen_height=540,
                      background_color=(130, 0, 70),
                      text_color=(255, 255, 255))).run()
예제 #7
0
from Kamaelia.UI.PygameDisplay import PygameDisplay
from Kamaelia.UI.Pygame.Button import Button
from Kamaelia.UI.Pygame.Text import Textbox, TextDisplayer

from Kamaelia.UI.Pygame.VideoSurface import VideoSurface
from Kamaelia.Codec.Dirac import DiracDecoder
from Kamaelia.Util.RateFilter import MessageRateLimit
from Kamaelia.File.ReadFileAdaptor import ReadFileAdaptor
from Kamaelia.Video.PixFormatConversion import ToRGB_interleaved

# override pygame display service
ogl_display = OpenGLDisplay.getDisplayService(fullscreen=True)
PygameDisplay.setDisplayService(ogl_display[0])

READER = Textbox(size=(400, 300), text_height=30).activate()
WRITER = TextDisplayer(size=(400, 300), text_height=30).activate()

SCREEN = VideoSurface().activate()

Pipeline(
    ReadFileAdaptor("TestMaterial/TrainWindow.drc",
                    readmode="bitrate",
                    bitrate=1000000),
    DiracDecoder(),
    MessageRateLimit(10),
    ToRGB_interleaved(),
    SCREEN,
).activate()

R_ = PygameWrapper(wrap=READER, position=(-2, -2, -10),
                   rotation=(20, 10, 0)).activate()
예제 #8
0
    def main(self):
        """Main loop."""
        displayservice = PygameDisplay.getDisplayService()
        self.link((self, "display_signal"), displayservice)

        self.send(self.disprequest, "display_signal")

        for _ in self.waitBox("callback"):
            yield 1
        self.display = self.recv("callback")
        self.layers.append(self.display)

        #    f = os.path.join('', "pennyarcade.gif")
        #    x = pygame.image.load(f)
        #    colorkey = x.get_at((0, 0))
        #    if colorkey is True:
        #        x.set_colorkey(colorkey, pygame.RLEACCEL)
        #    self.layers.append(x)
        #    self.display = x
        #    self.activeLayIn = len(self.layers)-1
        #    self.activeLayer = self.layers[self.activeLayIn]
        #    self.display.blit( x, (0,0) )

        layerDisp = TextDisplayer(size=(20, 20), position=(520, 10)).activate()
        self.link((self, "laynum"), (layerDisp, "inbox"))
        self.send(
            {
                "ADDLISTENEVENT": pygame.MOUSEBUTTONDOWN,
                "surface": self.display
            }, "display_signal")

        self.send(
            {
                "ADDLISTENEVENT": pygame.MOUSEBUTTONUP,
                "surface": self.display
            }, "display_signal")

        self.send(
            {
                "ADDLISTENEVENT": pygame.MOUSEMOTION,
                "surface": self.display
            }, "display_signal")

        self.send({
            "ADDLISTENEVENT": pygame.KEYDOWN,
            "surface": self.display
        }, "display_signal")
        self.activeLayer = self.layers[self.activeLayIn]
        self.send(self.activeLayIn, "laynum")

        self.drawBG(True)
        self.blitToSurface()

        done = False
        while not done:
            if not self.anyReady():
                self.pause()
            yield 1
            while self.dataReady("control"):
                cmsg = self.recv("control")
                if isinstance(cmsg, producerFinished) or isinstance(
                        cmsg, shutdownMicroprocess):
                    self.send(cmsg, "signal")
                    done = True

            while self.dataReady("inbox"):
                for event in self.recv("inbox"):
                    if isinstance(event, tuple):
                        if event[0] == "Layer":
                            if event[1] == "Add":
                                yield WaitComplete(self.addLayer())
                                self.activeLayIn = len(self.layers) - 1
                                self.activeLayer = self.layers[
                                    self.activeLayIn]
                                #   self.send( self.activeLayIn, "laynum" )
                                self.drawBG()
                                self.blitToSurface()
                            elif event[1] == "Delete":
                                self.send(
                                    producerFinished(message=self.activeLayer),
                                    "display_signal")
                                self.layers.remove(self.activeLayer)
                                self.activeLayIn = 0
                                self.activeLayer = self.layers[
                                    self.activeLayIn]
                            #  print self.layers
                            if event[1] == "Next":
                                if self.activeLayIn == len(self.layers) - 1:
                                    self.activeLayIn = 0
                                    self.activeLayer = self.layers[
                                        self.activeLayIn]
                                else:
                                    self.activeLayIn += 1
                                    self.activeLayer = self.layers[
                                        self.activeLayIn]
                            elif event[1] == "Prev":
                                if self.activeLayIn == 0:
                                    self.activeLayIn = len(self.layers) - 1
                                    self.activeLayer = self.layers[
                                        self.activeLayIn]
                                else:
                                    self.activeLayIn -= 1
                                    self.activeLayer = self.layers[
                                        self.activeLayIn]
                            self.send(self.activeLayIn, "laynum")
                        elif event[0] == "Tool":
                            self.tool = event[1]
                        elif event[0] == "Size":
                            self.toolSize = event[1] / 3
                        elif event[0] == "Alpha":
                            self.layers[self.activeLayIn].set_alpha(event[1])
                            self.blitToSurface()
                        #  print self.activeLayer.get_alpha()
                        elif event[0] == 'Colour':
                            self.selectedColour = event[1]
                        break
                    if event.type == pygame.MOUSEBUTTONDOWN:
                        if self.tool == "Circle":
                            if event.button == 1:
                                self.oldpos = event.pos
                                self.drawing = True
                        if self.tool == "Eraser":
                            self.selectedColour = self.backgroundColour
                            self.tool = "Line"
                        if self.tool == "Line":
                            if event.button == 1:
                                self.drawing = True
                        if self.tool == "Bucket":
                            self.floodFill(event.pos[0], event.pos[1],
                                           self.selectedColour,
                                           self.activeLayer.get_at(event.pos))
                        if self.tool == "Eyedropper":
                            self.selectedColour = self.activeLayer.get_at(
                                event.pos)
                        if event.button == 3:
                            self.addLayer()
                            #self.oldpos = None
                            #self.drawBG()
                            #self.blitToSurface()
                            #self.send(("clear",), "outbox")
                    elif event.type == (pygame.KEYDOWN):
                        if event.key == pygame.K_c:
                            image = pygame.image.load(
                                os.path.join('', 'pennyarcade.gif'))
                            yield WaitComplete(self.addLayer())
                            self.activeLayIn = len(self.layers) - 1
                            self.activeLayer = self.layers[self.activeLayIn]
                            self.drawBG()
                            self.activeLayer.blit(image, (10, 10))
                            self.blitToSurface()
                            self.send(self.activeLayIn, "laynum")
                        elif event.key == pygame.K_s:
                            #  temp = self.layers[0]
                            self.save("tgfdg")
                        #  self.layers.insert(0,temp)
                        #  self.drawBG()
                        elif event.key == pygame.K_l:
                            self.layers[1].blit(self.layers[1], (100, 100))
                #         temp = self.layers[1]
                #         self.layers[1].fill(self.backgroundColour)
                #         self.layers[1].blit( temp, (100,100) )
                        elif event.key == pygame.K_o:
                            move = {
                                "CHANGEDISPLAYGEO": True,
                                "surface": self.layers[1],
                                "position": (100, 100)
                            }
                            self.send(move, "display_signal")

                    elif event.type == pygame.MOUSEBUTTONUP and event.button == 1:
                        if self.tool == "Circle":
                            rad = math.sqrt((
                                (event.pos[0] - self.oldpos[0])**2) + (
                                    (event.pos[1] - self.oldpos[1])**2))
                            pygame.draw.circle(self.activeLayer,
                                               self.selectedColour,
                                               self.oldpos, rad, 0)
                            circle = ("circle", self.oldpos, rad)
                            self.send((circle, ), "outbox")
                            self.blitToSurface()
                        self.drawing = False
                        self.oldpos = None
                    elif event.type == pygame.MOUSEMOTION:
                        if self.tool == "Line":
                            if self.drawing and self.innerRect.collidepoint(
                                    *event.pos):
                                if self.oldpos == None:
                                    self.oldpos = event.pos
                                else:
                                    # pygame.draw.circle(self.activeLayer, self.selectedColour, self.oldpos, self.toolSize, 0)
                                    pygame.draw.line(self.activeLayer,
                                                     self.selectedColour,
                                                     self.oldpos, event.pos,
                                                     self.toolSize)
                                    line = ("line", self.oldpos, event.pos)
                                    self.send((line, ), "outbox")
                                    self.oldpos = event.pos
                                self.blitToSurface()
            self.pause()
            yield 1
예제 #9
0
    Repeater(),
    Reorderer(),
    ConsoleEchoer(1),
    UnixProcess("while read word; do echo $word | espeak -w foo.wav --stdin ; aplay foo.wav ; done"),
).activate()

bgcolour = (255,255,180)

CANVAS  = Canvas( position=(0,40),
                   size=(800,320),
                   bgcolour = bgcolour,
                 ).activate()

CHALLENGE  = TextDisplayer(size = (390, 200),
                            position = (0,40),
                            bgcolour = bgcolour,
                            text_height=48,
                            transparent =1,
                           ).activate()

TEXT  = Textbox(size = (800, 100),
                       position = (0,260),
                       bgcolour = (255,180,255),
                       text_height=48,
                       transparent =1,
                      ).activate()
Image("/usr/local/share/kamaelia/kamaelia_logo_whitebg.png", position=(600,40)).activate()
Graphline(
           CHALLENGER  = Challenger(),
           CHALLENGE_SPLITTER = TwoWaySplitter(),
           CHALLENGE_CHECKER = Challenger_Checker(),
           SPEAKER  = PublishTo("SPEECH"),
예제 #10
0
import time
from Axon.background import background
from Kamaelia.UI.Pygame.Text import Textbox, TextDisplayer
from Axon.Handle import Handle
background().start()

try:
    import Queue
    queue = Queue  # Python 3 compatibility change
except ImportError:
    # Python 3 compatibility change
    import queue
TD = Handle(
    TextDisplayer(position=(20, 90),
                  text_height=36,
                  screen_width=900,
                  screen_height=200,
                  background_color=(130, 0, 70),
                  text_color=(255, 255, 255))).activate()

TB = Handle(
    Textbox(position=(20, 340),
            text_height=36,
            screen_width=900,
            screen_height=400,
            background_color=(130, 0, 70),
            text_color=(255, 255, 255))).activate()

message = "hello\n"
while 1:
    time.sleep(1)
    try:
예제 #11
0
## Copyright (C) 2007 British Broadcasting Corporation and Kamaelia Contributors(1)
##     All Rights Reserved.
##
from Kamaelia.Chassis.Carousel import Carousel
from Kamaelia.Chassis.Graphline import Graphline
from Kamaelia.Util.Chooser import Chooser
from Kamaelia.UI.Pygame.Button import Button
from Kamaelia.UI.Pygame.Text import TextDisplayer
from Kamaelia.File.ReadFileAdaptor import ReadFileAdaptor

files = ["1.txt", "2.txt", "3.txt", "4.txt"]


def makeFileReader(filename):
    return ReadFileAdaptor(filename=filename)


Graphline(NEXT=Button(caption="Next", msg="NEXT", position=(72, 8)),
          PREVIOUS=Button(caption="Previous", msg="PREV", position=(8, 8)),
          CHOOSER=Chooser(items=files),
          READER=Carousel(componentFactory=makeFileReader),
          DISPLAY=TextDisplayer(position=(20, 90),
                                screen_width=800,
                                screen_height=600),
          linkages={
              ("NEXT", "outbox"): ("CHOOSER", "inbox"),
              ("PREVIOUS", "outbox"): ("CHOOSER", "inbox"),
              ("CHOOSER", "outbox"): ("READER", "next"),
              ("READER", "outbox"): ("DISPLAY", "inbox"),
          }).run()
예제 #12
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# Copyright 2010 British Broadcasting Corporation and Kamaelia Contributors(1)
#
# (1) Kamaelia Contributors are listed in the AUTHORS file and at
#     http://www.kamaelia.org/AUTHORS - please extend this file,
#     not this notice.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# -------------------------------------------------------------------------
#

from Kamaelia.Chassis.Pipeline import Pipeline
from Kamaelia.Util.Console import ConsoleReader
from Kamaelia.UI.Pygame.Text import Textbox, TextDisplayer

Pipeline(ConsoleReader(), TextDisplayer()).run()
예제 #13
0
#!/usr/bin/python

from Kamaelia.Chassis.Pipeline import Pipeline
from Kamaelia.UI.Pygame.Text import Textbox, TextDisplayer
from Kamaelia.Internet.TCPClient import TCPClient

Pipeline(Textbox(size=(800, 300), position=(100, 380), text_height=32),
         TCPClient("127.0.0.1", 1501),
         TextDisplayer(size=(800, 300), position=(100, 40),
                       text_height=32)).run()
예제 #14
0
        Pipeline(
            ReadFileAdaptor(file, readmode="bitrate", bitrate=300000 * 8 / 5),
            DiracDecoder(),
            MessageRateLimit(framerate),
            VideoOverlay(position=(260, 48), size=(200, 300)),
        ),
        Pipeline(
            ReadFileAdaptor(file, readmode="bitrate", bitrate=2280960 * 8),
            DiracDecoder(),
            #                      MessageRateLimit(framerate),
            ToRGB_interleaved(),
            VideoSurface(size=(200, 300), position=(600, 48)),
        ),
        Pipeline(
            PAR(
                Button(caption="Next", msg="NEXT", position=(72, 8)),
                Button(caption="Previous", msg="PREV", position=(8, 8)),
                Button(caption="First", msg="FIRST", position=(256, 8)),
                Button(caption="Last", msg="LAST", position=(320, 8)),
            ),
            Chooser(items=files),
            Image(size=(200, 300), position=(8, 48), maxpect=(200, 300)),
        ),
        Pipeline(
            Textbox(size=(200, 300), position=(8, 360)),
            TextDisplayer(size=(200, 300), position=(228, 360)),
        ),
        Ticker(size=(200, 300), position=(450, 360)),
    ),
).run()
예제 #15
0
#!/usr/bin/python

from Kamaelia.UI.Pygame.Display import PygameDisplay
from Kamaelia.Chassis.Pipeline import Pipeline
from Kamaelia.Util.Console import ConsoleEchoer
from Kamaelia.UI.Pygame.Text import Textbox, TextDisplayer

X = PygameDisplay(background_colour=(224, 224, 255), width=1000,
                  height=400).activate()
PygameDisplay.setDisplayService(X)

Pipeline(
    Textbox(size=(800, 150),
            position=(100, 230),
            font_file="/home/michaels/.fonts/MichaelHW.ttf",
            padding=20,
            border_size=10,
            border_colour=(128, 0, 0)),
    TextDisplayer(size=(800, 150),
                  position=(100, 40),
                  font_file="/home/michaels/.fonts/GillSans.ttf",
                  padding=20,
                  border_size=10,
                  border_colour=(0, 0, 128))).run()