summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>1999-02-23 19:05:46 +0000
committerOwen Taylor <otaylor@src.gnome.org>1999-02-23 19:05:46 +0000
commit49f909ce6fdb9f65ae97b28b03cd04b888018e81 (patch)
tree177e69914ebba65398825e2f59ecdaf62726c168
parent36f65a53fb108e05d854f1893b0c8c7e4126ba5d (diff)
downloadgnome-control-center-49f909ce6fdb9f65ae97b28b03cd04b888018e81.tar.gz
Use g_get_home_dir() instead of getenv ("HOME")
Mon Feb 22 22:23:34 1999 Owen Taylor <otaylor@redhat.com> * capplets/theme-switcher/lister.c: Use g_get_home_dir() instead of getenv ("HOME") * capplets/theme-switcher/demo.c (demo_main): Strip out ~/.gtkrc from the default file set so we don't get a merge of the current theme and the new one. * capplets/theme-switcher/lister.c (use_theme): Modify .gtkrc instead of .gnome/gtkrc.
-rw-r--r--ChangeLog12
-rw-r--r--capplets/theme-switcher/demo.c32
-rw-r--r--capplets/theme-switcher/demo.c-4582732
-rw-r--r--capplets/theme-switcher/install.c2
-rw-r--r--capplets/theme-switcher/install.c-648282
-rw-r--r--capplets/theme-switcher/lister.c26
-rw-r--r--capplets/theme-switcher/lister.c-4201126
7 files changed, 118 insertions, 14 deletions
diff --git a/ChangeLog b/ChangeLog
index 342579292..409b6364a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+Mon Feb 22 22:23:34 1999 Owen Taylor <otaylor@redhat.com>
+
+ * capplets/theme-switcher/lister.c: Use g_get_home_dir()
+ instead of getenv ("HOME")
+
+ * capplets/theme-switcher/demo.c (demo_main): Strip
+ out ~/.gtkrc from the default file set so we don't
+ get a merge of the current theme and the new one.
+
+ * capplets/theme-switcher/lister.c (use_theme): Modify
+ .gtkrc instead of .gnome/gtkrc.
+
1999-02-23 Nuno Ferreira <nmrf@rnl.ist.utl.pt>
* capplets/session-properties/session-properties.desktop,
diff --git a/capplets/theme-switcher/demo.c b/capplets/theme-switcher/demo.c
index 9daa71087..f70b998da 100644
--- a/capplets/theme-switcher/demo.c
+++ b/capplets/theme-switcher/demo.c
@@ -47,15 +47,45 @@ void demo_main(int argc, char **argv)
gchar *row2[2] = {"Mynie", "Moe"};
gchar *row3[2] = {"Catcha", "Tiger"};
gchar *row4[2] = {"By Its", "Toe"};
+ gchar **rc_files;
+ gchar **new_rc_files;
+ gint rc_file_count;
+ gint new_count;
+ gchar *home_dir;
+ gint i;
read(0, buf, 12);
buf[12] = 0;
sscanf(buf, "%x", &window);
fcntl(0, F_SETFL, O_NONBLOCK);
+
+ /* Strip out ~/.gtkrc from the set of initial default files.
+ * to suppress reading of the previous rc file.
+ */
+
+ rc_files = gtk_rc_get_default_files();
+ for (rc_file_count = 0; rc_files[rc_file_count]; rc_file_count++)
+ /* Nothing */;
+
+ new_rc_files = g_new (gchar *, rc_file_count + 2);
+
+ home_dir = g_get_home_dir();
+ new_count = 0;
+
+ for (i = 0; i<rc_file_count; i++)
+ {
+ if (strncmp (rc_files[i], home_dir, strlen (home_dir)) != 0)
+ new_rc_files[new_count++] = g_strdup (rc_files[i]);
+ }
+ new_rc_files[new_count++] = g_strdup (gtkrc_tmp);
+ new_rc_files[new_count] = NULL;
+
+ gtk_rc_set_default_files (new_rc_files);
+ g_strfreev (new_rc_files);
+
gtk_init (&argc, &argv);
- gtk_rc_parse(gtkrc_tmp);
plug = gtk_plug_new(window);
diff --git a/capplets/theme-switcher/demo.c-45827 b/capplets/theme-switcher/demo.c-45827
index 9daa71087..f70b998da 100644
--- a/capplets/theme-switcher/demo.c-45827
+++ b/capplets/theme-switcher/demo.c-45827
@@ -47,15 +47,45 @@ void demo_main(int argc, char **argv)
gchar *row2[2] = {"Mynie", "Moe"};
gchar *row3[2] = {"Catcha", "Tiger"};
gchar *row4[2] = {"By Its", "Toe"};
+ gchar **rc_files;
+ gchar **new_rc_files;
+ gint rc_file_count;
+ gint new_count;
+ gchar *home_dir;
+ gint i;
read(0, buf, 12);
buf[12] = 0;
sscanf(buf, "%x", &window);
fcntl(0, F_SETFL, O_NONBLOCK);
+
+ /* Strip out ~/.gtkrc from the set of initial default files.
+ * to suppress reading of the previous rc file.
+ */
+
+ rc_files = gtk_rc_get_default_files();
+ for (rc_file_count = 0; rc_files[rc_file_count]; rc_file_count++)
+ /* Nothing */;
+
+ new_rc_files = g_new (gchar *, rc_file_count + 2);
+
+ home_dir = g_get_home_dir();
+ new_count = 0;
+
+ for (i = 0; i<rc_file_count; i++)
+ {
+ if (strncmp (rc_files[i], home_dir, strlen (home_dir)) != 0)
+ new_rc_files[new_count++] = g_strdup (rc_files[i]);
+ }
+ new_rc_files[new_count++] = g_strdup (gtkrc_tmp);
+ new_rc_files[new_count] = NULL;
+
+ gtk_rc_set_default_files (new_rc_files);
+ g_strfreev (new_rc_files);
+
gtk_init (&argc, &argv);
- gtk_rc_parse(gtkrc_tmp);
plug = gtk_plug_new(window);
diff --git a/capplets/theme-switcher/install.c b/capplets/theme-switcher/install.c
index a0b29c1cf..9629c2a17 100644
--- a/capplets/theme-switcher/install.c
+++ b/capplets/theme-switcher/install.c
@@ -20,7 +20,7 @@ install_theme(gchar *file)
g_snprintf(th, sizeof(th), "%s/", theme_dir);
else
{
- home = getenv("HOME");
+ home = g_get_home_dir();
if (!home)
{
g_free(theme_dir);
diff --git a/capplets/theme-switcher/install.c-64828 b/capplets/theme-switcher/install.c-64828
index a0b29c1cf..9629c2a17 100644
--- a/capplets/theme-switcher/install.c-64828
+++ b/capplets/theme-switcher/install.c-64828
@@ -20,7 +20,7 @@ install_theme(gchar *file)
g_snprintf(th, sizeof(th), "%s/", theme_dir);
else
{
- home = getenv("HOME");
+ home = g_get_home_dir();
if (!home)
{
g_free(theme_dir);
diff --git a/capplets/theme-switcher/lister.c b/capplets/theme-switcher/lister.c
index 0ea737c45..efb483401 100644
--- a/capplets/theme-switcher/lister.c
+++ b/capplets/theme-switcher/lister.c
@@ -1,4 +1,6 @@
#include "da.h"
+#include <sys/types.h>
+#include <utime.h>
void
edit_file_to_use(gchar *file, gchar *theme)
@@ -60,10 +62,10 @@ set_tmp_rc()
{
gchar s[4096], *home;
- home = getenv("HOME");
+ home = g_get_home_dir ();
if (!home)
return;
- g_snprintf(s, sizeof(s), "%s/.gnome/gtkrc", home);
+ g_snprintf(s, sizeof(s), "%s/.gtkrc", home);
srand(time(NULL));
g_snprintf(gtkrc_tmp, sizeof(gtkrc_tmp), "/tmp/%i-gtkrc-%i", time(NULL), rand());
cp(s, gtkrc_tmp);
@@ -74,17 +76,31 @@ use_theme(gchar *theme)
{
gchar s[4096], *home;
- home = getenv("HOME");
+ home = g_get_home_dir ();
if (!home)
return;
- g_snprintf(s, sizeof(s), "%s/.gnome/gtkrc", home);
+ g_snprintf(s, sizeof(s), "%s/.gtkrc", home);
edit_file_to_use(s, theme);
}
void
test_theme(gchar *theme)
{
+ static time_t last_written_time = 0;
+ time_t current_time = time (NULL);
+ struct utimbuf buf;
+
edit_file_to_use(gtkrc_tmp, theme);
+
+ if (last_written_time >= current_time)
+ {
+ current_time = last_written_time + 1;
+ buf.actime = current_time;
+ buf.modtime = current_time;
+ utime (gtkrc_tmp, &buf);
+ }
+
+ last_written_time = current_time;
}
void
@@ -150,7 +166,7 @@ list_user_themes(gint *number)
gchar *theme_dir = NULL;
ThemeEntry *list = NULL;
- home = getenv("HOME");
+ home = g_get_home_dir ();
if (!home)
return NULL;
diff --git a/capplets/theme-switcher/lister.c-42011 b/capplets/theme-switcher/lister.c-42011
index 0ea737c45..efb483401 100644
--- a/capplets/theme-switcher/lister.c-42011
+++ b/capplets/theme-switcher/lister.c-42011
@@ -1,4 +1,6 @@
#include "da.h"
+#include <sys/types.h>
+#include <utime.h>
void
edit_file_to_use(gchar *file, gchar *theme)
@@ -60,10 +62,10 @@ set_tmp_rc()
{
gchar s[4096], *home;
- home = getenv("HOME");
+ home = g_get_home_dir ();
if (!home)
return;
- g_snprintf(s, sizeof(s), "%s/.gnome/gtkrc", home);
+ g_snprintf(s, sizeof(s), "%s/.gtkrc", home);
srand(time(NULL));
g_snprintf(gtkrc_tmp, sizeof(gtkrc_tmp), "/tmp/%i-gtkrc-%i", time(NULL), rand());
cp(s, gtkrc_tmp);
@@ -74,17 +76,31 @@ use_theme(gchar *theme)
{
gchar s[4096], *home;
- home = getenv("HOME");
+ home = g_get_home_dir ();
if (!home)
return;
- g_snprintf(s, sizeof(s), "%s/.gnome/gtkrc", home);
+ g_snprintf(s, sizeof(s), "%s/.gtkrc", home);
edit_file_to_use(s, theme);
}
void
test_theme(gchar *theme)
{
+ static time_t last_written_time = 0;
+ time_t current_time = time (NULL);
+ struct utimbuf buf;
+
edit_file_to_use(gtkrc_tmp, theme);
+
+ if (last_written_time >= current_time)
+ {
+ current_time = last_written_time + 1;
+ buf.actime = current_time;
+ buf.modtime = current_time;
+ utime (gtkrc_tmp, &buf);
+ }
+
+ last_written_time = current_time;
}
void
@@ -150,7 +166,7 @@ list_user_themes(gint *number)
gchar *theme_dir = NULL;
ThemeEntry *list = NULL;
- home = getenv("HOME");
+ home = g_get_home_dir ();
if (!home)
return NULL;