From 79eeabafb39f8771c0f41c46dc8b819097e403cb Mon Sep 17 00:00:00 2001 From: Yevgeny Makarov Date: Sun, 6 Dec 2020 10:29:26 -0800 Subject: [PATCH] UI: 'About Blender' with Full Logo New layout for the 'About' dialog featuring the full version of the Blender logo. Differential Revision: https://developer.blender.org/D9507 Reviewed by Hans Goudey --- release/datafiles/blender_logo.png | Bin 0 -> 19535 bytes release/scripts/startup/bl_operators/wm.py | 39 +++++---- .../blender/editors/datafiles/CMakeLists.txt | 1 + source/blender/editors/include/ED_datafiles.h | 3 + .../windowmanager/intern/wm_splash_screen.c | 77 ++++++++---------- 5 files changed, 59 insertions(+), 61 deletions(-) create mode 100644 release/datafiles/blender_logo.png diff --git a/release/datafiles/blender_logo.png b/release/datafiles/blender_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..17ffef7df5d003256960d6e3c8a99a42fe81b518 GIT binary patch literal 19535 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 KPE;Sq{{9b0lYWB$ literal 0 HcmV?d00001 diff --git a/release/scripts/startup/bl_operators/wm.py b/release/scripts/startup/bl_operators/wm.py index bd1ae2ca8e1..387e93cb769 100644 --- a/release/scripts/startup/bl_operators/wm.py +++ b/release/scripts/startup/bl_operators/wm.py @@ -31,6 +31,7 @@ from bpy.props import ( IntProperty, StringProperty, ) +from bpy.app.translations import pgettext_iface as iface_ # FIXME, we need a way to detect key repeat events. # unfortunately checking event previous values isn't reliable. @@ -2642,26 +2643,28 @@ class WM_MT_splash_about(Menu): layout = self.layout layout.operator_context = 'EXEC_DEFAULT' - layout.label(text="Blender is free software") - layout.label(text="Licensed under the GNU General Public License") - layout.separator() - layout.separator() + split = layout.split(factor=0.65) - split = layout.split() - split.emboss = 'PULLDOWN_MENU' - split.scale_y = 1.3 + col = split.column(align=True) + col.scale_y = 0.8 + col.label(text=bpy.app.version_string, translate=False) + col.separator(factor=2.5) + col.label(text=iface_("Date: %s %s") % (bpy.app.build_commit_date.decode('utf-8', 'replace'), + bpy.app.build_commit_time.decode('utf-8', 'replace')), translate=False) + col.label(text=iface_("Hash: %s") % bpy.app.build_hash.decode('ascii'), translate=False) + col.label(text=iface_("Branch: %s") % bpy.app.build_branch.decode('utf-8', 'replace'), translate=False) + col.separator(factor=2.0) + col.label(text="Blender is free software") + col.label(text="Licensed under the GNU General Public License") - col1 = split.column() - - col1.operator("wm.url_open_preset", text="Release Notes", icon='URL').type = 'RELEASE_NOTES' - col1.operator("wm.url_open_preset", text="Credits", icon='URL').type = 'CREDITS' - col1.operator("wm.url_open", text="License", icon='URL').url = "https://www.blender.org/about/license/" - - col2 = split.column() - - col2.operator("wm.url_open_preset", text="Blender Website", icon='URL').type = 'BLENDER' - col2.operator("wm.url_open", text="Blender Store", icon='URL').url = "https://store.blender.org" - col2.operator("wm.url_open_preset", text="Development Fund", icon='FUND').type = 'FUND' + col = split.column(align=True) + col.emboss = 'PULLDOWN_MENU' + col.operator("wm.url_open_preset", text="Release Notes", icon='URL').type = 'RELEASE_NOTES' + col.operator("wm.url_open_preset", text="Credits", icon='URL').type = 'CREDITS' + col.operator("wm.url_open", text="License", icon='URL').url = "https://www.blender.org/about/license/" + col.operator("wm.url_open_preset", text="Blender Website", icon='URL').type = 'BLENDER' + col.operator("wm.url_open", text="Blender Store", icon='URL').url = "https://store.blender.org" + col.operator("wm.url_open_preset", text="Development Fund", icon='FUND').type = 'FUND' class WM_OT_drop_blend_file(Operator): diff --git a/source/blender/editors/datafiles/CMakeLists.txt b/source/blender/editors/datafiles/CMakeLists.txt index e374010cf44..337fb18f835 100644 --- a/source/blender/editors/datafiles/CMakeLists.txt +++ b/source/blender/editors/datafiles/CMakeLists.txt @@ -791,6 +791,7 @@ if(WITH_BLENDER) # images data_to_c_simple(../../../../release/datafiles/splash.png SRC) data_to_c_simple(../../../../release/datafiles/alert_icons.png SRC) + data_to_c_simple(../../../../release/datafiles/blender_logo.png SRC) # XXX These are handy, but give nasty "false changes" in svn :/ # svg_to_png(../../../../release/datafiles/blender_icons.svg # ../../../../release/datafiles/blender_icons16.png diff --git a/source/blender/editors/include/ED_datafiles.h b/source/blender/editors/include/ED_datafiles.h index ba77da24406..40b0a8d96b1 100644 --- a/source/blender/editors/include/ED_datafiles.h +++ b/source/blender/editors/include/ED_datafiles.h @@ -50,6 +50,9 @@ extern char datatoc_prvicons_png[]; extern int datatoc_alert_icons_png_size; extern char datatoc_alert_icons_png[]; +extern int datatoc_blender_logo_png_size; +extern char datatoc_blender_logo_png[]; + extern int datatoc_splash_png_size; extern char datatoc_splash_png[]; diff --git a/source/blender/windowmanager/intern/wm_splash_screen.c b/source/blender/windowmanager/intern/wm_splash_screen.c index d732393b631..a3619a69152 100644 --- a/source/blender/windowmanager/intern/wm_splash_screen.c +++ b/source/blender/windowmanager/intern/wm_splash_screen.c @@ -256,71 +256,62 @@ void WM_OT_splash(wmOperatorType *ot) static uiBlock *wm_block_create_about(bContext *C, ARegion *region, void *UNUSED(arg)) { const uiStyle *style = UI_style_get_dpi(); - const short logo_size = 128 * U.dpi_fac; const int text_points_max = MAX2(style->widget.points, style->widgetlabel.points); - const int dialog_width = logo_size + (text_points_max * 32 * U.dpi_fac); - - /* Calculate icon column factor. */ - const float split_factor = (float)logo_size / (float)(dialog_width - style->columnspace); + const int dialog_width = text_points_max * 42 * U.dpi_fac; uiBlock *block = UI_block_begin(C, region, "about", UI_EMBOSS); - UI_block_flag_enable( - block, UI_BLOCK_KEEP_OPEN | UI_BLOCK_LOOP | UI_BLOCK_NO_WIN_CLIP | UI_BLOCK_NUMSELECT); + UI_block_flag_enable(block, UI_BLOCK_KEEP_OPEN | UI_BLOCK_LOOP | UI_BLOCK_NO_WIN_CLIP); UI_block_theme_style_set(block, UI_BLOCK_THEME_STYLE_POPUP); - UI_block_emboss_set(block, UI_EMBOSS); - uiLayout *block_layout = UI_block_layout( + uiLayout *layout = UI_block_layout( block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, 0, 0, dialog_width, 0, 0, style); - /* Split layout to put Blender logo on left side. */ - uiLayout *split_block = uiLayoutSplit(block_layout, split_factor, false); + /* Blender logo. */ +#ifndef WITH_HEADLESS + extern char datatoc_blender_logo_png[]; + extern int datatoc_blender_logo_png_size; - /* Blender Logo. */ - uiLayout *layout = uiLayoutColumn(split_block, false); - uiDefButAlert(block, ALERT_ICON_BLENDER, 0, 0, 0, logo_size); + const uchar *blender_logo_data = (const uchar *)datatoc_blender_logo_png; + size_t blender_logo_data_size = datatoc_blender_logo_png_size; + ImBuf *ibuf = IMB_ibImageFromMemory( + blender_logo_data, blender_logo_data_size, IB_rect, NULL, "blender_logo"); - /* The rest of the content on the right. */ - layout = uiLayoutColumn(split_block, false); + if (ibuf) { + int width = 0.5 * dialog_width; + int height = (width * ibuf->y) / ibuf->x; - uiLayoutSetScaleY(layout, 0.7f); + IMB_premultiply_alpha(ibuf); + IMB_scaleImBuf(ibuf, width, height); - uiItemS_ex(layout, 1.0f); + bTheme *btheme = UI_GetTheme(); + const uchar *color = btheme->tui.wcol_menu_back.text_sel; - /* Title. */ - uiItemL_ex(layout, "Blender", ICON_NONE, true, false); + /* The top margin. */ + uiLayout *row = uiLayoutRow(layout, false); + uiItemS_ex(row, 0.2f); - /* Version. */ - uiItemL(layout, BKE_blender_version_string(), ICON_NONE); + /* The logo image. */ + row = uiLayoutRow(layout, false); + uiLayoutSetAlignment(row, UI_LAYOUT_ALIGN_LEFT); + uiDefButImage(block, ibuf, 0, U.widget_unit, width, height, color); - uiItemS_ex(layout, 3.0f); + /* Padding below the logo. */ + row = uiLayoutRow(layout, false); + uiItemS_ex(row, 2.7f); + } +#endif /* WITH_HEADLESS */ -#ifdef WITH_BUILDINFO + uiLayout *col = uiLayoutColumn(layout, true); - extern char build_hash[], build_commit_date[], build_commit_time[], build_branch[]; - - char str_buf[256] = "\0"; - BLI_snprintf(str_buf, sizeof(str_buf), "Date: %s %s", build_commit_date, build_commit_time); - uiItemL(layout, str_buf, ICON_NONE); - - BLI_snprintf(str_buf, sizeof(str_buf), "Hash: %s", build_hash); - uiItemL(layout, str_buf, ICON_NONE); - - BLI_snprintf(str_buf, sizeof(str_buf), "Branch: %s", build_branch); - uiItemL(layout, str_buf, ICON_NONE); - -#endif /* WITH_BUILDINFO */ - - uiItemS_ex(layout, 1.5f); + uiItemL_ex(col, N_("Blender"), ICON_NONE, true, false); MenuType *mt = WM_menutype_find("WM_MT_splash_about", true); if (mt) { - UI_menutype_draw(C, mt, layout); + UI_menutype_draw(C, mt, col); } - uiItemS_ex(layout, 2.0f); - - UI_block_bounds_set_centered(block, 14 * U.dpi_fac); + UI_block_bounds_set_centered(block, 22 * U.dpi_fac); return block; }