void x_window_rep::set_hints (int min_w, int min_h, int max_w, int max_h) { XSizeHints* size_hints; XWMHints* wm_hints; XClassHint* class_hints; ASSERT (size_hints= XAllocSizeHints (), "out of memory (X server)"); ASSERT (wm_hints= XAllocWMHints (), "out of memory (X server)"); ASSERT (class_hints= XAllocClassHint (), "out of memory (X server)"); XTextProperty Window_Name; XTextProperty Icon_Name; ASSERT (XStringListToTextProperty (&name, 1, &Window_Name) != 0, "out of memory (X server)"); ASSERT (XStringListToTextProperty (&name, 1, &Icon_Name) != 0, "out of memory (X server)"); // time_t start_1= texmacs_time (); Pixmap pm= retrieve_pixmap (load_xpm ("TeXmacs.xpm")); // cout << "Getting pixmap required " << (texmacs_time ()-start_1) << " ms\n"; // time_t start_2= texmacs_time (); size_hints->flags = PPosition | PSize | PMinSize | PMaxSize; size_hints->min_width = min_w; size_hints->min_height = min_h; size_hints->max_width = max_w; size_hints->max_height = max_h; wm_hints->initial_state = NormalState; wm_hints->input = true; wm_hints->icon_pixmap = pm; wm_hints->flags = StateHint | IconPixmapHint | InputHint; class_hints->res_name = name; class_hints->res_class = name; XSetWMProperties ( dpy, win, &Window_Name, &Icon_Name, gui->argv, gui->argc, size_hints, wm_hints, class_hints ); XFree(size_hints); XFree(wm_hints); XFree(class_hints); XFree(Window_Name.value); XFree(Icon_Name.value); // cout << "Setting hints required " << (texmacs_time ()-start_2) << " ms\n"; }
void setup_player(struct player * player) { player->x = 50; player->y = 50; load_xpm((const char **) gerald_xpm, &player->pixmap, &player->mask, &player->width, &player->height); player->gc = xcb_generate_id(c); xcb_create_gc(c, player->gc, window, XCB_GC_CLIP_MASK, (uint32_t[]){ player->mask }); player->moving_direction = MOVING_NONE; }