Add a field in the monitor structure to store the canvas.

Add refresh rate object to monitor structure
Add refresh rate field to store the current rate.
Add start of refresh_rate fill function.

Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 81081
This commit is contained in:
Christopher Michael 2012-12-17 09:19:30 +00:00 committed by Christopher Michael
parent 5c76922851
commit 5e48a93502
1 changed files with 38 additions and 9 deletions

View File

@ -6,6 +6,9 @@
typedef struct _E_Smart_Data E_Smart_Data;
struct _E_Smart_Data
{
/* reference to the actual canvas */
Evas *evas;
/* object geometry */
Evas_Coord x, y, w, h;
@ -21,6 +24,9 @@ struct _E_Smart_Data
/* thumbnail object */
Evas_Object *o_thumb;
/* refresh rate object */
Evas_Object *o_refresh;
/* changed flag */
Eina_Bool changed : 1;
@ -51,6 +57,9 @@ struct _E_Smart_Data
int w, h;
} min, max;
/* refresh rate */
int refresh_rate;
/* reference to the RandR Output Info */
E_Randr_Output_Info *output;
@ -62,8 +71,6 @@ struct _E_Smart_Data
Evas_Coord vw, vh; /* the layout widget's virtual size */
} layout;
/* Evas_Object *o_layout; */
/* reference to the Container number */
int con_num;
@ -81,6 +88,7 @@ static void _e_smart_hide(Evas_Object *obj);
static void _e_smart_clip_set(Evas_Object *obj, Evas_Object *clip);
static void _e_smart_clip_unset(Evas_Object *obj);
static void _e_smart_monitor_refresh_rates_fill(E_Smart_Data *sd);
static void _e_smart_monitor_modes_fill(E_Smart_Data *sd);
static int _e_smart_monitor_modes_sort(const void *data1, const void *data2);
static void _e_smart_monitor_background_set(E_Smart_Data *sd, Evas_Coord dx, Evas_Coord dy);
@ -232,7 +240,10 @@ e_smart_monitor_output_set(Evas_Object *obj, E_Randr_Output_Info *output)
else
edje_object_signal_emit(sd->o_frame, "e,state,disabled", "e");
/* with the background all setup, calculate the smallest frame width */
/* fill in list of refresh rates */
_e_smart_monitor_refresh_rates_fill(sd);
/* with everything all setup, calculate the smallest frame width */
edje_object_size_min_get(sd->o_frame, &fw, &fh);
if (sd->layout.obj)
@ -310,22 +321,21 @@ static void
_e_smart_add(Evas_Object *obj)
{
E_Smart_Data *sd;
Evas *evas;
/* try to allocate the smart data structure */
if (!(sd = E_NEW(E_Smart_Data, 1))) return;
/* grab the canvas */
evas = evas_object_evas_get(obj);
sd->evas = evas_object_evas_get(obj);
/* create the base object */
sd->o_base = edje_object_add(evas);
sd->o_base = edje_object_add(sd->evas);
e_theme_edje_object_set(sd->o_base, "base/theme/widgets",
"e/conf/randr/main/monitor");
evas_object_smart_member_add(sd->o_base, obj);
/* create monitor 'frame' */
sd->o_frame = edje_object_add(evas);
sd->o_frame = edje_object_add(sd->evas);
e_theme_edje_object_set(sd->o_frame, "base/theme/widgets",
"e/conf/randr/main/frame");
edje_object_part_swallow(sd->o_base, "e.swallow.frame", sd->o_frame);
@ -333,7 +343,7 @@ _e_smart_add(Evas_Object *obj)
_e_smart_monitor_frame_cb_mouse_move, obj);
/* create the preview */
sd->o_thumb = e_livethumb_add(evas);
sd->o_thumb = e_livethumb_add(sd->evas);
edje_object_part_swallow(sd->o_frame, "e.swallow.preview", sd->o_thumb);
evas_object_event_callback_add(sd->o_thumb, EVAS_CALLBACK_MOUSE_IN,
_e_smart_monitor_thumb_cb_mouse_in, NULL);
@ -345,7 +355,7 @@ _e_smart_add(Evas_Object *obj)
_e_smart_monitor_thumb_cb_mouse_down, obj);
/* create monitor stand */
sd->o_stand = edje_object_add(evas);
sd->o_stand = edje_object_add(sd->evas);
e_theme_edje_object_set(sd->o_stand, "base/theme/widgets",
"e/conf/randr/main/stand");
edje_object_part_swallow(sd->o_base, "e.swallow.stand", sd->o_stand);
@ -552,6 +562,25 @@ _e_smart_clip_unset(Evas_Object *obj)
if (sd->o_base) evas_object_clip_unset(sd->o_base);
}
static void
_e_smart_monitor_refresh_rates_fill(E_Smart_Data *sd)
{
E_Radio_Group *rg;
if (sd->o_refresh)
{
/* remove the old refresh list */
edje_object_part_unswallow(sd->o_frame, sd->o_refresh);
evas_object_del(sd->o_refresh);
}
/* create new refresh list widget */
sd->o_refresh = e_widget_list_add(sd->evas, 0, 0);
/* create radio group for rates */
rg = e_widget_radio_group_new(&sd->refresh_rate);
}
static void
_e_smart_monitor_modes_fill(E_Smart_Data *sd)
{