Esempio n. 1
0
void
preferences_dialog_init (void)
{
    // General preferences
    init_toggle ("echo_checkbutton", PREF_ECHO);
    init_toggle ("sneak_checkbutton", PREF_AUTO_SNEAK);
    init_toggle ("log_checkbutton", PREF_AUTO_LOG);
    init_spin ("text_buffer_size_spinbutton", PREF_TEXT_BUFFER_SIZE);
    init_spin ("command_size_spinbutton", PREF_COMMAND_SIZE);
    init_spin ("history_size_spinbutton", PREF_COMMAND_HISTORY_SIZE);
    init_entry ("script_prefix_entry", PREF_SCRIPT_PREFIX);

    // Colors
    init_color ("monster_text_box", PREF_MONSTER_TEXT_COLOR);
    init_color ("monster_base_box", PREF_MONSTER_BASE_COLOR);
    init_font ("monster_font_box", PREF_MONSTER_FONT);
    init_color ("title_text_box", PREF_TITLE_TEXT_COLOR);
    init_color ("title_base_box", PREF_TITLE_BASE_COLOR);
    init_font ("title_font_box", PREF_TITLE_FONT);
    init_color ("echo_text_box", PREF_ECHO_TEXT_COLOR);
    init_color ("echo_base_box", PREF_ECHO_BASE_COLOR);
    init_font ("echo_font_box", PREF_ECHO_FONT);
    init_color ("default_text_box", PREF_DEFAULT_TEXT_COLOR);
    init_color ("default_base_box", PREF_DEFAULT_BASE_COLOR);
    init_font ("default_font_box", PREF_DEFAULT_FONT);

    // Paths
    init_file ("script_path_filechooserbutton", PREF_SCRIPT_PATH);
    init_file ("log_path_filechooserbutton", PREF_LOG_PATH);
}
Esempio n. 2
0
static void *
compass_init (Display *dpy, Window window)
{
  struct state *st = (struct state *) calloc (1, sizeof(*st));
  XGCValues gcv;
  st->dpy = dpy;
  st->window = window;
  st->delay = get_integer_resource (st->dpy, "delay", "Integer");
  st->dbuf = get_boolean_resource (st->dpy, "doubleBuffer", "Boolean");

# ifdef HAVE_JWXYZ	/* Don't second-guess Quartz's double-buffering */
  st->dbuf = False;
# endif

  XGetWindowAttributes (st->dpy, st->window, &st->xgwa);
  st->size2 = MIN(st->xgwa.width, st->xgwa.height);

  if (st->xgwa.width > st->xgwa.height * 5 ||  /* goofy aspect ratio */
      st->xgwa.height > st->xgwa.width * 5)
    st->size2 = MAX(st->xgwa.width, st->xgwa.height);

  {
    int max = 600;
    if (st->xgwa.width > 2560) max *= 2;  /* Retina displays */
    if (st->size2 > max) st->size2 = max;
  }

  st->size = (st->size2 / 2) * 0.8;

  st->x = st->xgwa.width/2;
  st->y = st->xgwa.height/2;

  if (st->dbuf)
    {
#ifdef HAVE_DOUBLE_BUFFER_EXTENSION
      st->b = st->backb = xdbe_get_backbuffer (st->dpy, st->window, XdbeUndefined);
#endif /* HAVE_DOUBLE_BUFFER_EXTENSION */

      if (!st->b)
        {
          st->x = st->size2/2;
          st->y = st->size2/2;
          st->ba = XCreatePixmap (st->dpy, st->window, st->size2, st->size2, st->xgwa.depth);
          st->bb = XCreatePixmap (st->dpy, st->window, st->size2, st->size2, st->xgwa.depth);
          st->b = st->ba;
        }
    }
  else
    {
      st->b = st->window;
    }

  st->discs[0] = (struct disc *) calloc (1, sizeof (struct disc));
  st->discs[1] = (struct disc *) calloc (1, sizeof (struct disc));
  st->discs[2] = (struct disc *) calloc (1, sizeof (struct disc));
  st->discs[3] = 0;

  gcv.foreground = get_pixel_resource (st->dpy, st->xgwa.colormap,
                                       "foreground", "Foreground");
  gcv.line_width = MAX(2, (st->size/60));
  gcv.join_style = JoinBevel;
  st->discs[0]->draw = draw_ticks;
  st->discs[0]->gc = XCreateGC (st->dpy, st->b, GCForeground|GCLineWidth|GCJoinStyle,
                            &gcv);
  init_spin (st->discs[0]);

  gcv.foreground = get_pixel_resource (st->dpy, st->xgwa.colormap,
                                       "arrow2Foreground", "Foreground");
  gcv.line_width = MAX(4, (st->size / 30));
  st->discs[1]->draw = draw_thick_arrow;
  st->discs[1]->gc = XCreateGC (st->dpy, st->b, GCForeground|GCLineWidth, &gcv);
  init_spin (st->discs[1]);

  gcv.foreground = get_pixel_resource (st->dpy, st->xgwa.colormap,
                                       "arrow1Foreground", "Foreground");
  gcv.line_width = MAX(4, (st->size / 30));
  st->discs[2]->draw = draw_thin_arrow;
  st->discs[2]->gc = XCreateGC (st->dpy, st->b, GCForeground|GCLineWidth, &gcv);
  init_spin (st->discs[2]);

  gcv.foreground = get_pixel_resource (st->dpy, st->xgwa.colormap,
                                       "pointerForeground", "Foreground");
  st->ptr_gc = XCreateGC (st->dpy, st->b, GCForeground|GCLineWidth, &gcv);

  gcv.foreground = get_pixel_resource (st->dpy, st->xgwa.colormap,
                                       "background", "Background");
  st->erase_gc = XCreateGC (st->dpy, st->b, GCForeground, &gcv);

  if (st->ba) XFillRectangle (st->dpy, st->ba, st->erase_gc, 0, 0, st->size2, st->size2);
  if (st->bb) XFillRectangle (st->dpy, st->bb, st->erase_gc, 0, 0, st->size2, st->size2);

  return st;
}