aboutsummaryrefslogblamecommitdiffstats
path: root/data/themes/edc/elm/hover.edc
blob: 8bed195eee29c8c8323008bb03f36f8e6b0ec903 (plain) (tree)
1
2
3
4
5
6
7
8

                                                                      
                             


                            
          
                                                       



                                            
          
       
                                                     




                                            
                                   
          
       
                                                       

                                            
          
       
                                                      





                                            
          
       
                                                          







                                               
          
       
                                                              







                                               
          
       
                                                         







                                               
          
       
                                                               







                                               
          
       
                                                           





                                               
                                   
                              
          
       
                                                                  





                                               
                                   
                               
          
       
                                                            





                                               
                                   
                              
          
       
                                                                 







                                               

          
                                                            


                                            


          

                            
                                              





                                                 
       




                                                  



                                                    
       

    
 
                                      
                             
                                          


                            
          
                                                       



                                            
          
       
                                                     




                                            
                                   
          
       
                                                       

                                            
          
                                            
                                   
                            
          
       
                                          



                                            
          








                                             

                                              




                                            
          
       
                                                          














                                               
          
       
                                           



                                            
          








                                              

                                              




                                            
          
       
                                                           






                                               
                                   






                                            
          
       
                                         



                                            
          








                                            

                                              




                                            
          
       
                                                         















                                               
          
       
                                            



                                            
          








                                               

                                              




                                            
          
       
                                                            






                                               
                                   






                                            
          
       
                                          

                                               
                               
                                               


                                              
                                
          
       
                                                            


                                            
          
       
    

                            
                                              





                                                 
       
                             
                                                  
                                         


                             
                                                  
                                         
                                    
                        


                                     



                                                    
       
                                 
                                                            





                                         
                                                            





                                         
                                                             





                                          
                                                             





                                          
                                                           





                                         
                                                           





                                         
                                                              





                                           
                                                              




                                           
    
 
 

                                                         

                                                     

                                                        
                             


                                                           


                         
                            





                                                   
                                






                                                      
                                

       
          
                                                       



                                            

          
                                                     




                                            
                                   

          
                                                   
                                            
                                
                                              
                               


                                                 
                             
                   
                                           




                                           


                                                 
                               
                                
                                                 
                             
                   
                                           



                                
       















































                                                            




                                            
                           

          
                                         
                                            

                                      

          
                                                         


                                            
                           




                                               


                                                           


                                            










                                                  

          
                                            
                                            

                                      

          
                                                            

                                            
                           

                                               
                             
                                               
                                   


                                                           


                                            










                                                  

          





                                             

       

                            
                                              





                                                 

                             
                                                  
                                         


                             
                                                  
                                         
                                    
                        





                                                             


                                     



                                                    

                                
                                                           
                 

                                                     




                                                           
                                         
                                        
                                    
       



                                               

                                










                                                      
                                         
                                        
                                    


                                       
                                        
                                    

                                   
                                                              







                                                          
                                         
                                           
                                    
       



                                               

                                   
                                                              










                                                         
                                         
                                           
                                    


                                         
                                           




























                                                                               
       
    
 
 

                                                           
                                          
                             


                            


                                                           
          
                                                       





                                            
                                                     







                                            
                                      



                                            
                                   
                           

          
                                                   

                                               
                                               
                               
                                                 
                                               
                                   
                             
                   
                                           




                                          
                                                 
                                                
                                   
                              
                                                
                                                
                              
                   
                                           




                                

                                          
                                            
                                                 
                                   

          
                                                          

                                            
                           






                                               



                                            
                           
          
       
                                           
                                            
                                                 
                                   

          
                                                           

                                            
                           






                                               

                                            

                               
                           

          
                                                            







                                            
                                              





                                                 

                             
                                                  
                                         
                                    


                             
                                                  
                                         
                                    
                        


                                     



                                                    


                                 
                                                            




                                         
                                                            



                                         
                                 
                                                            


                                         
       
      
                                  
                                                             




                                          
                                                             



                                       
                                  
                                                             


                                          


       
/* TODO: replicate diagonal swallow slots to the other hover styles */
group { name: "elm/hover/base/default";
   data.item: "dismiss" "on";
   script {
      public on_dismiss = 0;
   }
   parts {
      part { name: "elm.swallow.offset"; type: SWALLOW;
         description { state: "default" 0.0;
            align: 0.0 0.0;
            rel1.relative: 0.0 0.0;
            rel2.relative: 0.0 0.0;
         }
      }
      part { name: "elm.swallow.size"; type: SWALLOW;
         description { state: "default" 0.0;
            align: 0.0 0.0;
            rel1.to: "elm.swallow.offset";
            rel1.relative: 1.0 1.0;
            rel2.to: "elm.swallow.offset";
            rel2.relative: 1.0 1.0;
         }
      }
      part { name: "base"; type: RECT; mouse_events: 1;
         description { state: "default" 0.0;
            color: 0 0 0 64;
         }
      }
      part { name: "box"; type: RECT; mouse_events: 0;
         description { state: "default" 0.0;
            color: 0 0 0 0;
            rel1.to: "elm.swallow.size";
            rel1.offset: -2 -2;
            rel2.to: "elm.swallow.size";
            rel2.offset: 1 1;
         }
      }
      part { name: "elm.swallow.slot.left"; type: SWALLOW;
         description { state: "default" 0.0;
            align: 1.0 0.5;
            rel1.to: "elm.swallow.slot.middle";
            rel1.relative: 0.0 0.0;
            rel1.offset: -1 0;
            rel2.to: "elm.swallow.slot.middle";
            rel2.relative: 0.0 1.0;
            rel2.offset: -1 -1;
         }
      }
      part { name: "elm.swallow.slot.top-left"; type: SWALLOW;
         description { state: "default" 0.0;
            align: 1.0 1.0;
            rel1.to: "elm.swallow.slot.middle";
            rel1.relative: 0.0 0.0;
            rel1.offset: 0 0;
            rel2.to: "elm.swallow.slot.middle";
            rel2.relative: 0.0 0.0;
            rel2.offset: -1 -1;
         }
      }
      part { name: "elm.swallow.slot.top"; type: SWALLOW;
         description { state: "default" 0.0;
            align: 0.5 1.0;
            rel1.to: "elm.swallow.slot.middle";
            rel1.relative: 0.0 0.0;
            rel1.offset: 0 -1;
            rel2.to: "elm.swallow.slot.middle";
            rel2.relative: 1.0 0.0;
            rel2.offset: -1 -1;
         }
      }
      part { name: "elm.swallow.slot.top-right"; type: SWALLOW;
         description { state: "default" 0.0;
            align: 0.0 1.0;
            rel1.to: "elm.swallow.slot.middle";
            rel1.relative: 1.0 0.0;
            rel1.offset: 0 0;
            rel2.to: "elm.swallow.slot.middle";
            rel2.relative: 1.0 0.0;
            rel2.offset: -1 -1;
         }
      }
      part { name: "elm.swallow.slot.right"; type: SWALLOW;
         description { state: "default" 0.0;
            align: 0.0 0.5;
            rel1.to: "elm.swallow.slot.middle";
            rel1.relative: 1.0 0.0;
            rel1.offset: 0 0;
            rel2.to: "elm.swallow.slot.middle";
            rel2.relative: 1.0 1.0;
            rel2.offset: 0 -1;
         }
      }
      part { name: "elm.swallow.slot.bottom-right"; type: SWALLOW;
         description { state: "default" 0.0;
            align: 0.0 0.0;
            rel1.to: "elm.swallow.slot.middle";
            rel1.relative: 1.0 1.0;
            rel1.offset: 0 0;
            rel2.to: "elm.swallow.slot.middle";
            rel2.relative: 1.0 1.0;
            rel2.offset: -1 -1;
         }
      }
      part { name: "elm.swallow.slot.bottom"; type: SWALLOW;
         description { state: "default" 0.0;
            align: 0.5 0.0;
            rel1.to: "elm.swallow.slot.middle";
            rel1.relative: 0.0 1.0;
            rel1.offset: 0 0;
            rel2.to: "elm.swallow.slot.middle";
            rel2.relative: 1.0 1.0;
            rel2.offset: -1 0;
         }
      }
      part { name: "elm.swallow.slot.bottom-left"; type: SWALLOW;
         description { state: "default" 0.0;
            align: 1.0 0.0;
            rel1.to: "elm.swallow.slot.middle";
            rel1.relative: 0.0 1.0;
            rel1.offset: 0 0;
            rel2.to: "elm.swallow.slot.middle";
            rel2.relative: 0.0 1.0;
            rel2.offset: -1 0;
         }
      }
      part { name: "elm.swallow.slot.middle"; type: SWALLOW;
         description { state: "default" 0.0;
            rel1.to: "elm.swallow.size";
            rel2.to: "elm.swallow.size";
         }
      }
   }
   programs {
      program { name: "end";
         signal: "mouse,up,*"; source: "base";
         script {
            if (get_int(on_dismiss) == 0) {
               emit("elm,action,dismiss", "elm");
               set_int(on_dismiss, 1);
            }
         }
      }
      program { name: "hide";
         signal: "elm,action,hide"; source: "elm";
         after: "hidefinished";
      }
      program { name: "hidefinished";
         script {
            set_int(on_dismiss, 0);
            emit("elm,action,hide,finished", "elm");
         }
      }
   }
}

group { name: "elm/hover/base/popout";
   data.item: "dismiss" "on";
   images.image: "button_normal.png" COMP;
   script {
      public on_dismiss = 0;
   }
   parts {
      part { name: "elm.swallow.offset"; type: SWALLOW;
         description { state: "default" 0.0;
            align: 0.0 0.0;
            rel1.relative: 0.0 0.0;
            rel2.relative: 0.0 0.0;
         }
      }
      part { name: "elm.swallow.size"; type: SWALLOW;
         description { state: "default" 0.0;
            align: 0.0 0.0;
            rel1.to: "elm.swallow.offset";
            rel1.relative: 1.0 1.0;
            rel2.to: "elm.swallow.offset";
            rel2.relative: 1.0 1.0;
         }
      }
      part { name: "base"; type: RECT; mouse_events: 1;
         description { state: "default" 0.0;
            color: 0 0 0 0;
         }
         description { state: "visible" 0.0;
            inherit: "default" 0.0;
            color: 0 0 0 64;
         }
      }
      part { name: "leftclip"; type: RECT;
         description { state: "default" 0.0;
            rel2.to_x: "pop";
            rel2.relative: 0.0 1.0;
            rel2.offset: 1 -1;
         }
      }
      part { name: "left";
         clip_to: "leftclip";
         description { state: "default" 0.0;
            visible: 0;
            rel1.to: "elm.swallow.slot.left";
            rel1.offset: -5 -5;
            rel2.to: "elm.swallow.slot.left";
            rel2.offset: 4 4;
            image.normal: "button_normal.png";
            image.border: 4 4 3 5;
            image.middle: SOLID;
         }
         description { state: "visible" 0.0;
            inherit: "default" 0.0;
            visible: 1;
         }
      }
      part { name: "elm.swallow.slot.left"; type: SWALLOW;
         clip_to: "leftclip";
         description { state: "default" 0.0;
            align: 0.0 0.5;
            rel1.to: "elm.swallow.slot.middle";
            rel1.relative: 0.0 0.0;
            rel1.offset: -1 0;
            rel2.to: "elm.swallow.slot.middle";
            rel2.relative: 0.0 1.0;
            rel2.offset: -1 -1;
         }
         description { state: "visible" 0.0;
            inherit: "default" 0.0;
            rel1.offset: -7 0;
            rel2.offset: -7 -1;
            align: 1.0 0.5;
         }
      }
      part { name: "rightclip"; type: RECT;
         description { state: "default" 0.0;
            rel1.to_x: "pop";
            rel1.relative: 1.0 0.0;
            rel1.offset: -2 0;
         }
      }
      part { name: "right";
         clip_to: "rightclip";
         description { state: "default" 0.0;
            visible: 0;
            rel1.to: "elm.swallow.slot.right";
            rel1.offset: -5 -5;
            rel2.to: "elm.swallow.slot.right";
            rel2.offset: 4 4;
            image.normal: "button_normal.png";
            image.border: 4 4 3 5;
            image.middle: SOLID;
         }
         description { state: "visible" 0.0;
            inherit: "default" 0.0;
            visible: 1;
         }
      }
      part { name: "elm.swallow.slot.right"; type: SWALLOW;
         clip_to: "rightclip";
         description { state: "default" 0.0;
            align: 1.0 0.5;
            rel1.to: "elm.swallow.slot.middle";
            rel1.relative: 1.0 0.0;
            rel1.offset: 0 0;
            rel2.to: "elm.swallow.slot.middle";
            rel2.relative: 1.0 1.0;
            rel2.offset: 0 -1;
         }
         description { state: "visible" 0.0;
            inherit: "default" 0.0;
            rel1.offset: 6 0;
            rel2.offset: 6 -1;
            align: 0.0 0.5;
         }
      }
      part { name: "topclip"; type: RECT;
         description { state: "default" 0.0;
            rel2.to_y: "pop";
            rel2.relative: 1.0 0.0;
            rel2.offset: -1 1;
         }
      }
      part { name: "top";
         clip_to: "topclip";
         description { state: "default" 0.0;
            visible: 0;
            rel1.to: "elm.swallow.slot.top";
            rel1.offset: -5 -5;
            rel2.to: "elm.swallow.slot.top";
            rel2.offset: 4 4;
            image.normal: "button_normal.png";
            image.border: 4 4 3 5;
            image.middle: SOLID;
         }
         description { state: "visible" 0.0;
            inherit: "default" 0.0;
            visible: 1;
         }
      }
      part { name: "elm.swallow.slot.top"; type: SWALLOW;
         clip_to: "topclip";
         description { state: "default" 0.0;
            visible: 1;
            align: 0.5 0.0;
            rel1.to: "elm.swallow.slot.middle";
            rel1.relative: 0.0 0.0;
            rel1.offset: 0 -1;
            rel2.to: "elm.swallow.slot.middle";
            rel2.relative: 1.0 0.0;
            rel2.offset: -1 -1;
         }
         description { state: "visible" 0.0;
            inherit: "default" 0.0;
            rel1.offset: 0 -7;
            rel2.offset: -1 -7;
            align: 0.5 1.0;
         }
      }
      part { name: "bottomclip"; type: RECT;
         description { state: "default" 0.0;
            rel1.to_y: "pop";
            rel1.relative: 0.0 1.0;
            rel1.offset: -1 -2;
         }
      }
      part { name: "bottom";
         clip_to: "bottomclip";
         description { state: "default" 0.0;
            visible: 0;
            rel1.to: "elm.swallow.slot.bottom";
            rel1.offset: -5 -5;
            rel2.to: "elm.swallow.slot.bottom";
            rel2.offset: 4 4;
            image.normal: "button_normal.png";
            image.border: 4 4 3 5;
            image.middle: SOLID;
         }
         description { state: "visible" 0.0;
            inherit: "default" 0.0;
            visible: 1;
         }
      }
      part { name: "elm.swallow.slot.bottom"; type: SWALLOW;
         clip_to: "bottomclip";
         description { state: "default" 0.0;
            align: 0.5 1.0;
            rel1.to: "elm.swallow.slot.middle";
            rel1.relative: 0.0 1.0;
            rel1.offset: 0 0;
            rel2.to: "elm.swallow.slot.middle";
            rel2.relative: 1.0 1.0;
            rel2.offset: -1 0;
         }
         description { state: "visible" 0.0;
            inherit: "default" 0.0;
            rel1.offset: 0 6;
            rel2.offset: -1 6;
            align: 0.5 0.0;
         }
      }
      part { name: "pop"; mouse_events: 1;
         description { state: "default" 0.0;
            rel1.to: "elm.swallow.slot.middle";
            rel1.offset: -6 -6;
            rel2.to: "elm.swallow.slot.middle";
            rel2.offset: 5 5;
            image.normal: "button_normal.png";
            image.border: 4 4 3 5;
            image.middle: SOLID;
         }
      }
      part { name: "elm.swallow.slot.middle"; type: SWALLOW;
         description { state: "default" 0.0;
            rel1.to: "elm.swallow.size";
            rel2.to: "elm.swallow.size";
         }
      }
   }
   programs {
      program { name: "end";
         signal: "mouse,up,*"; source: "base";
         script {
            if (get_int(on_dismiss) == 0) {
               emit("elm,action,dismiss", "elm");
               set_int(on_dismiss, 1);
            }
         }
      }
      program { name: "show";
         signal: "elm,action,show"; source: "elm";
         action: STATE_SET "visible" 0.0;
         target: "base";
      }
      program { name: "hide";
         signal: "elm,action,hide"; source: "elm";
         action: STATE_SET "default" 0.0;
         transition: DECELERATE 0.5;
         target: "base";
         after: "hidefinished";
      }
      program { name: "hidefinished";
         script {
            set_int(on_dismiss, 0);
            emit("elm,action,hide,finished", "elm");
         }
      }
      program { name: "leftshow";
         signal: "elm,action,slot,left,show"; source: "elm";
         action: STATE_SET "visible" 0.0;
         transition: DECELERATE 0.5;
         target: "left";
         target: "elm.swallow.slot.left";
      }
      program { name: "lefthide";
         signal: "elm,action,slot,left,hide"; source: "elm";
         action: STATE_SET "default" 0.0;
         transition: DECELERATE 0.5;
         target: "left";
         target: "elm.swallow.slot.left";
      }
      program { name: "rightshow";
         signal: "elm,action,slot,right,show"; source: "elm";
         action: STATE_SET "visible" 0.0;
         transition: DECELERATE 0.5;
         target: "right";
         target: "elm.swallow.slot.right";
      }
      program { name: "righthide";
         signal: "elm,action,slot,right,hide"; source: "elm";
         action: STATE_SET "default" 0.0;
         transition: DECELERATE 0.5;
         target: "right";
         target: "elm.swallow.slot.right";
      }
      program { name: "topshow";
         signal: "elm,action,slot,top,show"; source: "elm";
         action: STATE_SET "visible" 0.0;
         transition: DECELERATE 0.5;
         target: "top";
         target: "elm.swallow.slot.top";
      }
      program { name: "tophide";
         signal: "elm,action,slot,top,hide"; source: "elm";
         action: STATE_SET "default" 0.0;
         transition: DECELERATE 0.5;
         target: "top";
         target: "elm.swallow.slot.top";
      }
      program { name: "bottomshow";
         signal: "elm,action,slot,bottom,show"; source: "elm";
         action: STATE_SET "visible" 0.0;
         transition: DECELERATE 0.5;
         target: "bottom";
         target: "elm.swallow.slot.bottom";
      }
      program { name: "bottomhide";
         signal: "elm,action,slot,bottom,hide"; source: "elm";
         action: STATE_SET "default" 0.0;
         transition: DECELERATE 0.5;
         target: "bottom";
         target: "elm.swallow.slot.bottom";
      }
   }
}

group { name: "elm/hover/base/hoversel_vertical/default";
   alias: "elm/hover/base/hoversel_vertical/entry";
   alias: "elm/hover/base/combobox_vertical/entry";
   alias: "elm/hover/base/combobox_vertical/default";
   images.image: "button_normal.png" COMP;
   images.image: "vertical_separated_bar_glow.png" COMP;
   data.item: "dismiss" "on";
   // max_size limits the maximum size of expanded hoversel
   // when it's scrollable.
   //data.item: "max_size" "60";
   script {
      public visible = 0;
      public right = 0;
      public on_dismiss = 0;
      public topshow2() {
         if (get_int(right) == 0)
            run_program(PROGRAM:"topshow_default");
         else
            run_program(PROGRAM:"topshow_right");
         set_int(visible, 1);
         set_int(on_dismiss, 0);
      }
      public bottomshow2() {
         if (get_int(right) == 0)
            run_program(PROGRAM:"bottomshow_default");
         else
            run_program(PROGRAM:"bottomshow_right");
         set_int(visible, 1);
         set_int(on_dismiss, 0);
      }
   }
   parts {
      part { name: "elm.swallow.offset"; type: SWALLOW;
         description { state: "default" 0.0;
            align: 0.0 0.0;
            rel1.relative: 0.0 0.0;
            rel2.relative: 0.0 0.0;
         }
      }
      part { name: "elm.swallow.size"; type: SWALLOW;
         description { state: "default" 0.0;
            align: 0.0 0.0;
            rel1.to: "elm.swallow.offset";
            rel1.relative: 1.0 1.0;
            rel2.to: "elm.swallow.offset";
            rel2.relative: 1.0 1.0;
         }
      }
      part { name: "button_image"; mouse_events: 1;
         description { state: "default" 0.0;
            rel1.to_x: "limit0";
            rel1.to_y: "elm.swallow.slot.top";
            rel1.offset: -2 -4;
            rel2.to_x: "limit1";
            rel2.to_y: "elm.swallow.slot.middle";
            rel2.relative: 1.0 0.0;
            rel2.offset: 9 4;
            image {
               normal: "button_normal.png";
               border: 7 7 7 7;
            }
            image.middle: SOLID;
         }
         description { state: "bottom" 0.0;
            rel1.to_x: "limit0";
            rel1.to_y: "elm.swallow.slot.middle";
            rel1.relative: 0.0 1.0;
            rel1.offset: -2 -4;
            rel2.to_x: "limit1";
            rel2.to_y: "elm.swallow.slot.bottom";
            rel2.offset: 9 4;
            image {
               normal: "button_normal.png";
               border: 7 7 7 7;
            }
            image.middle: SOLID;
         }
      }
      part { name: "limit0"; type: SPACER;
         description { state: "default" 0.0;
            rel1.to_x: "elm.swallow.slot.top";
            rel1.offset: 1 0;
            rel2.to_x: "elm.swallow.slot.middle";
            rel2.offset: 0 0;
            rel2.relative: 0.0 1.0;
            align: 0.0 0.5;
            min: 1 1;
            max: 1 99999;
         }
         description { state: "bottom" 0.0;
            inherit: "default" 0.0;
            rel1.to_x: "elm.swallow.slot.bottom";
         }
      }
      part { name: "limit1"; type: SPACER;
         description { state: "default" 0.0;
            rel1.to_x: "elm.swallow.slot.middle";
            rel1.offset: -1 0;
            rel1.relative: 1.0 0.0;
            rel2.to_x: "elm.swallow.slot.top";
            rel2.offset: -2 0;
            align: 1.0 0.5;
            min: 1 1;
            max: 1 99999;
         }
         description { state: "bottom" 0.0;
            inherit: "default" 0.0;
            rel2.to_x: "elm.swallow.slot.bottom";
         }
      }
      part { name: "select_line"; mouse_events: 0;
         description { state: "default" 0.0;
            fixed: 1 1;
            align: 1.0 0.5;
            min: 15 10;
            rel1.to: "button_image";
            rel1.relative: 1.0 0.0;
            rel1.offset: 1 -3;
            rel2.to: "button_image";
            rel2.offset: 1 0;
            image.normal: "vertical_separated_bar_glow.png";
            image.border: 7 7 7 7;
            fill.smooth : 0;
         }
      }
      part { name: "base"; type: RECT;
         description { state: "default" 0.0;
            color: 0 0 0 0;
         }
         description { state: "visible" 0.0;
            inherit: "default" 0.0;
            color: 0 0 0 0;
         }
      }
      part { name: "topclip"; type: RECT;
         description { state: "default" 0.0;
            rel2.to_y: "button_image";
            rel2.offset: -1 -6;
         }
      }
      part { name: "elm.swallow.slot.top"; type: SWALLOW;
         clip_to: "topclip";
         description { state: "default" 0.0;
            visible: 1;
            align: 0.0 0.0;
            rel1.to: "elm.swallow.slot.middle";
            rel1.relative: 0.0 0.0;
            rel1.offset: 0 -1;
            rel2.to: "elm.swallow.slot.middle";
            rel2.relative: 1.0 0.0;
            /* set negative offset along x axis not to make
               "select_line" part exceed parent's width */
            rel2.offset: -9 -1;
         }
         description { state: "visible" 0.0;
            inherit: "default" 0.0;
            align: 0.0 1.0;
         }
         description { state: "right" 0.0;
            inherit: "default" 0.0;
            align: 1.0 0.0;
            rel2.offset: -9 0;
         }
         description { state: "right_visible" 0.0;
            inherit: "default" 0.0;
            align: 1.0 1.0;
            rel2.offset: -9 0;
         }
      }
      part { name: "bottomclip"; type: RECT;
         description { state: "default" 0.0;
            rel1.to_y: "button_image";
            rel1.offset: 0 3;
         }
      }
      part { name: "elm.swallow.slot.bottom"; type: SWALLOW;
         clip_to: "bottomclip";
         description { state: "default" 0.0;
            align: 0.0 1.0;
            rel1.to: "elm.swallow.slot.middle";
            rel1.relative: 0.0 1.0;
            rel1.offset: 0 0;
            rel2.to: "elm.swallow.slot.middle";
            rel2.relative: 1.0 1.0;
            /* set negative offset along x axis not to make
               "select_line" part exceed parent's width */
            rel2.offset: -9 2;
         }
         description { state: "visible" 0.0;
            inherit: "default" 0.0;
            align: 0.0 0.0;
         }
         description { state: "right" 0.0;
            inherit: "default" 0.0;
            align: 1.0 1.0;
            rel2.offset: -9 0;
         }
         description { state: "right_visible" 0.0;
            inherit: "default" 0.0;
            align: 1.0 0.0;
            rel2.offset: -9 0;
         }
      }
      part { name: "elm.swallow.slot.middle";
         type: SWALLOW;
         description { state: "default" 0.0;
            rel1.to: "elm.swallow.size";
            rel2.to: "elm.swallow.size";
         }
      }
   }
   programs {
      program { name: "end";
         signal: "mouse,up,*"; source: "base";
         script {
            if (get_int(on_dismiss) == 0) {
               emit("elm,action,dismiss", "elm");
               set_int(on_dismiss, 1);
            }
         }
      }
      program { name: "show";
         signal: "elm,action,show"; source: "elm";
         action: STATE_SET "visible" 0.0;
         target: "base";
      }
      program { name: "hide";
         signal: "elm,action,hide"; source: "elm";
         action: STATE_SET "default" 0.0;
         transition: DECELERATE 0.5;
         target: "base";
         after: "hidefinished";
      }
      program { name: "hide_no_animate";
         signal: "elm,action,hide,no_animate"; source: "elm";
         action: STATE_SET "default" 0.0;
         target: "base";
         after: "hidefinished";
      }
      program { name: "hidefinished";
         script {
            set_int(on_dismiss, 0);
            emit("elm,action,hide,finished", "elm");
         }
      }
      program { name: "topshow";
         signal: "elm,action,slot,top,show"; source: "elm";
         script {
            set_state(PART:"limit0", "default", 0.0);
            set_state(PART:"limit1", "default", 0.0);
            set_state(PART:"button_image", "default", 0.0);
            topshow2();
         }
      }
      program { name: "topshow_default";
         action: STATE_SET "visible" 0.0;
         target: "elm.swallow.slot.top";
         transition: DECELERATE 0.5;
      }
      program { name: "topshow_right";
         action: STATE_SET "right_visible" 0.0;
         target: "elm.swallow.slot.top";
         transition: DECELERATE 0.5;
      }
      program { name: "tophide";
         signal: "elm,action,slot,top,hide";
         source: "elm";
         script {
            if (get_int(right) == 0)
               run_program(PROGRAM:"tophide_default");
            else
               run_program(PROGRAM:"tophide_right");
            set_int(visible, 0);
         }
      }
      program { name: "tophide_default";
         action: STATE_SET "default" 0.0;
         target: "elm.swallow.slot.top";
         transition: DECELERATE 0.5;
      }
      program { name: "tophide_right";
         action: STATE_SET "right" 0.0;
         target: "elm.swallow.slot.top";
         transition: DECELERATE 0.5;
      }
      program { name: "bottomshow";
         signal: "elm,action,slot,bottom,show"; source: "elm";
         script {
            set_state(PART:"limit0", "bottom", 0.0);
            set_state(PART:"limit1", "bottom", 0.0);
            set_state(PART:"button_image", "bottom", 0.0);
            bottomshow2();
         }
      }
      program { name: "bottomshow_default";
         action: STATE_SET "visible" 0.0;
         target: "elm.swallow.slot.bottom";
         transition: DECELERATE 0.5;
      }
      program { name: "bottomshow_right";
         action: STATE_SET "right_visible" 0.0;
         target: "elm.swallow.slot.bottom";
         transition: DECELERATE 0.5;
      }
      program { name: "bottomhide";
         signal: "elm,action,slot,bottom,hide"; source: "elm";
         script {
            if (get_int(right) == 0) {
               run_program(PROGRAM:"bottomhide_default");
            }
            else {
               run_program(PROGRAM:"bottomhide_right");
            }
            set_int(visible, 0);
         }
      }
      program { name: "bottomhide_default";
         action: STATE_SET "default" 0.0;
         target: "elm.swallow.slot.bottom";
         transition: DECELERATE 0.5;
      }
      program { name: "bottomhide_right";
         action: STATE_SET "right" 0.0;
         target: "elm.swallow.slot.bottom";
         transition: DECELERATE 0.5;
      }
      program { name: "align_right";
         signal: "elm,state,align,right"; source: "elm";
         script {
            set_int(right, 1);
            if (get_int(visible) == 0) {
               set_state(PART:"elm.swallow.slot.top", "right", 0.0);
               set_state(PART:"elm.swallow.slot.bottom", "right", 0.0);
            }
            else {
               set_state(PART:"elm.swallow.slot.top", "right_visible", 0.0);
               set_state(PART:"elm.swallow.slot.bottom", "right_visible", 0.0);
            }
         }
      }
      program { name: "align_default";
         signal: "elm,state,align,default"; source: "elm";
         script {
            set_int(right, 0);
            if (get_int(visible) == 0) {
               set_state(PART:"elm.swallow.slot.top", "default", 0.0);
               set_state(PART:"elm.swallow.slot.bottom", "default", 0.0);
            }
            else {
               set_state(PART:"elm.swallow.slot.top", "visible", 0.0);
               set_state(PART:"elm.swallow.slot.bottom", "visible", 0.0);
            }
         }
      }
   }
}

group { name: "elm/hover/base/hoversel_horizontal/default";
   alias: "elm/hover/base/hoversel_horizontal/entry";
   images.image: "button_normal.png" COMP;
   data.item: "dismiss" "on";
   script {
      public on_dismiss = 0;
   }
   // max_size limits the maximum size of expanded hoversel
   // when it's scrollable.
   //data.item: "max_size" "120";
   parts {
      part { name: "elm.swallow.offset"; type: SWALLOW;
         description { state: "default" 0.0;
            align: 0.0 0.0;
            rel1.relative: 0.0 0.0;
            rel2.relative: 0.0 0.0;
         }
      }
      part { name: "elm.swallow.size"; type: SWALLOW;
         description { state: "default" 0.0;
            align: 0.0 0.0;
            rel1.to: "elm.swallow.offset";
            rel1.relative: 1.0 1.0;
            rel2.to: "elm.swallow.offset";
            rel2.relative: 1.0 1.0;
         }
      }
      part { name: "base"; type: RECT;
         description { state: "default" 0.0;
            color: 0 0 0 0;
         }
         description { state: "visible" 0.0;
            inherit: "default" 0.0;
            color: 0 0 0 0;
         }
      }
      part { name: "button_image"; mouse_events: 0;
         description { state: "default" 0.0;
            rel1.to_x: "elm.swallow.slot.left";
            rel1.to_y: "elm.swallow.slot.left";
            rel1.offset: -10 0;
            rel2.to_x: "elm.swallow.slot.middle";
            rel2.to_y: "elm.swallow.slot.left";
            rel2.relative: 0.0 1.0;
            rel2.offset: 4 9;
            image {
               normal: "button_normal.png";
               border: 7 7 7 7;
            }
            image.middle: SOLID;
         }
         description { state: "right" 0.0;
            rel1.to_x: "elm.swallow.slot.middle";
            rel1.to_y: "elm.swallow.slot.right";
            rel1.relative: 1.0 0.0;
            rel1.offset: -5 0;
            rel2.to_x: "elm.swallow.slot.right";
            rel2.to_y: "elm.swallow.slot.right";
            rel2.offset: 10 9;
            image {
               normal: "button_normal.png";
               border: 7 7 7 7;
            }
            image.middle: SOLID;
         }
      }
      
      part { name: "leftclip"; type: RECT;
         description { state: "default" 0.0;
            rel2.to_x: "elm.swallow.slot.middle";
            rel2.relative: 0.0 1.0;
         }
      }
      part { name: "elm.swallow.slot.left"; type: SWALLOW;
         clip_to: "leftclip";
         description { state: "default" 0.0;
            align: 0.0 0.0;
            rel1.to: "elm.swallow.slot.middle";
            rel1.relative: 0.0 0.0;
            rel1.offset: -1 0;
            rel2.to: "elm.swallow.slot.middle";
            rel2.relative: 0.0 1.0;
            rel2.offset: -1 -1;
         }
         description { state: "visible" 0.0;
            inherit: "default" 0.0;
            rel1.offset: -7 0;
            rel2.offset: -7 -1;
            align: 1.0 0.0;
         }
      }
      part { name: "rightclip"; type: RECT;
         description { state: "default" 0.0;
            rel1.to_x: "elm.swallow.slot.middle";
            rel1.relative: 1.0 0.0;
         }
      }
      part { name: "elm.swallow.slot.right"; type: SWALLOW;
         clip_to: "rightclip";
         description { state: "default" 0.0;
            align: 1.0 0.0;
            rel1.to: "elm.swallow.slot.middle";
            rel1.relative: 1.0 0.0;
            rel1.offset: 0 0;
            rel2.to: "elm.swallow.slot.middle";
            rel2.relative: 1.0 1.0;
            rel2.offset: 0 -1;
         }
         description { state: "visible" 0.0;
            inherit: "default" 0.0;
            rel1.offset: 6 0;
            rel2.offset: -6 -1;
            align: 0.0 0.0;
         }
      }
      part { name: "elm.swallow.slot.middle"; type: SWALLOW;
         description { state: "default" 0.0;
            rel1.to: "elm.swallow.size";
            rel2.to: "elm.swallow.size";
         }
      }
   }
   programs {
      program { name: "end";
         signal: "mouse,up,*"; source: "base";
         script {
            if (get_int(on_dismiss) == 0) {
               emit("elm,action,dismiss", "elm");
               set_int(on_dismiss, 1);
            }
         }
      }
      program { name: "show";
         signal: "elm,action,show"; source: "elm";
         action: STATE_SET "visible" 0.0;
         transition: DECELERATE 0.5;
         target: "base";
      }
      program { name: "hide";
         signal: "elm,action,hide"; source: "elm";
         action: STATE_SET "default" 0.0;
         transition: DECELERATE 0.5;
         target: "base";
         after: "hidefinished";
      }
      program { name: "hidefinished";
         script {
            set_int(on_dismiss, 0);
            emit("elm,action,hide,finished", "elm");
         }
      }

      program { name: "leftshow";
         signal: "elm,action,slot,left,show"; source: "elm";
         action: STATE_SET "visible" 0.0;
         transition: DECELERATE 0.5;
         target: "elm.swallow.slot.left";
      }
      program { name: "leftshow3";
         signal: "elm,action,slot,left,show"; source: "elm";
         action: STATE_SET "default" 0.0;
         transition: DECELERATE 0.5;
         target: "button_image";
      }
      program { name: "lefthide";
         signal: "elm,action,slot,left,hide"; source: "elm";
         action: STATE_SET "default" 0.0;
         transition: DECELERATE 0.5;
         target: "elm.swallow.slot.left";
      }
      
      program { name: "rightshow";
         signal: "elm,action,slot,right,show"; source: "elm";
         action: STATE_SET "visible" 0.0;
         transition: DECELERATE 0.5;
         target: "elm.swallow.slot.right";
      }
      program { name: "rightshow3";
         signal: "elm,action,slot,right,show"; source: "elm";
         action: STATE_SET "right" 0.0;
         transition: DECELERATE 0.5;
         target: "button_image";
      }
      program { name: "righthide";
         signal: "elm,action,slot,right,hide"; source: "elm";
         action: STATE_SET "default" 0.0;
         transition: DECELERATE 0.5;
         target: "elm.swallow.slot.right";
      }
   }
}