Commit 1053cc4165d3383138bb597bdc31a34cec67fcf4
1 parent
f87fa503
Exists in
master
and in
1 other branch
Adding "zoom" methods.
Showing
20 changed files
with
448 additions
and
139 deletions
Show diff stats
src/dialogs/colorscheme.c
| ... | ... | @@ -268,9 +268,9 @@ |
| 268 | 268 | GtkTreeModel * model = gtk_combo_box_get_model(GTK_COMBO_BOX(widget)); |
| 269 | 269 | |
| 270 | 270 | #ifdef DEBUG |
| 271 | - lib3270_autoptr(char) filename = lib3270_strdup_printf("%s/%s",".","colors.conf"); | |
| 271 | + g_autofree gchar * filename = g_build_filename("conf","colors.conf",NULL); | |
| 272 | 272 | #else |
| 273 | - lib3270_autoptr(char) filename = lib3270_build_data_filename("colors.conf"); | |
| 273 | + lib3270_autoptr(char) filename = lib3270_build_data_filename("colors.conf",NULL); | |
| 274 | 274 | #endif // DEBUG |
| 275 | 275 | |
| 276 | 276 | if(!g_file_test(filename,G_FILE_TEST_IS_REGULAR)) | ... | ... |
src/dialogs/print/begin.c
| ... | ... | @@ -41,8 +41,7 @@ |
| 41 | 41 | // Setup FONT |
| 42 | 42 | if(!operation->font.name) |
| 43 | 43 | { |
| 44 | - operation->font.name = g_strdup("monospace"); | |
| 45 | - debug("No font, assuming %s !!!!!!!!!!!!!!!!!!!!!!!!!!",operation->font.name); | |
| 44 | + operation->font.name = g_strdup(v3270_get_default_font_name()); | |
| 46 | 45 | g_warning("No font, assuming %s",operation->font.name); |
| 47 | 46 | } |
| 48 | 47 | |
| ... | ... | @@ -85,9 +84,9 @@ |
| 85 | 84 | |
| 86 | 85 | operation->font.info.width++; |
| 87 | 86 | |
| 88 | - operation->font.info.left = (gtk_print_context_get_width(context)- (operation->font.info.width * operation->contents.width))/2; | |
| 89 | - if(operation->font.info.left < 2) | |
| 90 | - operation->font.info.left = 2; | |
| 87 | + operation->font.info.margin.left = (gtk_print_context_get_width(context)- (operation->font.info.width * operation->contents.width))/2; | |
| 88 | + if(operation->font.info.margin.left < 2) | |
| 89 | + operation->font.info.margin.left = 2; | |
| 91 | 90 | |
| 92 | 91 | // Setup page size |
| 93 | 92 | operation->lpp = (gtk_print_context_get_height(context) / (extents.height + extents.descent)); | ... | ... |
src/dialogs/print/draw.c
| ... | ... | @@ -29,6 +29,7 @@ |
| 29 | 29 | |
| 30 | 30 | #include "private.h" |
| 31 | 31 | #include <string.h> |
| 32 | + #include <internals.h> | |
| 32 | 33 | #include <lib3270/selection.h> |
| 33 | 34 | |
| 34 | 35 | /*--[ Implement ]------------------------------------------------------------------------------------*/ |
| ... | ... | @@ -86,7 +87,7 @@ |
| 86 | 87 | gdk_cairo_set_source_rgba(cr,operation->settings.colors + V3270_COLOR_BACKGROUND); |
| 87 | 88 | cairo_rectangle( |
| 88 | 89 | cr, |
| 89 | - operation->font.info.left-1,0, | |
| 90 | + operation->font.info.margin.left-1,0, | |
| 90 | 91 | (rect.width * operation->contents.width) + 4, |
| 91 | 92 | (rect.height * operation->contents.height) + 4 |
| 92 | 93 | ); |
| ... | ... | @@ -111,7 +112,7 @@ |
| 111 | 112 | // Draw columns |
| 112 | 113 | size_t pos = (row * selection->bounds.width); |
| 113 | 114 | size_t col; |
| 114 | - rect.x = operation->font.info.left; | |
| 115 | + rect.x = operation->font.info.margin.left; | |
| 115 | 116 | |
| 116 | 117 | debug("Drawing: %u row=%u selection=%p pos=%u", (unsigned int) drawing, row, selection, (unsigned int) pos); |
| 117 | 118 | ... | ... |
src/dialogs/print/private.h
src/include/internals.h
| ... | ... | @@ -157,11 +157,47 @@ |
| 157 | 157 | |
| 158 | 158 | G_GNUC_INTERNAL GtkWidget * v3270_charset_combo_box_new(); |
| 159 | 159 | |
| 160 | + | |
| 161 | +/*--[ Font Info ]------------------------------------------------------------------------------------*/ | |
| 162 | + | |
| 163 | + typedef struct _v3270FontInfo { | |
| 164 | + | |
| 165 | + double size; ///< @brief Current font size. | |
| 166 | + double step; ///< @brief Steps for zoom in/out. | |
| 167 | + | |
| 168 | + guint width; | |
| 169 | + guint height; | |
| 170 | + guint ascent; | |
| 171 | + guint descent; | |
| 172 | + | |
| 173 | + guint spacing; | |
| 174 | + | |
| 175 | + struct | |
| 176 | + { | |
| 177 | + gint left; | |
| 178 | + gint top; | |
| 179 | + | |
| 180 | + } margin; | |
| 181 | + | |
| 182 | + gchar * family; | |
| 183 | + cairo_font_face_t * face; | |
| 184 | + cairo_font_weight_t weight; | |
| 185 | + cairo_scaled_font_t * scaled; | |
| 186 | + | |
| 187 | + } v3270FontInfo; | |
| 188 | + | |
| 189 | +G_GNUC_INTERNAL void v3270_font_info_init(v3270FontInfo *info); | |
| 190 | +G_GNUC_INTERNAL void v3270_font_info_unset(v3270FontInfo *info); | |
| 191 | + | |
| 192 | +G_GNUC_INTERNAL void v3270_draw_element(cairo_t *cr, unsigned char chr, unsigned short attr, H3270 *session, v3270FontInfo *font, GdkRectangle *rect, GdkRGBA *color); | |
| 193 | + | |
| 160 | 194 | /*--[ Internal Methods ]-----------------------------------------------------------------------------*/ |
| 161 | 195 | |
| 162 | 196 | |
| 163 | 197 | const GtkWidgetClass * v3270_get_parent_class(void); |
| 164 | 198 | |
| 199 | + G_GNUC_INTERNAL void v3270_reconfigure(v3270 * terminal); | |
| 200 | + | |
| 165 | 201 | G_GNUC_INTERNAL gboolean v3270_draw(GtkWidget * widget, cairo_t * cr); |
| 166 | 202 | G_GNUC_INTERNAL void v3270_cursor_draw(v3270 *widget); |
| 167 | 203 | G_GNUC_INTERNAL void v3270_set_cursor(GtkWidget *widget, LIB3270_POINTER id); |
| ... | ... | @@ -209,6 +245,8 @@ |
| 209 | 245 | G_GNUC_INTERNAL void v3270_start_timer(GtkWidget *terminal); |
| 210 | 246 | G_GNUC_INTERNAL void v3270_stop_timer(GtkWidget *terminal); |
| 211 | 247 | |
| 248 | + G_GNUC_INTERNAL void v3270_redraw(v3270 *terminal, cairo_t * cr, gint width, gint height); | |
| 249 | + | |
| 212 | 250 | G_GNUC_INTERNAL void v3270_draw_connection(cairo_t *cr, H3270 *host, v3270FontInfo *metrics, GdkRGBA *color, const GdkRectangle *rect); |
| 213 | 251 | |
| 214 | 252 | G_GNUC_INTERNAL void v3270_draw_ssl_status(v3270 *widget, cairo_t *cr, GdkRectangle *rect); | ... | ... |
src/include/terminal.h
| ... | ... | @@ -108,12 +108,14 @@ G_BEGIN_DECLS |
| 108 | 108 | int scaled_fonts : 1; /**< Use scaled fonts */ |
| 109 | 109 | int drawing : 1; /**< Draw widget? */ |
| 110 | 110 | |
| 111 | + /* | |
| 111 | 112 | #if GTK_CHECK_VERSION(3,0,0) |
| 112 | 113 | |
| 113 | 114 | #else |
| 114 | 115 | gint width; |
| 115 | 116 | gint height; |
| 116 | 117 | #endif // GTK_CHECK_VERSION(3,0,0) |
| 118 | + */ | |
| 117 | 119 | |
| 118 | 120 | GSource * timer; |
| 119 | 121 | GtkIMContext * input_method; |
| ... | ... | @@ -135,10 +137,6 @@ G_BEGIN_DECLS |
| 135 | 137 | cairo_surface_t * surface; |
| 136 | 138 | v3270FontInfo font; |
| 137 | 139 | |
| 138 | - struct { | |
| 139 | - double step; ///< @brief Steps for zoom in/out. | |
| 140 | - } zoom; | |
| 141 | - | |
| 142 | 140 | gint minimum_width; |
| 143 | 141 | gint minimum_height; |
| 144 | 142 | ... | ... |
src/include/v3270.h
| ... | ... | @@ -63,25 +63,6 @@ |
| 63 | 63 | typedef struct _v3270 v3270; |
| 64 | 64 | typedef struct _v3270Class v3270Class; |
| 65 | 65 | |
| 66 | - typedef struct _v3270FontInfo { | |
| 67 | - | |
| 68 | - guint width; | |
| 69 | - guint height; | |
| 70 | - guint ascent; | |
| 71 | - guint descent; | |
| 72 | - | |
| 73 | - guint spacing; | |
| 74 | - | |
| 75 | - guint left; | |
| 76 | - guint top; | |
| 77 | - | |
| 78 | - gchar * family; | |
| 79 | - cairo_font_face_t * face; | |
| 80 | - cairo_font_weight_t weight; | |
| 81 | - cairo_scaled_font_t * scaled; | |
| 82 | - | |
| 83 | - } v3270FontInfo; | |
| 84 | - | |
| 85 | 66 | enum V3270_COLOR |
| 86 | 67 | { |
| 87 | 68 | V3270_COLOR_BACKGROUND, |
| ... | ... | @@ -218,7 +199,6 @@ |
| 218 | 199 | LIB3270_EXPORT void v3270_set_color_table(GdkRGBA *table, const gchar *colors); |
| 219 | 200 | LIB3270_EXPORT const GdkRGBA * v3270_get_color_table(GtkWidget *widget); |
| 220 | 201 | LIB3270_EXPORT void v3270_set_mono_color_table(GdkRGBA *table, const gchar *fg, const gchar *bg); |
| 221 | - LIB3270_EXPORT void v3270_draw_element(cairo_t *cr, unsigned char chr, unsigned short attr, H3270 *session, v3270FontInfo *font, GdkRectangle *rect, GdkRGBA *color); | |
| 222 | 202 | LIB3270_EXPORT void v3270_set_color(GtkWidget *widget, enum V3270_COLOR id, const GdkRGBA *color); |
| 223 | 203 | LIB3270_EXPORT GdkRGBA * v3270_get_color(GtkWidget *widget, enum V3270_COLOR id); |
| 224 | 204 | |
| ... | ... | @@ -277,6 +257,9 @@ |
| 277 | 257 | |
| 278 | 258 | // Misc |
| 279 | 259 | LIB3270_EXPORT int v3270_exec_command(GtkWidget *widget, const gchar *cmdline); |
| 260 | + LIB3270_EXPORT void v3270_zoom_best(GtkWidget *widget); | |
| 261 | + LIB3270_EXPORT void v3270_zoom_in(GtkWidget *widget); | |
| 262 | + LIB3270_EXPORT void v3270_zoom_out(GtkWidget *widget); | |
| 280 | 263 | |
| 281 | 264 | // Convenience |
| 282 | 265 | LIB3270_EXPORT void gtk_entry_set_printf(GtkEntry *entry, const gchar *fmt, ...) G_GNUC_PRINTF(2,3); | ... | ... |
src/terminal/accessible.c
| ... | ... | @@ -325,8 +325,8 @@ static void v3270_accessible_get_character_extents( AtkText *text, |
| 325 | 325 | gdk_window_get_origin(window, x, y); |
| 326 | 326 | |
| 327 | 327 | // Get screen position |
| 328 | - *x += widget->font.left + ((offset%cols) * widget->font.width); | |
| 329 | - *y += widget->font.top + ((offset/cols) * widget->font.spacing); | |
| 328 | + *x += widget->font.margin.left + ((offset%cols) * widget->font.width); | |
| 329 | + *y += widget->font.margin.top + ((offset/cols) * widget->font.spacing); | |
| 330 | 330 | *width = widget->font.width; |
| 331 | 331 | *height = widget->font.spacing; |
| 332 | 332 | ... | ... |
src/terminal/draw.c
| ... | ... | @@ -122,7 +122,7 @@ static void get_element_colors(unsigned short attr, GdkRGBA **fg, GdkRGBA **bg, |
| 122 | 122 | } |
| 123 | 123 | } |
| 124 | 124 | |
| 125 | -LIB3270_EXPORT void v3270_draw_element(cairo_t *cr, unsigned char chr, unsigned short attr, H3270 *session, v3270FontInfo *fontInfo, GdkRectangle *rect, GdkRGBA *color) | |
| 125 | +void v3270_draw_element(cairo_t *cr, unsigned char chr, unsigned short attr, H3270 *session, v3270FontInfo *fontInfo, GdkRectangle *rect, GdkRGBA *color) | |
| 126 | 126 | { |
| 127 | 127 | GdkRGBA *fg; |
| 128 | 128 | GdkRGBA *bg; |
| ... | ... | @@ -341,55 +341,40 @@ cairo_surface_t *gdk_window_create_similar_surface(GdkWindow *window, cairo_cont |
| 341 | 341 | } |
| 342 | 342 | #endif // GTK_CHECK_VERSION(2, 22, 0) |
| 343 | 343 | |
| 344 | -LIB3270_EXPORT void v3270_reload(GtkWidget *widget) | |
| 344 | +/// @brief Draw terminal contents. | |
| 345 | +/// | |
| 346 | +/// @param terminal Terminal widget. | |
| 347 | +/// @param cr a cairo context. | |
| 348 | +/// @param width the width of the rectangle. | |
| 349 | +/// @param height the height of the rectangle. | |
| 350 | +/// | |
| 351 | +void v3270_redraw(v3270 *terminal, cairo_t * cr, gint width, gint height) | |
| 345 | 352 | { |
| 346 | - v3270 * terminal = GTK_V3270(widget); | |
| 347 | - | |
| 348 | - gint width = gtk_widget_get_allocated_width(widget); | |
| 349 | - gint height = gtk_widget_get_allocated_height(widget); | |
| 350 | - | |
| 353 | + unsigned int rows, cols, r; | |
| 351 | 354 | GdkRectangle rect; |
| 352 | 355 | int addr, cursor; |
| 353 | - unsigned int rows, cols, r; | |
| 354 | - | |
| 355 | - cairo_t * cr; | |
| 356 | - | |
| 357 | - if(!(gtk_widget_get_realized(widget) && terminal->drawing)) | |
| 358 | - { | |
| 359 | - return; | |
| 360 | - } | |
| 361 | - | |
| 362 | - // Create new terminal image | |
| 363 | - if(terminal->surface) | |
| 364 | - cairo_surface_destroy(terminal->surface); | |
| 365 | - | |
| 366 | - terminal->surface = (cairo_surface_t *) gdk_window_create_similar_surface(gtk_widget_get_window(widget),CAIRO_CONTENT_COLOR,width,height); | |
| 367 | - | |
| 368 | - // Update the created image | |
| 369 | - cr = cairo_create(terminal->surface); | |
| 370 | - v3270_compute_font_size(terminal, cr, width, height); | |
| 371 | - v3270_update_font_metrics(terminal, width, height); | |
| 372 | 356 | |
| 373 | 357 | gdk_cairo_set_source_rgba(cr,terminal->color+V3270_COLOR_BACKGROUND); |
| 374 | 358 | cairo_rectangle(cr, 0, 0, width, height); |
| 375 | 359 | cairo_fill(cr); |
| 376 | 360 | cairo_stroke(cr); |
| 377 | 361 | |
| 378 | - // Draw terminal contents | |
| 379 | 362 | lib3270_get_screen_size(terminal->host,&rows,&cols); |
| 380 | 363 | |
| 381 | 364 | memset(&rect,0,sizeof(rect)); |
| 382 | - rect.y = terminal->font.top; | |
| 365 | + rect.y = terminal->font.margin.top; | |
| 383 | 366 | rect.width = terminal->font.width; |
| 384 | 367 | rect.height = terminal->font.spacing; |
| 385 | 368 | addr = 0; |
| 386 | 369 | cursor = lib3270_get_cursor_address(terminal->host); |
| 387 | 370 | |
| 371 | + cairo_set_scaled_font(cr,terminal->font.scaled); | |
| 372 | + | |
| 388 | 373 | for(r = 0; r < rows; r++) |
| 389 | 374 | { |
| 390 | 375 | unsigned int c; |
| 391 | 376 | |
| 392 | - rect.x = terminal->font.left; | |
| 377 | + rect.x = terminal->font.margin.left; | |
| 393 | 378 | |
| 394 | 379 | for(c=0;c < cols;c++) |
| 395 | 380 | { |
| ... | ... | @@ -410,11 +395,47 @@ LIB3270_EXPORT void v3270_reload(GtkWidget *widget) |
| 410 | 395 | |
| 411 | 396 | } |
| 412 | 397 | |
| 413 | - cairo_set_scaled_font(cr,terminal->font.scaled); | |
| 414 | 398 | v3270_draw_oia(terminal, cr, rect.y, cols); |
| 415 | 399 | |
| 400 | +} | |
| 401 | + | |
| 402 | +LIB3270_EXPORT void v3270_reload(GtkWidget *widget) | |
| 403 | +{ | |
| 404 | + v3270 * terminal = GTK_V3270(widget); | |
| 405 | + | |
| 406 | + if(!(gtk_widget_get_realized(widget) && terminal->drawing)) | |
| 407 | + return; | |
| 408 | + | |
| 409 | + gint width = gtk_widget_get_allocated_width(widget); | |
| 410 | + gint height = gtk_widget_get_allocated_height(widget); | |
| 411 | + | |
| 412 | + cairo_t * cr = cairo_create(terminal->surface); | |
| 413 | + | |
| 414 | + v3270_redraw(terminal, cr, width, height); | |
| 415 | + | |
| 416 | 416 | cairo_destroy(cr); |
| 417 | 417 | |
| 418 | + /* | |
| 419 | + v3270 * terminal = GTK_V3270(widget); | |
| 420 | + cairo_t * cr; | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + // Create new terminal image | |
| 425 | + if(terminal->surface) | |
| 426 | + cairo_surface_destroy(terminal->surface); | |
| 427 | + | |
| 428 | + terminal->surface = (cairo_surface_t *) gdk_window_create_similar_surface(gtk_widget_get_window(widget),CAIRO_CONTENT_COLOR,width,height); | |
| 429 | + | |
| 430 | + // Update the created image | |
| 431 | + cr = cairo_create(terminal->surface); | |
| 432 | + v3270_compute_font_size(terminal, cr, width, height); | |
| 433 | + v3270_update_font_metrics(terminal, width, height); | |
| 434 | + | |
| 435 | + v3270_redraw(terminal, cr, width, height); | |
| 436 | + | |
| 437 | + cairo_destroy(cr); | |
| 438 | + */ | |
| 418 | 439 | } |
| 419 | 440 | |
| 420 | 441 | void v3270_update_char(H3270 *session, int addr, unsigned char chr, unsigned short attr, unsigned char cursor) |
| ... | ... | @@ -441,8 +462,8 @@ void v3270_update_char(H3270 *session, int addr, unsigned char chr, unsigned sho |
| 441 | 462 | lib3270_get_screen_size(terminal->host,&rows,&cols); |
| 442 | 463 | |
| 443 | 464 | memset(&rect,0,sizeof(rect)); |
| 444 | - rect.x = terminal->font.left + ((addr % cols) * terminal->font.width); | |
| 445 | - rect.y = terminal->font.top + ((addr / cols) * terminal->font.spacing); | |
| 465 | + rect.x = terminal->font.margin.left + ((addr % cols) * terminal->font.width); | |
| 466 | + rect.y = terminal->font.margin.top + ((addr / cols) * terminal->font.spacing); | |
| 446 | 467 | rect.width = terminal->font.width; |
| 447 | 468 | rect.height = terminal->font.spacing; |
| 448 | 469 | ... | ... |
| ... | ... | @@ -0,0 +1,137 @@ |
| 1 | +/* | |
| 2 | + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | |
| 3 | + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | |
| 4 | + * aplicativos mainframe. Registro no INPI sob o nome G3270. | |
| 5 | + * | |
| 6 | + * Copyright (C) <2008> <Banco do Brasil S.A.> | |
| 7 | + * | |
| 8 | + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | |
| 9 | + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | |
| 10 | + * Free Software Foundation. | |
| 11 | + * | |
| 12 | + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | |
| 13 | + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | |
| 14 | + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | |
| 15 | + * obter mais detalhes. | |
| 16 | + * | |
| 17 | + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | |
| 18 | + * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin | |
| 19 | + * St, Fifth Floor, Boston, MA 02110-1301 USA | |
| 20 | + * | |
| 21 | + * Este programa está nomeado como - e possui - linhas de código. | |
| 22 | + * | |
| 23 | + * Contatos: | |
| 24 | + * | |
| 25 | + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | |
| 26 | + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | |
| 27 | + * | |
| 28 | + */ | |
| 29 | + | |
| 30 | + #include <config.h> | |
| 31 | + #include "private.h" | |
| 32 | + | |
| 33 | +/*--[ Implement ]------------------------------------------------------------------------------------*/ | |
| 34 | + | |
| 35 | +/* | |
| 36 | +static void update_font_size(v3270 * terminal, cairo_t *cr, gint width, gint height, int step) | |
| 37 | +{ | |
| 38 | + | |
| 39 | + | |
| 40 | + cairo_set_font_face(cr,terminal->font.face); | |
| 41 | + | |
| 42 | + cairo_set_font_size(cr,terminal->font.size); | |
| 43 | + | |
| 44 | + v3270_update_font_metrics(terminal, width, height); | |
| 45 | + | |
| 46 | + if(terminal->font.scaled) | |
| 47 | + cairo_scaled_font_destroy(terminal->font.scaled); | |
| 48 | + | |
| 49 | + terminal->font.scaled = cairo_get_scaled_font(cr); | |
| 50 | + cairo_scaled_font_reference(terminal->font.scaled); | |
| 51 | + | |
| 52 | + v3270_redraw(terminal, cr, width, height); | |
| 53 | + | |
| 54 | + gtk_widget_queue_draw(GTK_WIDGET(terminal)); | |
| 55 | + | |
| 56 | +} | |
| 57 | +*/ | |
| 58 | + | |
| 59 | +void v3270_zoom_best(GtkWidget *widget) | |
| 60 | +{ | |
| 61 | + debug("%s",__FUNCTION__); | |
| 62 | + | |
| 63 | + g_return_if_fail(GTK_IS_V3270(widget)); | |
| 64 | + v3270 * terminal = GTK_V3270(widget); | |
| 65 | + if(!(gtk_widget_get_realized(widget) && terminal->drawing && lib3270_is_connected(terminal->host))) | |
| 66 | + { | |
| 67 | + gdk_display_beep(gdk_display_get_default()); | |
| 68 | + return; | |
| 69 | + } | |
| 70 | + | |
| 71 | + gint width = gtk_widget_get_allocated_width(widget); | |
| 72 | + gint height = gtk_widget_get_allocated_height(widget); | |
| 73 | + | |
| 74 | + cairo_t *cr = cairo_create(terminal->surface); | |
| 75 | + | |
| 76 | + v3270_compute_font_size(terminal, cr, width, height); | |
| 77 | + v3270_update_font_metrics(terminal, width, height); | |
| 78 | + | |
| 79 | + v3270_redraw(terminal, cr, width, height); | |
| 80 | + | |
| 81 | + cairo_destroy(cr); | |
| 82 | + | |
| 83 | + gtk_widget_queue_draw(widget); | |
| 84 | + | |
| 85 | +} | |
| 86 | + | |
| 87 | +static void zoom(GtkWidget *widget, double step) | |
| 88 | +{ | |
| 89 | + debug("%s",__FUNCTION__); | |
| 90 | + | |
| 91 | + g_return_if_fail(GTK_IS_V3270(widget)); | |
| 92 | + v3270 * terminal = GTK_V3270(widget); | |
| 93 | + if(!(gtk_widget_get_realized(widget) && terminal->drawing && lib3270_is_connected(terminal->host))) | |
| 94 | + { | |
| 95 | + gtk_widget_error_bell(widget); | |
| 96 | + return; | |
| 97 | + } | |
| 98 | + | |
| 99 | + terminal->font.size += step; | |
| 100 | + | |
| 101 | + // Redraw window | |
| 102 | + | |
| 103 | + gint width = gtk_widget_get_allocated_width(widget); | |
| 104 | + gint height = gtk_widget_get_allocated_height(widget); | |
| 105 | + | |
| 106 | + cairo_t *cr = cairo_create(terminal->surface); | |
| 107 | + | |
| 108 | + cairo_set_font_face(cr,terminal->font.face); | |
| 109 | + cairo_set_font_size(cr,terminal->font.size); | |
| 110 | + | |
| 111 | + v3270_update_font_metrics(terminal, width, height); | |
| 112 | + | |
| 113 | + if(terminal->font.scaled) | |
| 114 | + cairo_scaled_font_destroy(terminal->font.scaled); | |
| 115 | + | |
| 116 | + terminal->font.scaled = cairo_get_scaled_font(cr); | |
| 117 | + cairo_scaled_font_reference(terminal->font.scaled); | |
| 118 | + | |
| 119 | + v3270_redraw(terminal, cr, width, height); | |
| 120 | + | |
| 121 | + cairo_destroy(cr); | |
| 122 | + | |
| 123 | + gtk_widget_queue_draw(GTK_WIDGET(terminal)); | |
| 124 | + | |
| 125 | +} | |
| 126 | + | |
| 127 | +void v3270_zoom_in(GtkWidget *widget) | |
| 128 | +{ | |
| 129 | + zoom(widget,1); | |
| 130 | +} | |
| 131 | + | |
| 132 | +void v3270_zoom_out(GtkWidget *widget) | |
| 133 | +{ | |
| 134 | + debug("%s",__FUNCTION__); | |
| 135 | + zoom(widget,-1); | |
| 136 | +} | |
| 137 | + | ... | ... |
src/terminal/font/compute.c
| ... | ... | @@ -67,27 +67,25 @@ |
| 67 | 67 | cairo_set_font_face(cr,terminal->font.face); |
| 68 | 68 | |
| 69 | 69 | { |
| 70 | - double s = terminal->zoom.step; | |
| 71 | - double selected = 0; | |
| 70 | + double s = terminal->font.step; | |
| 72 | 71 | |
| 73 | 72 | do |
| 74 | 73 | { |
| 75 | - selected = s; | |
| 74 | + terminal->font.size = s; | |
| 76 | 75 | |
| 77 | - s += terminal->zoom.step; | |
| 76 | + s += terminal->font.step; | |
| 78 | 77 | cairo_set_font_size(cr,s); |
| 79 | 78 | cairo_font_extents(cr,&extents); |
| 80 | 79 | |
| 81 | 80 | } while( (VIEW_HEIGTH_FROM_FONT( (extents.height+extents.descent) ) < height) && (VIEW_WIDTH_FROM_FONT(extents.max_x_advance) < width) ); |
| 82 | 81 | |
| 83 | - debug("Selected size=%lf",selected); | |
| 84 | - | |
| 85 | - cairo_set_font_size(cr,selected); | |
| 86 | - cairo_font_extents(cr,&extents); | |
| 82 | + debug("Selected size=%lf",terminal->font.size); | |
| 87 | 83 | |
| 88 | 84 | } |
| 89 | 85 | |
| 90 | 86 | // Save scaled font for use on next drawings |
| 87 | + cairo_set_font_size(cr,terminal->font.size); | |
| 88 | + | |
| 91 | 89 | if(terminal->font.scaled) |
| 92 | 90 | cairo_scaled_font_destroy(terminal->font.scaled); |
| 93 | 91 | ... | ... |
| ... | ... | @@ -0,0 +1,63 @@ |
| 1 | +/* | |
| 2 | + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | |
| 3 | + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | |
| 4 | + * aplicativos mainframe. Registro no INPI sob o nome G3270. | |
| 5 | + * | |
| 6 | + * Copyright (C) <2008> <Banco do Brasil S.A.> | |
| 7 | + * | |
| 8 | + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | |
| 9 | + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | |
| 10 | + * Free Software Foundation. | |
| 11 | + * | |
| 12 | + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | |
| 13 | + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | |
| 14 | + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | |
| 15 | + * obter mais detalhes. | |
| 16 | + * | |
| 17 | + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | |
| 18 | + * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin | |
| 19 | + * St, Fifth Floor, Boston, MA 02110-1301 USA | |
| 20 | + * | |
| 21 | + * Este programa está nomeado como - e possui - linhas de código. | |
| 22 | + * | |
| 23 | + * Contatos: | |
| 24 | + * | |
| 25 | + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | |
| 26 | + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | |
| 27 | + * | |
| 28 | + */ | |
| 29 | + | |
| 30 | + #include <config.h> | |
| 31 | + #include "private.h" | |
| 32 | + | |
| 33 | +/*--[ Implement ]------------------------------------------------------------------------------------*/ | |
| 34 | + | |
| 35 | +void v3270_font_info_init(v3270FontInfo *info) | |
| 36 | +{ | |
| 37 | + memset(info,0,sizeof(v3270FontInfo)); | |
| 38 | + | |
| 39 | + info->family = g_strdup(v3270_get_default_font_name()); | |
| 40 | + info->step = 0.1; | |
| 41 | + info->size = 0.1; | |
| 42 | +} | |
| 43 | + | |
| 44 | +void v3270_font_info_unset(v3270FontInfo *info) | |
| 45 | +{ | |
| 46 | + if(info->family) | |
| 47 | + { | |
| 48 | + g_free(info->family); | |
| 49 | + info->family = NULL; | |
| 50 | + } | |
| 51 | + | |
| 52 | + if(info->scaled) | |
| 53 | + { | |
| 54 | + cairo_scaled_font_destroy(info->scaled); | |
| 55 | + info->scaled = NULL; | |
| 56 | + } | |
| 57 | + | |
| 58 | + if(info->face) { | |
| 59 | + cairo_font_face_destroy(info->face); | |
| 60 | + info->face = NULL; | |
| 61 | + } | |
| 62 | + | |
| 63 | +} | ... | ... |
src/terminal/font/metrics.c
| ... | ... | @@ -67,12 +67,16 @@ void v3270_update_font_metrics(v3270 *terminal, unsigned int width, unsigned int |
| 67 | 67 | // Center image |
| 68 | 68 | |
| 69 | 69 | size = VIEW_WIDTH_FROM_FONT(terminal->font.width); |
| 70 | - terminal->font.left = ((width - size) / 2); | |
| 70 | + terminal->font.margin.left = (width/2) - (size/2); | |
| 71 | + | |
| 72 | + debug("%d",(width - size)); | |
| 71 | 73 | |
| 72 | 74 | size = VIEW_HEIGTH_FROM_FONT(terminal->font.spacing); |
| 73 | - terminal->font.top = ((height - size) /2); | |
| 75 | + terminal->font.margin.top = (height/2) - (size/2); | |
| 76 | + | |
| 77 | + debug("%d",(height - size)); | |
| 74 | 78 | |
| 75 | - debug("screen_height=%u content_height=%u top=%d",height, size, terminal->font.top); | |
| 79 | + debug("screen_height=%u content_height=%d top=%d left=%d size=%lf",height, size, terminal->font.margin.top, terminal->font.margin.left, terminal->font.size); | |
| 76 | 80 | |
| 77 | 81 | } |
| 78 | 82 | ... | ... |
src/terminal/font/private.h
src/terminal/mouse.c
| ... | ... | @@ -55,8 +55,8 @@ gint v3270_get_offset_at_point(v3270 *widget, gint x, gint y) |
| 55 | 55 | |
| 56 | 56 | if(x > 0 && y > 0) |
| 57 | 57 | { |
| 58 | - point.x = ((x-widget->font.left)/widget->font.width); | |
| 59 | - point.y = ((y-widget->font.top)/widget->font.spacing); | |
| 58 | + point.x = ((x-widget->font.margin.left)/widget->font.width); | |
| 59 | + point.y = ((y-widget->font.margin.top)/widget->font.spacing); | |
| 60 | 60 | |
| 61 | 61 | lib3270_get_screen_size(widget->host,&r,&c); |
| 62 | 62 | ... | ... |
src/terminal/oia.c
| ... | ... | @@ -581,18 +581,18 @@ void v3270_draw_oia(v3270 *terminal, cairo_t *cr, int row, int cols) |
| 581 | 581 | }; |
| 582 | 582 | |
| 583 | 583 | int f; |
| 584 | - int rCol = terminal->font.left+(cols*terminal->font.width); | |
| 585 | - int lCol = terminal->font.left+1; | |
| 584 | + int rCol = terminal->font.margin.left+(cols*terminal->font.width); | |
| 585 | + int lCol = terminal->font.margin.left+1; | |
| 586 | 586 | |
| 587 | 587 | row += OIA_TOP_MARGIN; |
| 588 | 588 | gdk_cairo_set_source_rgba(cr,terminal->color+V3270_COLOR_OIA_SEPARATOR); |
| 589 | - cairo_rectangle(cr, terminal->font.left, row, cols*terminal->font.width, 1); | |
| 589 | + cairo_rectangle(cr, terminal->font.margin.left, row, cols*terminal->font.width, 1); | |
| 590 | 590 | cairo_fill(cr); |
| 591 | 591 | |
| 592 | 592 | row += 2; |
| 593 | 593 | |
| 594 | 594 | gdk_cairo_set_source_rgba(cr,terminal->color+V3270_COLOR_OIA_BACKGROUND); |
| 595 | - cairo_rectangle(cr, terminal->font.left, row, cols*terminal->font.width, terminal->font.spacing); | |
| 595 | + cairo_rectangle(cr, terminal->font.margin.left, row, cols*terminal->font.width, terminal->font.spacing); | |
| 596 | 596 | cairo_fill(cr); |
| 597 | 597 | |
| 598 | 598 | for(f=0;f< (int) G_N_ELEMENTS(right);f++) |
| ... | ... | @@ -770,8 +770,8 @@ void v3270_update_cursor(H3270 *session, unsigned short row, unsigned short col, |
| 770 | 770 | // Update cursor rectangle |
| 771 | 771 | saved = terminal->cursor.rect; |
| 772 | 772 | |
| 773 | - terminal->cursor.rect.x = terminal->font.left + (col * terminal->cursor.rect.width); | |
| 774 | - terminal->cursor.rect.y = terminal->font.top + (row * terminal->font.spacing); | |
| 773 | + terminal->cursor.rect.x = terminal->font.margin.left + (col * terminal->cursor.rect.width); | |
| 774 | + terminal->cursor.rect.y = terminal->font.margin.top + (row * terminal->font.spacing); | |
| 775 | 775 | terminal->cursor.rect.width = terminal->font.width; |
| 776 | 776 | terminal->cursor.rect.height = terminal->font.height+terminal->font.descent; |
| 777 | 777 | terminal->cursor.show |= 1; | ... | ... |
| ... | ... | @@ -0,0 +1,86 @@ |
| 1 | +/* | |
| 2 | + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | |
| 3 | + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | |
| 4 | + * aplicativos mainframe. Registro no INPI sob o nome G3270. | |
| 5 | + * | |
| 6 | + * Copyright (C) <2008> <Banco do Brasil S.A.> | |
| 7 | + * | |
| 8 | + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | |
| 9 | + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | |
| 10 | + * Free Software Foundation. | |
| 11 | + * | |
| 12 | + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | |
| 13 | + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | |
| 14 | + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | |
| 15 | + * obter mais detalhes. | |
| 16 | + * | |
| 17 | + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | |
| 18 | + * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin | |
| 19 | + * St, Fifth Floor, Boston, MA 02110-1301 USA | |
| 20 | + * | |
| 21 | + * Este programa está nomeado como - e possui - linhas de código. | |
| 22 | + * | |
| 23 | + * Contatos: | |
| 24 | + * | |
| 25 | + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | |
| 26 | + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | |
| 27 | + * | |
| 28 | + */ | |
| 29 | + | |
| 30 | + #include <config.h> | |
| 31 | + #include <terminal.h> | |
| 32 | + | |
| 33 | +/*--[ Implement ]------------------------------------------------------------------------------------*/ | |
| 34 | + | |
| 35 | +/** | |
| 36 | + * @brief Reconfigure widget surface. | |
| 37 | + * | |
| 38 | + * Called when the widget is resized or moved to regenerate the cairo surface: | |
| 39 | + * | |
| 40 | + * * Recreate the surface. | |
| 41 | + * * Compute the new font size & metrics. | |
| 42 | + * * Redraw contents. | |
| 43 | + * * Emite "GDK_CONFIGURE" event. | |
| 44 | + * | |
| 45 | + */ | |
| 46 | +void v3270_reconfigure(v3270 * terminal) | |
| 47 | +{ | |
| 48 | + GtkAllocation allocation; | |
| 49 | + GtkWidget *widget; | |
| 50 | + GdkEvent *event = gdk_event_new(GDK_CONFIGURE); | |
| 51 | + | |
| 52 | + widget = GTK_WIDGET(terminal); | |
| 53 | + | |
| 54 | + gtk_widget_get_allocation(widget, &allocation); | |
| 55 | + | |
| 56 | + event->configure.window = g_object_ref(gtk_widget_get_window(widget)); | |
| 57 | + event->configure.send_event = TRUE; | |
| 58 | + event->configure.x = allocation.x; | |
| 59 | + event->configure.y = allocation.y; | |
| 60 | + event->configure.width = allocation.width; | |
| 61 | + event->configure.height = allocation.height; | |
| 62 | + | |
| 63 | + if(terminal->surface) | |
| 64 | + cairo_surface_destroy(terminal->surface); | |
| 65 | + | |
| 66 | + terminal->surface = (cairo_surface_t *) gdk_window_create_similar_surface(gtk_widget_get_window(widget),CAIRO_CONTENT_COLOR,allocation.width,allocation.height); | |
| 67 | + | |
| 68 | + // Update the created image | |
| 69 | + cairo_t * cr = cairo_create(terminal->surface); | |
| 70 | + v3270_compute_font_size(terminal, cr, allocation.width, allocation.height); | |
| 71 | + v3270_update_font_metrics(terminal, allocation.width, allocation.height); | |
| 72 | + | |
| 73 | + v3270_redraw(terminal, cr, allocation.width, allocation.height); | |
| 74 | + | |
| 75 | + cairo_destroy(cr); | |
| 76 | + | |
| 77 | +#if( !GTK_CHECK_VERSION(3,0,0)) | |
| 78 | + terminal->width = allocation.width; | |
| 79 | + terminal->height = allocation.height; | |
| 80 | +#endif | |
| 81 | + | |
| 82 | + gtk_widget_event(widget, event); | |
| 83 | + gdk_event_free(event); | |
| 84 | +} | |
| 85 | + | |
| 86 | + | ... | ... |
src/terminal/widget.c
| ... | ... | @@ -71,8 +71,6 @@ |
| 71 | 71 | static void v3270_realize ( GtkWidget * widget) ; |
| 72 | 72 | static void v3270_size_allocate ( GtkWidget * widget, |
| 73 | 73 | GtkAllocation * allocation ); |
| 74 | -static void v3270_send_configure ( v3270 * terminal ); | |
| 75 | - | |
| 76 | 74 | // Signals |
| 77 | 75 | static void v3270_activate (GtkWidget *widget); |
| 78 | 76 | |
| ... | ... | @@ -503,9 +501,6 @@ static void v3270_init(v3270 *widget) |
| 503 | 501 | // Setup clipboard. |
| 504 | 502 | widget->selection.target = GDK_SELECTION_CLIPBOARD; |
| 505 | 503 | |
| 506 | - // Setup zoom | |
| 507 | - widget->zoom.step = 0.1; | |
| 508 | - | |
| 509 | 504 | // Reset timer |
| 510 | 505 | widget->activity.timestamp = time(0); |
| 511 | 506 | widget->activity.disconnect = 0; |
| ... | ... | @@ -532,7 +527,7 @@ static void v3270_init(v3270 *widget) |
| 532 | 527 | widget->drawing = 1; |
| 533 | 528 | |
| 534 | 529 | // Set defaults |
| 535 | - widget->font.family = g_strdup(v3270_get_default_font_name()); | |
| 530 | + v3270_font_info_init(&widget->font); | |
| 536 | 531 | v3270_set_color_table(widget->color,v3270_default_colors); |
| 537 | 532 | |
| 538 | 533 | } |
| ... | ... | @@ -562,22 +557,7 @@ static void v3270_destroy(GtkWidget *widget) |
| 562 | 557 | terminal->accessible = NULL; |
| 563 | 558 | } |
| 564 | 559 | |
| 565 | - if(terminal->font.family) | |
| 566 | - { | |
| 567 | - g_free(terminal->font.family); | |
| 568 | - terminal->font.family = 0; | |
| 569 | - } | |
| 570 | - | |
| 571 | - if(terminal->font.scaled) | |
| 572 | - { | |
| 573 | - cairo_scaled_font_destroy(terminal->font.scaled); | |
| 574 | - terminal->font.scaled = NULL; | |
| 575 | - } | |
| 576 | - | |
| 577 | - if(terminal->font.face) { | |
| 578 | - cairo_font_face_destroy(terminal->font.face); | |
| 579 | - terminal->font.face = NULL; | |
| 580 | - } | |
| 560 | + v3270_font_info_unset(&terminal->font); | |
| 581 | 561 | |
| 582 | 562 | if(terminal->surface) |
| 583 | 563 | { |
| ... | ... | @@ -736,9 +716,7 @@ static void v3270_realize(GtkWidget * widget) |
| 736 | 716 | gtk_style_set_background (widget->style, widget->window, GTK_STATE_NORMAL); |
| 737 | 717 | #endif // !GTK3 |
| 738 | 718 | |
| 739 | - v3270_reload(widget); | |
| 740 | - | |
| 741 | - v3270_send_configure(GTK_V3270(widget)); | |
| 719 | + v3270_reconfigure(GTK_V3270(widget)); | |
| 742 | 720 | |
| 743 | 721 | if(!GTK_V3270(widget)->cursor.timer) |
| 744 | 722 | { |
| ... | ... | @@ -776,8 +754,8 @@ static void v3270_size_allocate(GtkWidget * widget, GtkAllocation * allocation) |
| 776 | 754 | if(gtk_widget_get_has_window(widget)) |
| 777 | 755 | gdk_window_move_resize(gtk_widget_get_window (widget),allocation->x, allocation->y,allocation->width, allocation->height); |
| 778 | 756 | |
| 779 | - v3270_reload(widget); | |
| 780 | - v3270_send_configure(GTK_V3270(widget)); | |
| 757 | + v3270_reconfigure(GTK_V3270(widget)); | |
| 758 | + | |
| 781 | 759 | } |
| 782 | 760 | } |
| 783 | 761 | |
| ... | ... | @@ -789,32 +767,6 @@ G_GNUC_INTERNAL void gtk_widget_get_allocation(GtkWidget *widget, GtkAllocation |
| 789 | 767 | #endif // !GTK(2,18) |
| 790 | 768 | |
| 791 | 769 | |
| 792 | -static void v3270_send_configure(v3270 * terminal) | |
| 793 | -{ | |
| 794 | - GtkAllocation allocation; | |
| 795 | - GtkWidget *widget; | |
| 796 | - GdkEvent *event = gdk_event_new(GDK_CONFIGURE); | |
| 797 | - | |
| 798 | - widget = GTK_WIDGET(terminal); | |
| 799 | - | |
| 800 | - gtk_widget_get_allocation(widget, &allocation); | |
| 801 | - | |
| 802 | - event->configure.window = g_object_ref(gtk_widget_get_window(widget)); | |
| 803 | - event->configure.send_event = TRUE; | |
| 804 | - event->configure.x = allocation.x; | |
| 805 | - event->configure.y = allocation.y; | |
| 806 | - event->configure.width = allocation.width; | |
| 807 | - event->configure.height = allocation.height; | |
| 808 | - | |
| 809 | -#if( !GTK_CHECK_VERSION(3,0,0)) | |
| 810 | - terminal->width = allocation.width; | |
| 811 | - terminal->height = allocation.height; | |
| 812 | -#endif | |
| 813 | - | |
| 814 | - gtk_widget_event(widget, event); | |
| 815 | - gdk_event_free(event); | |
| 816 | -} | |
| 817 | - | |
| 818 | 770 | LIB3270_EXPORT void v3270_disconnect(GtkWidget *widget) |
| 819 | 771 | { |
| 820 | 772 | g_return_if_fail(GTK_IS_V3270(widget)); | ... | ... |
src/testprogram/toolbar.c
| ... | ... | @@ -178,6 +178,21 @@ |
| 178 | 178 | |
| 179 | 179 | } |
| 180 | 180 | |
| 181 | + static void zoom_in_clicked(GtkButton G_GNUC_UNUSED(*button), GtkWidget *terminal) | |
| 182 | + { | |
| 183 | + v3270_zoom_in(terminal); | |
| 184 | + } | |
| 185 | + | |
| 186 | + static void zoom_out_clicked(GtkButton G_GNUC_UNUSED(*button), GtkWidget *terminal) | |
| 187 | + { | |
| 188 | + v3270_zoom_out(terminal); | |
| 189 | + } | |
| 190 | + | |
| 191 | + static void zoom_best_clicked(GtkButton G_GNUC_UNUSED(*button), GtkWidget *terminal) | |
| 192 | + { | |
| 193 | + v3270_zoom_best(terminal); | |
| 194 | + } | |
| 195 | + | |
| 181 | 196 | GtkWidget * create_toolbar(GtkWidget *terminal) { |
| 182 | 197 | |
| 183 | 198 | size_t f; |
| ... | ... | @@ -199,6 +214,9 @@ |
| 199 | 214 | { "document-save", G_CALLBACK(save_all_clicked), "Save screen" }, |
| 200 | 215 | { "document-open", G_CALLBACK(load_clicked), "Paste file" }, |
| 201 | 216 | |
| 217 | + { "zoom-in", G_CALLBACK(zoom_in_clicked), "Zoom in" }, | |
| 218 | + { "zoom-out", G_CALLBACK(zoom_out_clicked), "Zoom out" }, | |
| 219 | + { "zoom-fit-best", G_CALLBACK(zoom_best_clicked), "Zoom best" }, | |
| 202 | 220 | }; |
| 203 | 221 | |
| 204 | 222 | GtkWidget * toolbar = gtk_toolbar_new(); | ... | ... |
v3270.cbp
| ... | ... | @@ -217,9 +217,15 @@ |
| 217 | 217 | <Unit filename="src/terminal/draw.c"> |
| 218 | 218 | <Option compilerVar="CC" /> |
| 219 | 219 | </Unit> |
| 220 | + <Unit filename="src/terminal/font/actions.c"> | |
| 221 | + <Option compilerVar="CC" /> | |
| 222 | + </Unit> | |
| 220 | 223 | <Unit filename="src/terminal/font/compute.c"> |
| 221 | 224 | <Option compilerVar="CC" /> |
| 222 | 225 | </Unit> |
| 226 | + <Unit filename="src/terminal/font/info.c"> | |
| 227 | + <Option compilerVar="CC" /> | |
| 228 | + </Unit> | |
| 223 | 229 | <Unit filename="src/terminal/font/metrics.c"> |
| 224 | 230 | <Option compilerVar="CC" /> |
| 225 | 231 | </Unit> |
| ... | ... | @@ -262,6 +268,9 @@ |
| 262 | 268 | <Unit filename="src/terminal/security.c"> |
| 263 | 269 | <Option compilerVar="CC" /> |
| 264 | 270 | </Unit> |
| 271 | + <Unit filename="src/terminal/surface.c"> | |
| 272 | + <Option compilerVar="CC" /> | |
| 273 | + </Unit> | |
| 265 | 274 | <Unit filename="src/terminal/widget.c"> |
| 266 | 275 | <Option compilerVar="CC" /> |
| 267 | 276 | </Unit> | ... | ... |