NS_IMETHODIMP nsPrintSettingsGTK::SetPaperName(const char16_t * aPaperName) { NS_ConvertUTF16toUTF8 gtkPaperName(aPaperName); // Convert these Goanna names to GTK names if (gtkPaperName.EqualsIgnoreCase("letter")) gtkPaperName.AssignLiteral(GTK_PAPER_NAME_LETTER); else if (gtkPaperName.EqualsIgnoreCase("legal")) gtkPaperName.AssignLiteral(GTK_PAPER_NAME_LEGAL); // Try to get the display name from the name so our paper size fits in the Page Setup dialog. GtkPaperSize* paperSize = gtk_paper_size_new(gtkPaperName.get()); char* displayName = strdup(gtk_paper_size_get_display_name(paperSize)); gtk_paper_size_free(paperSize); paperSize = gtk_paper_size_new_custom(gtkPaperName.get(), displayName, gtk_paper_size_get_width(mPaperSize, GTK_UNIT_INCH), gtk_paper_size_get_height(mPaperSize, GTK_UNIT_INCH), GTK_UNIT_INCH); free(displayName); gtk_paper_size_free(mPaperSize); mPaperSize = paperSize; SaveNewPageSize(); return NS_OK; }
static GtkPaperSize* moz_gtk_paper_size_copy_to_new_custom(GtkPaperSize* oldPaperSize) { // We make a "custom-ified" copy of the paper size so it can be changed later. return gtk_paper_size_new_custom(gtk_paper_size_get_name(oldPaperSize), gtk_paper_size_get_display_name(oldPaperSize), gtk_paper_size_get_width(oldPaperSize, GTK_UNIT_INCH), gtk_paper_size_get_height(oldPaperSize, GTK_UNIT_INCH), GTK_UNIT_INCH); }
static VALUE rg_display_name(VALUE self) { return CSTR2RVAL(gtk_paper_size_get_display_name(_SELF(self))); }
static void update_format_examples (GtkDialog *chooser) { CcFormatChooserPrivate *priv = GET_PRIVATE (chooser); gchar *locale; GDateTime *dt; gchar *s; const gchar *fmt; GtkPaperSize *paper; locale = g_strdup (setlocale (LC_TIME, NULL)); setlocale (LC_TIME, priv->region); dt = g_date_time_new_now_local (); display_date (priv->full_date, dt, "%A %e %B %Y"); display_date (priv->medium_date, dt, "%e %b %Y"); display_date (priv->short_date, dt, "%x"); display_date (priv->time, dt, "%X"); setlocale (LC_TIME, locale); g_free (locale); locale = g_strdup (setlocale (LC_NUMERIC, NULL)); setlocale (LC_NUMERIC, priv->region); s = g_strdup_printf ("%'.2f", 123456789.00); gtk_label_set_text (GTK_LABEL (priv->number), s); g_free (s); setlocale (LC_NUMERIC, locale); g_free (locale); #if 0 locale = g_strdup (setlocale (LC_MONETARY, NULL)); setlocale (LC_MONETARY, priv->region); num_info = localeconv (); if (num_info != NULL) gtk_label_set_text (GTK_LABEL (priv->currency), num_info->currency_symbol); setlocale (LC_MONETARY, locale); g_free (locale); #endif #ifdef LC_MEASUREMENT locale = g_strdup (setlocale (LC_MEASUREMENT, NULL)); setlocale (LC_MEASUREMENT, priv->region); fmt = nl_langinfo (_NL_MEASUREMENT_MEASUREMENT); if (fmt && *fmt == 2) gtk_label_set_text (GTK_LABEL (priv->measurement), C_("measurement format", "Imperial")); else gtk_label_set_text (GTK_LABEL (priv->measurement), C_("measurement format", "Metric")); setlocale (LC_MEASUREMENT, locale); g_free (locale); #endif #ifdef LC_PAPER locale = g_strdup (setlocale (LC_PAPER, NULL)); setlocale (LC_PAPER, priv->region); paper = gtk_paper_size_new (gtk_paper_size_get_default ()); gtk_label_set_text (GTK_LABEL (priv->paper), gtk_paper_size_get_display_name (paper)); gtk_paper_size_free (paper); setlocale (LC_PAPER, locale); g_free (locale); #endif }
FormatDialog::FormatDialog(GladeSearchpath* gladeSearchPath, Settings* settings, double width, double heigth) : GladeGui(gladeSearchPath, "pagesize.glade", "pagesizeDialog") { XOJ_INIT_TYPE(FormatDialog); this->orientation = ORIENTATION_NOT_DEFINED; this->selectedScale = 0; this->settings = settings; SElement& format = settings->getCustomElement("format"); string unit; if (format.getString("unit", unit)) { for (int i = 0; i < XOJ_UNIT_COUNT; i++) { if (unit == XOJ_UNITS[i].name) { this->selectedScale = i; break; } } } this->scale = XOJ_UNITS[this->selectedScale].scale; this->origHeight = heigth; this->origWidth = width; this->width = -1; this->height = -1; gtk_spin_button_set_value(GTK_SPIN_BUTTON(get("spinWidth")), this->origWidth / this->scale); gtk_spin_button_set_value(GTK_SPIN_BUTTON(get("spinHeight")), this->origHeight / this->scale); GtkWidget* cbUnit = get("cbUnit"); GtkListStore* store = gtk_list_store_new(1, G_TYPE_STRING); gtk_combo_box_set_model(GTK_COMBO_BOX(cbUnit), GTK_TREE_MODEL(store)); g_object_unref(store); GtkCellRenderer* cell = gtk_cell_renderer_text_new(); gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(cbUnit), cell, TRUE); gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(cbUnit), cell, "text", 0, NULL); for (int i = 0; i < XOJ_UNIT_COUNT; i++) { gtk_combo_box_append_text(GTK_COMBO_BOX(cbUnit), XOJ_UNITS[i].name); } gtk_combo_box_set_active(GTK_COMBO_BOX(cbUnit), this->selectedScale); GtkWidget* cbTemplate = get("cbTemplate"); store = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_POINTER); gtk_combo_box_set_model(GTK_COMBO_BOX(cbTemplate), GTK_TREE_MODEL(store)); g_object_unref(store); cell = gtk_cell_renderer_text_new(); gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(cbTemplate), cell, TRUE); gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(cbTemplate), cell, "text", 0, NULL); int selectedFormat = -1; string formatlist = settings->getVisiblePageFormats(); if (heigth < width) { double tmp = width; width = heigth; heigth = tmp; } this->list = gtk_paper_size_get_paper_sizes(false); int i = 0; GList* next = NULL; for (GList* l = list; l != NULL; l = next) { GtkPaperSize* s = (GtkPaperSize*) l->data; next = l->next; double w = gtk_paper_size_get_width(s, GTK_UNIT_POINTS); double h = gtk_paper_size_get_height(s, GTK_UNIT_POINTS); bool visible = false; if (((int) (w - width) * 10) == 0 && ((int) (h - heigth) * 10) == 0) { selectedFormat = i; visible = true; } if (formatlist.find(gtk_paper_size_get_name(s)) != string::npos) { visible = true; } if (visible) { GtkTreeIter iter; gtk_list_store_append(store, &iter); gtk_list_store_set(store, &iter, 0, gtk_paper_size_get_display_name(s), -1); gtk_list_store_set(store, &iter, 1, s, -1); i++; } else { gtk_paper_size_free(s); this->list = g_list_delete_link(this->list, l); } } GtkTreeIter iter; gtk_list_store_append(store, &iter); gtk_list_store_set(store, &iter, 0, _C("Custom"), -1); gtk_list_store_set(store, &iter, 1, NULL, -1); // not found, select custom format if (selectedFormat == -1) { selectedFormat = i; } gtk_combo_box_set_active(GTK_COMBO_BOX(cbTemplate), selectedFormat); spinValueChangedCb(NULL, this); g_signal_connect(get("btLandscape"), "toggled", G_CALLBACK(landscapeSelectedCb), this); g_signal_connect(get("btPortrait"), "toggled", G_CALLBACK(portraitSelectedCb), this); g_signal_connect(cbTemplate, "changed", G_CALLBACK(cbFormatChangedCb), this); g_signal_connect(cbUnit, "changed", G_CALLBACK(cbUnitChanged), this); g_signal_connect(get("spinWidth"), "value-changed", G_CALLBACK(spinValueChangedCb), this); g_signal_connect(get("spinHeight"), "value-changed", G_CALLBACK(spinValueChangedCb), this); }
static void papersize(PdfPrintContext *ppc) { //GList *list, *item; const gchar *name; GtkPaperSize *ps; DB( g_print("[papersize]\n") ); name = gtk_paper_size_get_default(); DB( g_print("- def paper is %s\n", name) ); ps = gtk_paper_size_new(name); /*GtkPageSetup *new_page_setup; if (settings == NULL) settings = gtk_print_settings_new (); new_page_setup = gtk_print_run_page_setup_dialog (NULL, page_setup, settings); if (page_setup) g_object_unref (page_setup); page_setup = new_page_setup; */ //#if MYDEBUG == 1 gdouble w, h, mt, mb, ml, mr; w = gtk_paper_size_get_width(ps, GTK_UNIT_MM); h = gtk_paper_size_get_height(ps, GTK_UNIT_MM); mt = gtk_paper_size_get_default_top_margin(ps, GTK_UNIT_MM); mr = gtk_paper_size_get_default_right_margin(ps, GTK_UNIT_MM); mb = gtk_paper_size_get_default_bottom_margin(ps, GTK_UNIT_MM); ml = gtk_paper_size_get_default_left_margin(ps, GTK_UNIT_MM); DB( g_print("- name: %s\n", gtk_paper_size_get_display_name(ps)) ); DB( g_print("- w: %f (%f)\n- h: %f (%f)\n", w, w/PANGO_SCALE, h, h/PANGO_SCALE) ); DB( g_print("- margin: %f %f %f %f\n", mt, mr, mb, ml) ); ppc->w = w * 2.83; ppc->h = h * 2.83; ppc->mt = mt * 2.83; ppc->mr = mr * 2.83; ppc->mb = mb * 2.83; ppc->ml = ml * 2.83; //#endif gtk_paper_size_free(ps); /* list all paper size */ /* list = gtk_paper_size_get_paper_sizes (FALSE); item = g_list_first(list); while(item != NULL) { ps = item->data; if(ps != NULL) { g_print("- name: %s\n", gtk_paper_size_get_display_name(ps)); gtk_paper_size_free(ps); } item = g_list_next(item); } g_list_free (list); */ }