static void virgo_init(Virgo *v) { unsigned i; v->handle_hotkeys = 1; for (i=0; i<NUM_DESKTOPS; i++) { register_hotkey(i*2, MOD_ALT|MOD_NOREPEAT, i+1+'0'); register_hotkey(i*2+1, MOD_CONTROL|MOD_NOREPEAT, i+1+'0'); } register_hotkey(i*2, MOD_ALT|MOD_CONTROL|MOD_SHIFT|MOD_NOREPEAT, 'Q'); register_hotkey(i*2+1, MOD_ALT|MOD_CONTROL|MOD_SHIFT|MOD_NOREPEAT, 'S'); trayicon_init(&v->trayicon); }
static void virgo_init(Virgo *v) { #define MOD_NOREPEAT 0x4000 int i; v->current = 0; for(i=0; i<NUM_DESKTOPS; i++) { v->desktops[i].windows = NULL; v->desktops[i].count = 0; register_hotkey(i*2, MOD_ALT|MOD_NOREPEAT, i+1+0x30); register_hotkey(i*2+1, MOD_CONTROL|MOD_NOREPEAT, i+1+0x30); } register_hotkey(i*2, MOD_ALT|MOD_CONTROL|MOD_SHIFT|MOD_NOREPEAT, 'Q'); trayicon_init(&v->trayicon); }
static void virgo_toggle_hotkeys(Virgo *v) { unsigned i; v->handle_hotkeys = !v->handle_hotkeys; if (v->handle_hotkeys) { for (i=0; i<NUM_DESKTOPS; i++) { register_hotkey(i*2, MOD_ALT|MOD_NOREPEAT, i+1+'0'); register_hotkey(i*2+1, MOD_CONTROL|MOD_NOREPEAT, i+1+'0'); } } else { for (i=0; i<NUM_DESKTOPS; i++) { UnregisterHotKey(NULL, i*2); UnregisterHotKey(NULL, i*2+1); } } }
static void starlog_init(Starlog *s, HINSTANCE hInstance) { const char className[] = "starlog"; WNDCLASSEX wc; wc.cbSize = sizeof(WNDCLASSEX); wc.style = 0; wc.lpfnWndProc = WndProc; wc.cbClsExtra = sizeof(Starlog *); wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hIcon = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_ICON)); wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wc.lpszMenuName = NULL; wc.lpszClassName = className; wc.hIconSm = (HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_ICON), IMAGE_ICON, 16, 16, 0); if(!RegisterClassEx(&wc)) { MessageBox(NULL, "Window Registration Failed!", "error", MB_ICONEXCLAMATION|MB_OK); ExitProcess(1); } s->hwnd = CreateWindowEx( WS_EX_CLIENTEDGE, className, "starlog", WS_OVERLAPPED|WS_CAPTION|WS_THICKFRAME|WS_SYSMENU, CW_USEDEFAULT, CW_USEDEFAULT, WIN_WIDTH, WIN_HEIGHT, NULL, NULL, hInstance, NULL); if(!s->hwnd) { MessageBox(NULL, "Window Creation Failed!", "error", MB_ICONEXCLAMATION|MB_OK); ExitProcess(1); } s->edit_log = CreateWindowEx(0, "Edit", "", WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_MULTILINE| ES_AUTOVSCROLL|ES_AUTOHSCROLL|WS_EX_CONTROLPARENT|WS_BORDER, 10, 10, WIN_WIDTH-40, WIN_HEIGHT-90, s->hwnd, NULL, hInstance, NULL); s->bu_save_close = CreateWindowEx(0, "Button", "SAVE && CLOSE", WS_CHILD|WS_VISIBLE|WS_TABSTOP|BS_DEFPUSHBUTTON, 10, WIN_HEIGHT-75, 130, 24, s->hwnd, (HMENU)IDC_SAVE_CLOSE, hInstance, NULL); s->bu_close = CreateWindowEx(0, "Button", "CLOSE", WS_CHILD|WS_VISIBLE|WS_TABSTOP|BS_DEFPUSHBUTTON, 150, WIN_HEIGHT-75, 130, 24, s->hwnd, (HMENU)IDC_CLOSE, hInstance, NULL); SetWindowLongPtr(s->hwnd, GWLP_USERDATA, (LONG_PTR)s); register_hotkey(HOTKEY_LOG, MOD_ALT|MOD_CONTROL|MOD_SHIFT|MOD_NOREPEAT, 'L'); }