oooooooooh shelf.c.... :)

SVN revision: 4244
This commit is contained in:
Carsten Haitzler 2001-02-17 23:03:13 +00:00
parent 36bb6c0019
commit d017f50c20
4 changed files with 83 additions and 1 deletions

View File

@ -20,6 +20,7 @@ main.c \
menu.c \ menu.c \
menudb.c \ menudb.c \
resist.c \ resist.c \
shelf.c \
util.c \ util.c \
view.c \ view.c \
e.h e.h

14
src/e.h
View File

@ -132,6 +132,7 @@ typedef struct _E_Rect E_Rect;
typedef struct _E_Active_Action_Timer E_Active_Action_Timer; typedef struct _E_Active_Action_Timer E_Active_Action_Timer;
typedef struct _E_View E_View; typedef struct _E_View E_View;
typedef struct _E_Icon E_Icon; typedef struct _E_Icon E_Icon;
typedef struct _E_Shelf E_Shelf;
typedef struct _E_Background E_Background; typedef struct _E_Background E_Background;
typedef struct _E_Menu E_Menu; typedef struct _E_Menu E_Menu;
typedef struct _E_Menu_Item E_Menu_Item; typedef struct _E_Menu_Item E_Menu_Item;
@ -344,6 +345,7 @@ struct _E_View
int monitor_id; int monitor_id;
Evas_List icons; Evas_List icons;
Evas_List shelves;
int changed; int changed;
}; };
@ -356,6 +358,9 @@ struct _E_Icon
E_View *view; E_View *view;
char *shelf_name;
E_Shelf *shelf;
struct { struct {
int x, y, w, h; int x, y, w, h;
struct { struct {
@ -384,6 +389,15 @@ struct _E_Icon
int changed; int changed;
}; };
struct _E_Shelf
{
OBJ_PROPERTIES;
char *name;
int x, int y, int w, int h;
};
struct _E_Background struct _E_Background
{ {
OBJ_PROPERTIES; OBJ_PROPERTIES;

View File

@ -1,5 +1,46 @@
#include "e.h" #include "e.h"
static void e_icon_in_cb(void *_data, Evas _e, Evas_Object _o, int _b, int _x, int _y);
static void e_icon_out_cb(void *_data, Evas _e, Evas_Object _o, int _b, int _x, int _y);
static void e_icon_down_cb(void *_data, Evas _e, Evas_Object _o, int _b, int _x, int _y);
static void e_icon_up_cb(void *_data, Evas _e, Evas_Object _o, int _b, int _x, int _y);
static void
e_icon_in_cb(void *_data, Evas _e, Evas_Object _o, int _b, int _x, int _y)
{
E_Icon *icon;
icon = _data;
e_icon_set_icon(icon, PACKAGE_DATA_DIR"/data/icons/directory/default.db:/icon/selected");
}
static void
e_icon_out_cb(void *_data, Evas _e, Evas_Object _o, int _b, int _x, int _y)
{
E_Icon *icon;
icon = _data;
e_icon_set_icon(icon, PACKAGE_DATA_DIR"/data/icons/directory/default.db:/icon/normal");
}
static void
e_icon_down_cb(void *_data, Evas _e, Evas_Object _o, int _b, int _x, int _y)
{
E_Icon *icon;
icon = _data;
e_icon_set_icon(icon, PACKAGE_DATA_DIR"/data/icons/directory/default.db:/icon/clicked");
}
static void
e_icon_up_cb(void *_data, Evas _e, Evas_Object _o, int _b, int _x, int _y)
{
E_Icon *icon;
icon = _data;
e_icon_set_icon(icon, PACKAGE_DATA_DIR"/data/icons/directory/default.db:/icon/selected");
}
void void
e_icon_free(E_Icon *icon) e_icon_free(E_Icon *icon)
{ {
@ -29,6 +70,20 @@ e_icon_calulcate_geometry(E_Icon *icon)
void void
e_icon_realize(E_Icon *icon) e_icon_realize(E_Icon *icon)
{ {
icon->obj.sel1 = evas_add_rectangle(icon->view->evas);
icon->obj.sel2 = evas_add_rectangle(icon->view->evas);
evas_set_layer(icon->view->evas, icon->obj.sel1, 11);
evas_set_layer(icon->view->evas, icon->obj.sel2, 11);
evas_set_color(icon->view->evas, icon->obj.sel1, 0, 0, 0, 0);
evas_set_color(icon->view->evas, icon->obj.sel2, 0, 0, 0, 0);
evas_callback_add(icon->view->evas, icon->obj.sel1, CALLBACK_MOUSE_IN, e_icon_in_cb, icon);
evas_callback_add(icon->view->evas, icon->obj.sel1, CALLBACK_MOUSE_OUT, e_icon_out_cb, icon);
evas_callback_add(icon->view->evas, icon->obj.sel1, CALLBACK_MOUSE_DOWN, e_icon_down_cb, icon);
evas_callback_add(icon->view->evas, icon->obj.sel1, CALLBACK_MOUSE_UP, e_icon_up_cb, icon);
evas_callback_add(icon->view->evas, icon->obj.sel2, CALLBACK_MOUSE_IN, e_icon_in_cb, icon);
evas_callback_add(icon->view->evas, icon->obj.sel2, CALLBACK_MOUSE_OUT, e_icon_out_cb, icon);
evas_callback_add(icon->view->evas, icon->obj.sel2, CALLBACK_MOUSE_DOWN, e_icon_down_cb, icon);
evas_callback_add(icon->view->evas, icon->obj.sel2, CALLBACK_MOUSE_UP, e_icon_up_cb, icon);
} }
void void
@ -36,8 +91,12 @@ e_icon_unrealize(E_Icon *icon)
{ {
if (icon->obj.icon) evas_del_object(icon->view->evas, icon->obj.icon); if (icon->obj.icon) evas_del_object(icon->view->evas, icon->obj.icon);
if (icon->obj.filename) evas_del_object(icon->view->evas, icon->obj.filename); if (icon->obj.filename) evas_del_object(icon->view->evas, icon->obj.filename);
if (icon->obj.sel1) evas_del_object(icon->view->evas, icon->obj.sel1);
if (icon->obj.sel2) evas_del_object(icon->view->evas, icon->obj.sel2);
icon->obj.icon = NULL; icon->obj.icon = NULL;
icon->obj.filename = NULL; icon->obj.filename = NULL;
icon->obj.sel1 = NULL;
icon->obj.sel2 = NULL;
if (icon->view) icon->view->changed = 1; if (icon->view) icon->view->changed = 1;
} }
@ -138,8 +197,11 @@ e_icon_update(E_Icon *icon)
fy = icon->current.y + ih; fy = icon->current.y + ih;
evas_move(icon->view->evas, icon->obj.icon, icon->current.x, icon->current.y); evas_move(icon->view->evas, icon->obj.icon, icon->current.x, icon->current.y);
evas_move(icon->view->evas, icon->obj.filename, fx, fy); evas_move(icon->view->evas, icon->obj.filename, fx, fy);
evas_move(icon->view->evas, icon->obj.sel1, icon->current.x, icon->current.y);
evas_resize(icon->view->evas, icon->obj.sel1, iw, ih);
evas_move(icon->view->evas, icon->obj.sel2, fx, fy);
evas_resize(icon->view->evas, icon->obj.sel2, tw, th);
evas_set_color(icon->view->evas, icon->obj.filename, 0, 0, 0, 255); evas_set_color(icon->view->evas, icon->obj.filename, 0, 0, 0, 255);
printf("create filename (%s %i %i)\n", icon->file, fx, fy);
} }
if (icon->current.visible != icon->previous.visible) if (icon->current.visible != icon->previous.visible)
{ {
@ -147,11 +209,15 @@ e_icon_update(E_Icon *icon)
{ {
evas_show(icon->view->evas, icon->obj.icon); evas_show(icon->view->evas, icon->obj.icon);
evas_show(icon->view->evas, icon->obj.filename); evas_show(icon->view->evas, icon->obj.filename);
evas_show(icon->view->evas, icon->obj.sel1);
evas_show(icon->view->evas, icon->obj.sel2);
} }
else else
{ {
evas_hide(icon->view->evas, icon->obj.icon); evas_hide(icon->view->evas, icon->obj.icon);
evas_hide(icon->view->evas, icon->obj.filename); evas_hide(icon->view->evas, icon->obj.filename);
evas_hide(icon->view->evas, icon->obj.sel1);
evas_hide(icon->view->evas, icon->obj.sel2);
} }
} }

1
src/shelf.c Normal file
View File

@ -0,0 +1 @@
#include "e.h"