- Display *dpy;
- SmcConn smc_conn;
- char *vendor;
- char *client_id_ret;
- dpy = XOpenDisplay(NULL);
-
- smc_conn = SmcOpenConnection(NULL, NULL,
- 999, 999,
- 0 /* mask */, NULL /* callbacks */,
- NULL, &client_id_ret, 0, NULL);
-
- vendor = SmcVendor(smc_conn);
+ class Dpy
+ {
+ public:
+ Dpy() { m_dpy = XOpenDisplay(NULL); }
+ ~Dpy() { if ( m_dpy ) XCloseDisplay(m_dpy); }
+
+ operator Display *() const { return m_dpy; }
+ private:
+ Display *m_dpy;
+ } dpy;
+
+ if ( !dpy )
+ return wxEmptyString;
+
+ char *client_id;
+ SmcConn smc_conn = SmcOpenConnection(NULL, NULL,
+ 999, 999,
+ 0 /* mask */, NULL /* callbacks */,
+ NULL, &client_id,
+ 0, NULL);
+
+ if ( !smc_conn )
+ return wxEmptyString;
+
+ char *vendor = SmcVendor(smc_conn);