Attachment 'winrun.py'

Download

   1 #!/usr/bin/python
   2 # coding: utf-8
   3 # vim: sw=4:et:ts=4
   4 '''
   5 Написать «оконную систему», состоящую из классов
   6 
   7     * Экран (контейнер окон, позволяет манипулировать окнами)
   8           o Список окон, определение окна-получателя события
   9           o Глубина окон, изменение глубины окон
  10           o Перемещение и изменение размера окон 
  11     * Окно (позволяет манипулировать своим содержимым)
  12 
  13 winrun.py:	запускаемый файл
  14 '''
  15 import pygame, sys, random
  16 from win import *
  17 
  18 def randcolor():
  19     return random.randint(0,255),random.randint(0,255),random.randint(0,255)
  20 
  21 def randrect(min, max):
  22     x=random.randint(0, max[0]-min[0]);
  23     y=random.randint(0, max[1]-min[1]);
  24     w=random.randint(min[0], max[0]-x);
  25     h=random.randint(min[1], max[1]-y);
  26     return pygame.Rect(x,y,w,h)
  27 
  28 # Инициализировать PyGame
  29 pygame.init()
  30 # завести экран
  31 world = pygame.display.set_mode((1024,768))
  32 scr = simple_screen(world)
  33 oldpos, pos = (0,0), (0,0)
  34 # Обработка событий:
  35 while True:
  36     event = pygame.event.wait()
  37     # события, которые обрабатываем только мы
  38     if   event.type == pygame.QUIT: sys.exit()
  39     if hasattr(event,"pos"):
  40         oldpos, pos = pos, event.pos
  41     # хочет ли экран обрабатывать событие?
  42     if not scr.proceed(event, pos):
  43         if   event.type == pygame.KEYDOWN:
  44             # добавление/удаление окна
  45             if   event.key == 127:
  46                 scr.pop()
  47             elif event.key == 277:
  48                 color=randcolor()
  49                 rect=randrect((20,20),scr.surface.get_size())
  50                 #scr.append(rect, "basic", basic_window, bg=color)
  51                 #scr.append(rect, "titled", screen_window, screen=scr, title="TEST")
  52                 scr.append(rect, "input", edit_window, text="TEST")
  53         if event.type != pygame.MOUSEMOTION:
  54             print >> sys.stderr, event, pos
  55         # TODO перемещение окна
  56         # TODO изменение размера окна
  57     scr.redraw()
  58     pygame.display.flip()

Attached Files

To refer to attachments on a page, use attachment:filename, as shown below in the list of files. Do NOT use the URL of the [get] link, since this is subject to change and can break easily.

You are not allowed to attach a file to this page.