From 7bd33c36dbf1894f137209d48363d40b2e5997d7 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Tue, 17 Jun 2014 21:49:54 +0200 Subject: Android: extract style attributes for tabs Task-number: QTBUG-39215 Change-Id: I727a12fa9696e22d3f31393a0fe2f9392afbfe45 Reviewed-by: Gabriel de Dietrich Reviewed-by: BogDan Vatra --- .../org/qtproject/qt5/android/ExtractStyle.java | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'src/android/jar/src/org/qtproject/qt5/android/ExtractStyle.java') diff --git a/src/android/jar/src/org/qtproject/qt5/android/ExtractStyle.java b/src/android/jar/src/org/qtproject/qt5/android/ExtractStyle.java index e6005b9a88..5819aca05c 100644 --- a/src/android/jar/src/org/qtproject/qt5/android/ExtractStyle.java +++ b/src/android/jar/src/org/qtproject/qt5/android/ExtractStyle.java @@ -168,6 +168,8 @@ public class ExtractStyle { final int View_minHeight = getField(styleableClass,"View_minHeight"); final int View_onClick = getField(styleableClass,"View_onClick"); final int View_overScrollMode = getField(styleableClass,"View_overScrollMode"); + final int View_paddingStart = getField(styleableClass,"View_paddingStart"); + final int View_paddingEnd = getField(styleableClass,"View_paddingEnd"); final int TextAppearance_textColorHighlight = getField(styleableClass,"TextAppearance_textColorHighlight"); final int TextAppearance_textColor = getField(styleableClass,"TextAppearance_textColor"); @@ -1014,6 +1016,10 @@ public class ExtractStyle { json.put("View_onClick", a.getString(attr)); else if (attr == View_overScrollMode) json.put("View_overScrollMode", a.getInt(attr, 1)); + else if (attr == View_paddingStart) + json.put("View_paddingStart", a.getDimensionPixelSize(attr, 0)); + else if (attr == View_paddingEnd) + json.put("View_paddingEnd", a.getDimensionPixelSize(attr, 0)); } a.recycle(); } catch (Exception e) { @@ -1567,6 +1573,29 @@ public class ExtractStyle { } } + void extractTabBar(SimpleJsonWriter writer, String styleName, String qtClass) + { + JSONObject json = extractTextAppearanceInformations(styleName, qtClass, null, -1); + try { + Class attrClass = Class.forName("android.R$attr"); + int styleId = attrClass.getDeclaredField(styleName).getInt(null); + + int[] styleAttrs = (int[]) styleableClass.getDeclaredField("LinearLayout").get(null); + TypedArray a = m_theme.obtainStyledAttributes(null, styleAttrs, styleId, 0); + + Drawable d = a.getDrawable(getField(styleableClass,"LinearLayout_divider")); + if (d != null) + json.put("LinearLayout_divider", getDrawable(d, styleName + "_LinearLayout_divider")); + json.put("LinearLayout_showDividers", a.getInt(getField(styleableClass, "LinearLayout_showDividers"), 0)); + json.put("LinearLayout_dividerPadding", a.getDimensionPixelSize(getField(styleableClass, "LinearLayout_dividerPadding"), 0)); + + a.recycle(); + writer.name(styleName).value(json); + } catch (Exception e) { + e.printStackTrace(); + } + } + public ExtractStyle(Context context, String extractPath) { // Log.i(MinistroService.TAG, "Extract " + extractPath); @@ -1609,6 +1638,9 @@ public class ExtractStyle { extractCalendar(jsonWriter, "calendarViewStyle", "QCalendarWidget"); extractToolBar(jsonWriter, "actionBarStyle", "QToolBar"); jsonWriter.name("actionButtonStyle").value(extractTextAppearanceInformations("actionButtonStyle", "QToolButton", null, -1)); + jsonWriter.name("actionBarTabTextStyle").value(extractTextAppearanceInformations("actionBarTabTextStyle", null, null, -1)); + jsonWriter.name("actionBarTabStyle").value(extractTextAppearanceInformations("actionBarTabStyle", null, null, -1)); + extractTabBar(jsonWriter, "actionBarTabBarStyle", "QTabBar"); } } catch (Exception e) { e.printStackTrace(); -- cgit v1.2.3