Ejemplo n.º 1
0
static void
DriverDialogSetup(GtkWidget *wi, void *data, int makewidget)
{
  GtkWidget *w, *table;
  struct DriverDialog *d;
  struct extprinter *pcur;
  int i, j;

  d = (struct DriverDialog *) data;
  if (makewidget) {

#if GTK_CHECK_VERSION(3, 4, 0)
    table = gtk_grid_new();
#else
    table = gtk_table_new(1, 2, FALSE);
#endif

    i = 0;
    w = combo_box_create();
    d->driver = w;
    add_widget_to_table(table, w, _("_Driver:"), FALSE, i++);
    g_signal_connect(d->driver, "changed", G_CALLBACK(DriverDialogSelectCB), d);

    w = create_text_entry(FALSE, TRUE);
    d->option = w;
    add_widget_to_table(table, w, _("_Option:"), TRUE, i++);

    w = create_file_entry_with_cb(G_CALLBACK(DriverDialogBrowseCB), d);
    d->file = w;
    add_widget_to_table(table, w, _("_File:"), TRUE, i++);

    gtk_box_pack_start(GTK_BOX(d->vbox), table, FALSE, FALSE, 4);
    gtk_widget_show_all(GTK_WIDGET(d->vbox));
  }

  combo_box_clear(d->driver);

  pcur = Menulocal.extprinterroot;
  while (pcur != NULL) {
    combo_box_append_text(d->driver, pcur->name);
    pcur = pcur->next;
    j++;
  }
  combo_box_set_active(d->driver, 0);
}
Ejemplo n.º 2
0
GtkWidget *style_select_widget(appdata_t *appdata) {
  file_chain_t *chain = file_scan(".style");

  /* there must be at least one style, otherwise */
  /* the program wouldn't be running */
  g_assert(chain);

  GtkWidget *cbox = combo_box_new(_("Style"));

  /* fill combo box with presets */
  int cnt = 0, match = -1;
  while(chain) {
    file_chain_t *next = chain->next;

    printf("  file: %s\n", chain->name);

    style_t *style = style_parse(appdata, chain->name, NULL, TRUE);
    printf("    name: %s\n", style->name);
    combo_box_append_text(cbox, style->name);

    char *basename = style_basename(chain->name);
    if(strcmp(basename, appdata->settings->style) == 0) match = cnt;
    g_free(basename);

    style_free(style);

    cnt++;

    g_free(chain->name);
    g_free(chain);
    chain = next;
  }

  if(match >= 0)
    combo_box_set_active(cbox, match);

  return cbox;
}
Ejemplo n.º 3
0
int
DialogComboEntry(GtkWidget *parent, const char *title, const char *caption, struct narray *array, int sel, char **r, int *x, int *y)
{
  GtkWidget *dlg, *combo;
  GtkBox *vbox;
  int data;
  gint res_id;
  char **d;
  const char *s;
  int i, anum;

  d = arraydata(array);
  anum = arraynum(array);

  *r = NULL;

  dlg = gtk_dialog_new_with_buttons(title,
				    GTK_WINDOW(parent),
#if GTK_CHECK_VERSION(3, 12, 0) && USE_HEADER_BAR
				    GTK_DIALOG_USE_HEADER_BAR |
#endif
				    GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
				    _("_Cancel"), GTK_RESPONSE_CANCEL,
				    _("_OK"), GTK_RESPONSE_OK,
				    NULL);
  gtk_dialog_set_default_response(GTK_DIALOG(dlg), GTK_RESPONSE_OK);
  gtk_window_set_resizable(GTK_WINDOW(dlg), FALSE);
  vbox = GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dlg)));

  if (caption) {
    GtkWidget *label;
    label = gtk_label_new(caption);
    gtk_box_pack_start(vbox, label, FALSE, FALSE, 5);
  }

  combo = combo_box_entry_create();
  for (i = 0; i < anum; i++) {
    combo_box_append_text(combo, d[i]);
  }

  if (sel >= 0 && sel < anum) {
    combo_box_set_active(combo, sel);
  }

  gtk_box_pack_start(vbox, combo, FALSE, FALSE, 2);

  set_dialog_position(dlg, x, y);
  gtk_widget_show_all(dlg);
  res_id = ndialog_run(dlg);

  switch (res_id) {
  case GTK_RESPONSE_OK:
    s = combo_box_entry_get_text(combo);
    if (s) {
      *r = g_strdup(s);
    } else {
      *r = NULL;
    }
    data = IDOK;
    break;
  default:
    data = IDCANCEL;
    break;
  }

  get_dialog_position(dlg, x, y);
  gtk_widget_destroy(dlg);
  reset_event();

  return data;
}
Ejemplo n.º 4
0
static void
OutputImageDialogSetupItem(GtkWidget *w, struct OutputImageDialog *d)
{
  int i;
  GtkWidget *vlabel;
#if GTK_CHECK_VERSION(3, 0, 0)
  GtkWidget *window;
  GtkRequisition minimum_size;
#endif

  vlabel = get_mnemonic_label(d->version);

  gtk_label_set_text(GTK_LABEL(vlabel), "");
  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(d->use_opacity), FALSE);

  combo_box_clear(d->version);
  switch (d->DlgType) {
  case MenuIdOutputPSFile:
  case MenuIdOutputEPSFile:
    for (i = 0; PsVersion[i]; i++) {
      combo_box_append_text(d->version, PsVersion[i]);
    }
    set_widget_visibility_with_label(d->dpi, FALSE);
    set_widget_visibility_with_label(d->version, TRUE);
    gtk_widget_set_visible(d->t2p, TRUE);

    gtk_label_set_markup_with_mnemonic(GTK_LABEL(vlabel), _("_PostScript Version:"));

    gtk_spin_button_set_value(GTK_SPIN_BUTTON(d->dpi), 72);
    combo_box_set_active(d->version, Menulocal.ps_version);
    break;
  case MenuIdOutputPNGFile:
    set_widget_visibility_with_label(d->dpi, TRUE);
    set_widget_visibility_with_label(d->version, FALSE);
    gtk_widget_set_visible(d->t2p, FALSE);

    gtk_spin_button_set_value(GTK_SPIN_BUTTON(d->dpi), Menulocal.png_dpi);
    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(d->use_opacity), Menulocal.use_opacity);

    break;
  case MenuIdOutputPDFFile:
    set_widget_visibility_with_label(d->dpi, FALSE);
    set_widget_visibility_with_label(d->version, FALSE);
    gtk_widget_set_visible(d->t2p, TRUE);

    gtk_spin_button_set_value(GTK_SPIN_BUTTON(d->dpi), 72);
    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(d->use_opacity), Menulocal.use_opacity);
    break;
  case MenuIdOutputSVGFile:
    for (i = 0; PsVersion[i]; i++) {
      combo_box_append_text(d->version, SvgVersion[i]);
    }

    set_widget_visibility_with_label(d->dpi, FALSE);
    set_widget_visibility_with_label(d->version, TRUE);
    gtk_widget_set_visible(d->t2p, TRUE);

    gtk_label_set_markup_with_mnemonic(GTK_LABEL(vlabel), _("_SVG Version:"));

    gtk_spin_button_set_value(GTK_SPIN_BUTTON(d->dpi), 72);
    combo_box_set_active(d->version, Menulocal.svg_version);
    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(d->use_opacity), Menulocal.use_opacity);
    break;
#ifdef CAIRO_HAS_WIN32_SURFACE
  case MenuIdOutputCairoEMFFile:
    set_widget_visibility_with_label(d->dpi, TRUE);
    set_widget_visibility_with_label(d->version, FALSE);
    gtk_widget_set_visible(d->t2p, FALSE);
    gtk_spin_button_set_value(GTK_SPIN_BUTTON(d->dpi), Menulocal.emf_dpi);
    break;
#endif	/* CAIRO_HAS_WIN32_SURFACE */
  }

#if GTK_CHECK_VERSION(3, 0, 0)
  window = gtk_widget_get_parent(GTK_WIDGET(d->vbox));
  if (GTK_IS_WINDOW(window)) {
    gtk_widget_get_preferred_size(GTK_WIDGET(d->vbox), &minimum_size, NULL);
    gtk_window_resize(GTK_WINDOW(window), minimum_size.width, minimum_size.height);
  }
#endif
}