bool wxApp::OnInitGui() { if ( !wxAppBase::OnInitGui() ) return false; #ifndef __WXGTK3__ // if this is a wxGLApp (derived from wxApp), and we've already // chosen a specific visual, then derive the GdkVisual from that if ( GetXVisualInfo() ) { GdkVisual* vis = gtk_widget_get_default_visual(); GdkColormap *colormap = gdk_colormap_new( vis, FALSE ); gtk_widget_set_default_colormap( colormap ); } else { // On some machines, the default visual is just 256 colours, so // we make sure we get the best. This can sometimes be wasteful. if (m_useBestVisual) { if (m_forceTrueColour) { GdkVisual* visual = gdk_visual_get_best_with_both( 24, GDK_VISUAL_TRUE_COLOR ); if (!visual) { wxLogError(wxT("Unable to initialize TrueColor visual.")); return false; } GdkColormap *colormap = gdk_colormap_new( visual, FALSE ); gtk_widget_set_default_colormap( colormap ); } else { if (gdk_visual_get_best() != gdk_visual_get_system()) { GdkVisual* visual = gdk_visual_get_best(); GdkColormap *colormap = gdk_colormap_new( visual, FALSE ); gtk_widget_set_default_colormap( colormap ); } } } } #endif #if wxUSE_LIBHILDON || wxUSE_LIBHILDON2 if ( !GetHildonProgram() ) { wxLogError(_("Unable to initialize Hildon program")); return false; } #endif // wxUSE_LIBHILDON || wxUSE_LIBHILDON2 return true; }
void gtk_gui_alloc_resources() { GdkColormap *map; gui_colour_normal.red = gui_colour_normal.green = gui_colour_normal.blue = 0; gui_colour_changed.red = gui_colour_changed.green = 64*256; gui_colour_changed.blue = 154*256; gui_colour_error.red = 65535; gui_colour_error.green = gui_colour_error.blue = 64*256; gui_colour_pc.red = 32*256; gui_colour_pc.green = 170*256; gui_colour_pc.blue = 52*256; gui_colour_warn = gui_colour_changed; gui_colour_trace.red = 156*256; gui_colour_trace.green = 78*256; gui_colour_trace.blue = 201*256; gui_colour_debug = gui_colour_pc; gui_colour_break.red = 65535; gui_colour_break.green = gui_colour_break.blue = 192*256; gui_colour_temp_break.red = gui_colour_temp_break.green = 128*256; gui_colour_temp_break.blue = 32*256; gui_colour_white.red = gui_colour_white.green = gui_colour_white.blue = 65535; map = gdk_colormap_new(gdk_visual_get_best(), TRUE); gdk_colormap_alloc_color(map, &gui_colour_normal, TRUE, TRUE); gdk_colormap_alloc_color(map, &gui_colour_changed, TRUE, TRUE); gdk_colormap_alloc_color(map, &gui_colour_error, TRUE, TRUE); gdk_colormap_alloc_color(map, &gui_colour_warn, TRUE, TRUE); gdk_colormap_alloc_color(map, &gui_colour_pc, TRUE, TRUE); gdk_colormap_alloc_color(map, &gui_colour_debug, TRUE, TRUE); gdk_colormap_alloc_color(map, &gui_colour_trace, TRUE, TRUE); gdk_colormap_alloc_color(map, &gui_colour_break, TRUE, TRUE); gdk_colormap_alloc_color(map, &gui_colour_temp_break, TRUE, TRUE); gdk_colormap_alloc_color(map, &gui_colour_white, TRUE, TRUE); gui_fixed_font = pango_font_description_from_string("Courier 10"); }
/* Visual */ CAMLprim value ml_gdk_visual_get_best (value depth, value type) { GdkVisual *vis; if (type == Val_unit) if (depth == Val_unit) vis = gdk_visual_get_best (); else vis = gdk_visual_get_best_with_depth (Int_val(Field(depth,0))); else if (depth == Val_unit) vis = gdk_visual_get_best_with_type (GdkVisualType_val(Field(type,0))); else vis = gdk_visual_get_best_with_both (Int_val(Field(depth,0)),GdkVisualType_val(Field(type,0))); if (!vis) ml_raise_gdk("Gdk.Visual.get_best"); return Val_GdkVisual(vis); }
void iupgtkPushVisualAndColormap(void* visual, void* colormap) { #if GTK_CHECK_VERSION(3, 0, 0) (void)visual; (void)colormap; #else GdkColormap* gdk_colormap; GdkVisual *gdk_visual = gdk_visual_get_best(); gdk_colormap = gdk_colormap_new(gdk_visual, FALSE); gtk_widget_push_colormap(gdk_colormap); /* gtk_widget_push_visual is now deprecated */ #endif }
/* allocate a color from the color map */ gboolean get_color(GdkColor *new_color) { GdkVisual *pv; if (!our_cmap) { if (!gdk_colormap_alloc_color (sys_cmap, new_color, FALSE, TRUE)) { pv = gdk_visual_get_best(); if (!(our_cmap = gdk_colormap_new(pv, TRUE))) { simple_dialog(ESD_TYPE_WARN, ESD_BTN_OK, "Could not create new colormap"); } } else return (TRUE); } return (gdk_colormap_alloc_color(our_cmap, new_color, FALSE, TRUE)); }
GdkPixbuf* gwy_graph_export_pixmap(GwyGraph *graph, G_GNUC_UNUSED gboolean export_title, G_GNUC_UNUSED gboolean export_axis, G_GNUC_UNUSED gboolean export_labels) { GdkColor color = { 0, 65535, 65535, 65535 }; GdkPixbuf *pixbuf; GdkColormap *cmap; GdkGC *gc; GdkVisual *visual; GdkPixmap *pixmap; PangoLayout *layout; PangoContext *context; gint width, height, topheight, bottomheight, rightwidth, leftwidth; gint labelx, labely, labelw, labelh; width = (GTK_WIDGET(graph))->allocation.width; height = (GTK_WIDGET(graph))->allocation.height; topheight = (GTK_WIDGET(graph->axis[GTK_POS_TOP]))->allocation.height; bottomheight = (GTK_WIDGET(graph->axis[GTK_POS_BOTTOM]))->allocation.height; leftwidth = (GTK_WIDGET(graph->axis[GTK_POS_LEFT]))->allocation.width; rightwidth = (GTK_WIDGET(graph->axis[GTK_POS_RIGHT]))->allocation.width; labelx = (GTK_WIDGET(graph->area->lab))->allocation.x + leftwidth; labely = (GTK_WIDGET(graph->area->lab))->allocation.y + topheight; labelw = (GWY_GRAPH_LABEL(graph->area->lab))->reqwidth; labelh = (GWY_GRAPH_LABEL(graph->area->lab))->reqheight; visual = gdk_visual_get_best(); cmap = gdk_colormap_new(visual, FALSE); pixmap = gdk_pixmap_new(NULL, width, height, visual->depth); gdk_drawable_set_colormap(pixmap, cmap); gc = gdk_gc_new(pixmap); gdk_gc_set_colormap(gc, cmap); gdk_gc_set_rgb_fg_color(gc, &color); gdk_draw_rectangle(pixmap, gc, TRUE, 0, 0, width, height); gwy_graph_area_draw_on_drawable(graph->area, pixmap, gc, leftwidth, topheight, width - leftwidth - rightwidth, height - topheight - bottomheight); /* Draw axes */ gwy_axis_draw_on_drawable(graph->axis[GTK_POS_TOP], pixmap, gc, leftwidth, 0, width - leftwidth - rightwidth, topheight); gwy_axis_draw_on_drawable(graph->axis[GTK_POS_BOTTOM], pixmap, gc, leftwidth, height - bottomheight, width - leftwidth - rightwidth, bottomheight); gwy_axis_draw_on_drawable(graph->axis[GTK_POS_LEFT], pixmap, gc, 0, topheight, leftwidth, height - topheight - bottomheight); gwy_axis_draw_on_drawable(graph->axis[GTK_POS_RIGHT], pixmap, gc, width - rightwidth, topheight, rightwidth, height - topheight - bottomheight); context = gdk_pango_context_get_for_screen(gdk_screen_get_default()); pango_context_set_font_description(context, graph->area->lab->font_desc); layout = pango_layout_new(context); gwy_graph_label_draw_on_drawable(graph->area->lab, pixmap, gc, layout, labelx, labely, labelw, labelh); pixbuf = gdk_pixbuf_get_from_drawable(NULL, pixmap, cmap, 0, 0, 0, 0, -1, -1); g_object_unref(pixmap); g_object_unref(layout); g_object_unref(context); g_object_unref(gc); g_object_unref(cmap); return pixbuf; }
static VALUE rg_s_best(G_GNUC_UNUSED VALUE self) { return GOBJ2RVAL(gdk_visual_get_best()); }