diff --git a/android-project/app/src/main/java/com/erroratline0/infinipaint/InfiniPaint.java b/android-project/app/src/main/java/com/erroratline0/infinipaint/InfiniPaint.java
index 1d5b42a..a961085 100644
--- a/android-project/app/src/main/java/com/erroratline0/infinipaint/InfiniPaint.java
+++ b/android-project/app/src/main/java/com/erroratline0/infinipaint/InfiniPaint.java
@@ -1,9 +1,28 @@
package com.erroratline0.infinipaint;
+import android.os.Build;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.Window;
+import android.view.WindowManager;
+
import org.libsdl.app.SDLActivity;
/**
* A sample wrapper class that just calls SDLActivity
*/
-public class InfiniPaint extends SDLActivity { }
+public class InfiniPaint extends SDLActivity {
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ Window window = this.getWindow();
+ window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
+ window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
+ window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
+ window.setStatusBarColor(android.graphics.Color.TRANSPARENT);
+ window.setNavigationBarColor(android.graphics.Color.TRANSPARENT);
+ // Transparent navigation
+ //if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q)
+ // window.setNavigationBarContrastEnforced(false);
+ }
+}
diff --git a/android-project/app/src/main/res/values/styles.xml b/android-project/app/src/main/res/values/styles.xml
index 5f0d0ec..6eac2c9 100644
--- a/android-project/app/src/main/res/values/styles.xml
+++ b/android-project/app/src/main/res/values/styles.xml
@@ -3,8 +3,11 @@
diff --git a/src/GUIStuff/ElementHelpers/LayoutHelpers.cpp b/src/GUIStuff/ElementHelpers/LayoutHelpers.cpp
index 35acca0..8c91d8e 100644
--- a/src/GUIStuff/ElementHelpers/LayoutHelpers.cpp
+++ b/src/GUIStuff/ElementHelpers/LayoutHelpers.cpp
@@ -75,7 +75,11 @@ void window_fill_side_bar(GUIManager& gui, const char* id, const WindowFillSideB
CLAY_AUTO_ID({
.layout = {.sizing = {.width = CLAY_SIZING_FIXED(gui.io.safeWindowRect.min.x()), .height = CLAY_SIZING_FIT(0)}}
}) {}
- innerContent();
+ CLAY_AUTO_ID({
+ .layout = {.sizing = {.width = CLAY_SIZING_FIXED(gui.io.safeWindowRect.width()), .height = CLAY_SIZING_FIT(0)}}
+ }) {
+ innerContent();
+ }
CLAY_AUTO_ID({
.layout = {.sizing = {.width = CLAY_SIZING_FIXED(gui.io.windowSize.x() - gui.io.safeWindowRect.max.x()), .height = CLAY_SIZING_FIT(0)}}
}) {}
@@ -101,7 +105,11 @@ void window_fill_side_bar(GUIManager& gui, const char* id, const WindowFillSideB
CLAY_AUTO_ID({
.layout = {.sizing = {.width = CLAY_SIZING_FIXED(gui.io.safeWindowRect.min.x()), .height = CLAY_SIZING_FIT(0)}}
}) {}
- innerContent();
+ CLAY_AUTO_ID({
+ .layout = {.sizing = {.width = CLAY_SIZING_FIXED(gui.io.safeWindowRect.width()), .height = CLAY_SIZING_FIT(0)}}
+ }) {
+ innerContent();
+ }
CLAY_AUTO_ID({
.layout = {.sizing = {.width = CLAY_SIZING_FIXED(gui.io.windowSize.x() - gui.io.safeWindowRect.max.x()), .height = CLAY_SIZING_FIT(0)}}
}) {}
@@ -133,7 +141,11 @@ void window_fill_side_bar(GUIManager& gui, const char* id, const WindowFillSideB
CLAY_AUTO_ID({
.layout = {.sizing = {.width = CLAY_SIZING_FIT(0), .height = CLAY_SIZING_FIXED(gui.io.safeWindowRect.min.y())}}
}) {}
- innerContent();
+ CLAY_AUTO_ID({
+ .layout = {.sizing = {.width = CLAY_SIZING_FIT(0), .height = CLAY_SIZING_FIXED(gui.io.safeWindowRect.height())}}
+ }) {
+ innerContent();
+ }
CLAY_AUTO_ID({
.layout = {.sizing = {.width = CLAY_SIZING_FIT(0), .height = CLAY_SIZING_FIXED(gui.io.windowSize.y() - gui.io.safeWindowRect.max.y())}}
}) {}
@@ -159,7 +171,11 @@ void window_fill_side_bar(GUIManager& gui, const char* id, const WindowFillSideB
CLAY_AUTO_ID({
.layout = {.sizing = {.width = CLAY_SIZING_FIT(0), .height = CLAY_SIZING_FIXED(gui.io.safeWindowRect.min.y())}}
}) {}
- innerContent();
+ CLAY_AUTO_ID({
+ .layout = {.sizing = {.width = CLAY_SIZING_FIT(0), .height = CLAY_SIZING_FIXED(gui.io.safeWindowRect.height())}}
+ }) {
+ innerContent();
+ }
CLAY_AUTO_ID({
.layout = {.sizing = {.width = CLAY_SIZING_FIT(0), .height = CLAY_SIZING_FIXED(gui.io.windowSize.y() - gui.io.safeWindowRect.max.y())}}
}) {}
@@ -174,10 +190,29 @@ void window_fill_side_bar(GUIManager& gui, const char* id, const WindowFillSideB
});
}
-void window_safe_area_layout(GUIManager& gui, const char* id, const std::function& innerContent) {
- gui.element(id, [&] (LayoutElement* l, const Clay_ElementId& lId) {
- innerContent();
- });
+void window_gap_side_bar(GUIManager& gui, const char* id, const WindowFillSideBarConfig::Direction& dir) {
+ switch(dir) {
+ case WindowFillSideBarConfig::Direction::TOP:
+ CLAY_AUTO_ID({
+ .layout = {.sizing = {.width = CLAY_SIZING_GROW(0), .height = CLAY_SIZING_FIXED(gui.io.safeWindowRect.min.y())}}
+ }) {}
+ break;
+ case WindowFillSideBarConfig::Direction::BOTTOM:
+ CLAY_AUTO_ID({
+ .layout = {.sizing = {.width = CLAY_SIZING_GROW(0), .height = CLAY_SIZING_FIXED(gui.io.windowSize.y() - gui.io.safeWindowRect.max.y())}}
+ }) {}
+ break;
+ case WindowFillSideBarConfig::Direction::LEFT:
+ CLAY_AUTO_ID({
+ .layout = {.sizing = {.width = CLAY_SIZING_FIXED(gui.io.safeWindowRect.min.x()), .height = CLAY_SIZING_GROW(0)}}
+ }) {}
+ break;
+ case WindowFillSideBarConfig::Direction::RIGHT:
+ CLAY_AUTO_ID({
+ .layout = {.sizing = {.width = CLAY_SIZING_FIXED(gui.io.windowSize.x() - gui.io.safeWindowRect.max.x()), .height = CLAY_SIZING_GROW(0)}}
+ }) {}
+ break;
+ }
}
}}
diff --git a/src/GUIStuff/ElementHelpers/LayoutHelpers.hpp b/src/GUIStuff/ElementHelpers/LayoutHelpers.hpp
index f281439..e9b0865 100644
--- a/src/GUIStuff/ElementHelpers/LayoutHelpers.hpp
+++ b/src/GUIStuff/ElementHelpers/LayoutHelpers.hpp
@@ -21,6 +21,6 @@ struct WindowFillSideBarConfig {
};
void window_fill_side_bar(GUIManager& gui, const char* id, const WindowFillSideBarConfig& config, const std::function& innerContent);
-void window_safe_area_layout(GUIManager& gui, const char* id, const std::function& innerContent);
+void window_gap_side_bar(GUIManager& gui, const char* id, const WindowFillSideBarConfig::Direction& dir);
}}
diff --git a/src/Screens/FileSelectScreen.cpp b/src/Screens/FileSelectScreen.cpp
index ec587d5..fa5f5ed 100644
--- a/src/Screens/FileSelectScreen.cpp
+++ b/src/Screens/FileSelectScreen.cpp
@@ -137,8 +137,6 @@ void FileSelectScreen::main_display() {
CLAY_AUTO_ID({
.layout = {
.sizing = {.width = CLAY_SIZING_GROW(0), .height = CLAY_SIZING_GROW(0)},
- .padding = CLAY_PADDING_ALL(gui.io.theme->padding1),
- .childGap = gui.io.theme->childGap1,
.childAlignment = { .x = CLAY_ALIGN_X_CENTER, .y = CLAY_ALIGN_Y_TOP },
.layoutDirection = CLAY_TOP_TO_BOTTOM,
},
@@ -155,7 +153,13 @@ void FileSelectScreen::main_display() {
actionBarOpenAnim->animation_trigger_reverse();
title_bar();
}
- window_safe_area_layout(gui, "center area element", [&] {
+ CLAY_AUTO_ID({
+ .layout = {
+ .sizing = {.width = CLAY_SIZING_GROW(0), .height = CLAY_SIZING_GROW(0)},
+ .layoutDirection = CLAY_LEFT_TO_RIGHT
+ },
+ }) {
+ window_gap_side_bar(gui, "main display left fill", WindowFillSideBarConfig::Direction::LEFT);
CLAY_AUTO_ID({
.layout = {
.sizing = {.width = CLAY_SIZING_GROW(0), .height = CLAY_SIZING_GROW(0)},
@@ -178,7 +182,9 @@ void FileSelectScreen::main_display() {
break;
}
}
- });
+ window_gap_side_bar(gui, "main display right fill", WindowFillSideBarConfig::Direction::RIGHT);
+ }
+ window_gap_side_bar(gui, "main display bottom fill", WindowFillSideBarConfig::Direction::BOTTOM);
menu_black_box();
}
edit_action_bar();
@@ -199,7 +205,7 @@ void FileSelectScreen::create_file_button() {
.element = CLAY_ATTACH_POINT_RIGHT_BOTTOM,
.parent = CLAY_ATTACH_POINT_RIGHT_BOTTOM
},
- .attachTo = CLAY_ATTACH_TO_ROOT
+ .attachTo = CLAY_ATTACH_TO_PARENT
}
}) {
svg_icon_button(gui, "add button", "data/icons/plus.svg", {
@@ -369,22 +375,27 @@ void FileSelectScreen::edit_action_bar() {
void FileSelectScreen::edit_title_bar() {
auto& gui = main.g.gui;
- CLAY_AUTO_ID({
- .layout = {
- .sizing = {.width = CLAY_SIZING_GROW(0), .height = CLAY_SIZING_FIT(0)},
- .childGap = gui.io.theme->childGap1,
- .childAlignment = { .x = CLAY_ALIGN_X_LEFT, .y = CLAY_ALIGN_Y_CENTER },
- .layoutDirection = CLAY_LEFT_TO_RIGHT,
- }
- }) {
- svg_icon_button(gui, "close edit mode button", "data/icons/close.svg", {
- .drawType = SelectableButton::DrawType::TRANSPARENT_ALL,
- .onClick = [&] {
- editMode = false;
+ window_fill_side_bar(gui, "edit top toolbar", {
+ .dir = WindowFillSideBarConfig::Direction::TOP,
+ .backgroundColor = gui.io.theme->backColor0
+ }, [&] {
+ CLAY_AUTO_ID({
+ .layout = {
+ .sizing = {.width = CLAY_SIZING_GROW(0), .height = CLAY_SIZING_FIT(0)},
+ .childGap = gui.io.theme->childGap1,
+ .childAlignment = { .x = CLAY_ALIGN_X_LEFT, .y = CLAY_ALIGN_Y_CENTER },
+ .layoutDirection = CLAY_LEFT_TO_RIGHT,
}
- });
- mutable_text_label(gui, "select files label", (numberOfSelectedEntries == 0) ? "Select files" : (std::to_string(numberOfSelectedEntries) + " selected"));
- }
+ }) {
+ svg_icon_button(gui, "close edit mode button", "data/icons/close.svg", {
+ .drawType = SelectableButton::DrawType::TRANSPARENT_ALL,
+ .onClick = [&] {
+ editMode = false;
+ }
+ });
+ mutable_text_label(gui, "select files label", (numberOfSelectedEntries == 0) ? "Select files" : (std::to_string(numberOfSelectedEntries) + " selected"));
+ }
+ });
}
void FileSelectScreen::title_bar() {
@@ -516,8 +527,6 @@ void FileSelectScreen::main_menu() {
CLAY(lId, {
.layout = {
.sizing = {.width = CLAY_SIZING_FIXED(300.0f * mainMenuOpenAnim->get_val()), .height = CLAY_SIZING_GROW(0)},
- .padding = CLAY_PADDING_ALL(gui.io.theme->padding1),
- .childGap = 0,
.layoutDirection = CLAY_TOP_TO_BOTTOM,
},
}) {