3
自定義用戶界面,如選項卡,按鈕和Omnibox在所有平臺上都是相同的。這是如何實現的?它似乎並不像平臺相關的用戶界面。Google Chrome用戶界面如何工作?
自定義用戶界面,如選項卡,按鈕和Omnibox在所有平臺上都是相同的。這是如何實現的?它似乎並不像平臺相關的用戶界面。Google Chrome用戶界面如何工作?
Chrome使用Skia。下面是一個例子(GTK + 3,開羅,Skia的):
g_signal_connect(window_container_, "draw",
G_CALLBACK(OnWindowContainerDraw), NULL);
gboolean OnWindowContainerDraw(GtkWidget* widget,
cairo_t *cr) {
SkBitmap bitmap;
bitmap.setConfig(SkBitmap::kARGB_8888_Config, 100, 100);
bitmap.allocPixels();
SkDevice device(bitmap);
SkCanvas canvas(&device);
SkPaint paint;
SkRect r;
paint.setARGB(255, 255, 255, 255);
r.set(10, 10, 20, 20);
canvas.drawRect(r, paint);
cairo_surface_t* surface = cairo_image_surface_create_for_data(
(unsigned char*)bitmap.getPixels(), CAIRO_FORMAT_ARGB32,
bitmap.width(), bitmap.height(), bitmap.rowBytes());
cairo_surface_mark_dirty(surface);
cairo_set_source_surface(cr, surface, 0, 0);
cairo_paint(cr);
return FALSE;
}
的
可能重複[?哪個GUI庫沒有谷歌瀏覽器使用(http://stackoverflow.com/questions/874609/which-gui-library -does-google-chrome-use) –
我認爲這個問題是針對跨平臺繪圖庫而不是GUI/WM。 – brooksbp