int main (int argc, char **argv) { /* init i18n */ setlocale (LC_ALL, ""); bindtextdomain(GETTEXT_PACKAGE, SEAFILE_LOCALE_DIR); bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8"); textdomain(GETTEXT_PACKAGE); if (count_process("seafile-applet") > 1) { fprintf(stderr, _("Seafile is already running\n")); exit(1); } gtk_init (&argc, &argv); gtk_icon_theme_append_search_path (gtk_icon_theme_get_default(), PKGDATADIR); gtk_window_set_default_icon_name ("seafile"); signal (SIGINT, sigint_handler); applet = g_new0 (SeafileApplet, 1); seafile_applet_init (applet); seafile_applet_start (argc, argv); applet_message ("seafile started\n"); trayicon_set_tip ("Seafile"); gtk_main (); return 0; }
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { if (set_applet_wd() < 0) return -1; #ifdef SEAF_LANG_CHINESE char *seafile_locale_dir = g_build_filename (seafile_bin_dir, "i18n", NULL); /* init i18n */ setlocale (LC_ALL, "zh_CN"); bindtextdomain(GETTEXT_PACKAGE, seafile_locale_dir); bind_textdomain_codeset(GETTEXT_PACKAGE, "GBK"); textdomain(GETTEXT_PACKAGE); #endif if (count_process("seafile-applet") > 1) { MessageBox(NULL, _("Seafile is already running"), "Seafile", MB_OK); exit(1); } int argc; char **argv; char cmdbuf[1024]; GError *err = NULL; WSADATA wsadata; WSAStartup(0x0101, &wsadata); UNREFERENCED_PARAMETER(hPrevInstance); snprintf(cmdbuf, sizeof(cmdbuf), "seafile-applet.exe %s", lpCmdLine); char *xxx = _("Seafile Initialization"); char tmp[128]; snprintf(tmp, sizeof(tmp), "%s", xxx); if (!g_shell_parse_argv (cmdbuf, &argc, &argv, &err)) { if (err) applet_warning ("parse arguments failed %s\n", err->message); applet_exit(1); } g_type_init(); applet = g_new0 (SeafileApplet, 1); seafile_applet_init (hInstance); seafile_applet_start (argc, argv); MSG msg; HACCEL hAccelTable; memset(&msg, 0, sizeof(msg)); hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_STARTINTRAY)); while (GetMessage(&msg, NULL, 0, 0)) { if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) { TranslateMessage(&msg); DispatchMessage(&msg); } } return (int) msg.wParam; }