From: Enlightenment S. <no-...@en...> - 2009-05-13 18:20:06
|
Log: Remove from the list the wired interface associated to a wireless interface Author: watchwolf Date: 2009-05-13 11:19:59 -0700 (Wed, 13 May 2009) New Revision: 40623 Modified: trunk/PROTO/exalt/src/bin/boot_process.c trunk/PROTO/exalt/src/bin/cb_ethernet.c trunk/PROTO/exalt/src/lib/exalt_ethernet.c trunk/PROTO/exalt/src/lib/exalt_ethernet.h trunk/PROTO/exalt/src/lib/exalt_sys_conf.c trunk/PROTO/eyelight/data/presentations/eyelight/eyelight.elt trunk/PROTO/eyelight/data/themes/default/layout.edc trunk/PROTO/eyelight/data/themes/default/theme.edc trunk/PROTO/eyelight/src/lib/eyelight_compiler.c Modified: trunk/PROTO/exalt/src/bin/boot_process.c =================================================================== --- trunk/PROTO/exalt/src/bin/boot_process.c 2009-05-13 16:40:42 UTC (rev 40622) +++ trunk/PROTO/exalt/src/bin/boot_process.c 2009-05-13 18:19:59 UTC (rev 40623) @@ -274,7 +274,7 @@ /*we can't send a broadcast without specify a interface * that's why we create a special ethernet struct without name :) */ - eth = exalt_eth_new("No interface is specify with the signal EXALTD_ETH_CB_WAITINGBOOT_CHANGE"); + eth = exalt_eth_new("No interface is specify with the signal EXALTD_ETH_CB_WAITINGBOOT_CHANGE","no device"); if(eth) eth_cb(eth,EXALTD_ETH_CB_WAITINGBOOT_TIMEOUT_CHANGE,exaltd_conn); Modified: trunk/PROTO/exalt/src/bin/cb_ethernet.c =================================================================== --- trunk/PROTO/exalt/src/bin/cb_ethernet.c 2009-05-13 16:40:42 UTC (rev 40622) +++ trunk/PROTO/exalt/src/bin/cb_ethernet.c 2009-05-13 18:19:59 UTC (rev 40623) @@ -326,7 +326,7 @@ return reply); - exalt_eth_up_without_apply(eth); + exalt_eth_up(eth); dbus_args_valid_append(reply); return reply; Modified: trunk/PROTO/exalt/src/lib/exalt_ethernet.c =================================================================== --- trunk/PROTO/exalt/src/lib/exalt_ethernet.c 2009-05-13 16:40:42 UTC (rev 40622) +++ trunk/PROTO/exalt/src/lib/exalt_ethernet.c 2009-05-13 18:19:59 UTC (rev 40623) @@ -7,11 +7,8 @@ * Private functions headers */ -/* - * TODO: remove up_without_apply if the new wpa_supplicant allows to do it - * change exalt_eth_free to take a Exalt_Ethernet** and exalt_wireless_free to take a Exalt_Wireless** - */ + const char* _exalt_eth_save_ip_get(Exalt_Ethernet* eth); const char* _exalt_eth_save_gateway_get(Exalt_Ethernet* eth); const char* _exalt_eth_save_netmask_get(Exalt_Ethernet* eth); @@ -27,6 +24,7 @@ int _exalt_eth_udi_set(Exalt_Ethernet* eth,const char* udi); int _exalt_eth_ifindex_set(Exalt_Ethernet* eth,int ifindex); int _exalt_eth_name_set(Exalt_Ethernet* eth,const char* name); +int _exalt_eth_device_set(Exalt_Ethernet* eth,const char* device); void _exalt_cb_is_net(void *user_data, void *reply_data, DBusError *error); @@ -48,6 +46,7 @@ struct Exalt_Ethernet { char* name; //eth0, eth1... + char *device; char* udi; int ifindex; @@ -66,8 +65,11 @@ time_t dont_apply_after_up; }; - -Exalt_Ethernet* exalt_eth_new(const char* name) +/** + * Create an ethernet interface struct with a wireless exntesion if the interface is a wireless + * Returns null if the interface is a wired interface and we have a wireless interface with the same device. + */ +Exalt_Ethernet* exalt_eth_new(const char* name, const char* device) { struct iwreq wrq; Exalt_Ethernet* eth; @@ -76,12 +78,40 @@ EXALT_ASSERT_RETURN(eth!=NULL); _exalt_eth_name_set(eth,name); + _exalt_eth_device_set(eth,device); //test if the interface has a wireless extension strncpy(wrq.ifr_name, exalt_eth_name_get(eth), sizeof(wrq.ifr_name)); if(exalt_ioctl(&wrq, SIOCGIWNAME)) eth->wireless = exalt_wireless_new(eth); + //test if we have a interface with the same device + //Some wifi driver as the generic linux driver create 2 itnerface for a wireless interface + //A wired and a wireless interface, only the wireless interface is interesting + + Exalt_Ethernet *eth_res = NULL; + Eina_List *l = exalt_eth_list_get(); + Eina_List *l_temp; + Exalt_Ethernet *eth_temp; + EINA_LIST_FOREACH(l,l_temp,eth_temp) + { + const char *device_temp = exalt_eth_device_get(eth_temp); + if(device_temp && device && strcmp(device_temp,device)==0) + { + //remove the wired interface + eth_res = eth_temp; + } + } + + if(eth_res && exalt_eth_wireless_is(eth)) + { + _exalt_eth_udi_remove(exalt_eth_udi_get(eth_temp)); + } + else if(eth_res) + { + exalt_eth_free(eth); + eth = NULL; + } return eth; } @@ -97,6 +127,7 @@ { Exalt_Ethernet* eth = data; EXALT_FREE(eth->name); + EXALT_FREE(eth->device); EXALT_FREE(eth->udi); EXALT_FREE(eth->_save_ip); EXALT_FREE(eth->_save_netmask); @@ -140,25 +171,6 @@ return ; } -void exalt_eth_up_without_apply(Exalt_Ethernet* eth) -{ - struct ifreq ifr; - - EXALT_ASSERT_RETURN_VOID(eth!=NULL); - - strncpy(ifr.ifr_name,exalt_eth_name_get(eth),sizeof(ifr.ifr_name)); - - if( !exalt_ioctl(&ifr, SIOCGIFFLAGS)) - return ; - - ifr.ifr_flags |= IFF_UP; - if( !exalt_ioctl(&ifr, SIOCSIFFLAGS)) - return ; - - eth->dont_apply_after_up = (int)time(NULL); -} - - void exalt_eth_dontapplyafterup_set(Exalt_Ethernet * eth, time_t t) { EXALT_ASSERT(eth!=NULL); @@ -258,6 +270,7 @@ #define EXALT_STRUCT_TYPE Exalt_Ethernet EXALT_GET(name,const char*) + EXALT_GET(device,const char*) EXALT_GET(udi,const char*) EXALT_GET(ifindex,int) EXALT_GET(connection,Exalt_Connection*) @@ -526,7 +539,7 @@ EXALT_ASSERT_RETURN(eth!=NULL); //if the connection is not valid, we send the information as the configuration is done - //else a application will wait a very long time the end of the configuration + //else an application will wait a very long time the end of the configuration //(_exalt_apply_timer()) EXALT_ASSERT_CUSTOM_RET(exalt_conn_valid_is(c), eth->apply_pid = -1; _exalt_apply_timer(eth)); @@ -566,13 +579,11 @@ void exalt_eth_printf() { - void *data; Exalt_Ethernet* eth; Eina_List *l; EINA_LIST_FOREACH(exalt_eth_interfaces.ethernets,l,eth) { - eth = data; printf("### %s ###\n",eth->name); printf("Up: %d\n",exalt_eth_up_is(eth)); if(exalt_eth_dhcp_is(eth)) @@ -745,7 +756,22 @@ return 1; } +/** + * @brief set the device of the interface "eth" + * @param eth the interface + * @param name the new device + * @return Returns 1 if the new name is apply, else 0 + */ +int _exalt_eth_device_set(Exalt_Ethernet* eth, const char* device) +{ + EXALT_ASSERT_RETURN(eth!=NULL); + EXALT_ASSERT_RETURN(device!=NULL); + EXALT_FREE(eth->device); + eth->device=strdup(device); + return 1; +} + /** * @brief set the udi of the interface "eth" * @param eth the interface @@ -793,6 +819,9 @@ if(exalt_eth_interfaces.eth_cb) exalt_eth_interfaces.eth_cb(eth,EXALT_ETH_CB_ACTION_REMOVE,exalt_eth_interfaces.eth_cb_user_data); + + if(exalt_eth_wireless_is(eth)) + exalt_wpa_stop(exalt_eth_wireless_get(eth)); exalt_eth_interfaces.ethernets = eina_list_remove(exalt_eth_interfaces.ethernets,eth); @@ -1154,12 +1183,15 @@ E_Hal_Properties *ret = reply_data; int err = 0; Exalt_Ethernet* eth; - char* str; + char* str, *str2; EXALT_ASSERT_RETURN_VOID(!dbus_error_is_set(error)); str = e_hal_property_string_get(ret,"net.interface", &err); - eth = exalt_eth_new(str); + str2 = e_hal_property_string_get(ret,"net.originating_device", &err); + eth = exalt_eth_new(str,str2); + if(!eth) return ; EXALT_FREE(str); + EXALT_FREE(str2); str = e_hal_property_string_get(ret,"info.udi", &err); _exalt_eth_udi_set(eth,str); @@ -1223,7 +1255,7 @@ { DBusError err; char *udi; - int ret; + DBusPendingCall *ret; dbus_error_init(&err); dbus_message_get_args(msg, &err, DBUS_TYPE_STRING, &udi, DBUS_TYPE_INVALID); Modified: trunk/PROTO/exalt/src/lib/exalt_ethernet.h =================================================================== --- trunk/PROTO/exalt/src/lib/exalt_ethernet.h 2009-05-13 16:40:42 UTC (rev 40622) +++ trunk/PROTO/exalt/src/lib/exalt_ethernet.h 2009-05-13 18:19:59 UTC (rev 40623) @@ -92,7 +92,7 @@ * @param name the name of the interface (eth0, ath3 ...) * @return Return a new Exalt_Ethernet structure */ -Exalt_Ethernet* exalt_eth_new(const char* name); +Exalt_Ethernet* exalt_eth_new(const char* name, const char* device); /** * @brief free exalt_eth_interfaces @@ -177,6 +177,12 @@ */ const char* exalt_eth_name_get(Exalt_Ethernet* eth); /** + * @brief get the device name of the interface "eth" (eth0, eth1 ...) + * @param eth the interface + * @return Returns the device name + */ +const char* exalt_eth_device_get(Exalt_Ethernet* eth); +/** * @brief get the ip address of the interface "eth" * @param eth the interface * @return Returns the ip address (don't forget to free the IP address) @@ -241,7 +247,7 @@ * @param user_data user data * @return Returns 1 if success, else 0 */ -int exalt_eth_cb_set(Exalt_Eth_Cb fct, void* user_data;); +int exalt_eth_cb_set(Exalt_Eth_Cb fct, void* user_data); /** * @brief set the callback scan function * this callback is called when a scan is finish, @@ -274,13 +280,8 @@ */ short exalt_eth_connection_set(Exalt_Ethernet* eth, Exalt_Connection* c); + /** - * @brief up the interface "eth" but tell to the daemon "don't apply a connection", - * sometimes we need upping an interface when we want apply a connection, this method avoid an infinite loop - * @param eth the interface - */ -void exalt_eth_up_without_apply(Exalt_Ethernet* eth); -/** * @brief set the time in seconds when you up the interface * then the daemon will use this value to know if it will apply or not the connection when it will get the notification from the kernel * the daemon use a timeout of x secondes Modified: trunk/PROTO/exalt/src/lib/exalt_sys_conf.c =================================================================== --- trunk/PROTO/exalt/src/lib/exalt_sys_conf.c 2009-05-13 16:40:42 UTC (rev 40622) +++ trunk/PROTO/exalt/src/lib/exalt_sys_conf.c 2009-05-13 18:19:59 UTC (rev 40623) @@ -37,7 +37,7 @@ s.state = exalt_eth_up_is(eth); s.connection = exalt_eth_connection_get(eth); if(exalt_eth_wireless_is(eth)) - s.driver = exalt_wireless_wpasupplicant_driver_get(exalt_eth_wireless_get(eth)); + s.driver = (char*)exalt_wireless_wpasupplicant_driver_get(exalt_eth_wireless_get(eth)); else s.driver = "wext"; Modified: trunk/PROTO/eyelight/data/presentations/eyelight/eyelight.elt =================================================================== --- trunk/PROTO/eyelight/data/presentations/eyelight/eyelight.elt 2009-05-13 16:40:42 UTC (rev 40622) +++ trunk/PROTO/eyelight/data/presentations/eyelight/eyelight.elt 2009-05-13 18:19:59 UTC (rev 40623) @@ -460,905 +460,3 @@ { title: "last slide !!!!!!!!!!!! :)"; } - - -slide -{ - layout: title; - transition_next: fade_content; - - area - { - name: bottom; - text: "Author: Atton Jonathan, alias Watchwolf"; - text: "Writting during the Google Summer Of Code 2008"; - text: "Mentor: Cedric Bail"; - text: "For the Enlightenment project"; - } -} - -slide -{ - layout: blank; - title: "General presentation"; - subtitle: ""; - transition_next: "fade"; - custom_area: "top" 0.1 0.27 0.9 0.6; - custom_area: "center" 0.1 0.6 0.9 0.85; - custom_area: "bottom" 0.1 0.85 0.9 0.95; - area - { - name: "top"; - text: "With Eyelight we can create a presentation from a simple ASCII file and get a beautiful presentation."; - text: "Eyelight is based around the <outline>EFL (Enlightenment Foundation Libraries)</outline> (Ecore, Evas, Edje, EET ...)"; - } - area - { - name: "center"; - layout: "horizontal"; - image - { - image: "images/screen_slide_title.png"; - border: 1; - relative: 0.3 1.0; - } - image - { - image: "images/screen_expose.png"; - border: 1; - relative: 0.3 1.0; - } - image - { - image: "images/screen_slideshow.png"; - border: 1; - relative: 0.3 1.0; - } - } - area - { - name: "bottom"; - text:"<small>Eyelight homepage: http://watchwolf.fr/wiki/doku.php?id=eyelight</small>"; - text:"<small>Enlightenment homepage: http://enlightenment.org</small>"; - } -} - -slide -{ - layout: 2_lines_top; - title: "How it works"; - subtitle: ""; - transition_previous: "fade"; - transition_next: "horizontal"; - area - { - name: top; - items - { - numbering: normal; - text: "The presentation is an <outline>elt</outline> file"; - text: "The compiler converts this file into an <outline>edc</outline> file"; - text: "With an edc theme file, the compiler create an <outline>edje</outline> file"; - text: "Finally the viewer displays the presentation"; - } - } - - area - { - name: bottom; - layout: horizontal; - - image - { - image: "diagram.png"; - border: 1; - } - } -} - - -slide -{ - title: "Creating a presentation"; - subtitle: "a beautifull presentation !"; - transition_previous: "horizontal"; - transition_next: vertical; - area - { - name:left; - layout: vertical; - items - { - numbering: roman; - text: "The presentation is an <outline>elt file</outline>"; - text: "Theme and content are independent"; - text: "Use some blocks and properties to construct your slide: "; - items - { - numbering: none; - text: "blocks slide, items, image ..."; - text: "properties title, image, text ..."; - } - } - } - area - { - name: right; - image - { - image: "code_presentation.png"; - border: 1; - } - } -} - -slide -{ - title: "Creating a theme"; - subtitle: ""; - transition_previous: vertical; - area - { - name: left; - items - { - numbering: normal; - text: "A theme is a list of macros/functions"; - text: "Some macros are used to create a slide: "; - items - { - numbering: none; - text: "Set_title()"; - text: "Add_item_text_vbox()"; - } - text: "Use what you want inside a macro"; - text: "Add your own macros, layouts, transitions ..."; - } - } - area - { - name: right; - image: "code_theme.png"; - } -} - -foot_image: "wolf.png"; -title: "How to include an edc file"; -slide -{ - layout: 1_area; - subtitle: "with some animations"; - - area - { - name: center; - items - { - text: "Create an edc file with your animation."; - text: "All your file has to be in a macro with 1 argument:"; - items - { - text: "this argument define a part"; - text: "all your parts have to be relative to this argument"; - } - text: "In the elt file defines A block 'edc' with 2 properties:"; - items - { - text: "the property 'file' describes the path to your edc file"; - text: "The property 'macro' defines the name of your macro"; - } - } - text: "Result:"; - edc - { - macro: firefox; - file: firefox.edc; - } - } -} - - - -slide -{ - layout: 1_small_line_2_columns; - subtitle: "The source code"; - - area - { - name: top; - text: "And the source code of the presentation is in eyelight.elt"; - text: "The source code of the firefox edc file is in firefox.edc"; - } - - area - { - name: left; - image: "code_block_edc.png"; - } - area - { - name: right; - image: "code_firefox.png"; - } -} - - -slide -{ - layout: 2_columns_right; - title: "The tag list "; - subtitle: "A presentation of the default tags"; - - area - { - name: left; - items - { - text: "no tag"; - text: "small: <small>small text</small>"; - text: "big: <big>big text</big>"; - text: "b: <b>bold</b>"; - text: "i: <i>italic</i>"; - text: "u: <u>underline</u>"; - } - } - area - { - name: right; - items - { - text: "strike: <strike>strike</strike>"; - text: "outline: <outline>outline</outline>"; - text: "shadow: <shadow>shadow</shadow>"; - text: "outline_shadow: <outline_shadow>outline shadow</outline_shadow>"; - text: "c: <c>center</c>"; - text: "r: <r>right</r>"; - text: "l: <l>left</l>"; - } - } -} - - - -slide -{ - layout: title; - title: "Layout title"; -} - -slide -{ - layout: 1_area; - title: "Layout 1_area"; -} - -slide -{ - layout: blank; - title: "Layout blank"; -} - -slide -{ - layout: 2_columns; - title: "Layout 2_columns"; -} - -slide -{ - layout: 2_columns_left; - title: "Layout 2_columns_left"; -} - -slide -{ - layout: 2_columns_right; - title: "Layout 2_columns_right"; -} - -slide -{ - layout: 2_lines; - title: "Layout 2_lines"; -} - -slide -{ - layout: 2_lines_top; - title: "Layout 2_lines_top"; -} - -slide -{ - layout: 2_lines_bottom; - title: "Layout 2_lines_bottom"; -} - -slide -{ - layout: 1_small_line_2_columns; - title: "Layout 1_small_line_2_columns"; -} - -slide -{ - layout: 1_line_2_columns; - title: "Layout 1_line_2_columns"; -} - -slide -{ - layout: 2_columns_1_line; - title: "Layout 2_columns_1_line"; -} - -slide -{ - layout: 2_columns_1_small_line; - title: "Layout 2_columns_1_small_line"; -} - -slide -{ - layout: 4_areas; - title: "Layout 4_areas"; -} -slide -{ - layout: 6_areas; - title: "Layout 6_areas"; -} - -slide -{ - layout: blank; - title: "3 customs areas"; - custom_area: "center" 0.4 0.4 0.6 0.6; - custom_area: "left" 0.3 0.2 0.35 0.7; - custom_area: "big" 0.10 0.24 0.87 0.87; - area - { - name:"center"; - text:"hehe"; - } - area - { - name: "left"; - image: "wolf.png"; - } - area - { - name: "big"; - items - { - text: "very big!"; - text: "haha"; - } - } -} - - - -slide -{ - -} - -slide -{ - -} - -slide -{ - -} - -slide -{ - -} - -slide -{ - -} -slide -{ - -} - -slide -{ - -} -slide -{ - -} -slide -{ - -} - -slide -{ - -} - -slide -{ - -} - -slide -{ - -} - -slide -{ - -} - -slide -{ - -} -slide -{ - title: "last slide !!!!!!!!!!!! :)"; -} - - -slide -{ - layout: title; - transition_next: fade_content; - - area - { - name: bottom; - text: "Author: Atton Jonathan, alias Watchwolf"; - text: "Writting during the Google Summer Of Code 2008"; - text: "Mentor: Cedric Bail"; - text: "For the Enlightenment project"; - } -} - -slide -{ - layout: blank; - title: "General presentation"; - subtitle: ""; - transition_next: "fade"; - custom_area: "top" 0.1 0.27 0.9 0.6; - custom_area: "center" 0.1 0.6 0.9 0.85; - custom_area: "bottom" 0.1 0.85 0.9 0.95; - area - { - name: "top"; - text: "With Eyelight we can create a presentation from a simple ASCII file and get a beautiful presentation."; - text: "Eyelight is based around the <outline>EFL (Enlightenment Foundation Libraries)</outline> (Ecore, Evas, Edje, EET ...)"; - } - area - { - name: "center"; - layout: "horizontal"; - image - { - image: "images/screen_slide_title.png"; - border: 1; - relative: 0.3 1.0; - } - image - { - image: "images/screen_expose.png"; - border: 1; - relative: 0.3 1.0; - } - image - { - image: "images/screen_slideshow.png"; - border: 1; - relative: 0.3 1.0; - } - } - area - { - name: "bottom"; - text:"<small>Eyelight homepage: http://watchwolf.fr/wiki/doku.php?id=eyelight</small>"; - text:"<small>Enlightenment homepage: http://enlightenment.org</small>"; - } -} - -slide -{ - layout: 2_lines_top; - title: "How it works"; - subtitle: ""; - transition_previous: "fade"; - transition_next: "horizontal"; - area - { - name: top; - items - { - numbering: normal; - text: "The presentation is an <outline>elt</outline> file"; - text: "The compiler converts this file into an <outline>edc</outline> file"; - text: "With an edc theme file, the compiler create an <outline>edje</outline> file"; - text: "Finally the viewer displays the presentation"; - } - } - - area - { - name: bottom; - layout: horizontal; - - image - { - image: "diagram.png"; - border: 1; - } - } -} - - -slide -{ - title: "Creating a presentation"; - subtitle: "a beautifull presentation !"; - transition_previous: "horizontal"; - transition_next: vertical; - area - { - name:left; - layout: vertical; - items - { - numbering: roman; - text: "The presentation is an <outline>elt file</outline>"; - text: "Theme and content are independent"; - text: "Use some blocks and properties to construct your slide: "; - items - { - numbering: none; - text: "blocks slide, items, image ..."; - text: "properties title, image, text ..."; - } - } - } - area - { - name: right; - image - { - image: "code_presentation.png"; - border: 1; - } - } -} - -slide -{ - title: "Creating a theme"; - subtitle: ""; - transition_previous: vertical; - area - { - name: left; - items - { - numbering: normal; - text: "A theme is a list of macros/functions"; - text: "Some macros are used to create a slide: "; - items - { - numbering: none; - text: "Set_title()"; - text: "Add_item_text_vbox()"; - } - text: "Use what you want inside a macro"; - text: "Add your own macros, layouts, transitions ..."; - } - } - area - { - name: right; - image: "code_theme.png"; - } -} - -foot_image: "wolf.png"; -title: "How to include an edc file"; -slide -{ - layout: 1_area; - subtitle: "with some animations"; - - area - { - name: center; - items - { - text: "Create an edc file with your animation."; - text: "All your file has to be in a macro with 1 argument:"; - items - { - text: "this argument define a part"; - text: "all your parts have to be relative to this argument"; - } - text: "In the elt file defines A block 'edc' with 2 properties:"; - items - { - text: "the property 'file' describes the path to your edc file"; - text: "The property 'macro' defines the name of your macro"; - } - } - text: "Result:"; - edc - { - macro: firefox; - file: firefox.edc; - } - } -} - - - -slide -{ - layout: 1_small_line_2_columns; - subtitle: "The source code"; - - area - { - name: top; - text: "And the source code of the presentation is in eyelight.elt"; - text: "The source code of the firefox edc file is in firefox.edc"; - } - - area - { - name: left; - image: "code_block_edc.png"; - } - area - { - name: right; - image: "code_firefox.png"; - } -} - - -slide -{ - layout: 2_columns_right; - title: "The tag list "; - subtitle: "A presentation of the default tags"; - - area - { - name: left; - items - { - text: "no tag"; - text: "small: <small>small text</small>"; - text: "big: <big>big text</big>"; - text: "b: <b>bold</b>"; - text: "i: <i>italic</i>"; - text: "u: <u>underline</u>"; - } - } - area - { - name: right; - items - { - text: "strike: <strike>strike</strike>"; - text: "outline: <outline>outline</outline>"; - text: "shadow: <shadow>shadow</shadow>"; - text: "outline_shadow: <outline_shadow>outline shadow</outline_shadow>"; - text: "c: <c>center</c>"; - text: "r: <r>right</r>"; - text: "l: <l>left</l>"; - } - } -} - - - -slide -{ - layout: title; - title: "Layout title"; -} - -slide -{ - layout: 1_area; - title: "Layout 1_area"; -} - -slide -{ - layout: blank; - title: "Layout blank"; -} - -slide -{ - layout: 2_columns; - title: "Layout 2_columns"; -} - -slide -{ - layout: 2_columns_left; - title: "Layout 2_columns_left"; -} - -slide -{ - layout: 2_columns_right; - title: "Layout 2_columns_right"; -} - -slide -{ - layout: 2_lines; - title: "Layout 2_lines"; -} - -slide -{ - layout: 2_lines_top; - title: "Layout 2_lines_top"; -} - -slide -{ - layout: 2_lines_bottom; - title: "Layout 2_lines_bottom"; -} - -slide -{ - layout: 1_small_line_2_columns; - title: "Layout 1_small_line_2_columns"; -} - -slide -{ - layout: 1_line_2_columns; - title: "Layout 1_line_2_columns"; -} - -slide -{ - layout: 2_columns_1_line; - title: "Layout 2_columns_1_line"; -} - -slide -{ - layout: 2_columns_1_small_line; - title: "Layout 2_columns_1_small_line"; -} - -slide -{ - layout: 4_areas; - title: "Layout 4_areas"; -} -slide -{ - layout: 6_areas; - title: "Layout 6_areas"; -} - -slide -{ - layout: blank; - title: "3 customs areas"; - custom_area: "center" 0.4 0.4 0.6 0.6; - custom_area: "left" 0.3 0.2 0.35 0.7; - custom_area: "big" 0.10 0.24 0.87 0.87; - area - { - name:"center"; - text:"hehe"; - } - area - { - name: "left"; - image: "wolf.png"; - } - area - { - name: "big"; - items - { - text: "very big!"; - text: "haha"; - } - } -} - - - -slide -{ - -} - -slide -{ - -} - -slide -{ - -} - -slide -{ - -} - -slide -{ - -} -slide -{ - -} - -slide -{ - -} -slide -{ - -} -slide -{ - -} - -slide -{ - -} - -slide -{ - -} - -slide -{ - -} - -slide -{ - -} - -slide -{ - -} -slide -{ - title: "last slide !!!!!!!!!!!! :)"; -} - - Modified: trunk/PROTO/eyelight/data/themes/default/layout.edc =================================================================== --- trunk/PROTO/eyelight/data/themes/default/layout.edc 2009-05-13 16:40:42 UTC (rev 40622) +++ trunk/PROTO/eyelight/data/themes/default/layout.edc 2009-05-13 18:19:59 UTC (rev 40623) @@ -21,7 +21,7 @@ state: "default" 0.0; \ visible: is_visible; \ align: 0.0 0.0; \ - color: 255 255 255 50; \ + color: 255 255 255 50; \ rel1 \ { \ relative: rel11 rel12;\ @@ -36,6 +36,54 @@ } \ part \ { \ + name: "area_"area_name"_test"; \ + type: BOX; \ + mouse_events:0; \ + description \ + { \ + state: "default" 0.0; \ + visible: 1; \ + align: 0.0 0.0; \ + color: 255 255 255 50; \ + rel1 \ + { \ + relative: rel11 rel12;\ + to: "slide"; \ + } \ + rel2 \ + { \ + relative: rel21 rel22;\ + to: "slide"; \ + } \ + box \ + { \ + layout: "vertical"; \ + padding: 0 2; \ + align: 0.5 0.5; \ + } \ + } \ + box \ + { \ + items \ + { \ + item \ + { \ + type: GROUP; \ + source:"area_item_center_0" ;\ + aspect: 1 1;\ + aspect_mode: VERTICAL;\ + } \ + item \ + { \ + type: GROUP; \ + min: 300 300;\ + source:"area_item_center_1" ;\ + } \ + } \ + } \ +} \ +part \ +{ \ name: "area_"area_name"_border"; \ type: IMAGE; \ mouse_events:0; \ Modified: trunk/PROTO/eyelight/data/themes/default/theme.edc =================================================================== --- trunk/PROTO/eyelight/data/themes/default/theme.edc 2009-05-13 16:40:42 UTC (rev 40622) +++ trunk/PROTO/eyelight/data/themes/default/theme.edc 2009-05-13 18:19:59 UTC (rev 40623) @@ -223,9 +223,16 @@ } \ } +spectra +{ + spectrum + { + name: "shadow"; + color: 0 0 0 255 1; + color: 0 0 0 0 1; + } +} - - fonts { font:"fonts/DejaVuSans-Bold.ttf" "DejaVuSans_Bold"; @@ -249,6 +256,7 @@ image: "vague_2.png" COMP; image: "vague_3.png" COMP; image: "vague_4.png" COMP; + image: "shadow.png" COMP; } styles @@ -712,7 +720,7 @@ name: "area_item_"area"_"id; \ type: TEXTBLOCK; \ mouse_events: 0; \ - clip_to: "slide"; \ + clip_to: "slide"; \ description \ { \ state: "default" 0.0; \ @@ -723,7 +731,7 @@ relative: (0.0+(depth*0.04)) 1.0; \ to_y: "area_item_"area"_"id_prev; \ to_x: "area_"area; \ - offset: 55 20; \ + offset: 55 20; \ } \ rel2 \ { \ @@ -894,7 +902,7 @@ name: "area_item_"area"_"id; \ type: TEXTBLOCK; \ mouse_events: 0; \ - clip_to: "slide"; \ + clip_to: "slide"; \ description \ { \ state: "default" 0.0; \ @@ -929,7 +937,7 @@ name: "area_item_"area"_"id; \ type: TEXTBLOCK; \ mouse_events: 0; \ - clip_to: "slide"; \ + clip_to: "slide"; \ description \ { \ state: "default" 0.0; \ @@ -964,29 +972,29 @@ //add a text in a vertical area #define add_text_vbox(area,id_prev,id,id_str,nb_items,content_text)\ +group\ +{\ +name: "area_item_"area"_"id;\ +parts\ +{\ part \ { \ name: "area_item_"area"_"id; \ type: TEXTBLOCK; \ mouse_events: 0; \ - clip_to: "slide"; \ description \ { \ state: "default" 0.0; \ visible: 1; \ align: 0.1 0.1; \ + fixed: 1 1; \ rel1 \ { \ - relative: 0.0 1.0; \ - to_x: "area_"area; \ - to_y: "area_item_"area"_"id_prev; \ - offset: 0 20; \ + relative: 0.0 0.0; \ } \ rel2 \ { \ relative: 1.0 1.0; \ - to_x: "area_"area; \ - to_y: "area_item_"area"_"id_prev; \ } \ text \ { \ @@ -996,7 +1004,9 @@ } \ } \ } \ -program_resize("area_item_"area"_"id_str,0,20,0,0); +}\ +}\ +//program_resize("area_item_"area"_"id_str,0,20,0,0); //add a text in a vertical area #define add_text_hbox(area,id_prev,id,id_str,nb_items,content_text)\ Modified: trunk/PROTO/eyelight/src/lib/eyelight_compiler.c =================================================================== --- trunk/PROTO/eyelight/src/lib/eyelight_compiler.c 2009-05-13 16:40:42 UTC (rev 40622) +++ trunk/PROTO/eyelight/src/lib/eyelight_compiler.c 2009-05-13 18:19:59 UTC (rev 40623) @@ -489,21 +489,12 @@ eyelight_compile_prop_slide(compiler,output, current, &title, &subtitle); ecore_list_first_goto(current->l); - while( (node = ecore_list_next(current->l)) ) - { - if(node->type == EYELIGHT_NODE_TYPE_BLOCK) - { - if(node->name==EYELIGHT_NAME_AREA) - { - eyelight_compile_block_area(compiler,output, node); - } - } - } + fprintf(output,"post_fct();\n"); fprintf(output,"}\n"); + //add the data with the title and the subtitle - //these date will be used to create the table of contents - + //these data will be used to create the table of contents fprintf(output,"data\n{\n"); if(title) fprintf(output,"item: title \"%s\";\n",title); @@ -513,6 +504,17 @@ fprintf(output,"program_list();\n"); fprintf(output,"}\n"); + + while( (node = ecore_list_next(current->l)) ) + { + if(node->type == EYELIGHT_NODE_TYPE_BLOCK) + { + if(node->name==EYELIGHT_NAME_AREA) + { + eyelight_compile_block_area(compiler,output, node); + } + } + } } /* |