~glitter-team/glitter/trunk

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# !/usr/bin/python
# -*- coding: utf-8 -*-

# Glitter Toolkit

__authors__ = ["Jan Jokela <janjokela@gmail.com>"]
__licenses__ = ["LICENSE.LGPL"]
__description__ = "Glitter window"

import os
import sys

import cluttergtk
import clutter
import gtk

from style import Style

class Window(gtk.Window):
    """ 
    A Glitter window offers a ready GTK window with an embedded clutter stage.
    
    """
    
    def __init__(self, title="Glitter Application", width=800, height=480, 
                 resizable=True):
        """ Initialize window template """
        
        super(Window, self).__init__()
                
        self.set_title(title)
        self.set_default_size(width, height)
        
        # cluttergtk embed widget
        self.embed = cluttergtk.Embed()
        self.embed.set_flags(gtk.CAN_FOCUS)
        self.embed.grab_focus()   
        self.add(self.embed)
        self.set_focus(self.embed)
        self.embed.show()
        
        self.stage = self.embed.get_stage()
        self.stage.set_size(width, height)
        self.stage.set_color(clutter.Color(0x00, 0x00, 0x00, 0x00))
        self.stage.show()
        
    def get_stage(self):
        """ Retrieve stage """
        
        return self.stage