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); _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 EAPI void
e_gadcon_client_autoscroll_set(E_Gadcon_Client *gcc, int autoscroll) e_gadcon_client_autoscroll_set(E_Gadcon_Client *gcc, int autoscroll)
{ {
E_OBJECT_CHECK(gcc); E_OBJECT_CHECK(gcc);
E_OBJECT_TYPE_CHECK(gcc, E_GADCON_CLIENT_TYPE); 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 = autoscroll;
gcc->autoscroll_set = 1; 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); if (gcc->resizable) e_menu_item_toggle_set(mi, 1);
e_menu_item_callback_set(mi, _e_gadcon_client_cb_menu_resizable, gcc); e_menu_item_callback_set(mi, _e_gadcon_client_cb_menu_resizable, gcc);
*/ */
mi = e_menu_item_new(menu_gadget); if (!gcc->autoscroll_disabled)
e_menu_item_label_set(mi, _("Automatically scroll contents")); {
e_util_menu_item_theme_icon_set(mi, "transform-move"); mi = e_menu_item_new(menu_gadget);
e_menu_item_check_set(mi, 1); e_menu_item_label_set(mi, _("Automatically scroll contents"));
if (gcc->autoscroll) e_menu_item_toggle_set(mi, 1); e_util_menu_item_theme_icon_set(mi, "transform-move");
e_menu_item_callback_set(mi, _e_gadcon_client_cb_menu_autoscroll, gcc); 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) if (gcc->gadcon->shelf)
{ {

View File

@ -198,6 +198,7 @@ struct _E_Gadcon_Client
unsigned char moving : 1; unsigned char moving : 1;
unsigned char resizing : 1; unsigned char resizing : 1;
unsigned char autoscroll_set : 1; unsigned char autoscroll_set : 1;
unsigned char autoscroll_disabled : 1;
Evas_Coord dx, dy; Evas_Coord dx, dy;
struct 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_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_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_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_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_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); EAPI void e_gadcon_client_autoscroll_cb_set(E_Gadcon_Client *gcc, void (*func)(void *data), void *data);