Changeset 4918


Ignore:
Timestamp:
02/10/09 05:36:39 (4 years ago)
Author:
charlie
Message:

Change in evas tests

Location:
developers/charlie/Tests/Evas
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • developers/charlie/Tests/Evas/test.edc

    r4769 r4918  
    1414 
    1515collections { 
    16     group { 
    17         name: "test"; 
    18         parts { 
    19             part { 
    20                 name: "background"; 
    21                 type: RECT; 
    22                 description { 
    23                     state: "default" 0.0; 
    24                     color: 0 0 0 255; 
    25                 } 
     16   group { 
     17      name: "test"; 
     18      parts { 
     19         part { 
     20            name: "background"; 
     21            type: RECT; 
     22            description { 
     23               state: "default" 0.0; 
     24               color: 0 128 0 255; 
    2625            } 
    27          
    28          
    29             part { 
    30                 name: "main-menu"; 
    31                 type: SWALLOW; 
    32                 description { 
    33                     state: "default" 0.0; 
    34                     rel1 { 
    35                         relative: 0.1 0.1; 
    36                         offset: 0 0; 
    37                     } 
    38                     rel2 { 
    39                         relative: 0.9 0.9; 
    40                         offset: 0 0; 
    41                     } 
    42                 } 
     26         } 
     27          
     28          
     29         part { 
     30            name: "main-menu"; 
     31            type: SWALLOW; 
     32            description { 
     33               state: "default" 0.0; 
     34               rel1 { 
     35                  relative: 0.1 0.1; 
     36                  offset: 0 0; 
     37               } 
     38               rel2 { 
     39                  relative: 0.9 0.9; 
     40                  offset: 0 0; 
     41               } 
    4342            } 
    44         } 
    45     } 
    46      
    47      
    48     group { 
    49         name: "label"; 
    50         min: 440 80; 
    51             max: 440 80; 
    52         parts { 
    53             part { 
    54                 name: "label"; 
    55                 type: TEXT; 
    56                 description { 
    57                     fixed: 1 1; 
    58                     text { 
    59                                             align: 0.0 0.5; 
    60                                             min: 1 1; 
    61                                             size: 48; 
    62                                             text: "Hello"; 
    63                                             font: "Sans"; 
    64                                     } 
    65                     rel1 { 
    66                         relative: 0.1 0.1; 
    67                         offset: 0 0; 
    68                     } 
    69                     rel2 { 
    70                         relative: 0.9 0.9; 
    71                         offset: 0 0; 
    72                     } 
    73                     state: "default" 0.0; 
    74                     color: 255 255 255 255; 
    75                 } 
     43         } 
     44      } 
     45   } 
     46    
     47    
     48   group { 
     49      name: "label"; 
     50      min: 440 64; 
     51      max: 440 64; 
     52      parts { 
     53         part { 
     54            name: "label"; 
     55            type: TEXT; 
     56            description { 
     57               fixed: 1 1; 
     58               text { 
     59                  align: 0.0 0.5; 
     60                  min: 1 1; 
     61                  size: 48; 
     62                  text: "Hello"; 
     63                  font: "Sans"; 
     64               } 
     65               rel1 { 
     66                  relative: 0.1 0.1; 
     67                  offset: 0 0; 
     68               } 
     69               rel2 { 
     70                  relative: 0.9 0.9; 
     71                  offset: 0 0; 
     72               } 
     73               state: "default" 0.0; 
     74               color: 255 255 255 255; 
    7675            } 
    77         } 
    78     } 
    79      
    80     group { 
    81         name: "button"; 
    82         min: 440 80; 
    83             max: 440 80; 
    84         parts { 
    85             part { 
    86                 name: "rect"; 
    87                 type: RECT; 
    88                 description { 
    89                     rel1 { 
    90                         relative: 0.1 0.1; 
    91                         offset: 0 0; 
    92                     } 
    93                     rel2 { 
    94                         relative: 0.9 0.9; 
    95                         offset: 0 0; 
    96                     } 
    97                     state: "default" 0.0; 
    98                     color: 255 0 0 128; 
    99                 } 
     76         } 
     77      } 
     78   } 
     79    
     80   group { 
     81      name: "button"; 
     82      min: 440 80; 
     83      max: 440 80; 
     84      parts { 
     85         part { 
     86            name: "rect"; 
     87            type: RECT; 
     88            description { 
     89               rel1 { 
     90                  relative: 0.1 0.1; 
     91                  offset: 0 0; 
     92               } 
     93               rel2 { 
     94                  relative: 0.9 0.9; 
     95                  offset: 0 0; 
     96               } 
     97               state: "default" 0.0; 
     98               color: 255 255 0 128; 
    10099            } 
    101         } 
    102     } 
    103      
    104      
    105     group { 
    106         name: "frame"; 
    107         min: 440 80; 
    108 //          max: 440 80; 
    109         parts { 
    110             part { 
    111                 name: "rect"; 
    112                 type: RECT; 
    113                 description { 
    114                     rel1 { 
    115                         relative: 0.1 0.1; 
    116                         offset: 0 0; 
    117                     } 
    118                     rel2 { 
    119                         relative: 0.9 0.9; 
    120                         offset: 0 0; 
    121                     } 
    122                     state: "default" 0.0; 
    123                     color: 255 0 0 255; 
    124                 } 
     100         } 
     101      } 
     102      programs { 
     103         program { 
     104            signal: "mouse,up,1"; 
     105            source: "rect"; 
     106            action: SIGNAL_EMIT "clicked" "rect"; 
     107         } 
     108      } 
     109   } 
     110    
     111    
     112   group { 
     113      name: "frame"; 
     114      min: 440 80; 
     115      //            max: 440 80; 
     116      parts { 
     117         part { 
     118            name: "rect"; 
     119            type: RECT; 
     120            description { 
     121               rel1 { 
     122                  relative: 0.1 0.1; 
     123                  offset: 0 0; 
     124               } 
     125               rel2 { 
     126                  relative: 0.9 0.9; 
     127                  offset: 0 0; 
     128               } 
     129               state: "default" 0.0; 
     130               color: 255 255 0 255; 
    125131            } 
    126         } 
    127     } 
     132         } 
     133      } 
     134   } 
    128135} 
    129136 
    130  
  • developers/charlie/Tests/Evas/test.py

    r4769 r4918  
     1#!/usr/bin/env python 
    12 
    23import e_dbus 
     
    910import etk 
    1011 
    11 class Widget(object): 
    12     def __init__(self, parent, **kargs): 
     12from object import Object 
     13 
     14class Widget(Object): 
     15    def __init__(self, parent, etk_obj=None, expand=False, **kargs): 
     16        super(Widget, self).__init__() 
     17        self.etk_obj = etk_obj 
    1318        self.parent = parent 
    14         self.children = [] 
     19        self.expand=expand 
     20        self.children = []      # Not sure we really need that 
    1521        if parent is not None: 
    1622            parent.add(self) 
     
    2733class Window(Widget): 
    2834    def __init__(self, parent, **kargs): 
    29         self.etk_obj = etk.VBox() 
    30         super(Window, self).__init__(parent, **kargs) 
     35        etk_obj = etk.VBox()    # XXX: use a more appropriate container 
     36        super(Window, self).__init__(parent, etk_obj, **kargs) 
    3137    def add(self, child): 
    32         self.etk_obj.append(child.etk_obj, etk.VBox.START, etk.VBox.NONE, 0) 
     38        if child.expand: 
     39            policy = etk.VBox.EXPAND_FILL 
     40        self.etk_obj.append(child.etk_obj, etk.VBox.START, policy, 0) 
    3341 
    34          
     42 
     43class EdjeSource(object): 
     44    def __init__(self, edje, source): 
     45        self.edje = edje 
     46        self.source = source 
     47    def callback(self, info, signal, source, callback, *args): 
     48        callback(self, *args) 
     49    def connect(self, signal, callback, *args): 
     50        self.edje._edje_obj.signal_callback_add(signal, self.source, 
     51                                                self.callback, callback, 
     52                                                *args) 
     53 
     54 
     55class Edje(Widget): 
     56    def __init__(self, parent, file, group, **kargs): 
     57        self.file = file 
     58        self.group = group 
     59        etk_obj = etk.Canvas() 
     60        self._edje_obj = edje.Edje(parent.get_evas(), file=file, group=group) 
     61        etk_obj.object_add(self._edje_obj) 
     62        super(Edje, self).__init__(parent, etk_obj, **kargs) 
     63 
     64    def source(self, name): 
     65        return EdjeSource(self, name) 
     66 
     67 
    3568class Screen(Widget): 
    3669    def __init__(self): 
     
    3972        self.edje.size = self.etk_window.evas.size 
    4073        self.etk_window.data["edje"] = self.edje 
    41         self.etk_obj = etk.Embed(self.etk_window.evas) 
    42         Widget.__init__(self, None) 
     74        etk_obj = etk.Embed(self.etk_window.evas) 
     75        Widget.__init__(self, None, etk_obj) 
    4376         
    4477    def get_evas(self): 
     
    5487class Frame(Widget): 
    5588    def __init__(self, parent, **kargs): 
    56         self.etk_obj = etk.Canvas() 
     89        etk_obj = etk.Canvas() 
    5790        edje_obj = edje.Edje(parent.get_evas(), file='test.edj', group="frame") 
    58         self.etk_obj.object_add(edje_obj) 
    59         super(Frame, self).__init__(parent, **kargs) 
     91        etk_obj.object_add(edje_obj) 
     92        super(Frame, self).__init__(parent, etk_obj, **kargs) 
    6093        edje_obj.show() 
    6194 
    6295class Box(Widget): 
    6396    def __init__(self, parent, axis=0, **kargs): 
    64         self.etk_obj = etk.VBox() 
    65         super(Box, self).__init__(parent, **kargs) 
     97        if axis == 0: 
     98            etk_obj = etk.VBox() 
     99        else: 
     100            etk_obj = etk.HBox() 
     101        super(Box, self).__init__(parent, etk_obj, **kargs) 
    66102    def add(self, child): 
    67         self.etk_obj.append(child.etk_obj, etk.VBox.START, etk.VBox.NONE, 0) 
     103        policy = etk.VBox.FILL 
     104        if child.expand: 
     105            policy = etk.VBox.EXPAND_FILL 
     106        self.etk_obj.append(child.etk_obj, etk.VBox.START, policy, 0) 
    68107 
    69108class Scrolled(Widget): 
    70109    def __init__(self, parent, **kargs): 
    71         self.etk_obj = etk.ScrolledView() 
    72         super(Scrolled, self).__init__(parent, **kargs) 
     110        etk_obj = etk.ScrolledView() 
     111        super(Scrolled, self).__init__(parent, etk_obj, **kargs) 
    73112    def add(self, child): 
    74113        self.etk_obj.add_with_viewport(child.etk_obj) 
    75114         
    76 class Button(Widget): 
     115class Button(Edje): 
    77116    def __init__(self, parent, **kargs): 
    78         self.etk_obj = etk.Canvas() 
    79         edje_obj = edje.Edje(parent.get_evas(), file='test.edj', group="button") 
    80         self.etk_obj.object_add(edje_obj) 
    81         super(Button, self).__init__(parent, **kargs) 
    82         edje_obj.show() 
     117        super(Button, self).__init__(parent, 'test.edj', 'button') 
     118        self.source('rect').connect('clicked', self._on_click) 
     119    def _on_click(self, *args): 
     120        self.emit('clicked') 
     121 
     122 
     123class Edit(Widget): 
     124    def __init__(self, parent, **kargs): 
     125        etk_obj = etk.TextView() 
     126        super(Edit, self).__init__(parent, etk_obj, **kargs) 
     127 
    83128         
    84129class Label(Widget): 
    85130    def __init__(self, parent, text, **kargs): 
    86         self.etk_obj = etk.Canvas() 
     131        etk_obj = etk.Canvas() 
    87132        self.edje_obj = edje.Edje(parent.get_evas(), file='test.edj', group="label") 
    88133        self.edje_obj.part_text_set("label", text) 
    89         self.etk_obj.object_add(self.edje_obj) 
    90         super(Label, self).__init__(parent, **kargs) 
     134        etk_obj.object_add(self.edje_obj) 
     135        super(Label, self).__init__(parent, etk_obj, **kargs) 
    91136        self.edje_obj.show() 
    92137         
     
    99144class Spring(Widget): 
    100145    def __init__(self, parent, **kargs): 
    101         self.etk_obj = etk.HSeparator() 
    102         super(Spring, self).__init__(parent, **kargs) 
     146        etk_obj = etk.HSeparator() 
     147        super(Spring, self).__init__(parent, etk_obj, **kargs) 
    103148     
    104149     
     
    111156        window = Window(screen) 
    112157         
    113         frame = Frame(window) 
     158        # frame = Frame(window) 
    114159         
    115 #        vbox = Box(window) 
    116 #        Label(vbox, "hello") 
    117 #        Spring(vbox) 
    118 #        Label(vbox, "hello") 
     160        vbox = Box(window, expand=True) 
     161        Label(vbox, "Text") 
     162        # Spring(vbox) 
     163        Label(vbox, "hi") 
     164        Edit(vbox, expand=True) 
    119165         
    120          
    121 #        scrolled = Scrolled(screen) 
    122 #        window.etk_obj.size_request_set(10,10) 
    123 #         
    124 #        vbox = Box(scrolled) 
    125 #                
    126 #        for i in range(10): 
    127 #            b = Button(vbox) 
    128 #            l = Label(b, "hello %d" % i) 
    129          
    130         # screen.show() 
    131          
    132          
     166        scrolled = Scrolled(vbox, expand=True) 
     167#         # window.etk_obj.size_request_set(10,10) 
     168     
     169        vbox = Box(scrolled) 
     170 
     171        for i in range(10): 
     172            b = Button(vbox) 
     173            # b = Edje(vbox, 'test.edj', 'button') 
     174            # b.source("rect").connect('clicked', self.on_click) 
     175            b.connect('clicked', self.on_click) 
     176            l = Label(b, "hello %d" % i) 
     177        
     178        screen.show() 
     179 
     180    def on_click(self, *args): 
     181        print "click", args 
     182 
     183 
    133184    def run(self): 
    134185        ecore.main_loop_begin() 
    135          
     186 
    136187gui = Gui() 
    137188gui.run() 
    138  
Note: See TracChangeset for help on using the changeset viewer.