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