void __main(void) { Virgo v = {0}; MSG msg; get_set_virgo(&v, 1); get_taskbarcreated_msg(); virgo_init(&v); while (GetMessage(&msg, NULL, 0, 0)) { if (msg.message != WM_HOTKEY) { continue; } if (msg.wParam == NUM_DESKTOPS*2) { break; } if (msg.wParam == NUM_DESKTOPS*2+1) { virgo_toggle_hotkeys(&v); } else if (msg.wParam%2 == 0) { virgo_go_to_desk(&v, msg.wParam/2); } else { virgo_move_to_desk(&v, (msg.wParam-1)/2); } } virgo_deinit(&v); ExitProcess(0); }
int main(int argc, char **argv) #endif { Virgo v; MSG msg; virgo_init(&v); while(GetMessage(&msg, NULL, 0, 0)) { if(msg.message != WM_HOTKEY) { continue; } if(msg.wParam == NUM_DESKTOPS*2) { break; } if(msg.wParam%2 == 0) { virgo_go_to_desk(&v, msg.wParam/2); } else { virgo_move_to_desk(&v, (msg.wParam-1)/2); } } virgo_deinit(&v); return EXIT_SUCCESS; }
virgo_error_t *main_wrapper(virgo_t *v) { virgo_error_t *err = NULL; char path[VIRGO_PATH_MAX]; int perform_upgrade = FALSE; virgo__paths_get(v, VIRGO_PATH_DEFAULT_EXE, path, VIRGO_PATH_MAX); virgo_log_debugf(v, "Default EXE Path: %s", path); virgo__paths_get(v, VIRGO_PATH_EXE, path, VIRGO_PATH_MAX); virgo_log_debugf(v, "EXE Path: %s", path); virgo__paths_get(v, VIRGO_PATH_EXE_DIR, path, VIRGO_PATH_MAX); virgo_log_debugf(v, "Latest EXE Path: %s", path); /* See if we are upgrading */ if (virgo_try_upgrade(v)) { /* Attempt upgrade. On success this process gets replaced. */ err = virgo__exec_upgrade(v, &perform_upgrade, &upgrade_status_cb); if (err) { return err; } } err = virgo__paths_get(v, VIRGO_PATH_CURRENT_EXECUTABLE_PATH, path, sizeof(path)); if (err) { handle_error(v, "Could not find current executable name", err); return err; } // virgo_log_debugf(v, "Process Executable: %s", path); /* Setup Lua Contexts for Luvit and Libuv runloop */ err = virgo_init(v); if (err) { if (err->err == VIRGO_EHELPREQ) { show_help(); virgo_error_clear(err); return VIRGO_SUCCESS; } else if (err->err == VIRGO_EVERSIONREQ) { show_version(v); virgo_error_clear(err); return VIRGO_SUCCESS; } else if (err->err == VIRGO_MAINTREQ) { service_maintenance(v); virgo_error_clear(err); return VIRGO_SUCCESS; } handle_error(v, "Error in init", err); return err; } err = virgo_agent_conf_set(v, "version", VERSION_FULL); if (err) { handle_error(v, "Error setting agent version", err); return err; } /* Enter Luvit and Execute */ err = virgo_run(v); if (err) { handle_error(v, "Runtime Error", err); return err; } /* Cleanup */ virgo_destroy(v); return VIRGO_SUCCESS; }