java-gnome version 4.0.15

org.gnome.glib
Class Glib

Object
  extended by org.gnome.glib.Glib
Direct Known Subclasses:
Enchant, Glade, Gtk, Notify, Screenshot

public class Glib
extends Object

Static methods to initialize the Java bindings around GLib.

Since:
4.0.0
Author:
Andrew Cowie, Serkan Kaba
See Also:
XDG Base Directory Specification

Method Summary
static String getRealName()
          Returns the real name of the user running the application from /etc/passwd file.
static String[] getSystemConfigDirs()
          Get a list of system-wide XDG configuration directories.
static String[] getSystemDataDirs()
          Get a list of system-wide XDG data directories.
static String getUserCacheDir()
          Get the XDG user specific cache directory.
static String getUserConfigDir()
          Get the XDG user specific configuration directory.
static String getUserDataDir()
          Get the XDG user specific data directory.
static String getUserName()
          Returns the username (i.e Linux login name) running the application.
static String getUserSpecialDir(UserDirectory directory)
          Get the XDG user specific special directory.
static void reloadUserSpecialDirsCache()
          Reset the cache used for getUserSpecialDir().
static void setProgramName(String name)
          Change the internal program name used by GLib and GTK for internal error messages.
 
Methods inherited from class Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getRealName

public static String getRealName()
Returns the real name of the user running the application from /etc/passwd file. If it can't be determined "Unknown" is returned.

The warning about encoding in getUserName() also applies.

Since:
4.0.15

getSystemConfigDirs

public static String[] getSystemConfigDirs()
Get a list of system-wide XDG configuration directories.

Since:
4.0.15

getSystemDataDirs

public static String[] getSystemDataDirs()
Get a list of system-wide XDG data directories.

Since:
4.0.15

getUserCacheDir

public static String getUserCacheDir()
Get the XDG user specific cache directory. In all likelihood this will be ~/.cache.

Since:
4.0.15

getUserConfigDir

public static String getUserConfigDir()
Get the XDG user specific configuration directory. In all likelihood this will be ~/.config.

Since:
4.0.15

getUserDataDir

public static String getUserDataDir()
Get the XDG user specific data directory. In all likelihood this will be ~/.local/share.

Since:
4.0.15

getUserName

public static String getUserName()
Returns the username (i.e Linux login name) running the application.

WARNING:
This method assumes that your system uses UTF-8 as encoding. Please file a bug if this assumption is not valid for your system.

Since:
4.0.15

getUserSpecialDir

public static String getUserSpecialDir(UserDirectory directory)
Get the XDG user specific special directory. Directory constants are defined in UserDirectory. System wide defaults are defined in /etc/xdg/user-dirs.defaults and can be overridden in ~/.config/user-dir.dirs.

If you've already queried the "special" directories then those values are cached; they certainly don't change often. If you're writing a program that absolutely needs to be aware if those settings have changed after you're already used this, then you can force up to date information by calling Glib.reloadUserSpecialDirsCache().

Since:
4.0.15

reloadUserSpecialDirsCache

public static void reloadUserSpecialDirsCache()
Reset the cache used for getUserSpecialDir().

WARNING:
This may cause memory leaks if the return values change between calls.

Since:
4.0.15

setProgramName

public static void setProgramName(String name)
Change the internal program name used by GLib and GTK for internal error messages. Occasionally (especially as we develop new functionality) you or we will do something wrong, and GLib will complain loudly about it to the console, for example:
 (gnome-panel:5581): Gtk-WARNING **: gtk_widget_size_allocate(): attempt to...
 
where "gnome-panel" was the name set by that program with this method call, and 5581 was the process id originating the message. As you can see, the whole thing is pretty ugly (not to mention having no context), which is why one of the design goals of java-gnome is to fully proxy the entire underlying library and have none of the internals from GLib or GTK be exposed to the Java developer. If we do our job right, your users should never see a message like that; at worst it would be reported as a Java stack trace.

You don't really need to call this, but it's here if you want to make it clearer in the .xsession-errors log what the culprit application is.

Warning
If you wish to use this, it must be called before anything else. This is the only method in java-gnome that can be called before Gtk.init().

Since:
4.0.14


java-gnome