enlightenment/src/menu.h

166 lines
4.8 KiB
C

#ifndef E_MENU_H
#define E_MENU_H
#include "e.h"
#include "object.h"
typedef struct _E_Menu E_Menu;
typedef struct _E_Menu_Item E_Menu_Item;
struct _E_Menu
{
E_Object o;
struct
{
int x, y, w, h;
int visible;
}
current , previous;
struct
{
int l, r, t, b;
}
border , sel_border;
struct
{
Window main, evas;
}
win;
Evas * evas;
Ebits_Object * bg;
Evas_List * entries;
char *bg_file;
int first_expose;
int recalc_entries;
int redo_sel;
int changed;
int delete_me;
struct
{
int state, icon, text;
}
size;
struct
{
int icon, state;
}
pad;
E_Menu_Item *selected;
Time time;
void (*func_hide) (E_Menu * m, void *data);
void *func_hide_data;
};
struct _E_Menu_Item
{
int x, y;
struct
{
struct
{
int w, h;
}
min;
int w, h;
}
size;
Ebits_Object bg;
char *bg_file;
int selected;
Evas_Object * obj_entry;
char *str;
Evas_Object * obj_text;
char *icon;
Evas_Object * obj_icon;
int scale_icon;
Ebits_Object state;
char *state_file;
Ebits_Object sep;
char *sep_file;
int separator;
int radio_group;
int radio;
int check;
int on;
E_Menu *menu;
E_Menu *submenu;
void (*func_select) (E_Menu * m, E_Menu_Item * mi,
void *data);
void *func_select_data;
};
/**
* e_menu_init - Menu event handling initalization.
*
* This function hooks in the necessary event handlers for
* menu handling.
*/
void e_menu_init(void);
void e_menu_callback_item(E_Menu * m, E_Menu_Item * mi);
void e_menu_item_set_callback(E_Menu_Item * mi,
void (*func) (E_Menu * m,
E_Menu_Item * mi,
void *data),
void *data);
void e_menu_hide_callback(E_Menu * m,
void (*func) (E_Menu * m, void *data),
void *data);
void e_menu_hide_submenus(E_Menu * menus_after);
void e_menu_select(int dx, int dy);
void e_menu_event_win_show(void);
void e_menu_event_win_hide(void);
void e_menu_set_background(E_Menu * m);
void e_menu_set_sel(E_Menu * m, E_Menu_Item * mi);
void e_menu_set_sep(E_Menu * m, E_Menu_Item * mi);
void e_menu_set_state(E_Menu * m, E_Menu_Item * mi);
E_Menu *e_menu_new(void);
void e_menu_hide(E_Menu * m);
void e_menu_show(E_Menu * m);
void e_menu_move_to(E_Menu * m, int x, int y);
void e_menu_show_at_mouse(E_Menu * m, int x, int y, Time t);
void e_menu_add_item(E_Menu * m, E_Menu_Item * mi);
void e_menu_del_item(E_Menu * m, E_Menu_Item * mi);
void e_menu_item_update(E_Menu * m, E_Menu_Item * mi);
void e_menu_item_unrealize(E_Menu * m, E_Menu_Item * mi);
void e_menu_item_realize(E_Menu * m, E_Menu_Item * mi);
E_Menu_Item *e_menu_item_new(char *str);
void e_menu_obscure_outside_screen(E_Menu * m);
void e_menu_scroll_all_by(int dx, int dy);
void e_menu_update_visibility(E_Menu * m);
void e_menu_update_base(E_Menu * m);
void e_menu_update_finish(E_Menu * m);
void e_menu_update_shows(E_Menu * m);
void e_menu_update_hides(E_Menu * m);
void e_menu_update_shape(E_Menu *m);
void e_menu_update(E_Menu * m);
void e_menu_item_set_icon(E_Menu_Item * mi, char *icon);
void e_menu_item_set_text(E_Menu_Item * mi, char *text);
void e_menu_item_set_separator(E_Menu_Item * mi, int sep);
void e_menu_item_set_radio(E_Menu_Item * mi, int radio);
void e_menu_item_set_check(E_Menu_Item * mi, int check);
void e_menu_item_set_state(E_Menu_Item * mi, int state);
void e_menu_item_set_submenu(E_Menu_Item * mi, E_Menu * submenu);
void e_menu_item_set_scale_icon(E_Menu_Item * mi, int scale);
void e_menu_set_padding_icon(E_Menu * m, int pad);
void e_menu_set_padding_state(E_Menu * m, int pad);
#endif