add e_gadcon_client_autoscroll_toggle_disabled_set() to prevent disabling autoscroll in a gadget

SVN revision: 72795
This commit is contained in:
Mike Blumenkrantz 2012-06-25 10:46:51 +00:00
parent 9d5f2a7c63
commit 251ae5f857
2 changed files with 25 additions and 6 deletions

View File

@ -1175,12 +1175,26 @@ e_gadcon_client_aspect_set(E_Gadcon_Client *gcc, int w, int h)
_e_gadcon_moveresize_handle(gcc);
}
EAPI void
e_gadcon_client_autoscroll_toggle_disabled_set(E_Gadcon_Client *gcc, Eina_Bool disable)
{
disable = !!disable;
if (gcc->autoscroll_disabled == disable) return;
gcc->autoscroll_disabled = disable;
if (disable) e_gadcon_client_autoscroll_set(gcc, 1);
}
EAPI void
e_gadcon_client_autoscroll_set(E_Gadcon_Client *gcc, int autoscroll)
{
E_OBJECT_CHECK(gcc);
E_OBJECT_TYPE_CHECK(gcc, E_GADCON_CLIENT_TYPE);
if (gcc->autoscroll_disabled && (!autoscroll))
{
e_util_dialog_show("Gadget error", "%s does not support disabling autoscrolling", gcc->name);
return;
}
gcc->autoscroll = autoscroll;
gcc->autoscroll_set = 1;
/*
@ -1429,12 +1443,15 @@ e_gadcon_client_util_menu_items_append(E_Gadcon_Client *gcc, E_Menu *menu_gadget
if (gcc->resizable) e_menu_item_toggle_set(mi, 1);
e_menu_item_callback_set(mi, _e_gadcon_client_cb_menu_resizable, gcc);
*/
mi = e_menu_item_new(menu_gadget);
e_menu_item_label_set(mi, _("Automatically scroll contents"));
e_util_menu_item_theme_icon_set(mi, "transform-move");
e_menu_item_check_set(mi, 1);
if (gcc->autoscroll) e_menu_item_toggle_set(mi, 1);
e_menu_item_callback_set(mi, _e_gadcon_client_cb_menu_autoscroll, gcc);
if (!gcc->autoscroll_disabled)
{
mi = e_menu_item_new(menu_gadget);
e_menu_item_label_set(mi, _("Automatically scroll contents"));
e_util_menu_item_theme_icon_set(mi, "transform-move");
e_menu_item_check_set(mi, 1);
if (gcc->autoscroll) e_menu_item_toggle_set(mi, 1);
e_menu_item_callback_set(mi, _e_gadcon_client_cb_menu_autoscroll, gcc);
}
if (gcc->gadcon->shelf)
{

View File

@ -198,6 +198,7 @@ struct _E_Gadcon_Client
unsigned char moving : 1;
unsigned char resizing : 1;
unsigned char autoscroll_set : 1;
unsigned char autoscroll_disabled : 1;
Evas_Coord dx, dy;
struct
@ -280,6 +281,7 @@ EAPI void e_gadcon_client_hide(E_Gadcon_Client *gcc);
EAPI void e_gadcon_client_size_request(E_Gadcon_Client *gcc, Evas_Coord w, Evas_Coord h);
EAPI void e_gadcon_client_min_size_set(E_Gadcon_Client *gcc, Evas_Coord w, Evas_Coord h);
EAPI void e_gadcon_client_aspect_set(E_Gadcon_Client *gcc, int w, int h);
EAPI void e_gadcon_client_autoscroll_toggle_disabled_set(E_Gadcon_Client *gcc, Eina_Bool disable);
EAPI void e_gadcon_client_autoscroll_set(E_Gadcon_Client *gcc, int autoscroll);
EAPI void e_gadcon_client_autoscroll_update(E_Gadcon_Client *gcc, int mx, int my);
EAPI void e_gadcon_client_autoscroll_cb_set(E_Gadcon_Client *gcc, void (*func)(void *data), void *data);