mx/mx/mx-private.h

146 lines
4.1 KiB
C

/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/*
* mx-private.h: Private declarations
*
* Copyright 2007 OpenedHand
* Copyright 2009 Intel Corporation.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU Lesser General Public License,
* version 2.1, as published by the Free Software Foundation.
*
* This program is distributed in the hope it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
* more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
* Boston, MA 02111-1307, USA.
*
*/
#ifndef __MX_PRIVATE_H__
#define __MX_PRIVATE_H__
#include <glib.h>
#include "mx.h"
G_BEGIN_DECLS
#define MX_PARAM_READABLE \
(G_PARAM_READABLE | \
G_PARAM_STATIC_NICK | G_PARAM_STATIC_NAME | G_PARAM_STATIC_BLURB)
#define MX_PARAM_WRITABLE \
(G_PARAM_WRITABLE | \
G_PARAM_STATIC_NICK | G_PARAM_STATIC_NAME | G_PARAM_STATIC_BLURB)
#define MX_PARAM_READWRITE \
(G_PARAM_READABLE | G_PARAM_WRITABLE | \
G_PARAM_STATIC_NICK | G_PARAM_STATIC_NAME | G_PARAM_STATIC_BLURB)
#define MX_ALIGN_TO_FLOAT(x) ((x == MX_ALIGN_START) ? 0.0 : (x == MX_ALIGN_MIDDLE) ? 0.5 : 1.0)
struct _MxTableChild
{
ClutterChildMeta parent_instance;
gint col;
gint row;
gint col_span;
gint row_span;
gdouble x_align;
gdouble y_align;
guint x_expand : 1;
guint y_expand : 1;
guint x_fill : 1;
guint y_fill : 1;
};
typedef enum
{
MX_SETTINGS_ICON_THEME = 1,
MX_SETTINGS_FONT_NAME,
MX_SETTINGS_LONG_PRESS_TIMEOUT,
MX_SETTINGS_SMALL_SCREEN,
MX_SETTINGS_DRAG_THRESHOLD
} MxSettingsProperty;
ClutterActor *_mx_widget_get_dnd_clone (MxWidget *widget);
void _mx_box_layout_start_animation (MxBoxLayout *box);
void _mx_bin_get_align_factors (MxBin *bin,
gdouble *x_align,
gdouble *y_align);
/* used by MxTableChild to update row/column count */
void _mx_table_update_row_col (MxTable *table,
gint row,
gint col);
CoglHandle _mx_window_get_icon_cogl_texture (MxWindow *window);
ClutterActor * _mx_window_get_resize_grip (MxWindow *window);
void _mx_style_invalidate_cache (MxStylable *stylable);
gchar * _mx_stylable_get_style_string (MxStylable *stylable);
const gchar * _mx_enum_to_string (GType type,
gint value);
gboolean
_mx_string_to_enum (GType type,
const gchar *nick,
gint *value);
void _mx_fade_effect_set_freeze_update (MxFadeEffect *effect,
gboolean freeze);
gboolean _mx_fade_effect_get_freeze_update (MxFadeEffect *effect);
typedef enum
{
MX_DEBUG_LAYOUT = 1 << 0,
MX_DEBUG_INSPECTOR = 1 << 1,
MX_DEBUG_FOCUS = 1 << 2,
MX_DEBUG_CSS = 1 << 3,
MX_DEBUG_STYLE_CACHE = 1 << 4
} MxDebugTopic;
gboolean _mx_debug (gint debug);
#ifdef G_HAVE_ISO_VARARGS
#define MX_NOTE(topic,...) G_STMT_START { \
if (G_UNLIKELY (_mx_debug(MX_DEBUG_##topic))) \
g_message ("[" #topic "] " G_STRLOC ": " __VA_ARGS__); \
} G_STMT_END
#elif G_HAVE_GNUC_VARARGS
#define MX_NOTE(topic, fmt, args...) G_STMT_START { \
if (G_UNLIKELY (_mx_debug(MX_DEBUG_##topic))) \
g_message ("[" #topic "] " G_STRLOC ": " fmt, ##args); \
} G_STMT_END
#else /* no variadic macros, your compiler sucks at C */
#warning "Can't use variadic macros, MX_NOTE() disabled."
static inline void
MX_NOTE (gint topic,
const gchar *fmt,
...)
{
}
#endif /* G_HAVE_ISO_VARARGS */
G_END_DECLS
#endif /* __MX_PRIVATE_H__ */