08553067f7ac72b4a3b07afe664b6896d52f09f1
[org.ibex.core.git] / src / org / xwt / plat / POSIX.java
1 // Copyright 2002 Adam Megacz, see the COPYING file for licensing [LGPL]
2 package org.xwt.plat;
3
4 import java.awt.*;
5 import java.awt.image.*;
6 import gnu.gcj.RawData;
7 import java.net.*;
8 import java.lang.reflect.*;
9 import java.io.*;
10 import java.util.*;
11 import java.awt.peer.*;
12 import org.xwt.util.*;
13 import org.xwt.*;
14
15 /** Platform implementation for POSIX compliant operating systems */
16 public class POSIX extends GCJ {
17
18     // General Methods ///////////////////////////////////////////////////////
19
20     protected String getDescriptiveName() { return "GCJ Linux Binary"; }
21
22     /** returns the value of the environment variable key, or null if no such key exists */
23     protected native String _getEnv(String key);
24     
25     /** spawns a process which is immune to SIGHUP */
26     private static native void spawnChildProcess(String[] command);
27
28     protected void _newBrowserWindow(String url) {
29         String browserString = getEnv("BROWSER");
30         if (browserString == null) {
31             browserString = "netscape " + url;
32         } else if (browserString.indexOf("%s") != -1) {
33             browserString =
34                 browserString.substring(0, browserString.indexOf("%s")) +
35                 url + browserString.substring(browserString.indexOf("%s") + 2);
36         } else {
37             browserString += " " + url;
38         }
39
40         StringTokenizer st = new StringTokenizer(browserString, " ");
41         String[] cmd = new String[st.countTokens()];
42         for(int i=0; st.hasMoreTokens(); i++) cmd[i] = st.nextToken();
43
44         spawnChildProcess(cmd);
45     }
46
47     public POSIX() { }
48 }
49
50
51