Enlightenment CVS committal

Author  : codewarrior
Project : e17
Module  : proto

Dir     : e17/proto/exhibit/src/bin


Modified Files:
        exhibit.h exhibit_main.c exhibit_main.h exhibit_menus.c 
        exhibit_slideshow.c exhibit_slideshow.h 


Log Message:
add Friedrich's fullscreen code, implement Chady's -f flag and bump up version

===================================================================
RCS file: /cvs/e/e17/proto/exhibit/src/bin/exhibit.h,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -3 -r1.37 -r1.38
--- exhibit.h   22 Oct 2006 15:00:30 -0000      1.37
+++ exhibit.h   14 Dec 2006 12:07:46 -0000      1.38
@@ -186,6 +186,7 @@
 struct _Exhibit
 {
    Etk_Widget    *vbox;
+   Etk_Widget    *vboxf;
    Etk_Widget    *hbox;
    Etk_Widget    *menu_bar;
    Etk_Widget    *statusbar[4];
===================================================================
RCS file: /cvs/e/e17/proto/exhibit/src/bin/exhibit_main.c,v
retrieving revision 1.87
retrieving revision 1.88
diff -u -3 -r1.87 -r1.88
--- exhibit_main.c      22 Oct 2006 15:00:30 -0000      1.87
+++ exhibit_main.c      14 Dec 2006 12:07:46 -0000      1.88
@@ -121,8 +121,10 @@
    etk_statusbar_message_pop(ETK_STATUSBAR(e->statusbar[1]), 0);
    etk_statusbar_message_push(ETK_STATUSBAR(e->statusbar[1]), size, 0);
    
-   hs = 
etk_scrolled_view_hscrollbar_get(ETK_SCROLLED_VIEW(e->cur_tab->scrolled_view));
-   vs = 
etk_scrolled_view_vscrollbar_get(ETK_SCROLLED_VIEW(e->cur_tab->scrolled_view));
+   hs = etk_scrolled_view_hscrollbar_get(
+                                        
ETK_SCROLLED_VIEW(e->cur_tab->scrolled_view));
+   vs = etk_scrolled_view_vscrollbar_get(
+                                        
ETK_SCROLLED_VIEW(e->cur_tab->scrolled_view));
       
    etk_range_value_set(hs, (double)w/2);
    etk_range_value_set(vs, (double)h/2);
@@ -467,7 +469,7 @@
 
 static Etk_Bool
 _ex_main_window_deleted_cb(void *data)
-{
+{  
    etk_main_quit();
    return 1;
 }
@@ -475,8 +477,8 @@
 static void
 _ex_main_window_key_down_cb(Etk_Object *object, void *event, void *data)
 {
-   Etk_Event_Key_Down *ev = event;
-
+   Etk_Event_Key_Down *ev = event;   
+   
    if (ev->modifiers == ETK_MODIFIER_CTRL)
      {
        if (!strcmp(ev->key, "t"))
@@ -493,8 +495,8 @@
             _ex_tab_delete();
          }
        else if(!strcmp(ev->key, "q"))
-         {
-            etk_main_quit();
+         {     
+            etk_main_quit();           
          }
        else if(!strcmp(ev->key, "d"))
          {
@@ -519,6 +521,21 @@
          {
             _ex_main_window_slideshow_toggle();
          }                
+       else if(!strcmp(ev->key, "f"))
+         {
+            _ex_main_window_fullscreen_toggle(e);
+         }                
+     }
+
+   /* only active when in full screen mode */
+   if(etk_window_fullscreen_get(ETK_WINDOW(e->win)))
+     {
+       if(!strcmp(ev->key, "Escape") || !strcmp(ev->key, "f"))
+         _ex_main_window_fullscreen_toggle(e); 
+       if(!strcmp(ev->key, "space")) 
+         _ex_slideshow_next(e);        
+       if(!strcmp(ev->key, "b"))         
+         _ex_slideshow_prev(e);          
      }
 }
 
@@ -538,6 +555,42 @@
      _ex_slideshow_start();
 }
 
+void
+_ex_main_window_fullscreen_toggle(Exhibit *e) 
+{
+   if (etk_window_fullscreen_get(ETK_WINDOW(e->win)))
+     {
+       etk_signal_connect("resize", ETK_OBJECT(e->win), 
ETK_CALLBACK(_ex_main_window_resize_cb), e);
+       etk_container_remove(ETK_CONTAINER(e->win), e->vboxf);
+       etk_container_add(ETK_CONTAINER(e->win), e->vbox);
+       etk_widget_show_all(e->win);
+       etk_container_add(ETK_CONTAINER(e->hpaned_shadow), e->notebook);
+       if (evas_list_count(e->tabs) > 1)
+         etk_notebook_tabs_visible_set(ETK_NOTEBOOK(e->notebook), ETK_TRUE);
+       else
+         etk_notebook_tabs_visible_set(ETK_NOTEBOOK(e->notebook), ETK_FALSE);
+       etk_window_fullscreen_set(ETK_WINDOW(e->win), ETK_FALSE);       
+     }
+   else
+     {
+       etk_signal_disconnect("resize", ETK_OBJECT(e->win), 
ETK_CALLBACK(_ex_main_window_resize_cb));
+       etk_window_fullscreen_set(ETK_WINDOW(e->win), ETK_TRUE);
+       etk_widget_hide(e->statusbar[0]);
+       etk_widget_hide(e->statusbar[1]);
+       etk_widget_hide(e->statusbar[2]);
+       etk_widget_hide(e->statusbar[3]);
+       etk_widget_hide(e->sort_bar);
+       etk_container_remove(ETK_CONTAINER(e->win), e->vbox);
+       e->vboxf = etk_vbox_new(ETK_FALSE, 0);
+       etk_container_add(ETK_CONTAINER(e->win), e->vboxf);
+       etk_box_append(ETK_BOX(e->vboxf), e->notebook, 
+                      ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0);
+       etk_widget_show(e->vboxf);
+       etk_widget_show(e->notebook);
+       etk_notebook_tabs_visible_set(ETK_NOTEBOOK(e->notebook), ETK_FALSE);
+     }
+}
+
 static void 
 _ex_main_window_tab_toggled_cb(Etk_Object *object, void *data)
 {     
@@ -633,7 +686,7 @@
 
 
 void
-_ex_main_window_show(char *dir)
+_ex_main_window_show(char *dir, int fullscreen)
 {
    Ex_Tab *tab;
    Etk_Widget *entry_hbox, *toolbar;
@@ -677,7 +730,7 @@
    
    tab = NULL;
    
-   e->win = etk_window_new();
+   e->win = etk_window_new();   
    etk_widget_dnd_dest_set(e->win, ETK_TRUE);
    dnd_types_num = 1;
    dnd_types = calloc(dnd_types_num, sizeof(char*));
@@ -925,7 +978,6 @@
    etk_box_append(ETK_BOX(e->hbox), e->sort_bar, ETK_BOX_START, ETK_BOX_NONE, 
0);
      {
        Etk_Widget *menu;
-       Etk_Widget *menu_item;
 
        menu = etk_menu_new();
        etk_signal_connect("mouse_down", ETK_OBJECT(e->sort_bar), 
ETK_CALLBACK(_ex_sort_label_mouse_down_cb), menu);
@@ -962,13 +1014,17 @@
    _ex_tab_select(tab);
    
    etk_widget_show_all(e->win);
+   
+   if(fullscreen)
+     _ex_main_window_fullscreen_toggle(e);
 }
 
 int
 main(int argc, char *argv[])
 {
    int i;
-
+   int fullscreen = 0;
+   
    for (i = 1; i < argc; i++)
      {
        if (((!strcmp(argv[i], "-h")) ||
@@ -978,6 +1034,7 @@
             printf("  %s <image>\n", PACKAGE);
             printf("  %s <path>\n", PACKAGE);
             printf("  %s <url>\n\n", PACKAGE);
+            printf("  -f, --fullscreen\t\t start Exhibit in fullscreen 
mode\n");
             printf("  -h, --help\t\t display this help and exit\n");
             printf("  -v, --version\t\t output version information and 
exit\n\n");
             exit(1);
@@ -988,7 +1045,9 @@
             printf("%s version %s\n", PACKAGE, VERSION);
             exit(1);
          }
-
+       else if (((!strcmp(argv[i], "-f")) ||
+                (!strcmp(argv[i], "--fullscreen"))))
+         fullscreen = 1;
      }
    
    if (!etk_init(&argc, &argv))
@@ -1006,9 +1065,9 @@
    
    epsilon_init();
    if(argc > 1)
-     _ex_main_window_show(argv[1]);     
+     _ex_main_window_show(argv[1], fullscreen);
    else
-     _ex_main_window_show(NULL);   
+     _ex_main_window_show(NULL, fullscreen);   
      
    etk_main();
    if(e)
===================================================================
RCS file: /cvs/e/e17/proto/exhibit/src/bin/exhibit_main.h,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -3 -r1.15 -r1.16
--- exhibit_main.h      8 Sep 2006 12:48:26 -0000       1.15
+++ exhibit_main.h      14 Dec 2006 12:07:46 -0000      1.16
@@ -9,10 +9,11 @@
 void         _ex_main_itree_add(const char *file, const char *selected_file);
 int          _ex_main_window_slideshow_next(void *data);
 void         _ex_main_window_slideshow_toggle();    
+void         _ex_main_window_fullscreen_toggle();    
 void         _ex_main_window_tab_append(Ex_Tab *tab);
 void         _ex_main_window_tab_remove(Ex_Tab *tab);
 void         _ex_main_dialog_show(char *text, Etk_Message_Dialog_Type type);
-void         _ex_main_window_show(char *dir);
+void         _ex_main_window_show(char *dir, int fullscreen);
 void         _ex_main_image_unset();
 void         _ex_main_image_set(Exhibit *e, char *image);
 void         _ex_main_button_fit_to_window_cb(Etk_Object *obj, void *data);
===================================================================
RCS file: /cvs/e/e17/proto/exhibit/src/bin/exhibit_menus.c,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -3 -r1.38 -r1.39
--- exhibit_menus.c     21 Oct 2006 09:32:31 -0000      1.38
+++ exhibit_menus.c     14 Dec 2006 12:07:46 -0000      1.39
@@ -498,7 +498,7 @@
         ETK_CALLBACK(etk_window_hide_on_delete), win);
    etk_signal_connect_swapped("response", ETK_OBJECT(win),
         ETK_CALLBACK(etk_window_hide_on_delete), win);
-   etk_widget_size_request_set(win, 290, 405);
+   etk_widget_size_request_set(win, 290, 530);
    
    vbox = etk_vbox_new(ETK_FALSE, 0);
    frame = etk_frame_new("What is Exhibit?");
@@ -528,7 +528,8 @@
         "<b>Code:</b>\n"
         "Hisham '<b>CodeWarrior</b>' Mardam Bey\n"
         "Martin '<b>balony</b>' Sarajervi\n"
-        "Simon '<b>MoOm</b>' Treny",
+        "Simon '<b>MoOm</b>' Treny\n"
+        "Friedrich '<b>phriedrich</b>' Preuß",
         ETK_TRUE);
    etk_container_add(ETK_CONTAINER(frame), abouttext);
    etk_box_append(ETK_BOX(vbox), frame, ETK_BOX_START, ETK_BOX_NONE, 0);
@@ -544,11 +545,18 @@
         "<b>control-d:</b> add to favorites\n"
         "<b>control-x:</b> toggle view\n"
         "<b>control-q:</b> exit program\n"
-        "<b>control-s:</b> toggle slideshow\n",
+        "<b>control-f:</b> toggle fullscreen\n"
+        "<b>control-s:</b> toggle slideshow\n"
+         "\n"                    
+        "<b>Fullscreen mode controls:</b>\n"
+        "<b>control-f:</b> enter fullscreen mode\n"
+        "<b>escape:</b> exit fullscreen mode\n"
+        "<b>space:</b> next image\n"
+        "<b>b:</b> previous image\n",
         ETK_TRUE);
    etk_container_add(ETK_CONTAINER(frame), helptext);
-   etk_box_append(ETK_BOX(vbox), frame, ETK_BOX_START, ETK_BOX_NONE, 0);
-   etk_dialog_pack_in_main_area(ETK_DIALOG(win), vbox, ETK_FALSE, ETK_FALSE,
+   etk_box_append(ETK_BOX(vbox), frame, ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0);
+   etk_dialog_pack_in_main_area(ETK_DIALOG(win), vbox, ETK_TRUE, ETK_TRUE,
         0, ETK_FALSE);
    etk_dialog_button_add(ETK_DIALOG(win), "Close", ETK_RESPONSE_CLOSE);
    etk_container_border_width_set(ETK_CONTAINER(win), 7);
===================================================================
RCS file: /cvs/e/e17/proto/exhibit/src/bin/exhibit_slideshow.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -3 -r1.8 -r1.9
--- exhibit_slideshow.c 7 Oct 2006 11:39:20 -0000       1.8
+++ exhibit_slideshow.c 14 Dec 2006 12:07:46 -0000      1.9
@@ -55,3 +55,30 @@
 
    return 1; 
 }
+
+int
+_ex_slideshow_prev(void *data)
+{
+   Etk_Tree_Row *row, *first_row;
+   int i = 0;
+   int n = 0;
+   char string[80];
+
+   row = etk_tree_selected_row_get(ETK_TREE(e->cur_tab->itree));
+   first_row = etk_tree_first_row_get(ETK_TREE(e->cur_tab->itree));
+
+   if(!row || row == first_row)
+     row = etk_tree_last_row_get(ETK_TREE(e->cur_tab->itree), ETK_FALSE, 
ETK_FALSE);
+   else
+     row = etk_tree_prev_row_get(row, ETK_FALSE, ETK_FALSE);
+   
+   etk_tree_row_select(row);
+   etk_tree_row_scroll_to(row, ETK_FALSE);
+
+   i = etk_tree_num_rows_get(ETK_TREE(e->cur_tab->itree));
+   n = 1 + etk_tree_row_num_get(ETK_TREE(e->cur_tab->itree), row);
+   sprintf(string, "Slideshow picture %d of %d", n, i);
+   etk_statusbar_message_push(ETK_STATUSBAR(e->statusbar[3]), string, 0);
+
+   return 1; 
+}
===================================================================
RCS file: /cvs/e/e17/proto/exhibit/src/bin/exhibit_slideshow.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- exhibit_slideshow.h 1 Sep 2006 22:41:37 -0000       1.3
+++ exhibit_slideshow.h 14 Dec 2006 12:07:46 -0000      1.4
@@ -7,5 +7,6 @@
 void  _ex_slideshow_stop();
 void  _ex_slideshow_start();
 int   _ex_slideshow_next(void *data);    
+int   _ex_slideshow_prev(void *data);    
 
 #endif



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to