po/Makefile.in
src/Makefile
themes/Makefile
+themes/gnome/Makefile
themes/webkit/Makefile
])
ldm_greeter_connect
ldm_greeter_get_hostname
ldm_greeter_get_theme
-ldm_greeter_get_theme_string_property
-ldm_greeter_get_theme_integer_property
+ldm_greeter_get_string_property
+ldm_greeter_get_integer_property
+ldm_greeter_get_boolean_property
ldm_greeter_get_num_users
ldm_greeter_get_users
ldm_greeter_get_languages
</para>
+<!-- ##### ARG LdmGreeter:hostname ##### -->
+<para>
+
+</para>
+
<!-- ##### ARG LdmGreeter:is-authenticated ##### -->
<para>
@Returns:
+<!-- ##### FUNCTION ldm_greeter_get_hostname ##### -->
+<para>
+
+</para>
+
+@greeter:
+@Returns:
+
+
+<!-- ##### FUNCTION ldm_greeter_get_theme ##### -->
+<para>
+
+</para>
+
+@greeter:
+@Returns:
+
+
+<!-- ##### FUNCTION ldm_greeter_get_string_property ##### -->
+<para>
+
+</para>
+
+@greeter:
+@name:
+@Returns:
+
+
+<!-- ##### FUNCTION ldm_greeter_get_integer_property ##### -->
+<para>
+
+</para>
+
+@greeter:
+@name:
+@Returns:
+
+
+<!-- ##### FUNCTION ldm_greeter_get_boolean_property ##### -->
+<para>
+
+</para>
+
+@greeter:
+@name:
+@Returns:
+
+
<!-- ##### FUNCTION ldm_greeter_get_num_users ##### -->
<para>
int
main(int argc, char **argv)
{
+ gchar *theme_dir, *rc_file, *rc_path;
GdkWindow *root;
const GList *items, *item;
GSList *session_radio_list = NULL, *language_radio_list = NULL, *layout_radio_list = NULL;
ldm_greeter_connect (greeter);
- printf("2.%s\n", ldm_greeter_get_theme (greeter));
-
- gtk_rc_add_default_file ("foo");
+ theme_dir = g_path_get_dirname (ldm_greeter_get_theme (greeter));
+ rc_file = ldm_greeter_get_string_property (greeter, "gtkrc");
+ if (rc_file)
+ {
+ rc_path = g_build_filename (theme_dir, rc_file, NULL);
+ g_free (rc_file);
+ gtk_rc_add_default_file (rc_path);
+ }
+ g_free (theme_dir);
gtk_init (&argc, &argv);
return JSValueMakeNumber (context, delay);
}
+static JSValueRef
+get_string_property_cb (JSContextRef context,
+ JSObjectRef function,
+ JSObjectRef thisObject,
+ size_t argumentCount,
+ const JSValueRef arguments[],
+ JSValueRef *exception)
+{
+ LdmGreeter *greeter = JSObjectGetPrivate (thisObject);
+ JSStringRef name_arg;
+ char name[1024];
+ gchar *value;
+ JSStringRef string;
+
+ // FIXME: Throw exception
+ if (argumentCount != 1)
+ return JSValueMakeNull (context);
+
+ name_arg = JSValueToStringCopy (context, arguments[0], NULL);
+ JSStringGetUTF8CString (name_arg, name, 1024);
+ JSStringRelease (name_arg);
+
+ value = ldm_greeter_get_string_property (greeter, name);
+
+ if (!value)
+ return JSValueMakeNull (context);
+
+ string = JSStringCreateWithUTF8CString (value);
+ g_free (value);
+ return JSValueMakeString (context, string);
+}
+
+static JSValueRef
+get_integer_property_cb (JSContextRef context,
+ JSObjectRef function,
+ JSObjectRef thisObject,
+ size_t argumentCount,
+ const JSValueRef arguments[],
+ JSValueRef *exception)
+{
+ LdmGreeter *greeter = JSObjectGetPrivate (thisObject);
+ JSStringRef name_arg;
+ char name[1024];
+
+ // FIXME: Throw exception
+ if (argumentCount != 1)
+ return JSValueMakeNull (context);
+
+ name_arg = JSValueToStringCopy (context, arguments[0], NULL);
+ JSStringGetUTF8CString (name_arg, name, 1024);
+ JSStringRelease (name_arg);
+
+ return JSValueMakeNumber (context, ldm_greeter_get_integer_property (greeter, name));
+}
+
+static JSValueRef
+get_boolean_property_cb (JSContextRef context,
+ JSObjectRef function,
+ JSObjectRef thisObject,
+ size_t argumentCount,
+ const JSValueRef arguments[],
+ JSValueRef *exception)
+{
+ LdmGreeter *greeter = JSObjectGetPrivate (thisObject);
+ JSStringRef name_arg;
+ char name[1024];
+
+ // FIXME: Throw exception
+ if (argumentCount != 1)
+ return JSValueMakeNull (context);
+
+ name_arg = JSValueToStringCopy (context, arguments[0], NULL);
+ JSStringGetUTF8CString (name_arg, name, 1024);
+ JSStringRelease (name_arg);
+
+ return JSValueMakeBoolean (context, ldm_greeter_get_boolean_property (greeter, name));
+}
+
static JSValueRef
cancel_timed_login_cb (JSContextRef context,
JSObjectRef function,
static const JSStaticFunction ldm_greeter_functions[] =
{
- { "cancel_timed_login", cancel_timed_login_cb, kJSPropertyAttributeReadOnly },
+ { "get_string_property", get_string_property_cb, kJSPropertyAttributeReadOnly },
+ { "get_integer_property", get_integer_property_cb, kJSPropertyAttributeReadOnly },
+ { "get_boolean_property", get_boolean_property_cb, kJSPropertyAttributeReadOnly },
+ { "cancel_timed_login", cancel_timed_login_cb, kJSPropertyAttributeReadOnly },
{ "start_authentication", start_authentication_cb, kJSPropertyAttributeReadOnly },
{ "provide_secret", provide_secret_cb, kJSPropertyAttributeReadOnly },
{ "cancel_authentication", cancel_authentication_cb, kJSPropertyAttributeReadOnly },
}
/**
- * ldm_greeter_get_string_theme:
+ * ldm_greeter_get_string_property:
* @greeter: a #LdmGreeter
* @name: the name of the property to get
*
- * Return value: The value of this property or NULL if is not defined
+ * Return value: The value of this property or NULL if it is not defined
**/
gchar *
-ldm_greeter_get_theme_string_property (LdmGreeter *greeter, const gchar *name)
+ldm_greeter_get_string_property (LdmGreeter *greeter, const gchar *name)
{
GError *error = NULL;
gchar *result;
}
/**
- * ldm_greeter_get_int_theme:
+ * ldm_greeter_get_integer_property:
* @greeter: a #LdmGreeter
* @name: the name of the property to get
*
- * Return value: The value of this property or NULL if is not defined
+ * Return value: The value of this property or 0 if it is not defined
**/
gint
-ldm_greeter_get_theme_integer_property (LdmGreeter *greeter, const gchar *name)
+ldm_greeter_get_integer_property (LdmGreeter *greeter, const gchar *name)
{
GError *error = NULL;
gint result;
return result;
}
+/**
+ * ldm_greeter_get_boolean_property:
+ * @greeter: a #LdmGreeter
+ * @name: the name of the property to get
+ *
+ * Return value: The value of this property or FALSE if it is not defined
+ **/
+gboolean
+ldm_greeter_get_boolean_property (LdmGreeter *greeter, const gchar *name)
+{
+ GError *error = NULL;
+ gboolean result;
+
+ load_theme (greeter);
+
+ result = g_key_file_get_boolean (greeter->priv->theme_file, "theme", name, &error);
+ if (!result)
+ g_warning ("Error reading theme property: %s", error->message); // FIXME: Can handle G_KEY_FILE_ERROR_KEY_NOT_FOUND and G_KEY_FILE_ERROR_GROUP_NOT_FOUND
+ g_clear_error (&error);
+
+ return result;
+}
+
#define TYPE_USER dbus_g_type_get_struct ("GValueArray", G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_INVALID)
#define TYPE_USER_LIST dbus_g_type_get_collection ("GPtrArray", TYPE_USER)
const gchar *ldm_greeter_get_theme (LdmGreeter *greeter);
-gchar *ldm_greeter_get_theme_string_property (LdmGreeter *greeter, const gchar *name);
+gchar *ldm_greeter_get_string_property (LdmGreeter *greeter, const gchar *name);
-gint ldm_greeter_get_theme_integer_property (LdmGreeter *greeter, const gchar *name);
+gint ldm_greeter_get_integer_property (LdmGreeter *greeter, const gchar *name);
+
+gboolean ldm_greeter_get_boolean_property (LdmGreeter *greeter, const gchar *name);
gint ldm_greeter_get_num_users (LdmGreeter *greeter);
$(LIGHTDM_LIBS) \
-lpam
-EXTRA_DIST = display-manager.xml \
+EXTRA_DIST = ldm-marshal.list \
+ display-manager.xml \
display.xml \
user-manager.xml
filename = g_strdup_printf ("%s.theme", display->priv->greeter_theme);
*theme = g_build_filename (THEME_DIR, filename, NULL);
- printf("1.%s\n", *theme);
g_free (filename);
*session = g_strdup (display->priv->session_name);
*username = g_strdup (display->priv->default_user);
--- /dev/null
+BOOLEAN:OBJECT
+VOID:INT,POINTER
-SUBDIRS = webkit
+SUBDIRS = gnome webkit
themedir = $(THEME_DIR)
theme_DATA = gnome.theme webkit.theme
--- /dev/null
+themedir = $(THEME_DIR)/gnome
+theme_DATA = gtkrc
+
+EXTRA_DIST = $(theme_DATA)
+
+DISTCLEANFILES = \
+ Makefile.in
--- /dev/null
+gtk_theme_name = "HumanLogin"
+gtk_icon_theme_name = "LoginIcons"
+gtk_cursor_theme_name = "DMZ-White"
+gtk_font_name = "UbuntuBeta 10"
+# Not working, but set to 96*1024 (=96dpi)
+gtk_xft_dpi = 98304
+gtk_xft_hinting = 1
+gtk_xft_hintstyle = "hintslight"
+gtk_xft_rgba = "rgb"