Module sketcher
[hide private]
[frames] | no frames]

Module sketcher

source code

Classes [hide private]
  canvas
This is a container class for holding the objects printed to the 'canvas' area of the application.
  workspace
This is the container class for holding and loading the tools, and general GUI layers, of the application.
  network
This is the class for controlling the network communication between multiple online canvases inbounded on the current machine, or outbounded to multiple remote machines.
Functions [hide private]
 
update()
Updates the application window with the changes made in the canvas world.
source code
 
cmdline()
Handles command-line line requests.
source code
 
getshape(vertices)
Returns a shape given a set of vertices.
source code
 
event_loop(framerate=30)
The application's main event loop for controlling general user and application-driven events.
source code
 
main()
This is the main application method for initializing the application window upon program startup, and for configuring a sketchpad/canvas for use within the window.
source code
Variables [hide private]
  ABORT = 'abort'
  ABORTRETRYIGNORE = 'abortretryignore'
  ACTIVEEVENT = 1
  AF_APPLETALK = 16
  AF_DECnet = 12
  AF_INET = 2
  AF_INET6 = 23
  AF_IPX = 6
  AF_IRDA = 26
  AF_SNA = 11
  AF_UNSPEC = 0
  AI_CANONNAME = 2
  AI_NUMERICHOST = 4
  AI_PASSIVE = 1
  ANYFORMAT = 268435456
  ASYNCBLIT = 4
  AUDIO_S16 = 32784
  AUDIO_S16LSB = 32784
  AUDIO_S16MSB = 36880
  AUDIO_S16SYS = 32784
  AUDIO_S8 = 32776
  AUDIO_U16 = 16
  AUDIO_U16LSB = 16
  AUDIO_U16MSB = 4112
  AUDIO_U16SYS = 16
  AUDIO_U8 = 8
  CANCEL = 'cancel'
  CAPI = <PyCObject object at 0x00A6A428>
  DOUBLEBUF = 1073741824
  EAI_AGAIN = 11002
  EAI_BADFLAGS = 10022
  EAI_FAIL = 11003
  EAI_FAMILY = 10047
  EAI_MEMORY = 8
  EAI_NODATA = 11001
  EAI_NONAME = 11001
  EAI_SERVICE = 10109
  EAI_SOCKTYPE = 10044
  ERROR = 'error'
  FULLSCREEN = -2147483648
  GL_ACCUM_ALPHA_SIZE = 11
  GL_ACCUM_BLUE_SIZE = 10
  GL_ACCUM_GREEN_SIZE = 9
  GL_ACCUM_RED_SIZE = 8
  GL_ALPHA_SIZE = 3
  GL_BLUE_SIZE = 2
  GL_BUFFER_SIZE = 4
  GL_DEPTH_SIZE = 6
  GL_DOUBLEBUFFER = 5
  GL_GREEN_SIZE = 1
  GL_MULTISAMPLEBUFFERS = 13
  GL_MULTISAMPLESAMPLES = 14
  GL_RED_SIZE = 0
  GL_STENCIL_SIZE = 7
  GL_STEREO = 12
  HAT_CENTERED = 0
  HAT_DOWN = 4
  HAT_LEFT = 8
  HAT_LEFTDOWN = 12
  HAT_LEFTUP = 9
  HAT_RIGHT = 2
  HAT_RIGHTDOWN = 6
  HAT_RIGHTUP = 3
  HAT_UP = 1
  HWACCEL = 256
  HWPALETTE = 536870912
  HWSURFACE = 1
  IGNORE = 'ignore'
  INADDR_ALLHOSTS_GROUP = -536870911
  INADDR_ANY = 0
  INADDR_BROADCAST = -1
  INADDR_LOOPBACK = 2130706433
  INADDR_MAX_LOCAL_GROUP = -536870657
  INADDR_NONE = -1
  INADDR_UNSPEC_GROUP = -536870912
  INFO = 'info'
  IPPORT_RESERVED = 1024
  IPPORT_USERRESERVED = 5000
  IPPROTO_AH = 51
  IPPROTO_DSTOPTS = 60
  IPPROTO_ESP = 50
  IPPROTO_FRAGMENT = 44
  IPPROTO_GGP = 3
  IPPROTO_HOPOPTS = 0
  IPPROTO_ICMP = 1
  IPPROTO_ICMPV6 = 58
  IPPROTO_IDP = 22
  IPPROTO_IGMP = 2
  IPPROTO_IP = 0
  IPPROTO_IPV4 = 4
  IPPROTO_IPV6 = 41
  IPPROTO_MAX = 256
  IPPROTO_ND = 77
  IPPROTO_NONE = 59
  IPPROTO_PUP = 12
  IPPROTO_RAW = 255
  IPPROTO_ROUTING = 43
  IPPROTO_TCP = 6
  IPPROTO_UDP = 17
  IPV6_HOPLIMIT = 21
  IPV6_JOIN_GROUP = 12
  IPV6_LEAVE_GROUP = 13
  IPV6_MULTICAST_HOPS = 10
  IPV6_MULTICAST_IF = 9
  IPV6_MULTICAST_LOOP = 11
  IPV6_PKTINFO = 19
  IPV6_UNICAST_HOPS = 4
  IP_ADD_MEMBERSHIP = 12
  IP_DROP_MEMBERSHIP = 13
  IP_HDRINCL = 2
  IP_MULTICAST_IF = 9
  IP_MULTICAST_LOOP = 11
  IP_MULTICAST_TTL = 10
  IP_OPTIONS = 1
  IP_TOS = 3
  IP_TTL = 4
  IYUV_OVERLAY = 1448433993
  JOYAXISMOTION = 7
  JOYBALLMOTION = 8
  JOYBUTTONDOWN = 10
  JOYBUTTONUP = 11
  JOYHATMOTION = 9
  KEYDOWN = 2
  KEYUP = 3
  KMOD_ALT = 768
  KMOD_CAPS = 8192
  KMOD_CTRL = 192
  KMOD_LALT = 256
  KMOD_LCTRL = 64
  KMOD_LMETA = 1024
  KMOD_LSHIFT = 1
  KMOD_META = 3072
  KMOD_MODE = 16384
  KMOD_NONE = 0
  KMOD_NUM = 4096
  KMOD_RALT = 512
  KMOD_RCTRL = 128
  KMOD_RMETA = 2048
  KMOD_RSHIFT = 2
  KMOD_SHIFT = 3
  K_0 = 48
  K_1 = 49
  K_2 = 50
  K_3 = 51
  K_4 = 52
  K_5 = 53
  K_6 = 54
  K_7 = 55
  K_8 = 56
  K_9 = 57
  K_AMPERSAND = 38
  K_ASTERISK = 42
  K_AT = 64
  K_BACKQUOTE = 96
  K_BACKSLASH = 92
  K_BACKSPACE = 8
  K_BREAK = 318
  K_CAPSLOCK = 301
  K_CARET = 94
  K_CLEAR = 12
  K_COLON = 58
  K_COMMA = 44
  K_DELETE = 127
  K_DOLLAR = 36
  K_DOWN = 274
  K_END = 279
  K_EQUALS = 61
  K_ESCAPE = 27
  K_EURO = 321
  K_EXCLAIM = 33
  K_F1 = 282
  K_F10 = 291
  K_F11 = 292
  K_F12 = 293
  K_F13 = 294
  K_F14 = 295
  K_F15 = 296
  K_F2 = 283
  K_F3 = 284
  K_F4 = 285
  K_F5 = 286
  K_F6 = 287
  K_F7 = 288
  K_F8 = 289
  K_F9 = 290
  K_FIRST = 0
  K_GREATER = 62
  K_HASH = 35
  K_HELP = 315
  K_HOME = 278
  K_INSERT = 277
  K_KP0 = 256
  K_KP1 = 257
  K_KP2 = 258
  K_KP3 = 259
  K_KP4 = 260
  K_KP5 = 261
  K_KP6 = 262
  K_KP7 = 263
  K_KP8 = 264
  K_KP9 = 265
  K_KP_DIVIDE = 267
  K_KP_ENTER = 271
  K_KP_EQUALS = 272
  K_KP_MINUS = 269
  K_KP_MULTIPLY = 268
  K_KP_PERIOD = 266
  K_KP_PLUS = 270
  K_LALT = 308
  K_LAST = 323
  K_LCTRL = 306
  K_LEFT = 276
  K_LEFTBRACKET = 91
  K_LEFTPAREN = 40
  K_LESS = 60
  K_LMETA = 310
  K_LSHIFT = 304
  K_LSUPER = 311
  K_MENU = 319
  K_MINUS = 45
  K_MODE = 313
  K_NUMLOCK = 300
  K_PAGEDOWN = 281
  K_PAGEUP = 280
  K_PAUSE = 19
  K_PERIOD = 46
  K_PLUS = 43
  K_POWER = 320
  K_PRINT = 316
  K_QUESTION = 63
  K_QUOTE = 39
  K_QUOTEDBL = 34
  K_RALT = 307
  K_RCTRL = 305
  K_RETURN = 13
  K_RIGHT = 275
  K_RIGHTBRACKET = 93
  K_RIGHTPAREN = 41
  K_RMETA = 309
  K_RSHIFT = 303
  K_RSUPER = 312
  K_SCROLLOCK = 302
  K_SEMICOLON = 59
  K_SLASH = 47
  K_SPACE = 32
  K_SYSREQ = 317
  K_TAB = 9
  K_UNDERSCORE = 95
  K_UNKNOWN = 0
  K_UP = 273
  K_a = 97
  K_b = 98
  K_c = 99
  K_d = 100
  K_e = 101
  K_f = 102
  K_g = 103
  K_h = 104
  K_i = 105
  K_j = 106
  K_k = 107
  K_l = 108
  K_m = 109
  K_n = 110
  K_o = 111
  K_p = 112
  K_q = 113
  K_r = 114
  K_s = 115
  K_t = 116
  K_u = 117
  K_v = 118
  K_w = 119
  K_x = 120
  K_y = 121
  K_z = 122
  MOUSEBUTTONDOWN = 5
  MOUSEBUTTONUP = 6
  MOUSEMOTION = 4
  MSG_DONTROUTE = 4
  MSG_OOB = 1
  MSG_PEEK = 2
  NI_DGRAM = 16
  NI_MAXHOST = 1025
  NI_MAXSERV = 32
  NI_NAMEREQD = 4
  NI_NOFQDN = 1
  NI_NUMERICHOST = 2
  NI_NUMERICSERV = 8
  NO = 'no'
  NOEVENT = 0
  NOFRAME = 32
  NUMEVENTS = 32
  OK = 'ok'
  OKCANCEL = 'okcancel'
  OPENGL = 2
  OPENGLBLIT = 10
  PREALLOC = 16777216
  QUESTION = 'question'
  QUIT = 12
  RESIZABLE = 16
  RETRY = 'retry'
  RETRYCANCEL = 'retrycancel'
  RLEACCEL = 16384
  RLEACCELOK = 8192
  SHUT_RD = 0
  SHUT_RDWR = 2
  SHUT_WR = 1
  SOCK_DGRAM = 2
  SOCK_RAW = 3
  SOCK_RDM = 4
  SOCK_SEQPACKET = 5
  SOCK_STREAM = 1
  SOL_IP = 0
  SOL_SOCKET = 65535
  SOL_TCP = 6
  SOL_UDP = 17
  SOMAXCONN = 2147483647
  SO_ACCEPTCONN = 2
  SO_BROADCAST = 32
  SO_DEBUG = 1
  SO_DONTROUTE = 16
  SO_ERROR = 4103
  SO_EXCLUSIVEADDRUSE = -5
  SO_KEEPALIVE = 8
  SO_LINGER = 128
  SO_OOBINLINE = 256
  SO_RCVBUF = 4098
  SO_RCVLOWAT = 4100
  SO_RCVTIMEO = 4102
  SO_REUSEADDR = 4
  SO_SNDBUF = 4097
  SO_SNDLOWAT = 4099
  SO_SNDTIMEO = 4101
  SO_TYPE = 4104
  SO_USELOOPBACK = 64
  SRCALPHA = 65536
  SRCCOLORKEY = 4096
  SSL_ERROR_EOF = 8
  SSL_ERROR_INVALID_ERROR_CODE = 9
  SSL_ERROR_SSL = 1
  SSL_ERROR_SYSCALL = 5
  SSL_ERROR_WANT_CONNECT = 7
  SSL_ERROR_WANT_READ = 2
  SSL_ERROR_WANT_WRITE = 3
  SSL_ERROR_WANT_X509_LOOKUP = 4
  SSL_ERROR_ZERO_RETURN = 6
  SWSURFACE = 0
  SYSWMEVENT = 13
  TCP_NODELAY = 1
  TIMER_RESOLUTION = 10
  USEREVENT = 24
  UYVY_OVERLAY = 1498831189
  VIDEOEXPOSE = 17
  VIDEORESIZE = 16
  WARNING = 'warning'
  YES = 'yes'
  YESNO = 'yesno'
  YESNOCANCEL = 'yesnocancel'
  YUY2_OVERLAY = 844715353
  YV12_OVERLAY = 842094169
  YVYU_OVERLAY = 1431918169
  errorTab = {10004: 'The operation was interrupted.', 10009: 'A...
  has_ipv6 = True
Function Details [hide private]

getshape(vertices)

source code 

Returns a shape given a set of vertices. Currently, shapes are predefined, where only circles, boxes, and custom user images can be returned. Parameter:

  • vertices, the vertices to use to construct the new shape.

event_loop(framerate=30)

source code 

The application's main event loop for controlling general user and application-driven events. The events that are handled are as follow:

  • Closing application window:
  • by clicking the application window's close button
  • by pressing ALT + F4
  • Resizing application window:
  • by clicking the application window's maximize and normalize buttons
  • by pressing ALT + ENTER
  • by pressing ESC (to revert from fullscreen mode to normal mode)
  • by pressing F (to switch between fullscreen and normal modes)
  • Registering canvas inputs:
  • by clicking the left mouse-click button, and then moving the mouse at least two pixel points over an area of the canvas, and then finally releasing the left mouse-click button. The registered inputs are stored as a 2-tuple list of (x,y) vertices for each pixel points/path tranversed during the left mouse-click hold and drag events.

Parameter:

  • framerate, sets the frame rate at which the application window refreshes, and at which, for each refresh interval, all updates are carried out. Also, the canvas environment's time step increases by a fraction of 1/framerate. The higher the frame rate, the faster the animation of objects in the canvas environment.

Variables Details [hide private]

errorTab

Value:
{10004: 'The operation was interrupted.',
 10009: 'A bad file handle was passed.',
 10013: 'Permission denied.',
 10014: 'A fault occurred on the network??',
 10022: 'An invalid operation was attempted.',
 10035: 'The socket operation would block',
 10036: 'A blocking operation is already in progress.',
 10048: 'The network address is in use.',
...