Exemple #1
0
void set_window_font(window_t *window, font_sheet_t *font) {
  window->font = font;

  // apply font to all created widgets
  for (uint i = 0; i < MAX_WIDGETS_PER_WINDOW; i++) {
    if (window->widgets[i] != NULL) {
      set_widget_font(window->widgets[i], font);
    }
  }

  // apply font to special widgets
  set_widget_font(window->close_button, font);
}
Exemple #2
0
void
CoordWinSetFont(const char *font)
{
#if GTK_CHECK_VERSION(3, 16, 0)
  if (NgraphApp.CoordWin.data.text && font) {
    set_widget_font(NgraphApp.CoordWin.data.text, font);
  }
#else  /* GTK_CHECK_VERSION(3, 16, 0) */
  const char *ptr;
  PangoAttrList *pattr;
  PangoFontDescription *desc;
  GtkLabel *label;

  label = GTK_LABEL(NgraphApp.CoordWin.data.text);

  if (label == NULL)
    return;

  pattr = gtk_label_get_attributes(label);
  if (pattr == NULL) {
    pattr = pango_attr_list_new();
    gtk_label_set_attributes(GTK_LABEL(label), pattr);
  }

  ptr = (font) ? font : "Monospace";

  desc = pango_font_description_from_string(ptr);
  pango_attr_list_change(pattr, pango_attr_font_desc_new(desc));
  pango_font_description_free(desc);
#endif
}
Exemple #3
0
bool add_widget_to_window(window_t *window, widget_t *widget) {
  if (window->num_widgets >= MAX_WIDGETS_PER_WINDOW) {
    return false;
  }

  // find a free slot in window->widgets.
  for (uint i = 0; i < MAX_WIDGETS_PER_WINDOW; i++) {
    if (window->widgets[i] == NULL) {
      set_widget_font(widget, window->font); // apply window font to widget
      window->widgets[i] = widget;
      window->num_widgets++;
      return true;
    }
  }
  // at this point, no free slots have been found.
  return false;
}
Exemple #4
0
void
InfoWinSetFont(char *font)
{
  if (NgraphApp.InfoWin.data.text && font) {
#if GTK_CHECK_VERSION(3, 16, 0)
    set_widget_font(NgraphApp.InfoWin.data.text, font);
#else  /* GTK_CHECK_VERSION(3, 16, 0) */
    PangoFontDescription *desc;

    desc = pango_font_description_from_string(font);
#if GTK_CHECK_VERSION(3, 0, 0)
    gtk_widget_override_font(GTK_WIDGET(NgraphApp.InfoWin.data.text), NULL);
    gtk_widget_override_font(GTK_WIDGET(NgraphApp.InfoWin.data.text), desc);
#else
    gtk_widget_modify_font(GTK_WIDGET(NgraphApp.InfoWin.data.text), NULL);
    gtk_widget_modify_font(GTK_WIDGET(NgraphApp.InfoWin.data.text), desc);
#endif
    pango_font_description_free(desc);
#endif
  }
}