166 lines
4.8 KiB
C
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
|