// -*- mode: C++; indent-tabs-mode: nil; -*-
-#include "../version.h"
+/*! @file main.cc
+ @brief Main entry point for the application
+*/
#ifdef HAVE_CONFIG_H
# include "../config.h"
#endif // HAVE_CONFIG_H
extern "C" {
-#ifdef HAVE_STDIO_H
-# include <stdio.h>
-#endif // HAVE_STDIO_H
+#ifdef HAVE_LOCALE_H
+# include <locale.h>
+#endif // HAVE_LOCALE_H
-#ifdef HAVE_STDLIB_H
-# include <stdlib.h>
-#endif // HAVE_STDLIB_H
-
-#ifdef HAVE_STRING_H
-# include <string.h>
-#endif // HAVE_STRING_H
-
-#ifdef HAVE_UNISTD_H
-#include <sys/types.h>
-#endif // HAVE_UNISTD_H
-
-#ifdef HAVE_SYS_PARAM_H
-# include <sys/param.h>
-#endif // HAVE_SYS_PARAM_H
+#include "gettext.h"
}
#include <string>
using std::string;
-#include "blackbox.hh"
-
-
-static void showHelp(int exitval) {
- // print program usage and command line options
- printf("Openbox %s : (c) 2002 - 2002 Ben Jansens\n"
- " -display <string>\t\tuse display connection.\n"
- " -rc <string>\t\t\tuse alternate resource file.\n"
- " -menu <string>\t\tuse alternate menu file.\n"
- " -version\t\t\tdisplay version and exit.\n"
- " -help\t\t\t\tdisplay this help text and exit.\n\n",
- OPENBOX_VERSION);
-
- // some people have requested that we print out compile options
- // as well
- printf("Compile time options:\n"
- " Debugging:\t\t\t%s\n"
- " Shape:\t\t\t%s\n"
- " Xft:\t\t\t\t%s\n"
- " Xinerama:\t\t\t%s\n"
- " 8bpp Ordered Dithering:\t%s\n\n",
-#ifdef DEBUG
- "yes",
-#else // !DEBUG
- "no",
-#endif // DEBUG
-
-#ifdef SHAPE
- "yes",
-#else // !SHAPE
- "no",
-#endif // SHAPE
-
-#ifdef XFT
- "yes",
-#else // !XFT
- "no",
-#endif // XFT
-
-#ifdef XINERAMA
- "yes",
-#else // !XINERAMA
- "no",
-#endif // XINERAMA
-
-#ifdef ORDEREDPSEUDO
- "yes"
-#else // !ORDEREDPSEUDO
- "no"
-#endif // ORDEREDPSEUDO
- );
-
- ::exit(exitval);
-}
+#include "openbox.hh"
int main(int argc, char **argv) {
- char *session_display = (char *) 0;
- char *rc_file = (char *) 0;
- char *menu_file = (char *) 0;
-
- for (int i = 1; i < argc; ++i) {
- if (! strcmp(argv[i], "-rc")) {
- // look for alternative rc file to use
-
- if ((++i) >= argc) {
- fprintf(stderr, "error: '-rc' requires and argument\n");
-
- ::exit(1);
- }
-
- rc_file = argv[i];
- } else if (! strcmp(argv[i], "-menu")) {
- // look for alternative menu file to use
-
- if ((++i) >= argc) {
- fprintf(stderr, "error: '-menu' requires and argument\n");
-
- ::exit(1);
- }
-
- menu_file = argv[i];
- } else if (! strcmp(argv[i], "-display")) {
- // check for -display option... to run on a display other than the one
- // set by the environment variable DISPLAY
-
- if ((++i) >= argc) {
- fprintf(stderr, "error: '-display' requires an argument\n");
-
- ::exit(1);
- }
-
- session_display = argv[i];
- string dtmp = "DISPLAY=";
- dtmp += session_display;
-
- if (putenv(const_cast<char*>(dtmp.c_str()))) {
- fprintf(stderr,
- "warning: couldn't set environment variable 'DISPLAY'\n");
- perror("putenv()");
- }
- } else if (! strcmp(argv[i], "-version")) {
- // print current version string
- printf("Openbox %s : (c) 2002 - 2002 Ben Jansens\n",
- OPENBOX_VERSION);
-
- ::exit(0);
- } else if (! strcmp(argv[i], "-help")) {
- showHelp(0);
- } else { // invalid command line option
- showHelp(-1);
- }
- }
-
-#ifdef __EMX__
- _chdir2(getenv("X11ROOT"));
-#endif // __EMX__
-
- Blackbox blackbox(argv, session_display, rc_file);
- blackbox.eventLoop();
+ // initialize the locale
+ setlocale(LC_ALL, "");
+ bindtextdomain(PACKAGE, LOCALEDIR);
+ textdomain(PACKAGE);
- return(0);
+ ob::Openbox openbox(argc, argv);
+ openbox.eventLoop();
}