本文整理汇总了C++中pango_font_description_free函数的典型用法代码示例。如果您正苦于以下问题:C++ pango_font_description_free函数的具体用法?C++ pango_font_description_free怎么用?C++ pango_font_description_free使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了pango_font_description_free函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: pkg_graph_2d_paint
static void
pkg_graph_2d_paint (PkgGraph2d *graph)
{
PkgGraph2dPrivate *priv = graph->priv;
cairo_t *cr;
gfloat w, h;
gdouble x0, x1, x2;
gdouble y0, y1, y2;
gdouble dashes[] = {1., 2.};
gdouble *epochs = NULL;
gdouble tmp;
gsize n_epochs = 0;
gint i;
clutter_cairo_texture_clear(CLUTTER_CAIRO_TEXTURE(priv->texture));
clutter_actor_get_size(CLUTTER_ACTOR(graph), &w, &h);
/*
* Create cairo context and set defaults.
*/
cr = clutter_cairo_texture_create(CLUTTER_CAIRO_TEXTURE(priv->texture));
cairo_set_line_width(cr, 1.);
cairo_set_dash(cr, dashes, 2, 0.);
/*
* Get coordinates for drawing primary extends.
*/
pkg_graph_2d_get_primary_extents(graph, &x0, &x1, &x2, &y0, &y1, &y2);
/*
* Draw the background color.
*/
cairo_set_source_rgb(cr, 1., 1., 1.);
cairo_rectangle(cr, x1, y2, x2 - x1, y1);
cairo_fill(cr);
/*
* Draw the bounding box.
*/
cairo_set_source_rgb(cr, 0., 0., 0.);
cairo_move_to(cr, x0, y2);
cairo_line_to(cr, x2, y2);
cairo_line_to(cr, x2, y0);
cairo_move_to(cr, x0, y1);
cairo_line_to(cr, x2, y1);
cairo_move_to(cr, x1, y0 - .5);
cairo_line_to(cr, x1, y2);
cairo_stroke(cr);
/*
* Draw the x-scale epochs.
*/
if (pkg_scale_get_epochs(priv->x_scale, &epochs, &n_epochs)) {
if (n_epochs > 0) {
for (i = 0; i < n_epochs; i++) {
if (pkg_scale_translate(priv->x_scale, epochs[i], &tmp)) {
PangoFontDescription *font_desc;
PangoLayout *layout;
gchar *format, *markup;
gint pw, ph;
/*
* Only draw the line if it isn't right near the end of
* the visiable region of the graph.
*/
if (tmp + 5. < floor(w)) {
cairo_move_to(cr, tmp, y0 - .5);
cairo_line_to(cr, tmp, y2);
}
/*
* Draw the y-scale grid-line value.
*/
format = pkg_scale_format_string(priv->x_scale, epochs[i]);
if (format != NULL) {
font_desc = pango_font_description_from_string("Bold Sans 8");
layout = pango_cairo_create_layout(cr);
pango_layout_set_font_description(layout, font_desc);
markup = g_strdup_printf("<span size=\"smaller\">%s</span>", format);
pango_layout_set_markup(layout, markup, -1);
pango_layout_get_pixel_size(layout, &pw, &ph);
if (i == 0) {
cairo_move_to(cr, tmp + 2., y1 + 2.);
} else {
cairo_move_to(cr, tmp - pw - 2., y1 + 2.);
}
pango_cairo_show_layout(cr, layout);
g_object_unref(layout);
pango_font_description_free(font_desc);
g_free(format);
g_free(markup);
}
}
}
cairo_stroke(cr);
}
}
/*
* Draw the y-scale epochs.
//.........这里部分代码省略.........
示例2: _pango_cairo_font_get_metrics
PangoFontMetrics *
_pango_cairo_font_get_metrics (PangoFont *font,
PangoLanguage *language)
{
PangoCairoFont *cfont = (PangoCairoFont *) font;
PangoCairoFontPrivate *cf_priv = PANGO_CAIRO_FONT_PRIVATE (font);
PangoCairoFontMetricsInfo *info = NULL; /* Quiet gcc */
GSList *tmp_list;
const char *sample_str = pango_language_get_sample_string (language);
tmp_list = cf_priv->metrics_by_lang;
while (tmp_list)
{
info = tmp_list->data;
if (info->sample_str == sample_str) /* We _don't_ need strcmp */
break;
tmp_list = tmp_list->next;
}
if (!tmp_list)
{
PangoFontMap *fontmap;
PangoContext *context;
cairo_font_options_t *font_options;
PangoLayout *layout;
PangoRectangle extents;
PangoFontDescription *desc;
cairo_scaled_font_t *scaled_font;
cairo_matrix_t cairo_matrix;
PangoMatrix pango_matrix;
PangoMatrix identity = PANGO_MATRIX_INIT;
int height, shift;
/* XXX this is racy. need a ref'ing getter... */
fontmap = pango_font_get_font_map (font);
if (!fontmap)
return pango_font_metrics_new ();
fontmap = g_object_ref (fontmap);
info = g_slice_new0 (PangoCairoFontMetricsInfo);
cf_priv->metrics_by_lang = g_slist_prepend (cf_priv->metrics_by_lang, info);
info->sample_str = sample_str;
scaled_font = _pango_cairo_font_private_get_scaled_font (cf_priv);
context = pango_font_map_create_context (fontmap);
pango_context_set_language (context, language);
font_options = cairo_font_options_create ();
cairo_scaled_font_get_font_options (scaled_font, font_options);
pango_cairo_context_set_font_options (context, font_options);
cairo_font_options_destroy (font_options);
info->metrics = (* PANGO_CAIRO_FONT_GET_IFACE (font)->create_base_metrics_for_context) (cfont, context);
/* We now need to adjust the base metrics for ctm */
cairo_scaled_font_get_ctm (scaled_font, &cairo_matrix);
pango_matrix.xx = cairo_matrix.xx;
pango_matrix.yx = cairo_matrix.yx;
pango_matrix.xy = cairo_matrix.xy;
pango_matrix.yy = cairo_matrix.yy;
pango_matrix.x0 = 0;
pango_matrix.y0 = 0;
if (G_UNLIKELY (0 != memcmp (&identity, &pango_matrix, 4 * sizeof (double))))
{
double xscale = pango_matrix_get_font_scale_factor (&pango_matrix);
if (xscale) xscale = 1 / xscale;
info->metrics->ascent *= xscale;
info->metrics->descent *= xscale;
info->metrics->underline_position *= xscale;
info->metrics->underline_thickness *= xscale;
info->metrics->strikethrough_position *= xscale;
info->metrics->strikethrough_thickness *= xscale;
}
/* Set the matrix on the context so we don't have to adjust the derived
* metrics. */
pango_context_set_matrix (context, &pango_matrix);
/* Update approximate_*_width now */
layout = pango_layout_new (context);
desc = pango_font_describe_with_absolute_size (font);
pango_layout_set_font_description (layout, desc);
pango_font_description_free (desc);
pango_layout_set_text (layout, sample_str, -1);
pango_layout_get_extents (layout, NULL, &extents);
info->metrics->approximate_char_width = extents.width / pango_utf8_strwidth (sample_str);
pango_layout_set_text (layout, "0123456789", -1);
info->metrics->approximate_digit_width = max_glyph_width (layout);
//.........这里部分代码省略.........
示例3: _pango_cairo_font_private_get_scaled_font
cairo_scaled_font_t *
_pango_cairo_font_private_get_scaled_font (PangoCairoFontPrivate *cf_priv)
{
cairo_font_face_t *font_face;
if (G_LIKELY (cf_priv->scaled_font))
return cf_priv->scaled_font;
/* need to create it */
if (G_UNLIKELY (cf_priv->data == NULL))
{
/* we have tried to create and failed before */
return NULL;
}
font_face = (* PANGO_CAIRO_FONT_GET_IFACE (cf_priv->cfont)->create_font_face) (cf_priv->cfont);
if (G_UNLIKELY (font_face == NULL))
goto done;
cf_priv->scaled_font = cairo_scaled_font_create (font_face,
&cf_priv->data->font_matrix,
&cf_priv->data->ctm,
cf_priv->data->options);
cairo_font_face_destroy (font_face);
done:
if (G_UNLIKELY (cf_priv->scaled_font == NULL || cairo_scaled_font_status (cf_priv->scaled_font) != CAIRO_STATUS_SUCCESS))
{
cairo_scaled_font_t *scaled_font = cf_priv->scaled_font;
PangoFont *font = PANGO_FONT (cf_priv->cfont);
static GQuark warned_quark = 0; /* MT-safe */
if (!warned_quark)
warned_quark = g_quark_from_static_string ("pangocairo-scaledfont-warned");
if (!g_object_get_qdata (G_OBJECT (font), warned_quark))
{
PangoFontDescription *desc;
char *s;
desc = pango_font_describe (font);
s = pango_font_description_to_string (desc);
pango_font_description_free (desc);
g_warning ("failed to create cairo %s, expect ugly output. the offending font is '%s'",
font_face ? "scaled font" : "font face",
s);
if (!font_face)
g_warning ("font_face is NULL");
else
g_warning ("font_face status is: %s",
cairo_status_to_string (cairo_font_face_status (font_face)));
if (!scaled_font)
g_warning ("scaled_font is NULL");
else
g_warning ("scaled_font status is: %s",
cairo_status_to_string (cairo_scaled_font_status (scaled_font)));
g_free (s);
g_object_set_qdata_full (G_OBJECT (font), warned_quark,
GINT_TO_POINTER (1), NULL);
}
}
_pango_cairo_font_private_scaled_font_data_destroy (cf_priv->data);
cf_priv->data = NULL;
return cf_priv->scaled_font;
}
示例4: file_list_ready_cb
//.........这里部分代码省略.........
_("An older file with the same name already exists in \"%s\"."),
dest_dir_name);
}
else if (src_mtime < dest_mtime)
{
message = g_strdup_printf (
_("A newer file with the same name already exists in \"%s\"."),
dest_dir_name);
}
else
{
message = g_strdup_printf (
_("Another file with the same name already exists in \"%s\"."),
dest_dir_name);
}
}
secondary_text = g_strdup_printf ("%s\n%s", message, message_extra);
g_free (message);
label = gtk_label_new (primary_text);
gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
gtk_label_set_line_wrap_mode (GTK_LABEL (label), PANGO_WRAP_WORD_CHAR);
gtk_widget_set_size_request (label, 350, -1);
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
gtk_box_pack_start (GTK_BOX (details->titles_vbox),
label, FALSE, FALSE, 0);
gtk_widget_modify_font (label, NULL);
desc = pango_font_description_new ();
pango_font_description_set_weight (desc, PANGO_WEIGHT_BOLD);
pango_font_description_set_size (desc,
pango_font_description_get_size (gtk_widget_get_style (label)->font_desc) * PANGO_SCALE_LARGE);
gtk_widget_modify_font (label, desc);
pango_font_description_free (desc);
gtk_widget_show (label);
label = gtk_label_new (secondary_text);
gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
gtk_widget_set_size_request (label, 350, -1);
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
gtk_box_pack_start (GTK_BOX (details->titles_vbox),
label, FALSE, FALSE, 0);
gtk_widget_show (label);
g_free (primary_text);
g_free (secondary_text);
/* Set up file icons */
pixbuf = caja_file_get_icon_pixbuf (dest,
CAJA_ICON_SIZE_LARGE,
TRUE,
CAJA_FILE_ICON_FLAGS_USE_THUMBNAILS);
details->dest_image = gtk_image_new_from_pixbuf (pixbuf);
gtk_box_pack_start (GTK_BOX (details->first_hbox),
details->dest_image, FALSE, FALSE, 0);
gtk_widget_show (details->dest_image);
g_object_unref (pixbuf);
pixbuf = caja_file_get_icon_pixbuf (src,
CAJA_ICON_SIZE_LARGE,
TRUE,
CAJA_FILE_ICON_FLAGS_USE_THUMBNAILS);
details->src_image = gtk_image_new_from_pixbuf (pixbuf);
gtk_box_pack_start (GTK_BOX (details->second_hbox),
details->src_image, FALSE, FALSE, 0);
gtk_widget_show (details->src_image);
g_object_unref (pixbuf);
示例5: create_layout
static PangoLayout*
create_layout(HippoCanvasText *text,
int allocation_width)
{
HippoCanvasBox *box = HIPPO_CANVAS_BOX(text);
PangoLayout *layout;
HippoCanvasStyle *style = hippo_canvas_context_get_style(HIPPO_CANVAS_CONTEXT(text));
g_return_val_if_fail(box->context != NULL, NULL);
layout = hippo_canvas_context_create_layout(box->context);
if (box->font_desc) {
PangoFontDescription *merged = pango_font_description_copy(hippo_canvas_style_get_font(style));
pango_font_description_merge(merged, box->font_desc, TRUE);
pango_layout_set_font_description(layout, merged);
pango_font_description_free(merged);
} else {
pango_layout_set_font_description(layout, hippo_canvas_style_get_font(style));
}
{
PangoAttrList *attrs;
HippoTextDecoration decoration = hippo_canvas_style_get_text_decoration(style);
if (text->attributes)
attrs = pango_attr_list_copy(text->attributes);
else
attrs = pango_attr_list_new();
if (ABS(1.0 - text->font_scale) > .000001) {
PangoAttribute *attr = pango_attr_scale_new(text->font_scale);
attr->start_index = 0;
attr->end_index = G_MAXUINT;
pango_attr_list_insert(attrs, attr);
}
if ((decoration & HIPPO_TEXT_DECORATION_UNDERLINE) != 0) {
PangoAttribute *attr = pango_attr_underline_new(TRUE);
attr->start_index = 0;
attr->end_index = G_MAXUINT;
pango_attr_list_insert(attrs, attr);
}
if ((decoration & HIPPO_TEXT_DECORATION_LINE_THROUGH) != 0) {
PangoAttribute *attr = pango_attr_strikethrough_new(TRUE);
attr->start_index = 0;
attr->end_index = G_MAXUINT;
pango_attr_list_insert(attrs, attr);
}
pango_layout_set_attributes(layout, attrs);
pango_attr_list_unref(attrs);
}
if (text->text != NULL) {
pango_layout_set_text(layout, text->text, -1);
}
if (allocation_width >= 0) {
int layout_width, layout_height;
pango_layout_get_size(layout, &layout_width, &layout_height);
layout_width /= PANGO_SCALE;
layout_height /= PANGO_SCALE;
/* Force layout smaller if required, but we don't want to make
* the layout _wider_ because it breaks alignment, so only do
* this if required.
*/
if (layout_width > allocation_width) {
pango_layout_set_width(layout, allocation_width * PANGO_SCALE);
/* If we set ellipsize, then it overrides wrapping. If we get
* too-small allocation for HIPPO_CANVAS_SIZE_FULL_WIDTH, then
* we want to ellipsize instead of wrapping.
*/
if (text->size_mode == HIPPO_CANVAS_SIZE_WRAP_WORD) {
pango_layout_set_ellipsize(layout, PANGO_ELLIPSIZE_NONE);
} else {
pango_layout_set_ellipsize(layout, PANGO_ELLIPSIZE_END);
}
/* For now if we say ellipsize end, we always just want one line.
* Maybe this should be an orthogonal property?
*/
if (text->size_mode == HIPPO_CANVAS_SIZE_ELLIPSIZE_END) {
pango_layout_set_single_paragraph_mode(layout, TRUE);
/* Pango's line separator character in this case is ugly, so we
* fix it. Not a very efficient approach, but oh well.
*/
if (text->text != NULL) {
char *new_text = remove_newlines(text->text);
/* avoid making the layout recompute everything
* if we didn't have newlines anyhow
*/
if (strcmp(text->text, new_text) != 0) {
pango_layout_set_text(layout, new_text, -1);
}
//.........这里部分代码省略.........
示例6: main
int main(int argc, char **argv)
{
int nResponse, i, nKeyWordGroup = 0;
GtkTextBuffer *buffer;
GtkBuilder *builder;
PangoFontDescription *font_desc;
JJGui *jibber_ui;
// allocate the memory needed by our structure
jibber_ui = g_slice_new(JJGui);
// init the gtk toolkit
gtk_init(&argc, &argv);
// get a new interface builder
builder = gtk_builder_new();
// read the GUI definitions from the XML file
gtk_builder_add_from_file(builder, "jibber.glade", NULL);
// point the structure members to the UI elements we need to control
jibber_ui->window = GTK_WIDGET (gtk_builder_get_object (builder, "window"));
jibber_ui->edit_field = GTK_ENTRY (gtk_builder_get_object (builder, "text_field"));
jibber_ui->text_view = GTK_WIDGET (gtk_builder_get_object (builder, "textview1"));
// connect the signal handlers
gtk_builder_connect_signals(builder, jibber_ui);
// release the builder memory
g_object_unref(G_OBJECT (builder));
// set the desired font
font_desc = pango_font_description_from_string("monospace 10");
gtk_widget_override_font(jibber_ui->text_view, font_desc);
pango_font_description_free(font_desc);
// get a handle on the buffer from the text window
buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW (jibber_ui->text_view));
// create some style tags
gtk_text_buffer_create_tag(buffer, "italic", "style", PANGO_STYLE_ITALIC, NULL);
gtk_text_buffer_create_tag(buffer, "bold", "weight", PANGO_WEIGHT_BOLD, NULL);
// intialise the SQLite library
sqlite3_initialize( );
// Initialize random number generator
srand(time(NULL));
// don't show the internal workings
bShow = false;
// open the database
nResponse = sqlite3_open_v2( "worldview.sl3", &knowledgeDB, SQLITE_OPEN_READWRITE, NULL );
// if it didn't open OK, shutdown and exit
if ( nResponse != SQLITE_OK) {
printf("Couldn't open world view database.\n");
sqlite3_close( knowledgeDB );
exit (-1);
}
// set all the position flags to 'never been used'
for (i=0; i<1000; i++)
nGroupPositionFlags[ i ] = (-2);
// record the KeyWordGroups for the categories that need special processing
nProcessCategories[ TIME_HANDLER ] = GetGroupFromTriggerPhrase("WHAT TIME IS IT", jibber_ui);
nProcessCategories[ DATE_HANDLER ] = GetGroupFromTriggerPhrase("WHAT DATE IS IT", jibber_ui);
nProcessCategories[ DAY_HANDLER ] = GetGroupFromTriggerPhrase("WHAT DAY IS IT", jibber_ui);
nProcessCategories[ YEAR_HANDLER ] = GetGroupFromTriggerPhrase("WHAT YEAR IS IT", jibber_ui);
nProcessCategories[ MONTH_HANDLER ] = GetGroupFromTriggerPhrase("WHAT MONTH IS IT", jibber_ui);
nProcessCategories[ END_MARKER ] = (-1);
// no topics in the linked list yet
Root = End = NULL;
// Announce ourselves
AppendText(jibber_ui, DIR_SYSTEM, "Jibber Jabber %s :: Compiled on %s at %s.", JJ_VERSION, __DATE__, __TIME__);
AppendText(jibber_ui, DIR_BLANK, "" );
nKeyWordGroup = GetGroupFromTriggerPhrase("JJOPENINGLINES", jibber_ui);
// get response from this keywordgroup
if ( nKeyWordGroup )
GetResponseFromGroup( nKeyWordGroup, "", 0, jibber_ui );
// display the window
gtk_widget_show(jibber_ui->window);
// enter the UI event handler loop
gtk_main();
// shut down and exit
sqlite3_close( knowledgeDB );
sqlite3_shutdown( );
// flag exit code to OS
return (0);
//.........这里部分代码省略.........
示例7: GTK_PLOT_CAIRO
//.........这里部分代码省略.........
old_tx -= width / 2.;
old_ty -= descent;
break;
case 270:
tx -= descent;
ty -= height / 2.;
old_tx -= descent;
old_ty -= height / 2.;
break;
}
}
real_x = tx;
real_y = ty;
real_width = width;
real_height = height;
if(!transparent){
gtk_plot_cairo_set_color(pc, &real_bg);
gtk_plot_cairo_draw_rectangle(pc, TRUE, old_tx, old_ty, old_width, old_height);
}
gtk_psfont_get_families(&family, &numf);
base_psfont = psfont = gtk_psfont_get_by_name(font_name);
font = gtk_psfont_get_font_description(psfont, font_height);
italic = psfont->italic;
bold = psfont->bold;
fontsize = font_height;
x0 = x = 0;
y0 = y = 0;
if (psfont->i18n_latinfamily) {
latin_psfont = gtk_psfont_get_by_family(psfont->i18n_latinfamily, italic,
bold);
if(latin_font) pango_font_description_free(latin_font);
latin_font = gtk_psfont_get_font_description(latin_psfont, fontsize);
} else {
latin_psfont = NULL;
latin_font = NULL;
}
gtk_plot_cairo_set_color(pc, &real_fg);
aux = text;
while(aux && *aux != '\0' && *aux != '\n'){
if(*aux == '\\'){
aux = g_utf8_next_char(aux);
switch(*aux){
case '0': case '1': case '2': case '3':
case '4': case '5': case '6': case '7': case '9':
psfont = gtk_psfont_get_by_family((gchar *)g_list_nth_data(family, *aux-'0'), italic, bold);
pango_font_description_free(font);
font = gtk_psfont_get_font_description(psfont, fontsize);
aux = g_utf8_next_char(aux);
break;
case '8': case 'g':
psfont = gtk_psfont_get_by_family("Symbol", italic, bold);
pango_font_description_free(font);
font = gtk_psfont_get_font_description(psfont, fontsize);
aux = g_utf8_next_char(aux);
break;
case 'B':
bold = TRUE;
psfont = gtk_psfont_get_by_family(psfont->family, italic, bold);
pango_font_description_free(font);
font = gtk_psfont_get_font_description(psfont, fontsize);
if(latin_font){
latin_font = NULL;
示例8: g_markup_parse_context_get_position
//.........这里部分代码省略.........
CHECK_ATTRIBUTE (background);
CHECK_ATTRIBUTE2 (background, "bgcolor");
CHECK_ATTRIBUTE2(foreground, "color");
CHECK_ATTRIBUTE (rise);
CHECK_ATTRIBUTE (variant);
CHECK_ATTRIBUTE (weight);
break;
}
if (!found)
{
g_set_error (error, G_MARKUP_ERROR,
G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE,
_("Attribute '%s' is not allowed on the <span> tag "
"on line %d char %d"),
names[i], line_number, char_number);
return FALSE;
}
++i;
}
/* Parse desc first, then modify it with other font-related attributes. */
if (G_UNLIKELY (desc))
{
PangoFontDescription *parsed;
parsed = pango_font_description_from_string (desc);
if (parsed)
{
add_attribute (tag, pango_attr_font_desc_new (parsed));
if (tag)
open_tag_set_absolute_font_size (tag, pango_font_description_get_size (parsed));
pango_font_description_free (parsed);
}
}
if (G_UNLIKELY (family))
{
add_attribute (tag, pango_attr_family_new (family));
}
if (G_UNLIKELY (size))
{
if (g_ascii_isdigit (*size))
{
const char *end;
gint n;
/* cap size from the top at an arbitrary 2048 */
#define MAX_SIZE (2048 * PANGO_SCALE)
if ((end = size, !pango_scan_int (&end, &n)) || *end != '\0' || n < 0 || n > MAX_SIZE)
{
g_set_error (error,
G_MARKUP_ERROR,
G_MARKUP_ERROR_INVALID_CONTENT,
_("Value of 'size' attribute on <span> tag on line %d "
"could not be parsed; should be an integer less than %d, or a "
"string such as 'small', not '%s'"),
line_number, MAX_SIZE+1, size);
goto error;
}
add_attribute (tag, pango_attr_size_new (n));
if (tag)
示例9: l_klient_imp
int l_klient_imp(const char *imaf,
GtkWidget *wpredok)
{
char strsql[500];
iceb_u_spisok repl_s;
class l_klient_imp_data data;
data.imafz.new_plus(imaf);
data.window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_modal(GTK_WINDOW(data.window),TRUE);
gtk_window_set_position( GTK_WINDOW(data.window),ICEB_POS_CENTER);
gtk_window_set_default_size (GTK_WINDOW (data.window),400,-1);
sprintf(strsql,"%s %s",name_system,gettext("Импорт карточек из файла"));
gtk_window_set_title(GTK_WINDOW(data.window),strsql);
gtk_signal_connect(GTK_OBJECT(data.window),"delete_event",GTK_SIGNAL_FUNC(gtk_widget_destroy),NULL);
gtk_signal_connect(GTK_OBJECT(data.window),"destroy",GTK_SIGNAL_FUNC(gtk_main_quit),NULL);
gtk_signal_connect_after(GTK_OBJECT(data.window),"key_press_event",GTK_SIGNAL_FUNC(l_klient_imp_key_press),&data);
if(wpredok != NULL)
{
gdk_window_set_cursor(wpredok->window,gdk_cursor_new(ICEB_CURSOR_GDITE));
//Удерживать окно над породившем его окном всегда
gtk_window_set_transient_for(GTK_WINDOW(data.window),GTK_WINDOW(wpredok));
//Закрыть окно если окно предок удалено
gtk_window_set_destroy_with_parent(GTK_WINDOW(data.window),TRUE);
}
GtkWidget *vbox=gtk_vbox_new(FALSE, 2);
gtk_container_add(GTK_CONTAINER(data.window), vbox);
data.label=gtk_label_new(gettext("Ждите !!!"));
gtk_box_pack_start(GTK_BOX(vbox),data.label,FALSE,FALSE,0);
GtkWidget *label=NULL;
label=gtk_label_new(gettext("Импорт карточек из файла"));
gtk_box_pack_start(GTK_BOX(vbox),label,FALSE,FALSE,0);
data.view=gtk_text_view_new();
gtk_widget_set_usize(GTK_WIDGET(data.view),450,300);
gtk_text_view_set_editable(GTK_TEXT_VIEW(data.view),FALSE); //Запрет на редактирование текста
//PangoFontDescription *font_pango=pango_font_description_from_string("Nimbus Mono L, Bold 12");
PangoFontDescription *font_pango=pango_font_description_from_string(shrift_ravnohir.ravno());
gtk_widget_modify_font(GTK_WIDGET(data.view),font_pango);
pango_font_description_free(font_pango);
data.buffer=gtk_text_view_get_buffer(GTK_TEXT_VIEW(data.view));
GtkWidget *sw=gtk_scrolled_window_new(NULL,NULL);
//gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw),GTK_SHADOW_ETCHED_IN);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC);
//gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),GTK_POLICY_ALWAYS,GTK_POLICY_ALWAYS);
gtk_box_pack_start (GTK_BOX (vbox), sw, TRUE, TRUE, 0);
gtk_container_add(GTK_CONTAINER(sw),data.view);
data.bar=gtk_progress_bar_new();
gtk_progress_bar_set_bar_style(GTK_PROGRESS_BAR(data.bar),GTK_PROGRESS_CONTINUOUS);
gtk_progress_bar_set_orientation(GTK_PROGRESS_BAR(data.bar),GTK_PROGRESS_LEFT_TO_RIGHT);
gtk_box_pack_start (GTK_BOX (vbox), data.bar, FALSE, FALSE, 2);
sprintf(strsql,"F10 %s",gettext("Выход"));
data.knopka=gtk_button_new_with_label(strsql);
GtkTooltips *tooltops=gtk_tooltips_new();
gtk_tooltips_set_tip(tooltops,data.knopka,gettext("Завершение работы в этом окне"),NULL);
gtk_signal_connect(GTK_OBJECT(data.knopka),"clicked",GTK_SIGNAL_FUNC(l_klient_imp_v_knopka),&data);
gtk_object_set_user_data(GTK_OBJECT(data.knopka),(gpointer)0);
gtk_box_pack_start (GTK_BOX (vbox), data.knopka, FALSE, FALSE, 2);
gtk_widget_set_sensitive(GTK_WIDGET(data.knopka),FALSE);//Недоступна
gtk_widget_show_all(data.window);
//gtk_window_set_decorated(GTK_WINDOW(data.window),FALSE); //Убирает рамку вокруг окна
//gtk_widget_set_sensitive(GTK_WIDGET(data.knopka),FALSE);//Недоступна
gtk_idle_add((GtkFunction)l_klient_imp1,&data);
gtk_main();
if(wpredok != NULL)
gdk_window_set_cursor(wpredok->window,gdk_cursor_new(ICEB_CURSOR));
return(data.voz);
}
示例10: gcal_week_view_draw_hours
//.........这里部分代码省略.........
GtkStateFlags state;
GtkBorder padding;
GdkRGBA color;
gboolean ltr;
gint i, width, height;
gint font_width;
PangoLayout *layout;
PangoFontDescription *font_desc;
context = gtk_widget_get_style_context (widget);
state = gtk_widget_get_state_flags (widget);
ltr = gtk_widget_get_direction (widget) != GTK_TEXT_DIR_RTL;
gtk_style_context_save (context);
gtk_style_context_add_class (context, "hours");
gtk_style_context_get_color (context, state, &color);
gtk_style_context_get_padding (context, state, &padding);
gtk_style_context_get (context, state, "font", &font_desc, NULL);
layout = pango_cairo_create_layout (cr);
pango_layout_set_font_description (layout, font_desc);
gdk_cairo_set_source_rgba (cr, &color);
/* Gets the size of the widget */
width = gtk_widget_get_allocated_width (widget);
height = gtk_widget_get_allocated_height (widget);
/* Draws the hours in the sidebar */
for (i = 0; i < 24; i++)
{
gchar *hours;
if (self->use_24h_format)
{
hours = g_strdup_printf ("%02d:00", i);
}
else
{
hours = g_strdup_printf ("%d %s",
i % 12 == 0 ? 12 : i % 12,
i > 12 ? _("PM") : _("AM"));
}
pango_layout_set_text (layout, hours, -1);
pango_layout_get_pixel_size (layout, &font_width, NULL);
gtk_render_layout (context,
cr,
ltr ? padding.left : width - font_width - padding.right,
(height / 24) * i + padding.top,
layout);
g_free (hours);
}
gtk_style_context_restore (context);
gtk_style_context_save (context);
gtk_style_context_add_class (context, "lines");
gtk_style_context_get_color (context, state, &color);
gdk_cairo_set_source_rgba (cr, &color);
cairo_set_line_width (cr, 0.65);
if (!ltr)
{
cairo_move_to (cr, 0.5, 0);
cairo_rel_line_to (cr, 0, height);
}
/* Draws the horizontal complete lines */
for (i = 1; i < 24; i++)
{
cairo_move_to (cr, 0, (height / 24) * i + 0.4);
cairo_rel_line_to (cr, width, 0);
}
cairo_stroke (cr);
cairo_set_dash (cr, dashed, 2, 0);
/* Draws the horizontal dashed lines */
for (i = 0; i < 24; i++)
{
cairo_move_to (cr, 0, (height / 24) * i + (height / 48) + 0.4);
cairo_rel_line_to (cr, width, 0);
}
cairo_stroke (cr);
gtk_style_context_restore (context);
pango_font_description_free (font_desc);
g_object_unref (layout);
return FALSE;
}
示例11: lowlight_draw
//.........这里部分代码省略.........
cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(2.));
cairo_set_source_rgba(cr, .7, .7, .7, 1.0);
p = *(dt_iop_lowlight_params_t *)self->params;
dt_draw_curve_set_point(c->transition_curve, 0, p.transition_x[DT_IOP_LOWLIGHT_BANDS - 2] - 1.0,
p.transition_y[0]);
for(int k = 0; k < DT_IOP_LOWLIGHT_BANDS; k++)
dt_draw_curve_set_point(c->transition_curve, k + 1, p.transition_x[k], p.transition_y[k]);
dt_draw_curve_set_point(c->transition_curve, DT_IOP_LOWLIGHT_BANDS + 1, p.transition_x[1] + 1.0,
p.transition_y[DT_IOP_LOWLIGHT_BANDS - 1]);
dt_draw_curve_calc_values(c->transition_curve, 0.0, 1.0, DT_IOP_LOWLIGHT_RES, c->draw_xs, c->draw_ys);
cairo_move_to(cr, 0 * width / (float)(DT_IOP_LOWLIGHT_RES - 1), -height * c->draw_ys[0]);
for(int k = 1; k < DT_IOP_LOWLIGHT_RES; k++)
cairo_line_to(cr, k * width / (float)(DT_IOP_LOWLIGHT_RES - 1), -height * c->draw_ys[k]);
cairo_stroke(cr);
// draw dots on knots
cairo_set_source_rgb(cr, 0.7, 0.7, 0.7);
cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(1.));
for(int k = 0; k < DT_IOP_LOWLIGHT_BANDS; k++)
{
cairo_arc(cr, width * p.transition_x[k], -height * p.transition_y[k], DT_PIXEL_APPLY_DPI(3.0), 0.0,
2.0 * M_PI);
if(c->x_move == k)
cairo_fill(cr);
else
cairo_stroke(cr);
}
if(c->mouse_y > 0 || c->dragging)
{
// draw min/max, if selected
cairo_set_source_rgba(cr, .7, .7, .7, .6);
cairo_move_to(cr, 0, -height * c->draw_min_ys[0]);
for(int k = 1; k < DT_IOP_LOWLIGHT_RES; k++)
cairo_line_to(cr, k * width / (float)(DT_IOP_LOWLIGHT_RES - 1), -height * c->draw_min_ys[k]);
for(int k = DT_IOP_LOWLIGHT_RES - 1; k >= 0; k--)
cairo_line_to(cr, k * width / (float)(DT_IOP_LOWLIGHT_RES - 1), -height * c->draw_max_ys[k]);
cairo_close_path(cr);
cairo_fill(cr);
// draw mouse focus circle
cairo_set_source_rgba(cr, .9, .9, .9, .5);
const float pos = DT_IOP_LOWLIGHT_RES * c->mouse_x;
int k = (int)pos;
const float f = k - pos;
if(k >= DT_IOP_LOWLIGHT_RES - 1) k = DT_IOP_LOWLIGHT_RES - 2;
float ht = -height * (f * c->draw_ys[k] + (1 - f) * c->draw_ys[k + 1]);
cairo_arc(cr, c->mouse_x * width, ht, c->mouse_radius * width, 0, 2. * M_PI);
cairo_stroke(cr);
}
cairo_restore(cr);
cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE);
// draw labels:
PangoLayout *layout;
PangoRectangle ink;
PangoFontDescription *desc = pango_font_description_copy_static(darktable.bauhaus->pango_font_desc);
pango_font_description_set_weight(desc, PANGO_WEIGHT_BOLD);
pango_font_description_set_absolute_size(desc,(.06 * height) * PANGO_SCALE);
layout = pango_cairo_create_layout(cr);
pango_layout_set_font_description(layout, desc);
cairo_set_source_rgb(cr, .1, .1, .1);
pango_layout_set_text(layout, _("dark"), -1);
pango_layout_get_pixel_extents(layout, &ink, NULL);
cairo_move_to(cr, .02 * width - ink.y, .5 * (height + ink.width));
cairo_save(cr);
cairo_rotate(cr, -M_PI * .5f);
pango_cairo_show_layout(cr, layout);
cairo_restore(cr);
pango_layout_set_text(layout, _("bright"), -1);
pango_layout_get_pixel_extents(layout, &ink, NULL);
cairo_move_to(cr, .98 * width - ink.height, .5 * (height + ink.width));
cairo_save(cr);
cairo_rotate(cr, -M_PI * .5f);
pango_cairo_show_layout(cr, layout);
cairo_restore(cr);
pango_layout_set_text(layout, _("day vision"), -1);
pango_layout_get_pixel_extents(layout, &ink, NULL);
cairo_move_to(cr, .5 * (width - ink.width), .08 * height - ink.height);
pango_cairo_show_layout(cr, layout);
pango_layout_set_text(layout, _("night vision"), -1);
pango_layout_get_pixel_extents(layout, &ink, NULL);
cairo_move_to(cr, .5 * (width - ink.width), .97 * height - ink.height);
pango_cairo_show_layout(cr, layout);
pango_font_description_free(desc);
g_object_unref(layout);
cairo_destroy(cr);
cairo_set_source_surface(crf, cst, 0, 0);
cairo_paint(crf);
cairo_surface_destroy(cst);
return TRUE;
}
示例12: validate_menu
void validate_menu(GtkTreeIter * iter)
{
struct validate *validate;
GtkWidget *scrolled_window;
GtkWidget *text_view;
GtkTextBuffer *text_buffer;
gboolean updated = FALSE;
gdouble scroll_hvalue = 0;
gdouble scroll_vvalue = 0;
gtk_tree_model_get(GTK_TREE_MODEL(debr.ui_menu.model), iter, MENU_VALIDATE_POINTER, &validate, -1);
if (validate != NULL) {
updated = TRUE;
validate->menu_iter = *iter;
scroll_hvalue = gtk_adjustment_get_value(gtk_scrolled_window_get_hadjustment(GTK_SCROLLED_WINDOW(validate->widget)));
scroll_vvalue = gtk_adjustment_get_value(gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(validate->widget)));
gtk_text_buffer_set_text(validate->text_buffer, "", 0);
goto out;
}
scrolled_window = gtk_scrolled_window_new(NULL, NULL);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window), GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
gtk_box_pack_end(GTK_BOX(debr.ui_validate.text_view_vbox), scrolled_window, TRUE, TRUE, 0);
text_buffer = gtk_text_buffer_new(NULL);
text_view = gtk_text_view_new_with_buffer(text_buffer);
gtk_widget_show(text_view);
gtk_container_add(GTK_CONTAINER(scrolled_window), text_view);
g_object_set(G_OBJECT(text_view), "editable", FALSE, "cursor-visible", FALSE, NULL);
PangoFontDescription *font = pango_font_description_new();
pango_font_description_set_family(font, "monospace");
gtk_widget_modify_font(text_view, font);
pango_font_description_free(font);
GebrGeoXmlValidateOperations operations;
operations.append_text = (void(*)(gpointer,const gchar*,...))validate_append_text;
operations.append_text_emph = (void(*)(gpointer,const gchar*,...))validate_append_text_emph;
operations.append_text_error = NULL;
operations.append_text_error_with_paths = (void(*)(gpointer, gint, const gchar *, const gchar *, GebrValidateCaseName, const gchar *,
...))validate_append_text_error;
GebrGeoXmlValidateOptions options;
options.all = TRUE;
options.ehelp = -1;
validate = g_new(struct validate, 1);
validate->widget = scrolled_window;
validate->text_view = text_view;
validate->text_buffer = text_buffer;
validate->menu_iter = *iter;
validate->geoxml_validate = gebr_geoxml_validate_new(validate, operations, options);
gtk_list_store_append(debr.ui_validate.list_store, &validate->iter);
out:
gtk_tree_store_set(debr.ui_menu.model, iter, MENU_VALIDATE_NEED_UPDATE, FALSE,
MENU_VALIDATE_POINTER, validate, -1);
GebrGeoXmlFlow * menu = menu_get_xml_pointer(iter);
gint error_count = gebr_geoxml_validate_report_menu(validate->geoxml_validate, menu);
gtk_list_store_set(debr.ui_validate.list_store, &validate->iter,
VALIDATE_ICON, !error_count ? debr.pixmaps.stock_apply : debr.pixmaps.stock_warning,
VALIDATE_FILENAME, gebr_geoxml_document_get_filename(GEBR_GEOXML_DOCUMENT(menu)),
VALIDATE_POINTER, validate, -1);
validate_set_selected(&validate->iter);
if (updated) {
gtk_adjustment_set_value(gtk_scrolled_window_get_hadjustment(GTK_SCROLLED_WINDOW(validate->widget)), scroll_hvalue);
gtk_adjustment_set_value(gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(validate->widget)), scroll_vvalue);
}
}
示例13: calendar_draw_page
//.........这里部分代码省略.........
cairo_move_to (cr, (page_width - text_width) / 2, 0);
pango_cairo_show_layout (cr, layout);
/* Day names */
pango_layout_set_font_description (layout, day_name_font);
for (i = 0; i < 7; i++) {
g_snprintf (buffer, BUFFER_SIZE, "%s", utl_get_day_name (i + 7 + monday, FALSE));
pango_layout_set_text (layout, buffer, -1);
pango_layout_get_pixel_size (layout, &text_width, NULL);
cairo_move_to (cr, day_width * i + (day_width - text_width) / 2, mnf_height);
pango_cairo_show_layout (cr, layout);
}
/* Day */
g_date_set_day (date, 1);
day = g_date_get_weekday (date);
month = g_date_get_month (date);
day = monday ? day - 1 : day % 7;
if (day > 0)
g_date_subtract_days (date, day);
day = g_date_get_day (date);
julian = g_date_get_julian (date);
pango_layout_set_wrap (layout, PANGO_WRAP_WORD_CHAR);
pango_layout_set_width (layout, (day_width - padding * 2) * PANGO_SCALE);
pango_layout_set_height (layout, event_height * PANGO_SCALE);
pango_layout_set_ellipsize (layout, PANGO_ELLIPSIZE_END);
pango_layout_set_indent (layout, -4 * PANGO_SCALE);
for (i = 0; i < 6; i++) {
for (j = 0; j < 7; j++) {
actual = (month == g_date_get_month (date)) ? TRUE : FALSE;
day = g_date_get_day (date);
cairo_rectangle (cr, day_width * j, header_height + day_height * i, day_width, day_height);
if (actual) {
cairo_set_source_rgb (cr, 1.0, 1.0, 1.0);
} else {
cairo_set_source_rgb (cr, 0.8, 0.8, 0.8);
}
cairo_fill_preserve (cr);
cairo_set_source_rgb (cr, 0, 0, 0);
cairo_stroke (cr);
pango_layout_set_font_description (layout, day_num_font);
if (actual) {
cairo_move_to (cr, day_width * j + padding, header_height + day_height * i + padding);
if ((j == 0 && !monday) || (j == 5 && monday) || j == 6) {
g_snprintf (buffer, BUFFER_SIZE, "<span color=\"red\">%d</span>", day);
} else {
g_snprintf (buffer, BUFFER_SIZE, "%d", day);
}
pango_layout_set_markup (layout, buffer, -1);
pango_cairo_show_layout (cr, layout);
cal_print_get_events (buffer, julian, appGUI);
pango_layout_set_markup (layout, "", -1);
pango_layout_set_text (layout, buffer, -1);
pango_layout_set_font_description (layout, event_font);
pango_layout_get_pixel_size (layout, NULL, &text_height);
cairo_move_to (cr, day_width * j + padding, header_height + day_height * (i + 1) - text_height - padding);
pango_cairo_show_layout (cr, layout);
} else {
cairo_move_to (cr, day_width * j + padding, header_height + day_height * i + padding);
g_snprintf (buffer, BUFFER_SIZE, "<span color=\"white\">%d</span>", day);
pango_layout_set_markup (layout, buffer, -1);
pango_cairo_show_layout (cr, layout);
}
g_date_add_days (date, 1);
julian++;
}
}
g_date_free (date);
pango_font_description_free (month_name_font);
pango_font_description_free (day_name_font);
pango_font_description_free (day_num_font);
pango_font_description_free (event_font);
g_object_unref (layout);
}
示例14: file_info_box_build
static void file_info_box_build()
{
GtkWidget *hbox1, *vbox1;
GtkWidget *info_exit, *info_mute;
GtkWidget *info_unmute, *info_about;
GtkWidget *scrw1;
GtkWidget *expander;
GdkVisual *visual;
PangoFontDescription *desc;
info_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_object_set_data(GTK_OBJECT(info_window),
"info_window", info_window);
gtk_window_set_title(GTK_WINDOW(info_window),"Extended Module Player");
gtk_window_set_policy(GTK_WINDOW(info_window), FALSE, FALSE, TRUE);
gtk_signal_connect(GTK_OBJECT(info_window), "destroy",
GTK_SIGNAL_FUNC(gtk_widget_destroyed), &info_window);
gtk_container_border_width(GTK_CONTAINER(info_window), 0);
gtk_widget_realize (info_window);
vbox1 = gtk_vbox_new(FALSE, 0);
gtk_container_add(GTK_CONTAINER(info_window), vbox1);
gtk_object_set_data(GTK_OBJECT(vbox1), "vbox1", vbox1);
gtk_container_border_width(GTK_CONTAINER(vbox1), 4);
visual = gdk_visual_get_system();
/*
* Image
*/
frame1 = gtk_event_box_new();
gtk_object_set_data(GTK_OBJECT(frame1), "frame1", frame1);
gtk_widget_set_size_request(frame1, 300, 128);
gtk_box_pack_start(GTK_BOX(vbox1), frame1, FALSE, FALSE, 0);
image = gdk_image_new(GDK_IMAGE_FASTEST, visual, 300, 128);
ximage = GDK_IMAGE_XIMAGE(image);
image1 = gtk_image_new_from_image(image, NULL);
gtk_object_set_data(GTK_OBJECT(image1), "image1", image1);
gtk_container_add (GTK_CONTAINER(frame1), image1);
gtk_widget_set_events (frame1, GDK_BUTTON_PRESS_MASK | GDK_KEY_PRESS_MASK);
gtk_signal_connect (GTK_OBJECT (frame1), "button_press_event",
(GtkSignalFunc)image1_clicked, NULL);
/*
* Buttons
*/
hbox1 = gtk_hbox_new (TRUE, 0);
gtk_object_set_data(GTK_OBJECT(hbox1), "hbox1", hbox1);
gtk_box_pack_start(GTK_BOX(vbox1), hbox1, TRUE, FALSE, 0);
info_mute = gtk_button_new_with_label("Mute");
gtk_signal_connect (GTK_OBJECT (info_mute), "clicked",
(GtkSignalFunc) button_mute, NULL);
gtk_object_set_data(GTK_OBJECT(info_mute), "info_mute", info_mute);
gtk_box_pack_start(GTK_BOX(hbox1), info_mute, TRUE, TRUE, 0);
info_unmute = gtk_button_new_with_label("Unmute");
gtk_signal_connect (GTK_OBJECT (info_unmute), "clicked",
(GtkSignalFunc) button_unmute, NULL);
gtk_object_set_data(GTK_OBJECT(info_unmute), "info_unmute", info_unmute);
gtk_box_pack_start(GTK_BOX(hbox1), info_unmute, TRUE, TRUE, 0);
info_about = gtk_button_new_with_label("About");
gtk_signal_connect_object(GTK_OBJECT(info_about), "clicked",
(GtkSignalFunc) aboutbox, NULL);
gtk_object_set_data(GTK_OBJECT(info_about), "info_about", info_about);
gtk_box_pack_start(GTK_BOX(hbox1), info_about, TRUE, TRUE, 0);
info_exit = gtk_button_new_with_label("Close");
gtk_signal_connect_object(GTK_OBJECT(info_exit), "clicked",
GTK_SIGNAL_FUNC(gtk_widget_hide), GTK_OBJECT(info_window));
gtk_object_set_data(GTK_OBJECT(info_exit), "info_exit", info_exit);
gtk_box_pack_start(GTK_BOX(hbox1), info_exit, TRUE, TRUE, 0);
/*
* Info area
*/
expander = gtk_expander_new("Module information");
scrw1 = gtk_scrolled_window_new(NULL, NULL);
gtk_object_set_data(GTK_OBJECT(scrw1), "scrw1", scrw1);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrw1),
GTK_POLICY_ALWAYS, GTK_POLICY_AUTOMATIC);
gtk_container_add(GTK_CONTAINER(expander), scrw1);
gtk_box_pack_start(GTK_BOX(vbox1), expander, TRUE, TRUE, 0);
gtk_widget_set_size_request(scrw1, 290, 200);
text1b = gtk_text_buffer_new(NULL);
text1 = gtk_text_view_new_with_buffer(text1b);
desc = pango_font_description_new();
pango_font_description_set_family(desc, "Monospace");
gtk_widget_modify_font(text1, desc);
pango_font_description_free(desc);
gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text1), GTK_WRAP_NONE);
//.........这里部分代码省略.........
示例15: l_prov_usl
void l_prov_usl(short dd,short md,short gd,
int podr,
int tipz,
const char *nomdok,
const char *nomdokp,
const char *kontr,
const char *kodop,
int lnds,
double sumad,//Сумма по документа
double sumkor, //Сумма корректировки к документа
float pnds,
GtkWidget *wpredok)
{
class prov_usl_data data;
char strsql[512];
SQL_str row;
SQLCURSOR cur;
iceb_u_str shet_suma;
sprintf(data.imaf_prot,"uslpr%d.tmp",getpid());
prosprusw(1,podr,dd,md,gd,nomdok,tipz,lnds,kodop,pnds,NULL,wpredok);
prosprusw(2,podr,dd,md,gd,nomdok,tipz,lnds,kodop,pnds,&shet_suma,wpredok);
data.tipz=tipz;
data.dd=dd;
data.md=md;
data.gd=gd;
data.nomdok.plus(nomdok);
data.podr=podr;
strcpy(data.metkasys,gettext("УСЛ"));
data.kontr.plus(kontr);
data.kodop.plus(kodop);
data.lnds=lnds;
data.nomdokp.plus(nomdokp);
data.sumkor=sumkor;
data.pnds=pnds;
//Читаем наименование склада
sprintf(strsql,"select naik from Sklad where kod=%d",podr);
if(iceb_sql_readkey(strsql,&row,&cur,wpredok) == 1)
data.naim_podr.new_plus(row[0]);
//Читаем наименование операции
if(tipz == 1)
sprintf(strsql,"select naik from Usloper1 where kod='%s'",kodop);
if(tipz == 2)
sprintf(strsql,"select naik from Usloper2 where kod='%s'",kodop);
if(iceb_sql_readkey(strsql,&row,&cur,wpredok) == 1)
data.naim_kodop.new_plus(row[0]);
//Читаем наименование контрагента
sprintf(strsql,"select naikon from Kontragent where kodkon='%s'",kontr);
if(iceb_sql_readkey(strsql,&row,&cur,wpredok) == 1)
data.naim_kontr.new_plus(row[0]);
data.window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_position( GTK_WINDOW(data.window),ICEB_POS_CENTER);
gtk_window_set_modal(GTK_WINDOW(data.window),TRUE);
sprintf(strsql,"%s %s",name_system,
gettext("Работа с проводками (учёт услуг)"));
gtk_window_set_title (GTK_WINDOW (data.window),iceb_u_toutf(strsql));
gtk_container_set_border_width (GTK_CONTAINER (data.window), 5);
gtk_signal_connect(GTK_OBJECT(data.window),"delete_event",GTK_SIGNAL_FUNC(gtk_widget_destroy),NULL);
gtk_signal_connect(GTK_OBJECT(data.window),"destroy",GTK_SIGNAL_FUNC(gtk_main_quit),NULL);
if(wpredok != NULL)
{
gdk_window_set_cursor(wpredok->window,gdk_cursor_new(ICEB_CURSOR_GDITE));
//Удерживать окно над породившем его окном всегда
gtk_window_set_transient_for(GTK_WINDOW(data.window),GTK_WINDOW(wpredok));
//Закрыть окно если окно предок удалено
gtk_window_set_destroy_with_parent(GTK_WINDOW(data.window),TRUE);
}
gtk_signal_connect_after(GTK_OBJECT(data.window),"key_press_event",GTK_SIGNAL_FUNC(prov_usl_key_press),&data);
gtk_signal_connect_after(GTK_OBJECT(data.window),"key_release_event",GTK_SIGNAL_FUNC(iceb_key_release),&data.kl_shift);
GtkWidget *hbox = gtk_hbox_new (FALSE, 1);
gtk_container_add (GTK_CONTAINER (data.window), hbox);
GtkWidget *vbox1 = gtk_vbox_new (FALSE, 1);
GtkWidget *vbox2 = gtk_vbox_new (FALSE, 1);
data.label_sheta=gtk_label_new (shet_suma.ravno_toutf());
PangoFontDescription *font_pango=pango_font_description_from_string(shrift_ravnohir.ravno());
gtk_widget_modify_font(GTK_WIDGET(data.label_sheta),font_pango);
pango_font_description_free(font_pango);
gtk_box_pack_start (GTK_BOX (hbox), vbox1, FALSE, FALSE, 0);
gtk_box_pack_start (GTK_BOX (hbox), vbox2, TRUE, TRUE, 0);
gtk_box_pack_start (GTK_BOX (hbox),data.label_sheta,FALSE, FALSE, 0);
gtk_widget_show_all(hbox);
data.label_kolstr=gtk_label_new ("");
//.........这里部分代码省略.........