Index: /main/trunk/model-interfaces-dev/atea/ocr/src/components/EditPage.vue
===================================================================
--- /main/trunk/model-interfaces-dev/atea/ocr/src/components/EditPage.vue	(revision 35747)
+++ /main/trunk/model-interfaces-dev/atea/ocr/src/components/EditPage.vue	(revision 35748)
@@ -1,4 +1,27 @@
 <template>
 <div class="edit-page-root">
+    <div class="control-panel">
+        <div class="edit-action">
+            <button class="btn-fab" @click="$emit('closeAndDiscard')" :title="translations.get('EditPage_Discard')">
+                <span class="material-icons mdi-l">cancel</span>
+            </button>
+            <div class="card infotab">
+                Discard Changes
+            </div>
+        </div>
+
+        <button class="btn-fab" @click="invert = !invert" :title="translations.get('EditPage_InvertColour')">
+            <span class="material-icons mdi-l">invert_colors</span>
+        </button>
+
+        <toggle-button v-model="rotateMode" :title="translations.get('EditPage_Rotate')">
+            <span class="material-icons mdi-l">crop_rotate</span>
+        </toggle-button>
+
+        <button class="btn-fab" @click="closeAndSave" :title="translations.get('EditPage_Save')">
+            <span class="material-icons mdi-l">save</span>
+        </button>
+    </div>
+
     <div class="image-panel">
         <div class="image-container" :style="{ transform: transformString }">
@@ -26,22 +49,4 @@
         </div>
     </div>
-
-    <div class="control-panel">
-        <button class="btn-fab" @click="$emit('closeAndDiscard')">
-            <span class="material-icons mdi-l">cancel</span>
-        </button>
-
-        <button class="btn-fab" @click="closeAndSave">
-            <span class="material-icons mdi-l">save</span>
-        </button>
-
-        <button class="btn-fab" @click="invert = !invert">
-            <span class="material-icons mdi-l">invert_colors</span>
-        </button>
-
-        <toggle-button v-model="rotateMode">
-            <span class="material-icons mdi-l">crop_rotate</span>
-        </toggle-button>
-    </div>
 </div>
 </template>
@@ -50,5 +55,5 @@
 .edit-page-root {
     display: grid;
-    grid-template-columns: 1fr auto;
+    grid-template-columns: auto 1fr;
     align-items: center;
     justify-items: center;
@@ -134,5 +139,5 @@
     flex-direction: column;
     justify-content: center;
-    align-items: center;
+    align-items: flex-start;
 
     padding: 0.5em;
@@ -141,4 +146,23 @@
 
     // background: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.2) 10%);
+}
+
+.edit-action {
+    display: flex;
+
+    .card {
+        margin-left: 1em;
+        width: 0;
+        min-width: 0;
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        padding: 0.2em;
+        transition-duration: var(--transition-duration);
+    }
+
+    .btn-fab:hover + .card {
+        min-width: 10em;
+    }
 }
 </style>
Index: /main/trunk/model-interfaces-dev/atea/ocr/src/components/MainPage.vue
===================================================================
--- /main/trunk/model-interfaces-dev/atea/ocr/src/components/MainPage.vue	(revision 35747)
+++ /main/trunk/model-interfaces-dev/atea/ocr/src/components/MainPage.vue	(revision 35748)
@@ -27,13 +27,14 @@
                     <span>{{ translations.get("MainPage_NewImage") }}</span>
                 </button>
-
-                <div v-if="ocrInProgress" class="progress-bar-container">
-                    <div class="progress-bar-value progress-bar-indeterminate" />
-                </div>
             </div>
 
+            <div class="progress-bar-container ocr-progress">
+                <div v-if="ocrInProgress" class="progress-bar-value progress-bar-indeterminate" />
+            </div>
+
             <img class="image-display" :src="imageUrl" />
 
             <div class="text-container">
+                <span v-if="ocrResult === null && !ocrInProgress" class="text-placeholder">{{ translations.get("MainPage_OCRHint") }}</span>
                 <pre>{{ ocrResult }}</pre>
             </div>
@@ -102,5 +103,5 @@
     display: grid;
     grid-template-columns: 1fr 1fr;
-    grid-template-rows: auto 1fr;
+    grid-template-rows: auto auto 1fr;
     height: 100%;
 
@@ -128,4 +129,8 @@
     display: flex;
     gap: 1em;
+    grid-column-start: span 2;
+}
+
+.ocr-progress {
     grid-column-start: span 2;
 }
Index: /main/trunk/model-interfaces-dev/atea/resources/interface_atea.properties
===================================================================
--- /main/trunk/model-interfaces-dev/atea/resources/interface_atea.properties	(revision 35747)
+++ /main/trunk/model-interfaces-dev/atea/resources/interface_atea.properties	(revision 35748)
@@ -49,2 +49,8 @@
 atea.ocr.MainPage_EditImage=Edit
 atea.ocr.MainPage_NewImage=New
+atea.ocr.MainPage_OCRHint=Click 'Perform OCR' to begin...
+
+atea.ocr.EditPage_Discard=Discard Changes
+atea.ocr.EditPage_InvertColour=Invert Colours
+atea.ocr.EditPage_Save=Save Changes
+atea.ocr.EditPage_Rotate=Rotate
