- add e_view_machine_get_view_by_[base|main]_window

- use it in about a zillion places
- now VM->views is only accessed from within e_view_machine.c


SVN revision: 6005
This commit is contained in:
Till Adam 2002-03-01 20:50:46 +00:00
parent 5a88ba9d13
commit cf83b660f7
6 changed files with 394 additions and 514 deletions

View File

@ -7,6 +7,7 @@
#include "icccm.h"
#include "keys.h"
#include "view.h"
#include "e_view_machine.h"
#include "util.h"
#include "guides.h"
#include "bordermenu.h"
@ -1566,7 +1567,7 @@ e_act_exit_start (E_Object *object, E_Action *a, void *data, int x, int y, int r
{
D_ENTER;
e_view_close_all();
e_view_machine_close_all_views();
ecore_focus_mode_reset();
ecore_sync();
@ -1591,7 +1592,7 @@ e_act_restart_start (E_Object *object, E_Action *a, void *data, int x, int y, in
{
D_ENTER;
e_view_close_all();
e_view_machine_close_all_views();
ecore_focus_mode_reset();
ecore_sync();

View File

@ -43,6 +43,18 @@ e_view_machine_unregister_view(E_View *v)
D_RETURN;
}
void
e_view_machine_close_all_views(void)
{
Evas_List l;
D_ENTER;
for (l=VM->views;l;l=l->next)
{
E_View *v = l->data;
e_view_machine_unregister_view(v);
}
D_RETURN;
}
E_View_Model *
e_view_machine_model_lookup(char *path)
@ -76,5 +88,30 @@ e_view_machine_model_lookup(char *path)
D_RETURN_(NULL);
}
E_View *
e_view_machine_get_view_by_main_window(Window win)
{
Evas_List l;
D_ENTER;
for (l = VM->views; l; l = l->next)
{
E_View *v = l->data;
if (v && win == v->win.main)
D_RETURN_(v);
}
D_RETURN_(NULL);
}
E_View *
e_view_machine_get_view_by_base_window(Window win)
{
Evas_List l;
D_ENTER;
for (l = VM->views; l; l = l->next)
{
E_View *v = l->data;
if (v && win == v->win.base)
D_RETURN_(v);
}
D_RETURN_(NULL);
}

View File

@ -12,5 +12,9 @@ typedef struct _e_view_machine E_View_Machine;
void e_view_machine_init(void);
void e_view_machine_register_view(E_View *v);
void e_view_machine_unregister_view(E_View *v);
void e_view_machine_close_all_views(void);
E_View_Model *e_view_machine_model_lookup(char *path);
E_View *e_view_machine_get_view_by_main_window(Window win);
E_View *e_view_machine_get_view_by_base_window(Window win);
#endif

View File

@ -860,7 +860,7 @@ e_icon_deselect(E_Icon *ic)
void
e_icon_exec(E_Icon *ic)
{
{
D_ENTER;
if (!strcmp(ic->file->info.mime.base, "dir") &&
@ -884,7 +884,7 @@ e_icon_exec(E_Icon *ic)
ecore_window_set_name_class(v->win.base, "FileView", "E");
ecore_window_set_min_size(v->win.base, 8, 8);
}
e_icon_deselect(ic);
e_icon_deselect(ic);
D_RETURN;
}

File diff suppressed because it is too large Load Diff

View File

@ -207,7 +207,6 @@ void e_view_resort(E_View *v);
void e_view_queue_geometry_record(E_View *v);
void e_view_queue_icon_xy_record(E_View *v);
void e_view_queue_resort(E_View *v);
E_View *e_view_find_by_window(Window win);
/**
* e_view_new - Creates a new view object