int main(int argc, char *argv[]) { setlocale(LC_CTYPE, ""); bindtextdomain(PROJECT_NAME, LOCALEDIR); textdomain(PROJECT_NAME); gtk_set_locale(); gtk_init(&argc, &argv); XSetLocaleModifiers(""); XSetErrorHandler((XErrorHandler) handle_error); fb_init(); do_argv(argc, argv); profile_file = g_build_filename(g_get_user_config_dir(), "fbpanel", profile, NULL); ensure_profile(); gtk_icon_theme_append_search_path(gtk_icon_theme_get_default(), IMGPREFIX); signal(SIGUSR1, sig_usr1); signal(SIGUSR2, sig_usr2); do { the_panel = p = g_new0(panel, 1); p->xc = xconf_new_from_file(profile_file, profile); if (!p->xc) exit(1); panel_start(p->xc); if (config) configure(p->xc); gtk_main(); panel_stop(p); //xconf_save_to_profile(cprofile, xc); xconf_del(p->xc, FALSE); g_free(p); DBG("force_quit=%d\n", force_quit); } while (force_quit == 0); g_free(profile_file); fb_free(); exit(0); }
int main(int argc, char *argv[], char *env[]) { int i; ENTER; setlocale(LC_CTYPE, ""); gtk_init(&argc, &argv); XSetLocaleModifiers(""); XSetErrorHandler((XErrorHandler) handle_error); // resolve xatoms resolve_atoms(); p = g_new0(panel, 1); memset(p, 0, sizeof(panel)); p->allign = ALLIGN_CENTER; p->edge = EDGE_BOTTOM; p->widthtype = WIDTH_PERCENT; p->width = PANEL_WIDTH_DEFAULT; p->heighttype = HEIGHT_PIXEL; p->height = PANEL_HEIGHT_DEFAULT; p->setdocktype = 1; p->setstrut = 0; p->transparent = 0; p->icon_spacing = 0; p->alpha = 127; p->tintcolor = 0xFFFFFFFF; p->xtopbg = None; p->monitor = 0; p->margin = 0; p->on_primary = 0; for (i = 1; i < argc; i++) { if (!strcmp(argv[i], "-h") || !strcmp(argv[i], "--help")) { usage(); exit(0); } else if (!strcmp(argv[i], "-v") || !strcmp(argv[i], "--version")) { printf("trayer %s\n", version); exit(0); } else if (!strcmp(argv[i], "-l")) { p->lower = 1; } else if (!strcmp(argv[i], "--edge")) { i++; if (i == argc) { ERR( "trayer: missing edge parameter value\n"); usage(); exit(1); } else { p->edge = str2num(edge_pair, argv[i], EDGE_NONE); } } else if (!strcmp(argv[i], "--align")) { i++; if (i == argc) { ERR( "trayer: missing align parameter value\n"); usage(); exit(1); } else { p->allign = str2num(allign_pair, argv[i], ALLIGN_NONE); } } else if (!strcmp(argv[i], "--margin")) { i++; if (i == argc) { ERR( "trayer: missing margin parameter value\n"); usage(); exit(1); } else { p->margin = atoi(argv[i]); } } else if (!strcmp(argv[i], "--widthtype")) { i++; if (i == argc) { ERR( "trayer: missing widthtype parameter value\n"); usage(); exit(1); } else { p->widthtype = str2num(width_pair, argv[i], WIDTH_NONE); } } else if (!strcmp(argv[i], "--width")) { i++; if (i == argc) { ERR( "trayer: missing width parameter value\n"); usage(); exit(1); } else { p->width = atoi(argv[i]); } } else if (!strcmp(argv[i], "--heighttype")) { i++; if (i == argc) { ERR( "trayer: missing heighttype parameter value\n"); usage(); exit(1); } else { p->heighttype = str2num(height_pair, argv[i], HEIGHT_NONE); } } else if (!strcmp(argv[i], "--height")) { i++; if (i == argc) { ERR( "trayer: missing height parameter value\n"); usage(); exit(1); } else { p->height = atoi(argv[i]); } } else if (!strcmp(argv[i], "--SetDockType")) { i++; if (i == argc) { ERR( "trayer: missing SetDockType parameter value\n"); usage(); exit(1); } else { p->setdocktype = str2num(bool_pair, argv[i], 0); } } else if (!strcmp(argv[i], "--SetPartialStrut")) { i++; if (i == argc) { ERR( "trayer: missing SetPartialStrut parameter value\n"); usage(); exit(1); } else { p->setstrut = str2num(bool_pair, argv[i], 0); } } else if (!strcmp(argv[i], "--transparent")) { i++; if (i == argc) { ERR( "trayer: missing transparent parameter value\n"); usage(); exit(1); } else { p->transparent = str2num(bool_pair, argv[i], 1); } } else if (!strcmp(argv[i], "--alpha")) { i++; if (i == argc) { ERR( "trayer: missing alpha parameter value\n"); usage(); exit(1); } else { p->alpha = atoi(argv[i]); } } else if (!strcmp(argv[i], "--tint")) { i++; if (i == argc) { ERR( "trayer: missing tint parameter value\n"); usage(); exit(1); } else { p->tintcolor = strtoul(argv[i], NULL, 0); } } else if (!strcmp(argv[i], "--distance")) { i++; if (i == argc) { ERR( "trayer: missing distance parameter value\n"); usage(); exit(1); } else { distance = atoi(argv[i]); } } else if (!strcmp(argv[i], "--distancefrom")) { i++; if (i == argc) { ERR( "trayer: missing distancefrom parameter value\n"); usage(); exit(1); } else { distancefrom = str2num(distancefrom_pair, argv[i], DISTANCEFROM_NONE); } } else if (!strcmp(argv[i], "--expand")) { i++; if (i == argc) { ERR( "trayer: missing expand parameter value\n"); usage(); exit(1); } else { expand = str2num(bool_pair, argv[i], 1); } } else if (!strcmp(argv[i], "--padding")) { i++; if (i == argc) { ERR( "trayer: missing padding parameter value\n"); usage(); exit(1); } else { padding = atoi(argv[i]); } } else if (!strcmp(argv[i], "--monitor")) { i++; if (i == argc) { ERR( "trayer: missing monitor parameter value\n"); usage(); exit(1); } else { if (g_ascii_isdigit(argv[i][0])) { p->monitor = atoi(argv[i]); } else if (!strcmp(argv[i], "primary")) { p->on_primary = 1; } } } else if (!strcmp(argv[i], "--iconspacing")) { i++; if (i == argc) { ERR( "trayer: missing icon padding parameter value\n"); usage(); exit(1); } else { p->icon_spacing = atoi(argv[i]); } } else { printf("trayer: unknown option - %s\n", argv[i]); usage(); exit(1); } } g_return_val_if_fail (p != NULL, 1); if (!panel_start(p)) { ERR( "trayer: can't start panel\n"); exit(1); } gtk_main(); panel_stop(p); g_free(p); exit(0); }
int main(int argc, char *argv[], char *env[]) { int i; void configure(); FILE *pfp; /* current profile FP */ GdkPixbuf* icon; ENTER; //printf("sizeof(gulong)=%d\n", sizeof(gulong)); setlocale(LC_CTYPE, ""); gtk_set_locale(); gtk_init(&argc, &argv); XSetLocaleModifiers(""); XSetErrorHandler((XErrorHandler) handle_error); icon = gdk_pixbuf_new_from_file(IMGPREFIX "star.png", NULL); if (icon) { gtk_window_set_default_icon(icon); g_object_unref(icon); } resolve_atoms(); for (i = 1; i < argc; i++) { if (!strcmp(argv[i], "-h") || !strcmp(argv[i], "--help")) { usage(); exit(0); } else if (!strcmp(argv[i], "-v") || !strcmp(argv[i], "--version")) { printf("fbpanel %s\n", version); exit(0); } else if (!strcmp(argv[i], "--log")) { i++; if (i == argc) { ERR( "fbpanel: missing log level\n"); usage(); exit(1); } else { log_level = atoi(argv[i]); } } else if (!strcmp(argv[i], "--configure") || !strcmp(argv[i], "-C")) { config = 1; } else if (!strcmp(argv[i], "--profile") || !strcmp(argv[i], "-p")) { i++; if (i == argc) { ERR( "fbpanel: missing profile name\n"); usage(); exit(1); } else { cprofile = g_strdup(argv[i]); } } else { printf("fbpanel: unknown option - %s\n", argv[i]); usage(); exit(1); } } gtk_icon_theme_append_search_path(gtk_icon_theme_get_default(), IMGPREFIX); signal(SIGUSR1, sig_usr); do { if (!(pfp = open_profile(cprofile))) exit(1); p = g_new0(panel, 1); g_return_val_if_fail (p != NULL, 1); if (!panel_start(p, pfp)) { ERR( "fbpanel: can't start panel\n"); exit(1); } fclose(pfp); if (config) configure(); gtk_main(); panel_stop(p); g_free(p); } while (force_quit == 0); exit(0); }