Commit: c846fa132d35fab8a4348a7ef10b9c0868b88a68
Author: Antonio Vazquez
Date:   Sun Jul 15 14:12:38 2018 +0200
Branches: greasepencil-object
https://developer.blender.org/rBc846fa132d35fab8a4348a7ef10b9c0868b88a68

Add new Scale parameter to template_greasepencil_color

Now it's possible to define the size of the previews.

===================================================================

M       release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
M       source/blender/editors/include/UI_interface.h
M       source/blender/editors/interface/interface_templates.c
M       source/blender/makesrna/intern/rna_ui_api.c

===================================================================

diff --git a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py 
b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
index 991ffe31b93..355ef446573 100644
--- a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
@@ -991,6 +991,7 @@ class _defs_gpencil_paint:
         ob = context.active_object
         nrow = 3
         ncol = 8
+        scale = 0.7
         if ob and ob.mode == 'GPENCIL_PAINT':
             brush = context.active_gpencil_brush
             gp_settings = brush.gpencil_settings
@@ -1005,7 +1006,7 @@ class _defs_gpencil_paint:
                 row.prop(gp_settings, "gpencil_fill_simplyfy_level", 
text="Simplify")
 
                 row = layout.row()
-                row.template_greasepencil_color(gp_settings, "material", 
rows=nrow, cols=ncol)
+                row.template_greasepencil_color(gp_settings, "material", 
rows=nrow, cols=ncol, scale=scale)
 
                 row = layout.row(align=True)
                 row.prop(gp_settings, "gpencil_fill_draw_mode", text="")
@@ -1020,7 +1021,7 @@ class _defs_gpencil_paint:
                 row.prop(gp_settings, "use_strength_pressure", text="", 
icon='STYLUS_PRESSURE')
 
                 row = layout.row(align=True)
-                row.template_greasepencil_color(gp_settings, "material", 
rows=nrow, cols=ncol)
+                row.template_greasepencil_color(gp_settings, "material", 
rows=nrow, cols=ncol, scale=scale)
 
     @staticmethod
     def generate_from_brushes(context):
diff --git a/source/blender/editors/include/UI_interface.h 
b/source/blender/editors/include/UI_interface.h
index 5eadc24e273..232ecaeb756 100644
--- a/source/blender/editors/include/UI_interface.h
+++ b/source/blender/editors/include/UI_interface.h
@@ -1054,7 +1054,7 @@ uiLayout *uiTemplateModifier(uiLayout *layout, struct 
bContext *C, struct Pointe
 uiLayout *uiTemplateGpencilModifier(uiLayout *layout, struct bContext *C, 
struct PointerRNA *ptr);
 void uiTemplateGpencilColorPreview(
        uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, const 
char *propname,
-       int rows, int cols, int filter);
+       int rows, int cols, float scale, int filter);
 
 uiLayout *uiTemplateShaderFx(uiLayout *layout, struct bContext *C, struct 
PointerRNA *ptr);
 
diff --git a/source/blender/editors/interface/interface_templates.c 
b/source/blender/editors/interface/interface_templates.c
index 566ce833770..0a7c14e31c1 100644
--- a/source/blender/editors/interface/interface_templates.c
+++ b/source/blender/editors/interface/interface_templates.c
@@ -166,7 +166,8 @@ static uiBlock *template_common_search_menu(
         const bContext *C, ARegion *region,
         uiButSearchFunc search_func, void *search_arg,
         uiButHandleFunc handle_func, void *active_item,
-        const int preview_rows, const int preview_cols)
+        const int preview_rows, const int preview_cols,
+               float scale)
 {
        static char search[256];
        wmWindow *win = CTX_wm_window(C);
@@ -181,8 +182,8 @@ static uiBlock *template_common_search_menu(
 
        /* preview thumbnails */
        if (preview_rows > 0 && preview_cols > 0) {
-               const int w = 4 * U.widget_unit * preview_cols;
-               const int h = 5 * U.widget_unit * preview_rows;
+               const int w = 4 * U.widget_unit * preview_cols * scale;
+               const int h = 5 * U.widget_unit * preview_rows * scale;
 
                /* fake button, it holds space for search items */
                uiDefBut(block, UI_BTYPE_LABEL, 0, "", 10, 26, w, h, NULL, 0, 
0, 0, 0, NULL);
@@ -241,6 +242,7 @@ typedef struct TemplateID {
        short filter;
        int prv_rows, prv_cols;
        bool preview;
+       float scale;
 } TemplateID;
 
 /* Search browse menu, assign  */
@@ -386,7 +388,7 @@ static uiBlock *id_search_menu(bContext *C, ARegion *ar, 
void *arg_litem)
 
        return template_common_search_menu(
                C, ar, id_search_cb_p, &template_ui, 
template_ID_set_property_cb, active_item_ptr.data,
-               template_ui.prv_rows, template_ui.prv_cols);
+               template_ui.prv_rows, template_ui.prv_cols, template_ui.scale);
 }
 
 /************************ ID Template ***************************/
@@ -634,7 +636,7 @@ static uiBut *template_id_def_new_but(
 
 static void template_ID(
         bContext *C, uiLayout *layout, TemplateID *template_ui, StructRNA 
*type, int flag,
-        const char *newop, const char *openop, const char *unlinkop)
+        const char *newop, const char *openop, const char *unlinkop, float 
scale)
 {
        uiBut *but;
        uiBlock *block;
@@ -864,7 +866,8 @@ static void ui_template_id(
         uiLayout *layout, bContext *C,
         PointerRNA *ptr, const char *propname,
         const char *newop, const char *openop, const char *unlinkop,
-        int flag, int prv_rows, int prv_cols, int filter, bool use_tabs)
+        int flag, int prv_rows, int prv_cols, int filter, bool use_tabs,
+               float scale)
 {
        TemplateID *template_ui;
        PropertyRNA *prop;
@@ -883,6 +886,7 @@ static void ui_template_id(
        template_ui->prop = prop;
        template_ui->prv_rows = prv_rows;
        template_ui->prv_cols = prv_cols;
+       template_ui->scale = scale;
 
        if ((flag & UI_ID_PIN) == 0) {
                template_ui->filter = filter;
@@ -911,7 +915,7 @@ static void ui_template_id(
                }
                else {
                        uiLayoutRow(layout, true);
-                       template_ID(C, layout, template_ui, type, flag, newop, 
openop, unlinkop);
+                       template_ID(C, layout, template_ui, type, flag, newop, 
openop, unlinkop, scale);
                }
        }
 
@@ -926,7 +930,7 @@ void uiTemplateID(
                layout, C, ptr, propname,
                newop, openop, unlinkop,
                UI_ID_BROWSE | UI_ID_RENAME | UI_ID_DELETE,
-               0, 0, filter, false);
+               0, 0, filter, false, 1.0f);
 }
 
 void uiTemplateIDBrowse(
@@ -937,7 +941,7 @@ void uiTemplateIDBrowse(
                layout, C, ptr, propname,
                newop, openop, unlinkop,
                UI_ID_BROWSE | UI_ID_RENAME,
-               0, 0, filter, false);
+               0, 0, filter, false, 1.0f);
 }
 
 void uiTemplateIDPreview(
@@ -948,18 +952,18 @@ void uiTemplateIDPreview(
                layout, C, ptr, propname,
                newop, openop, unlinkop,
                UI_ID_BROWSE | UI_ID_RENAME | UI_ID_DELETE | UI_ID_PREVIEWS,
-               rows, cols, filter, false);
+               rows, cols, filter, false, 1.0f);
 }
 
 void uiTemplateGpencilColorPreview(
        uiLayout *layout, bContext *C, PointerRNA *ptr, const char *propname,
-       int rows, int cols, int filter)
+       int rows, int cols, float scale, int filter)
 {
        ui_template_id(
                layout, C, ptr, propname,
                NULL, NULL, NULL,
                UI_ID_BROWSE | UI_ID_PREVIEWS,
-               rows, cols, filter, false);
+               rows, cols, filter, false, scale < 0.5f ? 0.5f : scale);
 }
 
 /**
@@ -975,7 +979,7 @@ void uiTemplateIDTabs(
                layout, C, ptr, propname,
                newop, openop, unlinkop,
                UI_ID_BROWSE | UI_ID_RENAME | UI_ID_DELETE,
-               0, 0, filter, true);
+               0, 0, filter, true, 1.0f);
 }
 
 /************************ ID Chooser Template ***************************/
@@ -1072,7 +1076,7 @@ static uiBlock *template_search_menu(bContext *C, ARegion 
*region, void *arg_tem
        return template_common_search_menu(
                C, region, ui_rna_collection_search_cb, &template_search,
                template_search_handle_cb, active_ptr.data,
-               template_search.preview_rows, template_search.preview_cols);
+               template_search.preview_rows, template_search.preview_cols, 
1.0f);
 }
 
 static void template_search_add_button_searchmenu(
diff --git a/source/blender/makesrna/intern/rna_ui_api.c 
b/source/blender/makesrna/intern/rna_ui_api.c
index a51962199c8..345a2aa72a4 100644
--- a/source/blender/makesrna/intern/rna_ui_api.c
+++ b/source/blender/makesrna/intern/rna_ui_api.c
@@ -852,6 +852,7 @@ void RNA_api_ui_layout(StructRNA *srna)
        api_ui_item_rna_common(func);
        RNA_def_int(func, "rows", 0, 0, INT_MAX, "Number of thumbnail preview 
rows to display", "", 0, INT_MAX);
        RNA_def_int(func, "cols", 0, 0, INT_MAX, "Number of thumbnail preview 
columns to display", "", 0, INT_MAX);
+       RNA_def_float(func, "scale", 1.0f, 0.5f, 1.5f, "Scale of the image 
thumbnails", "", 0, INT_MAX);
        RNA_def_enum(func, "filter", id_template_filter_items, 
UI_TEMPLATE_ID_FILTER_ALL,
                "", "Optionally limit the items which can be selected");

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to