Don't we have the scale factor used for design in edje ? So why is that
needed ?
 On Sep 19, 2014 6:48 AM, "Jaehwan Kim" <[email protected]> wrote:

> jaehwan pushed a commit to branch master.
>
>
> http://git.enlightenment.org/core/elementary.git/commit/?id=f75b121f6428cf6aea7387d8700a887e6ca4a98a
>
> commit f75b121f6428cf6aea7387d8700a887e6ca4a98a
> Author: Jaehwan Kim <[email protected]>
> Date:   Fri Sep 19 13:45:03 2014 +0900
>
>     scale: set the base scale of the application.
>
>     The scale is used for the application to be scaled.
>     If the application isn't made on the basis of scale 1.0,
>     the application layout will be scaled inappositely. So if the
>     application set the base scale, it is applied when the application is
> scaled.
> ---
>  src/lib/elm_app.h    | 27 +++++++++++++++++++++++++++
>  src/lib/elm_macros.h |  1 +
>  src/lib/elm_main.c   | 15 +++++++++++++++
>  3 files changed, 43 insertions(+)
>
> diff --git a/src/lib/elm_app.h b/src/lib/elm_app.h
> index f08fd1b..df2a37c 100644
> --- a/src/lib/elm_app.h
> +++ b/src/lib/elm_app.h
> @@ -266,5 +266,32 @@ EAPI const char *elm_app_data_dir_get(void);
>  EAPI const char *elm_app_locale_dir_get(void);
>
>  /**
> + * Set the base scale of the application.
> + *
> + * @param base_scale The scale that the application is made on the basis
> of.
> + *
> + * @note The scale is used for the application to be scaled.
> + * If the application isn't made on the basis of scale 1.0,
> + * the application layout will be scaled inappositely. So if the
> application set
> + * the base scale, it is applied when the application is scaled.
> + *
> + * @note You should call this function @b before using ELM_SCALE_SIZE
> macro.
> + *
> + * @ingroup App
> + * @since 1.12
> + */
> +EAPI void elm_app_base_scale_set(double base_scale);
> +
> +/**
> + * Get the base scale of the application.
> + *
> + * @return The base scale which the application sets.
> + *
> + * @ingroup App
> + * @since 1.12
> + */
> +EAPI double elm_app_base_scale_get(void);
> +
> +/**
>   * @}
>   */
> diff --git a/src/lib/elm_macros.h b/src/lib/elm_macros.h
> index c25e956..05403ae 100644
> --- a/src/lib/elm_macros.h
> +++ b/src/lib/elm_macros.h
> @@ -1,6 +1,7 @@
>  /* handy macros */
>  #define ELM_RECTS_INTERSECT(x, y, w, h, xx, yy, ww, hh) (((x) < ((xx) +
> (ww))) && ((y) < ((yy) + (hh))) && (((x) + (w)) > (xx)) && (((y) + (h)) >
> (yy)))
>  #define ELM_PI 3.14159265358979323846
> +#define ELM_SCALE_SIZE(x) x / elm_app_base_scale_get() *
> elm_config_scale_get()
>
>  // checks if the point(xx, yy) stays out of the rectangle(x, y, w, h)
> area.
>  #define ELM_RECTS_POINT_OUT(x, y, w, h, xx, yy) (((xx) < (x)) || ((yy) <
> (y)) || ((xx) > ((x) + (w))) || ((yy) > ((y) + (h))))
> diff --git a/src/lib/elm_main.c b/src/lib/elm_main.c
> index 1977994..9fabd43 100644
> --- a/src/lib/elm_main.c
> +++ b/src/lib/elm_main.c
> @@ -127,6 +127,7 @@ static const char *app_bin_dir = NULL;
>  static const char *app_lib_dir = NULL;
>  static const char *app_data_dir = NULL;
>  static const char *app_locale_dir = NULL;
> +static double app_base_scale = 1.0;
>
>  static Eina_Prefix *app_pfx = NULL;
>
> @@ -457,6 +458,20 @@ elm_app_locale_dir_get(void)
>     return app_locale_dir;
>  }
>
> +EAPI void
> +elm_app_base_scale_set(double base_scale)
> +{
> +   if (base_scale <= 0.0) return;
> +   app_base_scale = base_scale;
> +}
> +
> +EAPI double
> +elm_app_base_scale_get(void)
> +{
> +   if (app_base_scale) return app_base_scale;
> +   return 1.0;
> +}
> +
>  static Eina_Bool _elm_need_e_dbus = EINA_FALSE;
>  static void *e_dbus_handle = NULL;
>
>
> --
>
>
>
>
------------------------------------------------------------------------------
Slashdot TV.  Video for Nerds.  Stuff that Matters.
http://pubads.g.doubleclick.net/gampad/clk?id=160591471&iu=/4140/ostg.clktrk
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to